《嵌入式 - 工具》J-link读写MCU内部Flash

news2024/10/7 6:50:41

1 J-Link简介

J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真,是学习开发ARM最好最实用的开发工具。
J-link 软件包的工具很多,有J-Flash,J-Link Commander,J-Link GDB Server,J-Link RTT Viewer,J-Mem等小工具组成,本文讲解J-link读写MCU内部Flash的相关软件。

2 J-link下载与安装

下载地址:https://www.segger.cn/downloads/jlink/

J-link从V750以后,Windows就有64位的软件。

在这里插入图片描述

笔者这里下载的是JLink_Windows_x86_64_V754d.exe。下载后直接安装即可,这样就不再赘述了。

3 J-link读写MCU内部Flash

下面以STM32为例进行讲解,当然其他MCU也是试用的,只要有JTAG或SWD接口即可。

3.1 使用J-Flash下载程序

这里使用J-Flash将程序下载到MCU的内部Flash中。打开J-Flash,在安装完J-Link驱动就会有该软件。

首次使用就需要新建工程,如图所示。

在这里插入图片描述

然后就选择相应的芯片。

在这里插入图片描述

根据板子的芯片类型选择即可。

接下来将前面编译好的程序拖动进入J-Flash。J-Flash支持Hex、Bin等多种文件类型。笔者这里选择的是HEX文件类型。如果烧写的是Bin文件,还需要指定烧写的起始地址,因为Bin文件是不包含烧写地址的。

在这里插入图片描述

然后点击‘Connect’。

在这里插入图片描述

然后按F7或者点击‘Production Programming’即可下载。

在这里插入图片描述

值得注意的是,要想生成HEX文件,需要在Keil配置输出文件。

在这里插入图片描述

如果要想生成bin文件,需要在KEIL的User选项中,如下图添加这两项:
fromelf --bin --output=…/Output/STM32F103.bin …/Output/STM32F103.axf

在这里插入图片描述

编译完成后就会在Output目录下生成bin文件。

在这里插入图片描述

烧写成功之后,此时程序还没有运行,点击Target->Manual Programming->Start Application,或者按快捷键F9,程序才开始运行,或者按复位键也可以让程序运行。

在这里插入图片描述

如果想让每次下载完成后,程序自动运行,而不用复位。可以使用工程配置下的自动运行选项。打开Option->Project Setting,切换到Production选项,勾选Start Application,就可以让程序自动运行。

在这里插入图片描述

当然啦,也可下载任意bin文件到MCU的内部Flash中。另外也可手动进行烧写。

3.2 使用J-Flash读取Flash

打开J-Flash,和上一节一样,选择相应的芯片,然后点击‘Connect’。

选择Target->Manual Programming ->Read Back,一共有三个选项,用于读取不同的Flash地址范围。

在这里插入图片描述

 Selected sectors
被选择的扇区,可以在工程配置选项Project settings->Flash,查看哪些扇区被选择了。

在这里插入图片描述

 Entire chip
整个Flash区域,一般选择这个选项,读取整个Flash区域的程序

 Range
手动指定读取的Flash地址范围。

笔者这里选择Range,指定读取Flash的内容。

在这里插入图片描述

等待片刻即可读取完成。

在这里插入图片描述

选项File-> Save data file或者是Save data file as,保存读取的数据。

在这里插入图片描述

然后即可对比烧写的数据和读取数据是否一致,可以用作程序的校验。

3.3 使用J-Mem读取Flash

打开J-Mem,选择相应的芯片,然后点击‘OK’。

在这里插入图片描述

如果连接正常就可以看到MCU的4G内存空间的内容。

在这里插入图片描述

笔者这里使用的是STM32F1,是Cortex-M3的内核,Cortex-M3存储器映射结构如下图所示。

在这里插入图片描述

Cortex-M3是32位的内核,因此其PC指针可以指向2^32=4G的地址空间,也就是0x0000_0000——0xFFFF_FFFF这一大块空间。根据图中描述,Cortex-M3内核将0x0000_0000——0xFFFF_FFFF这块4G大小的空间分成8大块:代码、SRAM、外设、外部RAM、外部设备、专用外设总线-内部、专用外设总线-外部、特定厂商等,因此使用该内核的设计者必须按照这个进行各自芯片的存储器结构设计。

Cortex-M3存储器结构和STM32存储器结构:

在这里插入图片描述

图中可以很清晰的看到,STM32的存储器结构和Cortex-M3的很相似,不同的是,STM32加入了很多实际的东西,如:Flash、SRAM等。可以看到Flash的地址是0x08000000。

这里就可以指定到Flash中,读取相应的内容。

在这里插入图片描述

当然也可以保存相应地址的内容。

点击右键,选择“Save”。

在这里插入图片描述

然后选择保存路径,设置其实地址。

在这里插入图片描述

即可保存任意数据。

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

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

相关文章

VirtualBox 7.0.10 使用宿主机物理硬盘

方法: 利用virtualbox的管理工具,将宿主机脱机后的物理硬盘,映射为一个vmdk,然后在vitrualbox中注册该vmdk,然后分配给虚拟机使用。 1. 右键单击window桌面左下角,选择 Windows PowerShell (管理员) 2. c…

第一章 函数的概念

文章目录 考点1、定义域2、对应法则 一、函数的概念1、自变量 x , 因变量 y,一一对应,因此有公式 y f (x)2、定义域具体函数的定义域 (送分题) 真题1、2、3、4、抽象函数的定义域 真题1、2、 3、根据函数的对应法则求函数表达式题…

会声会影VideoStudio2023中文旗舰版有哪些新功能及最低系统配置要求

会声会影VideoStudio2023中文旗舰版使用起来很有趣。它很容易使用,但仍然给你很多功能和力量。会声会影VideoStudio2023中文旗舰版让我与世界分享我的想法!“这个产品的功能非常多,我几乎没有触及它的表面,我可以做大量的编辑、色…

js ==运算规则

let a {name: zhangsan,valueOf(){return 100;} }; let b 100; console.log(ab); //true let a {value: 1,valueOf: function() {return this.value;} };console.log(a 1 && a 2 && a 3); // 输出 true

macOS Sonoma 14 beta 3 (23A5286i) ISO、IPSW、PKG 下载,公共测试版现已推出

macOS Sonoma 14 beta 3 (23A5286i) ISO、IPSW、PKG 下载,公共测试版现已推出 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装…

树莓派安装ROS

ROS,树莓派如何快速部署ROS 版本查看 检查Raspbian版本的最简单方法是利用终端。 在开始之前,请确保已经开启了一个终端会话。 在Raspbian中使用一个简单的命令来获取当前版本。 要查看当前安装的Raspbian版本信息,需要做的就是执行下面的…

RT1052的介绍及MDK

文章目录 RT1052 核心板的资源型号为:RT1052CVL5B。GPIO端口原理LDOEEPROM 复位电路启动模式设置电路BootLoader地址 开发环境搭建新建 基于 FSL 库的 MDK5 工程软件下载SDK包SDK包内容boards 文件夹CMSIS 文件夹devices 文件夹middleware 文件夹: 新建工…

解决Git拉取代码仓库时显示文件名太长无法创建的问题解决

问题描述 拉取鸿蒙仓库应用示例代码时,鸿蒙应用示例代码,发现能下载成功,但是会报一个错误,错误截图和信息如下所示: 报错信息: try/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/ …

Redis的9种数据类型与数据持久化

系列文章传送门: 【七天入门数据库】第一天 MySQL的安装部署 【七天入门数据库】第二天 数据库理论基础 【七天入门数据库】第三天 MySQL的库表操作 【七天入门数据库】第四天 数据操作语言DML 一、Redis的9种数据类型的基本操作 (一)k…

服务器中了360后缀勒索病毒,360后缀勒索病毒介绍解密数据恢复

360后缀勒索病毒,是BeijingCrypt勒索家族中的一种勒索软件病毒,这种恶意软件一旦攻击了企业的服务器就会利用自身独特的加密技术来全盘扫描系统文件,并对用户的全部文件进行加密,并要求用户支付赎金以解锁文件。近期,我…

16matlab数据分析 多项式的求导(matlab程序)

1.简述 多项式的求导 polyder( ):多项式求导函数。调用格式: ( 1 ) ppolyder( P):求多项式P的导函数。 ( 2 ) ppolyder(P,Q):求PQ的导函数。 ( 3 ) [p,q]polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。 多项式的表示 多项式的四则运算 四…

i.MX6ULL(十七) linux LED驱动

1 设备树 LED 驱动原理 对于MX6ULL 点灯方式较多,直接通过寄存器操作更适合低成本设备,与裸机实验不同的是,在 Linux 下编写驱动要符合 Linux 的驱动框架。 但Linux 下的任何外设驱动,最终都是要配置相应的硬件寄存器&#xff0…

Spring中的Bean对象

经过上一篇博客,我们已经可以实现基本的 Spring 读取和存储对象的操作了,但在操作的过程中我们发 现读取和存储对象并没有想象中的那么“ 简单 ” ,所以接下来我们要学习更加简单的操作 Bean 对象的方法。 在 Spring 中想要 更简单的存储…

mac怎么转换音频格式?

mac怎么转换音频格式?相信很多小伙伴都知道,平时我们接触到的音频格式大多是mp3格式的,因为mp3是电脑上最为流行的音频格式,不过除了mp3格式外,还有很多不同的音频格式,有时候不同网上或者不同软件上下载到…

Python爬虫学习笔记(十)————Scrapy

目录 1.scrapy是什么? 2.安装scrapy 3. scrapy项目的创建以及运行 (1)创建scrapy项目: (2)项目组成: (3)创建爬虫文件: ①跳转到spiders文件夹中去创建…

ext4 - delay allocation数据结构

概述 延迟分配delay allocation是ext4非常重要的特性,启用该特性write系统将用户空间buffer写入内存page cache中即返回,此时也不会真正进行磁盘block分配,而是延迟到磁盘回写时(比如dirty ratio达到一定值,定时刷新&…

高校大数据教材推荐-《Python中文自然语言处理基础与实战》

《Python中文自然语言处理基础与实战》是“十四五”职业教育国家规划教材,是大数据应用开发(Python)“1X”职业技能等级证书配套系列教材。本书以项目为载体,突出职业技能。坚持理实一体化的理念。理实一体化,就是理论…

H5基础教程

w3school官网 请点击下面工程名称,跳转到代码的仓库页面,将工程 下载下来 Demo Code 里有详细的注释 TestH5

Vue3+Vite前端知识汇总1篇

目录 1、设置package.json,让编译完成后自动打开浏览器。 2、设置vite.config.ts,设置src别名,后面就不用 ../../../ 了。 3、安装types/node 解决vscode显示红波浪线问题。 4、安装 sass和reset.css 5、创建并引入全局组件,HospitalTop…

2816. 判断子序列

题目链接&#xff1a; 自己的做法&#xff1a; #include <bits/stdc.h>using namespace std;const int N 1e5 10; int a[N], b[N]; int main() {int n, m;bool flag true;scanf("%d%d", &n, &m);for (int i 0; i < n; i) scanf("%d"…