54、Cortex-M33 浮点单元(FPU)深度解析

Cortex-M33 浮点单元(FPU)深度解析

1. 启用非安全模式下的浮点单元

在Cortex - M33处理器中,要启用非安全模式下的浮点单元,可以使用以下代码:

SCB->NSACRj = 0x00000C00; // Enables the floating-point unit for Non-secure use

需要注意的是,写入CP10和CP11位的值必须相同,否则结果在架构上是不可预测的。

2. 浮点寄存器组

浮点寄存器组包含32个32位寄存器,从双精度浮点处理的角度看,它们也可以被视为16个64位双字寄存器。
- 调用者保存寄存器(S0 - S15) :当函数A调用函数B时,函数A必须在调用函数B之前保存这些寄存器的内容(例如,保存到栈中),因为这些寄存器的值可能会在函数调用过程中被改变(例如,用于返回结果)。
- 被调用者保存寄存器(S16 - S31) :如果函数A调用函数B,且函数B在计算中需要使用超过16个寄存器,那么函数B必须先保存这些寄存器的内容(例如,保存到栈中),并在返回函数A之前从栈中恢复这些寄存器的值。
- 初始值 :这些寄存器的初始值是未定义的。

3. 浮点状态和控制寄存器(FPSCR)

FPSCR是一个特殊的寄存器,它保存着算术运算的结果标志和粘性状态标志,以及用于控制浮点单元行为的位域。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值