ARM Linux学习笔记4:
H-JTAG第一次烧写HOR Flash,Flash锁死问题解决
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
目前H-JTAG 只能用于烧写Nor Flash,并不能直接烧写Nand Flash,一些开发
板厂商为了节省成本,很多都省掉了Nor Flash,因此并不能用本节介绍的步骤快速简单的烧
写BIOS。
第一次用H-JTAG烧写NOR Flash后,就不能烧写了,H-JTAG出现出错信息
点check后,弹出消息框:
Error:Flash id does not mach.Please make sure that the right flash device is selected.关闭消息框,
H-Flasher界面上Flash处的提示信息为:Flash 0xEA000045 ERROR!
我根据网上提示的方法,改变H-JTAG软件的里SST39VF1601的ID,在C:\Program Files\H-JTAG\FDevice\SST文件夹下找到SST39VF1601文件,用记事本打开,可以看到H-JTAG默认的SST39VF1601 Flash芯片的默认ID为0x234B00BF。把这个ID改变为0xEA000045。
SST39VF1601文件内容:
FLASH_TYPE=2
FLASH_SIZE=<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2M
FLASH_ID=0x234B00BF //改为0xEA000045
FLASH_SECTOR=512x4K
FLASH_WIDTH=0/16/0
FLASH_DRIVER=0/1/0
改变后再次打开H-Flash,再次点击Flash,这次没有出现出错提示了,也就是识别的ID与软件默认的ID对上了,但点击Program或Erase,都出现H-JTAG出现出错提示框H-JTAG can't erase flash。
从这可以知道问题不是Flash ID的不匹配。
最后发现原因可能是Flash锁上了。关于Flash的锁死可以参考下面文章
AT91SAM7X的FLASH锁死及解决!
http://blog.21ic.com/user1/1622/archives/2007/43921.html
H-JTAG下能检测到ARM CORE,却检测不到型号??
http://bbs.weeqoo.com/bbsdetail-259703-4.html
上面两个帖子都没有明确说明问题的解决办法。我尝试过用J-Link对Flash进行解除保护的操作,结果拔下J-Link,再改用H-JTAG就又能对NOR Flash进行下载、擦除等操作了。
在J-Link commander里输入下面命令(NOR Flash)
protect off all //解锁
erase 0 2ffff //擦除从0 地址开始的大小为0x30000 的NOR Flash 扇区(大小为可
擦除块的整数倍)
当然H-JTAG里SST39VF1601的Flash ID改回0x234B00BF。
这样问题就解决了,不知道是不是第一次用H-JTAG对NOR Flash进行烧写,使Flash锁死了,用J-Link解锁并进行擦除操作后,就能解锁,使H-JTAG又能对NOR Flash进行烧写调试操作了。
参考资料:
1) flash的烧写问题
http://www.hjtag.com/forum/viewthread.php?tid=405
2) ARM H-JTAG无法烧录FLASH芯片时的急救措施
文章评论(0条评论)
登录后参与讨论