Uboot-2015在与Uboot 1.1.6

来源:互联网 发布:python自然语言处理 编辑:程序博客网 时间:2024/06/05 02:42

Uboot 1.1.6启动过程:

(1)在start.S中的_start向量表跳转到reset之后执行cpu初始化cpu_init_crit,接着调用时钟、内存、串口、nand初始化lowlevel_init
(2)随后在start.S中搬运Uboot代码,并且规划内存
(3)搬运完成之后跳转到start_armboot第二阶段引导程序
(4)调用init_sequence初始化Uboot环境,重新初始化nand(开启ECC)、调用devices_init初始化其余外设,使用console_init_r注册控制台,最后调用main_loop进入main循环。

移植过程可能涉及文件或者目录:

/mkconfig
/Makefile :xxx_config
/board/samsung/s3c6410/
/include/config.h(自动产生)
/include /configs/mini6410.h
/cpu/s3c64xx/(这里原本cpu应该是arm1176,单此版本还没有这个内核,所以三星自己直接创建了一个以soc命名的cpu)

Uboot-2015启动过程:

(1)_start(vector.S)处有中断向量表,复位向量跳转到reset(start.S),里面先完成cpu_init_crit和low_level_init(时钟和内存初始化),之后跳转到_main(crt0.S);
(2)_main里面有三个阶段:
①board_init_f(Board_f.c)完成板上外设初始化(init_sequence)和内存规划;
②relocate_code完成Uboot代码搬运;
③board_init_c(Board_f.c)注册已经初始化好的外设(init_sequence_r),在init_sequence_r的最后是run_main_loop,进入main循环。
移植过程:
/* TODO */

0 0
原创粉丝点击