配置GCC目标CPU

问题描述 投票:0回答:1

我有一个Zynq 7000目标硬件。我是一个带有NEON和VFP协处理器的双核ARM Cortex A-9。必须通过对FPEXC寄存器的写访问来启用协处理器。

Enabling NEON and FPU for bare-metal显示相应的代码。问题是GCC(GNU汇编程序)不接受代码。错误是:

错误:所选处理器不支持请求的专用寄存器 - `msr fpexc,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-SDK的GCC编译器以这些选项启动:

arm-none-eabi-gcc -c -o "monitor.o" -mcpu=cortex-a9 -mfpu=neon-vfpv4  monitor.s

看起来GCC没有认识到CPU具有FPEXC寄存器。如何配置GCC以启用该CPU,协处理器和专用寄存器FPXEC的代码生成?

gcc xilinx neon
1个回答
0
投票

GNU汇编器想要查看该寄存器的VMSR指令:

 vmsr fpexc,r0            // Set EN bit in FPEXC
© www.soinside.com 2019 - 2024. All rights reserved.