首先是把u-boot下载并烧到了nandflash中,对于smdk2440来说,有两种方式烧到裸机的nand中,
1 在linux下,用厂家提供的JFS2440,执行
sudo ./JFS2440 /work/system/uboot.bin /t=5 然后安 0 回车 ,再安 0 回车,等待……组后安 2 回车 即可
查看成功与否,在终端下输入 sudo kermit -c (链接串口)。如果出现班子的root,即说明u-boot能用,且 有开机logo;
2 在xp下,直接norflash 启动,在超级终端下,选择a选项(用usb下载),找到要下载的u-boot即可
ok,现在把u-boot下进去了,我迈进了一步,现在准备让u-boot启动linux 内核,
3 我用的友善之臂提供的内核,但在下载前,要先处理一下,用命令 mkimage -n 'tekkaman' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage zImage.img 把内核作成在0x30008040起始。
4 还是用串口 sudo kermit -c ,进入班子的u-boot,用串口传输命令,loadb,然后输入Ctrl+\,按 c 进入 传输界面,输入 send /home/sea/code/zImage.img 回车,等待传输……
5 传完后,这是内核镜像在内存中,起始地址是0x30008000 要把它烧入nandflash,如下命令
nand erase 0x100000 300000 从nandflsh 0x10000处擦除3M(内核大小为2.5M)前1M存放u-boot
nand write 0x30008000 0x100000 300000 把从0x30008000处的内容写到0x10000处,写3M
nand device 0
nboot 30008000 0 0x100000 为了下次能自启动内核写入下两行命令:
set bootcmd 'nboot 0xnboot 30008000 0 0x100000;bootm 0x30008000'
saveenv
bootm 0x30008000 启动内核,大功告成
不过启动后进入的界面并不友好,说实话我也不知道进到了哪里,是没有构建根文件系统,还是内核不对,等到明天在调试。