赞
踩
在嵌入式领域中开发以ARM公司的Cortex M内核为代表的单片机时程序员使用最多的IDE一定是Keil公司的MDK4 MDK5,而Keil已经脱离现代智能IDE,近年来IAR逐步向现代智能IDE靠近但还不足,一些芯片原厂提供了基于eclipse改装版IDE,这些工具在调试方面有优势,比如查看外设寄存器,内核寄存器,反汇编,支持多种调试器烧录固件,但在代码提示,代码跳转、代码重构、查找调用代码等等这些功能很匮乏,而Jetbrains公司的Clion是一款现代化跨平台IDE,不仅能编写传统c/c++程序,还能配合插件开发单片机程序,解决了传统嵌入式IDE的痛点。专业的嵌入式IDE是内置烧录调试工具,使用第三方IDE需要借助开源工具openocd,openocd有很多版本适配不同芯片能够满足使用。当前最热门的单片机就是stm32,得益于资料公开,有第三方板卡商家,SDK代码规范易读,甚至还有初始化代码生成工具CubeMX极大程度降低了嵌入式开发的门槛(有些国内半导体厂家的资料是传家宝见不得人),让嵌入式程序员更加注重应用。本文主要内容是使用Clion+CubeMX+arm-gcc+openocd开发stm32环境,当然不仅仅是开发stm32,只要是能使用gcc系列编译器编译代码,并配合编写编写的cmake脚本的都可以爆改适配,博主已经适配过乐鑫的ESP32、沁恒微电子的CH32。
关键字: Clion、STM32、CubeMX
环境说明
- 操作系统:win11
- 单片机:stm32f103rct6
- IDE:Clion2023
- 代码生成器:STM32CubeMX 6.8.1
- 工具链:amr-gcc
- 固件烧录软件:openocd -20231002
- 调试器:ST-Linkv2
#设置使用的调试烧录器为ST-Linkv source [find interface/stlink.cfg] #设置使用的调试烧录器为J-link source [find interface/jlink.cfg] #设置使用的调试烧录器为DAP-Link source [find interface/cmsis-dap.cfg] # 调试接口选择swd,此类型是ST-Link专用的 transport select hla_swd # 调试接口选择swd,此类型是J-link,DAP-Link通用 transport select swd #设置目标芯片,选择stm32f1x,如果是f4系列的换成f4就行了其他系列以此类推 source [find target/stm32f1x.cfg]
编辑完成文件保存到openocd的文件夹,方便在clion中选择配置文件
创建一个嵌入式如门经典demo工程点灯
while (1)
{
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_8);
HAL_Delay(500);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
调试功能同keil相比稍逊色些,但仍然可以断点调试、查看寄存器、反汇编、查看内存、变量值
/* USER CODE BEGIN 1 */
int __io_putchar(int ch)
{
while ((USART1->SR & 0X40) == 0) // 等待上一次发送完
;
USART1->DR = (uint8_t)ch; //串口发送字符
return 1;
}
/* USER CODE END 1 */
/* USER CODE BEGIN Includes */
#include <stdio.h>
/* USER CODE END Includes */
/* USER CODE BEGIN WHILE */
char str[] = "demo\n";
while (1)
{
for (int i = 0; i < 5; ++i)
{
printf("%d", i);
}
printf("%s", str);
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_8);
HAL_Delay(500);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
如果本文对你有帮助不要吝啬你的点赞、收藏、评论、关注,你的支持将是我继续输出优质文章的动力,也欢迎嗮出你的博客一起进步
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。