目标平台:全志A33
工作平台:Ubuntu 20.04
uboot版本:u-boot-2011.09
linux版本:Linux-3.4
交叉编译环境版本:4.5.1
上次,通过按键示例,强制进入uboot操作界面,但实际的开发过程中是不会采用这种方式进入uboot,通常,延时按下,键盘的空格键,进入uboot,如果延时的时间段,没有按下自动启动Linux。
一、查询uboot相关开发资料
1、找到设置延时的参数,通常针对板子定义的文件在include/configs/XXX.h,我的开发平台对应的是sun8iw5p1
vi brandy/u-boot-2011.09/include/configs/sun8iw5p1.h
2、由此可以根据CONFIG_BOOTDELAY,查找相关文件
grep 'CONFIG_BOOTDELAY' * -nR
3、找到了brandy/u-boot-2011.09/common/main.c文件,到相应的文件中查看
vi brandy/u-boot-2011.09/common/main.c +346
1)、获取环境变量bootdelay中的值,返回指针给s,
2)、下面有bootdealy的输出
4、由此,可以查询环境变量bootdelay在哪儿定义的
grep bootdealy * -nR
5、修改bootdealy参数
可以看到在 /tools/pack/chips/sun8iw5p1/configs/defaults/env.cfg 里有定义bootdealy参数,(上图为我修改后的值)初始值为0,所以开发板启动后不具有延时功能,直接进入系统;现在只需要将,该值修改为,需要延时的,时间即可。
6、重新编译,烧写系统
修改后,重新编译所有系统
uboot-2011$
make distclean
linux-3.4$
make distclean
cp a33_vstar_defconfig .config
dragonboard$
./build.sh config
./build.sh
./build.sh pack
烧写系统重启,
进入uboot读秒瞬间界面
二、build.sh初步了解,build_uboot脚本
1、build.sh uboot 解析
cd dragonboard/brandy
vi build.sh
从上图中可以看到 在build.sh中的build_uboot是,以前我们手动编译,过程的封装,是自动化处理的一个sh脚本,从中可以看到uboot采用是2011.09版本的,配置适用的平台是sun8iw3p1,在实际的开发中也可以如此进行打包。
三、快速构建系统方法
目前快速构建系统,主流的有两种方式,分别是buildroot和yocto,
1、buildroot
关于buildroot相关信息在这儿就不再赘述了,可参考相关博文
https://blog.csdn.net/yanceylu/article/details/108524573
更多buildroot信息请参考官网
https://buildroot.org/
2、关于yocto请参考官网相关资料
https://www.yoctoproject.org/
3、QNX等相关的系统请参考这个网站
https://blackberry.qnx.com/en
注:如需要其他相关的资料,或者你有相关的资料,欢迎发送链接