抬头看10年大佬的嵌入式经验总结

汽车电子嵌入式 2023-12-20 07:00

嵌入式行业需要什么样的技术人才?仔细观察各种招聘的岗位要求吧,无非是两方面。

1)通用要求
比如什么学历,多少年工作经验,有创新精神,抗压能力强,吃苦耐劳,善于沟通,态度认真等等等等...
2)专业要求
这个可真的多了去了,但无非就是各种精通。什么精通控制理论,精通电路设计,精通各种硬件驱动开发,精通linux内核,精通DSP,精通ARM,精通嵌入式数据库,精通多线程编程,精通各种网络协议,精通各种总线协议,精通塞班/安卓/IOS平台应用开发。
精通汇编、编译器、二进制工具,精通各种媒体封装格式、编解码,精通通信技术,精通硬件原理图,精通PCB设计,精通计算机结构,精通bootloader,精通……感觉只要是行业内的就要精通。
看完这些,尤其是专业要求,精通一门就得好久,头大了吧?
那么,我们来就分析一下上面的要求吧。各个公司就通用要求像是互相复制粘贴的一样,比如学历,个人认为学历明显更重要;比如经验,是有n年的经验,还有n年前的经验用了n年;还有个人秉性,我都不知道各个公司怎么在员工入职前考察。
专业要求呢,其实精通其中几样就挺了不起了,很多技能一看就让人头晕,了解了嵌入式开发的结构可能就好理解些了。
从技术实现上讲,嵌入式的产品分为两大类:一类简单的,没有操作系统支持的;一类复杂的,有操作系统的。
就目前发展方向看,后一种是趋势。前一种从程序实现上可以分为3层:硬件层、驱动层、应用层;后一种可以分为4层:硬件层、驱动层、系统层、应用层。
所以,嵌入式的开发大致需要这么从下到上四类工程师:嵌入式硬件开发、嵌入式驱动开发、嵌入式系统开发、嵌入式软件开发。
应该会哪些技能?
01.嵌入式硬件开发
这是硬件工程师来做,一般出身为自动化,电子,通信等专业,他们要求熟悉电路等知识,非常熟悉各种常用元器件,掌握模拟电路和数字电路设计的开发能力,熟悉硬件开发模式和设计模式,熟悉各种芯片及外围设备,熟悉8位16位32位处理器嵌入式硬件平台开发。
有的要求有FPGA的开发经验,精通常用的硬件设计工具:
  • Protel
  • PADS(PowerPCB)
  • Cadence
  • OrCad
一般要有4~8层高速PCB设计经验。
02.嵌入式驱动开发
这个可以硬件工程师来做,也可以软件工程师来做,主要还是取决于设备。
目前驱动开发,除非是简单的设备驱动,实际上很多时候都是移植,所以更多的是需要掌握目标平台的硬件和系统特性。
所以至少得掌握一些操作系统、系统结构、计算机组成原理、数据结构相关知识。熟悉嵌入式ARM/MIPS/PowerPC架构。
具有单片机、某种或多种32位嵌入式处理器的移植开发能力,熟悉bootloader过程,具有扎实的硬件知识,理解硬件原理图,能独立完成相关硬件驱动调试,能够根据芯片手册编写软件驱动程序。
如果涉及到网络设备,或许还要掌握很多高层的网络协议的原理。个人感觉这一块虽然大部分不是很难,但却是极为重要的。
当然如果要在这一层次提供对上层的多线程支持,某些驱动也是很难写的。
03.嵌入式系统开发
这个没听说硬件工程师来做的。做这块,熟悉操作系统的原理是必不可少的,比如内存管理,比如线程调度,比如文件系统等等。
还要精通处理器体系结构、指令集、寻址方式、调试、汇编和混合编程等方面的内容;熟悉操作系统启动流程。
对于linux,要熟悉Linux配置文件的修改,掌握内核裁减、内核移植、交叉编译、内核调试、启动程序Bootloader编写、根文件系统制作和集成部署Linux系统等整个流程。
这一块要是真写起来,困难程度那是相当恐怖的,好在大多都是移植,很少听说有公司要去开发个操作系统的,没Google的实力啊。
04.嵌入式软件开发
这个嘛,没有操作系统的话,程序一般不会特别复杂,如果有操作系统的支持,又和一般的软件开发很接近,所以尽可以看作是搞桌面开发。
这个要求就是熟悉系统的API,精通C语言的高级编程知识,包括函数与程序结构、指针、数组、常用算法、库函数的使用等知识、数据结构的基础内容;掌握面向对象编程的基本思想,以及C++语言的基础内容。
精通嵌入式Linux下的程序设计,精通嵌入式Linux开发环境,包括系统编程、文件I/O、多进程和多线程、网络编程、GUI图形界面编程、数据库。
熟悉常用的图形库的编程,如GTK、miniGUI、fltk、nano-x、QT等,掌握各种应用层的网络协议使用,以及各种音视频技术等。
05.通用技能
另外还有些以上四类都用得着的技能。
1)基础技能:搞嵌入式开发,还有一些必不可少的基础技能
  • 开发平台的熟悉。目前的嵌入式开发大多数是在linux或者类linux下的环境下进行的,那么linux的使用应该熟悉吧,shell脚本得会写吧,配置文件得会改吧,GCC GDB得会用吧,Make工具得会吧?

  • 比如项目管理工具的使用,都什么年代了,不会用CVS,也不会用SVN?请问,你还活在软件时代的原始社会么?

  • 数据结构和算法。搞软件开发,不懂数据结构,不会算法优化,不会衡量复杂度,太不靠谱了吧?

    当然,这个也不是要求啥算法都要会,啥数据结构都记得住,最起码得知道有那么种东西,有什么作用,这样用到的时候好歹也能查啊。

  • 编程语言。关于JAVA,我知道现在JAVA的异军突起,很是震动了编程语言界,但是在嵌入式开发下,不会C或者C++语言,实在说不过去。

    当然现在很多手机应用完全用java写的,如果你只想搞嵌入式的上层软件开发又不想深入下去,只用JAVA也未尝不可。

    关于汇编,嗯,这个可能挺难,毕竟跟具体的硬件架构(主要是CPU)有关,但是真的很有意思,而且在某些时候,它是不可替代的。

2)特殊技能:对于嵌入式开发的某些部分必不可少,但对于有些(比如应用开发)可能没有多大用处
  • 数字电路。这个主要是了解一些基本的电路知识,如门电路、逻辑电路、存储器、寄存器,为了更好的理解嵌入式芯片、存储器、外围设备等硬件的设计,但往往在软件开发中未必能用的到。因为大部分硬件都提供了很完整的软件接口。

  • 操作系统。这个说的是平台上选用的操作系统。嵌入式产品操作系统实在是太多了。

    但操作系统的内部设计原理都是殊途同归。

    首先,要去学习的是操作系统原理,要去了解进程通信、内存管理、文件系统等等几个重要的部分,因为这些在软件开发尤其是内核驱动开发时会用到。

    接下来,可以去熟悉至少一种主流的操作系统,Linux是一个很好的选择,去了解它的内核架构,设备驱动架构,如何去编译、裁剪、编写应用程序,以及如何使用在具体的嵌入式产品上。

  • 计算机的组成/微机原理。主要是为了了解微型计算机的硬件工作原理,明白CPU、总线、I/O、存储器等一些关键结构是怎么工作的,虽然是很枯燥的知识,但是对熟悉外围设备硬件工作方式,及操作系统,软件架构的设计及优化相当关键。

3)扩展的能力:这些可能是要用到的
  • 通信协议。对于非应用层的通信协议,我实在不知道是不是该把它放入操作系统的范畴,因为很多操作系统是没有网络部分的,但是在很多方面它又是由操作系统提供。

    当然这些下层通信协议,貌似不太用关心,因为太多的开源协议栈了。应用层的网络协议可能就要关心了,比如http、ftp、rtsp、rtmp、mms等等。

  • 音视频处理。比如文件封装、音视频的编解码、各种音视频的标准,还有流媒体什么的。Ffmpeg是一个很好的东西,建议学习一下。

  • 信息安全。嗯,这一块貌似现在越来越受到重视了。

  • 数据库。唉,嵌入式设备能力越来越强啊!再搞搞,我看也不用交叉编译了。

有时和同事讨论起现在的行业需求,说到各个公司总是招不到人,程序员又总说找不到工作,自己就有很多感想,是公司要求高,还是程序员要求高?
有时候看到一些招聘的职位要求,总是打击到自己的信心,一条一条数下来,好像自己能做到的还真没多少,只好让自己再努力些再努力些。
当然有时也会觉得某些招聘不靠谱,看那一条条的要求,个人感觉要是全做到,普通人怎么也得努力个十年八年的,这样的大牛们,估计看不上给出的那薪资吧。
对于程序员来讲,做技术真的是很累很难的一件事情。网上搜一下,遍地的抱怨贴、情感贴,都充分反映了这个职业对身体和情感的考验。
如果你不畏艰难,想把技术做下去,那么努力吧,也许某天你会随便拿起一份招聘启事,鄙视一眼:“靠!就这点要求,老子去都掉价!”,那么你就是真正的大牛了!
现有状况分析
不少新人来到我们研发已近十几年。这十几年里,同一批人员,有的已经很快适应了环境,经过自己的努力和付出,能为研发工作独挡一面,成为某一方面的小专家;
有的尽管前期不太适应,但是通过指导和修正,业已慢慢进入了工作状态,相信经过一段时间,会逐步担当起某一方面的研发工作。
同一时期进来工作,为什么他们现在的能力和状态会产生如此大的差异呢?
通过的相处和分析,我发现凡是进步快的同志有如下特点:
  • 勤奋,为了解决一个技术问题经常会主动留下来加班。

  • 钻研,为了解决一个技术问题会主动学习各方面的资料,勤做实验,用事实去验证;。

  • 和领导和同事及时主动沟通,集思广益,争取各方面的资源,充分利用已有的经验,避免走弯路,加快研发进程。

  • 有强烈的事业心和牺牲精神,不达目标绝不停息。

反之,那些成长慢或者还没有融入研发工作的同志则具有以下特点:
  • 工作没有目标,精力分散,很多的时间花在网络上,偷偷的看视频。

  • 工作推卸责任,把工作没有进展的原因推卸到工作难度太大,或者资源不够,而自己却又不主动的去争取资源。

  • 没有长期为研发乃至个人的职业生涯有充分的打算,或者说来研发的目标比较低下只是为了混口饭吃;人无远虑,必有近忧,没有远大的理想,外界任何一个小的干扰都会让你三心二意,因而知识的学习没有系统性。

  • 和同事和领导的沟通不主动,甚至避让,怕领导检查工作。

  • 更关注生活而不是工作。

  • 比较在意自己的付出。

两种一对照,问题显而易见:研发工作是一项很具挑战性的工作,需要付出艰辛的劳动,需要有扎实的理论基础和动手能力;在开发任务面前头脑清醒,思维敏捷,头绪清晰,有条不紊。
遇到困难不会退,遇到挫折不气馁;需要有团队精神,需要有化解矛盾和困难的勇气,智慧和决心,要有相当强的心理素质;因此人员的素质和心理状态是决定性的。
上进的同志,稍微带一带,成长速度很快;不主动的同志,工作起来举步维艰,带起来很吃劲,心情也受影响。
为了提高研发效率,我们开发了管理软件,制定了各种规章制度。但是,软件和制度只能治标,不能治本,问题的根还是出在人上。
应该讲,目前研发部门的软硬件条件和和技术水平,可以让一批想在电子技术嵌入式领域有所作为的年轻人干出骄人成果的。
但是现实情况我们也不能过于乐观,研发部门还是存在一些问题的,尤其是人员素质问题。为此我们在参加研发管理培训的时候也咨询过专业人士,他说了一句话:小草永远也长不成苍天大树。
所以请各位想想,你现在是小树苗呢,还是草种子?是树是草取决于你是否有强烈的向上成长的愿望,取决于你是否有千方百计吸取土壤养料的勤奋,取决于你对的人生价值的判别,认为现有的土壤值得你扎扎实实定下根来,做一棵这片土壤上的大树。
想成为大树的,我们一定创造条件让他(她)成长为大树;如果注定是草种子,我们也无能为力,只有优胜劣汰。
再论能力和勤奋及其他
笨鸟先飞早入林,对事物的认知是和事物对大脑的刺激频率和时间成正比的,一个事情经常去做,时候经常去琢磨,就能悟出其中的道理,对事物认识深度是通过在实践中不断发现错误,不断修正才达到的。
如果人不勤奋,把过多的时间和注意力放在工作之外的地方,那就自己切断了实1践这个重要环节,水平和经验永远得不到提升,能力的提升更谈不上了。

接着就是职务,收入上的提升,说到底就是个人在社会上竞争力的提升。不去提升你的核心竞争力,成天沉迷于网络还有其他事物,是否有点舍本逐末呢?



End

「汽车电子嵌入式在CSDN上同步推出AUTOSAR精进之路专栏,本专栏每个模块完全按实际项目中开发及维护过程来详细介绍。模块核心概念介绍、实际需求描述、实际工程配置、特殊需求介绍及背后原理、实际工程使用经验总结。目的是让读者看完每一个章节后能理解原理后根据需求完成一个模块的配置或者解决一个问题。」


点击文章最后左下角的阅读原文可以获取更多信息


或者复制如下链接到浏览器获取更多信息

https://blog.csdn.net/qq_36056498/article/details/132125693


文末福利




1
.如需汽车电子嵌入式收集的学习文档,
后台回复“

资料

即可免费下载;

2.为便于技术交流,创建了汽车电子嵌入式技术交流群,可尽情探讨AP,CP,DDS,SOME/IP等前沿热点话题,后台回复“加群”即可加入;



注:本文引用了一些第三方工具和文档,若有侵权,请联系作者删除!


推荐阅读

汽车电子嵌入式精彩文章汇总第一期:20210530-20230703

AUTOSAR 架构下EcuM唤醒源事件详解

AUTOSAR架构下NVM Block连续写及Default Value问题分析

AUTOSAR架构下NvM模块详细分析

AUTOSAR架构下报文掉线超时不上报问题分析

Classic Autosar下的以太网通讯架构概览

通信中间件Someip服务化通信

AUTOSAR架构下Fee详细分析

TC37x芯片FLASH基本概念介绍

AUTOSAR架构下Fls详细分析

TC3xx芯片DMU介绍

TC3xx芯片MPU介绍

TC3xx芯片的Trap详解

AUTOSAR架构下的OS错误处理

AUTOSAR架构下QM Application如何访问ASIL Application

AUTOSAR架构下多核启动

TC3xx芯片的Trap详解(二)

AUTOSAR架构下多核Shutdown

AUTOSAR架构下多核通信

RH850U2A芯片平台Spinlock的底层实现

TC3xx芯片Clock System功能详解-时钟源OSC

TC3xx芯片Clock System功能详解-锁相环PLL

TC3xx芯片Clock System功能详解-时钟分配CCU

End



欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!

汽车电子嵌入式

微信扫描二维码,关注我的公众号

评论
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 105浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 164浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 189浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 123浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 76浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 118浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 64浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 156浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 62浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 502浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦