iTOP-STM32MP157开发板采用ST推出的双核cortex-A7+单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板+底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐用,可满足高速信号环境下使用。共240PIN,CPU功能全部引出:底板扩展接口丰富底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块HDMI、CAN、RS485、LVDS接口、温湿度传感器(选配)光环境传感器、六轴传感器、2路USB OTG、3路串口,CAMERA接口、ADC电位器、SPDIF、SDIO接口等
第十一章 编译U-Boot
uboot是一段裸机代码,它的实现非常复杂,主要是初始化一些硬件,部署整个计算机系统,将内核读到内存,根据环境变量去启动内核,并向内核传递参数。它的目标就是启动内核,内核启动后它的生命也随之结束。
u-boot是SourceForge上的开源项目,由一个人发起,然后由整个世界所有感兴趣的人共同维护发展而来的一个bootloader,bootloader是用来引导和加载内核,向内核传递参数的,是内核引导程序的统称,bootloader除了u-boot还有bios,LilO,redboot,vivi等。
Uboot的源码存放路径为“iTOP-STM32MP157开发板光盘资料\04_TF-A、uboot和内核源码\uboot”,如下图所示:
Uboot源码的编译器和编译TF-A的编译器相同为gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf。
将源码拷贝源码到“/home/topeet”目录下,使用如下命令解压:
tar -vxf u-boot-stm32mp-2020.01-r0_20210817.tar.gz
(注意,日期后缀名可能会更新)解压源码压缩包,解压完成之后得到“u-boot-stm32mp-2020.01-r0”文件夹。
使用命令进入uboot的源码如下图所示:
cd u-boot-stm32mp-2020.01-r0/
三个个文件分别为编译的makefile文件和EMMC和TF卡编译的源码。
我们以EMMC源码编译为例(TF卡的uboot镜像编译步骤相同),使用命令
cd emmc_u-boot-stm32mp-2020.01/
进入到对应的源码目录下,如下图所示:
然后使用命令“./create.sh”进行编译,如下图所示:
编译过程如下图所示: 编译完成如下图所示:
编译完成之后会在上一级目录产生build-trusted目录,用来存放编译生成的文件。而我们所需要的文件为u-boot.stm32如下图所示:
至此我们的uboot编译就完成了。然后在build-trusted目录下使用以下命令
cp u-boot.stm32 /home/image/uboot/emmc_emmc_u-boot.stm32
来替换掉烧写文件中关于emmc的uboot即可(每个人image的路径都不同,要根据自己的情况来完善命令)。