Arm 如何检测M皮质的FPU?
Cortex-M处理器实现CPUID寄存器,通过该寄存器可以检测有关核心的信息:零件号(如Cortex M7或M4)、版本和补丁级别(如r1p2)等Arm 如何检测M皮质的FPU?,arm,cortex-m,fpu,Arm,Cortex M,Fpu,Cortex-M处理器实现CPUID寄存器,通过该寄存器可以检测有关核心的信息:零件号(如Cortex M7或M4)、版本和补丁级别(如r1p2)等 是否有寄存器或方法来检测FPU是否已由实现者实现?以及如何检测FPU的类型(VFPv4、VFPv5 SP或VFPv5 DP)?在cortex-m Architecure参考手册中 B3.2.20协处理器访问控制寄存器,CPACR CPACR的特点是: 目的:指定协处理器的访问权限 使用限制:如果未实现协处理器,则将0b01或0b11写入相应的CP
是否有寄存器或方法来检测FPU是否已由实现者实现?以及如何检测FPU的类型(VFPv4、VFPv5 SP或VFPv5 DP)?在cortex-m Architecure参考手册中 B3.2.20协处理器访问控制寄存器,CPACR CPACR的特点是:
- 目的:指定协处理器的访问权限
- 使用限制:如果未实现协处理器,则将0b01或0b11写入相应的CPACR字段将读回为0b00
- 配置:始终实现
VFP将实现CP10和CP11(十进制)。如果没有VFP,则它们应读回为0b00。这将适用于大多数Cortex-M CPU。由于供应商可以实现自己的IP,因此某些CPU/SOC可能无法按文档所述工作。谨慎的做法是捕获/处理未定义的指令,如果没有协处理器,则会执行该指令。请查看相关SOC的数据表