Gast
#4469033
Hallo, vorab: Bitte keine Ratschläge diesen Error zu debuggen mittels Assembler Routinen usw. Ich verstehe davon nur Bahnhof und kann es doch nicht ändern, wenn da im tiefsten Inneren etwas schief läuft. Es geht einfach nur darum den Stack in das CCCRAM zu legen, was ich intuitiv so gemacht habe im Linker Script:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
Der Debugger zeigt dann auch, dass das sp register sich korekt bei 0x1000FFFF befindet, also im CCRAM. Nun ist es so, dass das komplexe Programm dann abschmiert und zwar bei einer sprintf Funktion, nachdem es zuvor zig davon abgearbeitet hat. Die Stelle ist eigentlich völlig unbedeutend, da passiert nichts weiter. Das CCRAM ist 64k gross, ich habe nichts drin ausser dem Stack, das müsste also reichen. Kurz bevor der Hard Fault Handler angesprungen wird sieht es so aus bei mir. Da sieht noch alles normal aus, der Step über sprintf aber ist der letzte, der ausgeführt wird :-( Setze ich den PC drüber hinweg springt er eben beim nächsten Mal sprintf da rein. sprintf ist eine Funktion der libs, ich nutze die nano-branch, habe die Linker Option -lm gesetzt für float Ausgabe in printf und auch die Flags diese Funktionen aus der Nano-Branch zu nehmen. Nutze ich die default lib stürzt er zwar nicht ab, aber alle float printf Ausgaben sind "leer". Was ist da strubbelig? Gruss, Christian




