STM32CubeIDE 移植 RT-ThreadNano问题总结

问题汇总

  1. 用STM32CubeIDE新建工程时,用STM32CubeMX勾选了RTThread系统,但是生产的工程中没有MiddleWare。
    原因:因为更换过workspace,更换完成后配置Firmware and software package时选择到了D:\STM32Cube。
    解决:STM32CubeIDE系统设置问题,Firmware and software package必须要选到Respository文件层。
    在这里插入图片描述
    同时勾选Do code generation on .ioc file save
    在这里插入图片描述
    或者保存完.ioc文件后点击generate code
    在这里插入图片描述
  2. RT-ThreadNano 3.1.5版本可以按照上述方法解决,3.1.3版本仍然无法解决,一直没有middleware文件出现,

更换编译工具

尝试更换CDT(C/C++development tools),STM32CubeIDE默认使用GNU Tools for STM32,更换使用GNU ARM Embedded
在这里插入图片描述
安装的时候软件反应有点慢,开始以为卡死了,等了一会才反应过来。

在这里插入图片描述
安装进度在整个界面的左下角,不是很直观。
在这里插入图片描述
更换了Toolchain后再编译,报新的错误:

make: *** [Middlewares/Third_Party/RealThread_RTOS_RT-Thread/src/subdir.mk:49: Middlewares/Third_Party/RealThread_RTOS_RT-Thread/src/clock.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [Middlewares/Third_Party/RealThread_RTOS_RT-Thread/src/subdir.mk:49: Middlewares/Third_Party/RealThread_RTOS_RT-Thread/src/components.o] Error 1
arm-none-eabi-gcc: error: unrecognized command-line option '-fcyclomatic-complexity'
make: *** [Middlewares/Third_Party/RealThread_RTOS_RT-Thread/src/subdir.mk:49: Middlewares/Third_Party/RealThread_RTOS_RT-Thread/src/idle.o] Error 1
arm-none-eabi-gcc: error: unrecognized command-line option '-fcyclomatic-complexity'
arm-none-eabi-gcc: error: unrecognized command-line option '-fcyclomatic-complexity'
make: *** [Middlewares/Third_Party/RealThread_RTOS_RT-Thread/src/subdir.mk:49: Middlewares/Third_Party/RealThread_RTOS_RT-Thread/src/ipc.o] Error 1
make: *** [Middlewares/Third_Party/RealThread_RTOS_RT-Thread/src/subdir.mk:49: Middlewares/Third_Party/RealThread_RTOS_RT-Thread/src/irq.o] Error 1
arm-none-eabi-gcc: error: unrecognized command-line option '-fcyclomatic-complexity'
make: *** [Middlewares/Third_Party/RealThread_RTOS_RT-Thread/src/subdir.mk:49: Middlewares/Third_Party/RealThread_RTOS_RT-Thread/src/kservice.o] Error 1
"make -j8 all" terminated with exit code 2. Build might be incomplete.

结论

目前仍然不能使用STM32CubeIDE+RTThread联调测试。问题是
编译时 libcpu/arm/cortex-m4/context_gcc.s (RT-Thread 启动文件)时出现如

/opt/gcc-arm-none-eabi-6-2017-q2-update/bin/arm-none-eabi-gcc -x assembler-with-cpp -c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -DUSE_HAL_DRIVER -DSTM32F429xx -DHAVE_CCONFIG_H -DRT_USING_MINILIBC -DRT_USING_NEWLIB -Iboard -ICORE -IHALLIB/Inc -IHALLIB/Inc/Legacy -Ihardware/CAN -Ihardware/KEY -Ihardware/LCD -Ihardware/LED -Ihardware/SDRAM -Irt-thread/components/finsh -Irt-thread/include -Irt-thread/include/libc -ISYSTEM/delay -ISYSTEM/sys -ISYSTEM/usart -IUSER  -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/context_gcc.d" rt-thread/libcpu/arm/cortex-m4/context_gcc.s -o build/context_gcc.o
rt-thread/libcpu/arm/cortex-m4/context_gcc.s: Assembler messages:
rt-thread/libcpu/arm/cortex-m4/context_gcc.s:110: Error: thumb conditional instruction should be in IT block -- `vstmdbeq r1!,{d8-d15}'
rt-thread/libcpu/arm/cortex-m4/context_gcc.s:119: Error: thumb conditional instruction should be in IT block -- `moveq r4,#0x01'
rt-thread/libcpu/arm/cortex-m4/context_gcc.s:140: Error: thumb conditional instruction should be in IT block -- `vldmiane r1!,{d8-d15}'
rt-thread/libcpu/arm/cortex-m4/context_gcc.s:148: Error: thumb conditional instruction should be in IT block -- `bicne lr,lr,#0x10'
make: *** [Makefile:180:build/context_gcc.o] 错误 1

按照以下几种方式处理后仍然不能正常运行。暂时悬起,后面解决了再更新:

  1. context_gcc.s:110: Error: thumb conditional instruction should be in IT block `vstmdbeq r1!,{d8-d15}
  2. STM32cubeIDE F4移植RTT系统 context_gcc.s 报错
  3. RT-Thread启动过程部分过程分析(GCC链接脚本部分内容)

参考

  1. STM32 CubeIDE 使用RT-Thread Nano
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值