为什么需要uboot?
一、先看概念
bootROM:一种固化在芯片内部的只读存储器(ROM),用于启动和初始化系统。BootROM 中通常包含了一些预先编写好的代码,用于完成系统启动前的基本初始化和配置,例如初始化时钟、GPIO控制器、中断控制器、存储设备(SD卡、NAND Flash、SPicy Flash)等硬件资源,检测启动设备,从启动设备中加载引导程序等。
bootRAM:是一种位于芯片内部的随机存储器(SRAM),通常用于存储启动时需要运行的代码和数据。与 bootROM 不同的是,bootRAM 中的内容可以被修改和更新。
二、芯片上电后的启动流程
芯片上电后,首先会进入 bootROM 阶段。bootROM 是芯片内置的固件,负责初始化各种硬件设备,例如时钟、存储设备、串口、存储设备等,并从存储设备(如 SD 卡、NAND Flash、SPI Flash 等)中加载 U-Boot 引导程序(bootloader)到DDR中。
这段 bootloader 程序先初始化 DDR 等外设(因为bootROM 的初始化操作只是为了能够让 U-Boot 能够被正确加载并执行,并不能完全代替 U-Boot 对硬件资源的初始化和配置),然后将 Linux 内核从flash(或者 NAND,NOR FLASH,SD,MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。
三、可能产生的疑问解答
既然 bootROM 都初始化好了 DDR,为什么直接把Linux kernel加载到DDR中运行呢?这样不就可以直接省略uboot了嘛?
不知道你是否会有这种疑问。
其实,直接使用bootROM将kerne加载到DDR中运行是可以的。但是:
内存配置简单粗暴。bootROM只会根据硬件默认配置来设置DDR参数,无法进行详细的内存配置,无法使用更复杂的内存模式,可能导致内存带宽或容量无法充分利用。
设备树简单。bootROM只会使用一个简单的内置设备树,无法根据实际的硬件情况提供详细的设备树,导致内核无法正确探测和初始化所有外设。
启动参数固定。bootROM无法传递启动参数给内核,内核启动后只能使用默认参数运行,无法根据不同需求设置不同的启动参数。
升级困难。如果只使用bootROM启动,每次内核升级都需要烧写到bootROM中,无法像uboot那样通过sdcard等方式方便地升级内核。
相关文章:
为什么需要uboot?
一、先看概念 bootROM:一种固化在芯片内部的只读存储器(ROM),用于启动和初始化系统。BootROM 中通常包含了一些预先编写好的代码,用于完成系统启动前的基本初始化和配置,例如初始化时钟、GPIO控制器、中断…...
Qt布局实战:实现高效、美观的GUI应用程序
Qt布局实战:实现高效、美观的GUI应用程序 引言 (Introduction)1.1 Qt布局简介 (Brief introduction to Qt layouts)1.2 Qt布局的优势 (Advantages of Qt layouts) 2.布局类型 (Layout Types)2.1 水平布局 (QHBoxLayout)2.1.1 创建水平布局2.1.2 向水平布局中添加部件…...
推荐几款项目管理工具,提高你的团队协作效率
如何管理团队才能使团队发挥最大的价值,如果团队缺少协作,就会因为团队的内耗和冲突导致项目无法完成,如何提高团队协作效率呢?我们可以借助团队协作类的项目管理工具。 几个常见的项目管理工具: 1、进度猫 进度猫是…...
SQL101 检索每个顾客的名称和所有的订单号(一)
描述 Customers表代表顾客信息含有顾客id cust_id和 顾客名称 cust_name cust_idcust_namecust10andycust1bencust2tonycust22tomcust221ancust2217hex Orders表代表订单信息含有订单号order_num和顾客id cust_id order_numcust_ida1cust10a2cust1a3cust2a4cust22a5cust221…...
mac压缩文件多了__MACOSX目录问题
文章目录 背景原因解决方案:更换压缩方式分析问题拓展(.DS_Store) 背景 项目中有一个场景,需要把目录压缩为app离线包的zip 但是压缩之后一致打不开,别人上传的zip是好的 原因 如图,我上传的在安卓设备…...
1.17 从0开始学习Unity游戏开发--场景切换
前面的所有文章我们都在一个固定的游戏场景内进行开发,在最开始介绍场景这个概念的时候就已经提及,这个场景可以是一张地图,或者是一个对战房间等等,所以显然这个场景可以有多个,并且可以从一个场景切换到另外一个场景…...
【golang学习笔记】——(五)Go格式化统一代码风格
我们在入职一家新公司的时候,除了要学习公司的流程规范和规章制度,还会做的一件事情就是进行公司编码规范的学习,基于google的C规范下,做了各自的发散和规范,久而久之就是包罗万象的样子,疲于应付各种规范约…...
CAD转SHP最好的方法 赶快收藏起来吧
1、利用 ArcToolsbox 工具先将 DWG 文件转为 MDB 通过 CASS 软件生成的 DWG 文件,字段中包含有很多属性内容,所以我们先将 DWG 格式 的文件转换为 MDB 格式,再通过 MDB 转换为 SHP 格式数据进行整理。具体步骤如下: 通过 ArcTool…...
PyQt PyQt5 Python VTK Gui Actor 选中 高亮显示 actor
前言: 本文主要介绍了如何使用Python VTK高亮显示actor,使用Python语言,高亮显示选中的actor。当窗口中的圆球actor被选中时,会变成红色,并且会显示actor三遍面片边缘信息。 效果: VTK VTK,&…...
TCP和UDP通信对比
tcp通信流程 服务器: 创建流式套接字 绑定 监听 提取 读写 关闭 客户端: 创建流式套接字 连接 读写 关闭 收发数据: read recv ssize_t recv(int sockfd, void *buf, size_t len, int flags); //flagsMSG_PEEK 读数据不会删除缓冲区的数据 write send ssize_t send(int…...
SpringCloud:ElasticSearch之自动补全
当用户在搜索框输入字符时,我们应该提示出与该字符有关的搜索项,如图: 这种根据用户输入的字母,提示完整词条的功能,就是自动补全了。 因为需要根据拼音字母来推断,因此要用到拼音分词功能。 1.拼音分词器…...
TOOM解析如何搭建一套适合自己的舆情监测系统?完整的实战指南
随着互联网的普及和社交媒体的盛行,人们在网络上的活动越来越多,同时也涌现出大量的信息和舆情。这些信息和舆情在一定程度上会影响社会和个人的发展和进步。因此,舆情监测逐渐成为一项重要的任务。在本篇文章中,我们将为大家介绍…...
技术分享 | OceanBase 手滑误删了数据文件怎么办
作者:张乾 外星人2号,现兼任六位喵星人的资深铲屎官。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 手滑误删了数据文件,并且没有可替换的节点时&…...
windows上Git Bash支持常用命令gcc tree zip wget cmake ninja
windows上Git Bash支持常用命令gcc tree zip wget cmake ninja 前言 Git Bash基于MinGW64, 提供了win32下的linux命令环境,如ls、cat、tar等。 但是Git Bash还是缺少一些命令,如gcc、make、tree、zip、wget、cmake、ninja等 1. Git Bash支持其他命令…...
面试题30天打卡-day10
1、String 和 StringBuffer、StringBuilder 的区别是什么? String、StringBuffer、StringBuilder主要的区别在于执行效率和线程安全上。 String:String字符串常量,意味着它是不可变的,导致每次对String都会生成新的String对象&a…...
【python】制作一个简单的界面,有手就行的界面~
目录 前言准备工作试手小案例开始我们今天的案例教学尾语 💝 前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! ttkbootstrap 是一个基于 tkinter 的界面美化库, 使用这个工具可以开发出类似前端 bootstrap 风格的 tkinter 桌面程序。 ttkbootstrap …...
基于RK3568的Linux驱动开发—— GPIO知识点(二)
authordaisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主系列基于RK3568的Linux驱动开发——GPIO知识点(一)_daisy.skye的博客-CSDN博客 查看goio使用情况 cat /sys/kernel/debug/gpio 1|rk3568_r:# cat /sys/kernel/debug/gpio gpiochip0: GPIOs 0-3…...
item_get-获得aliexpress商品详情API的调用参数说明
item_get-获得aliexpress商品详情 aliexpress.item_get 公共参数 名称类型必须描述keyString是调用key(免)(测)(试)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中&…...
【Python_Scrapy学习笔记(三)】Scrapy框架之全局配置文件settings.py详解
Scrapy框架之全局配置文件settings.py详解 前言 settings.py 文件是 Scrapy框架下,用来进行全局配置的设置文件,可以进行 User-Agent 、请求头、最大并发数等的设置,本文中介绍 settings.py 文件下的一些常用配置 正文 1、爬虫的项目目录…...
spark读写时序数据库 TDengine 错误总结
最近在用spark读取、写入TDengine 数据库遇到了这样一个问题: JDBCDriver找不到动态链接库(no taos in java.library.path) 我本地都好好的,但是一上服务器写入就会报这个错误,看了很久没有排查出问题,后…...
LangChain 与 LangGraph 介绍
一、AI 时代下的编程范式 1. Vibe Coding 氛围编程 1.1 Vibe Coding 的起源 在过去十年间,低代码 / 无代码平台和 AI 代码助手持续冲击着软件开发行业。如今,一种被称为 Vibe Coding 的新兴实践突然走红,甚至颠覆了人们对 "…...
即插即用系列 | TGRS 2026 | CGTA:曲率引导标记注意力!线性复杂度全局建模,几何结构保真与长程关联双突破 | 代码分享
0. 前言 本文介绍了CGTA曲率引导标记注意力模块,其通过曲率感知的标记选择策略与全局稀疏注意力机制,首次在遥感图像超分辨率领域实现对细长曲线结构与重复纹理的高保真重建,有效破解了传统注意力机制在处理曲线拓扑时容易产生锯齿边缘与结构…...
[Python3高阶编程] - 异步编程深度学习指南二(补充1): 什么是 Barrier 原语 【异步!!!】
asyncio.Barrier 是 Python 3.11(2022 年 10 月)新增的高级同步原语,用于解决特定并发协作场景。一、Barrier 产生的背景:为什么需要它?核心问题:“多协程阶段对齐”在并发编程中,经常遇到这样的…...
前端微前端架构:大项目的救命稻草还是自找麻烦?
前端微前端架构:大项目的救命稻草还是自找麻烦? 毒舌时刻 微前端?听起来就像是一群前端工程师为了显得自己很高级,特意发明的复杂术语。不就是把一个大应用拆成几个小应用嘛,至于搞得这么玄乎吗? 你以为拆成…...
阿里通义Z-Image-Turbo WebUI镜像部署:科哥二次开发版详细使用教程
阿里通义Z-Image-Turbo WebUI镜像部署:科哥二次开发版详细使用教程 1. 镜像概述与核心优势 阿里通义Z-Image-Turbo WebUI是由开发者"科哥"基于阿里通义实验室原版模型二次开发的图像生成工具。这个镜像封装了完整的WebUI界面,让用户无需复杂…...
全网资源一键下载:res-downloader终极资源嗅探工具使用指南
全网资源一键下载:res-downloader终极资源嗅探工具使用指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 还在为…...
别再只用UI库了!用Tailwind CSS V4快速给Canvas画板组件搭个现代感工具栏
用Tailwind CSS V4为Canvas画板打造专业级工具栏的5个关键技巧 在构建现代Web绘图应用时,Canvas提供了强大的绘图能力,但往往需要配套的UI控件来实现完整的用户体验。传统UI库虽然方便,却可能带来冗余的样式和性能开销。Tailwind CSS V4以其原…...
从真题到实战:拆解CCF-GESP C++三级核心考点与避坑指南
1. 数据编码:从ASCII到UTF-8的实战解析 在CCF-GESP C三级考试中,数据编码是必考的核心知识点。很多同学第一次接触这个概念时容易懵圈——不就是存个字符吗,怎么还有这么多门道?其实理解编码就像学外语,ASCII是基础英语…...
前端开发者的Rust入门实战:手把手教你用Tauri为现有Vite项目添加桌面端能力
前端开发者的Rust入门实战:手把手教你用Tauri为现有Vite项目添加桌面端能力 当你的Vite项目需要突破浏览器沙箱限制时,Tauri提供了最优雅的解决方案。作为Electron的现代替代品,它允许前端开发者用熟悉的Web技术栈开发桌面应用,同…...
当前主流的AI编程助手Trae、Cursor、通义灵码功能对比分析
Trae、Cursor和通义灵码是当前主流的AI编程助手,它们在功能定位、技术架构和使用体验上各有特色。以下是三款工具的详细对比分析: Trae详细操作手册和常见问题解决,请访问http://www.zrscsoft.com/sitepic/12166.html 一、核心功能对比 功能…...
