Clion 开发踩坑记录

目录

1、stlink 下载F4程序失败报错

2、Clion的文字、背景、界面大小设置

3、Clion 嵌入式开发过程中添加头文件与源文件

4、Clion中的芯片不是我想要的

5、环境突然配置坏了一直报错

6、Clion 添加DSP库失败

7、Clion开发FreeRTOS遇到的错误


1、stlink 下载F4程序失败报错

Error: timed out while waiting for target halted
embedded:startup.tcl:1473: Error: ** Unable to reset target **
in procedure 'program'
in procedure 'program_error' called at file "embedded:startup.tcl", line 1510
at file "embedded:startup.tcl", line 1473

首先配置板子的时候不要选择cfg,之后去图1配置Board config file,cfg去D:\software_code\Embedded\OpenOCD\share\openocd\scripts\board找到F4,之后将cfg里面的reset_config srst_only改为reset_config none,即可下载成功

图1 配置界面

2、Clion的文字、背景、界面大小设置

首先界面这些肯定在设置里面找,最好找的是代码大小的配置在setting中如图2所示,还有就是整个界面大小还有背景的设置,在appearance里面,如图3所示,最后就是图4所示的鼠标滑轮调整字体大小的设置。

图2 代码大小设置界面

图3 界面设置与背景设置

图4 调整字体快捷键设置

3、Clion 嵌入式开发过程中添加头文件与源文件

需要在CMakeLists.txt中添加,在include_directories中添加头文件,在file里面加源文件,需要注意set中的代码不能改变,如果改变了需要删除否则报错。

include_directories(Core/Inc
        Drivers/STM32F4xx_HAL_Driver/Inc
        Drivers/STM32F4xx_HAL_Driver/Inc/Legacy
        Drivers/CMSIS/Device/ST/STM32F4xx/Include
        Drivers/CMSIS/Include
        User/APP
        User/Framework
        User/MCUDriver
        User/RTT
        User/Function
        User/PeripheralsDriver
        )

add_definitions(-DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx)

file(GLOB_RECURSE SOURCES
        "Core/*.*"
        "Drivers/*.*"
        "User/APP/*.*"
        "User/Framework/*.*"
        "User/Function/*.*"
        "User/MCUDriver/*.*"
        "User/RTT/*.*"
        "User/PeripheralsDriver/*.*"
        )

set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/STM32F407VETX_FLASH.ld)

4、Clion中的芯片不是我想要的

需要用cubemx重新生成一个和文件名字一模一样的ioc来替换原来的ioc。

图5 替换ioc

5、环境突然配置坏了一直报错

File-NEWproject生成一个一模一样的工程来重置工程,再用cubemx generate 一下生成新的ioc就相当重置工程了,当然之前添加的路径都会没有了,所以重置之前需要先复制一下之前的头文件源文件路径。

6、Clion 添加DSP库失败

需要添加其他的库,首先是cubemx不能拷贝所有的库,其次是库复制到Clion时不能识别与添加,如图6。后续更是报错无数,解决方法为降低cubemx版本使用古老的cubemx,古老到可以生成SW4STM32的版本,当你使用cube IDE作为Toolchain时,只能添加必要的库而无法添加其他库。

或者手动复制库,然后在cmake里面添加link,还没试不知道行不行,

图6 无法识别库

In file included from D:\software_code\Embedded\blushless\op_FOC\Drivers\CMSIS\Device\ST\STM32F4xx\Include/stm32f407xx.h:166,
                 from D:\software_code\Embedded\blushless\op_FOC\Drivers\CMSIS\Device\ST\STM32F4xx\Include/stm32f4xx.h:132,
                 from D:\software_code\Embedded\blushless\op_FOC\Drivers\STM32F4xx_HAL_Driver\Inc/stm32f4xx_hal_def.h:29,
                 from D:\software_code\Embedded\blushless\op_FOC\Drivers\STM32F4xx_HAL_Driver\Inc/stm32f4xx_hal_rcc.h:27,
                 from D:\software_code\Embedded\blushless\op_FOC\Core\Inc/stm32f4xx_hal_conf.h:274,
                 from D:\software_code\Embedded\blushless\op_FOC\Drivers\STM32F4xx_HAL_Driver\Inc/stm32f4xx_hal.h:29,
                 from D:\software_code\Embedded\blushless\op_FOC\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c:36:
D:\software_code\Embedded\blushless\op_FOC\Drivers\CMSIS\Include/core_cm4.h:2052:25: error: declaration for parameter 'ITM_RxBuffer' but no such parameter
 2052 | extern volatile int32_t ITM_RxBuffer;                              /*!< External variable to receive characters. */
      |                         ^~~~~~~~~~~~
In file included from D:\software_code\Embedded\blushless\op_FOC\Drivers\CMSIS\Include/core_cm4.h:1960,
                 from D:\software_code\Embedded\blushless\op_FOC\Drivers\CMSIS\Device\ST\STM32F4xx\Include/stm32f407xx.h:166,
                 from D:\software_code\Embedded\blushless\op_FOC\Drivers\CMSIS\Device\ST\STM32F4xx\Include/stm32f4xx.h:132,
                 from D:\software_code\Embedded\blushless\op_FOC\Drivers\STM32F4xx_HAL_Driver\Inc/stm32f4xx_hal_def.h:29,
                 from D:\software_code\Embedded\blushless\op_FOC\Drivers\STM32F4xx_HAL_Driver\Inc/stm32f4xx_hal_rcc.h:27,
                 from D:\software_code\Embedded\blushless\op_FOC\Core\Inc/stm32f4xx_hal_conf.h:274,
                 from D:\software_code\Embedded\blushless\op_FOC\Drivers\STM32F4xx_HAL_Driver\Inc/stm32f4xx_hal.h:29,
                 from D:\software_code\Embedded\blushless\op_FOC\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c:36:
D:\software_code\Embedded\blushless\op_FOC\Drivers\CMSIS\Include/mpu_armv7.h:183:3: error: declaration for parameter 'ARM_MPU_Region_t' but no such parameter
  183 | } ARM_MPU_Region_t;
      |   ^~~~~~~~~~~~~~~~

7、Clion开发FreeRTOS遇到的错误

报错内容:

C:\Users\ADMINI~1\AppData\Local\Temp\ccznsDp0.s: Assembler messages:
C:\Users\ADMINI~1\AppData\Local\Temp\ccznsDp0.s:529: Error: selected FPU does not support instruction -- `vstmdbeq r0!,{s16-s31}'
C:\Users\ADMINI~1\AppData\Local\Temp\ccznsDp0.s:551: Error: selected FPU does not support instruction -- `vldmiaeq r0!,{s16-s31}'
mingw32-make[3]: *** [CMakeFiles\F4_FreeRTOS_demo.elf.dir\build.make:508: CMakeFiles/F4_FreeRTOS_demo.elf.dir/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c.obj] Error 1
mingw32-make[3]: *** Waiting for unfinished jobs....
[ 92%] Building C object CMakeFiles/F4_FreeRTOS_demo.elf.dir/Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c.obj
mingw32-make[2]: *** [CMakeFiles\Makefile2:82: CMakeFiles/F4_FreeRTOS_demo.elf.dir/all] Error 2
mingw32-make[1]: *** [CMakeFiles\Makefile2:89: CMakeFiles/F4_FreeRTOS_demo.elf.dir/rule] Error 2
mingw32-make: *** [Makefile:123: F4_FreeRTOS_demo.elf] Error 2

解决方法

修改Cmake

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The hopes of the whole village

看心情打赏咯

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值