要做嵌入式系统定制 这几个开发流程要知道

简介:

为什么要做嵌入式系统定制

许多嵌入式项目都使用现成的发行版,然后出于种种原因,再将它们剥离到只剩下基本的必需的东西。首先,移除不需要的包以减少占用的存储空间。在启动时,嵌入式系统一般不需要大量的存储空间以及可用存储空间。在嵌入式系统运行时,可能从非易失性内存中拷贝大量的操作系统文件到内存中。第二,移除用不到的包可以降低可能的攻击面。如果你不需要它们就没有必要把这些可能有漏洞的包挂在上面。最后,移除用不到包可以降低发行版管理的开销。如果在包之间有依赖关系,意味着任何一个包请求从上游更新,那么它们都必须保持同步。那样可能就会出现验证噩梦。

下面嵌入式开发服务商朗锐智科(www.lrist.com)小编带你一起来了解嵌入式系统开发流程!

1.建立开发环境,操作系统一般使用Redhat Linux,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(比如,arm-1inux-gcc、arm-uclibc-gcc),或者安装产品厂家提供的相关交叉编译器;

2配置开发主机,配置MINICOM,一般的参数为波特率115200 Baud/s,数据位8位,停止位为1,9,无奇偶校验,软件硬件流控设为无。在Windows下的超级终端的配置也是这样。MINICOM软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。配置网络主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。3建立引导装载程序BOOTLOADER,从网络上下载一些公开源代码的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据具体芯片进行移植修改。有些芯片没有内置引导装载程序,比如,三星的ARV17、ARM9系列芯片,这样就需要编写开发板上FLASH的烧写程序,可以在网上下载相应的烧写程序,也有Linux下的公开源代码的J-FLASH程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是让系统可以正常运行的第一步。如果用户购买了厂家的仿真器比较容易烧写FLASH,虽然无法了解其中的核心技术,但对于需要迅速开发自己的应用的人来说可以极大提高开发速度。

4下载已经移植好的Linux操作系统,如MCLiunx、ARM-Linux、PPC-Linux等,如果有专门针对所使用的CPU移植好的Linux操作系统那是再好不过,下载后再添加特定硬件的驱动程序,然后进行调试修改,对于带MMU的CPU可以使用模块方式调试驱动,而对于MCLiunx这样的系统只能编译内核进行调试。

5建立根文件系统,可以下载使用BUSYBOX软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他的程序。由于默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs genromfs等工具产生烧写映像文件。

6建立应用程序的FLASH磁盘分区,一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性FLASH(NOR型)512KB~32MB,有的系统使用非线性FLASH(NAND型)8MB~512MB,有的两个同时使用,需要根据应用规划FLASH的分区方案。

7开发应用程序,可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,这有点类似于μC/OS-II的方式。

8烧写内核、根文件系统和应用程序,发布产品。

嵌入式系统开发商正日益寻求通过增加更多的特性,来使产品有别于竞争产品的方法。

相关文章
|
7月前
|
Java 测试技术 网络安全
一个软件完整的开发流程介绍
一个软件完整的开发流程介绍
120 0
|
2月前
|
小程序 前端开发 JavaScript
小程序的详细开发流程是什么?
【10月更文挑战第16天】小程序的详细开发流程是什么?
82 0
|
5月前
|
监控
用LabVIEW进行CAN通信开发流程
用LabVIEW进行CAN通信开发流程
256 0
|
7月前
|
Shell 调度 Android开发
一款提高嵌入式代码质量的工具
一款提高嵌入式代码质量的工具
82 0
|
7月前
|
小程序 前端开发 JavaScript
小程序的完整开发流程?
小程序的完整开发流程?
|
存储 数据采集 监控
|
供应链 Linux Android开发
嵌入式到底应该选择驱动开发,还是应用开发?
很多初入职场的小伙伴都会纠结于是选择驱动开发,还是应用开发。今天我们就来聊聊,希望能给初入职场的你带来一点点的帮助。这里所说的主要是带操作系统(Linux或Android)的开发,因为像单片机,我们比较少区分驱动开发和应用开发。
|
算法 编译器 测试技术
第二章 FPGA开发流程
第二章 FPGA开发流程
228 0
第二章 FPGA开发流程
|
Unix Linux 程序员
嵌入式系统软件架构
嵌入式系统软件架构
964 0