基于ARM9的嵌入式软件实验平台构建.doc

上传人:gs****r 文档编号:1759544 上传时间:2019-03-14 格式:DOC 页数:7 大小:107.50KB
下载 相关 举报
基于ARM9的嵌入式软件实验平台构建.doc_第1页
第1页 / 共7页
基于ARM9的嵌入式软件实验平台构建.doc_第2页
第2页 / 共7页
基于ARM9的嵌入式软件实验平台构建.doc_第3页
第3页 / 共7页
基于ARM9的嵌入式软件实验平台构建.doc_第4页
第4页 / 共7页
基于ARM9的嵌入式软件实验平台构建.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、1基于 ARM9 的嵌入式软件实验平台构建【摘 要】文章主要针对特定知识结构的学生群体结合行业发展和教学的需求构建了一套嵌入式软件实验平台。主要内容包括嵌入式实验平台构建的一般规律、系统移植、交叉编译环境的构建和驱动的编写等。【关键词】实验平台;嵌入式;交叉编译 嵌入式系统因其软硬件可裁剪和面向专用的应用而具有非常灵活多变的存在形式。在实验教学中力求覆盖所有可能的嵌入式系统存在形式是徒劳的想法。然而作为计算机而言其原理是完全相通的,只要掌握了一套较有代表性的嵌入式系统构建过程,对百花齐放的行业环境来说是很有指导意义的。嵌入式系统开发的过程可以简要归结为:根据需求集成硬件平台,移植操作系统,编写

2、驱动,建立文件系统,开发应用程序等等。当嵌入式类的专业课以选修课的形式存在时,经常面对没有电子技术基础的计算机专业学生,他们对逻辑分析和程序设计较为擅长,而对计算机系统的电子电路结构知之甚少,为此本文研究了一套基于 ARM9的软件实验平台,通过该平台将硬件、OS 移植、驱动程序等环节包裹起来,使学生站在嵌入式操作系统的之上发挥所长,专门从事嵌入式应用程序设计。 一、总体设计 (一)硬件平台简述 2硬件平台以 ARM9 内核的 S3C2440 为核心搭建,配以相应的RAM、FLASH、电源、时钟和其它外设组成。 (二)软件平台构建 操作系统选用开源的 LINUX,交叉编译器选择 ADS1.2,B

3、OOTLOADER采用 U-BOOT。首先通过图 1 看一下基于 LINUX 构建嵌入式软件平台的基本框架。如图所示 OS(操作系统)将硬件封装屏蔽,开发人员只需跟API 和 C 语言库打交道即可,从而实现前述的绕开系统硬件环节,发挥学生的长处专注于应用程序设计的目的。 下面以整个软硬件系统启动的过程为顺序阐述主要环节 图 1 软件平台框架 的工作过程和原理。一般而言嵌入式系统启动过程中涉及到的主要模块按先后顺序为:BOOTLOADER、初始化内核、启动 init 进程、运行脚本、GUI 界面。下面逐一简要介绍。BOOTLOADER 类似于 PC 上面的 BIOS,其主要任务是系统初始化和自举

4、,在开机之前硬件平台中的各个器件是分立的、各自为政的,启动的第一项任务则是将这些设备进行初始化配置相互握手连成整体,从而组成有机的系统。对于基于 ARM9 的硬件平台来说 BOOTLOADER 主要完成的任务包括:初始化 CPU、初始化 RAM、初始化闪存、初始化时钟电路、内存地址映射等。初始化内核的主要任务是依据嵌入式微控制器体系结构进行检测,检测通过后启动与体系结构各模块相应的子系统。在启动 init 进程之前还需要加载文件系统,之后就可以运行系统的第一个进程-init,需要说明的是 init 是运行在用户模式下的,在 ARM 内核的体系结构中包含 7 中常见的工作模式,主要有用3户模式、

5、系统模式、管理模式、IRQ 模式、FIQ 模式、中止模式和自定义模式。不同的模式有各自的影子寄存器组,在完成进程切换及中断响应时可以省掉堆栈操作的访存开销,从而提高系统的实时性。用户模式属于非特权模式,该模式下的进程操作是受限的。要保证 Init 进程成功启动需要将其对应的可执行文件在内核代码移植过程中预定位。Init 进程启动后根据预定义参数配置启动脚本,并开启 shell。一般情况下在系统默认的控制台里面开启 shell 即可。完成环境变量配置加载指定文件之后进入到 GUI 界面,启动过程完成。值得一提的是上述启动过程中各模块启动有严格的顺序,后续模块的启动对前序模块有强依赖性,另外系统启

6、动成功之后内核是工作在处理器的用户模式下,其具体体系结构内容本文不再赘述。 二、关键技术 (一)移植 BOOTLOADER BOOTLOADER 与系统硬件是强相关的,也就是说对硬件的体系结构没有准确的把握的话是无法完成移植的。又由于嵌入式系统硬件具有定制和可裁剪的特性,导致不同应用场合中的硬件体系结构都是不同的,也就是说这是一种面向应用的专用计算机系统,因此目前也就暂时不存在通用的 BOOTLOADER。常用的 BOOTLOADER 有很多本文不再赘述,文中采用的是 universal BOOTLOADER 以下简称 UBOOT,UBOOT 是开源的并且有着很强的技术支持,具体包括开发文档、

7、很多设备驱动的源码、丰富的网络功能等。移植 BOOTLOADER 的具体工作是在上位机编制源码,并通过交叉编译环境下载到开发板,本文选用的是 JTAG 接口来完成这一工作。 4(二)交叉编译环境构建 典型的交叉编译环境中至少要包括调试主机、协议转化器和调试目标。本文采用 ARM 公司定义的标准 20 针 JTAG 仿真调试接口,该接口主要的职责相当于一名翻译,负责将调试主机中编制的程序解释成调试目标可执行的二进制代码。调试目标的硬件核心是微处理器,它和调试主机分别是两台相互独立的并且完整的计算机系统,但一定是异构的。调试主机中的代码经过仿真器转换后经过 20 针接口传送给调试目标,调试目标中的

8、微处理器需先将代码下载(一般下载到 FLASH) ,然后执行,以上就是一种嵌入式应用程序开发的交叉编译环境框架。在这个结构中,调试目标(即实验室中的开发板)中的微处理器在逻辑意义上充当了一个“接口” ,建立交叉编译主要目的是为了方便在线调试,这个调试要分作两个层面,正如前面所述调试主机与调试目标是两套相互独立的计算机系统,因此它们也都可以完成各自系统层面上的调试,这里我们将调试主机中的调试过程成为上级调试,而调试目标中的调试成为下级调试,那么调试目标中的微处理器就充当了这两个级别的调试之间的接口。JTAG 调试接口是可以较好的与 ADS1.2 集成开发环境兼容的,而且ADS1.2 具有较好的单

9、步、断点及全速等方便的调试功能。至此软硬件的交叉编译环境已经就绪。剩下的关键任务就是将操作系统建立起来并安装应用程序开发环境。 (三)设备驱动程序 嵌入式 OS 移植是一项费时费力有要求细致入微的工作,这里主要介绍一下本文所述的实验平台建立过程中涉及到的设备驱动问题。LINUX 是单内核的,设备驱动是内核的一个重要组成5部分,要想实现 OS 对系统硬件的充分屏蔽,驱动是至关重要的。在LINUX 系统中设备主要定义了三种:网络设备、字符设备和块设备。写驱动的时候要注意其特性。其中网络设备对于 LINUX 来说已配置了通用的接口和健全的机制;读写字符设备时几乎是直驱的,这是一种简单而直接的 IO

10、操作;访问块设备的时候一般要建立内存缓冲区,而且块设备要支持随机读写。嵌入式系统的外设选择是非常灵活的,根据需要本文配置的主要有 JTAG 接口、USB 接口、模数转换、串口和触摸屏等,其中触摸屏是现阶段智能嵌入式设备中不可或缺的输入/输出设备,下面简述一下触摸屏驱动程序开发的关键点。本文采用的 S3C2440 嵌入式芯片为触摸屏接口提供了 4 种工作模式,分别是一般转换模式、分离 XY 坐标转换模式、连续 XY 坐标转换模式和等待中断模式,本文采用分离 XY 坐标转换模式和等待中断模式。S3C2440 芯片内置了 8 个通道的 AD 转换控制器可与触摸屏直接相连。在做驱动的过程中一项具体的重

11、要工作就是读写寄存器,甚至有些时候可以以点带面的把驱动程序的功能归结为读写端口。在连接触摸屏的 AD 接口中主要涉及到 ADCCON(ADC 控制寄存器) 、ADCTSC(触摸屏控制寄存器) 、ADCDLY(延迟寄存器)以及 ADCDAT(转换数据寄存器) 。这里主要介绍下 ADCTSC,其地址为 0x58000004,复位后寄存器内容为 0x58。共有 8 个有效位,详见表 1。根据功能表计算出控制字为 0xD3,写入控制字之后设备工作于等待中断模式,当触屏动作放生后接口电路发出 INT_TC 信号申请中断,中断响应后转入分离 XY 坐标转换模式读取坐标。具体代码文中不赘述。 表 1 ADC

12、TSC 寄存器功能 6名称 UD_SEN YM_SEN YP_SEN XM_SEN XP_SEN PULL_UP AUTO_PST XY_PST 功能 光标检测 YM 使能 YP 使能 XM 使能 XP 使能 上拉使能 连续转换 手动测量 初值 0 0 1 0 1 1 0 0 (四)构建 GUI 开发环境 前序工作完成并且烧写到调试目标上之后,只剩下为应用程序开发建立友好的图形界面开发环境。本文选用 QT(一种面向对象的 C+图形用户界面应用程序开发框架)及相关工具来构建。QT 的跨平台能力较强,先在调试主机中进行 ARM 版本的编译、生成库文件等工作,触摸屏的校验程序下载到开发板的/lib

13、目录。文件系统添加完毕之后,剩下的工作只需安装集成开发工具就可以了。至此一个较为完整的嵌入式实验教学平台建立完毕。 三、结语 本文针对特定的学生群体构建了一套面向嵌入式应用程序设计的实验平台。结合该平台的构建过程总结了实践中的一些关键技术。主要有此类平台构建的一般规律、BOOTLOADER 移植、交叉编译环境构建和驱动程序的编写等。整个过程涉及到的细节非常多,文中未能逐一叙述,而是选取了几个“绊脚石”做了以点带面的分析。实验平台是服务于教学的,需要以学生为中心结合课程内容和行业发展现状进行设置。嵌入式系统是很灵活多变的,在设置实验环节和实验项目构建实验平台的时候既要考虑到共性的本质的内容,又要以符合行业发展的代表性项目来驱7动教学的进程。 参考文献 1 王凯,王玉玫.嵌入式系统图形处理平台设计与实现J.计算机工程与设计,2007(16). 2 左璐.嵌入式系统现状与发展前景研究J.现代商贸工业,2010(15). 基金项目:本文受呼伦贝尔学院科研一般项目“嵌入式实验教学软件开发平台研究” (YJYBZC201215)资助。 作者简介:陶锐(1978- ) ,男,内蒙古呼伦贝尔人,硕士,现任教于呼伦贝尔学院,讲师,研究方向:计算机应用。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 学科论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。