近年来,随着移动互联网、物联网的迅猛发展,嵌入式系统应用技术日渐普及渗透到人们日常生活中,在通讯、网络、工控、医疗、电子等行业领域,嵌入式系统开发发挥这越来越重要的作用。
首先建立交叉开发环境
开发主机操作系统一般选用某个版本的linux系统,如RedHatlinux等。linux内核版本号能够依据项目的详细需求而定,如2.4内核或者2.6内核。选择定制安装或所有安装,是通过网络下载对应的gcc交叉编译器进行安装(比方arm-linux-gcc,arm-uclibc-gcc等),或者安装产品厂家提供的交叉编译器。
配置嵌入式系统开发主机
配置嵌入式系统开发主机是包含在开发主机上安装linux系统,配置交叉连接工具,如串口和网络接口。其配置网络主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。
建立引导装载程序bootloader
从网络上下载一些公开源码的bootloader,依据自己详细芯片进行移植改动。有些芯片没有内置引导装载程序,比如,三星的ARV17、ARM9系列芯片,这样就需要编写开发板上FLASH的烧写程序,可以在网上下载相应的烧写程序,也有Linux下的公开源代码的J-FLASH程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。
然后移植嵌入式linux操作系统
做的是嵌入式应用,那么这些应用要在一定的操作系统上(嵌入式操作系统)。相比较常使用的uclinux。arm-linux,ppc-linux等。最好的情况是,已经有针对所选择的cpu平台的嵌入式linux系统。下载后再加入自己的特定取得调试。
建立根文件系统
下载使用BusyBox软件进行功能裁剪,产生出基本的根文件系统,在依据自己的应用须要加入其它的程序。由于默认的启动脚本一般都不符合应用的须要,所以须要改动根文件系统的启动脚本。存放位置在/etc 文件夹下。而根文件系统在嵌入式系统中一般设为仅仅读,须要使用mkcramfs。genromfs等工具生成映像文件。可是有些嵌入式系统直接不使用根文件系统。
最后建立应用程序Flash磁盘分区
嵌入式系统不使用磁盘作为外存,一般使用Flash。一般使用JFFS2或者YAFFS文件系统,须要在内核中提供这些文件系统的驱动。
开发应用程序
应用程序能够和根文件系统放在一个分区,也能够存在其它YAFFS或者YFFS2等分区中。
部署与配置系统产品的测试
嵌入式应用程序开发结束后,须要烧写内核。在根文件系统的应用程序,进行产品的測试和公布上线。