ARM开发---Keil注册+JLink维修详解
在ARM开发中,经常使用的开发环境就是Keil uVision集成开发环境+JLink仿真器,本文就是就是介绍、总结使用该开发环境中遇到的问题,并在问题后方附上亲测可行的解决方法。如果各位看官在开发过程中遇到了新的问题,欢迎在本文评论区留言,共同探讨,本文会及时更新。
==========================Keil部分===============================
Keil安装和破解
1、双击Keil安装包,根据提示进行安装。
2、接下来需要注册(不注册的话很多功能无法使用,例如会限制编译生成的二进制文件的大小),点击File --> License Management, 拷贝CID。
3、打开keillic.exe(点击这里下载),Target选ARM, 版本选Prof.Developers Kit/RealView MDK,然后将复制的CID粘贴至注册码,点击Generate,拷贝出生成的注册码。

4、将上一步拷贝的注册码添加到Keil中( File --> License Management),至此Keil集成开发环境就能正常使用了。
===========================JLink仿真器部分=========================
问题1:
JLink仿真器用着突然指示灯不亮了,重新拔插USB也依旧,点击烧写程序报错:No JLink Device found。

此问题一般是在JLink内部的问题,可能是外部干扰、不正当操作或程序BUG等导致JLink芯片程序空间中数据被破坏,最终导致JLink无法正常运行,所以表面现象就是指示灯不亮。这时候的解决方法就是重新给JLink烧写程序(也即更新固件)。
J-Link内部芯片:AT91SAM7S64 (Atmel的ARM7处理器)
烧写工具:SAM-PROG Vx.xx (点此下载)
串口烧写工具:SAM-BA Vx.xx(点此下载)
(1)首先擦除已损坏固件,先找到Erase脚 Pin55 和 TST脚 Pin40 。一般某宝上的JLink鱼龙混杂,友好的会将Erase和TST引出来并标有丝印,但有的什么提示信息也没有,没关系,我们可以自己找,将仿真器的芯片按照下图摆放,左上往下数第7个引脚就是Erase引脚,如果肉眼只能能看出来它引到哪里最好,如果看不出来可用万用表量一下,如果实在找不到引去哪里也没关系,记住这个脚,要用时直接用镊子等尖物体往上点。 TST引脚在上方从左数第9引脚,如没有丝印,寻找方法跟Erase脚一样。

(2)这两个重要的管脚找到之后,然后通过USB数据线连接J-Link和电脑,给J-Link供电(注意这一步小灯可能不亮,但电源已经加到J-Link板子上了);
(3)短接Erase区的两个过孔(即Erase与VDD3.3v)约5s以后,断开该连接,这时擦除完毕,最后断开USB电源,停止给J-Link供电。(注意先后顺序)
(4)短接TST区的两个过孔(即TST与VDD3.3v),然后再连接USB数据线给J-Link供电(注意顺序),约10s以后,拔掉USB电源,再断开TST区的连接,这时进入编程模式
(6)J-Link通过USB线与电脑连接。此时,SAM-PROG软件中的Write Flash按钮将变为有效。(注意,先打开SAM-PROG 再连接J-Link)。

(7)选择固件保存路径(没有固件的点此下载),点击Write Flash 按钮,烧录固件,待烧录完成后,Active Connection:将变为1,然后拔掉USB数据线即可。
问题2:
在执行问题1中的第(6)部时,SAM-PROG的Write Flash按钮一直无效。

产生这个问题的原因有很多,在此就不去深究了,直接上解决方法。
方法1、将驱动调整为“AT91 xxxx Test Board”驱动,驱动文件位置一般在xxx\ATMEL Corporation\AT91-ISPvx.xx\sam-ba x.x\drv目录下,再重复问题1中第(6)步。
方法2、Win10的系统经常会遇到这种情况,方法1也无法解决,这时可使用串口烧写,烧写工具SAM-BA,打开后按照下图提示进行操作。完成后重新拔插仿真器便会发现正常亮灯了。


但特别注意在使用SAM-BA烧录程序最后不能Lock Flash,否则无法更改SN号,无法自动更新固件!!!

问题3:
烧写完成后无法使用,提示更新framework,但是总时更新失败。
A new firmware version is available for the connected emulator.
Do you want to update to the latest firmware version?
…

这个问题是由于电脑中的JLink驱动版本比仿真器中的版本要高。
方法1、用老版本的JLink驱动(点此下载J-Link 4.40c)覆盖Keil中的JLink驱动,路径:Keil安装目录/UV4/ARM/Segger。
方法2、绕过SN校验升级仿真器中的固件。首先双击 Keil安装目录/UV4/ARM/Segger/JLink.exe,此时会有上图提示,注意不要升级固件,输入命令 exec setsn = 20180913
SN号为8位数,可自行定义,回车后显示O.K.,此时便可重新打开JLink.exe正常的升级固件了。

正常升级固件后显示你定义的SN号,结果如下,到此仿真器便能正常使用了。

如果本文对您有帮助,请您给予一定的支持,您的支持就是我的动力!

ARM开发---Keil注册+JLink维修详解的更多相关文章
- 微信公众开发URL和token填写详解
微信公众开发URL和token填写详解 方法/步骤 作为一名微信公众号开发者,别人进入你的微信公众号,肯定会看见某些网页,或者给你发某些信息,你需要实时自动回复,所以你需要一个24小时为用户服 ...
- 最强常用开发库总结 - JSON库详解
最强常用开发库总结 - JSON库详解 JSON应用非常广泛,对于Java常用的JSON库要完全掌握.@pdai JSON简介 JSON是什么 JSON 指的是 JavaScript 对象表示法(Ja ...
- PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等
页面导航: 首页 → 网络编程 → PHP编程 → php技巧 → 正文内容 PHP安全 PHP开发中常见的安全问题详解和解决方法(如Sql注入.CSRF.Xss.CC等) 作者: 字体:[增加 减小 ...
- Android游戏开发之旅 View类详解
Android游戏开发之旅 View类详解 自定义 View的常用方法: onFinishInflate() 当View中所有的子控件 均被映射成xml后触发 onMeasure(int, int) ...
- Android开发:文本控件详解——TextView(一)基本属性
一.简单实例: 新建的Android项目初始自带的Hello World!其实就是一个TextView. 在activity_main.xml中可以新建TextView,从左侧组件里拖拽到右侧预览界面 ...
- [转帖]Windows注册表内容详解
Windows注册表内容详解 来源:http://blog.sina.com.cn/s/blog_4d41e2690100q33v.html 对 windows注册表一知半解 不是很清晰 这里学习一下 ...
- iOS开发--常用技巧 (MJRefresh详解)
iOS开发--常用技巧 (MJRefresh详解) https://github.com/CoderMJLee/MJRefresh 下拉刷新01-默认 self.tableView.head ...
- Android开发:文本控件详解——TextView(二)文字跑马灯效果实现
一.需要使用的属性: 1.android:ellipsize 作用:若文字过长,控制该控件如何显示. 对于同样的文字“Android开发:文本控件详解——TextView(二)文字跑马灯效果实现”,不 ...
- legend3---Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead)
legend3---Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead) 一.总结 一句话总结: 1.安装的话就是下载好git,va ...
随机推荐
- linux下安装rar以及rar相关命令参数详解
Linux平台默认是不支持RAR文件的解压,需要安装Linux版本的RAR压缩软件,下载地址:http://www.rarlab.com/download.htm 下载之后进行解压之后,进入rar目录 ...
- 计算机作业(HTML简单框架网页制作) 物联网 王罗红
- NJCTF 2017 web pictures'wall(详解)
题目: 图片墙上有图片 url:http://218.2.197.235:23719/ writeup: 首先各种尝试登陆,发现任意用户及密码都可以登陆,但登陆后的页面提示的是“Root has pr ...
- ZT Linux系统环境下的Socket编程详细解析
Linux系统环境下的Socket编程详细解析 来自: http://blog.163.com/jiangh_1982/blog/static/121950520082881457775/ 什么是So ...
- iOS开发之UIView
在iPhone里你能看到的.摸到的,都是UIView. 视图坐标系统: UIKit中的坐标都是基于这样的坐标系统:以左上角为坐标的原点,原点向下和向右为坐标轴方向. 坐标值由浮点数来表示,内容的布局和 ...
- What Shape Layers Are-CAShapeLayer
矢量图.gpu直接使用.占用内存小 What Shape Layers Are Shape layers are layers capable of defining shapes as vector ...
- [USACO09MAR]Look Up
嘟嘟嘟 题面说的有点问题,应该是向后看齐. 于是我们维护一个单调递减栈,如果当前a[i]比栈顶元素大,就执行pop操作,然后把pop出来的元素的答案都用 i 更新即可. #include<cst ...
- leetcode300. Longest Increasing Subsequence 最长递增子序列 、674. Longest Continuous Increasing Subsequence
Longest Increasing Subsequence 最长递增子序列 子序列不是数组中连续的数. dp表达的意思是以i结尾的最长子序列,而不是前i个数字的最长子序列. 初始化是dp所有的都为1 ...
- Samba服务器的配置与使用
1.系统环境变量 Fedora: yum install libacl-devel libblkid-devel gnutls-devel \ readline-devel python-devel ...
- PAT——1069. 微博转发抽奖
小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行给出三个正整数M(<= 1000).N ...