入行嵌入式开发之前,先来看看这几点需求
时间: 2021-01-14作者:安服优

忙忙碌碌、跌宕起伏、实属不易的2020结束了,迎来了牛转钱坤。
先来一波灵魂的拷问:去年初立的FLAG实现了吗?今年的FLAG和去年是否一样?
对于“深圳打工人”来说,在众多FLAG目录当中“培训学习”绝对是必不可少的一项。
其中,嵌入式开发这个被誉为当前最热门最有发展前途的职业是否是IT爱好者的你心仪已久的选择?目前国内嵌入式开发方面人才很稀缺,当然是相当的抢手,但这个领域的入门门槛也相对高啊。


<


下面我们就一起来聊聊这个嵌入式开发
从技术实现上讲,嵌入式开发分为两大类:没有操作系统支持的和有操作系统的。前一种从程序实现上可分为3层:硬件层,驱动层,应用层;后一种分为4层:硬件层,驱动层,系统层,应用层。
综上嵌入式的开发大致需要从下到上4类工程师:嵌入式硬件开发、嵌入式驱动开发、嵌入式系统开发、嵌入式应用软件开发。

技能盘点

那么,这些“天之骄子”都需要具备哪些技能呢?
01.熟悉电路相关知识,熟悉各种常用元器件,熟悉硬件开发,熟悉常用芯片及外围设备,熟悉8位16位32位处理器嵌入式硬件开发平台。
02.熟悉一定的操作系统、计算机组成原理、数据结构等相关知识。
03.具有单片机、某种或多种32位嵌入式处理器系统的移植开发能力。
04.熟悉bootloader过程,具有扎实的底层软件知识,理解硬件原理图,能独立完成相关硬件驱动调试,能够根据芯片手册编写软件驱动程序。
05.如果涉及到网络设备,或许还要掌握很多上层的网络协议的原理。

<


相对于硬件,软件方面需要懂的更多

熟悉操作系统的原理是必不可少的,比如内存管理,比如线程调度,比如文件系统等。
熟悉处理器体系结构、指令集、寻址方式、调试、汇编和混合编程等方面的内容,以及熟悉操作系统启动流程。
熟悉系统的API,熟悉C语言的高级编程知识,包括函数与程序结构、指针、数组、常用算法、库函数的使用等知识、数据结构的基础内容。
熟悉对象编程的基本思想,以及C++语言的基础内容;调试中开发人员所面对的指令,一般是C程序编译链接后产生的汇编代码,熟悉汇编代码可大大提高程序的调试效率。(比如下方链接中提到的)
AFUIOT C语言编程风格技术干货分享

熟悉嵌入式Linux开发环境,包括系统编程、文件I/O、多进程和多线程、网络编程、GUI图形界面编程、数据库。
熟悉常用的图形库的编程,如QT、GTK、miniGUI、fltk、nano-x等,
熟悉各种应用层的网络协议使用,以及各种音视频技术等。
只有熟悉各种开发具以及各类性能高低不一的操作系统,硬件平台,才能当面对一些特殊的应用需求时,可以从现有的产品中挑选出合适的平台以配合到开发产品的最终应用中。
除此之外,嵌入式开发人员还需要对项目开发流程的熟悉,项目管理工具的使用,当然还要有和产品经历对怼的勇气等等技能。


就拿安服优的AI宠物训练系统来说,其本身就是一个小型的计算机系统,硬件方案包含了中央处理器,存储器,输入输出;软件就是要让这些让人摸得着的硬件顺畅的跑起来,看不见摸不着的嵌入式软件,就是魔鬼,她包含了与硬件相关的底层接口驱动、系统内核、设备管理接口、射频通信协议、人机交互图形界面、算法等,顺畅的时候,就是一个出色的设备,就如同我们的工程师一样。正是因为我们有应对各种情况的牛掰工程师,从而让该产品为该领域垂直品类的佼佼者。
还有我们平常见到的智能穿戴手表、智能宠物用品、家电控制系统、医疗仪器等等都是典型的嵌入式系统。


<


在科技发展日新月异的今天,市场和用户的需求不断在提升,智能化的产品极受追捧,各种嵌入式解决方案和新产品层出不穷,功能和性能也在不断提升,作为一直深耕物联网(iot)解决方案的安服优,搭载企业完全自主自研的物联网开放平台(包含安服优云、嵌入式软件包、开入硬件平台),力争为更多的企业用户带去更优质的一站式物联网(iot)解决方案服务。