Hi,
ich arbeite hier an einem STR710, das ist ein ARM7. Auf meinem Board ist
ein externes RAM untergebracht. In diesem habe ich bisher immer den Code
geladen und debuggt.
Nun ist eigentlich alles soweit fertig, dass ich umsteigen möchte auf
das Flash. Dazu habe ich das Linker-file angepasst, sodass die
Code-Section nun im Flash liegt. Außerdem habe ich noch eine weitere
Section angelegt für das externe RAM.
Das ganz sieht jetzt so aus:
1 | MEMORY
|
2 | {
|
3 | CODE (rx) : ORIGIN = 0x40000000, LENGTH = 0x00040000
|
4 | DATA (rw) : ORIGIN = 0x20000000, LENGTH = 0x00010000
|
5 | EXTDATA (rw) : ORIGIN = 0x60000000, LENGTH = 0x00400000
|
6 | }
|
In den Bereich EXTDATA habe ich nur die Section .bss geschoben. Also die
nicht zu initialisierenden Daten. Alles andere ist im Flash oder dem
internen RAM.
Das programm kann ich mit OpenOCD auch flashen und nach einem reset
ausführen. Scheinbar funktionieren die Interrupts aber nicht.
Die UART funktioniert (ohne Interrupts) aber sonst geht eigentlich
nichts. Sobald irgendetwas einen Interrupt auslöst ist Schluß. Es gibt
keine Reaktion mehr, der Controller resettet sich aber auch nicht.
Hat jemand eine Ahnung was da schief geht? hat jemand nen Plan, wie ich
mit OpenOCD im Flash debuggen kann?