2021-06-22

从事嵌入式开发的一些主流职位,大家可以根据自己喜好入座。

1.单片机工程师/嵌入式工程师
2.Linux系统开发工程师
3.Linux应用工程师
4.安卓系统开发工程师
这4个职位,前2个是偏向于硬件驱动层,后2个是偏向应用层。

  1. ARM + Linux/Android开发

据统计,全世界99%的智能手机和平板电脑都采用ARM架构。所有的iPhone和iPad都使用ARM的芯片,多数Kindle电子阅读器和Android设备也都采用这一架构。大部分领先的网络/电信制造商正积极地将其下一代平台迁移到ARM平台上来,有理由相信在今后的几年中,ARM在行业中将扮演一个极为重要的角色。

嵌入式系统是软硬结合的东西,搞ARM开发的人主要分为两大类:
  嵌入式软件开发工程师
  1. 应用程序开发,包括Android应用开发或者Linux上应用开发(QT等),目前做的人很多,就业容易待遇也不错,需要掌握C语言、C++、java等开发语言。
  2. 操作系统移植,比较复杂,Linux,Android等,现在很多手机厂商(如小米,魅族,乐视等)推出的操作系统也就是修改内核,换皮肤,就业还是很容易的;
  3. 底层驱动开发,这个入门、深入都不容易,需要对硬件及OS有较深的了解,发展前景很不错;
  
学习嵌入式就业前景广泛,你可以做手机、PDA、MP3、MP4、遥控玩具、psp、相机、家电控制(洗衣机、电饭煲等)、汽车导航仪,只要跟电子控制相关的。
如何学习嵌入式?下面课程是嵌入式学习必学的:C语言; C++;操作系统;计算机组成原理; linux编程; 51单片机;arm;硬件编程语言(FPGA);模拟电路&数字电路。

1、c\c++语言,这是计算机行业的必修课,必须找扎实实学好,可以安装turbo c编译器为开发环境,联系C语言编程; 安装vc++6.0学习C++编程。
2、操作系统,先在电脑上安装一个vmwarework station,然后在vmware work station里安装一个linux(redhat企业版)虚拟机。学习一下操作系统的基本原理,熟悉linux环境下的开发环境,然后你就可以照着《自己动手写操作系统》写个操作系统试试。
3、计算机组成原理,熟悉计算机的基本原理,看看一个计算机的基本组成及软件在里面是如何跑的。
4、《unix/linux编程实践教程》可以说是linux编程的必修课,很不错的一本书,初学嵌入式的朋友可以看看。
5、单片机,其实就是一台电脑,像现在的汽车控制、led控制、屏幕亮光程度控制,它都可以实现,自己买块开发板弄一下,你能学到很多的别人学不到的。
6、arm,现在最流行的微机,说白了就是32位的单片机,还可以跑操作系统哦,自己想办法移植一个操作系统上去吧
7、硬件编程语言(FPGA),芯片到底是怎么做成的,学习这门课,你就知道了(推荐阅读:如何学习FPGA)

8、模拟电路&数字电路,硬件的基础,如果可以的话,学习下protel,自己做个硬件pcb板试试。

计算机这行都是偏向于实践的课程,所以要注重动手能力,学习嵌入式这基本课程的时候,你可以按照这样的顺序来学习:
1:C语言、计算机组成原理、模拟电路&数字电路
2:汇编语言、单片机、操作系统、C++
3:硬件编程语言、arm

嵌入式开发大抵分四个方向:硬件、驱动、内核、应用,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux+ARM方向,关于这个方向,大概分3个阶段:
1、嵌入式linux上层应用,包括QT的GUI开发
2、嵌入式linux系统开发
3、嵌入式linux驱动开发 嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等。Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式

自学的话你可以尝试以下路线:
(1)C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。推荐书籍:谭浩强的很不错,《TheC Programming Language》这本经典的教材是老外写的,也有中译版本。《C程序设计语言》
(2)操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。推荐书籍:《UNIX环境高级编程》(第2版)
(4)了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编
(5)系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6)驱动开发linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。《Linux设备驱动程序》《Linux设备驱动开发详解》《UNIX环境高级编程》《Unix网络编程》

C语言基础:
《嵌入式Linux应用程序开发详解》
《C程序设计语言》

GUI图形界面开发书籍参考:
Linux基础:《Linux与Unix Shell 编程指南》

Linux内核:
《Linux内核源代码情景分析》
《深入理解linux内核》

Linux高级网络程序设计(研发方向):
《TCP/IP详解》
《Linux设备驱动开发详解》
《Linux内核编程》
《Unix网络编程》
硬件基础 :
《ARM体系结构与编程》杜春雷

《linux内核完全剖析》
《unix环境高级编程》
《Linux设备驱动程序》
《UNIX环境高级编程》

你的核心竞争力大致分成两个方面:深入的行业经验和扎实的原理技术。前者通过时间慢慢的积累,后者可以通过密集的学习掌握,但两者也都需要长期的实践巩固加强。

4职位分析
嵌入式开发涵盖硬件软件,开发链条很长,要根据自己的实际情况选择适应的职位。

嵌入式的职位大概有:

① 硬件工程师:
负责底层的硬件设计,主要要用到:

处理器:ARM9;DSP;Niosoll;FPGA(用于高速特殊场合)

PCB:EMC设计与仿真

通讯:IIC,IIS,SPI,UART,CAN总线;RS232、PSTN Modem、网络、GPRS通信

② 驱动开发工程师:
负责底层和上层的通讯,主要要用:

系统:Linux非实时系统/VXworks实时系统+架构/文件系统

内核与BOOT:内核裁剪与移植、boot loader和驱动编写,驱动程序开发

上层接口:USB,网口

底层接口:SPI、UART、IIC、I2S,CAN、IDE

③ 软件工程师:
负责上层应用软件,主要要用:

CPU:51/MSP430/ARM7/ARM9

外设:AD/DA、UART、USB、LCD

总线和通讯接口:I2C、SPI、RS232、RS484、CAN、USB、以太网、BACnet、 MODBUS(或有实时性要求)

环境:Linux/QNX+ARM汇编

GUI:VC++/VC#/LABVIEW

④ 系统开发工程师:
负责系统架构设计

⑤ DSP软件工程师:
负责数字信号处理部分,主要要用:

CPU:固定为一个小系列(如TI DM642/648/6467、TI C6000、TMS320C5000、Freescale StarCore)

算法:熟悉图像、音频、视频相关处理算法很重要,要会修改和优化

接口与驱动:网络协议(MAC、IP、UDP、TCP)等

操作系统:架构设计和操作系统配置

⑥ FPGA设计工程师:
负责高速信号处理和部分数字信号处理,主要要用:

语言:VHDL/Verilog

环境:modlesim、Synplify、Quartus、ISE、ispleverEDA

调试:设计、仿真、调试能力

算法:数字信号处理、滤波设计等算法

接口:E1 Framer/Deframer、HDLC控制器、以太网MAC控制器、SDH Framer/Deframer、SDH Mapper/Demapper、SPI4.2、HiGig、DDR、PCI、PCI-E、DDR-II、HD-SDI

在一个完整的项目中,每个工程师分工合作,完成架构师分配的模块。每个职位深入研究下去的水都很深,一旦决定很难再顺利转行了,所以毕业选择职位时一定要慎重。总的来说软件方面的需求在国内更大,当然竞争也更加激烈。硬件很多是直接买国外解决方案的,所以硬件职位需求较少,但高级人才非常吃香。

人人都想要高薪,但有一个事实也许我们应该明白,市场长期是有效的。所以,你现在的能力一定有一个合理的市场价格,做好一份职业规划对你来说可能受益一生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值