这篇文章的最初版本是在15年写的https://blog.csdn.net/u010592722/article/details/45575663,后来又遇到了一些新问题,故更新在了这里。

一、始于安装新版的MDK5.11a后,J-Link不能使用,提示安装新固件云云

用新版本的STM32集成开发环境MDK5.11a(之前用的4.13a)链接J-Link下载程序,如果J-Link固件版本过低则点击J-Link设置按钮时,会有提醒J-Link驱动有新版可安装(不可忽视,强制安装更新)。不过安装之后,会有弹窗提示连接器是山寨云云,接着MDK就挂掉了,也就是其固件程序已丢失。针对这个问题,

(1)重新刷J-Link V8固件程序(以下操作的先后顺序不要搞错了)

  1.使用USB线连接J-Link与PC机,以提供J-Link工作电源;

  2. 短接ERASE(E) 的两个过孔5秒左右。断开ERASE(E)位置的两个过孔的短接。然后拔掉J-Link与PC间的USB线;

  3.短TST(T)的两个过孔;

  4.使用USB线连接J-Link与PC机,至少超过10秒后,拔掉USB线,停止给J-Link供电(此过程中,TST(T)一直处于可靠的短接状态);

  5.断开图中TST(T)处的短接

          

重烧固件的关键是在完成上述5各步骤后,再次连接J-Link,要确保设备管理器中驱动的状态是“未识别的设备”云云,如果已经自动安装了一个似乎是“SAM...(名字记不全了)”之类的相关驱动,统统卸掉(卸载完毕最好重启一下)。凡是不能使用SAM-PROG这个软件自动烧录固件的电脑(比如笔者的win7 64位笔记本),推荐使用sam-ba_2.14(亲测多次可用)手动烧录。由于这款软件是Atmel公司的,正如前面所述,打开这款软件连接J-Link,应确保J-Link的驱动在设备管理器中显示的是“Atmel...”(名字记不太清了,这个驱动安装前提示J-Link驱动未识别->右键更新驱动->手动浏览电脑本地更新->C:\Program Files (x86)\Atmel\sam-ba_2.14\drv(sam-ba_2.14安装目录下)->更新)。

只有正确安装了Atmel公司的相关驱动方可与sam-ba_2.14连接(打开软件,选择正确的串口,目标板一般选at91sam7s64-ek,然后点击连接)。进入软件,添加固件程序所在文件目录,点击发送即可完成固件的烧录(期间会有两次提示加密解锁之类的,总之,下载前解锁加密,下载后加密即可)。

(2)解决与STM32的MDK连接时的J-Link更新问题

方法一:简单粗暴,将J-Link驱动SEGGER安装目录中的JLinkARM.dll替换掉MDK安装目录ARM/Seggeer中的JLinkARM.dll即可(亲测可用);

方法二:J-Link重新烧录的固件需用UE或者WinHex这个软件做些修改(主要是修改S/N号,可参考https://blog.csdn.net/a86458977/article/details/46747065)。固件不修改的后果是,进入MDK设置J-Link是同样是要提醒更新J-Link驱动(没试过)。

二、使用J-Flash烧录ARM9固件程序U-Boot

首先参考韦东山使用J-Link烧录固件程序的pdf文档,确保操作步骤及配置正确(s3c2440.jflash作为J-Flash项目)。

打开J-Flash,使用J-Link连接ARM9板子,点击Target标签中的connect,然后可能会出现固件需要更新的提示。此时,若不更新则总是会出现连接超时而失败;若更新仍可能出现失败。为何会更新失败?

          

首先想到的可能是上文提到的需要修改固件S/N码的问题,尝试修改后,依然无果。后来想到,下载固件的过程中会弹出两个提示框,询问是否对J-Link固件加锁?那么下载的过程是需要解锁的,否则无法下载;而下在完成后,通常就加上锁避免其他程序以外修改从而破坏该固件。但是,这样也就可能导致后来更新固件的时候,无法写入新的固件的问题。想到这里,再次重刷了一遍固件程序并以解锁状态结束。之后,再次点击Target标签中的connect,同意刷新固件,便更新成功了(我猜想还有一种方法是通过修改固件的日期?因为是否提示更新,主要是依据原固件是否为最新编译日期。不过这种方法并未得到验证)。

J-Link固件烧录以及使用J-Flash向arm硬件板下载固件程序的更多相关文章

  1. J-LINK V8固件烧录指导

    1 J-LINK V8固件烧录指导 J-LINK 是使用过程中,如果内部固件意外损坏或丢失,请参考下面操作步骤说明,重新烧录JLINK固件. 1.1 安装固件烧录软件 请ATMEL官方网址下载AT91 ...

  2. 无刷电调基础知识以及BLHeli固件烧录和参数调整

    标题: 无刷电调基础知识以及BLHeli固件烧录和参数调整 作者: 梦幻之心星 sky-seeker@qq.com 标签: [#基础知识,#电调,#BLHeli,#固件,#烧录,#调参] 目录: [电 ...

  3. 无序数组a,求a[i]-a[j]的最大值,且i<j

    一道面试题:对于无序数组a,求a[i]-a[j]的最大值,其中i<j package test; import java.util.Arrays; public class FindMax { ...

  4. C. Multiplicity 简单数论+dp(dp[i][j]=dp[i-1][j-1]+dp[i-1][j] 前面序列要满足才能构成后面序列)+sort

    题意:给出n 个数 的序列 问 从n个数删去任意个数  删去的数后的序列b1 b2 b3 ......bk  k|bk 思路: 这种题目都有一个特性 就是取到bk 的时候 需要前面有个bk-1的序列前 ...

  5. hdu5536 Chip Factory 字典树+暴力 处理异或最大 令X=(a[i]+a[j])^a[k], i,j,k都不同。求最大的X。

    /** 题目:hdu5536 Chip Factory 链接:http://acm.hdu.edu.cn/showproblem.php?pid=5536 题意:给定n个数,令X=(a[i]+a[j] ...

  6. CF F - Tree with Maximum Cost (树形DP)给出你一颗带点权的树,dist(i, j)的值为节点i到j的距离乘上节点j的权值,让你任意找一个节点v,使得dist(v, i) (1 < i < n)的和最大。输出最大的值。

    题目意思: 给出你一颗带点权的树,dist(i, j)的值为节点i到j的距离乘上节点j的权值,让你任意找一个节点v,使得dist(v, i) (1 < i < n)的和最大.输出最大的值. ...

  7. 瑞芯微ROCK960 RK3399固件烧录总结

    1 下载固件 进入瑞芯微ROCK960下载主页 https://www.96boards.org/documentation/consumer/rock/downloads/ 选择os固件, Debi ...

  8. 【嵌入式AI】全志 XR806 OpenHarmony 鸿蒙系统固件烧录

      欢迎关注我的公众号 [极智视界],回复001获取Google编程规范   O_o   >_<   o_O   O_o   ~_~   o_O   大家好,我是极智视界,本教程详细记录了 ...

  9. MDK st-link下载STM32程序出现Internal command error和Error:Flash download failed. Target DLL

    MDK st-link下载STM32程序出现Internal command error和Error:Flash download failed. Target DLL   是因为目标板的芯片处于休眠 ...

随机推荐

  1. Bellman-Ford算法的改进---SPFA算法

    传送门: Dijkstra Bellman-Ford SPFA Floyd 1.算法思想 Bellman-Ford算法时间复杂度比较高,在于Bellman-Ford需要递推n次,每次递推需要扫描所有的 ...

  2. BZOJ 4551[Tjoi2016&Heoi2016]树(树链剖分+二分)

    Description 在2016年,佳媛姐姐刚刚学习了树,非常开心.现在他想解决这样一个问题:给定一颗有根树(根为1),有以下两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记 ...

  3. C#之不安全代码

    MSDN:"尽管实际上对 C 或 C++ 中的每种指针类型构造,C# 都设置了与之对应的引用类型,但仍然会有一些场合需要访问指针类型.例如,当需要与基础操作系统进行交互.访问内存映射设备,或 ...

  4. Go/Python/Erlang编程语言对比分析及示例

    本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性,不过最主要的原因是这几个我比较熟悉. Go的很多语言特性借鉴 ...

  5. [LeetCode] 1-bit and 2-bit Characters 一位和两位字符

    We have two special characters. The first character can be represented by one bit 0. The second char ...

  6. 【python进阶】详解元类及其应用2

    前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...

  7. 【Swfit】Swift与OC两种语法写单例的区别

    Swift与OC两种语法写单例的区别 例如写一个NetworkTools的单例 (1)OC写单例 + (instancetype)sharedNetworkTools { static id inst ...

  8. [POJ 3728]The merchant

    Description There are N cities in a country, and there is one and only one simple path between each ...

  9. ●BZOJ 1416 [NOI2006]神奇的口袋

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1416题解: Pòlya瓦罐模型: 给定罐子里每种颜色的球的个数A[i],按题目要求随机操作若 ...

  10. 51nod 1103 N的倍数(抽屉原理)

    1103 N的倍数 题目来源: Ural 1302 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍 ...