EDA365电子论坛网

标题: 移植 UC/OS 中的软件中断汇编接口程序中取功能号码 [打印本页]

作者: Maskman    时间: 2023-2-3 10:01
标题: 移植 UC/OS 中的软件中断汇编接口程序中取功能号码
请问:在移植 UC/OS 中的软件中断汇编接口程序中取功能号码.原程序为: 如果是在 THUMB 状态,则为 LDR R0,[LR,#-2] $ v1 t& V  Y/ T8 A* K7 C
如果是在 ARM 状态, 则为 LDR R0, [LR, #-4], 5 F5 H9 g0 n; b5 E
在清除 R0 中的最高两位,R0 的值就为功能号. $ L- M3 f. S4 _
为什么是从 LR 中取值呢 LR 的值是进入中断时候保存的 PC 值吗 迷惑! ; e' e: y" }; {  I4 a0 _; P

/ t+ m- F: I0 j9 E1 _& `9 c
作者: Ele_insect    时间: 2023-2-3 10:46
执行 SWI 指令后,处理器进入管理模式,LR_svc 中保存返回地址,顺藤摸瓜,1 [& ~6 ?0 t0 H: s5 Q
根据 LR_svc 就可以取得 SWI 语句,也就取得了中断号.
作者: 风吹过后    时间: 2023-2-3 13:14
uC/OS ii中,任务切换时一般要读取CPU的各个通用与特殊功能寄存器,M3用MRS、MSR等命令




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2