在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维修详解的更多相关文章

  1. 微信公众开发URL和token填写详解

    微信公众开发URL和token填写详解 方法/步骤     作为一名微信公众号开发者,别人进入你的微信公众号,肯定会看见某些网页,或者给你发某些信息,你需要实时自动回复,所以你需要一个24小时为用户服 ...

  2. 最强常用开发库总结 - JSON库详解

    最强常用开发库总结 - JSON库详解 JSON应用非常广泛,对于Java常用的JSON库要完全掌握.@pdai JSON简介 JSON是什么 JSON 指的是 JavaScript 对象表示法(Ja ...

  3. PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等

    页面导航: 首页 → 网络编程 → PHP编程 → php技巧 → 正文内容 PHP安全 PHP开发中常见的安全问题详解和解决方法(如Sql注入.CSRF.Xss.CC等) 作者: 字体:[增加 减小 ...

  4. Android游戏开发之旅 View类详解

    Android游戏开发之旅 View类详解 自定义 View的常用方法: onFinishInflate() 当View中所有的子控件 均被映射成xml后触发 onMeasure(int, int) ...

  5. Android开发:文本控件详解——TextView(一)基本属性

    一.简单实例: 新建的Android项目初始自带的Hello World!其实就是一个TextView. 在activity_main.xml中可以新建TextView,从左侧组件里拖拽到右侧预览界面 ...

  6. [转帖]Windows注册表内容详解

    Windows注册表内容详解 来源:http://blog.sina.com.cn/s/blog_4d41e2690100q33v.html 对 windows注册表一知半解 不是很清晰 这里学习一下 ...

  7. iOS开发--常用技巧 (MJRefresh详解)

         iOS开发--常用技巧 (MJRefresh详解) https://github.com/CoderMJLee/MJRefresh 下拉刷新01-默认 self.tableView.head ...

  8. Android开发:文本控件详解——TextView(二)文字跑马灯效果实现

    一.需要使用的属性: 1.android:ellipsize 作用:若文字过长,控制该控件如何显示. 对于同样的文字“Android开发:文本控件详解——TextView(二)文字跑马灯效果实现”,不 ...

  9. legend3---Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead)

    legend3---Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead) 一.总结 一句话总结: 1.安装的话就是下载好git,va ...

随机推荐

  1. js实现查找字符串出现最多的字符和次数

    代码如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=" ...

  2. 使用公钥和私钥实现LINUX下免密登录

    linux公钥私钥实现无密码登录 首先本地主机生成公约和私钥 # ssh-keygen               /生成公钥和私钥 不要更改默认路径,中途不要输入密码,直接两次回车. 2.  将生成 ...

  3. mongodb节点配置指南

    修改复制集节点的优先级 复制集节点的 priority 参数的值决定了选举中该节点的优先级.值越高,优先级越高. 我们可以通过修改复制集配置参数中 members 数组位置的优先级来修改对应机器的优先 ...

  4. Python学习---Model拾遗[1]180318

    Model: 强大的数据库操作,弱小的数据验证 Form:  强大的数据验证 ModelForm: 强大的数据验证 + 弱小的数据库操作 Model拾遗 Model基本操作 1. 创建数据库表2. 修 ...

  5. 四、C# 5.0 新特性——Async和Await使异步编程更简单

    一.引言 .NET 4.5 的推出,对于C#又有了新特性的增加--就是C#5.0中async和await两个关键字,这两个关键字简化了异步编程,之所以简化了,还是因为编译器给我们做了更多的工作,下面就 ...

  6. 初探BeEF

    1.什么是BeEF? 就是 The Browser Exploitation Framework 的缩写,意在通过一些手段,控制对方的浏览器. 里面集成了很多模块,能够获取很多东西,有cookie,浏 ...

  7. SEO搜索引擎优化(转)

    (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.s ...

  8. 在CentOS7上安装和使用ZooKeeper最新版本(V3.4.12)

    0.ZooKeeper文档 http://zookeeper.apache.org/doc/r3.4.11/zookeeperOver.html 1.准备 在CentOS7上安装zookeeper时, ...

  9. 关于使用 CALayer 中 mask 的一些技巧

    CALayer 拥有 mask 属性,Apple 的官方解释如下: An optional layer whose alpha channel is used to mask the layer’s ...

  10. ubuntu ibus 输入法总在左下角不跟随光标的处理

    sudo apt-get install ibus-gtk ibus-gtk3 ibus-qt4 参考文章