Ich habe mir kürzlich den neuen lpc1768-stick von hitex zugelegt und nun
beschlossen mich mit Assembler zu beschäftigen. Mein Assemblerprogramm
hat folgenden Aufbau:
In C wird die Funktion deadloop aufgerufen:
1 | int main() {
|
2 | //... Übliche Initialisierung
|
3 | deadloop();
|
4 | while(1);
|
5 |
|
6 | return 0;
|
7 | }
|
In der asm-Datei ist diese Endlosschleife wie folgend definiert:
1 | .text
|
2 | .code 16
|
3 | .syntax unified
|
4 |
|
5 | .global deadloop
|
6 | deadloop:
|
7 | b deadloop
|
8 | .end
|
Durch den Debugger musste ich jedoch festellen das beim Aufruf der
deadloop-Funktion sofort eine HardFaultException ausgelöst wird. Ich bin
im Moment ziemlich ratlos woran dies liegen kann. Muss ich irgendwelche
speziellen Optionen an den Assembler übergeben? Im Moment lautet mein
Assembleraufruf:
1 | arm-none-eabi-as.exe -mcpu=cortex-m3 -mthumb deadloop.asm
|