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!
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
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.
Ich kann es mit dem Handy nicht öffnen, wenn du aber die delay.h einbindest, lautet die Funktion _delay_us(x) (Beachte den unterstrich)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.