Boatloader的工作流程
流程 工作
2023-09-14 09:08:55 时间
(1)第一节阶段的功能
1、硬件设备的初始化
2、载入u-boot第二阶段的代码到我们的RAM空间
3、设置好栈
4、跳转到第二阶段的代码入口
(2)第二阶段的功能
1、初始化本阶段所使用的硬件设备
2、检測系统内存映射
3、将内核Flash读取到RAM中
4、为内核设置启动參数
5、调用我们多的内核
为什么我们的bootloader有一段汇编代码?为什么不用C语言的代码呢?
编译地址和执行地址
(1)编译地址
32位处理器。他的每一条指令是4个字节。他是顺序存储的。
我们的编译器,回到我们的每一条指令分配一个编译地址,他由编译器自己指定的。
(2)执行地址
事实上就是我们程序真正执行的地址,实用户指定
C语言编译地址:我们都希望把我们的编译地址和执行地址放在一起。可是因为我们的汇编代码不须要做我们C语言到汇编的转变。我们能够觉得是直接写地址。我们直接写的就是执行地址。这就是为什么我们Bootloader在执行之前会有汇编代码。
u-boot的运行代码:
1、IROM的代码自己主动将我们的nand flash的前16k复制到我门的SRAM中,这个时候我们的SRAM第一部分就分开运行。先初始化我们的DRAM
2 将nandflash 中全部的bootloadr复制到我们的DRAM中
3、跳转到DRAM中開始运行的bootloader中的第二部分代码
ARM异常模式
1、管理模式
复位电平的时候有效,产生复位异常,程序跳转到复位异常运行
2、没有定义指令异常
遇到我们不能处理的指令的时候。产生没有定义指令异常
3、软中断
运行我们SWI指令的时候。用于用户模式下的程序调用特权操作指令
4、与存取指令
处理器数据方位的地址不存在,或者地址不同意当前用户訪问
5、FIQ
6、IRQ
7、特权模式
相关文章
- Apache Kafka工作流程| Kafka Pub-Sub Messaging
- 签核流程设计
- eims系统新增一级目录菜单流程
- CAS工作流程
- 【光环国际】掌握项目经理12个工作流程
- 数据挖掘有哪些工作流程?
- Atitit 研发体系 之道 attilax著 艾龙著 1. 发管理是一个完整的管理体系,从结构上来讲,它主要由四个方面的内容构架而成:组织结构与岗位设置 管理流程与工作流程、、项目及管道管理(
- Atitit 常见每日流程日程日常工作.docx v8 verampmimp 签到amy 天气情况检查amy 晨会,每天或者隔天am 每日计划(项目计划,日计划等。am
- Atitit 常见每日流程日程日常工作.docx v7 r8f
- atitit.研发管理--标准化流程总结---java开发环境与项目部署环境的搭建工具包总结
- paip.输入法编程--英文ati化By音标原理与中文atiEn处理流程 python 代码为例
- ML之catboost:基于人类性别相关属性的数据集利用catboost模型实现二分类预测(男女性别预测,全流程案例,包括代码实现)
- 【工作流Activiti7】5、Activiti7 多实例子流程
- android8.0 Launcher源码 (11) --- Launcher 启动流程桌面布局(3)
- 一个BPMN流程示例带你认识项目中流程的生命周期
- Stream中toMap引发NullPointerException____Stream的执行流程
- 【Android Gradle 插件】热修复实现 ① ( Android 热修复系统组成 | 热修复工作流程 | 热修复使用到的技术 | 热修复框架选择注意事项 )
- svn的使用流程
- Android培训班(68)dex文件打开流程
- Laravel教程 二:路由,视图,控制器工作流程
- 一个典型的kubernetes工作流程 - kubernetes
- 海思芯片MPP工作流程
- 高通MSM8953 Android7.1蓝牙接电话流程(App到Adsp)(十六)
- 蓝牙工作流程