新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM9内核的软硬件平台设计

基于ARM9内核的软硬件平台设计

作者:时间:2014-07-21来源:网络收藏

  其中Sibl是bootstrap加载并执行的第一个引导程序,在程序大小上受到bootstrap加载的限制,因此设计上尽量做到了小型化和功能专一。它除了完成最基本的硬件初始化以外,主要功能是实现其他程序(包括Uboot)从NAND Flash的加载,完成下一级Bootloader运行之前的内存地址空间分布。

本文引用地址:http://www.eepw.com.cn/article/255836.htm

  第二级Bootloader采用功能强大的sourceforge开源软件Uboot。Uboot的主要功能是完成嵌入式操作系统启动前的底层硬件初始化,并为Linux内核提供启动参数,最终引导操作系统Linux内核启动。另外,为了实现程序镜像文件编程写入NAND Flash,Uboot嵌入了一个NAND子系统,通过 Uboot的用户命令行实现对NAND Flash的读/写操作,可将程序镜像写入NAND Flash指定的地址空间。

  (2) 嵌入式操作系统

   内部集成了26EJS处理器内核,带存储器管理单元MMU,支持多数主流嵌入式操作系统。系统通过编写板级支持代码,移植了 Linux2.6.10作为平台操作系统,利用稳定的Linux2.6内核实现任务调度、进程管理、内存管理等功能,同时,针对Linux的可配置性,对内核进行裁剪和硬件驱动代码添加,系统实现了一个小型但功能强大的内核程序,适应了嵌入式系统存储资源相对紧缺的状况。

  5 系统启动流程分析

  由上面的软件结构组成分析可知,整个系统启动流程分为3个步骤:

  ① 系统上电后,首先从片上ROM固化的bootstrap程序执行。bootstrap用于完成外部引导程序下载并跳入执行。bootstrap运行过程首先读输入引脚GPIO_01。如果GPIO_01置为高,则从NAND Flash下载程序引导系统启动;如果置为低,则依次检测USB接口和UART5接口,通过外部连接下载引导程序。系统通过设置GPIO_IO跳线来控制bootstrap启动过程,本例将GPIO_01置为高,从NAND Flash下载程序。

  ② 系统启动的第二阶段是运行bootstrap下载的引导程序Sibl。Sibl完成系统必要的初始化后,从NAND Flash加载镜像程序到指定的SDRAM空间。镜像程序在起始位置添加了64字节的头信息,用于Sibl识别和加载,头信息数据结构如下:

  struct image_header {

  uint32_tih_magic;/*镜像头信息同步字,Sibl通过该字识别程序*/

  uint32_tih_hcrc;/*镜像头信息CRC校验码*/

  uint32_tih_time;/*存储镜像创建时间*/

  uint32_tih_size;/*镜像数据大小*/

  uint32_tih_load;/*镜像加载地址*/

  uint32_tih_ep;/*镜像入口地址*/

  uint32_tih_dcrc;/*镜像数据CRC校验码*/

  uint8_tih_os;/*操作系统信息*/

  uint8_tih_arch;/*CPU体系结构类型*/

  uint8_tih_type;/*镜像类型*/

  uint8_tih_comp;/*压缩类型*/

  uint8_tih_name[32];/*镜像名称*/

  }

  Sibl 从NAND Flash起始地址开始搜索。如果读到镜像同步字ih_magic,则识别镜像程序,并根据偏移地址读取程序大小ih_size和加载地址 ih_load,将程序加载到指定的SDRAM空间;加载完成后根据CRC校验码ih_dcrc对SDRAM数据进行CRC检测;最后根据镜像类型 ih_type判断镜像是否可执行,若可执行,则跳入镜像入口地址ih_ep,否则Sibl继续搜索NAND Flash镜像程序。

  镜像程序使用U-boot提供的工具mkimage添加头信息,命令格式如下:

  mkimage-A arch-O os-T type-C comp-a addr-e ep-n name-d data_file image

  

 

  图6 系统启动过程内存空间分布图

  ③ 完成Sibl加载后,内存空间分布如图6所示,系统进入启动流程的第三阶段U-boot。U-boot完成Linux内核镜像的解压缩和操作系统启动前的初始化,最终跳入内核入口地址,完成对Linux的引导。

  6 系统性能分析

  系统构建提供了一个完整的嵌入式软硬件平台,下面对浮点运算能力进行测试和分析。测试方法是使用一个浮点运算密集的算法,用 ADS编译器分别编译使能硬件VFP和软浮点运算两个版本的测试程序,并在不同的CPU时钟频率下比较运行时间,结果如表1所列。

  分析实验数据,可以得出结论:VFP协处理器在相同时钟频率下,提高了5倍左右的浮点运算性能。因此,LPC3180平台结合VFP协处理器,能够实现复杂的浮点运算密集算法。在微控制器中集成硬件浮点运算单元,这使得微控制器的数据处理能力大大提高,能够胜任多数的数字信号处理应用。

  表1 浮点运算结果

  

 

  结语

  本文介绍了以LPC3180微控制器为核心的嵌入式软硬件平台的设计与实现,并测试、验证了LPC3180的浮点运算性能。该平台对于LPC3180的应用开发具有借鉴意义。目前LPC3180在医疗器械、工业控制、POS机、数字信号处理等领域有着广泛的应用。

  参考文献

  [1] LPC3180 User Manual. http://standardics.philips.com.

  [2] ISP1301 User Manual. http://semiconductors.philips.com.

存储器相关文章:存储器原理



上一页 1 2 下一页

关键词: ARM9 Philips LPC3180

评论


相关推荐

技术专区

关闭