uboot学习:(一)基础认知
目录
uboot是一个裸机程序(bootloader)
作用
要运行linux系统时,如何从外置的flash拷贝到DDR中,才能启动
uboot使用步骤
步骤1中的命令例子
注意
uboot源码获取方法
uboot是一个裸机程序(bootloader)
作用
- 用于启动Linux或其他系统
- 主要工作是初始化DDR(因为Linux是运行在DDR里面的)
- 一般 Linux 镜像 ( zImage / uImage ) + 设备树 ( .dtb ) 存放在SD、EMMC、NAND、SPI FLASH 等等外置存储区域
要运行linux系统时,如何从外置的flash拷贝到DDR中,才能启动
- Uboot提供了flash的读写服务
- Uboot的主要目的就是为系统的启动做准备
- Uboot的宿命就是启动linux后,再把cpu还给linux
- Uboot不仅仅能启动Linux,也可以启动其他系统,比如vxworks
- Linux不仅仅能通过uboot启动
- Uboot是个通用的bootloader,他支持多种架构
uboot使用步骤
先配置,一个板子一个配置文件,然后执行配置文件,就会把uboot配置好,然后再次编译,就可以得到配对这个板子的uboot执行文件(.bin),用bin文件来启动板子,这就是裸机开发,通常是操控寄存器来编程,汇编
1.下载uboot源码,在源码根目录下先配置(可以写一个shell脚本来执行清理和编译)
1.1清理工程
1.2先使用默认配置文件来配置uboot,就会生成一个.config文件,(根据默认配置文件将配置写入.config文件里,编译的时候需要用到.config配置项)
1.3使用多少核编译命令
2.编译完成以后就会生成一个u-boot.bin。必须向u-boot.bin添加头部信息。Uboot编译最后会通过/tools/mkimage软件添加头部信息,生成u-boot.imx (最后烧到板子上的是imx,可以使用mfg烧录,要将新的imx替换到掉原来的imx,在使用mfg烧录时,会把整个系统也重新烧录进去)
步骤1中的命令例子
- 1.1的命令make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
- 1.2的命令make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
- 1.3的命令make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
- ARCH是指定架构
- CROSS_COMPILE是指定编译器,只需要前缀
- mx6ull_14x14_ddr512_emmc_defconfig是默认配置文件
- V=1用于设置编译过程输出信息
- -j12使用12核来编译uboot,最好设置成我们虚拟机所设置的核心数
注意
- 如果配置过uboot,那么一定要注意shell脚本会清除整个工程,那么配置的文件也会被删除,配置项也会被删除掉
- 为了方便开发,建议直接在uboot顶层Makefile里面设置好ARCH和CORSS_COMPILE这两个变量的值,就可以直接用make -j几核来进行编译
uboot源码获取方法
- 官网下载源码,缺点就是支持少,比如某一款具体芯片驱动等不完善
- SOC厂商会从uboot官网下载某一个版本的uboot,然后在这个版本的uboot上加入相应的SOC以及驱动。这就是SOC厂商定制版的uboot
- 做开发板的厂商,开发板会参考SOC厂商的板子。开发板必然会和官方的板子不一样。因此开发板厂商又会去修改SOC厂商做好的uboot,以适应自己的板子
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
uboot学习:(一)基础认知
目录 uboot是一个裸机程序(bootloader) 作用 要运行linux系统时,如何从外置的flash拷贝到DDR中,才能启动 uboot使用步骤 步骤1中的命令例子 注意 uboot源码获取方法 uboot是一个裸机程序(bootloader)…...
![](https://www.ngui.cc/images/no-images.jpg)
每天一个数据分析题(四百二十六)- 总体方差
为了比较两个总体方差,我们通常检验两个总体的() A. 方差差 B. 方差比 C. 方差乘积 D. 方差和 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Python,SQL,统计学&a…...
![](https://i-blog.csdnimg.cn/direct/0b4ee8b4271747679a4cf4268bd422eb.png#pic_center)
【C++】设计一套基于C++与C#的视频播放软件
在开发一款集视频播放与丰富交互功能于一体的软件时,结合C的高性能与C#在界面开发上的便捷性,是一个高效且实用的选择。以下,我们将概述这样一个系统的架构设计、关键技术点以及各功能模块的详细实现思路。 一、系统架构设计 1. 架构概览 …...
![](https://www.ngui.cc/images/no-images.jpg)
数学建模中的辅助变量、中间变量、指示变量
在数学建模中,除了决策变量外,还有一些其他类型的变量,如中间变量、辅助变量和指示变量。每种变量在模型中都有特定的用途和意义。以下是对这些变量的详细解释: 1. 决策变量(Decision Variables) 定义&am…...
![](https://www.ngui.cc/images/no-images.jpg)
python的seek()和tell()
seek() seek() 是用来在文件中移动指针位置的方法。它的作用是将文件内部的当前位置设置为指定的位置。 seek(offset, whence) 参数说明 offset: 这是一个整数值,表示相对于起始位置的偏移量。如果是正数,表示向文件末尾方向移动;如果是负…...
![](https://i-blog.csdnimg.cn/direct/c0fe79faa4b44adc9068cd1e30f204fa.png)
Go泛型详解
引子 如果我们要写一个函数分别比较2个整数和浮点数的大小,我们就要写2个函数。如下: func Min(x, y float64) float64 {if x < y {return x}return y }func MinInt(x, y int) int {if x < y {return x}return y }2个函数,除了数据类…...
![](https://i-blog.csdnimg.cn/direct/01d0c42965a8459d8613664f1da4da3f.png)
【每日一练】python之sum()求和函数实例讲解
在Python中, sum()是一个内置函数,用于计算可迭代对象(如列表、元组等)中所有元素的总和。如下实例: """ 收入支出统计小程序 知识点:用户输入获取列表元素添加sum()函数,统计作用 "&…...
![](https://i-blog.csdnimg.cn/direct/b90d7b9e5972442fbad7e235b0ea988b.png)
打造智慧校园德育管理,提升学生操行基础分
智慧校园的德育管理系统内嵌的操行基础分功能,是对学生日常行为规范和道德素养进行量化评估的一个创新实践。该功能通过将抽象的道德品质转化为具体可量化的指标,如遵守纪律、尊师重道、团结协作、爱护环境及参与集体活动的积极性等,为每个学…...
![](https://i-blog.csdnimg.cn/direct/4ce1ad0e50d148269a561892232a728c.png)
自定义函数---随机数系列函数
大家有没有发现平常在写随机数的时候,需要引入很多的头文件,然后还需要用一些复杂的函数,大家可能不太习惯,于是我就制作了一个头文件 // random_number.h #ifndef RANDOM_NUMBER_H // 预处理指令,防止头文件被重复包含…...
![](https://img-blog.csdnimg.cn/img_convert/9c02eecbf4079f67318b00e81f0b6c85.png)
一文了解5G新通话技术演进与业务模型
5G新通话简介 5G新通话,也被称为VoNR,是基于R16及后续协议产生的一种增强型语音通话业务。 它在IMS网络里新增数据通道(Data Channel),承载通话时的文本、图片、涂鸦、菜单等信息。它能在传统话音业务基础上提供更多服…...
![](https://www.ngui.cc/images/no-images.jpg)
视频使用操作说明书-T80002系列视频编码器如何对接海康NVR硬盘录像机,包括T80002系列高清HDMI编码器、4K超高清HDMI编码器
视频使用操作说明书-T80002系列视频编码器如何对接海康NVR硬盘录像机,包括T80002系列高清HDMI编码器、4K超高清HDMI编码器。 视频使用操作说明书-T80002系列视频编码器如何对接海康NVR硬盘录像机,包括T80002系列高清HDMI编码器、4K超高清HDMI编码器 同三…...
![](https://www.ngui.cc/images/no-images.jpg)
el-input-number计数器change事件校验数据,改变绑定数据值后change方法失效问题的原因及解决方法
在change事件中如果对el-input-number绑定的数据进行更改,会出现change事件失效的问题 试过:this.$set()及赋值等方法,都无法解决 解决方法:用$nextTick函数对绑定值进行更改( this.$nextTick(() > { this.绑定…...
![](https://i-blog.csdnimg.cn/direct/2f410e39246a4bbf97ef390b5cc0a695.png)
将vue项目整合到springboot项目中并在阿里云上运行
第一步,使用springboot中的thymeleaf模板引擎 导入依赖 <!-- thymeleaf 模板 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency> 在r…...
![](https://www.ngui.cc/images/no-images.jpg)
AC修炼计划(AtCoder Regular Contest 179)A~C
A - Partition A题传送门 这道题不难发现,如果数字最终的和大于等于K,我们可以把这个原数列从大到小排序,得到最终答案。 如果和小于K,则从小到大排序,同时验证是否符合要求。 #pragma GCC optimize(3) //O2优化开启…...
![](https://i-blog.csdnimg.cn/direct/5ace765f04354246aaab9f135b2a06c9.png)
开发编码规范笔记
前言 (1)该博客仅用于个人笔记 格式转换 (1)查看是 LF 行尾还是CRLF 行尾。 # 单个文件,\n 表示 LF 行尾。\r\n 表示 CRLF 行尾。 hexdump -c <yourfile> # 单个文件,$ 表示 LF 行尾。^M$ 表示 CRLF …...
![](https://www.ngui.cc/images/no-images.jpg)
spring boot easyexcel
1.pom <!-- easyexcel 依赖 --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version></dependency><dependency><groupId>org.projectlombok</group…...
![](https://i-blog.csdnimg.cn/direct/81c733b4c8d9477dbd8307c424c842d6.png)
Docker 部署 ShardingSphere-Proxy 数据库中间件
文章目录 Github官网文档ShardingSphere-Proxymysql-connector-java 驱动下载conf 配置global.yamldatabase-sharding.yamldatabase-readwrite-splitting.yamldockerdocker-compose.yml Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为…...
![](https://i-blog.csdnimg.cn/direct/11962bb04e474ae7b135e2d8c54422b3.png)
Qt常用快捷键
Qt中的常用快捷键 F1查看帮助F2快速到变量声明 从cpp→hShift F2 函数的声明和定义之间快速切换 ;选中函数名 ,从h→cppF4在 cpp 和 h 文件切换 Shift F4在cpp/h文件与 界面文件中切换Ctrl /注释当前行 或者选中的区域Ctrl I自动缩进当前…...
![](https://www.ngui.cc/images/no-images.jpg)
关于RiboSeq分析流程的总结
最近关注了一下RiboSeq的分析方法,方法挺多的,但是无论哪种软件,都会存在或多或少的问题,一点问题不存在的软件不存在,问题的原因出在,1.有的脚本是用python2编写的,目前python2已经不能用了 2.…...
![](https://i-blog.csdnimg.cn/direct/4f5bf040138f480c8c7e1d07d62da0c1.png)
NLP任务:情感分析、看图说话
我可不向其他博主那样拖泥带水,我有代码就直接贴在文章里,或者放到gitee供你们参考下载,虽然写的不咋滴,废话少说,上代码。 gitee码云地址: 卢东艺/pytorch_cv_nlp - 码云 - 开源中国 (gitee.com)https:/…...
![](https://i-blog.csdnimg.cn/direct/723a2a6e55a849deb47392889ed35a5b.png)
Linux桌面溯源
X窗口系统(X Window System) Linux起源于X窗口系统(X Window System),亦即常说的X11,因其版本止于11之故。 X窗口系统(X Window System,也常称为X11或X)是一种以位图方式显示的软件窗口系统。…...
![](https://i-blog.csdnimg.cn/direct/ceefa3555fda49e9b95d4bbe758fcb66.png)
深入Linux:权限管理与常用命令详解
文章目录 ❤️Linux常用指令🩷zip/unzip指令🩷tar指令🩷bc指令🩷uname指令🩷shutdown指令 ❤️shell命令以及原理❤️什么是 Shell 命令❤️Linux权限管理的概念❤️Linux权限管理🩷文件访问者的分类&#…...
![](https://www.ngui.cc/images/no-images.jpg)
Mojo 编程语言:AI开发者的新宠儿
Mojo(Meta Object Oriented programming for Java Objects)是一种面向对象的编程语言,旨在简化和加速Java应用程序的开发过程。作为近年来新兴的编程语言,Mojo因其与Java的紧密集成以及AI开发领域的应用潜力而逐渐成为AI开发者的新…...
![](https://www.ngui.cc/images/no-images.jpg)
ARM/Linux嵌入式面经(十):极氪
开篇强调两个事情: pdf文件都在百度网盘群:911289806一定要把超链接里面的文章看了,那都是为了你们写的。老板!!!现在多学点,涨个2k工资,真的很值得。要不吃学习的苦,要不吃生活的苦。 1. 自我介绍 专开新篇,等我! 2. 项目介绍,提问 专开新篇,等我! 3. SPI通信和…...
![](https://img-blog.csdnimg.cn/img_convert/20a71d897073249ee6c06412eeb78101.png)
【PVE】新增2.5G网卡作为主网卡暨iperf测速流程
【PVE】新增2.5G网卡作为主网卡暨iperf测速流程 新增网卡 新增网卡的首先当然需要关闭PVE母机,把新网卡插上,我用淘宝遥现金搞了个红包,花了26元买了块SSU的2.5G网卡。说实话这个价位连散热片都没有,确实挺丐的。稍后测下速度看…...
![](https://i-blog.csdnimg.cn/direct/c02f28efc7ac4858bb2d3411378975d0.png)
数学建模美赛入门
数学建模需要的学科知识 高等数学线性代数 有很多算法的掌握是需要高等数学和线代的相关知识 如:灰色预测模型需要微积分知识;神经网络需要用到导数知识;图论和层次分析法等都需要用到矩阵计算的相关知识等; 概率论与数理统计&am…...
![](https://www.ngui.cc/images/no-images.jpg)
两段序列帧动画播放,在ios机型上出现闪屏
使用场景:两段序列帧动画连接播放,先播放第一段播一次,再播放第二段,第二段循环播放,在ios机型上出现动画闪动,播放不正常。 错误的写法:把每一段序列帧动画单独写在了定义的动画里 .gacha-bg…...
![](https://i-blog.csdnimg.cn/direct/d577686cfe594e6b969543029c402cee.png)
【C++深度探索】全面解析多态性机制(二)
🔥 个人主页:大耳朵土土垚 🔥 所属专栏:C从入门至进阶 这里将会不定期更新有关C/C的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 前言 我…...
![](https://www.ngui.cc/images/no-images.jpg)
MySQL配置数据库的连接命令
MySQL配置数据库连接命令 在MySQL中,配置数据库连接的命令涉及创建用户、授予权限、配置主从复制等多个方面。以下是常用的命令及其用途: 创建用户 创建一个新的数据库用户并为其设置密码: CREATE USER usernamehost IDENTIFIED BY passwo…...
![](https://www.ngui.cc/images/no-images.jpg)
[PaddlePaddle飞桨] PaddleSpeech-自动语音识别-小模型部署
PaddleSpeech的GitHub项目地址 环境要求: gcc > 4.8.5 paddlepaddle < 2.5.1 python > 3.8 OS support: Linux(recommend), Windows, Mac OSXpip下载指令: python -m pip install paddlepaddle-gpu2.5.1 -i https://pypi.tuna.tsinghua.edu.c…...
![](/images/no-images.jpg)
山西今日头条新闻消息/网站关键词优化排名怎么做
作为原始的调试方式,开发者可以使用帮助函数中的DBGPRINTF()在应用中的任何位置将调试信息打印到模拟器的输出窗口中。模拟器的输出窗口还会显示大量的AEE层运行时产生的信息,这些信息的含义如表16-1所示。 标识 含义 #*gBI BREW 进行初始化 #*gEX 退出B…...
![](/images/no-images.jpg)
母婴网站源码dede/爱站seo综合查询
两种方式: 1、super(子类,self)__init__() 2、子类.__init__(self) 推荐使用super 转载于:https://www.cnblogs.com/jarrel/p/init.html...
![](https://img-blog.csdnimg.cn/2020051302462740.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1eXVjaGVuZ3Vz,size_16,color_FFFFFF,t_70)
wordpress 图片迁移/东莞seo建站哪家好
对一些基数比较大的数据来说,D3 的 Y 轴数据显示不完整。 如下图: 上面的情况可能是你的 Y 轴 margin 中的left 没有留够。 在上面的例子中,你可以在线修改下面的链接:https://observablehq.com/yuchenghu/us-covid-19-daily-te…...
![](https://img-blog.csdnimg.cn/20190917160301473.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIxOTg1NzU=,size_16,color_FFFFFF,t_70)
国外网页设计评论网站/seo技术 快速网站排名
以GoogLeNet模型为例子说明配置train_val.prototxt训练文件: 模块化结构图:从下往上看 需要用到的caffe.proto文件地址在:caffe-windows\src\caffe\proto可查看。 GoogLeNet网络结构明细表解析如下:0、输入 原始输入图像为224x22…...
广东品牌网站建设968/seo关键词推广怎么做
2019独角兽企业重金招聘Python工程师标准>>> Redis单点时,当一台机器挂机了,redis的服务完全停止,这时就会影响其他服务的正常运行。下面利用redis sentinel做一个主从切换的集群管理。 下面两段官方的说辞: Redis Sen…...
![](/images/no-images.jpg)
浏览国外网站dns/广州网站排名优化报价
摘要: 前面分享了一些less的是用方法,包括在grunt中,今天在分享下使用gulp来编译less文件。首先需要安装gulp,如何安装请看文章。 安装插件: gulp编译less使用了gulp-less模块,所以package.json如下&#x…...