南京装饰公司网站建设,恶意点击广告软件,建设标准网站,建设工程信息查询关注「嵌入式大杂烩」#xff0c;选择「星标公众号」一起进步#xff01;来源 | 巧学模电数电单片机嵌入式行业需要什么样的技术人才#xff1f;仔细观察各种招聘的岗位要求吧#xff0c;无非是两方面。1#xff09;通用要求比如什么学历#xff0c;多少年工作经验#… 关注「嵌入式大杂烩」选择「星标公众号」一起进步来源 | 巧学模电数电单片机嵌入式行业需要什么样的技术人才仔细观察各种招聘的岗位要求吧无非是两方面。1通用要求比如什么学历多少年工作经验有创新精神抗压能力强吃苦耐劳善于沟通态度认真等等等等...2专业要求这个可真的多了去了但无非就是各种精通。什么精通控制理论精通电路设计精通各种硬件驱动开发精通linux内核精通DSP精通ARM精通嵌入式数据库精通多线程编程精通各种网络协议精通各种总线协议精通塞班/安卓/IOS平台应用开发。精通汇编、编译器、二进制工具精通各种媒体封装格式、编解码精通通信技术精通硬件原理图精通PCB设计精通计算机结构精通bootloader精通……感觉只要是行业内的就要精通。看完这些尤其是专业要求精通一门就得好久头大了吧那么我们来就分析一下上面的要求吧。各个公司就通用要求像是互相复制粘贴的一样比如学历个人认为学历明显更重要比如经验是有n年的经验还有n年前的经验用了n年还有个人秉性我都不知道各个公司怎么在员工入职前考察。专业要求呢其实精通其中几样就挺了不起了很多技能一看就让人头晕了解了嵌入式开发的结构可能就好理解些了。从技术实现上讲嵌入式的产品分为两大类一类简单的没有操作系统支持的;一类复杂的有操作系统的。就目前发展方向看后一种是趋势。前一种从程序实现上可以分为3层硬件层、驱动层、应用层后一种可以分为4层硬件层、驱动层、系统层、应用层。所以嵌入式的开发大致需要这么从下到上四类工程师嵌入式硬件开发、嵌入式驱动开发、嵌入式系统开发、嵌入式软件开发。应该会哪些技能 01.嵌入式硬件开发这是硬件工程师来做一般出身为自动化电子通信等专业他们要求熟悉电路等知识非常熟悉各种常用元器件掌握模拟电路和数字电路设计的开发能力熟悉硬件开发模式和设计模式熟悉各种芯片及外围设备熟悉8位16位32位处理器嵌入式硬件平台开发。有的要求有FPGA的开发经验精通常用的硬件设计工具ProtelPADS(PowerPCB)CadenceOrCad一般要有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是一个很好的东西建议学习一下。信息安全。嗯这一块貌似现在越来越受到重视了。数据库。唉嵌入式设备能力越来越强啊再搞搞我看也不用交叉编译了。有时和同事讨论起现在的行业需求说到各个公司总是招不到人程序员又总说找不到工作自己就有很多感想是公司要求高还是程序员要求高有时候看到一些招聘的职位要求总是打击到自己的信心一条一条数下来好像自己能做到的还真没多少只好让自己再努力些再努力些。当然有时也会觉得某些招聘不靠谱看那一条条的要求个人感觉要是全做到普通人怎么也得努力个十年八年的这样的大牛们估计看不上给出的那薪资吧。对于程序员来讲做技术真的是很累很难的一件事情。网上搜一下遍地的抱怨贴、情感贴都充分反映了这个职业对身体和情感的考验。如果你不畏艰难想把技术做下去那么努力吧也许某天你会随便拿起一份招聘启事鄙视一眼“靠!就这点要求老子去都掉价!”那么你就是真正的大牛了现有状况分析 不少新人来到我们研发已近十几年。这十几年里同一批人员有的已经很快适应了环境经过自己的努力和付出能为研发工作独挡一面成为某一方面的小专家有的尽管前期不太适应但是通过指导和修正业已慢慢进入了工作状态相信经过一段时间会逐步担当起某一方面的研发工作。同一时期进来工作为什么他们现在的能力和状态会产生如此大的差异呢通过的相处和分析我发现凡是进步快的同志有如下特点勤奋为了解决一个技术问题经常会主动留下来加班。钻研为了解决一个技术问题会主动学习各方面的资料勤做实验用事实去验证。和领导和同事及时主动沟通集思广益争取各方面的资源充分利用已有的经验避免走弯路加快研发进程。有强烈的事业心和牺牲精神不达目标绝不停息。反之那些成长慢或者还没有融入研发工作的同志则具有以下特点工作没有目标精力分散很多的时间花在网络上偷偷的看视频。工作推卸责任把工作没有进展的原因推卸到工作难度太大或者资源不够而自己却又不主动的去争取资源。没有长期为研发乃至个人的职业生涯有充分的打算或者说来研发的目标比较低下只是为了混口饭吃人无远虑必有近忧没有远大的理想外界任何一个小的干扰都会让你三心二意因而知识的学习没有系统性。和同事和领导的沟通不主动甚至避让怕领导检查工作。更关注生活而不是工作。比较在意自己的付出。两种一对照问题显而易见研发工作是一项很具挑战性的工作需要付出艰辛的劳动需要有扎实的理论基础和动手能力在开发任务面前头脑清醒思维敏捷头绪清晰有条不紊。遇到困难不会退遇到挫折不气馁需要有团队精神需要有化解矛盾和困难的勇气智慧和决心要有相当强的心理素质因此人员的素质和心理状态是决定性的。上进的同志稍微带一带成长速度很快不主动的同志工作起来举步维艰带起来很吃劲心情也受影响。为了提高研发效率我们开发了管理软件制定了各种规章制度。但是软件和制度只能治标不能治本问题的根还是出在人上。应该讲目前研发部门的软硬件条件和和技术水平可以让一批想在电子技术嵌入式领域有所作为的年轻人干出骄人成果的。但是现实情况我们也不能过于乐观研发部门还是存在一些问题的尤其是人员素质问题。为此我们在参加研发管理培训的时候也咨询过专业人士他说了一句话小草永远也长不成苍天大树。所以请各位想想你现在是小树苗呢还是草种子是树是草取决于你是否有强烈的向上成长的愿望取决于你是否有千方百计吸取土壤养料的勤奋取决于你对的人生价值的判别认为现有的土壤值得你扎扎实实定下根来做一棵这片土壤上的大树。想成为大树的我们一定创造条件让他(她)成长为大树如果注定是草种子我们也无能为力只有优胜劣汰。再论能力和勤奋及其他 笨鸟先飞早入林对事物的认知是和事物对大脑的刺激频率和时间成正比的一个事情经常去做时候经常去琢磨就能悟出其中的道理对事物认识深度是通过在实践中不断发现错误不断修正才达到的。如果人不勤奋把过多的时间和注意力放在工作之外的地方那就自己切断了实践这个重要环节水平和经验永远得不到提升能力的提升更谈不上了。接着就是职务收入上的提升说到底就是个人在社会上竞争力的提升。不去提升你的核心竞争力成天沉迷于网络还有其他事物是否有点舍本逐末呢以上就是本次的分享~推荐阅读专辑|Linux文章汇总专辑|程序人生专辑|C语言我的知识小密圈关注公众号后台回复「1024」获取学习资料网盘链接。欢迎点赞关注转发在看您的每一次鼓励我都将铭记于心~嵌入式Linux微信扫描二维码关注我的公众号