原创 嵌入式uCLinux内核启动过程分析与设计

2010-12-21 09:19 1304 10 10 分类: MCU/ 嵌入式



  本文介绍了ARM+uCLinux嵌入式系统的结构,重点分析了uCLinux操作系统启动引导过程,给出了基于一种实际应用系统如何设计uCLinux启动代码。该方法已成功应用于实际系统中。




0 引言
    32位ARM嵌入式处理器具有高性能、低功耗、高性价比的特性,已被广泛应用于消费电子产品、无线通信、控制和网络通信等领域。uCLinux是专门为无MMU处理器设计的嵌入式操作系统,已支持ARM、Motorola等微处理器。目前采用ARM+uCLinux作为嵌入式系统的一种开发模式非常普遍。
    一个基于uCLinux的完整的嵌入式系统由三个部分组成,即系统引导程序Bootloader、uCLinux操作系统内核和文件系统。嵌入式系统的启动引导技术是嵌入式系统开发的一个难点,系统启动引导的成功与否决定了应用程序的运行环境是否能正确建立,系统启动成功是应用正确运行的前提。而uCLinux内核的启动过程也是其中重要一环,分析uCLinux的启动过程,可以加快系统启动速度、正确建立应用环境。本文要研究的就是uCLinux操作系统内核的启动过程。


1 系统简介
    本系统采用SamSung公司的Arm7TDMI内核的S3C4510B处理器,主要利用其强大的网络功能,与PC机进行网络通信。该系统的主要功能是利用串口监测一种智能电表,将获得的数据通过Internet传给PC机,由PC机再做进一步的处理,将最终结果呈现给用户。
    硬件平台包括一个以ARM为内核的处理器、存储器使用2MB的Flash和16MB的SDRAM,外部接口除了通信的串口,还外接了一个以太网接口,以支持S3C4510B的网络功能。软件平台由以下部分组成:系统引导程序Bootloader、嵌入式操作系统内核、文件系统。
          根据内核是否压缩以及内核是否在本地执行,uCLinux通常有两种启动方式:flash本地执行方式和压缩内核加载方式。本系统采用第二种启动方案,即内核的压缩映象固化到flash上,系统启动时在内存中解压,然后在内存中执行,这种启动方式相比第一种方式运行速度更快。


2 uCLinux内核启动过程的实现
    可将ARM+uCLinux系统的启动过程总结为以下几个阶段:


(1)PC指向复位地址入口处,即0x0H处的Bootloader代码。Bootloader完成一些基本的初始化,将系统的软硬件环境带到一个合适的状态;


(2)Bootloader将控制权交给操作系统内核的引导程序后,开始uCLinux内核的加载;


(3)uCLinux内核加载引导完成,启动init进程,完成系统的引导过程。


 


嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:


1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。


2. Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。


3. 文件系统。包括根文件系统和建立于 Flash 内存设备之上文件系统。通常用 ram disk 来作为 root fs。


4. 用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式 GUI 有:MicroWindows 和 MiniGUI 等。

文章评论0条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /2 下一条