快捷搜索:  汽车  科技

嵌入式开发也是程序员吗?嵌入式程序员是难得的全栈型程序员

嵌入式开发也是程序员吗?嵌入式程序员是难得的全栈型程序员在嵌入式进修的过程中,嵌入式linux的进修是不可少的,能够说嵌入式linux是进修比较艰难的,会遇到林林种种的问题,那么嵌入式linux进修有一个重要的点就是嵌入式linux开发的流程,这是必需要知道的,之后我们就看看这方面的大牛总结的嵌入式linux开发流程及一些遇到的艰难,攻克方法。嵌入式linux开发流程文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///事实上嵌入式应用的比大多人认为的可能更广泛,像你用的鼠标,键盘,充电宝,U盘,键盘,各种LED灯板,电动车,汽车等内部都波及嵌入式的开发在里面,带电设备除了纯电气或者模拟IC搭建的,但凡波及数字IC的局部,都有嵌入

嵌入式程序员是难得的全栈型程序员。

从最底层的针脚定义,到存储器分配,地址空间分配,bootloader的编写和移植,OS的裁剪和移植,驱动程序编写,安装各种协议栈(类Unix都自己带了,大局部小型RTOS都不带)。上层应用的开发,UI的开发等等。一手包办。

此时互联网太火了,搞的大家都觉得做互联网产品的才是程序员。但是还有那么多专用软件程序员,工业代码程序员。

嵌入式开发也是程序员吗?嵌入式程序员是难得的全栈型程序员(1)

我早就想说了,不是独有写网站写app的才是程序员。

文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///

事实上嵌入式应用的比大多人认为的可能更广泛,像你用的鼠标,键盘,充电宝,U盘,键盘,各种LED灯板,电动车,汽车等内部都波及嵌入式的开发在里面,带电设备除了纯电气或者模拟IC搭建的,但凡波及数字IC的局部,都有嵌入式软件开发在里面,市场比你想象的大得多,但你感觉到嵌入式引领过潮流吗?由于这是一门应用工程技术,是把用户需求,各种协议/规范配合硬件转化成最后产品的工作,你说难不难呢,除了C/C ,Linux,makefile,芯片寄存器,各种总线接口开发/调试这些技术,依据需求,有时还要深层去了解协议内部的详细达到(如TCP/IP BLE)来攻克调试中的bug问题,这些都须要大量时长去进修掌握,有时为了自己能够独立测试,还要会一些上位机软件(像我就专门写过python/C#写过测试串口,网络客户端以及SSL功能的代码) 重要关键是波及这么多的技术的产品利润和销量还不一定高,嵌入式开发的薪资自然性价比不高。我也是机缘巧合入这行业的,在加上自己感兴趣,自己也准备做下去,不过已经在布局往产品技术经理方向开展,我是还算满意。

嵌入式开发也是程序员吗?嵌入式程序员是难得的全栈型程序员(2)

单纯嵌入式并不会波及前沿热门的技术,须要长时长不间断积攒的进修(我最佩服我曾经的部门经理,没论硬件,软件,市场,产品架构都十分擅长,然而都快40的他还经常去学新知识,我们遇到的问题他根本都能攻克),薪水在所有行业中等偏上,十分稳定,即便遇到公司倒闭,重新找工作没有任何压力(我之前离任更新下简历,面试邀请不断),假如认识到这些,还是觉得能够承受,那欢迎你也加入这个融入日常生活的行业,假如自身喜爱嵌入式,但追求高薪的话,我十分建议去做算法(特指图像/视频算法),把嵌入式作为应用平台来看待,可能会更适宜

嵌入式linux开发流程

在嵌入式进修的过程中,嵌入式linux的进修是不可少的,能够说嵌入式linux是进修比较艰难的,会遇到林林种种的问题,那么嵌入式linux进修有一个重要的点就是嵌入式linux开发的流程,这是必需要知道的,之后我们就看看这方面的大牛总结的嵌入式linux开发流程及一些遇到的艰难,攻克方法。

嵌入式开发也是程序员吗?嵌入式程序员是难得的全栈型程序员(3)

嵌入式开发流程其实很简略,但是里面是有很多小的东西须要你注意的,这也是我这么多年来的一些经历,先说嵌入式linux开发流程:

一 建设开发环境,首先你必需要会安装配置嵌入式linux开发环境,这个是根本

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

这一步,就相当于在win系统下,要安装一个IDE开发环境,如MDK,IAR等。在这一点上,我时常会由于这出现一些问题,就由于配置没配好,导致下面的步骤没法进行,报错,要切记这里须要你仔细点。

二 配置开发主机

主要是配置minicom,也就是串口助手,minicom软件是作为调试嵌入式开发板信息输出的监督器和键盘输写工具,是一个非常方便的工具,我们开发其他嵌入式程序时,其实很多时候也采用串口调试,所以最终原理都是相通的。

嵌入式开发也是程序员吗?嵌入式程序员是难得的全栈型程序员(4)

嵌入式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操作系统移植了

嵌入式linux开发流程

假如有专门针对你运用的CPU的Linux再好不过,假如uCLinux、ARM-Linux、PPC-Linux等,假如没有,就要尝试移植专属自己的linux了,其次再添加自己特定硬件的驱动程序,进行调试修改,对于带MMU的CPU能够运用模块方式调试驱动,而对于uCLinux这样的系统则须要编译进内核,与内核为一体,再进行调试。最好的就是下载他人已经移植好的Linux操作系统来弄,这样会高效

之后就是根文件系统了

前面的文章讲述过,没有根文件系统的Linux是没法正常工作的,还须要根文件系统。所以须要下载运用busybox软件来达到制作根文件系统。

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

弄好上面那么之后就简略了就是建设应用程序的Flash磁盘分区

一般会运用jffs2或者YAFF文件系统,这须要在内核中提供这些文件系统的驱动,有的系统运用NOR FLASH,有的系统运用NAND FLASH,也有的系统两种flash都运用,到时候就看详细情况了。

嵌入式开发也是程序员吗?嵌入式程序员是难得的全栈型程序员(5)

开发应用程序

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

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

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

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

(3)没有屏幕,独有简略的人机接口,假如串口,按键,数码管,这种也能达到复杂功能开发

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

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

嵌入式开发也是程序员吗?嵌入式程序员是难得的全栈型程序员(6)

四 发布产品

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

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

嵌入式linux开发流程差不多就是这样了,在进修时一步一步来,就不会出错,大牛说的这些都进修到了吗,掌握这些方法,嵌入式linux开发流程就不是事儿。

对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就像,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取

猜您喜欢: