硬件平台:
开发板:mini2440,2M norflash SST39VF1601 128M nandflash k9F1G08
主机:台式机,带有并口
连接线:JTAG小板,买开发板送的那个
软件平台:
H-JTAG1.1版本,这个版本可以烧写norflash也可以烧写nandflash,哈哈
ubuntu10.10
交叉编译链:自己利用crosstllo-ng做的arm-lwm-linux-gnueabi-xxx
首先,是H-JTAG1.1的设置:settings-》usb/LPT selections 选择LPT 因为我们用的是并口
其次,选择LPT JTAG SETTINGS
为什么这么选择是根据JTAG小板的原理图定的,附件中有,设置的引脚与JTAG小板接到并口上的引脚一一对应。
然后就是点击init 添加脚本文件FriendlyARM2440.his
接着就可以检测到cpu了:
然后点击flash -》start flash
点击load添加脚本H-Flasher_mini2440.hfc
然后在第一个选项中选择norflash的类型或者norflash的类型
在地四个选项中就可以烧写程序了。
这里讲下这两个脚本的含义,主要是进行一些初始化工作,首先看下FriendlyARM2440.his脚本:
Setmem+32-Bit+0x53000000+0x00000000
Setmem+32-Bit+0x4A000008+0xFFFFFFFF
Setmem+32-Bit+0x4A00001C+0x000007FF
Setmem+32-Bit+0x53000000+0x00000000
Setmem+32-Bit+0x56000050+0x000055AA
Setmem+32-Bit+0x4C000014+0x00000007
Setmem+32-Bit+0x4C000000+0x00FFFFFF
Setmem+32-Bit+0x4C000004+0x00061012
Setmem+32-Bit+0x4C000008+0x00040042
Setmem+32-Bit+0x48000000+0x22111120
Setmem+32-Bit+0x48000004+0x00002F50
Setmem+32-Bit+0x48000008+0x00000700
Setmem+32-Bit+0x4800000C+0x00000700
Setmem+32-Bit+0x48000010+0x00000700
Setmem+32-Bit+0x48000014+0x00000700
Setmem+32-Bit+0x48000018+0x0007FFFC
Setmem+32-Bit+0x4800001C+0x00018005
Setmem+32-Bit+0x48000020+0x00018005
Setmem+32-Bit+0x48000024+0x008E0459
Setmem+32-Bit+0x48000028+0x00000032
Setmem+32-Bit+0x4800002C+0x00000030
Setmem+32-Bit+0x48000030+0x00000030
拿第一句来说:
setmem就是往内存理写东西,32-bit就是内存是32位的 0x53000000就是内存的地址,最后一个0x00000000就是要写入的值。
所以第一句的功能就是象地址为0x53000000的寄存器里写入值0x00000000,查s3c2440的数据手册我们知道,其实就是关闭看门狗,下面的几句实现的功能,自己可一查s3c2440的数据手册了解,主要是初始化时钟和存储器控制器。
再来看看H-Flasher_mini2440.hfc脚本:
FLASH SECTION:
SST
SST39VF1601
MEMORY SECTION:
16
0x00000000
0x40000000
SCRIPT SECTION:
Setmem+32-Bit+0x53000000+0x00000000
Setmem+32-Bit+0x4A000008+0xFFFFFFFF
Setmem+32-Bit+0x4A00001C+0x000007FF
Setmem+32-Bit+0x53000000+0x00000000
Setmem+32-Bit+0x56000050+0x000055AA
Setmem+32-Bit+0x4C000014+0x00000007
Setmem+32-Bit+0x4C000000+0x00FFFFFF
Setmem+32-Bit+0x4C000004+0x00061012
Setmem+32-Bit+0x4C000008+0x00040042
Setmem+32-Bit+0x48000000+0x22111120
Setmem+32-Bit+0x48000004+0x00002F50
Setmem+32-Bit+0x48000008+0x00000700
Setmem+32-Bit+0x4800000C+0x00000700
Setmem+32-Bit+0x48000010+0x00000700
Setmem+32-Bit+0x48000014+0x00000700
Setmem+32-Bit+0x48000018+0x0007FFFC
Setmem+32-Bit+0x4800001C+0x00018005
Setmem+32-Bit+0x48000020+0x00018005
Setmem+32-Bit+0x48000024+0x008E0459
Setmem+32-Bit+0x48000028+0x00000032
Setmem+32-Bit+0x4800002C+0x00000030
Setmem+32-Bit+0x48000030+0x00000030
FLASH SECTION:
SST
SST39VF1601
MEMORY SECTION:
16
0x00000000
0x40000000
SCRIPT SECTION:
这几句其实就是设置下面图这个地方的,
剩下的就和上面是一样的了。
附两个配置文件: