当前位置: 首页 > news >正文

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源码获取方法

  1. 官网下载源码,缺点就是支持少,比如某一款具体芯片驱动等不完善
  2. SOC厂商会从uboot官网下载某一个版本的uboot,然后在这个版本的uboot上加入相应的SOC以及驱动。这就是SOC厂商定制版的uboot
  3. 做开发板的厂商,开发板会参考SOC厂商的板子。开发板必然会和官方的板子不一样。因此开发板厂商又会去修改SOC厂商做好的uboot,以适应自己的板子

相关文章:

uboot学习:(一)基础认知

目录 uboot是一个裸机程序(bootloader) 作用 要运行linux系统时,如何从外置的flash拷贝到DDR中,才能启动 uboot使用步骤 步骤1中的命令例子 注意 uboot源码获取方法 uboot是一个裸机程序(bootloader&#xff09…...

每天一个数据分析题(四百二十六)- 总体方差

为了比较两个总体方差,我们通常检验两个总体的() A. 方差差 B. 方差比 C. 方差乘积 D. 方差和 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Python,SQL,统计学&a…...

【C++】设计一套基于C++与C#的视频播放软件

在开发一款集视频播放与丰富交互功能于一体的软件时,结合C的高性能与C#在界面开发上的便捷性,是一个高效且实用的选择。以下,我们将概述这样一个系统的架构设计、关键技术点以及各功能模块的详细实现思路。 一、系统架构设计 1. 架构概览 …...

数学建模中的辅助变量、中间变量、指示变量

在数学建模中,除了决策变量外,还有一些其他类型的变量,如中间变量、辅助变量和指示变量。每种变量在模型中都有特定的用途和意义。以下是对这些变量的详细解释: 1. 决策变量(Decision Variables) 定义&am…...

python的seek()和tell()

seek() seek() 是用来在文件中移动指针位置的方法。它的作用是将文件内部的当前位置设置为指定的位置。 seek(offset, whence) 参数说明 offset: 这是一个整数值,表示相对于起始位置的偏移量。如果是正数,表示向文件末尾方向移动;如果是负…...

Go泛型详解

引子 如果我们要写一个函数分别比较2个整数和浮点数的大小&#xff0c;我们就要写2个函数。如下&#xff1a; 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个函数&#xff0c;除了数据类…...

【每日一练】python之sum()求和函数实例讲解

在Python中&#xff0c; sum()是一个内置函数&#xff0c;用于计算可迭代对象&#xff08;如列表、元组等&#xff09;中所有元素的总和。如下实例&#xff1a; """ 收入支出统计小程序 知识点:用户输入获取列表元素添加sum()函数&#xff0c;统计作用 "&…...

打造智慧校园德育管理,提升学生操行基础分

智慧校园的德育管理系统内嵌的操行基础分功能&#xff0c;是对学生日常行为规范和道德素养进行量化评估的一个创新实践。该功能通过将抽象的道德品质转化为具体可量化的指标&#xff0c;如遵守纪律、尊师重道、团结协作、爱护环境及参与集体活动的积极性等&#xff0c;为每个学…...

自定义函数---随机数系列函数

大家有没有发现平常在写随机数的时候&#xff0c;需要引入很多的头文件&#xff0c;然后还需要用一些复杂的函数&#xff0c;大家可能不太习惯&#xff0c;于是我就制作了一个头文件 // random_number.h #ifndef RANDOM_NUMBER_H // 预处理指令&#xff0c;防止头文件被重复包含…...

一文了解5G新通话技术演进与业务模型

5G新通话简介 5G新通话&#xff0c;也被称为VoNR&#xff0c;是基于R16及后续协议产生的一种增强型语音通话业务。 它在IMS网络里新增数据通道&#xff08;Data Channel&#xff09;&#xff0c;承载通话时的文本、图片、涂鸦、菜单等信息。它能在传统话音业务基础上提供更多服…...

视频使用操作说明书-T80002系列视频编码器如何对接海康NVR硬盘录像机,包括T80002系列高清HDMI编码器、4K超高清HDMI编码器

视频使用操作说明书-T80002系列视频编码器如何对接海康NVR硬盘录像机&#xff0c;包括T80002系列高清HDMI编码器、4K超高清HDMI编码器。 视频使用操作说明书-T80002系列视频编码器如何对接海康NVR硬盘录像机&#xff0c;包括T80002系列高清HDMI编码器、4K超高清HDMI编码器 同三…...

el-input-number计数器change事件校验数据,改变绑定数据值后change方法失效问题的原因及解决方法

在change事件中如果对el-input-number绑定的数据进行更改&#xff0c;会出现change事件失效的问题 试过&#xff1a;this.$set()及赋值等方法&#xff0c;都无法解决 解决方法&#xff1a;用$nextTick函数对绑定值进行更改&#xff08; this.$nextTick(() > { this.绑定…...

将vue项目整合到springboot项目中并在阿里云上运行

第一步&#xff0c;使用springboot中的thymeleaf模板引擎 导入依赖 <!-- thymeleaf 模板 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency> 在r…...

AC修炼计划(AtCoder Regular Contest 179)A~C

A - Partition A题传送门 这道题不难发现&#xff0c;如果数字最终的和大于等于K&#xff0c;我们可以把这个原数列从大到小排序&#xff0c;得到最终答案。 如果和小于K&#xff0c;则从小到大排序&#xff0c;同时验证是否符合要求。 #pragma GCC optimize(3) //O2优化开启…...

开发编码规范笔记

前言 &#xff08;1&#xff09;该博客仅用于个人笔记 格式转换 &#xff08;1&#xff09;查看是 LF 行尾还是CRLF 行尾。 # 单个文件&#xff0c;\n 表示 LF 行尾。\r\n 表示 CRLF 行尾。 hexdump -c <yourfile> # 单个文件&#xff0c;$ 表示 LF 行尾。^M$ 表示 CRLF …...

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…...

Docker 部署 ShardingSphere-Proxy 数据库中间件

文章目录 Github官网文档ShardingSphere-Proxymysql-connector-java 驱动下载conf 配置global.yamldatabase-sharding.yamldatabase-readwrite-splitting.yamldockerdocker-compose.yml Apache ShardingSphere 是一款分布式的数据库生态系统&#xff0c; 可以将任意数据库转换为…...

Qt常用快捷键

Qt中的常用快捷键 F1查看帮助F2快速到变量声明 从cpp→hShift F2 函数的声明和定义之间快速切换 &#xff1b;选中函数名 &#xff0c;从h→cppF4在 cpp 和 h 文件切换 Shift F4在cpp/h文件与 界面文件中切换Ctrl /注释当前行 或者选中的区域Ctrl I自动缩进当前…...

关于RiboSeq分析流程的总结

最近关注了一下RiboSeq的分析方法&#xff0c;方法挺多的&#xff0c;但是无论哪种软件&#xff0c;都会存在或多或少的问题&#xff0c;一点问题不存在的软件不存在&#xff0c;问题的原因出在&#xff0c;1.有的脚本是用python2编写的&#xff0c;目前python2已经不能用了 2.…...

NLP任务:情感分析、看图说话

我可不向其他博主那样拖泥带水&#xff0c;我有代码就直接贴在文章里&#xff0c;或者放到gitee供你们参考下载&#xff0c;虽然写的不咋滴&#xff0c;废话少说&#xff0c;上代码。 gitee码云地址&#xff1a; 卢东艺/pytorch_cv_nlp - 码云 - 开源中国 (gitee.com)https:/…...

BetterJoy终极指南:3分钟让你的Switch手柄变身PC游戏神器

BetterJoy终极指南&#xff1a;3分钟让你的Switch手柄变身PC游戏神器 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.c…...

学了几天 Web 安全,终于搞懂什么是 XSS 了

xss的详细介绍最近开始正式学习 Web 安全。前面陆续学了&#xff1a;HTTPCookieSessionJWT RBAC然后发现很多地方都会提到一个东西&#xff1a;XSS以前一直感觉这个漏洞很抽象。网上很多文章一上来就是&#xff1a;<script>alert(1)</script>然后说&#xff1a;“弹…...

5步彻底解决Windows DLL加载冲突:UE4SS系统故障排查指南

5步彻底解决Windows DLL加载冲突&#xff1a;UE4SS系统故障排查指南 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE4SS…...

HKMG工艺的“阿喀琉斯之踵”:聊聊那个无法移除的SiON界面层与未来0.3nm的挑战

HKMG工艺的隐形枷锁&#xff1a;SiON界面层的物理宿命与亚纳米级突围战 在半导体工艺演进的史诗中&#xff0c;HKMG&#xff08;高K金属栅&#xff09;技术曾被寄予厚望——它用金属栅极替代传统多晶硅&#xff0c;搭配高K介质材料HfO₂&#xff0c;一举解决了栅极耗尽和漏电流…...

SafeExamBrowser安全绕过实战:虚拟机检测绕过与日志伪装技术架构深度解析

SafeExamBrowser安全绕过实战&#xff1a;虚拟机检测绕过与日志伪装技术架构深度解析 【免费下载链接】safe-exam-browser-bypass A VM and display detection bypass for SEB. 项目地址: https://gitcode.com/gh_mirrors/sa/safe-exam-browser-bypass SafeExamBrowser&…...

清华大学学位论文LaTeX模板:30分钟快速排版终极指南

清华大学学位论文LaTeX模板&#xff1a;30分钟快速排版终极指南 【免费下载链接】thuthesis LaTeX Thesis Template for Tsinghua University 项目地址: https://gitcode.com/gh_mirrors/th/thuthesis 还在为论文格式烦恼吗&#xff1f;清华大学官方LaTeX模板thuthesis让…...

FModel完整部署指南:UE5资源提取与逆向解析实战

1. 为什么FModel不是“另一个UE资源查看器”&#xff0c;而是虚幻项目逆向分析的起点FModel虚幻引擎资源提取工具完整部署指南——这标题里藏着三个被多数人忽略的关键信号&#xff1a;“FModel”不是泛指&#xff0c;“虚幻引擎”特指UE4/UE5原生资产体系&#xff0c;“完整部…...

yEd画流程图保姆级避坑指南:从界面解析到高效导出PNG/JPG全流程

yEd流程图高效绘制全攻略&#xff1a;从界面优化到专业导出的进阶技巧第一次打开yEd时&#xff0c;那个布满各种面板和参数的界面确实容易让人望而生畏。但别担心&#xff0c;经过几个月的深度使用&#xff0c;我发现这款工具其实隐藏着许多能极大提升效率的设计细节。本文将带…...

量子计算中的随机基准测试与Grover算法实现

1. 量子计算中的随机基准测试原理与应用随机基准测试(Randomized Benchmarking, RB)是量子计算领域评估量子门操作保真度的黄金标准方法。与传统直接测量单个量子门误差不同&#xff0c;RB通过随机量子门序列的统计特性来提取平均门保真度&#xff0c;这种方法对状态制备和测量…...

c++乱码问题

大家下载vs2026或者更新时&#xff0c;可能会出现乱码问题点击工具&#xff0c;进入选项&#xff0c;在环境列表里找到文档&#xff0c;下滑到底部&#xff0c;勾选使用特定编码保存文件然后退出就可以了。如果还是存在问题&#xff0c;将自己的代码保存&#xff0c;重新新建一…...