嵌入式linux新手入门手记

嵌入式linux新手入门手记

时间:2020-03-24 06:14 作者:admin 点击:
阅读模式

  由于nand中没有MLO和u-boot.img,所以我们需要设置 am335x 处于SD卡启动模式,从SD卡启动。

本文引用地址:http://www.eepw.com.cn/article/278450.htm

  从SD卡启动,对SD卡的设置比较简单,将SD卡设置为FAT16分区,并格式化,然后将MLO,u-boot.img拷贝到SD卡上。由于我们不需要进入到kernel,所以不拷贝uImage,也不制作ubi分区。

  设置 am335x 的LCD_data4:0为b10111,从SD卡启动(MMC0),插入制作好的SD卡到卡槽中。将 am335x 电路板通电,等u-boot.img启动时按下键盘任意键,超级终端显示 U-Boot: 提示符,即进入到命令行操作模式。输入以下内容,设置网络参数:

  setenv ipaddr 192.168.1.51 //设置am335x板的ip地址

  setenv serverip 192.168.1.50 //设置tftp和nfs的ip地址

  确保计算机的tftp服务已经正确启动,/home/XXXX/tftp目录下有MLO,u-boot.img和uImage。执行以下的命令:

  mw.b 0x82000000 0xff 0x20000 //将DDR的0x82000000,长度0x20000空间填充为0xff

  tftp 0x82000000 MLO //从tftp服务器下载MLO到DDR的0x82000000开始的空间

  nandecc hw 2 //设置DDR的工作模式

  nand erase 0x0 0x20000 //擦除nand地址0x0开始,长度0x20000空间

  nand write.i 0x82000000 0x0 0x20000 //将DDR地址0x82000000空间的数据写入到nand的0x0开始的空间,写入长度0x20000

  上述命令将MLO写入到nand的地址0x0开始的空间。

  mw.b 0x82000000 0xff 0x40000

  tftp 0x82000000 u-boot.img

  nand erase 0x80000 0x40000

  nand write.i 0x82000000 0x80000 0x40000

  上述命令将u-boot.img写入到nand的地址0x80000开始空间。

  我们将使用nfs来加载uImage,以及根文件系统,所以下面的命令可以先不执行。

  mw.b 0x82000000 0xff 0x500000

  tftp 0x82000000 uImage

  nand erase 0x280000 0x500000

  nand write 0x82000000 0x280000 0x500000

  上述命令将uImage写入到nand的0x280000的空间。

  mw.b 0x82000000 0xff 0x2000000

  tftp 0x82000000 ubi.img

  nand erase 0x780000 0xf880000

  nand write 0x82000000 0x780000 0x2000000

  上述命令将根文件系统写入到nand的0x780000空间,长度为0x2000000。这里要注意长度应该比ubi.img实际字节大一些。

  ubi.img文件的制作方法在后续的手记中记录。

  上述完成后,执行nand erase 0x260000 0x20000,清除u-boot的启动参数,然后设置bootargs和bootcmd。

  setenv ipaddr 192.168.1.51

  setenv serverip 192.168.1.50

  setenv bootargs console=ttyO0,115200n8 noinitrd root=/dev/nfs rw nfsroot=192.168.1.50:/home/XXXX/nfs ip=192.168.1.51:192.168.1.50::255.255.255.0::eth0::off mem=256M init=/ linux rc

  set bootcmd 'nfs 0x82000000 192.168.1.50:/home/XXXX/nfs/boot/uImage;bootm 0x82000000'

  saveenv //保存环境变量

  上述将设置am335x板的ip地址,tftp和nfs服务器的ip地址,以及从nfs服务器加载uImage和ubi跟文件系统。

  最后保存好上述环境变量后,将am335x电路板断电,然后将LCD_data(4:0)设置为b10011,从nand启动。

  重新启动电路板,当u-boot启动后,将会自动从192.168.1.50的nfs/boot目录下下载uImage并启动。kernel启动后,将自动将192.168.1.50的nfs目录作为根文件系统加载到am335x的 / 下。