对于嵌入式开发的流程显然是很简单的,而且上面是有好多小东西须要你注意的,这也是如此多年的经验,让我们先来看具体流程:
一、建立开发环境,首先你必需要会安装配置嵌入式linux开发环境,这个是基本
操作系统其实是LInux,或则在win系统下安装虚拟机,通过网路下载相应的GCC交叉编译器进行安装linux嵌入式开发,或则安装产品厂家提供的交叉编译器。
这一步,就相当于在win系统下,要安装一个IDE开发环境,如MDK,IAR等。在这一点上,我经常会由于这出现一些问题,就由于配置没配好,造成下边的步骤无法进行,报错,要谨记这儿须要你仔细点。
二、配置开发主机
主要是配置minicom,也就是并口助手,minicom软件是作为调试嵌入式开发板信息输出的监视器和按键输入工具,是一个十分便捷的工具,我们开发其他嵌入式程序时,虽然好多时侯也采用并口调试,所以最终原理都是相通的。
1、嵌入式linux开发流程
配置网路,主要是配置NFS网路文件系统,这个主要是用于下载程序,其实不配置也可以,有好多别的办法。
三、建立引导装在程序的bootloader
常用的bootloader主要有u-boot、vivi等,据说主流的就是u-boot,这个按照自己具体的芯片进行移植更改。有些芯片是没有外置引导加载程序的,这就须要编撰开发板上的Flash的多些程序,其实也可以用windows下的通过JTAG串口和仿真器多些Flash芯片程序,也有linux下的公开源代码的J-Flash程序,在自己做的时侯,可以预留多重方法,这样是有用的。
简单的讲,虽然就是要做好一个属于自己板子的u-boot,完成初始化,内核引导,下载、烧写等。虽然在这一点上,也会是个难点,这儿须要把握的东西多,这一流程的烧录,内核引导,网路上有免费下载的Windows下通过JTAG串口简易仿真器烧录ARM外围Flash芯片的烧录程序,也有Linux下的公开源代码的J-Flash程序。若果不能烧录自己的开发板,就须要依照自己的具体电路进行源代码更改。这是系统正常运行的第一步。假如订购了厂家的仿真器其实比较容易烧录Flash,这对于须要迅速开发自己产品的人来说可以极大地提升开发速率,并且其中的核心技术是难以了解的。
1、嵌入式linux开发流程
假如有专门针对你使用的CPU的Linux再好不过,例如uCLinux、ARM-Linux、PPC-Linux等linux压缩命令,假如没有,就要尝试移植专属自己的linux了,之后再添加自己特定硬件的驱动程序linux嵌入式开发,进行调试更改,对于带MMU的CPU可以使用模块形式调试驱动,而对于uCLinux这样的系统则须要编译进内核,与内核为一体,再进行调试。最好的就是下载他人早已移植好的Linux操作系统来弄,这样会高效
2、接出来就是根文件系统了
后面的文章述说过,没有根文件系统的Linux是难以正常工作的,还须要根文件系统。所以须要下载使用busybox软件来实现制做根文件系统。
再依照自己的应用须要来添加其他程序,默认的启动脚本通常都不会符合应用的需求(由于所有的嵌入式开发都是自由订制的),所以就要更改根文件系统中的启动脚本,它的储存位置至于/etc目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,手动挂载文件系统的配置文件/etc/fstab,虽然就是订制自己要开机启动的程序,具体情况会随着系统的不同而不同,根文件系统在嵌入式系统中通常设为只读,须要使用mkcramfs、genromfs等工具形成多些映像文件。记得这一步要看好,别为了省时间弄错。
弄好里面这么接出来就简单了就是构建应用程序的Flashc盘分区
通常会使用jffs2或则YAFF文件系统,这须要在内核中提供这种文件系统的驱动,有的系统使用NORFLASH,有的系统使用NANDFLASH,也有的系统两种flash都使用,待会儿就看具体情况了。
3、开发应用程序
应用程序可以放在根文件系统中,也可以放在yaffs、jffs2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,就是类似于uCOS-II的形式。
虽然,里面的这些步骤也就是为了这一步,在这儿你要注意他有三种呈现形式:
(1)直接讲应用程序和内核设计在一起,类似与uCOS-II的形式
(2)基于qt等GUI开发应用程序
(3)没有屏幕,只有简单的人机插口,例如并口,键盘,数码管,这些也能实现复杂功能开发
现今就是对烧录内核、根文件系统、应用程序的加载了(虽然差不多也就完了)
无论如何加载linux 命令,模块也好,所有的这种开发,过程资料,都是要烧讲到flash中的,之后应用程序须要哪些,就加载对应的功能程序即可。
4、发布产品
开发一款中高型的控制器设备,功能比较复杂,甚至须要复杂的屏幕交互,例如手机(安卓是linux的亲弟弟,OS是linux的亲妹妹),提款机,服务器交易系统,这么linux就十分合适了。
开发一款大型控制器设备,假如功能不太复杂,可以使用稍为中级的CPU,裸机或则ucos等来开发,也很便捷,也能做好多订制版的工业大型控制器。