FreeRTOS的入栈汇编,R0寄存器应该存栈顶地址吗?

        ldr r3, =pxCurrentTCB     /* 当前任务TCB地址 */

        ldr r1, [r3]                         /* 给r1当前TCB的值 */

        ldr r0, [r1]                        /* 给r0栈顶的值 */

        ldmia r0!, {r4-r11}           /* 以r0为基地址出栈 */

这个操作中 R0 已经是一个数值了,而不是地址了,怎么能够连续出栈呢?

懂了!大概对应关系是

r3  =  pxCurrentTCB*   (TCB的指针的指针)

r1 =  pxCurrentTCB (也就是TCB的指针 TCB *)

r0 = TCB   (即为TCB的前32位,TCB->pxTopOfStack)