移植u-boot-2009.06-rc3到友善之臂matrix4开发板step1 点击:628 | 回复:3



士联科技

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 62回
  • 年度积分:0
  • 历史总积分:204
  • 注册:2009年11月02日
发表于:2009-11-23 21:34:08
楼主

 

 

序言
本文在《移植u-boot-2009.03到友善之臂mini2440开发板step1、step2、step3》(原作者芷菁博客,原文出处 http://www.stars625.com/portinguboottomini2440step1.html)的基础上结合友善之臂早期开发板Matrix-4(s3c2410) 加以修改,最终在Matrix-4上测试跑通。

下面是文章正文,大部分描述引自原文,只是鉴于技术原因,结合具体开发板做些少量改写,只用作技术交流,再次感谢原作者为我们大家所作的贡献。



正文

网上介绍U-Boot移植的文章已经有很多了,但大多数文章都只讲了在哪个地方修改什么东西,但并未讲明白如何知道要修改这个值,如何是正确的移步骤。那么作者根据自身移植经历,通过三篇文章告诉你一般的U-Boot移植过程,本文主要讲解了移植的基本思路、方法。

很多嵌入式系统开发的初学者都有过这样的经历,买了ARM开发板,了解了基础的Bootloader相关知识,也知道U-Boot在这方面的应用相 当广泛,希望自己也能移植成功。接下来就是下载源码,照着网上教程做,结果大部分都失败了,但又不甘心,于是再找教程,东拼西凑还是不行,试了几次就失去 信心,做不下去了;即使做成功了,但也不知道别人怎么知道要改哪个文件、哪个数据,这么多文件人家是怎么找出来的,下次自己遇到款新的芯片能不能也移植成功。

根据教程移植失败,原因是多方面的:教程里的开发板、U-Boot版本与自身的不一致,细微的差别(比如LED、串口的引脚分配等)都有可能导致失 败,即使全都一样的情况下,大家的知识水平也不一样,有些Makefile的更改等,作者未加以说明导致编译出错。下面根据我的经历写一下移植过程,根据 本文不能保证你一定能移植成功,本文重点讲解的是移植过程中的思路、方法。

在移植的过程中主要参考了以下文章,感谢作者分享:


《移植u-boot-2009.03到友善之臂mini2440开发板step1、step2、step3》
原文出处:芷菁博客 http://www.stars625.com/portinguboottomini2440step1.html
由于只是为了学习基本的移植方法、流程,下文只进行了LED的相关驱动和串口输出设置以及其它一些必要的更改,至于Nor Flash、Nand Flash、网卡、USB的移植并未涉及。开发环境的设置可以参考mini2440的用户手册,写得相当详细。

买回来的开发板已经安装好了Bootloader,官方使用的是Supervivi,在下面的过程中我们尽量不搞破坏,用最简洁的方式,完成学习目 标:在PC是编译好U-Boot,生成Bin文件,将开发板与PC通过串口和USB口相连,把生成的Bin文件通过USB口下载到开发板上RAM里,从 RAM里直接运行,查看串口是否按要求输出信息。

请同时关注以下两文章:


移植u-boot-2009.06-rc3到友善之臂matrix4开发板step2(转载)
http://lion3875.blog.sohu.com/118760258.html


移植u-boot-2009.06-rc3到友善之臂matrix4开发板step3(转载)
http://lion3875.blog.sohu.com/118760323.html



下载最新U-Boot,地址:ftp://ftp.denx.de/pub/u-boot/,本文使用u-boot-2009.06-rc3

解压U-Boot,把里面的README好好看一下,里面已经基本介绍了整个移植过程和配置文件的选项,基本的移植步骤都包括以下三个步骤:

1、在U-Boot源码Board中找一款与目标开发板配置相近的文件夹,在这里我们进入board/samsung目录,把smdk2410复制 一份并命名为matrix4,进入matrix4目录,将里面的smdk2410.c改成matrix4.c,同时Makefile中也要作相应的 更改。

2、进入include/configs目录,将smdk2410.h复制一份并命名为matrix4.h。

3、打开U-Boot根目录下的Makefile文件,搜索smdk2410,定位到smdk2410_config : unconfig处,对照该格式在下面加两行:

1
2
matrix4_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t matrix4 samsung s3c24x0
注意在@$(MKCONFIG)前要加入一个TAB这是Makefile文件规则规定的,在第二行的第一个arm表示MCU平台(包括:i386、 ppc、mips、nios、m68k等);第二个arm920t表示arm内核版本(包括:arm7tdmi、arm10、arm11等);第三个 matrix4对应开发板所在文件夹board/samsung/matrix4;第四个samsung对应开发板所在文件夹上层目录board /samsung,如果matrix4目录就直接放在board目录下,那么此处应写NULL;第五个s3c24x0对应MCU型号。

完成了上面三步,可以执行以下命令进行编译:

1
2
#make matrix4_config
#make
如果成功编译出u-boot.bin,那么恭喜你,迈出了成功的第一步。

有个helloworld的编译错误,是因为make无法识别.srec的文件类型,改成.o就可以编译通过了。

总结一下,移植U-Boot基本步骤有三:1、在board目录下创建开发板对应目录;2、在include/configs下创建开发板对应配置文件;3、在U-Boot根目录下的Makefile中加入开发板对应编译命令。




士联科技

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 62回
  • 年度积分:0
  • 历史总积分:204
  • 注册:2009年11月02日
发表于:2009-11-23 21:35:31
1楼
北京士联科技发展有限公司 www.scholinktech.com

为您提供 工业I/O板卡、工业通讯卡、运动控制卡、工业触控平板电脑、分布式I/O模块的设计研发,同时提供工业嵌入式系统平台构建、驱动程序开发等软件增值服务

士联科技

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 62回
  • 年度积分:0
  • 历史总积分:204
  • 注册:2009年11月02日
发表于:2009-12-15 21:52:38
2楼
北京士联科技发展有限公司 www.scholinktech.com

为您提供 工业I/O板卡、工业通讯卡、运动控制卡、工业触控平板电脑、分布式I/O模块的设计研发,同时提供工业嵌入式系统平台构建、驱动程序开发等软件增值服务

士联科技

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 62回
  • 年度积分:0
  • 历史总积分:204
  • 注册:2009年11月02日
发表于:2009-12-15 21:59:11
3楼
德国Thermokon(特莫克)无线传感器、无源传感器、无线无源传感器、无源无线传感器在中国的销售,请访问士联科技网站了解详情:http://www.scholinktech.com/distribution.html

热门招聘
相关主题

官方公众号

智造工程师