Rice我叫加饭? · 2023年05月12日 · 广东

Ubuntu一条命令下载MCU固件

现在很多项目开发都逐渐的迁移到Linux环境下。但是Linux开发单片机就没有像Windows下开发那么方便,它没有对应开发工具(KEIL,IAR等),它们自带烧录等功能。所以在Linux上开发单片机需要安装下载固件的工具--JLink。

JLink环境搭建

  1. 我的开发环境是Ubuntu 20.04
  2. JLink环境搭建比较简单,安装包下载链接:https://www.segger.com/downlo...
  3. 在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$ 
  1. 安装JLink:
rice@rice:~/jlink_test$ sudo dpkg -i JLink_Linux_V788b_x86_64.deb

JFlash下载固件

  1. 创建新的project

  1. 选择Target device

  1. 打开固件文件

  1. 下载固件


命令行下载固件

JLinkExe提供了一系列批处理命令,详细命令参考JLink官网:https://wiki.segger.com/J-Lin...。我们通过JLinkExe命令行下载固件:

  1. 在terminal中执行如下命令,进入JLink下载界面。选择设备类型,接口类型,接口速度,自动连接选择:

  1. 在JLink下载界面中执行下载命令,执行loadbin命令:

一条命令下载固件

上面的两种方式都繁琐,在实际场景中,更佳倾向一条命令就完成下载功能,无需任何的交互。
JLinkExe也提供了方案,批处理脚本 + 命令文件的方式解决,详细命令文件使用方法参考JLink官网:https://wiki.segger.com/J-Lin...

  1. 因为loadbin不能通过直接通过批处理命令执行,它需要放在命令文件中。创建CommandFile.jlink文件。并将命令(loadbin ./test.bin 0x08000000)写入文件中。

  1. 执行一下命令,便可以下载文件了。

总结

  1. 可以不需要开发环境,通过一条命令解决了我们的烧录问题。
  2. 在Linux下开发,大部分也是通过命令的形式做一些操作,所以符合我们的开发需求。
推荐阅读
关注数
1761
内容数
51
一个周末很无聊的嵌入式软件工程师,写写经验,写写总结。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息