原创 ARM Linux学习笔记4:H-JTAG第一次烧写HOR Flash,Flash锁死问题解决

2009-7-21 23:26 6584 8 8 分类: MCU/ 嵌入式

                                  ARM Linux学习笔记4


         H-JTAG第一次烧写HOR FlashFlash锁死问题解决


<?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软件的里SST39VF1601ID,在C:\Program Files\H-JTAG\FDevice\SST文件夹下找到SST39VF1601文件,用记事本打开,可以看到H-JTAG默认的SST39VF1601 Flash芯片的默认ID0x234B00BF。把这个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对上了,但点击ProgramErase,都出现H-JTAG出现出错提示框H-JTAG can't erase flash


从这可以知道问题不是Flash ID的不匹配。


        最后发现原因可能是Flash锁上了。关于Flash的锁死可以参考下面文章


AT91SAM7XFLASH锁死及解决!


http://blog.21ic.com/user1/1622/archives/2007/43921.html


H-JTAG下能检测到ARM CORE,却检测不到型号??


http://bbs.weeqoo.com/bbsdetail-259703-4.html


 


       上面两个帖子都没有明确说明问题的解决办法。我尝试过用J-LinkFlash进行解除保护的操作,结果拔下J-Link,再改用H-JTAG就又能对NOR Flash进行下载、擦除等操作了。


J-Link commander里输入下面命令(NOR Flash)


protect off all  //解锁


erase 0 2ffff  //擦除从0 地址开始的大小为0x30000 NOR Flash 扇区(大小为可


擦除块的整数倍)


 


    当然H-JTAGSST39VF1601Flash ID改回0x234B00BF


 


    这样问题就解决了,不知道是不是第一次用H-JTAGNOR Flash进行烧写,使Flash锁死了,用J-Link解锁并进行擦除操作后,就能解锁,使H-JTAG又能对NOR Flash进行烧写调试操作了。


 


参考资料:


1)     flash的烧写问题


http://www.hjtag.com/forum/viewthread.php?tid=405


2)     ARM H-JTAG无法烧录FLASH芯片时的急救措施


http://blog.linuxsky.org/463/viewspace-14211.html

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /3 下一条