免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4418 | 回复: 2
打印 上一主题 下一主题

[驱动] Kernel的中断里边有关“msr spsr_cxsf, r0”的迷惑 [复制链接]

论坛徽章:
1
2015亚冠之卡尔希纳萨夫
日期:2015-07-27 18:11:47
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-08-21 17:57 |只看该作者 |倒序浏览
本帖最后由 maybe524 于 2014-08-21 17:58 编辑

最近在学习Kernel中断<arch/arm/kernel/entry-armv.S>时,看见如下的写法:

msr spsr_cxsf, r0

想确定能否把msr spsr_cxsf, r0 修改成msr spsr, r0呢?

论坛徽章:
0
2 [报告]
发表于 2014-08-25 13:09 |只看该作者
是不是gcc的约定spsr_cxsf

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
3 [报告]
发表于 2014-08-26 18:41 |只看该作者
MSR
将立即数或通用寄存器的内容加载到程序状态寄存器 (PSR) 的指定字段中。
语法(ARMv7-M 和 ARMv6-M 除外)
MSR{cond} APSR_flags, #constant
MSR{cond} APSR_flags, Rm
MSR{cond} psr_fields, #constant
MSR{cond} psr_fields, Rm
其中:
cond 是一个可选的条件代码(请参阅第2-17 页的条件执行)。
flags 指定要移动的 APSR 标记。flags 可以是以下项中的一个或多个:
nzcvq ALU 可标记字段掩码, PSR[31:27] (用户模式)
g SIMD GE 可标记字段掩码, PSR[19:16] (用户模式)。
constant 是取值为常数的一个表达式。 该常数必须对应于一个 8 位结构,可
通过在 32 位字内循环移动偶数位而得到。 在 Thumb 中不可用。
Rm 是源寄存器。
psr 是下列项之一:
CPSR 用于调试状态,请不要将其看做 APSR 的同义词
SPSR 仅可用于特权模式下的处理器。
fields 指定要移动的 SPSR 或 CPSR 字段。fields 可以是以下项中的一个
或多个:
c 控制字段掩码字节, PSR[7:0] (特权模式)
x 扩展字段掩码字节, PSR[15:8] (特权模式)
s 状态字段掩码字节, PSR[23:16] (特权模式)
f 标记字段掩码字节, PSR[31:24] (特权模式)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP