设为首页 加入收藏

TOP

U-boot移植记录
2014-11-24 13:07:16 来源: 作者: 【 】 浏览:0
Tags:U-boot 移植 记录

虽然网络上的资源挺多的,当对一个菜鸟来说,编译起来那漫天的报错还是挺让人头疼的,如有你能找到别人已经做好了的ARM_Uboot,用他们的源码借鉴起来,就能让你学习的更快一些了,我自己就是借鉴飞凌OK6410的源码学习的。好了不罗嗦了,借鉴别人的博文来总结自己的学习过程,开始总结如下。


第一:下载通用u-boot源码。


最好下载和你找到的ARM_u-boot 是一个版本的,这样你不会被一些版本上的差别所误导,下载完成后,解压Uboot,我的解压目录是Uboot1.1.6 ,我将它成为我们工作的根目录。


第二:修改Makefile


在根目录下: vim Makefile 然后瞎改交叉编译器环境变量,我修改的是 CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux- 在OK6410中实在endif 以后创建的该项,我也是按照这个操作的:


第三:建立smdk6410_config 的编译选项,这个也就是你自己指定的ARM版子选项。在当前Makefile中 修改如下:先vim 命令查找:/smdk6410。修改为


smdk6410_config : uconfig


@$(MKCONFIG) $(@:_config=) arm s3c64xx smdk6410 samsung s3c6410


在这里:


arm : 为CPU的架构(ARCH)


s3c64xx : 为CPU的类型(CPU), 其对应于 cpu/s3c64xx 子目录


smdk6410 : 开发板的型号(BOARD) 它对应了 ./board/samsung/smdk6410


samsung : 开发者、或者经销商(vender)


s3c6410 : 片上系统(SOC)


我自己认为:能够充分的理解这一项是很有必要的,尤其是 s3c64xx 和 smdk6410 这两项,因为i额这里是你的开发板的Uboot 入口,在cpu/s3c64xx 和 ./board/samsung/smdk6410 下都是一些很重要的文件。


第四:创建这些依赖性文件。在根目录下执行命令


$cd board


$mkdir samsung/smdk6410


到这里就要拷贝一下板子的.c 依赖文件,网上很多资料是ARM9的 所以资料有点不一样,我拷贝的是三星


smdk6410.c 到我的板载目录./board/samsung/smdk610 下,并且名称也为smdk6410.c 这里不用担心自己


板子是OK6410,而文件名有差别,因为这里是可以通用,并能拿来移植的。


第五:在include/configs/ 中建立配置文件


和上一步的解决办法类似,直接cp smdk6410.h 就行,如果你的configs里面已经有了这一选项,就不用了。


第六:测试编译能否成功


$ make smdk6410_config 如果出现: Configuring for smdk6410 board... 就证明编译正确


第七: 修改 ./cpu/samsung/smdk6410/start.S


这个函数是smdk6410系列的共有启动的汇编代码,UBOOT 执行的第一个程序, 这里我把飞凌这里的start.S 直接copy下来了,可以剩了去修改,但还是需要去学习一下这里的原理。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇移植U-Boot.1.2.0到友善之臂SBC24.. 下一篇ARM Linux驱动

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Sphinx : 高性能SQL (2025-12-24 10:18:11)
·Pandas 性能优化 - (2025-12-24 10:18:08)
·MySQL 索引 - 菜鸟教 (2025-12-24 10:18:06)
·Shell 基本运算符 - (2025-12-24 09:52:56)
·Shell 函数 | 菜鸟教 (2025-12-24 09:52:54)