Linux第38步_编译“正点原子移植好的uboot”

uboot的全称是Universal Boot Loader,uboot是一个遵循GPL协议的开源软件,uboot是一个裸机代码,可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、USB等高级功能

uboot官方的uboot源码是给所有的半导体厂商准备的。ST公司会uboot官方下载uboot源码,将自家的芯片移植进去,做了一个自己定制的uboot源码。显然,uboot官方的uboot源码没有ST公司做的全面。

学习Linux第38步,就是编译“正点原子移植好的uboot”,了解uboot是怎么编译的。

正点原子移植好的 uboot,路径为: “01、程序源码\01、正点原子Linux出厂系统源码\u-boot-stm32mp-2020.01-g00f14581-v1.4.tar.bz2”。

1、创建正点原子的uboot目录“alientek_uboot”

打开终端

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd linux回车”,切换“linux”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd atk-mp1/回车”,切换“atk-mp1”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“madir uboot回车”,创建“uboot”目录

输入“ls回车”,列出“atk-mp1”目录下所有的文件和文件夹

输入“cd uboot回车”,切换“uboot”目录下

输入“ls回车”,列出“uboot”目录下所有的文件和文件夹

输入“madir alientek_uboot回车”,创建“alientek_uboot”目录

输入“ls回车”,列出“uboot”目录下所有的文件和文件夹

见下图:

Linux第38步_编译“正点原子移植好的uboot”_第1张图片

2、拷贝正点原子公司的uboot源码包

1)、双击桌面图标“FileZilla Client”,见下图:

Linux第38步_编译“正点原子移植好的uboot”_第2张图片

2)、点击“文件”,接着点击“站点管理器(S)”,见下图:

Linux第38步_编译“正点原子移植好的uboot”_第3张图片

得到下图:

Linux第38步_编译“正点原子移植好的uboot”_第4张图片

3)、点击“连接”

Linux第38步_编译“正点原子移植好的uboot”_第5张图片

4)、将“u-boot-stm32mp-2020.01-g00f14581-v1.4.tar.bz2”拖到“alientek_uboot”目录下。见下图:

Linux第38步_编译“正点原子移植好的uboot”_第6张图片

3、回到终端修改“Makefile”文件,并编译uboot

1)、输入“cd alientek_uboot回车”,切换“alientek_uboot”目录下

输入“ls回车”,列出“alientek_uboot”目录下所有的文件和文件夹

见下图:

Linux第38步_编译“正点原子移植好的uboot”_第7张图片

2)、解压

输入“tar -vxf u-boot-stm32mp-2020.01-g00f14581-v1.4.tar.bz2回车” ,解压

输入“ls -l回车”,列出“alientek_uboot”目录下所有的文件和文件夹

u-boot-stm32mp-2020.01-g00f14581-v1.4.tar.bz2是正点原子提供的uboot源码压缩包,其它文件和文件夹都是解压出来的uboot源码,见下图:

Linux第38步_编译“正点原子移植好的uboot”_第8张图片

3)、输入“vim Makefile回车”,使用vim命令打开已有的“Makefile”文件,见下图:

Linux第38步_编译“正点原子移植好的uboot”_第9张图片

4)、按“ESC键”,输入“/CROSS_COMPILE ?=”,查找“CROSS_COMPILE ?=”所在的位置,见下图:

Linux第38步_编译“正点原子移植好的uboot”_第10张图片

5)、输入“回车键”,光标跳到/CROSS_COMPILE ?=”,见下图:

Linux第38步_编译“正点原子移植好的uboot”_第11张图片

6)、输入“A”,光标跳到/CROSS_COMPILE ?=”所在行的尾部,见下图:

Linux第38步_编译“正点原子移植好的uboot”_第12张图片

7)、移动光标键,添加ARCH = arm;

添加CROSS_COMPILE = arm-none-linux-gnueabihf-”;

见下图:

Linux第38步_编译“正点原子移植好的uboot”_第13张图片

修改“Makefile”的原因:

如果不修改,我们需要输入很长的命令,才可以实现编译,如下面的命令:

make distclean

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- stm32mp157d_atk_defconfig

make V=1 ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- DEVICE_TREE=stm32mp157d-atk all

修改后,就很简化了,就可以输入下面的命令来实现编译了:

make distclean回车                            //清除

make stm32mp157d_atk_defconfig回车           //配置uboot

make V=1 DEVICE_TREE=stm32mp157d-atk all回车  //编译

8)、按“ESC键”+“:wq键”,保存退出,见下图:

Linux第38步_编译“正点原子移植好的uboot”_第14张图片

9)、编译

输入“make distclean回车”                            //清除

输入“make stm32mp157d_atk_defconfig回车”           //配置uboot

输入“make V=1 DEVICE_TREE=stm32mp157d-atk all回车”  //编译

Linux第38步_编译“正点原子移植好的uboot”_第15张图片

10)、输入“ls -l回车”,列出“alientek_uboot”目录下所有的文件和文件夹

Linux第38步_编译“正点原子移植好的uboot”_第16张图片

4、修改“tf-a.tsv”

1)、双击桌面图标“FileZilla Client”

将“u-boot.stm32”复制到“C:\Program Files\STMicroelectronics\images”目录下。

见下图:

Linux第38步_编译“正点原子移植好的uboot”_第17张图片

2)、用“Notepad++”软件打开“后缀为.tsv”的脚本文件,修改如下:

Linux第38步_编译“正点原子移植好的uboot”_第18张图片

3)、点击文件,再点击全部保存。

5、烧录

1)、关闭虚拟机,防止开发板连接到虚拟机

2)、将开发板上拨码开关拨到“000”位置

3)、将USB导线连接电脑的USB3.0接口,另外一端连接开发板的USB OTG接口;

4)、将USB导线连接电脑的USB3.0接口,另外一端连接到开发板的USB TTL接口;

5)、双击“STM32CubeProgrammer”图标

Linux第38步_编译“正点原子移植好的uboot”_第19张图片

6)、选择上图中的USB,然后点击“Connect”

7)、点击“刷新”,直到出现USB1,表示连接成功。

8)、点击“Open file”,找到“C:\Program Files\STMicroelectronics\images”目录下“tf-a.tsv”打开。

9)、点击“Browse”,打开“C:\Program Files\STMicroelectronics\images”目录。

Linux第38步_编译“正点原子移植好的uboot”_第20张图片

10)、点击下图中的“选择文件夹”

Linux第38步_编译“正点原子移植好的uboot”_第21张图片

11)、点击下图中的“Download”

Linux第38步_编译“正点原子移植好的uboot”_第22张图片

12)、烧录结束后,点击“确定”,见下图:

Linux第38步_编译“正点原子移植好的uboot”_第23张图片

13)、关闭电源,将拨码开关设置为“010”

14)、重新上电启动开发板。

你可能感兴趣的:(产品研发,linux,经验分享,STM32,uboot)