专栏首页程序员互动联盟【大学生学编程系列】第十一章:如何学习嵌入式

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

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

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

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

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

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

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

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

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

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

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

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

本文分享自微信公众号 - 程序员互动联盟(coder_online),作者:大学生编程指南

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【答疑释惑第三十七讲】什么是嵌入式?

    疑惑一 什么是嵌入式? 嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带...

    程序员互动联盟
  • 单片机距离智能机器人有多远?

    提到单片机很多人都很觉得不陌生,大街小巷上面电子产品都用到。近几年随着嵌入式的发展,智能机器人是未来一个大方口,其实智能机器人也是嵌入式的一种,里面融入了生物科...

    程序员互动联盟
  • 嵌入式,过时了没?

    疑惑一 作者你好,我是本科生,之前是学java的,但是后来签的工作是嵌入式软件开发,我对嵌入式开发不太了解的,这行有前景吗? 这是小编在后台接收到的小伙伴的疑惑...

    程序员互动联盟
  • 【答疑释惑第三十七讲】什么是嵌入式?

    疑惑一 什么是嵌入式? 嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带...

    程序员互动联盟
  • 嵌入式,过时了没?

    疑惑一 作者你好,我是本科生,之前是学java的,但是后来签的工作是嵌入式软件开发,我对嵌入式开发不太了解的,这行有前景吗? 这是小编在后台接收到的小伙伴的疑惑...

    程序员互动联盟
  • 【UTP自动化测试平台系列之终章】前端探索之路

    UTP自动化测试平台是TMQ的一个联合项目,目的是方便大家更好地开展自动化测试建设工作,减少重复平台建设的成本,提高产品的自动化测试效率。但是随着项目规模与用户...

    腾讯移动品质中心TMQ
  • Oracle Patch补丁体系和如何打补丁

    Oracle作为大型商用关系型数据库,从其补丁体系就可以看出其考虑的全面性。首先我们看下Oracle Patch的主要类型[参考1和2]:

    bisal
  • 数据说谎的艺术

    大数据时代,数据被称为新时期的石油,但与石油又不同,其价值的体现很大程度依赖于人的解释,虽然数据本身不会说谎,但这给数据说谎提供了操作空间,具备数据甄别能力对于...

    华章科技
  • 传统企业微服务落地大法(1)-不够痛就别微服务

    在多家传统行业的企业走访和落地了微服务之后,发现落地微服务是一个非常复杂的问题,甚至都不完全是技术问题。

    物流IT圈
  • 详解三款日志采集工具--Logstash,Fluentd, Logtail比较

    DT时代,数以亿万计的服务器、移动终端、网络设备每天产生海量的日志。中心化的日志处理方案有效地解决了在完整生命周期内对日志的消费需求,而日志从设备采集上云是第一...

    lyb-geek

扫码关注云+社区

领取腾讯云代金券