arm裸机部分笔记

####sp栈指针

  • 由于ARM在各种模式下都需要设置各自的栈指针,所以ldr sp,=svc_stack 操作指针较多,根据的arm-atpcs规则,对栈的操作属于满减栈,既指针一指向栈顶元素,是按地址减小的方向增长,所以一般是将sp设置在地址的最高处。
#define WTCON 	0xE2700000
 #define SVC_STACK 0xD0037D80
 #
.global  _start
start: 
        ldr r1, =0x11111111
        ldr r2, =GPJ0CON
        str r1, [r2]

        ldr r1, =WTCON
        ldr r2, =0x0
        str r2,[r1]

        ldr sp,=SVC_STACK