由于项目需要,前些天购买了一块2416的开发板,在测试时发现无法用SD卡启动EBOOT,询问FAE未果。心想,如果不小心把NANDFLASH擦了,那不完蛋了,因为NORFLASH中并没有烧写启动代码。那么现在就有两种可行的烧写方式:一种是用SJF烧写,另外一种是用H-JTAG。这里先说用H-JTAG吧,那个SJF暂时还没搞定。

在使用H-JTAG之前,需要有一个初始化脚本(后缀为HFC格式的文件),主要作用是对内存相关的寄存器进行配置,使得H-FLASHER能够将烧写FLASH的驱动程序下载到内存当中。我这里用的是DDR2,根据2416的DATASHEET,编写如下脚本:

FLASH SECTION:
AMD
AM29LV160DB  //(NORFLASH的型号)
MEMORY SECTION:
16-BIT X 1-CHIP  //位宽
0x0
0x30000000  //DDR内存的起始地址,FLASH烧写的驱动下载到这里
XTAL SECTION:
NULL
TCK SECTION:
-1
-1
SCRIPT SECTION:
SetMem+32-Bit+0x53000000+0          //下面7行对CPU初始化,去掉也可以
SetMem+32-Bit+0x4A000048+0xFFFFFFFF
SetMem+32-Bit+0x4A000008+0xFFFFFFFF
SetMem+32-Bit+0x4A00001C+0x000007FF
SetMem+32-Bit+0x4C000000+0xE10
SetMem+32-Bit+0x4C000024+0x22D
SetMem+32-Bit+0x4C000010+0x00640061
SetMem+32-Bit+0x48000000+0x00049253  //这下面5行是对内存配置,必须要
SetMem+32-Bit+0x48000004+0x3FFFFF40
SetMem+32-Bit+0x48000008+0x005D0035
SetMem+32-Bit+0x4800000C+0x80000003
SetMem+32-Bit+0x48000010+0x80000003
PGMOPTION SECTION:

将以上文本另存为一个后缀为.HFC的文件。

在H-FLASHER 中把这个HFC脚本导入。

在H-FLASHER 的 编程向导第5步Programming 中 点CHECK ,将会检测到NORFLASH 的ID 和ARM的内核 ID。

到这里,NORFLASH已经可以编程了,自己可以做个BIN文件测试下,写入一个地址再读出来。看是否正确。

先写到这里,NANDFLASH的下次写吧,吃个饭先^_^


作者:Linux_lee
https://blog.csdn.net/Linux_lee/article/details/5170119