【发布时间】:2015-05-24 02:06:35
【问题描述】:
我已经使用 STM32Cube 为 STM32F205RB 生成了一个代码库,以便在 Atollic TrueSTUDIO 中使用。项目没有构建,报错:
arm-atollic-eabi-gcc -c -mthumb -std=gnu90 -DUSE_HAL_DRIVER -DSTM32F205xx -IC:\Users\Elliott\Atollic\TrueSTUDIO\ARM_workspace\USBInterfaceCUBE\USBInterfaceCube/Inc -IC:\Users\Elliott\Atollic\TrueSTUDIO\ARM_workspace\USBInterfaceCUBE\USBInterfaceCube/Drivers/STM32F2xx_HAL_Driver/Inc -IC:\Users\Elliott\Atollic\TrueSTUDIO\ARM_workspace\USBInterfaceCUBE\USBInterfaceCube/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -IC:\Users\Elliott\Atollic\TrueSTUDIO\ARM_workspace\USBInterfaceCUBE\USBInterfaceCube/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Inc -IC:\Users\Elliott\Atollic\TrueSTUDIO\ARM_workspace\USBInterfaceCUBE\USBInterfaceCube/Drivers/CMSIS/Include -IC:\Users\Elliott\Atollic\TrueSTUDIO\ARM_workspace\USBInterfaceCUBE\USBInterfaceCube/Drivers/CMSIS/Device/ST/STM32F2xx/Include -IC:\Users\Elliott\Atollic\TrueSTUDIO\ARM_workspace\USBInterfaceCUBE\USBInterfaceCube\Projects\TrueSTUDIO\USBInterfaceCube Configuration/Debug/ -Os -ffunction-sections -fdata-sections -g -Wall -o Drivers\STM32F2xx_HAL_Driver\stm32f2xx_hal_rcc.o ..\..\..\..\Drivers\STM32F2xx_HAL_Driver\Src\stm32f2xx_hal_rcc.c
C:\Users\Elliott\AppData\Local\Temp\ccnE9ju5.s: Assembler messages:
C:\Users\Elliott\AppData\Local\Temp\ccnE9ju5.s:288: Error: selected processor does not support Thumb mode `rbit r3,r3'
C:\Users\Elliott\AppData\Local\Temp\ccnE9ju5.s:298: Error: selected processor does not support Thumb mode `clz r3,r3'
...
我不太确定该去哪里 - 我已经看到了更改编译器选项的建议,尽管我无法在 TrueSTUDIO 中找到执行此操作的位置(让我有些担心的是当我选择项目时properties>C/C++ Build>Settings,我得到一个错误“当前显示的页面包含无效值” - 但是,我在 TrueSTUDIO 中新创建的项目上也得到同样的错误)
非常感谢任何想法、建议或澄清!
【问题讨论】:
-
看起来您缺少一个宏。打开
ccnE9ju5.s看看它是否有error预处理指令。 -
我猜工具链配置了一个相当古老的默认 CPU/架构版本(提到的指令是相对较新的),所以你可能需要通过
-mcpu=cortex-m3让它按预期工作.假设 IDE 与其他基于 Eclipse 的东西没有太大不同,我会在项目属性中查看构建设置或工具链编辑器,但不能肯定地说,因为我从未听说过 TrueSTUDIO确实有使用外部 Makefile 的经验,并且只是调整 Eclipse 设置以使索引器模糊准确。 -
@fiddling-bits - 我试图寻找 ccnE9Ju5,但这是一个临时文件,在我查看之前会自动删除!
-
@Notlikethat 我已经查看了构建设置 - 尝试将目标更改为 cortex-m3,尽管我仍然遇到相同的错误。通过将编译器更改为(CDT Internal Builder --> Gnu Make Builder),我遇到了类似的问题,尽管它现在使用了一个启动脚本,它是我项目的一部分(startup_stm32f205xx.s,由 STM32Cube 生成)
标签: c compilation arm stm32 thumb