【经验】JLINK无法(单步)调试,JLINK固件的烧写

 

昨天终于准备开始进行S3C6410的裸机开发,写好了程序,编译生成了.axf文件,一切顺利的准备利用JLINK进行在线调试了,突然有种成功就在前面的感觉,Jlink也能被电脑正常的识别,利用AXD进行Jlink的相关设置也很正常,也能检测到CPU,于是load image,进行调试,选择go,发现开发板啥反应没有,这是怎么回事呢??

进行单步调试,发现程序可以从启动文件运行到main函数,但是到了main之后就无法单步执行了,有时会报错“can not read register 26(R13_SVC)while CPU is running”之类的错误,反正程序是跑飞了,程序是例程,也特别的简单,不至于跑飞的,上网查找,发现提出此类问题的还蛮多的,有些有回答,大部分归于沉寂,终于从中汲取了可能跟JLINK盗版有关,需要重新烧写下固件。那下面就整理下如何烧写JLINK固件的步骤吧。

(这说明,JLINK固件如果出现问题,不单单是以前我们熟知的PC提示无法识别的USB设备,JLINK的灯不亮,也有可能是JLINK突然不能单步调试,调试程序跑飞等情况,此时灯仍然亮着,这种情况更容易浪费发现问题的时间)

A:准备所需的软件和固件,包括:

a:Install AT91-ISP v1.13.exe——下载J-LINK V8固件的工具软件

b:J-LINK v8.bin——J-LINK V8的固件

c:Setup_JLinkARM_v422g.exe——JLINK V8的驱动

B:安装Install AT91-ISP v1.13.exe软件,生成了两个图标sam-ba v2.9和SAM-PROG V2.4.(WINXP电脑,WIN7可能不行),其次安装好Setup_JLinkARM_v422g.exe这个JLINK驱动程序。

 

dcfaebbb97350a5c24a5624af6ba92a3.png

C:擦除芯片并使其进入编程模式

 

8c537ec3e9fd972295fe52274c8d0012.jpeg

如图,有AB两个红框,A为ERASE跳线,B为RESET跳线(不同JLINK位置可能不同)

a:用USB线连接JLINK与PC,提供电源;

b:短接A处两过孔,25s以上,然后断开短接;

c:断开JLINK与PC之间的USB连接;

d:短接B处两过孔;

e:用USB线连接JLINK与PC,提供电源,20s以上,然后断开电源;

f:断开B处的短接。(顺序不能乱)

D:更新固件

a:运行SAM-PROG v2.4烧录软件,并进行如下设置:

 

8e961c5ee805c08231ffe8f4ac44a8dc.jpeg

b:用USB线将JLINK与PC相连。此时需要注意的是,如果电脑初次烧固件,一般会提示你发现新硬件,是否安装驱动,此时一定要安装驱动,直接点击本机自动查找就行,安装成功会如下图所示,否则软件中的write flash仍然无效。一切顺利的话,此时write flash变为有效,active connection也变为1。这一步的安装驱动很重要。

 

8043f8eac1c91c10038f2d9119a716f6.png

c:点击write flash,烧录固件,待烧录完成后,Active Connection:将变为1。

d:拔掉USB线,此时固件更新完毕。

E:自动更新固件

在电脑开始菜单中找到SEGGER->J-Link ARM V4.34->J-Link Commander并打开,如果你前面的操作正确,这里首先会提示你更新固件,这里我直接按的是,自动更新固件。

(对于这一步,有的同学说需要先按否,不更新固件,然后输入命令Exec SetSN=20140328,后面的为目前的时间,这样可以覆盖掉固件上次的时间,然后重新运行J-Link Commander,此时按同意更新固件。我这样做了,但是提示“无法覆盖掉原来的SN”,至于why,没有深入研究)

(还有同学提出,重新烧写固件到Jlink,将原来V8.bin固件用Winhex打开,并找到偏移地址为0xff00为首地址4bytes修改为其他值,只要不为原来的11111117或805306163即可,因为更新后的固件对这两个固件SN进行了强制校验,修改为其他值即可完美解决问题,同时将0xff30后面的GDBFull对应改成GDBFULL,对应ASCII码为47 44 42 46 55 4C 4C,目的是跳过GDBFull检查。我也用winhex看了下,发现好像下载的最新版的2012固件的bin文件里面已经符合此要求,不需要改了)

F:成功的现象——JLINK指示灯先闪烁,然后变为常绿。

(有人说,JLINK固件经常容易掉链子,因此我们需要做好长期与之斗争的准备)

 

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

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

相关文章

安卓自定义画板

包含功能: 包含 获取当前画板的截图、设置画笔样式、获取画笔样式、设置画笔宽度、获取画笔宽度、设置画笔颜色、获取画笔颜色、加载图片、获取图片位图对象、设置图片位图对象,并在画布上绘制图片、撤销上一步操作、重做上一步撤销的操作、清空所有绘图…

用机器学习方法重构期货商品板块

用机器学习方法重构期货商品板块 阿岛格 参考专栏:低门槛搭建个人量化平台 https://www.zhihu.com/column/c_1441014235068944386 摘 要 金融市场商品期货的板块分类,通常根据不同交易所、监管机构和证券商标准,按照期货标的属性、或产业链关系等进行分类,各自分类略有差…

ROS-Ubuntu20.04环境安装

1.系统和ROS版本 操作系统:Ubuntu20.04 ROS版本:ROS noetic 2.安装步骤 1.配置ROS软件源 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list 2.配置密钥…

Dirty PageTable

前言 Dirty PageTable 是一种针对堆相关漏洞的利用手法,主要就是针对 PTE 进行攻击。 参考文章: Dirty Pagetable: A Novel Exploitation Technique To Rule Linux Kernel – 该利用方式提出原文 上述文章已经讲的非常清楚了,就是实操写 e…

海伦公式求三角形面积

海伦公式,又译作希伦公式、海龙公式、希罗公式、海伦-秦九韶公式,是一种用于计算三角形面积的公式。其表达式为:S√p(p-a)(p-b)(p-c),其中p是半周长,即p(abc)/2。这个公式的特点是形式漂亮,便于记忆。 相传…

挑战杯 python区块链实现 - proof of work工作量证明共识算法

文章目录 0 前言1 区块链基础1.1 比特币内部结构1.2 实现的区块链数据结构1.3 注意点1.4 区块链的核心-工作量证明算法1.4.1 拜占庭将军问题1.4.2 解决办法1.4.3 代码实现 2 快速实现一个区块链2.1 什么是区块链2.2 一个完整的快包含什么2.3 什么是挖矿2.4 工作量证明算法&…

【Java基础题型】判断是否是回文数

需求:如果给你一个正数x。 如果x是一个回文整数,打印true,否则,返回false 解释: 回文数是指正序(从左到右)和从倒序(从右到左)都是一样的整数数字。 eg.121是回文数,123不是,2112是回文数&…

CentOS7.9+Kubernetes1.29.2+Docker25.0.3高可用集群二进制部署

CentOS7.9Kubernetes1.29.2Docker25.0.3高可用集群二进制部署 Kubernetes高可用集群(Kubernetes1.29.2Docker25.0.3)二进制部署二进制软件部署flannel v0.22.3网络,使用的etcd是版本3,与之前使用版本2不同。查看官方文档进行了解…

红队打靶练习:HACK ME PLEASE: 1

信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.61.128 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.61.2 00:50:56:f0:df:20 …

Redis Sentinel工作原理

Redis Sentinel是Redis的高可用性解决方案。它主要用来监控Redis master和slave服务器的运行状态,并在master宕机时自动进行故障转移,即从slave节点中选举出新的master节点,并让其余的slave节点指向新的master节点。 Redis Sentinel工作原理…

大学建筑专业的搜题软件?大学搜题工具中的高级搜索功能有哪些? #学习方法#微信#经验分享

学习和考试是大学生生活中不可避免的一部分,而在这个信息爆炸的时代,如何快速有效地获取学习资源和解答问题成为了大学生们共同面临的难题。为了解决这个问题,搜题和学习软件应运而生。今天,我将为大家介绍几款备受大学生青睐的搜…

Python魔法方法 单例模式

前言 本文介绍一下python中常用的魔法方法以及面向对象中非常重要的单例模式。 魔法方法 python中一切皆对象,因为python是面向对象的编程语言。python给类和对象提供了大量的内置方法,这些内置方法也称魔法方法。这些魔法方法总是在某种条件下自动触…

探索设计模式的魅力:创建型设计模式的比较与决策

设计模式专栏:http://t.csdnimg.cn/U54zu 目录 一、设计模式概览 1.1 创建型模式 二、比较创建型设计模式 1.1 适用场景典型用例 1.2 关键要素与差异对比 1.3 结构图 三、模式选择指南 3.1 场景分析 3.2 决策流程图 四、结语 4.1 优势 4.2 考量因素 一、…

node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查

文章目录 ⭐前言⭐ 功能设计与实现💖 node后端操作数据库实现增删改查💖 vue3前端实现增删改查⭐ 效果⭐ 总结⭐ 结束⭐结束⭐前言 大家好,我是yma16,本文分享关于 node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查。 技术选型 前端:vite+vue3+antd 后端:…

使用radial-gradient完成弧形凹陷的绘制

1、效果如下图 我在微信小程序中制作的 2、代码如下 <style>.header {position: relative;width: 200px;height: 200px;overflow: hidden;}.header .circle {--circleValue: 500px;position: absolute;bottom: 0;left: 50%;width: 100%;height: var(--circleValue);trans…

[OPEN SQL] 修改数据

MODIFY语句用于修改数据库表中的数据 MODIFY拥有INSERT和UPDATE的操作&#xff0c;如果数据库表中不存在符合条件的数据则会添加该条新数据&#xff0c;反之数据库表中存在符合条件的数据则会更新该条数据 本次操作使用的数据库表为SCUSTOM&#xff0c;其字段内容如下所示 航…

【git】.gitignore 的匹配规则

每行一个规则&#xff1a;每行只能包含一个规则&#xff0c;多个规则需要分别写在不同的行上。 示例&#xff1a; # 忽略日志文件 logs/ # 忽略临时文件 temp.txt种类匹配&#xff1a; 文件&#xff1a;在规则的开头指定文件名或路径&#xff0c;如 file.txt。 示例&#xff1a…

GEE:关于在GEE平台上进行回归计算的若干问题

作者&#xff1a;CSDN _养乐多_ 记录一些在Google Earth Engine &#xff08;GEE&#xff09;平台上进行机器学习回归计算的问题和解释。 文章目录 一、回归1.1 问&#xff1a;GEE平台上可以进行哪些机器学习回归算法&#xff1f;1.2 问&#xff1a;为什么只有这四种&#xf…

HGAME2024 WEEK2 wp webmisc

web What the cow say? 进入容器有个输入框&#xff0c;尝试ssti、命令执行、代码执行等&#xff0c;最后发现可使用反引号执行命令&#xff1b; 输入 nl app.py 可查看源代码&#xff0c;有功能具体实现、过滤之类的&#xff1b; flag在 /flag_is_here home/flag_c0w54y 中…

每日OJ题_递归②_力扣21. 合并两个有序链表

目录 力扣21. 合并两个有序链表 解析代码 力扣21. 合并两个有序链表 21. 合并两个有序链表 难度 简单 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4]…