【随手笔记】使用J-LINK读写芯片内存数据

embedded/2024/9/24 10:38:21/

第一种使用JLINK.exe

1. 打开j-link.exe

2.输入【usb】

在这里插入图片描述

3. 连接芯片

  1. 输入【connect】
  2. 输入芯片型号【STM32L071RB】
  3. 输入连接方式 【S】 使用SWD连接方式
  4. 输入连接速率 【4000】
  5. 连接成功

在这里插入图片描述

4. 输入【?】查看指令提示

在这里插入图片描述

5. 读写指令

Mem              Mem  [<Zone>:]<Addr>, <NumBytes> (hex)              Read memory and show corresponding ASCII values.
Mem8             Mem8  [<Zone>:]<Addr>, <NumBytes> (hex)             Read  8-bit items.
Mem16            Mem16 [<Zone>:]<Addr>, <NumItems> (hex)             Read 16-bit items.
Mem32            Mem32 [<Zone>:]<Addr>, <NumItems> (hex)             Read 32-bit items.
Write1           W1 [<Zone>:]<Addr>, <Data> (hex)                    Write  8-bit items.
Write2           W2 [<Zone>:]<Addr>, <Data> (hex)                    Write 16-bit items.
Write4           W4 [<Zone>:]<Addr>, <Data> (hex)                    Write 32-bit items.
Write8           W8 [<Zone>:]<Addr>, <Data> (hex)                    Write 64-bit items.Erase            Erase [<SAddr>, <EAddr>]                            Erase flash (range) of selected device.
Mem 读内存
mem8 读8比特内存
mem16 读16比特内存
mem32 读32比特内存w1 写8比特内存
w2 写16比特内存
w4 写32比特内存h 停止cpu运行的程序
setbp 设置断点
g 跳到代码段地址执行
s 单步执行(调试用)
r 复位
q 退出

数据操作都是以16进制(HEX)格式

  1. 在指定地址读8字节数据(内存以8位读)
    Mem8 0x08000500 0x08

  2. 擦除指定地址范围数据
    Erase 0x08000500 0x08000600

  3. 写入指定地址4字节数据(内存以8位写)
    W1 0x08000500 0x31 0x20 0x31 0x20

  4. 操作完成后使用指令复位一下,复位会把更改的重新烧录
    【r】复位指令

在这里插入图片描述
在这里插入图片描述

第二种方式 使用J-Flash

1. 打开软件,连接上芯片

2. 读出芯片flash数据

3. 点击写入的按钮,在窗口中特定地址写入特定的数据

示例:在特定的地址写入16个0x01
写入的数据标红
在这里插入图片描述

4. 然后重新烧录改写的固件

完成内存数据的改写


http://www.ppmy.cn/embedded/116052.html

相关文章

MPP架构

MPP&#xff08;Massively Parallel Processing&#xff09;架构是一种数据库或计算架构&#xff0c;通过高度并行的处理能力来处理和分析大型数据集。该架构利用多个处理节点或服务器来并行执行计算任务&#xff0c;从而显著提高性能和处理速度。以下是关于 MPP 架构的一些关键…

框架漏洞(5-rce s2-057 CVE-2017-8046 CVE-2018-1273 Shiro-550)

5-rce 步骤一&#xff1a;环境部署 cd vulhub/thinkphp/5-rce docker-compose up -d 步骤二&#xff1a;输入系统命令: whoami /index.php?sindex/think\app/invokefunction&functioncall_user_func_array&vars[0]system&vars[1][]whoami 步骤三&#xff1a;写…

HarmonyOS鸿蒙开发实战(5.0)悬浮窗拖拽和吸附动画实践

鸿蒙HarmonyOS NEXT开发实战往期文章必看&#xff08;持续更新......&#xff09; HarmonyOS NEXT应用开发性能实践总结 HarmonyOS NEXT应用开发案例实践总结合集 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门…

Redis配置文件详解

1.Units单位 配置大小单位,开头定义了一些基本的度量单位&#xff0c;只支持 bytes&#xff0c;不支持 bit 大小写不敏感 # 1k > 1000 bytes # 1kb > 1024 bytes # 1m > 1000000 bytes # 1mb > 1024*1024 bytes # 1g > 1000000000 bytes # 1gb > 1024*102…

【C++指南】inline内联函数详解

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《C指南》 期待您的关注 目录 引言 C为什么引入了inline来替代C语言中的宏 inline的基本用法 定义inline函数 inline的优势与…

kotlin—— withTimeoutOrNull的介绍和使用场景

withTimeoutOrNull 是 Kotlin 协程库中的一个非常有用的函数&#xff0c;它允许你在指定的时间内执行一个代码块&#xff0c;如果在指定的时间内代码块没有执行完毕&#xff0c;那么它会返回 null&#xff0c;而不是抛出一个异常。这个函数在处理可能需要较长时间完成的操作&am…

在 macOS 上安装 FFmpeg 的详细指南

FFmpeg 是一个强大的多媒体框架&#xff0c;可以用于录制、转换和流式传输音频和视频。无论你是视频编辑工作者&#xff0c;还是想要处理音频文件&#xff0c;FFmpeg 都是一个不可或缺的工具。本文将介绍在 macOS 上安装 FFmpeg 的几种方法。 方法 1: 使用 Homebrew 安装 FFmp…

【uni-app】小兔鲜项目-基础架构-请求和上传文件拦截器

注意事项 uni.request 请求封装 请求和上传文件拦截器 uniapp 拦截器&#xff1a; uni.addInterceptor 接口说明&#xff1a;接口文档 实现需求 拼接基础地址设置超时时间添加请求头标识添加 token 参考代码 // src/utils/http.ts// 请求基地址 const baseURL https://pca…