预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

万方数据 nux的嵌入式应用程序的开发基于UCli《电子技术》2007年第7、8期山东政法学院司法信息系(250014)杨瑞霞嵌入式系统与UCl.nu×件依赖性、应用专一陛等新特点。常见的嵌入式操作UCIinux的移植心linux操作系统一般都是先在安装Linux的计算机上am—elf.tooIs.200303摘要为了提高复杂嵌入式系统开发的效率,开发人员在嵌入式系统中使用“cIinux操作系统。对于许多开发人员,如何在嵌入式系统中使用“c“nux,并开发自己的应用程序,是一道难题。通过实验,总结了移植¨clinux以及开发“C1inux应用程序的方法和步骤。关键词嵌入式系统操作系统的移植启动代码嵌入式系统范幽非常广泛,从简甲.的译片机系统到卜频商达几百兆的使用操作系统的非计算机系统,都nJ.以称为嵌入式系统。随着各行、lk电子系统应用嘤求的提高,嵌入式系统也越来越复杂,硬件要求速度快、集成度高、外部接口多,软件则要求功能丰富、校块化、易于扩展。ARM能够很好满足复杂嵌入式系统的要求,因此ARM芯片成为当时嵌入式应用最重要的硬件、F台。嵌入式硬件平台性能的提高,使嵌入式操作系统的使用成为必然。基于ARM的嵌入式系统是当前最典犁的嵌入式系统。嵌入式系统框图如图l所示。系统的硬件主要部件足ARM7系列的S3c4480x处理器。当系统中需要使用各种各样的外凼设备时,歼发的难度相当大,使用操作系统町以提高开发的效率。因此,嵌入式操作系统是嵌入式系统极为重要的组成部分。它具有通用操作系统的基本特点,而又增加了实时高效性、硬系统有:Vxworks、uC/os—II、windows等。uclinux操作系统足一种性能优良、源码公开且被广泛应用的免费嵌入式操作系统,因此很多无MMu单元的嵌入式系统都使用uCIinux作为操作系统。“clinux足针埘控制领域的嵌入式Linux操作系2.0/2.4内核派牛咖柬,而又针对没有MMu的处理器进行设计,因此有着特别小的内核和用广‘软件空间,而且所有程序访问的地址都足实际的物理地址。操作系统对内存空问没有保护,各个进程实际上芪享一个运行空问。Hclinux足依赖十硬件系统的,与Pc£运行的Linux系统有较大的区别。【大I此在ARM系统中使用ucIinux时,需要对内核进行戡剪,再添加‘些需要的驱动程序,才能在不同的嵌入式硬件系统中运行。编译凋试,然后再下载到目标系统板上运行,这一过Bootloader的设计Bootloader就是在操作系统内核运行之前运行的一段程序。嵌入式系统的Bootloader程序烧录在系统地址的0x0处,即每次上电后先运行Bootloader,完成硬件系统的初始化、建立内存空间的映射图和“C1inux的引导工作。完整的Bootloader引导流程描述如图2所示。南上图可以看出,Bootloader的一{三要任务对时钟、中断、I/0等芯片资源进行初始化,为uclinux的运行做好准备。UCI.nux移植的方法2.2.I建立交叉编译环境首先从网上下载GNu开发软件包12.sh,然后到源石15日录下执行sham.elf-tools.20030312.sh,这样在PC体系结构的编译器、连接器、调试器,町以用来编译0S内核,制作文件系统等。在windows下安装ADS工具ADS是ARM公司推出的新一代ARM集成开发1统,它从Linux2程就是uClinux的移植。l:建市了ARMuclinuxCE、pClinux2.12.22.2.2 万方数据 Q蜜《电子技术》2007年第7、8期汇编语言阶段二EDA。饥bz2,romfs.img。其中,image.r栅和image.rom就是我们IJCIinu×应用程序的开发阶段一2.2.3编译心linuxmenucon地,对¨Clinux进行配置,订制自己的系统。us酬sample,用来存放应用程序源代码。编写应用程Bootloader主要任务流程工具。在硬件开发板完成后,可用ADS各硬件模块进行测试。把代码解压缩到工作目录下,运行tar它会把全部的文件解压缩到home/uclinux—dist的目录下。然后进入目录运行注意对于编译uClinux,不能简单地通过make来实现。为了编译最后得到的镜像文件,我们需要linux的内核以及romfs。对于我们的S3C4480X的移植来说,romfs是被编译到内核里面去的。因此,在编译内核前需要一个romfs。为了得到romfs的image,我们又需要编译用户的应用程序。而为了编译用户的应用程序,我们又需要编译C运行库,这里我们用的C运行库是uClibc。根据上面的分析,我们使用以下步骤编译LlClinux。d印:建立文件之间的依赖关系,make会根据这个依赖关系来确定哪些文件需要重新编译、哪些文件可以