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是怎么编译的。

1、查看ST公司的uboot源码包

打开终端

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

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

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

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

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

输入“cd stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/回车”,切换“stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24”目录下

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

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

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

输入“cd arm-ostl-linux-gnueabi/回车”,切换“arm-ostl-linux-gnueabi”目录下

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

见下图:

“u-boot-stm32mp-2020.01-10”就是ST公司uboot源码包,它支持了STM32MP1家族全系列芯片。

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

2、创建正点原子的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”目录下所有的文件和文件夹

见下图:

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

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

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

得到下图:

3)、点击“确定”

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

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

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

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

见下图:

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源码,见下图:

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

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

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

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

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

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

见下图:

修改“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键”,保存退出,见下图:

9)、编译

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

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

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

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

5、修改“tf-a.tsv”

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

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

见下图:

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

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

5、烧录

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

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

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

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

5)、双击“STM32CubeProgrammer”图标

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

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/652441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

v38.恒星金字塔

1.循环嵌套 1.1矩阵(i,j) i行 j列 将矩阵与循环嵌套结合起来: 2.2.于是,金字塔就是

基于QC-LDPC编码的循环移位网络的FPGA实现

一、桶式移位寄存器(barrel shifter) 八位桶式移位寄存器的VHDL实现如下,由于每一层结构相似,于是采用生成语句for_generate实现,使用该代码实现的RTL级分析和理论的结构一致,仿真结果也符合预期。 entity barrel_shift isGENE…

从关键新闻和最新技术看AI行业发展(2024.1.15-1.28第十五期) |【WeThinkIn老实人报】

Rocky Ding 公众号:WeThinkIn 写在前面 【WeThinkIn老实人报】旨在整理&挖掘AI行业的关键新闻和最新技术,同时Rocky会对这些关键信息进行解读,力求让读者们能从容跟随AI科技潮流。也欢迎大家提出宝贵的优化建议,一起交流学习&…

GEE数据集——MOD13A1.006Terra星搭载的中分辨率成像光谱仪获取的L3级植被指数产品

数据名称: MOD13A1.006 Modis 16天 Terra 500m 数据来源: NASA 时空范围: 2000-2022年 空间范围: 全国 波段 名称波段单位最小值最大值比例因子波长描述NDVIB1NDVI-2000100000.0001Normalized Difference Vegetation…

for循环里i++和++i的区别

主要有以下三个区别: 1、i是先改变i的值即加1后再使用i的值;而i是先使用i的值在改变它的值即加。 2、for循环内部仅形式不同:当i循环和i循环在for循环内部,虽然形式上明显不同,但输出结果可以一样。 public static …

“群载波”全频强插无线应急广播在高速公路交通管控中的应用

一、“群载波”全频强插应急广播系统基本概念 群载波应急广播系统的技术是北京恒星科通科技发展有限公司技术总监刘军先生多年从事无线通信与应急通信产品的研发,突破传统无线电理论,开创性地提出了“群载波”通信理论,并亲自投入很大精力潜心…

docker 安装python3.8环境镜像并导入局域网

一、安装docker yum -y install docker docker version #显示 Docker 版本信息 可以看到已经下载下来了 拉取镜像python3镜像 二、安装docker 中python3环境 运行本地镜像,并进入镜像环境 docker run -itd python-38 /bin/bash docker run -itd pyth…

Steam游戏免费玩 gamebox 一起来玩幻兽帕鲁吧

steam大作免费畅玩 幻兽帕鲁也有资源 UI设计精美 还有补票链接,点击一下,就能跳转至Steam商店 可以自定义安装位置 下载链接 gamebox:https://rssm666.lanzn.com/b039g6dqj

如何用一根网线和51单片机做简单门禁[带破解器]

仓库:https://github.com/MartinxMax/Simple_Door 支持原创是您给我的最大动力… 原理 -基础设备代码程序- -Arduino爆破器程序 or 51爆破器程序- 任意选一个都可以用… —Arduino带TFT屏幕——— —51带LCD1602——— 基础设备的最大密码长度是0x7F,因为有一位…

游戏设计模式

单列模式 概念 单例模式是一种创建型设计模式,可以保证一个类只有一个实例,并提供一个访问该实例的全局节点。 优点 可以派生:在单例类的实例构造函数中可以设置以允许子类派生。受控访问:因为单例类封装他的唯一实例&#xf…

小土堆pytorch学习笔记004

目录 1、神经网络的基本骨架-nn.Module的使用 2、卷积操作实例 3、神经网络-卷积层 4、神经网络-最大池化的使用 (1)最大池化画图理解: (2)代码实现: 5、神经网络-非线性激活 (1&#xf…

预训练语言模型transformer

预训练语言模型的学习方法有三类:自编码(auto-encode, AE)、自回归(auto regressive, AR),Encoder-Decoder结构。 决定PTM模型表现的真正原因主要有以下几点: 更高质量、更多数量的预训练数据增加模型容量…

NAS系统折腾记 – 申请域名和数字签名

群晖NAS硬件和DSM安装完毕,现在已经可以在家里局域网的环境下正常服务了。下一个问题自然是考虑出门在外的时候,怎样能通过外网远程访问NAS的服务了。为此,我需要给我的NAS服务器申请一个便于记忆的域名,然后配合DDNS服务实现域名…

uniapp微信小程序-input默认字的样式

需要的是这样的 问题 正常是在input框上面写样式就行&#xff0c;但是uniapp不起作用 解决 直接在input上写placeholder-style"color就解决了 <input class"findInput" type"text" placeholder"关键词查询"placeholder-style"co…

【PyTorch】n卡驱动、CUDA Toolkit、cuDNN全解安装教程

文章目录 GPU、NVIDIA Graphics Drivers、CUDA、CUDA Toolkit和cuDNN的关系使用情形判断仅仅使用PyTorch使用torch的第三方子模块 安装NVIDIA Graphics Drivers&#xff08;可跳过&#xff09;前言Linux法一&#xff1a;图形化界面安装&#xff08;推荐&#xff09;法二&#x…

逻辑推理,形式逻辑:且关系,或关系,前加非后不变,箭头和或的转化

国考省考行测&#xff1a;逻辑推理&#xff0c;形式逻辑&#xff1a;且关系考点 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能&#xff0c;附带行测和申论&#xff0c;而常规国考省考最重要的还是申论和行测&#xff0c;所以大家认真准备吧&#xf…

2024年Java毕业设计选题大全,500道SpringBoot热门选题大全(持续更新)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

【论文笔记】UniVision: A Unified Framework for Vision-Centric 3D Perception

原文链接&#xff1a;https://arxiv.org/pdf/2401.06994.pdf 1. 引言 目前&#xff0c;同时处理基于图像的3D检测任务和占用预测任务还未得到充分探索。3D占用预测需要细粒度信息&#xff0c;多使用体素表达&#xff1b;而3D检测多使用BEV表达&#xff0c;因其更加高效。 本…

探索机器学习的奥秘

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. 机器学习的定义二. 机器学习的发展历程三. 机器学习的原理四. 机器学习的分类…

C#使用Sleep(Int32)方法动态时间

目录 一、涉及到的知识点 1.Sleep(Int32)方法 2.Parallel.Invoke方法 二、 实例&#xff1a;用Sleep方法动态时间 一、涉及到的知识点 在使用线程时&#xff0c;经常会用到Sleep方法&#xff0c;Sleep方法用于将线程挂起指定的时间&#xff0c;时间的单位为毫秒。本实例中将…