我正在尝试将一个项目从Cortex M0移植到具有硬件浮点扩展的Cortex M4,新的目标系统芯片是nRF52832。
我从链接器得到的错误如下
arm-unknown-eabi/bin/ld: error: x.o uses VFP register arguments, firmware does not其中firmware是链接器的输出文件的名称。
这是一个问题与arm ABI的浮点,我想使用浮点,因为它是由我想使用的FreeRTOS端口请求,但我不知道如何调整我的链接器标志,使其成为可能。
这是我当前使用的链接器标志集
-L/path/to/nrfx/mdk
-Wl, --no-undefined
-Wl,--as-needed -march=armv7e-m+fp -mthumb -mfloat-abi=hard -mabi=aapcs
-Wl, --start-group support/libs/libQRCode.a support/libs/libSPIFFS.a
-Wl, --no-undefined
-Wl, --as-needed
-Wl, --gc-sections --specs=nosys.specs -T/path/to/linker_script.ld /toolchain/path/to/lib/libm.a
-Wl, --end-group发布于 2020-03-01 02:13:32
-mfloat-abi标志是仅供编译器使用的标志,因此没有必要将其传递给链接器。
为了能够构建使用硬浮点ABI的固件映像,传递到链接器的所有目标文件都必须编译为使用该ABI。这个问题很可能是因为您正在向链接器传递一个或多个使用软浮点型ABI编译的目标文件;例如,链接器命令行中的/toolchain/path/to/lib/libm.a文件路径看起来很可疑,您应该使用硬浮点型libm.a版本,您很可能会在工具链库路径的libm.a子文件夹中找到它。
https://stackoverflow.com/questions/59986152
复制相似问题