Forum: Mikrocontroller und Digitale Elektronik Tricore TC1797 Einstiegsprojekt


von Jürgen F. (funksoulbrother)


Lesenswert?

Hallo Leute,

ich bin gerade am verzweifeln.
Mein Problem:

Ich habe das Demoboard des Tricore TC1797 (Triboard). Hierfür kann man 
ja bei Tasking v3.3 ein leeres Projekt mit Start und Linker-Dateien 
erstellen. Dann kann man sich ein einfaches Projekt (bspw. LED 
anschalten) via DAvE basteln und diesen Code in Tasking einfügen.
Jetzt noch kurz eine Endlosschleife in die main-Funktion und via run 
oder debug auf den Controller geflasht.
Passt alles wunderbar. LED leuchtet. Aber sobald man den hardware reset 
durchführt wird das Programm nicht mehr ausgeführt.
Wahrscheinlich weil bei run ein bestimmter Start mit ausgeführt wird und 
dieser dann nach dem Hardwarereset nicht automatisch geschieht.

Gibt es eine Anleitung, wie man ein einfaches Projekt macht, welches 
auch nach dem Reset noch funktioniert?

Ich habe auch schon versucht, die wichtigen Infos die DAvE vorschlägt 
aber nicht selbst machen kann:

Begin of Important Settings for the Start-Up File
  All following settings must be set in the start-up file. You can use
  DAvE's project file (*.dpt) to include this register values into your
  compiler EDE.

  System Peripheral Bus Control Unit (SBCU):
  SBCU starvation protection is enabled
  the debug trace is enabled. Error information is captured in
  register SBCU_EADD, SBCU_EDAT and SBCU_ECON
  sample period of request for starvation protection: 64
  SBCU bus time-out value: 65536 cycles

  this register must be set in the start-up file
  SBCU_CON  =  0x4009FFFF;

  LMB External Bus Unit (EBU):
  - enable the EBU module clock

  this register must be set in the start-up file
  EBU_CLC  =  0x00010000;

  External Arbitration:
  - EBU is disabled

  this register must be set in the start-up file
  EBU_MODCON  =  0x00000040;

  End of Important Settings for the Start-Up File

in die cstart.c über die Reiter einzufügen. Leider finde ich dort keinen 
Eintrag EBU_MODCON und mit den Einstellungen, die ich vornehmen konnte 
funktioniert es auf alle Fälle nicht :-(

Weiß jemand Rat?

Danke im Voraus

von Jürgen F. (funksoulbrother)


Lesenswert?

Hallo,

mir ist gerade aufgefallen, dass durch die Angabe des Boards 
(TriBoard1797) das lsl-File in der Art verändert wird, dass ein 
sogenannter xram_8_a Ramspeicher eingeführt wird. Wenn ich das richtig 
sehe ist dies der Externe Ramspeicher, welcher sich auf dem Board 
befindet.
Wenn ich diesen als "reserved" markiere wird er nicht benutzt und 
stattdessen der interne Ram verwendet. Dann funktioniert ein Reset auch 
und die Firmware wird danach erneut gestartet.
Wahrscheinlich wird also der xram über run oder debug initialisiert, 
über meine Firmware alleine aber nicht.

Weiß vielleicht jemand von euch, wie man den externen Ram via DAvE oder 
evtl. auch manuell über Code initialisieren/ansprechen kann?

Das wäre mir eine große Hilfe

von klaus (Gast)


Lesenswert?

> via run oder debug auf den Controller geflasht

Sicher? Hatte damals nicht Tasking benutzt aber "run" und "debug" hört 
sich nun nicht wirklich nicht nach flashen an. Bei den meisten 
Entwicklungsumgebungen die ich kenne lädt das lediglich das Programm per 
Debugger ins RAM

von klaus (Gast)


Lesenswert?


von Jürgen F. (funksoulbrother)


Lesenswert?

Also ich habe es gerade nochmals getestet. Mit dem MemTool habe ich den 
Chip gelöscht (erase 2 MByte OnChip Program FLASH). Danach habe ich auf 
den HW-Reset gedrückt wodurch auf meinem Board die Firmware nicht mehr 
gestartet wird. Es leuchten keine LEDs und auch sonst ist keine 
Funktionalität (ASC und CAN) sind deaktiviert.
Danach habe ich via Tasking software auf "run" application.board 
geklickt wodurch die Firmware wieder auf den Controller gebracht wurde. 
Diese läuft jetzt ebenfalls nach einem Hardwarereset und auch nachdem 
ich die Stromversorgung gekappt und wieder angesteckt habe (RAM müsste 
meines Wissens dadurch ja gelöscht werden).

Das heisst, dass via run die Firmware auch geflasht wird.
Leider ist aber mein Problem etwas anderes. Ich möchte ja eigentlich 
gerne den externen Ram auf dem Triboard verwenden. Dieser wird aber 
anscheinend noch nicht durch die DAvE Standardeinstellungen 
aktiviert/initialisiert. Tasking stellt aber durch seine Standard-LSL 
ein, dass er verwendet werden soll. Und dann funktioniert die Firmware 
nur wenn sie per run oder debug auf den Controller gebracht wird und 
danach nicht mehr nach einem Hardware- oder Power-On-Reset

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.