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

uboot启动内核学习笔记

图:笔记内容结构概览,包含多个技术主题的层次化要点整理。

一、Flash 知识点补充

1. Flash 定义

是断电不会丢失数据的存储芯片,用来存放系统、程序、配置信息。

2. Flash 分类

  • NOR Flash:可在芯片上直接执行代码,容量偏小,一般用来存放 U-Boot 启动程序
  • NAND Flash:不能直接执行程序,必须把代码读取到内存后才能运行,用来存储 Linux 内核、系统文件、用户配置、运行日志等大容量数据

二、U-Boot 启动内核整体结构

  1. 通过s=getenv()获取启动环境变量
  2. 调用run_command(s,0)执行启动相关指令

三、分区概念

  1. 嵌入式 Linux 里 Flash 没有原生分区表,bootenv、kernel、文件系统只能在源码里写死,开发时需要重点关注各分区的地址划分。
  2. 分区宏定义示例:
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:256k@0(bootloader),"\ "128k(params),"\ "2m(kernel),"\ "-(root)"
  1. 分区含义解释:这里定义了 MTD 分区,分区位于 nandflash 上:
  • 前 256KB:bootloader(U-Boot 引导程序)分区
  • 接下来 128KB:环境变量参数分区
  • 后续 2MB:kernel(内核)分区
  • 剩余全部空间:root 根文件系统分区

四、读出内核环节

示例命令:nand read.jffs2 0x3007fc0 kernel

含义:从 NAND Flash 上的 kernel 分区,把内核镜像读取到 SDRAM 内存的0x3007fc0地址;后续启动操作就会从内存这个地址读取内核数据。

五、uImage 格式说明

Flash 中保存的内核为 uImage 格式,结构分为头部 + 真正内核两部分:

  1. ih_load:加载地址,存放镜像文件的缓冲区地址,是临时存放完整内核文件、完成解压的运行地址
  2. ih_ep:入口地址,内核解压完成后,程序第一条指令的物理地址;U-Boot 执行bootm时,会自动跳转到该地址启动内核。

六、bootm 命令启动内核

1. bootm 全称

boot memory,从内存启动镜像,专门用来启动 Linux 内核镜像

2. 执行步骤

  1. 读取 uImage 的 64 字节头部信息
  2. 校验镜像文件的完整性
  3. 把压缩内核解压到头部记录的入口运行地址
  4. 关闭 U-Boot 自身的部分硬件、刷新缓存
  5. CPU 跳转到内核入口地址,正式启动 Linux 系统
http://www.jsqmd.com/news/1146486/

相关文章:

  • 踩过餐饮、工厂、医疗无数打印坑后,我做了一套能适用所有场景的打印中间件
  • Diablo Edit2深度解析:揭秘暗黑破坏神2存档编辑器的技术实现与实战应用
  • Codex、Cursor、各类 AI 编程工具通用!一站式聚合全球大模型 API 中转 CatRouter.Net
  • 收藏这份医疗大模型入门指南,一文读懂AI如何重塑医疗
  • ClaudeAPI 在供应商管理中的应用:报价分析、沟通记录和风险提示
  • LinkSwift:终极九大网盘直链下载助手,彻底告别下载限速困扰
  • Agent 跑出错误结果,你怎么排查?先解决“黑盒“问题
  • Oracle索引失效最全原因+19c生产实战修复(统计信息踩坑+资源管控)
  • 为什么你需要这个PowerShell脚本:Windows下iPhone USB网络共享的终极解决方案
  • 羽毛球馆场地好
  • Paperxie论文双控改写功能|告别查重AI双重超标,解锁学术修改新方式
  • 输电线路覆冰智能在线监测解决方案|三类监测技术选型指南
  • 字节跳动Bernini开源项目:本地部署实现高质量视频角色替换
  • 暗黑3终极按键辅助工具:D3KeyHelper完全配置指南(新手必读)
  • Play Ebean:Play Framework 的 ORM 集成模块
  • 3D机器学习数据集2024选型指南:5大任务场景与16个数据集匹配矩阵
  • 2026包装印刷选型指南:一站式设计印刷服务商优劣维度解析
  • 终极raylib游戏编程指南:从零开始构建你的第一个2D/3D应用
  • 2026 待办软件综合测评:多场景办公适配度完整对比
  • Windows如何免费解决HEIC缩略图预览问题?终极简单指南
  • KLayout完整指南:如何免费掌握专业版图设计与验证工具
  • LTSC-Add-MicrosoftStore:为Windows 11 24H2 LTSC系统恢复微软商店的技术方案
  • 2026行业观察:唐山广告一站式服务模式迭代与核心竞争力解析
  • 2026 揭秘宣城泾县非遗木梳生产商口碑秘诀,选购干货速看!
  • B站视频下载器:解决大会员4K高清和充电专属视频的本地化存储难题
  • 如何用Python实现剪映自动化:第三方JianYingApi完全指南
  • 快速解锁加密压缩包:ArchivePasswordTestTool高效密码恢复工具完全指南
  • 网传玩家战魂做工差、噪音大、售后弱?深度拆解新锐游戏本的真实产品逻辑
  • 【单片机毕业设计】基于 STM32/51 单片机的多坑位智能公厕消毒监测控制系统设计与实现,带语音提醒的单片机公厕多工位智能监测设备研发(021801)
  • 如何用LinkSwift解锁九大网盘真实下载链接:终极用户指南