TMS320F28069 Abbruch bei Delay_US Funktion

Gast #4141641
Lesenswert?
• ▲
▼
Hallo Mikrocontroller Gemeinde,

habe folgendes Problem, sobald ich die Funktion DELAY_US() aufrufe 
bekomm ich beim debuggen " No source available for... "

Ich habe absolut keine Ahnung wo ich suchen soll den er schmiert dort 
einfach ab.

Eventuell kann mir ja jemand dabei helfen, das vollständige Projekt habe 
ich angehängt.

  while(1)
  {

     DELAY_US(500); // 500 ms, nur für Testzwecke erstmal

     GpioDataRegs.GPATOGGLE.bit.GPIO27 = 0x1;
  }

Vielen Dank im Vorraus!
Angehängte Dateien:
Gast #4142746
Lesenswert?
• ▲
▼
Christian schrieb:
> habe folgendes Problem, sobald ich die Funktion DELAY_US() aufrufe
> bekomm ich beim debuggen " No source available for... "

Das bedeutet nur, dass der Debugger (das Programm im PC) keinen C- oder 
ASM-Code für die Binaris findet. Solange der µC die Binaries hat ist das 
nur ne optische Sache.

Christian schrieb:
> den er schmiert dort einfach ab.
Woran erkennst du das?

Hört sich erst mal so an, als ob das Kopieren ins RAM nicht geklappt 
hat.

Kannst du in der Entwicklungsumgebung "Assembler-Ansicht" (oder ähnlich) 
wählen, dann einen Breakpoint vor das delay setzen und einen ASM-Step 
ausführen? Evtl. gibt dir die Sprungadresse Aufschluss.
Gast #4147303
Lesenswert?
• ▲
▼
Hallo und danke für die Antworten.

Nach langem suchen nach dem Fehler habe ich ihn gefunden, zum einen war 
es

  #ifdef FLASH
    memcpy(&RamfuncsRunStart,&RamfuncsLoadStart,(unsigned 
long)(&RamfuncsLoadSize));
    InitFlash();
  #endif

dadurch das FLASH nirgendwo definiert war ist der Controller nicht in 
die Funktion gesprungen und die DELAY Funktion wurde nicht ausm RAM 
ausgeführt sondern noch ausm FLASH was ja zum Teil zu Fehlfunktionen bei 
der Funktion führen kann.

Durch #define FLASH 1 wurde der Codeteil mit aufgerufen.

Danach wurde DELAY_US(x);  mit x<1000 ausgeführt, aber sobald da größere 
Werte drinnen standen ist er dann wieder in die InitPLL aus der 
SysCtrl.h zurückgesprungen (vermutlich interer Reset ).

Dann habe ich einfach mal in der InitPeripheralClocks() mehrere 
unbenötigte Funktionen ausgeschaltet und schon lief alles tadellos auch 
mit höherern Werten.

Demzufolge gehe ich davon aus das mein Leiterplattendesign in Bezug auf 
Stromversorgung zu knapp dimensioniert ist da dort 2 TI Chips laufen 
sowie 2x  ISO1050, 1x LevelShifter, 1xADCRefQuelle, 1x 2KanalOptokopler 
(galvanisch getrennt ), 1x SPI zu isoSPI und dies alles über nen 24 zu 
5V DCDC mit 1,25 W  Ausgangsleistung versorgt wird.

Also nochmal danke!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.