基于Arm-μClinux应用开发的简介_第1页
基于Arm-μClinux应用开发的简介_第2页
基于Arm-μClinux应用开发的简介_第3页
基于Arm-μClinux应用开发的简介_第4页
基于Arm-μClinux应用开发的简介_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于ArmClinux应用开发的简介        摘  要:Clinux作为嵌入式系统的优势在于:开源,免费,稳定及强大的网络功能!与标准LINUX的主要区别在于不支持MMU及文件系统的不同!自己组建ARMClinux软件开发平台的过程:下载编译工具(armelftools)并安装,下载内核源码(uClinuxSamsung20020318tar),解压,根据需要裁减功能模块,编译,最终生成BIN文件!举例说明了添加设备驱动的过程,主要为通过registerchrdev()函数注册设备,利用fileop

2、erations数据结构实现open()、read()等设备操作功能!举例说明添加应用程序的过程! 关键词:嵌入式;Clinux;ARM 近年来随着信息家电和手持设备的应用,嵌入式系统得到了极大的发展。全球每年生产的CPU中有超过80是应用于专用性很强的各类嵌入式系统,而最初,这类CPU仅进行一些简单的控制,系统大多在超级循环加中断的方式下工作,而随着32位高性能专用CPU的出现(如ARM),嵌入式系统能够适应复杂的控制,进行多任务的处理,极大的提升了效率。当然这一切还需嵌入式操作系统的支持。嵌入式Linux以其特有的魅力在市场中逐渐赢得了众多用户的青睐,本文即介绍了Clinux的开发环境的组

3、建流程,及应用程序和驱动程序的开发过程。1ARMClinux的简介2开发平台的建立建立Clinux的开发环境不外乎两种情况:一是购买商家发行的套件;二是利用网上资源自己组建。而后者省钱且能学到更多东西,是许多爱好者或学生的首选,下面列出自己组建步骤,以供参考:    1)首先安装reahat90,具体见其他相关资料;2)在macosnctuedutw网站(台湾交大的一个专门针对sumsung4510芯片的Clinux网站)上下载源码,ClinuxSamsung20020318tar和armelftools20030314sh;3)然后解压文件:在redhat的终端

4、中切换到源码目录下执行以下命令:sh armelftools20030314sh即安装ARMGCC工具tar xzfClinuxSamsung20020318targz即解压源码4)编译内核:进到解开的Clinux目录中,依次执行以下命令:make menuconfig在出现的对话框选中Samsung4510B和uClibc及其它所需选项    makedep    makeclean    makelibonly    makeuseronly  

5、60; makeromfsmakeimage在这步会出现错误报告,可忽略继续下面的命令make最后在images目录下可看到二进制的内核文件,即imageram和imagerom,前者是未经压缩的RAM版本内核,后者相反。把imagerom烧录到flash中,重新上电,在串口1中即可看到启动信息,串口的波特率为19 200。这样ArmClinux的开发环境就搭建成功。3Clinux的应用开发:在实际项目开发中,对Clinux的应用开发集中在两个方面,即驱动程序和用户程序的编写。Clinux的驱动程序库不可能包括实际项目系统中所有外围硬件的驱动,所以在应用开发中,编写驱动程序是一个重要步骤,驱动

6、程序设计的好坏直接影响系统运行的稳定性和运行效率。而嵌入式操作系统的卓越功能最终是由应用程序体现出来的,所以应用程序的优劣是影响嵌入式产品的重要因素,稳定高效的应用程序取决于开发人员对Clinux系统的熟悉程度和自身的编程经验。下面对这两个方面作个简介:A驱动程序的编写:设备驱动程序是内核和机器硬件之间的接口。根据不同的设备驱动程序分为两类:字符设备和块设备;前者是直接读取数据,即IO接口的请求直接被送到设备上;而后者的数据是通过内核缓冲区进行传输的!linux驱动程序的编译有两种方式:即静态编译进内核,和编译成模块供动态加载或卸载!由于Clinux不支持动态加载或卸载,故只能采取静态编译的方

7、式!因为涉及到对硬件的操作而容易使系统崩溃,所以编写设备驱动程序时除了强调高效,同时还要求安全!一个典型的驱动程序,大体上可以分为以下两个方面:1)注册设备:在系统初启时,必须将设备登记到相应的设备数组,例如:对于字符驱动设备来说,要使用registerchrdev()来注册设备的驱动号,然后对这个设备的所有调用都用这个设备号来实现;2)定义功能函数:对于每一个驱动函数来说,都有一些和此设备密切相关的功能函数,就最常用的字符设备来说,都存在着诸如open()、read()、write()、ioctrol()这一类的操作。当系统调用这些操作时,将自动的使用fileoperations结构中对应的

8、函数来实现具体的操作;在编写驱动程序前,不得不提fileoperations这个结构,每个设备都有自己的fileoperations结构,它定义了设备的基本入口点,即上面提到的功能函数。下面以一个简单的演示例子,说明编写字符设备驱动程序的具体过程,设备取名为“test”,设备号定为254,当然这个设备并没有涉及真正的硬件,仅是从内核空间拷贝了一些特定数据到用户空间:第一步:在目录linux24driveschar编写源程序testc,源码如下:头文件和全局变量:4)修改vendorSamsung4510bMakefile,建立设备节点:在1235行间,DEVICE部分添加如下内容test,c,

9、254,05)make menuconfig,在character device选中testdevice这样在重新编译的内核中,就包含了名为“test”的设备驱动,下面的例子是用于验证这个设备驱动程序的,至于怎样运行这个验证程序将在下面“应用程序的编写”一节中讲解:    B应用程序的编写在CLinux的user目录下提供许多资源供开发者参考。下面以上节提到的源程序为例,说明在CLinux中加入自己应用程序的过程。第一步:首先在user目录下建立自己的文件夹如,取名apptest,然后在新建文件夹(apptest)下编辑自己的应用程序apptestc(源码为上面的

10、设备驱动验证程序),然后参照user目录下其他应用程序编写自己的makefile,同样保存在文件apptest下;第二步:在userMakefile中适当位置加入下行语句:dir(CONFIGUSERAPPTESTAPPTEST)apptest第三步:在configConfigurehelp的适当位置添加以下语句:CONFIGUSERAPPTESTAPPTESTThis programdoes APPTESTthingsto your bars第四步:在configconfigin的适当位置添加以下语句:boolapptestCONFIGUSERAPPTESTAPPTEST最后再重新编译内核,在make menuconfig时,选中自己的应用程序,完成后在bin目录可以看见apptest的可执行文件,通过控制台直接输入该文件名即可运行该程序!当然也可以在文件vendorSamsung4510Brc中添加文件名apptest,重新编译,在uclinux启动后自动执行该应用程序!4结束语嵌入式系统已逐渐成为后PC时代的主导,而嵌入式操作系统Clinux凭其出色的性能和广泛的技术支持应该有更广阔的应用前景。本文举例说明了Clinux的开发应用的过程,可作为入门指导。参考文献1Alessandro Rubini和Jonathan

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论