嵌入式linux及物联网开发 嵌入式linux应用开发教程_嵌入式linux


可以说嵌入式linux是学习比较困难的,会遇到各种各样的题目,那么嵌入式linux学习有一个紧张的点就是嵌入式linux开发的流程,这是必须要晓得的,接上去我们就看看这方面的大牛总结的嵌入式linux开发流程及一些遇到的困难,解决方法。


嵌入式linux及物联网开发 嵌入式linux应用开发教程_开发流程_02


嵌入式开发流程着实很简单,但是内里是有许多小的工具必要你注意的,这也是我这么多年来的一些经验,先说嵌入式linux开发流程:

一、创建开发情况,起首你必须要会安装配置嵌入式linux开发情况,这个是根本

(2)基于qt等GUI开发应用程序

可以说嵌入式linux是学习比较困难的,会遇到各种各样的题目,那么嵌入式linux学习有一个紧张的点就是嵌入式linux开发的流程,这是必须要晓得的,接上去我们就看看这方面的大牛总结的嵌入式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,这对于必要敏捷开发本身产品的人来说可以极大地进步开发速率,但是此中的焦点技能是无法了解的。

再来就是嵌入式Linux操作体系移植了

1、嵌入式linux开发流程

要是有专门针对你使用的CPU的Linux再好不外,比如uCLinux、ARM-Linux、PPC-Linux等,要是没有,就要实验移植专属本身的linux了,然后再添加本身特定硬件的驱动程序,进行调试修改,对于带MMU的CPU可以使用模块方式调试驱动,而对于uCLinux如许的体系则必要编译进内核,与内核为一体,再进行调试。最好的就是下载别人曾经移植好的Linux操作体系来弄,如许会高效

2、接上去就是根文件体系了

前面的文章讲述过,没有根文件体系的Linux是无法正常事情的,还必要根文件体系。以是必要下载使用busybox软件来完成制作根文件体系。

再根据本身的应用必要来添加其他程序,默认的启动脚本一样平常都不会符合应用的需求(由于所有的嵌入式开发都是自由定制的),以是就要修改根文件体系中的启动脚本,它的存放地位至于/etc目录下,包罗:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自动挂载文件体系的配置文件/etc/fstab,着实就是定制本身要开机启动的程序,具体情况会随着体系的不同而不同,根文件体系在嵌入式体系中一样平常设为只读,必要使用mkcramfs、genromfs等工具孕育发生少些映像文件。记得这一步要看好,别为了省时间写错。

弄好上面那么接上去就简单了就是创建应用程序的Flash磁盘分区

一样平常会使用jffs2或者YAFF文件体系,这必要在内核中提供这些文件体系的驱动,有的体系使用NOR FLASH,有的体系使用NAND FLASH,也有的体系两种flash都使用,到时候就看具体情况了。

3、开发应用程序

操作体系固然是LInux,或者在win体系下安装假造机,通过网络下载相应的GCC交叉编译器进行安装,或者安装产品厂家提供的交叉编译器。

着实,上面的那些步调也就是为了这一步,在这里你要注意他有三种呈现方式:

(1)间接讲应用程序和内核设计在一同,类似与uCOS-II的方式

应用程序可以放到根文件体系中,也可以放到yaffs、jffs2文件体系中,有的应用不使用根文件体系,间接将应用程序和内核设计在一同,就是类似于uCOS-II的方式。

(3)没有屏幕,只要简单的人机接口,比如串口,按键,数码管,这种也能完成庞大功效开发

如今就是对烧写内核、根文件体系、应用程序的加载了(着实差未几也就完了)

无论怎样加载,模块也好,所有的这些开发,历程资料,都是要烧写到flash中的,然后应用程序必要什么,就加载对应的功效程序即可。

4、发布产品

开发一款中高型的控制器设置装备摆设,功效比较庞大,乃至必要庞大的屏幕交互,比如手机(安卓是linux的亲儿子,OS是linux的亲表弟),取款机,服务器生意业务体系,那么linux就十分符合了。

开发一款小型控制器设置装备摆设,要是功效不太庞大,可以使用轻微初级的CPU,裸机或者ucos等来开发,也很方便,也能做许多定制版的产业小型控制器。

嵌入式linux开发流程差未几就是如许了,在学习时一步一步来,就不会出错,大牛说的这些都学习到了吗,掌握这些方法,嵌入式linux开发流程就不是事儿。