Hallo,
@Jörg Wunsch:
Jep es steht in endlichen vieles drinnen, aber ich kann mir den halt den
Effekt nicht erklären.
@Jim Meba:
Das mit R3 ist ein Punkt, wobei ich es nicht ganz verstehe siehe:
Wenn ich die Zeile Auskommentiere steht da:
1 | irqstate* handle_irq(irqstate* state)
|
2 | {
|
3 | 804d4: b508 push {r3, lr}
|
4 | 804d6: 4601 mov r1, r0
|
Wenn ich die Zeile drinne lasse steht dann das da:
1 | irqstate* handle_irq(irqstate* state)
|
2 | {
|
3 | 804d4: b510 push {r4, lr}
|
4 | 804d6: 4604 mov r4, r0
|
gut ich glaub das sollte der Fehler sein. Da springt er dann irgendwo in
den Speicher und das ist natürlich nicht valide.
Das muss ich aber morgen mal testen.
Ach und zum Schluss ist noch zu deiner Frage:
Naja das Pop{R0] mach ich nur das der Wert aus dem Stack kommt den ich
für Debug hinzugefügt hab. Das eigentliche R0 wird von der CPU nach dem
Rücksprung bei bxlr gemacht.
viele grüße
Lassi