原有工程是基于ADS v1.2的,使用J-Flash ARM V4.14c把编译文件写入到Flash。
尝试将工程移植到IAR 6.3上,在使用IAR的示例工程GettingStarted的Debug NOR Flash模式下载运行后,再使用J-Flash ARM V4.14c进行连接Flash时出现下面的错误信息:
Connecting ...
 - Connecting via USB to J-Link device 0
 - J-Link firmware: V1.20 (J-Link ARM V8 compiled Sep 22 2011 16:23:23)
 - JTAG speed: 8000 kHz (Auto)
 - Initializing CPU core (Init sequence) ...
    - Executing Reset (0, 200 ms)
    - Initialized successfully
 - JTAG speed: 8000 kHz (Auto)
 - J-Link found 1 JTAG device. Core ID: 0x07926009 (ARM9)
 - ERROR: Flash Id error. Expected 0x1227E, found: 0xF018E28F
 - ERROR: Failed to connect

网上搜索页看到类似的问题,不过没有明确的解决办法,今天成功该问题,大体思路是既然Flash Id被覆盖了,那么就要考虑如何恢复。

在参考芯片手册的S29GL128N Command Definitions, x16表格后,找到Device ID项。
| Addr | Data | Addr | Data | Addr | Data | Addr | Data | Addr | Data   | Addr | Data   |
| 555  |  AA  |  2AA |  55  |  555 |  90  |  X01 | 227E |  X0E | Note17 |  X0F | Note17 |
X = Don’t care
Note17. S29GL512NH/L = 2223h/23h, 220h/01h; S29GL256NH/L = 2222h/22h, 2201h/01h; S29GL128NH/L = 2221h/21h, 2201h/01h.

还是在示例工程GettingStarted,不过选择Debug xRAM模式,让其在外部内存上运行,并在main循环前加入下面代码进行重新设置Device ID:
typedef uint16 flashunit;
const uint32 flashBase = 0x10000000;

/* Flash Reset */
*(volatile flashunit *)flashBase = (flashunit)0x00F0;
for(volatile int i = 20; i; i--);
volatile flashunit Dummy = *(flashunit *)flashBase;

/* Device ID */
*((volatile flashunit *)flashBase + 0x555) = (flashunit)0x00AA;
*((volatile flashunit *)flashBase + 0x2AA) = (flashunit)0x0055;
*((volatile flashunit *)flashBase + 0x555) = (flashunit)0x0090;
*((volatile flashunit *)flashBase + 0x001) = (flashunit)0x227E;
*((volatile flashunit *)flashBase + 0x00E) = (flashunit)0x2201;
*((volatile flashunit *)flashBase + 0x00F) = (flashunit)0x0001;

调试运行之后,再次通过J-Flash ARM V4.14c进行连接,即认证成功。
Connecting ...
 - Connecting via USB to J-Link device 0
 - J-Link firmware: V1.20 (J-Link ARM V8 compiled Sep 22 2011 16:23:23)
 - JTAG speed: 8000 kHz (Auto)
 - Initializing CPU core (Init sequence) ...
    - Executing Reset (0, 200 ms)
    - Initialized successfully
 - JTAG speed: 8000 kHz (Auto)
 - J-Link found 1 JTAG device. Core ID: 0x07926009 (ARM9)
 - Flash ID (Chip 0) = 0x1227E (Verified)
 - Connected successfully

对上述实验的思考:
Flash硬件通过地址总线和数据总线与CPU相连接,程序根据芯片手册提供的Addr和Data的序列发送数据,同时Flash芯片识别该序列,并执行对应操作。

以上为个人思考,如有不妥,喷喷无妨。

关于J-Flash ARM V4.14c识别Flash ID错误相关推荐

  1. Vivado识别Flash型号失败

    2.01 Vivado识别Flash型号失败 2.1.1 本节目录 第一,章节目录: 第二,前言: 第三,FPGA简介: 第四,Vivado识别Flash型号失败: 第五,结束语: 2.1.2 本节引 ...

  2. 基于ARM的指纹识别门禁系统设计方案

    现代社会高速发展,很多场合需要身份确认,传统的身份识别技术已经不能满足社会要求.人的身体特征具有不可复制性,因此人们开始研究生物识别技术,而指纹具有唯一性.终生不变性.难于伪造等特点,安全性高,因而得 ...

  3. linux下flash大小如何查看器,Flash 型号和block大小查看

    Flash 型号:S29AL016D90TFI001 016是flash 的大小 16M bit, D90 是指flash 的速度. Get the Flash Erase Block Size. I ...

  4. html flash 动画效果代码大全,flash动作代码大全

    flash动画代码中的flash动作代码大全 一.几种Action命令 1.影片的播放与停止: Play( )://播放命令 stop( )://停止命令 2.改变Frame流向命令 gotoAndP ...

  5. 自带flash的浏览器_解决Flash插件已被屏蔽的问题(谷歌、火狐、IE、Edge)

    病症,浏览器界面中显示 adobe flash player 已被屏蔽: 作为产品运营,作为经常必须可能要接触到Flash/Html5视频应用的人来员:作为曾开发过flash产品的我来说,这题,我会. ...

  6. 谷歌浏览器flash崩溃怎么办 Google Chrome flash崩溃解决方法

    核心提示:最近在使用谷歌chrome浏览器时,不一会儿就提示Shockwave flash停止运行的问题 谷歌浏览器flash崩溃怎么办 Google Chrome flash崩溃解决方法 最近在使用 ...

  7. [转]我的FLASH情结2010——浅谈FLASH WEB GAME与创业(下)

    我的FLASH情结2010--浅谈FLASH WEB GAME与创业 ★前端与美术的配合 →老闪客们应该都知道,FLASH这款软件在历史很长一段时间内都是用来做动画的,闪客和美术在这段时间内本就是同根 ...

  8. flash服务器停止响应,shockwave flash 未响应解决方法,shockwave flash已经崩溃解决方法...

    许多用户在使用浏览器观看视频或者其他带有flash插件的页面时会出现shockwave flash 未响应,shockwave flash 已经崩溃的提示,当出现这两个提示后,用户观看flash视频和 ...

  9. flash php个人站_PHP Flash整站系统

    PHP Flash整站系统[PHP Flash CMS]是一套功能强大的Flash整站系统,前台采用Flash + XML + CSS构建的Style Portfolio Template 2模板,后 ...

最新文章

  1. XLNet 发明者杨植麟:从学习的角度看NLP现状与未来(附PPT下载)
  2. Transformer杀疯了!力压DeepMind、百度,在GNN大赛夺冠
  3. LeetCode Paint House II
  4. Django:模型model和数据库mysql(一)
  5. ASP.NET Core教程【一】关于Razor Page的知识
  6. SAP HANA:开启企业管理软件下一波革新浪潮?
  7. 解决oracle绑定变量重复,基于ORACLE SQL优化之绑定变量(4)
  8. sqlnet.expire_time and idle_time
  9. Django Rest框架 APIView源码调用
  10. java用链表做学生系统_C语言链表实现学生管理系统
  11. 数组排列组合算法汇总
  12. 威廉·布莱克《从一颗沙子看世界》(To see a world in a grain of sand)
  13. CAS 服务端的搭建
  14. linux超级管理员名字修改,linux添加超级管理员用户,修改,删除用户
  15. 007.复原 IP 地址
  16. FaceX-Zoo | 使用PyTorch Toolbox进行人脸识别(附源代码)
  17. C++反汇编-函数调用原理
  18. Web后台管理系统框架模板
  19. oracle的Minus的使用
  20. 杨守鸿 计算机学院,计算机学院军训师生慰问暨新生见面会顺利举办

热门文章

  1. Mysql中有张表一直处于正在加载的状态
  2. 【PHP学习】析构方法
  3. 2023年全国DAMA-CDGP数据治理专家认证线上班招生简章
  4. 公司法修改解读:法律责任
  5. 欧阳帆:视频优先的时代,传统电视制作的危机
  6. 高德地图 JSAPI 给指定部分标记颜色
  7. Excel、Word转PDF时,异常com.jacob.com.ComFailException: Invoke of: SaveAs
  8. 2023年第十五届华中杯赛题A题 新型镇静药物临床实验疗效分析与预测
  9. MinHash与SimHash
  10. 一般背光源产品的工序流程图