U-boot 大体启动流程

简介: U-boot 大体启动流程

1.以board_init_f为函数的CPU级别的硬件初始化

GPIO gpio_init();

使能UART的CLK,为控制台打印信息做提前准备

初始化各种时钟,PLL,Timer

关闭看门狗

初始化DDR的CPU端的控制

转入下一阶段

2.以board_init_r为函数的板级别外设的硬件初始化

串口的初始化

Flash初始化(nor,nand)

MMC

PCI

标准的IO初始化(串口,LCD....)

SPI

I2C

USB

NET

......

添加外设初始化可以接着继续

main_loop()

至此硬件的初始化基本结束

3.main_loop 是业务相关的代码

如果需要引导系统进入引导内核,不需要的话进入命令行模式,根据用户输入的命令

将kernel从flash读到内存

读取kernel的4K头,分析系统类型(Linux,其他系统),运行的入口,kernel相关信息

l R0: 0x0

l R1: 机器号

l R2: 参数地址

三个参数传递给内核。

引导kernel

把使用权交给kernel

相关文章
|
5月前
|
监控 Java Spring
深入理解Spring Boot的启动过程
深入理解Spring Boot的启动过程
|
6月前
|
Java Spring 容器
深入理解Spring Boot启动流程及其实战应用
【5月更文挑战第9天】本文详细解析了Spring Boot启动流程的概念和关键步骤,并结合实战示例,展示了如何在实际开发中运用这些知识。
190 2
|
Java 应用服务中间件 Spring
源码解析Spring Boot 的启动流程
最近有位开发同学说面试被问到Spring Boot 的启动流程,以及被问到Spring Boot 的嵌入式Web容器是什么时候加载的。如何加载的。是怎么无缝切换的。这些问题,其实回答起来也是比较复杂的。我们今天就从 `SpringApplication.run(Application.class, args);`入口,逐渐向下看下执行流程。来试着回答一下前面这两个问题。后面关于SpringBoot 的web容器可以无缝随意切换为`jetty`,`undertow.`.这个问题的回答涉及到Spring Boot是如何设计WebServer的。我们后续专门讲解一下。
11177 1
源码解析Spring Boot 的启动流程
|
设计模式 程序员 应用服务中间件
深入理解SpringMvc 启动流程
深入理解SpringMvc 启动流程
247 0
|
IDE Java Maven
spring boot的项目启动方式有几种及详解?
spring boot的项目启动方式有几种及详解?
|
Java 程序员 Spring
Spring源码系列:Spring的启动过程
Spring源码系列:Spring的启动过程
149 0
|
存储 XML Java
Spring启动过程源码分析
本文是通过 AnnotationConfigApplicationContext读取配置类来一步一步去了解Spring的启动过程。 在看源码之前,我们要知道某些类的作用,这样更方便后续的了解。
Spring启动过程源码分析
|
Java 调度 Spring
源码分析ElasticJob启动流程(基于Spring)
源码分析ElasticJob启动流程(基于Spring)
源码分析ElasticJob启动流程(基于Spring)
|
Java Spring
Spring Boot Logback启动流程
Spring Boot 默认使用的是 Logback 的日志框架、Logback 的组件主要通过 Spring Boot ApplicationListener 启动的
325 0