1。因为CPU上没有程序、驱动,所以采取J-link烧录。(J-link千万不要进行热拔插)
u-boot相当与电脑系统里的BIOS引导系统,需要首先要加载u-boot到开发板上,但是u-boot程序大概有24K左右的大小,不能在SRAM里面运行,而SDRAM在使用之前必须要将其初始化;所以这里讲面临一个问题,该如何加载u-boot?我们可以在SRAM里先运行一个小程序来初始化SDRAM,这样就可以将u-boot加载到SDRAM中。
第一步:使用j-link加载bootstrap(该程序<4K)程序到SRAM 0地址上运行,该程序用来初始化外部的SDRAM
加载bootstrap到SRAM中并运行
J-Link>h 停止cpu执行
J-Link>speed 12000 将J-link速度调为12000KHz
J-Link>loadbin E:\A_linux\f12440_tools\images\bootstrap-s3c2440.bin 0 将初始化程序加载到0地址
J-Link>setpc 0
J-Link>g 将PC寄存器指向0地址然后运行
加载u-boot到SDRAM中并运行
J-Link>h
J-Link>loadbin E:\A_linux\f12440_tools\images\u-boot-s3c2440.bin 0x33f80000
J-Link>setpc 0x33f80000
J-Link>g
2.上面完成了将u-boot加载到内存,接下来我们要完成将u-boot加载到硬盘中
这里才FTP协议进行通信 将开发板与电脑组成局域网进行网络通信
[fl2440@sss]# nand scrub s格式化整个Nandflash
[fl2440@sss]# set ethaddr 00:11:22:33:44:55设置网卡MAC地址
[fl2440@sss]# set ipaddr 192.168.1.55 设置网卡IP地址
[fl2440@sss]# set serverip 192.168.1.8 设置TFTP服务器IP地址
[fl2440@sss]# save 保存
接下来就是使用TFTP进行传输 先把tftp程序打开 修改自己电脑的IP地址
烧录u-boot
[fl2440@sss]# tftp 30008000 u-boot-s3c2440.bin 下载u-boot程序到内存
[fl2440@sss]# nand erase 0 100000 擦除u-boot存放相应分区
[fl2440@sss]#nand write 30008000 0 60000 从内存中将u-boot写到nandflash的相应分区
烧录linux内核
[fl2440@sss]# tftp 30008000 linuxrom-s3c2440.bin 下载linux内核到内存
[fl2440@sss]# nand erase 100000 擦除存放linux内核及其后面的所有分区
[fl2440@sss]# nand write 30008000 100000 ${filesize} 将linux内核写到nandflash相应分区
烧录根文件系统
[fl2440@sss]# tftp 30800000 rootfs-ubifs.bin 下载根文件系统写到内存
[fl2440@sss]# nand erase 1000000 4000000 擦除存放根文件系统的相应分区
[fl2440@sss]# nand write 30800000 1000000 $filesize 写入根文件系统到nandflash相应分区
[fl2440@sss]# boot 重启系统
在烧录过程中出现问题:
在下载文件的时候出现错误。有以下种情况;
1.PC网络IP没有设置,2.tftp程序 下载文件路径选错 3.文件名打错 4.注意网线插口