三星官方生产的S5PV210芯片,同时他们自己也会做一个开发板卖给给他们的用户,一般都很贵,几W,这个开发板就做
smdkv210
uboot获得的三种途径:
uboot官方、SOC官方、具体开发板的官方
BSP:board support package (板级支持包,一般由开发板供应商来提供),如果想在linux底下进行编译并且分析的东西,一定要在linux的源生目录底下解压去做,不能在Windows的共享文件夹下去做。
配置:
uboot和linuxkernel这种复杂的项目,不能直接进行编译,要先进行配置才能进行编译
uboot要先配置才能编译的,配置的方法是:先cd进入到uboot的根目录下,执行make x210_sd_config,如果发现配置成功即可。
编译得到uboot.bin
编译之前一定要检查我们的arm-linux-gcc对不对,分为两步:
第一步:检查我们的arm-linux-gcc是不是合适的,我们用的是arm-2009q3,因为三星官方,九鼎官方用的都是这个交叉编译工具链。
第二步:检查我们uboot根目录下的makefile中的编译器的目录设置的是否正确,在147行,路径要设置成与我们的交叉编译工具链所在地方一样。
确保以上两点后,就可以进行编译了,在uboot的目录下直接make 就行,或者如果我们的主机是多核的,我们可以进行多核的多线程编译 make -j4 (多线程编译,4线程进行编译,4核,这样编译会快很多)
uboot的源码目录分析,文件分析
.gitignore git工具,是一个版本管理工具。
arm_config.mk 是一个makefile文件,将来在某个makefile文件中,会调用他
三个changelog 文件,修改记录文件,用来记录这个uboot项目的版本变迁过程
COPYING 版权声明
CREDITS 鸣谢,对uboot有贡献的人
p_w_picpath_split 一个脚本,应该是分割uboot 的。将uboot.bin 分割成BL1的
MAINTAINERS 当前参与维护uboot的社区工作者
MAKEALL 一个脚本,应该是帮助编译uboot的
mk 快速编译的一个脚本 可以直接运行这个脚本进行编译
mkconfig uboot阶段主要的配置脚本,uboot的可移植性跟着个配置脚本有很大的关系
mkmovi 一个脚本,应该和iNandSD卡有关
README
rules.mk uboot中的makefile的使用规则
uboot的源码目录分析,文件夹分析
api 硬件无关的功能函数的API。uboot移植时不用管,这些函数是uboot本身使用的
api_examples API的测试示例代码
board board是板的意思,这个board的文件夹下,每一个文件夹都代表一个开发板,这个文件夹下方的东西,就是描述这个开发板信息的。
common 普遍的意思,里面放的是一些与硬件无关的普通适用的代码
CPU 这个文件目录也很重要,里面放的是我们SOC的代码,譬如CPU、中断和SOC内部外设本身有关的代码
disk 磁盘有关的
doc 文档。
drivers 驱动,从linux源代码中,原封不同扣出来的,我们开发板上要用到的驱动。uboot中的驱动就是从我们linux中的驱动抠出来的,两者不同之处在于,linux的驱动是有操作系统的,uboot的驱动是裸机的,所以本质上来讲,uboot中的驱动就是linux驱动中的一部分
examples 示例代码
fs (file system)文件系统,也是从linux的源代码中移植过来的,用来管理我们flash的资源,裸机中我们也是可以用文件系统的
sd_fusing 烧录SD卡的代码,把uboot镜像烧录到SD卡的代码
net 网络相关的代码(tftp nfs)
libfdt 设备树,高版本的内核,启动内核时传参机制变了,改用设备树进行传参了
tools 工具类的代码。