Ubuntu一条命令下载MCU固件

news2024/10/7 6:42:02

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

JLink环境搭建

  1. 我的开发环境是Ubuntu 20.04
  2. JLink环境搭建比较简单,安装包下载链接:https://www.segger.com/downloads/jlink/JLink_Linux_V788b_x86_64.deb
  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
  2. 选择Target device

  3. 打开固件文件
  4. 下载固件


命令行下载固件

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

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

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

一条命令下载固件

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

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

总结

  1. 可以不需要开发环境,通过一条命令解决了我们的烧录问题。
  2. 在Linux下开发,大部分也是通过命令的形式做一些操作,所以符合我们的开发需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/516581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序上线流程

1.配置服务器域名 小程序接口API 2.业务域名配置 ​首先配置小程序的业务域名&#xff0c;将下载txt文件放在A 域名根目录下&#xff0c;然后才可以配置业务域名为 A 。主要应用场景为&#xff0c;小程序页面跳转其他小程序 3. npm run build:weapp 编译&#xff0c;小程序代…

【ChatGPT】 AI 手把手一步一步教学 Self-Attention:这些动图和代码让你一次读懂ChatGPT背后的“自注意力”

BERT 及其多种变体已经在多种语言理解任务上取得了非常出色的表现,这些架构全都基于 Transformer,而 Transformer 又使用了一种名为「自注意力」的方法。本文将通过图示和代码对自注意力机制进行透彻的解读。当然,在阅读本文之前,你可能也想了解什么是注意力机制。没有问题…

【JS】js常用工具类:

文章目录 一、 将对象拼接到url地址后面二、正则获取url中的图片名称三、获取多数组之间的差集四、数组遍历判断是否需要拼接地址五、 数组去重六、如果值不存在就 push 进数组&#xff0c; 反之不处理七、过滤对象中为NaN&#xff0c;undefined的属性八、字符串中插入千位分隔…

基于SpringBoot+Vue的校园疫情防控系统(附源码和数据库)

文章目录 第一章2.主要技术第三章第四章 系统设计4.1功能结构4.2 数据库设计4.2.1 数据库E/R图4.2.2 数据库表 第五章 系统功能实现5.1系统功能模块5.2后台功能模块5.2.1管理员功能 源码咨询 第一章 springboot校园疫情防控系统演示录像2022 一个好的系统能将校园疫情防控的管理…

ChatGPT网站如何像软件一样可以安装下载

今天给大家分享一下, 如何实现网站能够在手机端像软件一样下载在桌面保存, 这样下次就能像打开app一样访问网站了, 是不是听了之后会很心动呢, 接下来我们就一起来学习一下知识, 快来试试这样的效果吧, 最后分享一下我做的一个chatGPT网站, 欢迎大家免费试玩chatGPT, 不过我的免…

JVM系列-第8章-执行引擎

执行引擎 执行引擎概述 执行引擎概述 执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念&#xff0c;这两种机器都有代码执行能力&#xff0c;其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的&#xff0c;而虚拟…

GreatSQL社区月报 | 2023.04

GreatSQL 是一个开源的 MySQL 技术路线数据库社区&#xff0c;社区致力于通过开放的社区合作&#xff0c;构建国内自主 MySQL 版本及开源数据库技术&#xff0c;推动中国开源数据库及应用生态繁荣发展。 为了帮助社区的小伙伴们更好地了解 GreatSQL 社区的实时进展&#xff0c…

项目经理什么事都做,只会让你成为工具人

每个人拥有的时间都是一样的&#xff0c;每天二十四个小时&#xff0c;为什么有的项目经理每天提前完成工作下班喝酒撸串&#xff0c;为什么有的项目经理每天熬夜加班到天明&#xff1f; 为什么总是你的时间不够用&#xff0c;每天都很忙碌呢。很可能是你的时间没有管理好。 …

笔记-指针的进阶

1.字符指针 char arr[] "hello bit." char * p arr 这里p指向的是数组的首元素&#xff0c;arr数组是可以修改的。 &#xff08;const&#xff09;char * pstr "hello bit." 这里的字符串是常量字符串&#xff0c;不能修改。 这里有一个面试题&#xf…

LeetCode_二叉树_中等_113.路径总和 II

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有从根节点到叶子节点路径总和等于给定目标和的路径。 叶子节点是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root…

网络基础知识(1)——从OSI七层模型和TCP/IP说起

网络通信概述 网络通信本质上是一种进程间通信&#xff0c;是位于网络中不同主机上的进程之间的通信&#xff0c;属于 IPC 的一种&#xff0c; 通常称为 socket IPC&#xff0c;如图中所示。所以网络通信是为了解决在网络环境中&#xff0c;不同主机上的应用程序之间的通信问题…

U盘上的文件删除了可以恢复吗 U盘上的文件怎么在电脑上恢复

随着数据时代的到来&#xff0c;人们使用U盘来存储和传输文件已经成为一种普遍的方式。然而&#xff0c;有时候人们会不小心将重要的文件从U盘上删除&#xff0c;或者由于其他原因导致文件丢失&#xff0c;这会给人们带来很多麻烦和不必要的损失。因此&#xff0c;在这篇文章中…

华为OD机试(1-20)老题库解析Java源码系列连载ing

华为OD机试算法题新老题库练习及源码 老题库1.敏感字段加密2.IPv4地址转换成整数3.VLAN资源池4. 求字符串中所有整数的最小和5.求满足条件的最长子串的长度6.字符串分割7.一种字符串压缩表示的解压8.矩阵最大值9.单词接龙10.找出符合要求的字符串子串11.字符串加密12.英文输入法…

指定目标对角线创建值全是1的下三角矩阵numpy.diagflat()方法

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 指定目标对角线 偏离主对角线的距离k 创建值全是1的下三角矩阵 numpy.tri() 选择题 关于以下代码说法错误的一项是? import numpy as np print("【执行】a np.tri(3, 3, 0, dtypeint)…

三十二、VPN技术概述——GRE、IPSec、MPLS vpn

文章目录 vpn 简介用途优缺 一、GRE-VPN1、基础配置步骤&#xff1a;2、可选配置 二、IPSEC-VPN 概述1、IPSes 特性2、IPSec 架构3、IPSec 数据封装 三、GRE OVER IPSEC VPN 配置1、配置2、注意 vpn 简介 vpn&#xff1a;virtual private network&#xff08;虚拟专用网络&…

Prompt都不需要了,动动手就能玩多模态对话系统,iChat来啦!

作者 | 智商掉了一地 近日有很多团队基于用户友好的 ChatGPT 进行再创作&#xff0c;其中不乏有比较亮眼的成果。InternChat工作强调了用户友好性&#xff0c;这是通过超越语言的方式&#xff08;光标与手势&#xff09;与聊天机器人交互来进行多模态任务的。InternChat 的命名…

MATLAB基础入门:语法、数据类型和常用函数

MATLAB是一种非常强大的数学计算软件&#xff0c;广泛应用于工程、科学、金融和其他领域的计算分析中。如果您刚开始学习MATLAB&#xff0c;那么这篇文章就是为您准备的。在这篇文章中&#xff0c;我们将介绍MATLAB的基础语法、数据类型和常用函数&#xff0c;以帮助您快速入门…

容器技术Docker

什么是容器 Linux容器是与系统其他部分隔离开的一系列进程&#xff0c;从另一个系统镜像运行&#xff0c;并由该镜像提供支持进程所需的全部文件。 容器镜像包含了应用的所有依赖项&#xff0c;因而在从开发到测试再到生产的整个过程中&#xff0c;它都具有可移植性和一致性。…

C++ | std::bind

C | std::bind 文章目录 C | std::bindstd::bind函数原型bind函数参数返回对象的类型&#xff1a; 实战1.普通函数/类成员函数/类成员变量2.模板函数3.lambda表达式 Reference std::bind函数原型 // 无返回值&#xff08;1&#xff09; template <class Fn, class... Args&…