现在很多项目开发都逐渐的迁移到Linux环境下。但是Linux开发单片机就没有像Windows下开发那么方便,它没有对应开发工具(KEIL,IAR等),它们自带烧录等功能。所以在Linux上开发单片机需要安装下载固件的工具–JLink。
JLink环境搭建
- 我的开发环境是Ubuntu 20.04
- JLink环境搭建比较简单,安装包下载链接:https://www.segger.com/downloads/jlink/JLink_Linux_V788b_x86_64.deb
- 在Ubuntu的terminal中执行如下命令:
rice@rice:~/jlink_test$ wget https://www.segger.com/downloads/jlink/JLink_Linux_V788b_x86_64.deb
--2023-05-11 11:51:48-- https://www.segger.com/downloads/jlink/JLink_Linux_V788b_x86_64.deb
Resolving www.segger.com (www.segger.com)... 195.122.144.65
Connecting to www.segger.com (www.segger.com)|195.122.144.65|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘JLink_Linux_V788b_x86_64.deb’
JLink_Linux_V788b_x [ <=> ] 44.19K 27.4KB/s in 1.6s
2023-05-11 11:51:52 (27.4 KB/s) - ‘JLink_Linux_V788b_x86_64.deb’ saved [45248]
rice@rice:~/jlink_test$
- 安装JLink:
rice@rice:~/jlink_test$ sudo dpkg -i JLink_Linux_V788b_x86_64.deb
JFlash下载固件
- 创建新的project
- 选择Target device
- 打开固件文件
- 下载固件
命令行下载固件
JLinkExe提供了一系列批处理命令,详细命令参考JLink官网:https://wiki.segger.com/J-Link_Commander#Batch_processing。我们通过JLinkExe命令行下载固件:
- 在terminal中执行如下命令,进入JLink下载界面。选择设备类型,接口类型,接口速度,自动连接选择:
- 在JLink下载界面中执行下载命令,执行loadbin命令:
一条命令下载固件
上面的两种方式都繁琐,在实际场景中,更佳倾向一条命令就完成下载功能,无需任何的交互。
JLinkExe也提供了方案,批处理脚本 + 命令文件的方式解决,详细命令文件使用方法参考JLink官网:https://wiki.segger.com/J-Link_Commander#Using_J-Link_Command_Files。
- 因为loadbin不能通过直接通过批处理命令执行,它需要放在命令文件中。创建CommandFile.jlink文件。并将命令(loadbin ./test.bin 0x08000000)写入文件中。
- 执行一下命令,便可以下载文件了。
总结
- 可以不需要开发环境,通过一条命令解决了我们的烧录问题。
- 在Linux下开发,大部分也是通过命令的形式做一些操作,所以符合我们的开发需求。