1. 配置好交叉编译工具链
假设 pwd 得到 /timkyle-dev/techer/arm11-resources/
a.解压交叉编译工具链包
#tar xf arm-4.3.2.tar.bz2 得到文件夹 arm-4.3.2
b.增加PATH路径
#vim ~/.bash_profile 增加 PATH=$PATH:/timkyle-dev/techer/arm11-resources/arm-4.3.2/bin
c.使新增加的PATH路径立即生效
注销用户后重新登录
d.验证新增PATH是否生效
#arm-none-linux-gnueabi-gcc --version
上述命令成功运行,并有结果输出,则交叉编译工具链已经配置正确。
相关阅读:
U-Boot源代码下载地址
2. 编译并烧写u-boot到sd卡
假设 pwd 得到 /timkyle-dev/techer/arm11-resources/
a.解压u-boot源码包
#tar xf u-boot-1.1.6.tar.bz2 得到文件夹 u-boot-1.1.6_smdk6410
b.配置并编译u-boot为sd卡启动
#cd u-boot-1.1.6_smdk6410
#make smdk6410_config
#vim include/configs/smdk6410.h
原内容如下:
445 /* Boot configuration (define only one of next) */
446 //#define CONFIG_BOOT_NOR
447 #define CONFIG_BOOT_NAND
448 //#define CONFIG_BOOT_MOVINAND
449 //#define CONFIG_BOOT_ONENAND
450 //#define CONFIG_BOOT_ONENAND_IROM
修为后如下:
445 /* Boot configuration (define only one of next) */
446 //#define CONFIG_BOOT_NOR
447 //#define CONFIG_BOOT_NAND
448 #define CONFIG_BOOT_MOVINAND
449 //#define CONFIG_BOOT_ONENAND
450 //#define CONFIG_BOOT_ONENAND_IROM
配置说明:
CONFIG_BOOT_NAND 为 NAND flash启动
CONFIG_BOOT_MOVINAND 为 sd卡启动
这里先配置为sd卡启动
#make clean
#make
#cp u-boot.bin u-boot-sd.bin
c.烧写u-boot到sd卡
插入sd卡到电脑
#ls /dev/sd* 知道刚插入的sd卡设备是 /dev/sdb1
#cd /timkyle-dev/techer/arm11-resources/
#tar xf s3c6410_sd.tar.bz2 得到文件夹 s3c6410_sd
#cd s3c6410_sd
#./mksdboot /dev/sdb1 ../u-boot-1.1.6_smdk6410/u-boot-sd.bin
d.最后把sd卡插入开发板卡槽, 拨码开关拨到sd处。
3. 配置并启动minicom
a.从电脑usb口连接usb-232线到开发板串口
#ls /dev/ttyUSB* 知道刚连接的usb-232线设备是 /dev/ttyUSB0
#minicom -s
首先选择Serial port setup选项,具体配置如下:
A - Serial Device : /dev/ttyUSB0
B - Lockfile Location : /var/lock
C - Callin Program :
D - Callout Program :
E - Bps/Par/Bits : 115200 8N1
F - Hardware Flow Control : No
G - Software Flow Control : No
接着选择Save setup as dfl选项
最后选择exit选项,推出配置并运行minicom处于等待数据状态
b.开发板通电,minicom就收到数据,显示已经成功启动并进入u-boot。
4. 配通开发板与主机的网络
a.连接网线
b.查看开发板的IP地址
在minicom(即开发板)上运行
$printenv
从得到输出中,找到ipaddr=192.168.1.20,即为开发板IP地址
c.配置主机IP地址
#ifconfig eth0 192.168.1.10
d.验证开发板与主机网络是否畅通
在minicom(即开发板)上运行
$ping 192.168.1.10
结果如下代表畅通
dm9000 i/o: 0x18000300, id: 0x90000a46
MAC: 00:40:5c:26:0a:5b
operating at 100M full duplex mode
host 192.168.1.10 is alive
5. 配置主机的tftp服务器
a.安装tftp服务器
#yum install xinetd
#yum install tftp-server
b.修改启动脚本,允许tftp服务启动。
#vim /etc/xinetd.d/tftp
把disable = yes改为disable = no,
把server_args = -s /var/lib/tftpboot改为server_args = -s /tftpboot -c
保存退出。
c.重启xinetd服务,则tftp也就启动了
#service xinetd restart
d.设置xinetd开机就启动服务
#chkconfig --level 2345 xinetd on
e.验证xinet及tftp是否启动成功
#chkconfig --list
看到结果如下
xinetd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
xinetd based services:
tftp: on
f.关闭防火墙
#system-config-firewall
点击Disable按钮
g.关闭SELinux
#vim /etc/sysconfig/selinux
改为SELINUX=disabled
保存推出,并重启电脑
6. 编译u-boot为nand flash启动
假设 pwd 得到 /timkyle-dev/techer/arm11-resources/
a编译u-boot
#cd u-boot-1.1.6_smdk6410
#make smdk6410_config
#vim include/configs/smdk6410.h
修为后如下:
445 /* Boot configuration (define only one of next) */
446 //#define CONFIG_BOOT_NOR
447 #define CONFIG_BOOT_NAND
448 //#define CONFIG_BOOT_MOVINAND
449 //#define CONFIG_BOOT_ONENAND
450 //#define CONFIG_BOOT_ONENAND_IROM
配置说明:
CONFIG_BOOT_NAND 为 NAND flash启动
CONFIG_BOOT_MOVINAND 为 sd卡启动
这里要配置为nand flash启动
#make
#cp u-boot.bin u-boot-nand.bin
b.复制到tftp服务目录/tftpboot
#cp u-boot.bin /tftpboot/u-boot-nand.bin
7. 通过tftp服务把u-boot下载并烧写到开发板的nand flash上
a.下载u-boot到开发板内存的0x5000800地址处
在minicom(即开发板)上运行
$tftp 0x50008000 u-boot-nand.bin
b.从nandflash的0地址开始擦处0x100000大小
$nand erase 0 0x100000
c.把在从0x50008000内存地址开始的数据写到nand的零地址处,写0x100000大小
$nand write 0x50008000 0 0x100000
e.开发板关电,把拨码开关拨到nand,再开电启动开发板。