野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3269|回复: 3

关于RTT中PendSV有和地方不明白,再次请教

[复制链接]
发表于 2019-12-8 20:04:02 | 显示全部楼层 |阅读模式
图中是RT-Thread中PendSV的代码,
pendsv_exit
    ; restore interrupt
    MSR     PRIMASK, r2

    MOVS    r0, #0x04
    RSBS    r0, r0, #0x00
    BX      r0                     // 我不明白的地方是:r0中的值应该是0xFFFFFFC, 那么bit0就等于0了,难道这样写不会触发fault exception吗?
    ENDP

回复

使用道具 举报

发表于 2019-12-9 12:53:22 | 显示全部楼层
为什么我看到的代码是这样子的?

https://gitee.com/rtthread/rt-th ... xt_rvds.S#L119-L125


[mw_shl_code=asm,true]pendsv_exit
    ; restore interrupt
    MSR     PRIMASK, r2

    ORR     lr, lr, #0x04
    BX      lr
    ENDP
[/mw_shl_code]


回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-9 15:10:49 | 显示全部楼层
stm32f091-st-nucleo     官网下载的bsp例程中有这个
回复 支持 反对

使用道具 举报

发表于 2019-12-9 16:09:49 | 显示全部楼层
了解了,原来是M0的。
这是仅用于从异常状态返回,不会触发fault exception。
TIM截图20191209160924.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-18 12:18 , Processed in 0.049146 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表