作者:张剑、杨渭关键词:Metrowerks、PCS、EmbedLinux摘要:本文介绍了一个用Metrowerks公司的Linux集成开发环境PCS(PlatformCreationSuite)为某一款PC104板订制实时嵌入式Linux操作系统的过程引言:如今许多人都在研究Linux在各方面的应用,在嵌入式系统方面的应用更是火爆,Metrowerks公司集成了原Lineo的嵌入式Linux、CodeWarrior集成开发环境等诸多优秀产品,推出了Linux集成开发环境PCS,运用这一集成环境和Metrowerks的各类BSP(板级支持包)我们很容易为我们自己的系统建立嵌入式Linux环境,包括在X86、PPC、ARM、CODEFIRE等多种体系结构的CPU上。我们在某款PC104板上用Metrowerks的PCS系统实现实时嵌入式Linux的过程:1、这款PC104板是国外很有影响的工控机厂家生产的,运行GX1-300的586CPU,64M板载显存、RTL8139-10/100M网卡、板载CF卡做启动盘。2、主机环境ACER电脑笔记本一台,操作系统Win2000+Redhat7.3,x-windows是gnome,PCS的安装过程很简单,只是在x-windows的console下输入安装命令,等一会儿,就安装好了,重新启动机器,还是在x-windows的console输入tw回车嵌入式linux在车载导航系统中的应用,PCS界面就启动上去了,就报告没有License,根据文档说明向给相关的人发email,人家就给了一个15天的license,把两个License文件复制到/opt/Embedix/emb-bin/后再启动就步入了真正的界面。
3、注意,系统安装时用的是root用户,但在使用PCS系统时最好不用root用户而是另外建一个用户嵌入式linux在车载导航系统中的应用,PCS系统还是提示你给新建的用户分配使用PCS的权限及此用户之后的项目文件等都置于那个目录下。4、保证硬碟有1G的空间,新建一个工程,就使用X86的BSP,设置工程名称和所在目录,之后就步入了一个配置系统的界面。5、系统配置大体上分为两部份,一部份是kernel一部份是system,在kernel部份中的选项基本上和配置linux内核时makemenuconfig的内容是一样的,而且操作更便捷,不要以为这只是一个界面的改变,真正的意义在于这个kernel的配置是和system相关的,有手动依赖性检测,给出依赖性建议而且很便捷的更改成建议的方法,由于系统在以图标和文字不停的提示你,所以在配置kernel时能够晓得编译之后的内核是否还能正常工作,有过在makemenuconfig下配置kernel失败的人就更能感受其中的做用,而对makemenuconfig倍感有些沮丧的人在这儿可能觉的脑子更清醒。6、在PCS中配置kernel比原先简单了好多,但还是须要对kernel有一定的了解,接出来是Administration选项,假如必要可以把pciutil选上,通常这个Administration选项就不要了吧,7、然后是X11,提供的是Microwindows(Nano-X),假如你不须要x-windows图型环境,这一项也不选了,由于不仅PDA之外,我们的系统大都是默默无闻的工作。
下一项是Communication,包含了ppp之类的东东,暂时也用不上。8、再接出来PCS提供了Real-Time选项,选中这相选项,系统就具有实时性了,很简单吧,其实具体的表现还跟你的应用程序有关系。9、在Programming中,主要有startkgdb、gdbserver这两项对于调试是很有用的,还有Metrotrk自己的调试工作,装上可以和PCS系统互动调试。10、在SERVER一项中包括了dhcpd、wu-ftpd、nfs-server、thttpd、boa这几项用过Linux的都晓得是做哪些用的了吧,按照自己的须要选择。11、TextProcessing中,我把nano、elvis-tiny都除去了,只留下ae,虽然要在系统足够小的情况下照料个别人的编辑习惯吗,再说还有busybox中自带的vi呢。12、在System选项中加上Lilolinux查看磁盘空间,在File-System中加上ext2,Library中不用自己加了,按照系统依赖性检测而必须要求的库都加上就行了。13、其他的几个选项也不用改了,系统自己默认的基本就可以了,哪些tinylogin、busybox、ash、都在上面了。
14、好,检测一下配置的有没有问题,假若没有问题相应项目的图标是红色的,假如哪项有问题,那一项的图标就不全是红色的,检测有问题的项目并依据系统提示做相应的更改直至配置完全正确,之后点一下Build菜单中的Build命令,假如你配置的没问题,等上十几分钟,一套完整的嵌入式Linux就构建下来了。15、下面的问题是如何把刚做下来的Linux系统实现到真正的应用环境中,PCS也提供了相应的工具,在Build菜单中点Deploy,就出现了发布界面,Welcome一页中显示了你所做的项目所在的目录,点Next显示出相应的kernel置于哪些地方了,之后Next把RebuildFileSystem等三项都选上,机器繁忙一会儿,出现一个BuildLog所列的项目就是目标系统中所有的项目了。16、点Next,选中RunningLipo系统繁忙一会儿,帮你找出什么lib是何必要的,PCS不会手动把这种lib文件从目标系统中删掉,除非你自己把它们删了,而且你最好检测确认这种lib文件确实是你不须要的,由于个别lib虽然系统不须要,你之后的应用程序可能也须要中标麒麟linux,假如你不想修改,直接点Next。17、按照你自己的情况先选择一种发布方法,假如你不清楚哪一个选项究境是做哪些用的,你可以随意把它们试一遍,很多选项都是让你制作安装软驱,由于我的电脑上没有光驱,所以我用MakeBootableInstallCD,系统提示选择安装的分区如hda1,这并不是要安装在你如今用的机器上,而只是生成安装配置文件用的。
之后MakeCDImage,就得到了一个bootcd.iso,这个iso文件的目录在Logwindow中有提示。18、这是一个可以引导的ISO文件可以直接用cd-record烧到光碟上,也可以复制到windows分区再用nero等软件烧光碟,建议使用cdrw由于并不保证一次能够把Linux弄成功。19、给目标机(PC104)上挂一个硬盘,用光碟引导就步入了安装界面,选是选择把Linux装到那个分区上,之后就是建ext2文件系统,安装Lilo,完毕后把系统设置成从硬碟启动,于是Linux就从CF卡上启动上去了,试试ls、pwd哈哈,都和PC的一样一样的。20、现在有了操作系统,下一步就是写应用程序了,PCS在这方面也早已做好了打算,在x-windows的console下输入cwide,于是CodeWarrior启动上去了,这是PCS提供的集成开发环境,不只是喜欢不喜欢在字符界面上写Makefile、运行make、使用gdb的问题,CodeWarrior给你带来的可不只这种。21、File->New->i386-linux->C_application,输入工程名,一个HelloWorld的框架就有了,点一下Run,就下来一个helloworld.点Debug就步入了图形高度界面,设置断点、单步跟踪、查看变量须要的都有了,双击hello.c就步入了编辑界面,支持函数跳转、编译、链接、怎么样功能还可以吧。
这还不是最便捷的,能够直接生成一个kernel的框架,在上面直接写driver,调试driver,与嵌入式目标机相连,直接在主机上调试程序,如同vxworks一样的,不是很便捷吗。22、Linux下的CodeWarrior集成环境和原先Windows下的并无太多区别,功能也很强悍,你们用过就晓得了。至此基本的嵌入式环境就构造好了,想更好的使用LINUX,PCS还提供了debian-linux的包转换工具,可以直接把debian的安装包转入PCS中来用。想在生成的Linux中降低自己的应用,PCS提供了包编辑器,可以把自己想要的???.tar.gz的包加进来,在PCS中一并配置编译。23、PCS的功能确实很强悍,在这儿只是做简略介绍,还有好多内容没有提及,有机会你们去试用就晓得了。