嵌入式Linux的开发过程是怎样的一个流程

在一个嵌入式系统中使用linux开发,根据应用需求的不同有不同的配置开发方法,但是一般都要经过如下的过程。
工具/原料
电脑 开发板 网线 串口线
linux系统
方法/步骤
1.建立开发环境
操作系统当然是linux,或者在win系统下装虚拟机也可以,选择定制安装或全部安装,通过网络下载相应的gcc交叉编译器进行安装,或者安装产品厂家提供的交叉编译器。
2.配置开发主机
配置minicom,一般的参数为波特率为115 200bps,数据位为8位,停止位为1,无奇偶校验,软件硬件流控设为无。在windows下的超级终端的配置也是这样的。minicom软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。配置网络,主要是配置nfs网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。
3.建立引导装载程序bootloader
从网络上下载一些公开源代码的bootloader,如u-boot、blob、vivi、lilo、arm-boot、red-boot等,根据自己具体的芯片进行移植修改。有些芯片没有内置引导装载程序,这样就需要编写开发板上flash的烧写程序,网络上有免费下载的windows下通过jtag并口简易仿真器烧写arm外围flash芯片的烧写程序,也有linux下的公开源代码的j-flash程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是系统正常运行的第一步。如果购买了厂家的仿真器当然比较容易烧写flash,这对于需要迅速开发自己产品的人来说可以极大地提高开发速度,但是其中的核心技术是无法了解的。
4.下载别人已经移植好的linux操作系统
如μclinux、arm-linux、ppc-linux等,如果有专门针对所使用的cpu移植好的linux操作系统那是再好不过的,下载后再添加自己的特定硬件的驱动程序,进行调试修改,对于带mmu的cpu可以使用模块方式调试驱动,对于μclinux这样的系统则需编译进内核进行调试。
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型)8~512mb,有的两个同时使用,需要根据应用规划flash的分区方案。
7.开发应用程序
应用程序可以放入根文件系统中,也可以放入yaffs、jffs2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,这有点类似于μcos-ii的方式。
8.烧写内核、根文件系统、应用程序。。.
作为现代操作系统的代表之一,linux操作系统非常复杂,内部有多得令人眼花缭乱的各种组件在同步运行和相互通信。
来源:朗锐智科

中国电信利用智算能力构建2+4+31+X+O的云计算力布局体系
转型升级在即,看泛瑞如何发力风光储
上海地铁牵手阿里云_人工智能+地铁
4G DTU之4G通信模块的分析,它的主要作用是什么
什么是PCB或印制电路板
嵌入式Linux的开发过程是怎样的一个流程
光缆线路大衰耗点产生的原因及处理方法路与线路维护
便宜好用的固态硬盘:推荐aigo固态硬盘P2000
如何通过锂电池来提升数据中心的电源效率
赛富乐斯推出T2系列全彩微显示屏
魅族16th手感怎么样
门禁系统包含哪些
如何快速组态拓扑结构?
智融SW1106 65W氮化镓模块快充方案评测分析
使用TensorFlow Lite开发基于TPU的AI解决方案
单片机开发中UART、I2C等知识总结
锂电池如何选购,锂电池的选购技巧介绍
5G改变社会即将会成为现实
三星GALAXY Z FOLD 2是最耐用的智能手机之一
IBM 和Red Hat 又合作了 旨在加速石油和天然气行业的数字化转型