2014、06.15-----06.23
一、硬件准备:
PC ------- 新硬盘 安装 windows时做好分区
WIN7--NTFS:100-200-200-200:
FAT:4 ( 引导安装 Linux )
Fedora--NTFS:100
tiny210开发板
sd卡 ------- uboot 首先写入 sd卡 ,从SD卡启动, 用uboot来,控制nand flash读写uboot,uImage,文件系统
二、软件准备:
Fedora 16
tftp ------ 传送 uboot.bin uImage
nfs ------- 实现 NFS 挂载文件系统
串口软件 Ckermit ---- 打印uboot、kernel启动信息,后续调试信息
注:tftp nfs 的搭建 百度一下 参考的资料很多。
三、具体工作:
1、将编译好的tiny210-uboot.bin写入SD卡
在/tiny210-u-boot-versioin4.0目录下运行
cat /proc/partitions (找出插入的SD卡,确定sd卡的设备名称)
》》》》》 我在Fedora 16 下看到的是 sdf sdf1 (我用的是sdf)
》》》》 这个信息,是从block driver 中使用add_disk()函数得到
本机,SD接口有问题读不到SD卡,转用SD读卡器
dd iflag=dsync oflag=dsync if=tiny210-uboot.binxxxx of=/dev/sdbxxxx seek=1 (写入SD卡指定位置)
》》》》win7 下有 SD_Flasher.exe 可以实现写入
》》》》linux下采用 命令的方式写入
2、uboot.bin 写入到 nand flash
<a>把uboot.bin 下载到内存
tftp 21000000 192.168.1.xxx(PC端的IP地址):tiny210-uboot.bin(XXXX)
(将服务器192.168.1.xxx中tftpboot目录中的tiny210-uboot.bin下载到内存0x21000000起始的空间内)
文件传输结束后,可以看到文件的大小
<b> nand erase.chip (擦除整个nandflash芯片,注意擦除命令有个点)
nand write 21000000(内存地址) 0(nandflash地址) 3c1f4(写入文件大写 0x)
(将内存0x21000000起始的数据写入nandflash偏移地址为0的空间,写0x3c1f4字节的数据)
3、下载内核uImage ,并设置启动参数
<a>tftp 21000000 192.168.1.xxx(PC端的IP地址):uImage(XXXX)
<b> setenv bootcmd tftp 30008000 192.168.1.xxx(PC端的IP地址):uImage(XXXX)\;bootm 30008000
注意一定要saveenv,通过printenv可以查看,环境变量是否写入。
上述步骤执行完,tftp文件下载之后即可 用 bootm 实现内核启动。
4、文件系统的挂载
setenv bootargs noinitrd root=/dev/nfs console=ttySAC0,115200 init=/linuxrc nfsroot=192 .168.1.101:/opt/FriendlyARM/Tiny210/linux/rootfs_qtopia_qt4ip=192.168.1.120:192 .168.1.101:192.168.1.1:255.255.255.0:name:eth0:on
注意:这里的参数不能有些许的错误,否则导致 错误。
(设置文件系统挂载方式为nfs,串口0为调试串口,波特率为115200,nfs根目录是服务器192.168.1.101中的/opt/FriendlyARM/Tiny210/linux/rootfs_qtopia_qt4,这与PC端配置nfs服务时的设置一致,后面是设置本机ip地址、服务器地址、网关和子网掩码。使用网卡eth0。这里的eth0可能指的是 开发板上的)
saveenv (保存环境变量)
printenv (查看环境变量设置)
5、验证
在挂载的文件目录内,新建attempt_test,存放由交叉编译器arm-linux-gcc编译好的可执行二进制文helloworld。成功执行,则说明tiny210开发环境搭建好了。