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

【OpenHarmony4.1 之 U-Boot 2024.07源码深度解析】019 - RK3568 Uboot 完整流程梳理

【OpenHarmony4.1 之 U-Boot 2024.07源码深度解析】019 - RK3568 Uboot 完整流程梳理

  • 一、系统环境初始化: _start 入口地址,初始化CPU 环境
  • 二、系统环境初始化: _main 入口,初始化堆栈,初始化gd全局环境变量,初始化 C Runtime 运行环境,开始执行 board_init_f 函数
  • 三、board_init_f():Uboot 重定向前的工作,初始化 串口,初始化DRAM,初始化malloc
  • 四、Relocate:循环拷贝 uboot 镜像到 gd->relocaddr 地址处
  • 五、Relocate 拷贝后,调用 board_init_r() 进行后续的工作
  • 六、board_init_r():初始化dm,初始化pci、以太网、mmc,解析环境变量,获得 HLOS 信息
  • 七、run_main_loop中根据 bootcmd 环境变量启动 HLOS 系统


系列文章汇总:《【鸿蒙OH-v5.0源码分析之 Uboot+Kernel 部分】000 - 文章链接汇总》
本文链接:《【OpenHarmony4.1 之 U-Boot 2024.07源码深度解析】019 - RK3568 Uboot 完整流程梳理》


在分析完uboot 源码后,给我的感觉是,大而杂

uboot 开发者为了兼容所有的CPU,做了很多相应的兼容,
对于某些CPU 来说,很多函数都是不会跑的,大大的增大了开发者的开发的难度,尤其是对于新来玩家来说,会看得一脸蒙蔽,
感觉Uboot 会很复杂。

但实际,uboot 说白了,它的核心功能就是 引导加载 HLOS 系统启动.

如果按模块区分的话,大致分成如下几个模块:

  1. 系统环境初始化:初始化CPU、初始化堆栈,创建C语言运行环境
  2. 初始化 DRAM、串口,将 Uboot 完整镜像拷贝到 DRAM 上,这就是Uboot 上的 relocated 重定位
  3. 初始化 Flash、MMC、网络 等功能,用于获取 Kernel 镜像
  4. 对Kernel 镜像进行校验,确认镜像安全,然后加载 Kernel 镜像

有人就奇怪,

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • plantUML介绍和使用
  • python:画由两条抛物线所围成的图形
  • Vue 3 深入指南:`watch` 属性监控与响应式处理
  • 深入理解java web分层架构的高内聚低耦合
  • 力扣热题100_二分查找_74_搜索二维矩阵
  • WPF学习(8) --Windows API函数的使用
  • SSM环保知识普及平台—计算机毕业设计源码20330
  • JavaScript AI 编程助手
  • 回顾 | 瑞云科技亮相ICIC2024,虚拟仿真实训云平台引关注
  • 下载文件--后端返回文件数据,前端怎么下载呢
  • 论文阅读笔记:The Graph Neural Network Model
  • 微信小程序电话号码授权
  • 机器学习第十一章-特征选择与稀疏学习
  • Vue3.0生命周期钩子(包含:Vue 2.0 和 Vue 3.0)
  • JavaEE 的相关知识点(一)
  • canvas 五子棋游戏
  • eclipse(luna)创建web工程
  • Java编程基础24——递归练习
  • java第三方包学习之lombok
  • JDK 6和JDK 7中的substring()方法
  • React Native移动开发实战-3-实现页面间的数据传递
  • SQLServer之索引简介
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • windows下mongoDB的环境配置
  • 从重复到重用
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 排序(1):冒泡排序
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 学习笔记TF060:图像语音结合,看图说话
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 译有关态射的一切
  • 用jquery写贪吃蛇
  • - 转 Ext2.0 form使用实例
  • 走向全栈之MongoDB的使用
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • $.ajax()参数及用法
  • (3)nginx 配置(nginx.conf)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Forward) Music Player: From UI Proposal to Code
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (力扣)循环队列的实现与详解(C语言)
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (三)mysql_MYSQL(三)
  • (转)Mysql的优化设置
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .a文件和.so文件
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Reactor简单使用教程
  • .Net 垃圾回收机制原理(二)
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .Net小白的大学四年,内含面经