我有一个Zynq 7000目标硬件。我由一个双核臂,皮质A-9与霓虹灯和VFP协处理器.必须通过对FPEXC寄存器的写访问来启用协处理器.
使霓虹灯和FPU能用于裸金属显示了相应的代码。问题是GCC (GNU汇编程序)不接受代码。错误是:
错误:选定的处理器不支持请求的特殊用途寄存器--“processor,r0”
下面是完整的最小源代码示例:
.text
.global enableNeon
enableNeon:
mrc p15,0,r0,c1,c0,2 // Read CP Access register
orr r0,#0x00f00000 // Enable full access to NEON/VFP (Coprocessors 10 and 11)
mcr p15,0,r0,c1,c0,2 // Write CP Access register
isb
mov r0,#0x40000000 // Switch on the VFP and NEON hardware
msr fpexc,r0 // Set EN bit in FPEXC
bx lr
.end
Xilinx的GCC编译器使用以下选项启动:
arm-none-eabi-gcc -c -o "monitor.o" -mcpu=cortex-a9 -mfpu=neon-vfpv4 monitor.s
看起来GCC并没有意识到CPU有FPEXC寄存器。我如何配置GCC以支持CPU、协处理器和专用寄存器FPXEC的代码生成?
发布于 2018-09-10 23:02:30
GNU汇编程序希望看到此寄存器的VMSR指令:
vmsr fpexc,r0 // Set EN bit in FPEXC
https://stackoverflow.com/questions/52158986
复制相似问题