良许Linux教程网 Linux教程 linux嵌入式开发

linux嵌入式开发

对于嵌入式开发的流程其实是很简单的,但是里面是有很多小东西需要你注意的,这也是这么多年的经验,让我们先来看具体流程:

一、建立开发环境,首先你必须要会安装配置嵌入式linux开发环境,这个是基本

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

这一步,就相当于在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了,然后再添加自己特定硬件的驱动程序,进行调试修改,对于带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、开发应用程序

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

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

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

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

(3)没有屏幕,只有简单的人机接口,比如串口,按键,数码管,这种也能实现复杂功能开发

现在就是对烧写内核、根文件系统、应用程序的加载了(其实差不多也就完了)

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

4、发布产品

开发一款中高型的控制器设备,功能比较复杂,甚至需要复杂的屏幕交互,比如手机(安卓是linux的亲儿子,OS是linux的亲表弟),取款机,服务器交易系统,那么linux就非常合适了。

开发一款小型控制器设备,如果功能不太复杂,可以使用稍微高级的CPU,裸机或者ucos等来开发,也很方便,也能做很多定制版的工业小型控制器。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部