应用c进行嵌入式Linux的研究
1.引言
嵌入式Linux是一种开放源码的真正32位的操作系统,并且可以进行裁减和优化,性能稳定,并且支持多任务和软实时,所以深受开发者的信赖。它支持从IntelX86到MotorolaPowerPC,ARM,CompaqAlpha等多种硬件平台,并且提供了丰富的软件资源,具有强大的网络支持功能,支持GUI开发,并且嵌入式Linux的开发技术资源丰富。如何管理各个应用在系统中无冲突安全地工作?如何把开发的系统快速的转化为可发布的产品?如何优化和管理嵌入式系统的开发过程,保证在有限的工期之内完成高质量的产品?使用平台创建套件(PCS)来开发嵌入式Linux应用可以很好地解决这些问题。
2.平台创建套件介绍
平台创建套件(PlatformCreationSuit)是由Metrowerks公司开发的一套专门用于进行嵌入式Linux应用的一套系统,它提供的主要功能有:配置操作系统,开发自己的应用,自动编译(Build),部署(Deploy),调试(Debug),检查许可文件,集成新的软件等等。
平台创建套件包含三个主要的组成部分:
目标向导工具(TargetWizardTools),用来管理,配置,扩展,生成和部署传统的开放源码的Linux软件元素,来全面的支持目标产品的需要。如图一。目标向导工具提供了扩展基本的Linux环境的功能,它允许集成千万种可下载的开放源代码和二进制应用,GNU工具集,新的Linux内核,或者用来提高内核功能的改进的设备支持,安全,实时性能,服务质量(QOS)和网络等部件。
CodeWarrior可视化开发环境,用来进行项目管理,创建和生成嵌入式Linux应用软件。CodeWarrior可视化开发环境是一个非常优秀的可视化开发工具,包括编辑环境,调试环境和项目管理功能,快速开发工具,等等。因为CodeWarrior可视化开发环境已被众多的嵌入式应用开发人员所熟悉,这里不再详细介绍。
板极支持包工具(BoardSupportPackage),包括用来创建,部署和调试操作系统,驱动程序,和针对目标硬件平台的应用所需要的所有元素,通常一个BSP中包括Linux内核,设备驱动程序,应用和服务,各种类库,GNU工具集(编译器,连接器,等等),部署向导等等。
图一:平台创建套件
这张图是PCS中最常用的模块:TargetWizard的界面。在TargetWizard中所有的部件都以树型结构显示,部件的图标表明它的状态,这样整个系统中各个部件及其状态都一目了然。开发者可以很方便的对部件进行裁减,只要通过简单菜单操作来打开(Enable)和关闭(Disable)就可以对系统中的部件进行配置。PCS会自动管理各个部件之间的依赖和冲突关系,这就避免了开发者在研究部件依赖关系和解决部件冲突的时候花费大量的时间。开发者在打开一个部件的时候,如果它所依赖的部件并没有打开,那么在状态窗口中会显示出这个部件的依赖信息,开发者可以根据这些信息逐一地解决。当有冲突的时候,在状态窗口中会显示出具体的冲突信息,开发者可以顺利地解决问题。在没有冲突检测的情况下,开发者可能意识不到冲突的存在,而直到运行的时候才发现冲突的存在,PCS在很大程度上避免了类似问题的发生。
TargetWizard同时与其它的功能模块紧密相连,PackageEditor是一个可视化的环境来导入新的驱动程序、应用和库文件,PCS同时也提供了手动方式来完成这些功能的方法;LinuxKernelImportTool可以用来导入新的Kernel;GNUToolchainImportTool可以用来导入新的toolchain;DebianBinaryImportTool允许开发者下载并导入多种公开发布的DebianGNU/Linux二进制应用程序;ExportBSPtool可以用来导出BSP,是生成BSP的工具;SkeletonDeploymentWizard是可以设置一些通用属性的部署工具;GDB(GNUDebugger)和DDD(DataDisplayDebugger)是目标镜像文件已经部署到目标板上的调试工具。
3.基于平台创建套件的嵌入式Linux应用的开发过程
进行嵌入式Linux的开发大致都采用以下的开发过程:
1.基于功能需求选择一个目标板(MCG,Force,PC104,PPC,等等)或者根据需求选择一个处理器(购买一个评估开发板)和外围芯片,定制目标板。
2.定制和配置操作系统。
3.开发定制的应用。
4.重新配置软件,进行部署。
5.维护软件。
使用平台创建套件(PCS)可以加速整个嵌入式系统的开发过程。下面介绍使用平台创建套件(PCS)进行嵌入式系统开发可以采用的详细的开发过程。
?评估硬件和软件
根据功能需求购买评估目标板或定制目标板,并准备开始进行自己的设计。
?安装PCS和BSP
现在最新的PCS版本是3.0,它可以运行在很多主流X86Linux平台上,其中包括RedHat9.0,RedHat8.0,SuSe8.2,SuSe8.1,Debian3.0。Metrowerks提供了很多种平台的参考BSP(BoardSupportPackage,板极支持包),包
- Thumb指令集之: ARM和Thumb的混合编程(08-30)
- 一次性将FPGA配置文件和软件代码写到EPCS flash中的教本(06-06)
- 基于IPC的SNAP I/O分布式控制系统的实现(12-21)
- PB-B-MODBUS在西门子PCS7项目上的应用(12-16)
- ARM,DSP,FPGA,CPLD,SOPC,SOC之间有什么区别和联系(11-21)
- ATPCS ARM体系中汇编语言和c语言之间参数传递规则(11-10)