u-boot简述
1、Bootloader的启动过程启动过程可以分为单阶段(Single Stage)、多阶段(Multi-Stage)两种。通常多阶段的Bootloader能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的Bootloader大多都是 2 阶段的启动过程。这从前面的硬件实验可以很好地理解这点:第一阶段使用汇编来实现,它完成一些依赖于 CPU 体系结构的初始化,并调用第二阶段的代码。第二阶段则通常使用C语言来实现,这样可以实现更复杂的功能,而且代码会有更好的可读性和可移植性。 一般而言,这两个阶段完成的功能可以如下分类,但这不是绝对的: (1)Bootloader第一阶段的功能。 ·?????????
在第一阶段进行的硬件初始化一般包括:关闭WATCHDOG、关中断、设置CPU的速度和时钟频率、RAM初始化等。这些并不都是必需的,比如S3C2410/S3C2440的开发板所使用的U-Boot中,就将CPU的速度和时钟频率的设置放在第二阶段。 甚至,将第二阶段的代码复制到RAM空间中也不是必需的,对于NOR Flash等存储设备,完全可以在上面直接执行代码,只不过这相比在RAM中执行效率大为降低。 (2)Bootloader第二阶段的功能。 ·?????????
为了方便开发,至少要初始化一个串口以便程序员与Bootloader进行交互。 所谓检测内存映射,就是确定板上使用了多少内存,它们的地址空间是什么。
2、将内核存放在适当的位置后,直接跳到到它的入口点即可调用内核。调用内核之前,下列条件要满足: (1)CPU 寄存器的设置。 ·?????????
(2)CPU工作模式。 ·?????????
(3)Cache 和 MMU 的设置。 ·?????????
3、U-Boot顶层目录说明 ?
4、根据顶层Readme文件的说明,可以知道如果要使用开发板board/<board_name>,就先执行“make <board_name>_config”命令进行配置,然后执行“makeall”,就可以生成如下3个文件:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |