STM32– 摆脱Keil使用Linux开发编译下载

目录

一、编译准备

1、keil编译和make编译区别

2、编译环境

3、编译工程

二、STM32编译器

1、编译器下载

2、编译器解压

三、编译stm32工程

1、编译

2、编译清理

四、下载STM32固件(J-Flash V7.94f使用方法)

1、获取下载工具

2、打开下载工具

3、选择对应芯片

4、导入hex文件,连接jlink

5、刷机

五、总结


一、编译准备

1、keil编译和make编译区别

keil是一个IDE,集成了开发、编译、下载、调试功能,操作简单(一键编译,一键下载)。

make是一个强大的项目编译管理工具,相比keil开发,此经验可使用到其他项目编译过程中,可以使开发者快速切换到其他芯片平台(不用Keil开发)的编译,实际上工作后绝大部分项目用的都是make来管理的编译。

2、编译环境

编译机系统Ubuntu 23.04

系统需要安装make,安装make命令:apt-get install make

3、编译工程

使用Cubemx生成工程,生成方法请参考:

CubeMx搭建、生成基础工程-CSDN博客

笔者所用的示例为STM32F407工程,如需要请自取,链接如下:

https://download.csdn.net/download/qq_30095023/88768286icon-default.png?t=N7T8https://download.csdn.net/download/qq_30095023/88768286

二、STM32编译器

1、编译器下载

到ARM官网下载编译器

Downloads | GNU Arm Embedded Toolchain Downloads – Arm DeveloperDownload the GNU Embedded Toolchain for ARM, an open-source suite of tools for C, C++, and Assembly programming for 32-bit ARM Cortex-A, ARM Cortex-M and Cortex-R familiesicon-default.png?t=N7T8https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads

官网下载较慢,可到这里取:

链接:https://pan.baidu.com/s/17CGVCrJeKHBcS-h1JNdpAw?pwd=l4kc 
提取码:l4kc

2、编译器解压

将编译器拷贝到/usr/XYB_BIN目录

解压

bzip2 -d gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2

tar -xf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar 

解压后如下图所示

三、编译stm32工程

将stm32 make工程(CubeMxMakefile,通过CubeMx生成)拷贝到  /usr/XYB_BIN

跳转到目录:/usr/XYB_BIN/CubeMxMakefile

1、编译

执行编译命令:make GCC_PATH=../gcc-arm-none-eabi-10.3-2021.10/bin/

编译输出

编译输出目录为build,elf、hex、bin文件都在build目录下

2、编译清理

删除编译生成的中间产物以及hex,bin等固件文件,命令如下:

四、更新STM32固件(J-Flash V7.94f使用方法)

1、获取下载工具

下载工具使用jlinkWindows,下载链接如下

https://www.segger.com/downloads/jlink/icon-default.png?t=N7T8https://www.segger.com/downloads/jlink/

官网下载较慢,可到如下链接下载:

链接:https://pan.baidu.com/s/1m5tIAtDODxaYRbwDPPiUJw?pwd=58z0 
提取码:58z0

2、打开下载工具

桌面打开J-Flash V7.94f,如下图所示操作

3、选择对应芯片

hex文件为上文编译步骤后所生成,位于build目录下。导入hex文件,如下图:

连接单片机,如下图:

 连接成功后日志窗口会有如下输出:

5、刷机

更新单片机内部固件


更新后结果如下图

五、总结

如有问题请指出,感谢!