.equ STACK_TOP, 0x20000800
.text
.global _start
+ .global reset, nmi, hardfault
.code 16
.syntax unified
_start:
- .word STACK_TOP, start
- .type start, function
+ .word STACK_TOP, reset, nmi, hardfault
+ .type reset, function
-/* Start of main program */
-start:
+/* A reset vector (or bootcode) will call main in main.c
+ this is the so called 'entry to C' */
+reset:
b main
- b start
+ b reset
+
+/* These are consequently the nmi and hardfault vector handlers
+ before booting and entering main, these can actually be called
+ (machine somehow has a failure). That's why they are included here.
+ Later the interrupt vector
+ will be relocated to SRAM and the will be copied / modified. */
+
+nmi:
+ b nmi
+
+hardfault:
+ b hardfault
+.global stub
+stub:
+ mov r1, #'z'
+ ldr r0, [r1]
+ bx lr
+ /* ldr R0,=10
+ mov R1,#0
+ udiv.w R2, R0, R1 */
.data
-Result:
- .word 'X' /* results now is in 0x20000008 (0x20000000 + 2 w) */
+ .word 'x'
.end