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 ...
随机推荐
- React学习笔记(六)事件处理
React学习笔记(六) 五.事件处理 React事件绑定属性的命名采用驼峰写法,不同于传统DOM全部小写. 如果采用JSX的语法,事件函数需要用大括号{}包裹函数名,不同于传统DOM字符串小括号的方 ...
- JQuery学习---JQuery深入学习
属性操作 $("p").text() $("p").html() $(":checkbox").val() $(".te ...
- github发布静态页面
github发布静态页面:https://wangc1993.github.io/2019/01/07/2/
- Kendo UI 的 k-template
官网上的例子: 1. <span id="output"></span><script>var template = kendo.templat ...
- GO语言 切片的缩短和增长原理
package main import "fmt" //import OS "os" //import "strings" //import ...
- 如何恢复在Windows 10中被永久删除的照片?
照片被误删除了需要恢复?这里推荐一款软件:winutilities.使用WinUtilities文件恢复向导允许您通过简单的点击恢复已删除的照片或从Windows 10回收站中恢复被删除的照片. 恢复 ...
- Mysql中的char与varchar length()与char_length()
在mysql中,char和varchar都表示字符串类型.但他们存储和检索数据的方式并不相同. 在表结构定义中声明char和varchar类型时,必须指定字符串的长度.也就是该列所能存储多少个字符(不 ...
- 在 Deepin 中搭建 GitLab
入职半个月了,一直在接受业务知识以及企业文化知识的培训,下周终于要开始上岗入手项目了.由于公司使用自己搭建的 GitLab 服务作为项目版本控制器,所以我决定学习一下 GitLab,由于这货跟 Git ...
- python一键对应多个值
背景:目前是想让一个取出来的数据,数据有2个或多个值,对应一个key,或者这样说:让一个键对应2个值或者3个值 实现方式,如下:目前我以读取xml文件为案例,读取xml中两个配置文件,存放到一个key ...
- ubuntu服务器下tomcat安装(不推荐使用apt-get)
最近在阿里云服务器上装tomcat,一开始为了省事直接使用了apt-get安装,结果整个程序被拆开散到了好多地方,尤其是像网上说要把打包好了.war文件放到webapps文件夹下,但是开始并没有在/u ...