Part0 准备知识
0.1 关键参数说明
0.1.1 开发板说明
OK6410是飞凌公司发布的一款开发板,当前有2个版本,OK6410-A和OK6410-B,我当前使用的是前者;前者也经历过升级,所以有128M ram的和较新的256内存的版本,nand flash大小也有区别,当前新的为4G,内存大小会影响到编译时smdk6410.c文件中mmu部分代码,后续会提到,可以参考飞凌提供的u-boot的该文件内容;
0.1.2 处理器说明
该开发板使用的是三星的s3c6410处理器, cup采用的指令集为: arm1176jzf-s, 属于armv6zk(使用gcc时,可通过-march=armv6zk来指定), 更多的对应关系可以参考: ;
0.2 环境搭建和资料准备
0.2.1 开发环境设置
系统版本: Ubuntu12.10
安装相关的编译工具:
sudo apt-get install build-essential gcc-arm-linux-gnueabi
这里我使用的是ubuntu系统源中含有的gcc-arm-linux-gnueabi系列工具,安装完成后具有如下工具:
arm-linux-gnueabi-addr2line arm-linux-gnueabi-gcc arm-linux-gnueabi-gprof arm-linux-gnueabi-ranlibarm-linux-gnueabi-ar arm-linux-gnueabi-gcc-4.7 arm-linux-gnueabi-ld arm-linux-gnueabi-readelfarm-linux-gnueabi-as arm-linux-gnueabi-gcc-ar-4.7 arm-linux-gnueabi-ld.bfd arm-linux-gnueabi-sizearm-linux-gnueabi-c++filt arm-linux-gnueabi-gcc-nm-4.7 arm-linux-gnueabi-ld.gold arm-linux-gnueabi-stringsarm-linux-gnueabi-cpp arm-linux-gnueabi-gcc-ranlib-4.7 arm-linux-gnueabi-nm arm-linux-gnueabi-striparm-linux-gnueabi-cpp-4.7 arm-linux-gnueabi-gcov arm-linux-gnueabi-objcopy arm-linux-gnueabi-elfedit arm-linux-gnueabi-gcov-4.7 arm-linux-gnueabi-objdump
注意在使用make进行编译源码的时候,设置CROSS_COMPILE参数为: arm-linux-gnueabi-
make CROSS_COMPILE=arm-linux-gnueabi-
0.2.2 相关源代码准备
- 飞凌提供的相关资料,在光盘中有,也可以到如下网址下载:
重点参考三星原厂资料,和飞凌整理后的uboot1.1.6 :
三星原厂资料.rar
- u-boot官方最新版:
wget ftp://ftp.denx.de/pub/u-boot/u-boot-2012.10.tar.bz2
其他版本都可以在该目录中找到:
【说明:】后续主要以三星原厂的uboot和飞凌整理后的uboot为题材,整合进最新版的官方uboot中;最后在ok6410开发板上进行测试;
Part1 测试uboot1.1.6
Part2 移植代码到u-boot2012.10
Part3 u-boot2012.10测试