找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

【大学生学编程系列】第十一章:如何学习嵌入式

admin 2019-11-18 13:29 116人围观 嵌入式相关

嵌入式已经在生活中无处不在,我们正在使用的手机,电视,机顶盒等等都是嵌入式的典型的代表,早在十年前嵌入式培训就非常流行,中兴华为等企业对于嵌入式研发工程师需求量巨大,最近十年在国内属于互联网如火如荼发展的阶段,大量的集成化高级编程语言在国内需求量剧增,像JAVA,PHP,Python此类的语言在国内得以快速发展,这是和互联网公司产品的性质决定的,互联网典型模式是拥有一个核心服务器,再开发对应的多种访问终端,有app方式的,有通过网址访问的,有通过微信或者小程序方式的。



嵌入式到底是什么方式存在,拿智能电视来讲,首先控制电视需要有一个系统,目前由于安卓系统已经比较成熟,而且生态系统已经非常完善,很多嵌入式产品都采用安卓模式,在安卓系统的框架里面已经设计了兼容很多消费电子类型的框架,可以支持手机模式,平板模式电视模式等等。现在的嵌入式产品基本上都会和智能挂钩,早期的嵌入式产品评判的标准是否支持操作系统,嵌入式操作系统一般都要经过裁剪,因为嵌入式产品硬件资源有限,所以就需要定制系统把不需要的功能给裁剪掉。

安卓系统算是高级类型嵌入式系统不仅仅是在Linux上而且还专门设计了一个框架系统,而且对Linux做了深度定制,可以称得上高级别的嵌入式系统了。



嵌入式系统除了Linux的还有wince系统都是嵌入式代表系统,和带操作系统相对应的是单片机,这种系统的开发功能已经简单了许多,从编程的角度出发基本功能是在一个循环里面做事情,涉及到异步开发就用中断方式,整体来讲开发的功能比较单一,适用于功能单一的电子产品,像扫地机,电磁炉这种产品,对于再复杂的功能再用单片机开发受限制就比较大,嵌入式开发相对比较精密,现在的电子产品联网已经是非常普遍的功能了没如果放在单片机开发工作量就会比较大,如果是嵌入式就是简单的网络编程了在网络上随处就可以拿到资料。

由于国内互联网如火如荼的发展,倒是显得嵌入式开发有点被冷落,到在实际应用领域前景还是非常巨大,典型像手机产品的开发,各种消费电子产品的研发,可以讲嵌入式开发在未来很长的一段时间内都不会过时,而且重要性还在加强,现在人工智能特别是智能机器人里面的部件很多都是嵌入式产品的组合,人工智能还会带动嵌入式开发进一步发展,前景还是非常广阔不要轻易被所谓的嵌入式开发过时的言论。



如何才能具备嵌入式开发的能力?


嵌入式开发分成两部分,一边是软件的开发,一边是硬件的开发。对于嵌入式硬件的开发需要懂数字电路和模拟电路,同时还要具备PCB板卡的设计能力,相对讲市场上对嵌入式软件开发的需求量更大,毕竟软件应用产品类别种类繁多,硬件的开发相对偏少主要集中在开发前期,一般设计一款嵌入式产品需要硬件先行,硬件把基本的运行环境搭建完毕,才是软件操作系统移植,驱动功能调试。

嵌入式软件开发需要掌握C语言和C++两种编程语言,特别是C语言很多嵌入式产品还是停留在C语言层面的开发上,早期的主要以C语言为主,随着硬件性能的提升C++也在大量的嵌入式产品中被使用,而且C++由于采用面向对象的设计开发,对于开发大型的嵌入式框架有着极大的好处,包括安卓系统也是大量使用这种编程语言来开发,毕竟在框架以及效率上都有不错的表现,现阶段的嵌入式开发这门编程语言已经成为必备技能。



除了掌握以上两种编程语言需要对数据结构也要熟练掌握,从编程角度衡量数据结构也是必备的,不仅仅是在嵌入式领域,数据结构就是设计简单数据模型的基础,数据结构在市场上也有很多版本存在,有C语言,C++,JAVA等等版本存在,对于标准程序员讲这是必备技能,当然作为嵌入式开发得程序员也是必备,很多人都明白算法也是程序员的基础,算法学习之前的基础就是数据结构。

在掌握两种编程语言和数据结构之后就要开始研究真正意义上的操作系统了,对于操作系统常见的功能和接口就要开始练习,Linux在嵌入式开发中占据非常重要的作用,学习之前先去了解基本的命令行,常见的命令行大致有十几个命令,现在Linux上面能够有基本的操作系统,然后就开始学习基本的操作系统接口,常见的接口有文件操作,网络编程接口,图形编程接口,常见驱动操作,进程和线程得操作等等,开始学习阶段以基本的理论为主,要掌握掌握需要经历实际的项目实战,对于大学生来讲实战的机会很少,主要以理论为主,到了真正在工作岗位上在理解概念的基础上进行深入实践学习。



无论任何编程行业的学习,真正掌握都需要在真正项目上磨练,嵌入式开发整体来讲入门比较容易,但对于基础的要求相对比较多要比单纯的进行互联网行业的开发要难,需要有一定底层的编程基础,了解操作系统属性,嵌入式开发最难的地方在于框架开发,需要对软件框架以及编程思想有一定程度的了解和掌握,也是一门越学越有意思的编程行业,再加上人工智能的全面发展融合起来就会更加有意思了。

推荐技术文章:

学习编程的最大障碍:对自己极其不自信

「大学生学编程系列」第九篇:如何学习算法

「大学生学编程系列」如何学习java?

【大学生学编程】第十章:如何学习linux?

如何在最短的是时间里学好基本的C语言编程?

Mac和Linux哪个适合编程?

为什么现在都找不到破解软件了?

不同编程语言的程序可不可以通过接口相互调用?

C++程序员的未来前景如何?




----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:程序员互动联盟,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......