分类: LINUX
2013-10-09 17:39:23
U-BOOT及其启动流程
嵌入式Linux系统一般没有自举程序,必须通过启动程序来引导硬件系统进入操作系统。启动程序的工作包括:改变系统时钟、关闭WATCHDOG、初始化存储控制器等。本文针对本嵌入式控制系统所需的硬件方案,植入Uboot1-3.4启动程序。U-Boot是一种功能强大的引导转载程序。它不仅支持Linux、Vxworks等操作系统,还支持PowerPC、ARM等多种系列处理器。
Uboot启动过程分为两个阶段。第一阶段由汇编来实现,用于完成依赖于CPU体系结构的初始化,并调用第二阶段的代码。第二阶段由C语言实现,完成相关初始化后,进入命令循环以等待用户命令,或将参数传给内核,引导Linux内核启动。图中给出了Uboot的启动流程。
Uboot-1.3.4中对at91rm9200dk系列的开发板有很好的支持,只需做少量修改即可使用。但是在目前U-Boot-1.3.4引导系统中,不能识别本论文中采用的8MB NOR Flash(SPANSION公司的S29GL064N90TFI04)和1GB NAND Flash(SAMSUNG公司的K9K8G08U0A)两款芯片,需要自行移植。