j-link间接烧写nor flash nand flash

http://www.lx138.com/forum.php?mod=viewthread&tid=4423

 

J-LINK 烧写 NOR FLASH NAND FLASH

最 近在移植bootloader,搜集了一些u-boot移植文档,然后成功编译了u-boot,想将其烧到norflash中测试,于是通过j-link arm这个工具对其进行烧写,不料烧写的过程出现了错误,提示无法擦除xx sector之类的,并中止了擦写,原厂的u-boot被擦除了,自己编译了u-boot又无法烧写进去,而我的nandflash里叶没有U- boot,结果是,我心爱的Mini2440完全就瘫痪了,于是疯狂百度,google,想找到一种方法能够使J-LINK ARM正确的烧写NOR,搜到了N多哥们遇到类似的情况,就是没有牛人的出现来解决。想起以前看的某位哥们一个帖子,他为了不破坏Nor里面的u- boot,将u-boot烧写到了SDRAM里面测试,于是想通过这个方法来运行u-boot,然后通过u-boot来烧写nand。我想通过AXD来将 u-boot,后来发现AXD只能烧写axf文件,而不能烧写Bin文件,于是这个思路又夭折,无奈到各种ARM技术交流群放肆请教,有位现在在日本的哥 们给我提供了一条思路“间接烧写nand”,于是百度,果然有一篇“J-LINK间接烧写S3C2440 S3C2410 NORFLASH NANDFLASH”的帖子(该贴地址:http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=3228953 ),通过该帖子的指点,我顺利烧写了Norflash,该贴还有一些遗漏之处,现将我的步骤记叙如下:

我的平台是Mini440的, ARM是s3c3440,2M Norflash,128M nandflash

该贴的思路是:通过j-link command工具将内存初始化程序加载到ARM得RAM里运行,然后将U-BOOT加载到SDRAM运行,最好通过u-boot烧写NOR 和 NAND

1 加载内存初始化程序到RAM

连接好J-LINK打开J-LINK COMMAND工具,如果是从nor启动,输入loadbin f:/init.bin 0x40000000,如果是nand启动,输入loadbin f:/init.bin 0x0

输入setpc 0x40000000或者setpc 0x0将程序运行pc指针定位到init.bin的地址

输入g,运行内存初始化文件

这个init.bin文件,某位哥们已经上传到csdn上,可以去下载 init.rar (5.37 KB, 下载次数: 4)

http://download.csdn.net/source/3033969


我的S3C2440运行没问题,其他的就不清楚了

2 加载u-boot到SDRAM

输入 h,停止内存初始化程序

输入loadbin f:/u-boot.bin 0x33f80000

输入 setpc 0x33f80000

输入 g运行

这个时候终端上就能看到打印了,如不能重复第二步操作

不是所有的u-boot都支持的内存启动,我用的是tekkeman编译好的u-boot.bin,下载地址是 http://blog.chinaunix.net/space.php?uid=20543672&do=blog&id=94379

3 擦写norflash

如果需要擦除Nor就要在带电的情况将启动开关拨到Nor端,否则将无法擦写

在j-link comand输入h停止u-boot的运行

再输入loadbin f:/your-u-boot.bin 0x30000000将你要下载的u-boot的加载到SDRAM

输入g,运行u-boot

再U-boot的终端下输入protect off all将nor flash解锁,否则下载时就会提示,芯片已锁定,无法擦写的错误

再U-boot的终端下输入erase all将Nor擦除

如显示“erasing setctor xxx … ok.”一串打印则表示擦除成功

输入cp.b 0x30000000 0 0x3dfd8,将your-u-boot烧写进Nor,如终端打印“copy to flash。。。“,则表示正在烧写,否则则表示失败

注意0x3dfd8是your-u-boot的文件大小,我的是250kb,所以通过250*1024然后换成16进制就是0x3dfd8了

最好显示“copy to flash… done“,大功告成!

我的nandflash坏块了,没用烧写成功,再此不表,如想知道如何擦写,请看原版的帖子。

PS: 遇到问题,不要慌,不要乱,理一下思路,先干什么,后干什么,然后去网上查资料,网上有众多牛人,问题总会解决的。

你可能感兴趣的:(测试,command,百度,Flash,工具,终端)