嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > Ubuntu一条命令下载MCU固件

Ubuntu一条命令下载MCU固件

现在很多项目开发都逐渐的迁移到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下开发,大部分也是通过命令的形式做一些操作,所以符合我们的开发需求。