Forum: Digitale Signalverarbeitung / DSP / Machine Learning TMS320F28069 Abbruch bei Delay_US Funktion


von Christian (Gast)


Angehängte Dateien:

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!

von Christian (Gast)


Lesenswert?

kann mir keiner weiterhelfen?

ich poste gerne auch größere Teile meines Codes hier ins Forum, wenn der 
Code nicht gern aus der Zip geöffnet werden will.

Viele Grüße

von Stefan1234 (Gast)


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.

von Gerald G. (gerald_g)


Lesenswert?

Ich kann es mit dem Handy nicht öffnen, wenn du aber die delay.h 
einbindest, lautet die Funktion _delay_us(x)
(Beachte den unterstrich)

von Christian (Gast)


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!

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.