来源:嵌入式时代@头条号

在2000年前后,嵌入式软件工程师有着一套非常具体的技能,他们通常是电气工程师,不仅了解底层硬件的工作原理,还可以在底层编写汇编代码或者C语言代码,以使系统满足实时需求。嵌入式软件工程师不仅要了解诸如C语言的软件开发,还要了解硬件。位、字节、寄存器的世界,正是嵌入式软件工程师的领域。但是如今不再那么简单了。
在早期,嵌入式开发人员通常使用8位或者16位的体系结构,这些结构比较简单,因此开发人员一般在几个月的开发周期内便能掌握这些结构。
但是近些年来,许多嵌入式开发团队已经转向更加复杂的 32 位体系结构,不仅包括一些用于数据采集的采样传感器,以及外围的通信设备,还包括日益繁多的各种协议,例如 USB、DMA、 TCP/IP、蓝牙等。这些复杂的体系架构,或者相关的通信协议,开发人员往往需要数年才能真正的完全掌握。显然,嵌入式系统已经变得极其复杂。将硬件设备连接到互联网,以创建物联网的巨大需求,在以往传统的嵌入式C语言程序开发中是没有出现过的。所以,这一“巨大需求”导致了一个真空——相关公司找不到足够的嵌入式C语言软件开发工程师了。
为了应对“真空”,有些公司并未大力培养嵌入式C语言软件工程师,而是开始依赖具有Windows应用程序或者移动设备程序开发经验的人员来开发他们的实时嵌入式软件。这会导致另外一个较为致命的问题出现:这些开发人员大都只了解公司分配的任务所需的高层应用程序框架,对底层硬件却不够了解。
这样的公司并不在少数。因此微控制器制造商目前正在大力推动为开发人员提供高层的软件框架和工具,真正的硬件底层开发,则由制造商完成。这使得嵌入式软件开发人员,甚至应用程序开发人员更容易在更高层上编写软件,他们不必再担心底层的硬件了,因为相关的“轮子”已经“出厂自带”了。显然,这样的嵌入式程序开发模式更加有利于一些嵌入式公司降低成本,加快产品上市时间。但是我们也可能发现,关心位、字节、寄存器的传统嵌入式C语言、汇编软件开发工程师显得没那么重要了,可能很快就会“灭绝”。
未来的嵌入式软件工程师将与传统的前辈们有着不一样的技能,他们也不再关心硬件底层,不再关心位、字节、寄存器,也不再关心任务的实时性,事实上,他们可能不再关心任何传统嵌入式程序员需要关心的东西。未来的嵌入式软件工程师可能只需要具备应用程序开发技能,知道如何调用一个 API 让硬件做事。
但是,他们不知道为什么要这么做,以及 API 到底是怎样命令硬件做事的,所以他们也不具备实时调试硬件的技能甚至概念,无法深入到寄存器中。这些工程师,更像是远离硬件的 Windows 程序员。未来嵌入式软件开发人员不具备底层硬件开发能力不一定就是百分之百的坏事,至少这样的开发模式允许一些缺乏关键技能的开发团队或者公司继续发展下去,这一点可以从移动设备领域看出。
了解底层硬件的传统嵌入式程序开发人员永远都不会被“淘汰”,否则谁能提供 API,让上层应用程序开发人员调用,以控制硬件工作?然而现实是,传统嵌入式程序开发人员被公司忽略了。很多高科技公司更加青睐机器视觉、机器学习和其他尖端研究领域的开发人员,值得说明的是,这些尖端人才往往不屑于驱动硬件这类“基础工作”。但是,如果没有程序员能够与硬件设备沟通,所谓的“机器”视觉和“机器”学习又怎样才能实现呢?-END-

uml+oopc嵌入式c语言开发精讲_新的程序开发模式出现,传统的嵌入式C语言程序员快要灭绝了?...相关推荐

  1. uml+oopc嵌入式c语言开发精讲_当前火爆的嵌入式领域,为什么选择C语言作为开发语言?了解一下...

    C语言和嵌入式C编程有什么区别?其区别在于嵌入式的C语言是跑在嵌入式的开发板上的,CPU和电脑不一样,所以编译器也是不一样的,生成的可执行程序也是不一样的.选择嵌入式开发语言归结于嵌入式系统开发的特点 ...

  2. uml+oopc嵌入式c语言开发精讲_嵌入式开发中更接近底层的汇编与C语言

    分享本文,介绍下更接近硬件底层的C语言与汇编,解释 CPU 如何执行代码. 高级语言与低级语言 学习编程其实就是学习与计算机交流的语言.因为计算机不理解人类语言,通过编译器把人类写的代码转成二进制代码 ...

  3. java开发电脑配置_新电脑java开发环境配置(自用)

    一.jdk下载 注:java8是长期支持版本,并且比较稳定.java13只有半年维护期,而且新发布的版本可能不稳定,不建议在正式项目中使用 2.下载时会提示需要登陆账号,注册一个即可(我的是qq邮箱, ...

  4. 嵌入式C语言数据结构精讲-曹国辉-专题视频课程

    嵌入式C语言数据结构精讲-236人已学习 课程介绍         系统学习嵌入式开发中常用的数据结构知识,包括顺序表,链表,栈和队列. 包括理论讲解和代码实现,配套课件和源码资料齐全,代码全部采用C ...

  5. 面向对象C#初级入门精讲(1)C#开发入门-徐照兴-专题视频课程

    面向对象C#初级入门精讲(1)C#开发入门-438人已学习 课程介绍         [教学理念] 1.把"需要工作的人"变成"工作需要的人" 2.创设&quo ...

  6. 视频教程-基于Java开发精讲支付宝SDK-Java

    基于Java开发精讲支付宝SDK 具有多年互联网大型系统开发经验,曾带领团队完成公安业务系统.某互联网企业B2C项目,并具有5年讲师经验,授课风格深入浅出. 谢少华 ¥12.00 立即订阅 扫码下载「 ...

  7. 全国计算机二级考试c语言指针,全国计算机二级考试C语言 指针精讲课件.ppt

    全国计算机二级考试C语言 指针精讲课件 第七章:指 针;第一节:指针概述;如:执行以下说明语句后: int a=3,b=4; float c=4.5,d=8.6; char e='x',f='y';其 ...

  8. 2022计算机全程:C语言程序设计精讲

    01.第一章C语言的概述.mp4     大小:152.79 M 02.第二章数据类型.运算符及表达式(一).mp4     大小:114.09 M 03.第二章数据类型.运算符及表达式(二).mp4 ...

  9. PHP实例开发精讲视频课程-张双老师-张双-专题视频课程

    PHP实例开发精讲视频课程-张双老师-2069人已学习 课程介绍         本课程所包含知识模块如下: 1.PHP的基本语法: 2.PHP操作mysql数据库: 3.数组及其处理函数: 4.个人 ...

最新文章

  1. CurcveLane-NAS:华为中大提出一种结合NAS的曲线车道检测算法
  2. 怎么在线安装php文件,PHP在线安装数据库
  3. Java线程:线程的同步与锁
  4. 一场由nginx优化引起的tcp/ip及tcpdump研究
  5. MySQL如何存储Emoji表情,UTF-8和UTF-8MB4字符编码有何区别
  6. vue中 mock使用教程
  7. mall整合RabbitMQ实现延迟消息
  8. 从敲下一行JS代码到这行代码被执行,中间发生了什么?
  9. 非静压模型NHWAVE学习(1)——模型原理简介(控制方程)
  10. 地理信息数据 中国省级行政区划 SHP
  11. 停下来想一想:你为什么会离开游戏行业?
  12. 计算机监控系统在地铁中的应用有哪些,地铁综合监控
  13. win2003企业版sp2序列号
  14. PS2 键盘 变 USB 键盘 设计图
  15. 古建筑灯光秀投影设计应该注意哪些细节呢?
  16. leetcode 第1题【两数之和】C语言
  17. C# SolidWorks 二次开发 API --- 2018版 中文翻译 之官方示例
  18. DailyTask-关于电梯问题
  19. C/C++代码静态分析工具调研
  20. poj 2451 Uyuw's Concert (半平面交)

热门文章

  1. android文件系统挂载过程,有线挂载Android4.2文件系统
  2. 使用gulp将文件转码至utf-8格式
  3. .net加载失败的程序集重新加载
  4. Java之动手动脑(三)
  5. ArrayList扩容
  6. matplotlib 可视化 —— style sheets
  7. Apache ab并发负载压力测试
  8. abi-api, arm target triplet https://en.wikipedia.org/wiki/ARM_architecture
  9. 02.gcc入门(下)
  10. Vue应用框架整合与实战--Vue技术生态圈篇