s5pv210uboot移植教程(原创)

所需积分/C币:49 2015-06-18 22:17:28 4.3MB PDF
收藏 收藏
举报

自己移植了x210v3的开发板的uboot和Linux心得,这块开发板基于s5pv210芯片。和其他的210开发板差不多,如果你是210的板子,那么可以参考我写得教程,希望对你有所帮助。
root@crazyrain: /home/share/uhoot/u-hoot-2012 10# vim README </pre>以下内容截取白READ文件:φp)/)p> uboot目永结构信息:可以想得到,我们最常修改的是 哪些文件?〈p>p> board 不同的开发板硬件不同,这个当然得要改</p> p>arch/arm/cpu/xxx 体系结构相关,有时有点改动</〉< p>includc/ configs/x.h--—开发板的配置文件,毫无疑问必须 Ex</p>p>Configuration Options: -----Configuration depends on the combination of board and CPu type: allsuch information is kept in a configuration file" include/configs/board name> h". Example: For a TQM823L module, all configuration settings are in include/ configs/TQM823L h"./p>p></p<pre name="code class=html >Directory Hierarchy: /arch Architecture specific file 体系结构相关文件, 也就是包含的所有支持处理器的类型 /arm Files generic to ARM architecture arm欠理器支持 CPU specific files 支持的 arm cpu /arm720t Files specific to ARM 720 CPUs- 具体的cpu类型 /arm920t Files specific to ARM 920 CPUs /at91 Files specific to Atmel AT91RM9200 CPU /Imx Files specific to Freescale MC9328 i MX CPUs /s3c24x0 Files specific to Samsung $3C24X0 CPUs arm925t Files ic to arm 925 CPus /arm926e js Files specific to ARM 926 CPUs /arm1136 Files specific to ARM 1136 CPUs /lxp Files specific to Intel XScale IXP CPUs / pxa Files specific to Intel Xscale PXA CPu /s3c44b0 Files specific to Samsung S3C44B0 CPUs /sa1100 Files specific to Intel StrongARM SAl100 CPUs /lib Architecture specific library files 出arm体 系的库文件 Machine/ arch independent aPI for external apps-这里一般 不用修改,有兴趣的自己了解 Board dependent files-- 开发板相 关文件 /common Misc architerture independent functions- 通用代码文 件,包括uoot命令和一些通用函数。 /disk Code for disk drive partition handling /doc Documentation (don t expect too much) /drivers Commonl y used device drivers- 各类设备驱 动程序 /examples Example code for standalone applications, etc Filesystem code (cramfs, ext2, jffs2, ctc) 支持的文 件系统 /include Header Files- 头文件和开 发板配置信息,所有的开发板配置文件都位于/ include/ configs日录下 Files generic to all architectures /libfdt Library files to support flattened device trees Library files to support LZMa decompression brary files to support lzo decompression /net Networking code 一支持的各 种网络协议 If Test tc Real time Clock drivers too ls Tools to build s- Record or u- Boot images,etc.-常用工具, 如制作 iMage的 mkimage工具 /Makefile 控制整个工程的编译 4建立编译配置文件 ubot这么大的一个「程文件,不可能全编译吧。这时候就得建立编译配置文件,当然 uboot本身就建立 好」一些默认配置文件,我们只需 make xXXx config 为什么是 XXx config呢?在很多博客里,经常看到有人写到 make xxx config建立配置,让我们来看看根 源在哪?看 README文档:对于 uboot支持的开发板,只需: Later we will add a configuration tool- probably similar to or even identical to what's used for the Linux kernel. Right now, we have to do the configuration by hand which means creating some symbolic inks and editing some confi guration files. We use the 'l'. boards as an examp⊥ e here Selection of Processor Archi tecture and Board lype For all supported boards there are ready-to-use default configurations available; just type make (board name> config Example: For a tQM823L module type: cd u-boot Imake TQM823L config 正如前面所说,我们在goni这垬开发板的基础上做修改,那么goni的配置怎么建立呢? make goni_ config 吗?很遗憾弹出错误信息,显然 Makefile里没有这个目标 rootGcrazyrain: / home/ share/uboot/u-boot-2012 10# make goni config No rule to make target goni config. Stop nakc:**「 goni config错误1 这里有两种思路可以解决。第一,去看 Makefile。第¨,还记得前面说的配置文件目录( include/ configs) 吗?去配置文件目录看看 root@crazyrain: /home/ share/ uboot/u-boot-2012 10# ls include/ configs/ grep goni 5 然后 rootocrazyrain: /home/share/uboot/u-boot-2012 10# make s5p goni config Configuring for s5p goni board 果然ok 这样好像有投机取巧的味道在里面,那么接下来将分析 Makefile文件建立自己的开发板配置文 件 x210V3开发板u-boot-2012.10移植之三- mkconfig分析 疯雨版权所有,转载请注明 thttp://blog.csdn.net/u0103469671 编辑顶层的 Makefile文件 root@crazyrain: /home/sharc/uboot/u-boot-2012 10# vim Makefile 搜索s5 p goni config目标,没找到。那么就是说这个目标是由其他文件产生的,并不是直接在 Makefile 中给出的。那么搜索 config,发现如下代码 config unconfig as(MKCONFIG)-A $(a: config) 下子愣是没看懂,%是个道配符,那么::这个是什么规则呢?表小没见过。百度双冒号规则,以下内 容来白htto/ olog chinaunix. net/uid20536947-d-1931549htm makefile双冒号规则 双冒号规则就是使用“∷:"代替旾通规则的"得到的规则。当同一个文作作为多个规则的日标时,双冒号规 则的处理和普通规则的处理过程完全不同(双冒号规则允许在多个规则中为同一个日标指定不同的重建日 标的命令)。 首先需要明确的是: Makefile中,一个目标可以出现在多个规则中。但是这些规则必须是同一类型的规 则,要么都是普通规则,要么都是双冒号规则。而不允许一个目标同时出现在两种不同类型的规则中。 双冒号规则和普通规则的处理的不同点表现在以下几个方面: 1.双冒号規则中,当依赖文件比目标更新时。规则将会被执行。对于一个没有依赖而只有命令行的双 冒号规则,当引用此目标时,规则的命令将会被无条件执行。而普通规则,当规则的目标文件存在时,此 规则的命令水远不会被执行(目标文件水远是最新的)。 当同一个文件作为多个双冒号规则的目标时。这些不同的规则会被独立的处理,而不是像—通规则 那样合并所有的依赖到一个目标文件。这就意味着对这些规则的处理就像多个不同的普通规则一样。就是 说多个双冒号规则中的每一个的依赖文件被改变之后,make只执行此规则定义的命令,而其它的以这个 文件作为目标的双冒号规则将不会被执行 我们来看一个例子,在我们的 Makefile中包含以下两个规则 Newprog foo c $(CC) S(CFLAGS)S<-o S@ Newprog barc S(CC) S(CFLAGS)S<-o S@ 如果foo.c文件被修改,执行make以后将根据"foo.c"文件重建目标ˆ Newprog"。而如果bar.c"被修改那么 ¨ Newprog’将根据"bar.c被重建。回想一下,如果以上两个规则为普通规时岀现的情况是什么?(make 将会出错并提示错误信息) 当同一^目标出现冇多个双冒号规则中时,规则的执行顺序和普通规则的执行顺序一样,按照其在 Makefile中的书写顺序执行。 GNU make的双冒号规则给我们提供一种根据依媖的更新情况而执行不同的命令来重建同一目标的机 制。一般这种需要的情况很少,所以双冒号规则的使用比较罕见。一般双冒号规则都需要定义命令,如果 个双冒号规则没有定义命令,在执行規则时将为其目标自动查找隐含规则。 搞清楚了,继续分析 @表示去回显,就是在控制台看不到命令信息。$(表示引用变量,$( MKCONFIG)就是引用 MKCONFIG变量,搜索这个变量 MKCONF IG SRCTREE)/mkconfig export MKCONFIG SRCTREE S (CURDIR CURDIR是 makefile的内嵌变量,显示当前路径 S(aC: config-)什么意思? 这里使用了 Makefile中的替换引用规则,格式为$ARAB严或者ARAB,意思是:替换变量"VAR 中所有“A"字符结尾的字为“B”结尾的字。 类似常看到的例子ob-s( srcfiles:%c=%o):由c得到对应的0文件 @代表的是目标s5 p goni config,那么$(@: config=)就是将s5 p goni config中的 config替 换为空!得到s5pgor 那么 aS( MKCONFIG)-As(@: config-)就等价于/ mkconfig -A s5 o gonl 接下来分析 mkconfig文件 vim mkconfig #!/bin /sh Script to create header files and links to configure U-Boot for a specific board Parameters: Target Architecture CPu Board [VENDOR] [SOC C)2002-2010 DENX Software Engineering, Wolfgang Denk <wdadenx de> aPPenD-no Default: Create new config filc BOARD NAME= Name to print in make output TARGETS= cpu board= endor ptions Automatic mode e=egrep-i[[: space: ]*$( 2: [[: space: ]]"b g echo"make:米 No rule to make target、$2 config.Stop.”&2 it 1 add default board name if needed 「$#=3]&&set${line}${} el if[MAKEFLAGS+set)$ MAKELEVEL +set="setset]:then 4 only warn when using a config target in the Makefile cat <<-EOF warning: Please migrate to boards. cfg. Failure to do so will mean removal of your board in the next release. EOF sleep 冰**米冰冰水冰**冰水冰冰*冰冰冰冰冰冰**冰水冰*冰 S表示参数个数./ mkconfig-As5 D gonl包含2个参数,$1表示第一个参数-A,$2表示第二个参数 s5p goni 如果参数个数等于2并且第一个参数为-A运行then后面的命令这里完全满足\是转义字符先不管。 egrep命令检索扩展的止则表达式(包括表达式组和可选项),i不区分大小写,[: space:]匹配空自字 符,包括空格,tdb,*匹配0个或多个字符 egrep-i"[: space:]*${2}[l: space:]]" boards.cfg也就是在 boards.cfg文件中查找s5 p gonl 字符串 所以要建立自己的配置文件,必须在这里建立自己的配置项,在 boards.cfg文件s5 p gonl后添加一行: x210v3 arm x210V3 samsung sbpc lxx 其实分析到这里就可以了, make x2103 config试试,果然 root@crazyrain: /home/ share/uhoot/u-hoot-2012 10# make x210v 3 config Configuring for x210v3 board 说明配置已经生效,不过make一下应该会出问题,因为还有很多文件没有建立。不管他make一下试试 home/share/uboot/u-boot-2012 10/include/ config. h: 10: fatal error: configs/ x210v3 h: No such file or director compilation terminated nake:*[lib/asm- off sets.s]错误1 先接着往下分析,后面冉来解决这个问题 水水水水米水水冰水水水水水冰末水水水水水水水冰水冰水水水水水水水冰水水水水水水冰水水水水水水岩水水来水水冰水水冰冰水水水水水水来冰水冰水水水水冰水水水水水 while[ $ -gt 0: do o) shift: break a)shift: aPPend=yes -n) shift BOARD NAME$ 1% config": shift t)shift: TARGETS="echo s1sed S TARGETS shift 米) break esac 米水求冰水*冰*来水米冰水我是分割线米水求*米串水米*冰来水* 这里判断参数个数是否(gt是大于的意思)大于零,我们这里参数明显多于零,所以继续执行。由于我 们的$1是″-A",所以直接退出,继续下面执行。 米*半半率半半半半水半*半半半*米半半半*半*半客半半*米半*半半*半*半半客率半半半*米半半半*半率半*半半*半半半半*半半*半*字半半*半半*半* LS#-1t4」&&exit1 S# -gt 7&& exit 1 米米*半字米**米我是分割线率米*米米*米米半米半 S#表示参数个数,如果参数个数小于4个大于7个就退出,我们得到六个参数:"x210v3 arm arm7 x210v3 sansung s5pc1xx",所以不会退出 水水水水*水冰水水水水水水冰水本水水水冰冰水水水冰水水冰水水水水水本水水水水冰水水冰水水水水水冰冰水水水水水冰水水水水水冰木水水冰水本水水冰水冰水水水 Strip all options and/ or config suffixes CONFIG NAME=$1% config [S(BOARD NAMEJ "] BOARD NAME="$[1% config

...展开详情
试读 113P s5pv210uboot移植教程(原创)
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
gjianw217 谢谢分享 很有参考价值
2018-06-06
回复
道末端 写的很详细,很适合我
2017-04-13
回复
yazhouren 非常棒,写的很详细
2016-09-28
回复
wang8562 谢谢分享 很有参考价值
2016-06-04
回复
上传资源赚积分or赚钱
最新推荐
s5pv210uboot移植教程(原创) 49积分/C币 立即下载
1/113
s5pv210uboot移植教程(原创)第1页
s5pv210uboot移植教程(原创)第2页
s5pv210uboot移植教程(原创)第3页
s5pv210uboot移植教程(原创)第4页
s5pv210uboot移植教程(原创)第5页
s5pv210uboot移植教程(原创)第6页
s5pv210uboot移植教程(原创)第7页
s5pv210uboot移植教程(原创)第8页
s5pv210uboot移植教程(原创)第9页
s5pv210uboot移植教程(原创)第10页
s5pv210uboot移植教程(原创)第11页
s5pv210uboot移植教程(原创)第12页
s5pv210uboot移植教程(原创)第13页
s5pv210uboot移植教程(原创)第14页
s5pv210uboot移植教程(原创)第15页
s5pv210uboot移植教程(原创)第16页
s5pv210uboot移植教程(原创)第17页
s5pv210uboot移植教程(原创)第18页
s5pv210uboot移植教程(原创)第19页
s5pv210uboot移植教程(原创)第20页

试读结束, 可继续阅读

49积分/C币 立即下载 >