CubeMX+Eclipse+Jlink STM32开发环境搭建
Eclipse还是我用得最多的IDE,不管是CCS还是Xilinx的SDK,都是Eclipse的开发环境。所以最近准备做STM32相关的开发时,也准备用Eclipse。
软件下载与安装
- STM32CubeMX
- Eclipse
CubeMX是ST的用于生成初始化代码的工具,能大大提升开发的效率。Eclipse是一个开源的IDE,从官网可以下载到这个eclipse installer,然后选择Eclipse IDE for Embedded C/C++ Developers。目前官网的Eclipse版本是2022-03,这也是我目前用的版本。
Eclipse Embedded CDT,Eclipse的C/C++嵌入式开发工具是一个非常大的开源项目。
从项目的官网中可以看到,它还提供了一些额外的工具链接,包括build tools和gcc工具链。build tools用来生成Makefile,gcc工具链负责真正的编译和链接。这些工具包都是通过xPack管理的。
要说xPack得从JavaScript说起,有一个包管理工具叫做npm(Node Package Manager),这里的包都是用JavaScript写的。xpm(xPack Project Manager)是npm管理的一个Module,关于xPack的介绍可以在这里找到更多详细的解释。大概就是说xpm管理的包的格式和npm几乎是一样的,“xPack”中的“x”取自“eXtended”,它管理的包是通用的包,并不局限于JavaScript。
用xpm安装build tools和工具链都非常简单,安装完成后,在Eclipse的“Windows->Preferences”里面可以对build tools和工具链进行设置,只需要点右边的xPack就可以自动地关联上刚刚安装的工具。
CubeMX生成初始化代码
用Eclipse生成初始化代码真的非常方便!选择你所用的处理器型号创建工程后,可以在Help菜单栏中找到帮助文档。主要一个就是关于CubeMX的使用,另一个就是处理器相关的文档,还有各种应用笔记,资料非常丰富。
外设的配置就不详细介绍了,一开始让我比较震惊的是它对FreeRTOS也有很好的支持。
不光是FreeRTOS的一些configuration,heap管理,task、Timer、Semaphore、Queue的初始化都非常方便。
CMSIS(Common Microcontroller Software Interface Standard)是Arm提供的一种标准接口。这里FreeRTOS的接口可以选择CMSIS_V2,对于CortexM4来说,选CMSIS_V1或者CMSIS_V2都行,后者是前者基础上的扩展。这部分介绍可以在CMSIS文档中找到介绍。
基于CMSIS-RTOS接口的开发,用户就不会直接调用FreeRTOS的API,而是Arm提供的RTOS的API,应该是便于在不同的RTOS之间迁移。
因为我们是采用Eclipse开发,所以在输出的形式上选Makefile应该是最合适的。
CMSIS Package下载
其实如果我们已经用CubeMX生成了Makefile文件,这里的CMSIS Package我们基本已经用不上了。因为所有源文件和编译的流程都已经由Makefile管理了。但是这里还是需要下载你所用到的处理器的Package,原因后面再介绍。
第一次打开CMSIS Package的管理界面应该是空的,需要点右上角的刷新才能看到可以下载的Package。
Eclipse建立工程
新建工程的时候选择“Makefile Project with Existing Code”。
选择MakeFile所在的路径,工具链选择Arm Cross GCC。
然后打开某一个源文件,会发现有很多红色的波浪线,这是因为当前的工程并不知道include的路径和一些symbol的定义。
打开Makefile可以看到里面的-D参数和-I参数。去掉“-D”和“-I”才是具体的Define和Include,Makefile中这么些是方便把这些设置直接作为gcc编译的选项。比如“-DSTM32F407xx”实际上是需要定义“STM32F407xx”这个Symbol。
在工程的Properties中添加这些include和symbol就不会有那些红色的波浪线了。
要通过编译还有非常重要的一步,就是选择Device。
因为Makefile是我们自己生成的,所以前面即使不往工程里添加的include和symbol,我们根据这个Makefile进行make,一样能够完成编译。当工程目录下没有Makefile时,Eclipse CDT会帮我们生成一个Makefile,那时候才会用到我们在上面设置的东西。
我发现如果不选择Device,就无法编译,问题好像是找不到make。但只要选了相应的Device就可以正常编译啦。
如果你在上面找不到你的Device,就需要通过CMSIS的Package管理页面下载所需的Package。在这里选择了Device之后,就可以在Documents的页面里看到相关的文档。其中比较常用的应该就是“STM32F4xx HAL Drivers”这个文档,基本就靠查这个写代码了。
如果要增加新的源文件或者增加新的include目录就需要自己手动改Makefile。
LED Blink
我做的第一个demo工程是一个LED Blink的功能。在CubeMX中配置一个task,这个task的函数可以像下面这样写。自己只需要加一行代码“HAL_GPIO_TogglePin”,然后改一下delay的时间即可,这里的500指的是500ms,FreeRTOS的tick默认是1ms。
/* USER CODE END Header_BlinkTskFxn */
__weak void BlinkTskFxn(void *argument)
{/* USER CODE BEGIN BlinkTskFxn *//* Infinite loop */for(;;){HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_9);osDelay(500);}/* USER CODE END BlinkTskFxn */
}
Jlink
jlink驱动可以直接在官网下载。
正版的jlink特别贵,最新的jlink驱动可以检测出你用的jlink是不是盗版的。但我觉得大部分人应该都是在某宝上买的盗版的jlik,这样在每次连jlink的时候就会有类似上面这样的提示。网上也有各路大神给出解决方案,但我为了省事就直接装了最低版本的jlink驱动V5.00,也能用。
Jlink调试
在前面配置Eclipse的工具链的界面,还有下面这个设置Jlink路径的地方。需要设置成jlink的安装目录。
点绿色的小虫子旁边的下拉按键,选择“Debug Configuration”,
新建一个J-Link Debug的配置。只需要做一些必要的配置就行,比如elf文件和处理器型号,其余大部分都可以保持默认。然后基本上就可以调试了。
Jlink下载并运行
用过MDK的都知道,除了jlink调试,MDK也可以直接往flash里烧写。
Eclipse也能做到这一点。通过下面的方式添加一个External Tool。
在进行配置之前,有必要先了解一下Jlink的使用。Jlink也是一个终端,在Jlink的终端里输入command来实现连接设备、调试、flash烧写等功能。Jlink本身是一个exe可执行文件,它也可以通过windows的终端来运行,通过命令行运行Jlink有一些command line option。
上面提到的command可以写到一个CommandFile里,然后作为command line option中的一个选项,实现jlink的批处理运行。详细的信息可以查看官网的文档:Jlink命令(PS:官网给出的命令是针对最新的Jlink驱动的,所以如果用比较老的驱动可能会遇到某些命令不支持的情况)
经过我的一些尝试后,我确认下面这样的参数配置是完全可行的。另外需要在工程目录下新建一个“JlinkCommandFile.jlink”,用来写Jlink的command。
-device STM32F407VE -if SWD -speed 4000 -CommanderScript ${project_loc}\JlinkCommandFile.jlink
JlinkCommandFile.jlink:
r
h
loadfile D:\PrjStm32\NUEDC2021H\build\NUEDC2021H.bin
r
Exit
JlinkCommandFile.jlink中每一行就是一个command。r表示复位;h表示停止(这里有没有好像都可以);loadfile后面跟一个要烧写进flash 的文件。烧写完成之后再用“r”复位,可以让程序马上开始执行,而不需要让板子重新上电。最后Exit Jlink。
CubeMX+Eclipse+Jlink STM32开发环境搭建相关推荐
- eclipse+gcc STM32开发环境搭建及调试
记录一下本人进行eclipse+gcc stm32开发环境的搭建过程,以便后续学习使用 参考资料如下: CubeMX+Eclipse+Jlink STM32开发环境搭建_小裘HUST的博客-CSDN博 ...
- 1、STM32开发-环境搭建-Keil5安装
MDK Keil STM32开发环境搭建 一.准备 1.MDK 安装包获取 MDK安装官网下载,在官网选择MDK-Arm选项 在表单中填写个人信息,最后点击Submit提交,便自动进入软件下载界 ...
- Linux 下 STM32 开发环境搭建
安装编译器 如果还没安装编译器的,先安装: sudo apt install gcc-arm-none-eabi sudo apt install gdb-arm-none-eabi sudo apt ...
- java中的adt安装配置,Android SDK 2.3与Eclipse最新版开发环境搭建
一.背景和准备 1.Android 简介 Android是谷歌于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,号称是首个为移动 ...
- Android SDK 2.3与Eclipse最新版开发环境搭建(一)
一. 背景和准备 1. Android简介 Android是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,号称是 ...
- linux eclipse下qt开发环境搭建,Qt Eclipse开发环境的部署 上篇
关于Qt Eclipse的开F发,将会从不同的环境中区安装部署,分为上.中.篇,三篇文章来讲.Windows,Linux平台下安装使用eclipse + QT4.4.3开发环境,Windows,Li ...
- Eclipse C/C++开发环境搭建
1 Eclipse的安装 到http://java.sun.com/j2se/1.5.0/download.jsp 下载JRE安装: 到http://eclipse.org下载Eclipse安装.(这 ...
- eclipse android sdk开发环境搭建,Android SDK 2.3与Eclipse最新版开发环境搭建(四)
五. Eclipse ADT 配置 ADT 的Eclipse Plugin 安装成功之后,开始ADT 的配置,具体如下: 1. Eclipse重启后,选择Window > Preferences ...
- eclipse hana xs 开发环境搭建
不使用HANA STUDIO,使用eclipse安装插件的方式,搭建环境.其实studio也是eclipse基础上来的. 下载eclipse,注意不要下载neon版本的,现在(20160527)han ...
最新文章
- 聊聊flink的HistoryServer
- 12Boostrap响应式布局
- 行业观察丨激荡二十年——货代软件1999—2019
- 单片机小白学步系列(十三) 点亮第一个LED——好的開始,成功的一半
- 中文编程语言_文言文编程语言,让你明白什么叫“中文比英语还难”。
- mysql-修改密码(error-1290 (HY000): The MySQL server is running with the --skip-grant-tables option so)
- 开源在线文档编辑工具_开源暑期实习,在线教育新工具等
- 6.5. Properties
- Atitit timer tech定时器技术总结目录1.1. 程序语言timer dbtimer ,os tiemr 11.2. Atitit timer定时框架api 11.3. 相关技术
- talib如何安装方法
- ITIL4考试练习题
- idea创建yml配置文件不是绿色
- JDK8下载安装与Win10下Java环境变量配置
- Markdown常用字体 大小 颜色和背景设置
- 编程:Python实现图片识别
- 巨详细,大电流线性电源(LDO)原理,看完你就明白了
- 两个进程共享内存,一个写,一个读
- 内网网站发布到外网-五种方法
- 计算机网络安全职业资格证书,计算机网络管理员职业资格证书
- vue根据不同权限显示图片_vuex根据不同的用户权限展示不同的路由列表