炼狱,是为追逐光芒
分类: LINUX
2012-06-21 17:27:00
JLINK可以方便的操作CPU,但不能操作Nand Flash,烧写Nand Flash只是从理论上能够达到,但是还没有人直接实现这点(韦东山好像做了一个,我没用过)。
本文使用一个间接方法来烧录Nand Flash:
原理:JLink可以方便的读写内存、启动程序,那么可以把一个特制的程序(比如u-boot)下载到开发板上的SDRAM去,并运行它,然后使用这个程序来烧写Nand。
烧写步骤:
1.链接硬件
市面上的JLink大多只支持2.54mm间距的20pin,14pin,10pin的JTAG接口,针对具体的板子做好转接线或跳线
2.运行J-Link commander(经测试,Setup_JLinkARM_V410i这个版本兼容性较好)
J-Link commander启动界面如下图,(若没有接测到CPU,就在里面执行usb命令连接JLink,再执行r命令识别处理器)。
3.下载运行特制的程序
由于SDRAM/DDR使用前需要经过初始化,所以利用s3c2451内部8K的SRAM,先运行一段小程序初始化内存。
然后再下载大点程序,比如U-boot到内存运行,它将实现对nor/nand的操作。
1).speed 12000 //设置TCK为12M,下载程序时会很快,但实际应用中设置为12M,反而不稳定,v410版本默认的是1M,速度也够快,因此我采用默认值,不执行此命令
2)下载init.bin,这是用来初始化SDRAM的小程序(可以简单的截取u-boot的前8K)
①如果是NAND启动:
loadbin d:\init.bin 0
setpc 0
g
②如果是Nor启动
loadbin e:\init.bin 0x40000000
setpc 0x40000000
g
③下载特制的u-boot(起始地址与正常使用的分开,不要重叠,比如我的是0x32000000)
h //查看寄存器状态
loadbin d:\u-boot.bin 0x32000000
setpc 0x32000000
g
到这u-boot就正常启动了(在串口中查看),然后可以通过U-boot对nor/nand进行操作。
这是最近调试NandFlash过程中,用到Jlink的一个笔记,打通了JLink这个工具,调试nand就方便了,s3c2451平台,NandFlash已经调试成功,Nor没测试过,但U-boot已经在内存中跑起来,Nor的烧写自然不在话下了。