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

RK3399 启动流程 --从复位到系统加载

一、启动入口:ROM Code的执行

RK3399的启动流程始于Cortex-A53核心从固定地址​​0xFFFF0000​​获取第一条指令。这个地址是Rockchip芯片设计的硬件复位向量,由内置的​​ROM Code​​(固化在芯片内部的引导代码)开始执行。ROM Code作为启动流程的"第一推动力",负责初始化基础硬件并寻找可启动的存储设备。

二、存储设备探测:四级递进式检查

ROM Code会按照特定顺序探测外部存储设备,采用经典的"设备树"式检测逻辑:

  1. ​SPI Nor Flash优先检测​​:首先检查高速串行闪存,适合存储小型引导程序。
  2. ​SPI NAND Flash次之​​:针对采用NAND架构的串行闪存设备。
  3. ​eMMC设备检测​​:嵌入式存储介质,常见于工业级应用。
  4. ​SD/MMC卡最后检测​​:作为可移动存储的备选方案。

每个检测环节都会验证设备的​​ID BLOCK​​(标识块),这是Rockchip定义的特定数据结构,包含设备签名和基础参数。只有当ID BLOCK验证通过时,才会进入对应设备的启动流程。

三、备用方案:USB启动模式

当所有存储介质均未通过验证时,系统会初始化​​USB OTG端口​​,进入下载模式(Download Mode)。这种设计为系统恢复提供了最后手段:

  • 开发者可通过USB烧录工具重新写入引导程序
  • 支持Rockchip特有的MaskROM模式修复砖机
四、内存初始化:精密的三阶段加载

成功识别启动设备后,系统执行精密的初始化序列:

  1. ​SRAM阶段​​:将SDRAM初始化代码(通常<32KB)加载到芯片内部SRAM运行,避开未初始化的DDR内存。
  2. ​DDR初始化​​:运行SRAM中的代码配置内存控制器,使外部DDR内存可用。
  3. ​代码转移​​:将更大的引导代码从存储设备搬运到已初始化的DDR内存。
五、多级引导架构

RK3399采用典型的嵌入式系统引导链:

  1. ​DDR Image​​:包含基础硬件驱动和文件系统支持
  2. ​Loader Image​​:实现更复杂的设备初始化和安全验证
  3. ​最终引导​​:加载操作系统内核(如Linux)或进入Fastboot等特殊模式
六、设计特点分析
  1. ​容错机制​​:多级存储检测确保单一存储故障不影响系统恢复能力
  2. ​安全考虑​​:每阶段代码都需验证完整性签名
  3. ​性能优化​​:通过SRAM先行初始化DDR的设计避免内存冲突
  4. ​扩展性​​:USB下载模式支持后期固件更新

该流程图清晰展现了现代ARM SoC从硬件复位到软件加载的完整过程,其模块化设计思想值得嵌入式开发者借鉴。理解这个流程对于进行RK3399平台的低层开发、系统移植和故障诊断都具有重要意义。

http://www.lryc.cn/news/607883.html

相关文章:

  • 变频器实习DAY20 测试经验总结
  • .NET 中,Process.Responding 属性用于检查进程的用户界面是否正在响应
  • 【嵌入式汇编基础】-ARM架构基础(三)
  • u-boot启动过程(NXP6ULL)
  • 网络常识-子网掩码
  • 音视频学习(四十四):音频处理流程
  • Oracle 11g RAC集群部署手册(三)
  • PHP面向对象编程与数据库操作完全指南-上
  • Redis 核心概念、命令详解与应用实践:从基础到分布式集成
  • C语言字符函数和字符串函数全解析:从使用到模拟实现
  • 力扣面试150题--回文数
  • 2411. 按位或最大的最小子数组长度
  • 历史数据分析——中青旅
  • OneCode 3.0智能分页拦截器深度解析:从拦截机制到性能优化
  • 仿muduo库实现高并发服务器
  • flink写paimon表的过程解析
  • 华为核心交换机S7700的内存OID
  • Unity_数据持久化_XML基础
  • MATLAB科研数据可视化技术
  • LPVIMO-SAM:基于多传感器紧耦合的高精度鲁棒SLAM系统
  • Noob靶机
  • VueX进阶Pinia
  • VScode对Ubuntu用root账号进行SSH远程连接开发
  • 技巧|SwanLab记录混淆矩阵攻略
  • 解决忘记修改配置密码而无法连接nacos的问题
  • DockerFile文件执行docker bulid自动构建镜像
  • Android 15 限制APK包手动安装但不限制自升级的实现方案
  • 20250802让飞凌OK3576-C开发板在飞凌的Android14下【rk3576_u选项】适配NXP的WIFIBT模块88W8987A的蓝牙
  • 【Android】通知
  • React ahooks——副作用类hooks之useDebounceFn