- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ARM9嵌入式软件实验平台构建
基于ARM9嵌入式软件实验平台构建
【摘 要】文章主要针对特定知识结构的学生群体结合行业发展和教学的需求构建了一套嵌入式软件实验平台。主要内容包括嵌入式实验平台构建的一般规律、系统移植、交叉编译环境的构建和驱动的编写等。
【关键词】实验平台;嵌入式;交叉编译
嵌入式系统因其软硬件可裁剪和面向专用的应用而具有非常灵活多变的存在形式。在实验教学中力求覆盖所有可能的嵌入式系统存在形式是徒劳的想法。然而作为计算机而言其原理是完全相通的,只要掌握了一套较有代表性的嵌入式系统构建过程,对百花齐放的行业环境来说是很有指导意义的。嵌入式系统开发的过程可以简要归结为:根据需求集成硬件平台,移植操作系统,编写驱动,建立文件系统,开发应用程序等等。当嵌入式类的专业课以选修课的形式存在时,经常面对没有电子技术基础的计算机专业学生,他们对逻辑分析和程序设计较为擅长,而对计算机系统的电子电路结构知之甚少,为此本文研究了一套基于ARM9的软件实验平台,通过该平台将硬件、OS移植、驱动程序等环节包裹起来,使学生站在嵌入式操作系统的之上发挥所长,专门从事嵌入式应用程序设计。
一、总体设计
(一)硬件平台简述
硬件平台以ARM9内核的S3C2440为核心搭建,配以相应的RAM、FLASH、电源、时钟和其它外设组成。
(二)软件平台构建
操作系统选用开源的LINUX,交叉编译器选择ADS1.2,BOOTLOADER采用U-BOOT。首先通过图1看一下基于LINUX构建嵌入式软件平台的基本框架。如图所示OS(操作系统)将硬件封装屏蔽,开发人员只需跟API和C语言库打交道即可,从而实现前述的绕开系统硬件环节,发挥学生的长处专注于应用程序设计的目的。
下面以整个软硬件系统启动的过程为顺序阐述主要环节
图1 软件平台框架
的工作过程和原理。一般而言嵌入式系统启动过程中涉及到的主要模块按先后顺序为:BOOTLOADER、初始化内核、启动init进程、运行脚本、GUI界面。下面逐一简要介绍。BOOTLOADER类似于PC上面的BIOS,其主要任务是系统初始化和自举,在开机之前硬件平台中的各个器件是分立的、各自为政的,启动的第一项任务则是将这些设备进行初始化配置相互握手连成整体,从而组成有机的系统。对于基于ARM9的硬件平台来说BOOTLOADER主要完成的任务包括:初始化CPU、初始化RAM、初始化闪存、初始化时钟电路、内存地址映射等。初始化内核的主要任务是依据嵌入式微控制器体系结构进行检测,检测通过后启动与体系结构各模块相应的子系统。在启动init进程之前还需要加载文件系统,之后就可以运行系统的第一个进程-init,需要说明的是init是运行在用户模式下的,在ARM内核的体系结构中包含7中常见的工作模式,主要有用户模式、系统模式、管理模式、IRQ模式、FIQ模式、中止模式和自定义模式。不同的模式有各自的影子寄存器组,在完成进程切换及中断响应时可以省掉堆栈操作的访存开销,从而提高系统的实时性。用户模式属于非特权模式,该模式下的进程操作是受限的。要保证Init进程成功启动需要将其对应的可执行文件在内核代码移植过程中预定位。Init进程启动后根据预定义参数配置启动脚本,并开启shell。一般情况下在系统默认的控制台里面开启shell即可。完成环境变量配置加载指定文件之后进入到GUI界面,启动过程完成。值得一提的是上述启动过程中各模块启动有严格的顺序,后续模块的启动对前序模块有强依赖性,另外系统启动成功之后内核是工作在处理器的用户模式下,其具体体系结构内容本文不再赘述。
二、关键技术
(一)移植BOOTLOADER
BOOTLOADER与系统硬件是强相关的,也就是说对硬件的体系结构没有准确的把握的话是无法完成移植的。又由于嵌入式系统硬件具有定制和可裁剪的特性,导致不同应用场合中的硬件体系结构都是不同的,也就是说这是一种面向应用的专用计算机系统,因此目前也就暂时不存在通用的BOOTLOADER。常用的BOOTLOADER有很多本文不再赘述,文中采用的是universal BOOTLOADER以下简称UBOOT,UBOOT是开源的并且有着很强的技术支持,具体包括开发文档、很多设备驱动的源码、丰富的网络功能等。移植BOOTLOADER的具体工作是在上位机编制源码,并通过交叉编译环境下载到开发板,本文选用的是JTAG接口来完成这一工作。
(二)交叉编译环境构建
典型的交叉编译环境中至少要包括调试主机、协议转化器和调试目标。本文采用ARM公司定义的标准20针JTAG仿真调试接口,该接口主要的职责相当于一名翻译,负责将调试主机中编制的程序解释成调试目标可执行的二进制代码。调试目标的硬件核心是微处理器
您可能关注的文档
最近下载
- 七年级下学期体育与健康教案全集(54课时).doc VIP
- 2025年绿色矿山建设技术挑战与机遇报告.docx
- 住房公积金贷款全权代理委托书范本.docx VIP
- 2024-2025学年人美版(2024)美术小学一年级上册教学设计(附教材目录).docx VIP
- 【北师大版】二年级《劳动实践指导手册》第1课《清洗我的小水杯》课件.pptx VIP
- 高中通用技术作品实验报告.doc VIP
- 急性有机磷农药中毒诊治.ppt VIP
- JB_T 7334-2016 手拉葫芦.pdf VIP
- 燃气管道施工方案.doc VIP
- DB15T 3962.3-2025绿色矿山建设规范 第3部分:黄金行业.pdf VIP
文档评论(0)