-
-
longrenarm9 | 当前状态:离线
总积分:232 2024年可用积分:0
注册时间: 2008-05-29
最后登录时间: 2008-10-29
-
基于ARM-μCLinux嵌入式开发系统启动引导的实现
longrenarm9 发表于 2008/5/30 11:28:06 780 查看 0 回复 [上一主题] [下一主题]
手机阅读
32位arm嵌入式处理器具有高性能、低轼耗的特性,已被广泛应用于消费电子产品、无线通信和网络通信等领域。μclinux是专门为无mmu处理器设计的嵌入式操作系统,支持arm、motorola等微处理器。目前国内外采用arm-μclinux作为嵌入式开发系统非常普遍。而嵌入式开发系统的启动引导技术是 嵌入式 系统开发的一个难点。系统启动引导的成功与否决定了应用程序的运行环境是否能正确构建,即系统启动成功是应用正确运行的前提。
常用的嵌入式系统启动方法是先通过jtag将 嵌入式 操作系统内核与进flash,再由其带的引导程序bootloader完成嵌放式系统的启动引导工作。这种方法要借助昂贵的jtag设备完成操作系统内核 的烧写工作,并且不能方便地更新 嵌入式开发 系统中的软件平台。本文提出一种基于arm-μclinux嵌入式系统的启动引导方案,不但可以通过简易的串口方便地更新嵌入式系统内的软件平台,而且成功解决了这种架构的 嵌入式系统 的启动、初始化、操作系统内核的固化和引导等问题。本文简略说明arm-μclinux 嵌入式 系统的硬件平台和软件平台;描述系统引导程序bootloader的设计,阐述设计时考虑的因素和需解决的技术难点,给出一套可行的引导程序流程;针对μclinux内核的引导程序,说明μclinux内核的加载和初始化过程。
1 系统组成
典型的 arm 嵌入式 系统硬件平台一般包括一个以arm为内核的处理器、存储器和必要的外部接口与设备。在本系统中,采用内嵌arm7 tdmi的samsung公司的s3c4510处理器,存储器使用2mb的flash和16mb的sdram,外部接口除了用于下载和通信的串口,还配备了一个以太网接口,以支持s3c4510的网络功能。
软件平台由以下部分组成:系统引导程序、嵌入式 操作系统内核、文件系统。系统引导程序通常也称为bootloader,代码量虽少,但是作用非常大,相当于pc上的bios,负责将操作系统内核固化到flash中和系统初始化工作,然后将系统控制权交给操作系统。嵌入式操作系统内核是嵌入式系统加电运行后的管理平台,负责实时性任务和多任务的管理。arm7tdmi是一款没有mmu的处理器,因此采用μclinux作为本系统的操作系统内核。μclinux是linux是一个分支,专为无mmu的处理器设计,它继承了linux强大的网络功能和多任务管理功能,并对内存管理和进程管理进行了改写,满足无mmu处理器的开发要求。文件系统是嵌入式系统软件平台占用存储量最大的一部分,也是与用户开发最相关的一部分。它存储了系统配置文件、系统程序、用户应用程序和必需的驱动程序。
软件平台固化在flash中。通常根据软件平台的内容 对flash的地址空间进行分区,一般分三个区,分别丰放bootloader、μclinux内核和文件系统。分区的方式一般有两种:一种是根据三个部分预定的存储空量,允许bootloader、内核和文件系统拥有自己固定的分区和首地址;另一种就是按照这三部分的实际分配区间,一个部分紧跟着另一个部分后存储,没有固定的分区和首地址。通常采用第一种方式,虽然可能会浪费一部分flash空间,但是方便内核的加载和文件系统的挂载,同时也利于系统的调试和开发。而如果充分利用flash的存储区间,节约成本,那么可采用第二种方式。