摘要:介绍了ARM-μCLinux嵌入式系统的结构组成,重点分析了ARM--μCLinux嵌入式系统启动引导的过程实现该系统启动引导的技术难点,提出了一种有效的启动引导方案。
关键词:嵌入式系统 引导 ARM μCLinux
32位ARM嵌入式处理器具有高性能、低轼耗的特性,已被广泛应用于消费电子产品、无线通信和网络通信等领域。ΜCLinux是专门为无MMU处理器设计的嵌入式操作系统,支持ARM、Motorola等微处理器。目前国内外采用ARM-μCLinux作为嵌入式系统非常普遍。而嵌入式系统的启动引导技术是嵌入式系统开发的一个难点。系统启动引导的成功与否决定了应用程序的运行环境是否能正确构建,即系统启动成功是应用正确运行的前提。
常用的嵌入式系统启动方法是先通过JTAG将嵌入式操作系统内核与进Flash,再由其带的引导程序bootloader完成嵌放式系统的启动引导工作。这种方法要借助昂贵的JTAG设备完成操作系统内核 的烧写工作,并且不能方便地更新嵌入式系统中的软件平台。本文提出一种基于ARM-μCLinux嵌入式系统的启动引导方案,不但可以通过简易的串口方便地更新嵌入式系统内的软件平台,而且成功解决了这种架构的嵌入式系统的启动、初始化、操作系统内核的固化和引导等问题。本文简略说明ARM-μCLinux嵌入式系统的硬件平台和软件平台;描述系统引导程序bootloader的设计,阐述设计时考虑的因素和需解决的技术难点,给出一套可行的引导程序流程;针对μCLinux内核的引导程序,说明μCLinux内核的加载和初始化过程。
1 系统组成
典型的ARM嵌入式系统硬件平台一般包括一个以ARM为内核的处理器、存储器和必要的外部接口与设备。在本系统中,采用内嵌ARM7TDMI的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的存储区间,节约成本,那么可采用第二种方式。
打赏帖 | |
---|---|
分享汽车防盗系统的组成与分类(一)被打赏5分 | |
VOFA+波形显示+JYD-31蓝牙发送和解析不定长数据被打赏10分 | |
宏定义和const关键字定义被打赏5分 | |
换取逻辑分析仪】STM32G4从入门到大师之五:ADC中断方式单路采集电压被打赏16分 | |
【换取逻辑分析仪】STM32G4从入门到大师之四:ADC查询方式单路采集电压被打赏14分 | |
【分享开发笔记,赚取电动螺丝刀】几个单片机I2S外设的BLCK时钟对比被打赏20分 | |
【功率监测与控制系统DIY活动成果贴】DIY功率计与LabVIEW数据采集被打赏100分 | |
【分享开发笔记,赚取电动螺丝刀】使用ESP32S3调试I2S音频模块MAX98357被打赏22分 | |
【Freertos】任务管理被打赏10分 | |
分享博世的两种不同的喷射系统模式被打赏5分 |