手把手移植tiny4412开发板uboot

来源:互联网 发布:数据备份方式 编辑:程序博客网 时间:2024/05/19 04:26

uboot的作用类似电脑BIOS,是芯片上电之后启动的一个引导程序(裸机),引导操作系统(linux)的启动

通用引导程序-Universal Boot Loader
是遵循GPL条款的开放源码项目
U-Boot的作用是系统引导
选择U-Boot的理由:
① 开放源码;
② 支持多种嵌入式操作系统内核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android;
③ 支持多个处理器系列,如PowerPC、ARM、x86、MIPS;
④ 较高的可靠性和稳定性;
⑤ 高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品发布等;
⑥ 丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;
⑦ 较为丰富的开发调试文档与强大的网络技术支持;
Boot Loader 是在操作系统内核运行之前运行的一段小程序。
通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,
从而将系统的软硬件环境带到一个合适的状态,
以便为最终调用操作系统内核准备好正确的环境。

1、uboot编译
在虚拟机解压uboot目录(uboot压缩包在tiny4412开发板附赠光盘资料里有)
[root@CentOS sumsung]# ls
uboot_tiny4412-sdk1506  uboot_tiny4412-sdk1506.2.19.tgz
[root@CentOS sumsung]# 

清除编译文件(删除多余文件)

# make clean

清除工程配置  (uboot可以引导多种平台的多种系统,默认配置不一定是针对开发板,清除配置自己来作进一步配置)
# make distclean

配置单板(针对开发板进行针对性配置,适配设置)
# make tiny4412_config

编译(生成BL1 BL2用来进行以后引导操作系统)
# make

2、uboot烧写
编译uboot之后uBoot根目录会有uboot.bin文件 编译好的uboot

SD卡格式分区(SD卡使用之前一定要利用开发板附赠SD格式化工具进行格式化处理)

SD卡加载到虚拟机(不要加载到宿主机)
# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1
sda是新建虚拟机时CentOS自动分区
sdb是SD卡
加载BL1(三星未给出源码)和uboot(BL2)到sdb

进入uboot_tiny4412-sdk1506/sd_fuse/目录
# make 生成mkbl2文件(uboot挂接点)
进入uboot_tiny4412-sdk1506/sd_fuse/tiny4412目录
# ./sd_fusing.sh /dev/sdb   

-- 通过mkbl2把uboot.bin拷贝到bl2.bin
                            -- 然后把bl1和bl2烧写到SD卡
烧写成功

3、uBoot启动
把SD卡加载到开发板
tiny4412的启动方式选择SD卡启动
链接串口(putty/secureCRT)--
选择端口 -- 波特率115200 -- 
启动芯片 -- 

可以看到uboot启动,由于没有挂接操作系统,显示的就只有uboot的启动信息

在引导倒计时时间内按下回车键可进入uboot,可查看或进行一些配置

操作平台:VMware12版本下的CentOS7

开发板:tiny4412标准版

交叉编译器:arm-linux-gcc 4.5.1

串口链接器:scure CRT


原创粉丝点击