移植第二天知识点整理

news2024/11/23 10:56:11

一: uboot源码移植准备工作

1.在家目录下创建一个<demo>文件夹
2.将en.SOURCES-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17_tar_v3.1.0.xz文件夹拷贝到demo目录下
3.对en.SOURCES-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17_tar_v3.1.0.xz进行解压
    tar -vxf en.SOURCES-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17_tar_v3.1.0.xz
4.在家目录下创建一个FSMP1A文件夹
5.进入到~/demo/stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/进入拷贝uboot源码

二:分析uboot源码

以 tar -vxf u-boot-stm32mp-v2020.10-stm32mp-r2-r0.tar.gz 为例

    1.进入/home/linux/FSMP1A/u-boot-stm32mp-v2020.10-stm32mp-r2-r0目录 cd /home/linux/FSMP1A/u-boot-stm32mp-v2020.10-stm32mp-r2-r0

    2.对uboot源码进行解压 tar -vxf u-boot-stm32mp-v2020.10-stm32mp-r2-r0.tar.gz

    3.进入uboot源码目录下 cd u-boot-stm32mp-v2020.10-stm32mp-r2/

    4.分析uboot源码目录

1>平台相关代码 arch:存放平台架构相关的文件 board:存放各个板子相关文件

2>平台无关代码 Makefile:工程管理文件

                           README:帮助文档,所有源码配置核编译的信息,都可以在README文件中找到

                            lib :存放库相关文件

                            Kconfig:配置相关文件

                            dts:存放是设备树相关内容

                            drivers:驱动相关内容

    5.因为uboot源码使用的是Makefile工程管理文件进行编译,所以需要查看makefile编译相关命令----->make help

               1>  清除中间文件 ---->make distclean Cleaning targets: clean - Remove most generated files but keep the config mrproper - Remove all generated files + config + various backup files distclean - mrproper + remove editor backup and patch files

               2>  基于图形化界面信息配置 ---->make menuconfig menuconfig - Update current config utilising a menu based program

               3>  编译命令 ---->make all all - Build all necessary images depending on configuration 6.分析README文件 195 For all supported boards there are ready-to-use default 196 configurations available; just type "make <board_name>_defconfig". 197 198 Example: For a TQM823L module type: 199 200 cd u-boot 201 make TQM823L_defconfig                 

        通过以上分析可知:编译板子的命令:make <board_name>_defconfig

三:如何确定<board name> 名字

只记录常用方法

        1.在uboot源码目录下,打开Makefile文件,搜索目标:config

 564 %config: scripts_basic outputmakefile FORCE

 565 $(Q)$(MAKE) $(build)=scripts/kconfig $@

        2.在uboot源码目录下,打开Makefile文件,搜索目标:config,使用echo命令查看各个             变量打印的内容

                564 %config: scripts_basic outputmakefile FORCE

                565 @echo $(Q)

                566 @echo $(MAKE)

                567 @echo $(build)

                568 @echo $@

                569 $(Q)$(MAKE) $(build)=scripts/kconfig $@

        3.在uboot源码顶层目录下,执行 make fsmp1a_defconfig,会打印如下信息:

        @

        make

        -f ./scripts/Makefile.build obj

        fsmp1a_defconfig

四: basic版本启动流程

BL0:芯片厂家固化到芯片内部程序

BL1:FSBL(u-boot-spl.stm32)

BL2:SSBL(u-boot.img)

五: uboot源码配置和编译流程

1.进入uboot源码顶层目录下

2..配置交叉编译工具链,打开uboot源码顶层目录下Makefile,搜索CROSS_COMPILE,替换文件

3.在uboot源码顶层目录下,配置非安全模式的默认缺省配置文件

4..在uboot源码目录下,执行图形化界面信息命令:make menuconfig(只读)

5.设备树相关内容

6.复制DK1公板相关设备树内容

        1>在uboot源码顶层目录下,进入arch/arm/dts,查找DK1公板相关设备树内容

        2>进入arch/arm/dts,将DK1公板设备树相关内容,复制为FSMP1A相关平台内容

        3>进入arch/arm/dts,打开stm32mp157a-fsmp1a.dts文件

        4>进入arch/arm/dts,打开sMakefile文件,添加stm32mp157a-fsmp1a.dtb

7.进入uboot源码顶层目录下,对uboot源码进行编译

六:制作TF卡启动盘

1>对TF卡进行分区,将TF开插入到读卡器中,将读卡器插入到电脑中,并且被ubuntu识别,点击确定

2>查看TF卡分区

例:linux@ubuntu:~/FSMP1A/u-boot-stm32mp-v2020.10-stm32mp-r2-r0/u-boot-stm32mp-v2020.10-stm32mp-r2$ ls /dev/sd*

 3>删除TF卡所有分区

4>对TF卡进行分区

5>进入uboot源码顶层目录下,对uboot源码镜像文件进行烧写

例:linux@ubuntu:$ sudo dd if=u-boot-spl.stm32 of=/dev/sdb1 conv=fdatasync         linux@ubuntu:$ sudo dd if=u-boot-spl.stm32 of=/dev/sdb2 conv=fdatasync         linux@ubuntu:$ sudo dd if=u-boot.img of=/dev/sdb3 conv=fdatasync

 

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

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

相关文章

探秘微信业务优化:DDD从入门到实践

引言 | 本文作者从微信团队维护的带货类项目所遇卡点出发&#xff0c;尝试用领域驱动设计方法&#xff08;简称DDD&#xff09;&#xff0c;保障在快节奏、多人协作的项目迭代中&#xff0c;维持系统的可维护性、可拓展性、高内聚低耦合和稳定性。作者首先剖解相关概念原理&…

福建师范大学Android Room 技术浅谈

福建师范大学Android Room 技术浅谈 ## 前提告知该文章是用作课程评分,本文内容虽为原创&#xff0c;但也有参考。 1.Room的背景简介 处理大量结构化数据的应用可极大地受益于在本地保留这些数据。最常见的使用场景是缓存相关的数据&#xff0c;这样一来&#xff0c;当设备无…

JVM虚拟机内存结构详解,一文带你学习完80%的知识

程序计数器 定义 Program Counter Register 程序计数器&#xff08;寄存器&#xff09; 作用&#xff1a;是记录下一条 jvm 指令的执行地址行号特点&#xff1a; 是线程私有的&#xff0c;随着线程创建而创建&#xff0c;随着线程销毁而销毁不会存在内存溢出是一块较小的内存…

CVPR 2019|APCNet:基于全局引导的局部匹配度自适应金字塔上下文网络

&#x1f3c6;本篇论文发现了一种全局引导的局部匹配度&#xff08;Global-guided Local Affinity (GLA))特征&#xff0c;用于构造上下文语义信息。基于此特性&#xff0c;作者设计了自适应上下文模块&#xff0c;构建自适应金字塔上下文网络&#xff08;APCNet&#xff09;。…

手工测试2年面临职场危机,3个月进阶自动化测试后,老板终于留我了...

​前言 从学校到职场已经3年时间了&#xff0c;大学学的计算机专业&#xff0c;最开始事项从事java开发的&#xff0c;最终被现实打败&#xff0c;然后就从事了软件测试&#xff0c;现在已近过去了2年&#xff0c;为什么说是2年了&#xff0c;大学毕业有一段空窗期&#xff0c…

大数据面试之HDFS常见题目

大数据面试之HDFS常见题目 HDFS常见题目 1 HDFS读流程和写流程 1.1 读流程&#xff08;下载&#xff09; 文字描述&#xff1a; ​ 客户端将要读取的文件路径发送给 NameNode&#xff0c;NameNode 获取文件的元信息&#xff08;主要是 block 的存放位置信息&#xff09;返回…

美团外卖推荐智能流量分发的实践与探索

总第548篇2022年 第065篇美团外卖推荐团队在推荐算法的长期落地实践中&#xff0c;针对外卖业务情境化特点对排序模型进行深入探索与优化。本文介绍了面向情境化建模的“情境细分统一模型”建模思路&#xff0c;通过用户行为序列建模以及专家网络两个模块的优化&#xff0c;实现…

简单实用:css+html绘制常见图表

提到绘制图表&#xff0c;大家可能想到ECharts&#xff0c;其实&#xff0c;一些简单的图表可以直接通过csshtml实现&#xff0c;下面手把手带大家绘制&#xff0c;初学者也能轻松掌握。 1 csshtml绘制柱形图 我们先写一个超简单的html文件。 <div class"bargraph&q…

多维数组地址映射问题的求解(3维、4维为例)——数据结构

在上篇我大概介绍了多维数组的地址映射问题&#xff0c;但是不够完善&#xff0c;很多朋友还没有彻底学会&#xff0c;表示很头疼。这一方面的总结确实比较少&#xff0c;而且也很麻烦&#xff0c;但是不要怕&#xff0c;看完我的总结&#xff0c;相信你一定会有一直醍醐灌顶的…

《2022中国PaaS市场研究及选型评估报告》正式发布

《中智观察》第1741篇推送作者&#xff1a;海比研究院编辑&#xff1a;晓晓编审&#xff1a;赵满头图来源&#xff1a;中国软件网从2006年概念兴起至今&#xff0c;云计算已经在国内走过整整十五年的历程。云计算的三大模式SaaS、PaaS、IaaS从陌生到熟悉&#xff0c;从研发到应…

ML Journal6—OpenCV中的GUI功能

图像入门这是将在本教程中使用的图像borz.jpgimport cv2 as cv import sysimg cv.imread(borz.jpg) if img is None:sys.exit("Could not read the file.") cv.imshow("Display Window", img) k cv.waitKey(0) if k ord("s"):cv.imwrite(&quo…

《自己动手写CPU》学习记录(5)——第5章/Part 1

目录 引言 致谢 流水线的数据相关问题 问题分析 RAW类型 1、相邻指令数据相关 2、间隔1条指令数据相关 3、间隔2条指令数据相关 修改后的代码 译码模块 指令执行模块 顶层模块 测试 测试代码 生成.data初始化文件 仿真结果 引言 随章节进度继续推进&#xff0c…

【视频】马尔可夫链原理可视化解释与R语言区制转换MRS实例|数据分享

原文链接&#xff1a;http://tecdat.cn/?p12280马尔可夫链是从一个“状态”&#xff08;一种情况或一组值&#xff09;跳到另一个“状态”的数学系统。本文介绍了马尔可夫链和一种简单的状态转移模型&#xff0c;该模型构成了隐马尔可夫模型&#xff08;HMM&#xff09;的特例…

近期方案研究总结(那些你用的到的排列组合)

方案一 这个方案只一个位置一个号码&#xff0c;标的物即一个位置八十期不重即可以切入&#xff0c;以这样的思路去进行扩充。 纬度一 两期重复形态为&#xff1a;11、22、33、44、55、66、77、88、99、1010。 数上升一形态为&#xff1a;12、23、34、45、56、67、78、89、910…

微服务框架 SpringCloud微服务架构 28 数据同步 28.6 测试同步功能

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构28 数据同步28.6 测试同步功能28.6.1 直接开干28 数据同步 28.6 测试同步…

云安全系列5:2023 年需要了解的 40个云安全术语

云安全具有广泛而复杂的特点&#xff0c;它有许多特定的术语和首字母缩略词。我们在这里整理了一些云安全术语。将其用作指南&#xff0c;可帮助您了解云安全的细微差别并更便于学习相关内容。 Agent 代理是专门的软件包或应用程序&#xff0c;部署到设备或机器上以完成与安全…

IDEA:Idea 集成 EasyYApi 插件实现接口文档的生成与更新

我是 ABin-阿斌&#xff1a;写一生代码&#xff0c;创一世佳话&#xff0c;筑一览芳华。如果小伙伴们觉得不错就一键三连吧~ 声明&#xff1a;文章原文来源处&#xff1a; https://blog.csdn.net/weixin_40863968/article/details/122432678https://www.jianshu.com/p/cd91590…

10个知识点让你读懂Spring MVC容器

DispatcherServlet 的配置参数 可以通过的属性指定配置参数&#xff1a; namespace参数&#xff1a;DispatcherServlet对应的命名空间&#xff0c;默认是WEB-INF/-servlet.xml。在显式配置该参数后&#xff0c;新的配置文件对应的路径是WEB-INF/.xml&#xff0c;例如如果将name…

Android 移植iperf3.13 测试网络

iperf,测试网络性能的&#xff0c;不同于 webrtc里面的gcc 算法预估网络带宽&#xff0c;iperf是实际占用网络来传输数据测量实际的网络性能。 官网&#xff1a;https://iperf.fr/ 官方就有 android 的下载 https://iperf.fr/iperf-download.php#android&#xff0c; 但是看起…

绕线机算法模型(Simulink仿真验证+PLC代码实现)

绕线机应用的详细内容大家可以参看下面这篇博客,这里不再赘述。本文主要借助Simulink仿真分析和解决工程实际问题。希望对大家学习Simulink有所帮助。限于水平和能力所限,文中难免出现错误和不足之处,诚恳的希望大家批评和指正。 S7-200 SMART PLC和V20变频器绕线机控制应用…