ARM技术论坛
直播中

王敏

8年用户 1528经验值
私信 关注
[问答]

移植UC/OS中的软件中断程序为什么是从LR中取值呢?

请问:在移植 UC/OS 中的软件中断汇编接口程序中取功能号码.原程序为: 如果是在 THUMB 状态,则为 LDR R0,[LR,#-2]
如果是在 ARM状态, 则为 LDR R0, [LR, #-4],
在清除 R0 中的最高两位,R0 的值就为功能号.
为什么是从 LR 中取值呢 LR 的值是进入中断时候保存的 PC 值吗 迷惑!

回帖(2)

h1654155275.5916

2023-2-27 10:45:21
执行 SWI 指令后,处理器进入管理模式,LR_svc 中保存返回地址,顺藤摸瓜
根据 LR_svc 就可以取得 SWI 语句,也就取得了中断号.
举报

张静

2023-2-27 10:45:30
uC/OS ii中,任务切换时一般要读取CPU的各个通用与特殊功能寄存器,M3用MRS、MSR等命令
举报

更多回帖

发帖
×
20
完善资料,
赚取积分