基于ARM的嵌入式教学平台的设计与应用

来源 :中国包装工业(下半月) | 被引量 : 0次 | 上传用户:wp840716
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】为提高计算机类、电子类及电气控制类技师的技能水平,在技师学院全面开设嵌入式系统的课程以替代传统的8位单片机教学已是大势所趋。对于这种实践性与理论性同等重要的课程,除了讲授课程内容以外,还应该搭建完善的教学实验平台,供学生上机操作,以掌握ARM嵌入式系统的开发和设计技能。
  【关键词】嵌入式系统 ARM 微处理器 S3C44B0X uClinux 内核
  引言
  嵌入式教学平台从结构上来看主要分为三个部分:底层的硬件平台,包含Boot Loader的操作系统层,以及最上面的应用层——应用程序的设计开发环境。根据嵌入式系统的现状与教学平台的实际需要,提出了既经济又实用的以ARM 加装 uClinux基本的系统设计方案。
  1 ARM的嵌入式系统研究背景及应用现状
  嵌入式系统是以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可行性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统至今已经有30多年的历史了,嵌入式技术也经历了几个发展阶段。进入20世纪90年代后,以计算机和软件为核心的数字化技术取得了迅猛的发展,不仅广泛渗透到社会经济、军事、交通、通信等相关行业,而且深入到家电、娱乐等各个领域,兴起了一场数字化技术革命。多媒体技术与internet应用的迅速普及,消费电子、计算机、通信技术一体化趋势明显,嵌入式技术再度成为研究的热点。
  2 开设本课程的意义
  基于ARM的嵌入式系统应用是如此的广泛,但“嵌入式”却鲜为人知,很多人在使用着嵌入式设备,享受着嵌入式给他们带来的便利和强大的功能时,并不知道嵌入式系统的存在。 到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域:工业控制、无线通讯、网络应用、消费类电子产品、成像和安全产品,除此以外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用。因此,研究具有普遍的意义。目前,学校正在开设的传统的8位单片机技术的教学已不能适应学生就业市场的需求。鉴于以上原因,在嵌入式人才极其缺乏的今天,在职业技术学院办好嵌入式系统教学平台,为学生提供良好的学习环境,使其熟练掌握嵌入式系统的研究与开发技术,在提高技师学院学生的就业率并为其自身日后的发展打下良好基础的同时,对提高办学效益也具有重大的意义。因此,在职业技术学院开设基于ARM的嵌入式系统的课程已是大势所趋。
  3 教学硬件平台的搭建
  嵌入式开发平台的硬件选择主要是嵌入式处理器的选择。嵌入式系统硬件通常由处理器、存储器和输入/输出三个部分组成。根据嵌入式系统的现状与教学平台的实际需要,经过慎重筛选,选择了三星的S3C44B0X微处理器。S3C44B0X处理器是基于ARM7TDMI的体系结构。ARM7TDMI是ARM公司最早的业界普遍认可且赢得了广泛应用的处理器核,ARM7TDMI处理器是ARM7处理器系列成员之一,是目前应用很广的32位高性能嵌入式RISC处理器。为了降低系统总成本和减少外围器件,这款芯片还集成了下列部件:8KB Cache、外部存储器控制器、LCD控制器、4个DMA通道、2通道UART、71个通用I/O口、8个外部中断源、实时时钟、8通道10位ADC等。
  硬件的设计框图如图1所示。
  4 操作系统的选择
  4.1 选择uClinux作为教学平台的操作系统的原因
  目前,嵌入式操作系统的品种很多,但随着嵌入式系统的应用领域越来越广泛,免费的Linux操作系统成为嵌入式操作系统中的首选。
  4.2 uClinux的特点
  uClinux具有多任务、无内存管理单元、内核精简、高效、稳定等优点。uClinux是由linux2.0去掉内存管理单元模块支持而发展生成的,主要面向无内存管理单元的处理器,特别适用于工控、仪表行业等低端手持设备。
  4.3 Boot loader的功能和实现
  (1)Boot Loader的基本结构。Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。(2)Boot Loader 的操作模式。大多数 Boot Loader 都包含两种不同的操作模式:"启动加载"模式和"下载"模式。本教学平台使用的Boot Loader被命名为fs_bios44b0,它提供了下载模式下的工作模式,我们需要增加启动加载的工作模式。利用fs_bios44b0加载并运行内核的流程,如图2所示。
  在原有Boot Loader基础上进行修改,使得在启动时处于正常的启动加载模式,但是它会延时 10 秒等待终端用户按下任意键而切换到下载模式。如果在 10 秒内没有用户按键,则 Boot Loader继续启动 Linux 内核,Boot Loader的编译和调试是在ADS环境下进行的。
  4.4 内核的裁剪和编译
  Linux的运行开销,主要包括了静态映像体积、动态运行的内存和CPU等的开销,这些开销通常在嵌入式系统中都显得比较大。由于嵌入式系统的资源比桌面系统少,所以必须先对Linux进行裁剪,控制开销,才能使之运行于嵌入式系统硬件平台上。静态映像主要有Linux系统内核、应用程序、应用库等的二进制映像组成;动态运行的开销和CPU开销主要与Linux实现有关,需要针对嵌入式应用系统的特点进行优化。
  4.5 内核的加载运行
  当内核的编译工作完成之后,会在/ uClinux-040408/images目录下看到两个内核文件:image.ram和image.rom,其中,可将image.rom写入ROM/SRAM/FLASH Bank0对应的Flash存储器中,当系统复位或上电时,内核自解压到SDRAM,并开始运行。image.ram可直接在系统的SDRAM中运行,使用ADS(或SDT)集成开发环境将系统的SDRAM映射到起始地址为0x0处,并将image.ram载入从0x10000开始的SDRAM中,加载完毕后,修改PC指针寄存器的值为0x10000并执行。注意该内核默认串行口COM1为输入输出控制台,波特率115200,8个数据位,1个停止位,无校验。   5 应用程序的开发及添加
  5.1 应用程序的开发
  基于ARM 的嵌入式系统开发时,选择合适开发工具可加快开发进度,降低开发成本。常见的ARM编译开发环境有两种:(1)ADS/SDT IDE开发环境:它由ARM公司开发,使用了CodeWarrior公司的编译器;(2)集成了GNU开发工具的IDE开发环境:它由GNU的汇编器as,交叉编译器gcc和链接器ld组成。选择ADS/SDT开发环境时,用户的工程,源程序文件应符合SDT/ADS的语法和规则。选择GNU开发工具的集成开发环境时,用户的工程、源程序文件应符合GNU的语法和规则。在嵌入式程序设计中,C语言编程和ARM汇编语言编程都是必须的,在某些情况下,还需要C语言与汇编语言的混合编程。如果代码比较简单,则可直接利用内嵌汇编来进行混合编程,这时需ATPCS来完成汇编语言与C语言程序之间的调用。在实际编程应用中,使用较多的方式是:程序初始化部分用汇编语言完成,然后用C/C++完成主要的编程任务,程序在执行时首先完成初始化过程,然后跳转到C/C++程序代码中,汇编程序和C/C++程序之间一般没有参数传递,也没有频繁的相互调用,因此,整个程序的结构显得相对简单。
  5.2 应用程序的添加
  作为一款较好的网络控制器,基于S3C44B0X的系统一般都提供以太网接口,通过以太网接口从网络添加用户程序到目标系统运行,快速而且方便,特别是在用户应用程序的调试过程中。
  事实上,鉴于uClinux操作系统本身强大的网络功能,同时基于S3C44B0的系统提供以太网接口,通过局域网可方便地在运行uClinux目标系统和运行Linux宿主机上进行文件传输。运行目标系统的uClinux内核在编译过程中,已默认选择了FTP和其他一些网络服务,同时,宿主机上的Linux在默认时,也会安装运行FTP 服务,因此,当目标系统的uClinux启动运行以后,可将目标系统作为FTP客户端,而运行Linux宿主机作为FTP服务器,进行双向的文件传输。
  6 教学平台的功能及使用效果
  本教学平台可以实现基础的 ARM 嵌入式教学,主要包括指令实验、基础接口实验、 uCLinux 操作系统实验,也可以实现高端的 ARM 嵌入式教学,主要包括扩展接口实验, 如 LED 灯、数码管、音频、麦克风、串口、并口、 USB 接口、以太网接口、步进电机、 SD 卡、液晶、触摸屏等,基本满足目前的嵌入式教学需求。经过该教学平台的学习,学生进一步加深了嵌入式系统应用技术基本原理,掌握32位ARM单片机和嵌入式操作系统应用的一些基础技术,学生基本可以完成目前企业的一般项目研发,使走出校园的学生能尽快适应以后工作的需要。
  参考文献
  [1]李驹光,聂雪媛等.应用系统开发详解——基于S3C4510B的系统设计[M].北京:清华大学出版社,2003.
  [2]马忠梅,李善平,康慨等.ARM & Linux嵌入式系统教程[M].北京:北京航空航天出版社,2004.
  [3]李善平,刘文峰,王焕龙等.Linux与嵌入式系统[M].北京:清华大学出版社,2003.
  [4]周立功.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005.5.
  [5]王维新.基于ARM的嵌入式系统的应用技术[J].西安文理学院学报:自然科学版,2009,(3): 100-103.
  [6]徐向民. Altium Designer 快速入门[M].北京:北京航空航天大学出版社,2008.
  [7]高伟,赵宇.嵌入式系统课程设置与教学探索[J].中国成人教育,2009,(14):149-150.
其他文献