bootloader

什么是BootLoader?

初始化开发板上主要硬件(时钟,内存,硬盘),把操作系统从硬盘拷贝到内存,然后让CPU跳转到内存中执行操作系统。

boot阶段干什么事?

1、关闭影响CPU正常执行的外设

--关闭看门狗(watchdog)

--关闭外设

2、初始化时钟

--为CPU倍频,为外设分频

3、串口驱动(便于调试)

4、初始化内存控制器DDRAM

--验证内存,往里面写一个值,然后再读出来

5、初始化硬盘, nand flash

--nand flash读驱动(从nand往外读数据)

loader阶段干什么事?

1、从硬盘指定地址加载kernel到内存指定地址

2、跳转到内存kernel所在的地址,执行

常用调试手段:

1、led点灯大法

2、串口调试,实现uart_getchar,uart_putchar,进一步实现stdio.h中的输入输出函数,(uart_puts,uart_gets,uart_scanf,uart_printf).

原文地址:https://www.cnblogs.com/ggds/p/6993217.html