以JZ2440开发板为例,烧录程序到S3C2440。可以使用dnw软件进行烧录。在windows下,一般dnw的驱动都装不好,一般需要禁止数字签名才能装好。所以我们可以把dnw装到linux下,在linux下烧录程序。
先用filezilla软件和虚拟机里装好的linux建立连接,把dnw移到linux随便一个目录下,比如我是放到/home/book/ 这个目录下,然后在在linux终端命令下输入:
sudo cp /home/book/dnw /bin
把dnw复制到/bin目录下。
再输入命令:
sudo chmod +x /bin/dnw
sudo chmod +s /bin/dnw
上面两条是给dnw加上权限
以上操作需要输入密码,输入密码时是看不到密码的,不要被这个给坑了.......
之后输入命令:
/bin/dnw xxx
就可以给开发板烧录程序了,其中xxx为bin文件的目录。
当然,我们还可以用其他方式,通过网线进行烧录,需要一条网线和路由器,当然,不要也行,比较麻烦.......
我们把电脑用网线接到路由器上,再把开发板也用网线接到路由器上,虚拟机上的Linux选择网络桥接,这样实现三者能互ping(其中开发板不会回复,所以只有开发板ping主机,主机ping不了开发板)。
打开tftp软件,目录路径选择bin文件所在的路径。ip选择Windows下的ip。
之后我们启动开发板,进入U boot界面,输入命令:
tftp 30000000 xxx.bin
其中,30000000为SDRAM 的起始地址。
再次输入:
nand erase 0 80000
擦除0x80000字节大小,为准备下载的程序腾出空间
再次输入:
nand write 30000000 0 80000
这是把刚刚下载的bin文件复制到0地址上,复制0x80000个字节
这样,开发板设为nand flash 启动,重新启动开发板,就能看到实验效果了。
当然,如果想烧到Nor Flash上,也是可以的:
tftp 30000000 xxx.bin
其中,30000000为SDRAM 的起始地址,先把程序放到SDRAM 。
再次输入:
protect off all
解除写保护
erase 0 3FFFF
这是从0开始擦除0x40000大小分区,大概256k左右。
再次输入:
cp.b 30000000 0 40000
这是把刚刚下载的bin文件拷贝到NOR FLASH的0地址中,从SDRAM的30000000地址开始拷贝,拷贝0x40000大小。
tftp使用分区下载:
tftp 30000000 uImage_4.3//下载到30000000这个地址
nand erase.part kernel;nand write 30000000 kernel
tftp 30000000 fs_mini_mdev.yaffs2
nand erase.part rootfs;nand write.yaffs 30000000 260000 889bc0
还可以使用nfs烧写程序,不过需要ubuntu自身开启nfs服务
nfs 30000000 192.168.1.106:/work/nfs/uImage//下载到30000000这个地址
nand erase 0 80000//擦除0x80000字节大小,为准备下载的程序腾出空间
nand wirte 30000000 0 80000//把程序复制到0地址上,复制0x80000个字节
或者使用USB下载:
USB下载到NAND:
usb 1 30000000//使用usb(uboot1.1.6上功能)下载到30000000这个地址
nand erase 0 80000//擦除0x80000字节大小,为准备下载的程序腾出空间
nand write 30000000 0 80000//把程序写入nand中,大小0x80000字节
USB下载到NOR:
usb 1 30000000//使用usb(uboot1.1.6上功能)下载到30000000这个地址
protect off all//去除NOR FLASH写保护
erase 0 7FFFF//擦除0x80000字节大小,为准备下载的程序腾出空间
cp.b 30000000 0 80000//把程序复制到NOR的0地址上,复制0x80000个字节
当然,也可以用我们熟悉的J-link下载,不过J-link只能下载到Nor Flash上
需要在Windows上安装J-Flash ARM
J-link下载步骤:
1.File->open project,选择s3c2440.jflash
2.Target->connect
3.File->open,选择u-boot.bin,在Start address输入0
4.Target->Auto