蓝色翻滚者 2021-01-29 18:51 采纳率: 50%
浏览 59

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

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

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

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

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

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

  • 写回答

1条回答 默认 最新

  • 蓝色翻滚者 2021-01-29 19:11
    关注

    懂了!大概对应关系是

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

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

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

     

    评论

报告相同问题?

悬赏问题

  • ¥15 SQLite 出现“Database is locked” 如何解决?
  • ¥15 已经加了学校的隶属邮箱了,为什么还是进不去github education?😭
  • ¥15 求会做聚类,TCN的朋友有偿线上指导。以下是目前遇到的问题
  • ¥100 无网格伽辽金方法研究裂纹扩展的程序
  • ¥15 错误于library(org.Hs.eg.db): 不存在叫‘org.Hs.eg.db’这个名称的程序包,如何解决?
  • ¥60 求一个图片处理程序,要求将图像大小跟现实生活中的大小按比例联系起来的
  • ¥50 求一位精通京东相关开发的专家
  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏