2316|1

36

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

单片机工程师与嵌入式工程师需要具备的技能 [复制链接]


       
               
                       
               
       

 

一、单片机的岗位分析

                       

                        1、硬件方向

                       

                        a. 熟悉模拟电路和数字电路的设计运用;

                        b.有过项目原理图PCB设计,有硬件调试经验;

                        c.熟练使用硬件开发工具(AD10等),以及PCB设计软件;

                        d.掌握VHDL、Verilog硬件描述语言,能够编写控制逻辑;

                       

                        2、软件层面

                       

                        a.熟练AVR,STM32等MCU,熟悉各类传感器;

                        b.精通C/C++语言,具备良好的代码书写规范;

                        c.熟悉SPI、IIC、UART、CAN,会多种裸机驱动编写;

                        d.熟练使用至少一种单片机,如STM32,MSP430等;

                        e .熟悉KEIL、IAR等集成开发环境的使用、调试、仿真、流程;

                        f.至少熟悉一种ARM架构,例如:Cortex-M3;

                        g.了解实时操作系统原理,如UCOS/FreeRTOS/RT-thread;

                       

                        二、嵌入式的岗位分析

                       

                        接着我们来分析一下嵌入式工程师的岗位需求和技能方向。来了解一下如何成为一名合格的嵌入式工程师。

                       

                        1、嵌入式软件开发工程师

                       

                        Linux平台下的C开发(做嵌入式产品的大型公司):

                        a.精通C语言;

                        b.熟悉数据结构;

                        [表、栈和队列、树(平衡二叉树,霍夫曼树,二叉排序树,二叉查找树,树的应用),图的存储方式、遍历、相关算法]

                       

                        c.了解和使用常用查找,排序算法;

                        [静态查找:(1)顺序查找(线性查找)、(2)折半查找(二分或对分查找)、(3)分块查找(索引顺序查找),动态查找:(1)二叉排序树(2)平衡二叉树、哈希查找(哈希表)]

                       

                        d.熟悉Linux环境,会编写shell脚本;

                        [对Linux操作系统的组成以及各个层次的实现,Makefile能看懂]

                       

                        e.熟悉Linux的IO,进程、线程,网络编程(并发服务器的搭法);

                        f.了解通信相关的知识,至少掌握一种数据库的使用;

                        g.具备良好的编程习惯和一定问题分析与定位能力,并解决;

                       

                        2、嵌入式系统工程师

                       

                        a.精通C语言,了解汇编语言、数据结构和常用算法;

                        b.掌握一种CPU体系架构,熟悉常见CPU体系架构,理解MMU、CACHE、内存、DMA等;

                        c.精通一种嵌入式操作系统,熟悉常见的嵌入式操作系统、文件系统、协议栈;

                        d.精通Linux操作系统移植、裁剪,驱动编程和调试;

                        e.具有LCD,Touch,CAMERA,USB,BT/WIFI/GPS,Sensor等驱动3种以上的开发经验;

                        f.具有良好的英文能力和团队精神;

                       

                        3、驱动工程师

                       

                        a.熟悉数模电,能看懂原理图;

                        b.熟悉各种硬件协议(SPI\IIC\UART等)及kernel,fpga等;

                        c.具有一定相关的基础理论,且具备英文文档的阅读能力;

                        d.熟练掌握device tree、电源管理、内存管理、文件系统管理;

                        e.熟悉Linux操作系统(驱动模块),驱动框架,会编写shell脚本、makefile;

                       

                        从上面我们可以看出,单片机和嵌入式方向的岗位要求是不同的。相比于单片机,嵌入式方向对于操作系统的依赖性非常强。另外,虽然单片机工程师也会用到C语言,但使用的语法和复杂程度较低。所以要想转入嵌入式方向,我们要在原有的知识体系上加入的有:

                       

                        1.C/C++高级语法

                        2.I/O操作

                        3.数据结构+算法

                        4.嵌入式操作系统

                       

                        建议单片机到嵌入式的转换,比较切合自身特长的方向应该是驱动开发。单片机注重硬件、偏底层,从广义上讲,单片机开发也算是嵌入式开发,相当于简单的嵌入式系统。

                       

                        单片机工程师一般有着比较熟悉的硬件知识,只需要深入学习一下Linux等嵌入式操作系统的源代码和架构,掌握Linux平台下驱动开发的核心技术,就可以实现从单片机工程师到嵌入式工程师的转换了。并且,如果是想做32位单片机的开发,也可以从STM32系列入手,相关的学习资料还是比较多的。

 

此帖出自编程基础论坛

最新回复

本帖最后由 Alaric 于 2021-3-28 10:37 编辑 这不就是招聘要求么,硬件基础+编程基础+算法基础加一定的实操经验   详情 回复 发表于 2021-3-28 10:36
点赞 关注
 

回复
举报

20

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
本帖最后由 Alaric 于 2021-3-28 10:37 编辑

这不就是招聘要求么,硬件基础+编程基础+算法基础加一定的实操经验

此帖出自编程基础论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表