嵌入式启动顺序 - uboot之前
2017-09-01 14:50
211 查看
//本文章基于HI35XX soc 与 U-boot-2010.06
从上电到加载uboot第一阶段
关于为什么不写从上电到加载bootloader,因为uboot是一种bootloader,在uboot运行之前,CPU运行的程序也是一种bootloaderuboot启动后做的工作请参考嵌入式启动顺序 - uboot
uboot 之前的启动顺序 是 1 2 或者 1 3 .
1/上电
执行块:索引代码 存放位置:未知 运行位置:未知 上序:无 功能:检查硬件的config,去判断从哪里启动,并执行对应的操作 下序:多种可能.可能1:bootrom中的bootimage.可能2:类似sram接口的Norflash中的uboot第一阶段. 其他1:我也不知道他是什么,有人说这一块是硬件电路.但是我不确定. 其他2:cpu需要从sram或者norflash中取指.这个接口必须要初始化或者这个接口根本不需要初始化
2/ 从bootrom启动
执行块:bootImage 存放位置:bootrom(soc中的irom) 运行位置:sram(也叫iram,也叫L2 Cache) 上序:索引代码 功能: 1.初始化串口 2.初始化spi接口 2.检测上位机是否发送东西 2.1.如果没有,则从norflash(spi接口)上读取uboot第一阶段到sram. 2.2.如果有,则从串口读取数据到sram,并尝试启动从串口来的数据(程序)//该路径不会执行到uboot第一阶段 其他: 1.cpu与sram的接口是不需要初始化的. 2.cpu与irom的接口也是不需要初始化的. 2.所以cpu可以直接读irom里面的数据到sram.
3/ 从NorFlash(类sram接口)启动
执行块:uboot第一阶段 存放位置 :NorFlash 0x00000000处 运行位置 :NorFlash 上序 :索引代码 功能 : uboot第一阶段的功能 其他 : 1.cpu与sram的接口是不需要初始化的. 2.cpu与NorFlash(类sram)的接口也是不需要初始化的. 2.所以cpu可以直接读NorFlash里面的数据到sram.
综上,如果说从NorFlash启动的话,那么NorFlash与SOC(cpu)的接口一定是类SRAM接口.
存在一种特殊情况,芯片手册上写着支持NorFlash启动,且NorFlash是SPI接口.其实是从bootrom启动的.
硬件上的config
当BOOTROM_SEL=1 时,芯片从片内ROM 启动,将会启动串口通信机制,通过串口与PC 端相应的软件建立通 信 如果在规定时间内,通信成功,则开始下载boot程序. 如果与串口通信超时,置BOOTROM_SEL为0,并判断BOOT_SEL1(与芯片外部管脚NF_ALE 复用)和BOOT_SEL0(与芯片外部管脚NF_CLE 复用)的上下拉电平. 当BOOTROM_SEL=0、BOOT_SEL1=1、BOOT_SEL0=0 时,NAND Flash 启动。 当BOOTROM_SEL=0、BOOT_SEL1=0、BOOT_SEL0=0 时,SPI Flash 启动。 当BOOTROM_SEL=0、BOOT_SEL1=0、BOOT_SEL0=1 时,DDR 启动。 一般情况下,一开始在硬件上都是置BOOTROM_SEL为1
相关文章推荐
- 嵌入式学习-uboot-lesson3-6410uboot启动流程分析
- Spring Boot 项目启动顺序以及常见注解作用
- 使用bcdedit 更改windows vista 的启动顺序,并用bootsect 删除启动管理器
- 高通Qualcomm平台lk(light kernel)启动流程1——aboot_init()之前
- 嵌入式linux开发uboot移植(四)——uboot启动内核的机制
- 基于 Beaglebone Black嵌入式linux系统u-boot编译 启动
- 【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之四--U-boot如何引导Linux内核启动?
- 嵌入式linux开发uboot移植(三)——uboot启动过程源码分析
- 嵌入式linux开发uboot移植(三)——uboot启动过程源码分析
- 嵌入式 uboot启动阶段修改启动参数方法及分析
- Spring Boot相关知识(二) Spring Boot项目启动的执行顺序和原理
- 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)
- 嵌入式linux开发uboot移植(四)——uboot启动内核的机制
- NBOOT启动至BOOTLOADER之前
- 嵌入式uboot,内核启动通过nfs挂载根文件系统
- spring boot/cloud 多服务部署单机启动顺序有依赖的解决办法
- 嵌入式Linux驱动学习之路(六)u-boot启动内核
- 嵌入式Linux启动过程分析5-u-boot-1step-word
- ARM Linux Boot Sequence, arm linux启动顺序
- springboot启动嵌入式tomcat报错找不到jar包,关键字:FileNotFoundException,derbyLocale_cs.jar,StandardJarScanner.scan