初步学习先要知道uboot是什么?
1.uboot是什么?
u-boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一小段程序,通过它,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的软硬件环境,为最终调用操作系统内核做好准备。
而bootloader是什么呢?它就是硬件在加电开机后,除BIOS固化程序外最先运行的软件,负责载入真正的操作系统,可以理解为一个超小型的os。目前在Linux平台中主要有lilo、grub等,在Windows平台上主要有ntldr、bootmgr、grldr等。Boot Loader的主要运行任务就是将内核映象从硬盘(e.g. NAND flash or eMMC)上读到RAM中,然后跳转到内核的入口点去运行,即开始启动操作系统。系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的Boot Loader程序。总的来说,u-boot就是一种常用的引导程序,并且是开源的,可以作为常见系统Linux, SVR4, Esix, Solaris等的引导程序,也支持多种CPU如x86等。
uboot 的全称是 Universal Boot Loader, uboot 是一个遵循 GPL 协议的开源软件, uboot 是一个裸机代码,可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、 USB 等高级功能。
2.uboot的文件形式
3.uboot如何下载?
Uboot的代码获取可以直接在网站上ftp://ftp.denx.de/pub/u-boot/去下载获取,上面有多个版本可供下载。
或取官网下载(http://www.denx.de/wiki/U-Boot/)。
搭配uboot的编译环境及编译
1.搭配编译环境:
下载用于uboot的工具包 buildroot-2018.02.9.tar.bz2。
sudo apt update
sudo apt install build-essential ccache ecj fastjar file g++ gawk \
gettext git java-propose-classpath libelf-dev libncurses5-dev \
libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget \
python3-distutils python3-setuptools python3-dev rsync subversion \
swig time xsltproc zlib1g-dev
进入uboot目录
把工具包链接到uboot目录下:
找到uboot文件下Makefile文件
Sudo gedit Makefile 打开文件进行相关参数设置
找到CROSS_COMPILE
加入参数
CROSS_COMPILE=mipsel-buildroot-linux-gnu-
该参数就是位于目录buildroot/bin下的各种工具包
然后要把其设为环境变量:
Sudo gedit .bashrc
加入变量:
export PATH=$PATH:/home/yhttian/yasuobao/buildroot-gcc492_mips_glibc/usr/bin
2.编译
make menuconfig可进行相关设置,可按照uboot自带的用户手册进行设置。
或直接使用uboot自带的默认参数设置。
然后即可进行make编译。
得到.bin文件,即可进行烧写操作,烧写到开发板上。
uboot的烧写过程:
可使用相关软件进行烧写操作:
我的开发板芯片使用的是Winbond W25Q256FV