四:嵌入式工作分类:嵌入式产品开发是基于产品的功能,从功能需求、提出并选择方案、电路设计、PCB电路板设计、软件设计、样机生产、软硬件综合调试,软硬件结合的产品开发。所以嵌入式开发需要软硬件都懂的基础要求。但根据侧重点的不同嵌入式产品开发工作可以有以下分类:
一:硬件方面:
- 电路设计:产品原理图的设计,需要对数电模电都比较精通,且熟悉单片机、arm架构及熟练外围电路的使用;基本上会电路设计的都会PCB设计,起薪5、6K,有几年电路开发经验的月薪拿到7、8K,上万不成问题。
- PCB电路板的设计:需要熟悉数电、看懂常用模电,对单片机、arm外设了解,且具备安规电磁兼容的应用经验;起薪3、4K,如果安规电磁兼容设计有经验,产品稳定的月薪可拿7、8K以上。
- 驱动开发:基于电路图实现产品的驱动开发,需要看懂电路,精通C语言,熟悉arm架构及外设的使用,熟悉操作系统内核、驱动;
- 系统开发:基于硬件的uboot移植、内核移植裁剪、根文件系统制作等系统环境搭建及驱动移植开发、应用测试等,需要精通C语言,看懂电路,linux系统开发。
- 应用开发:基于操作系统之上的应用程序开发,无需电路方面知识,只需要软件编程,需掌握JAVA或C++,操作系统、数据库、数据库建模、SQLserver、oracle等,应用开发更新比较快,像电脑上的软件QQ、360、游戏等软件,所以工作也比较忙,入门门槛低,但上升空间不大。
嵌入式产品开发中不同的工作有不同的一些特点,硬件开发靠经验,硬件开发5年之后可以达到7、8K上万,经验越丰富越吃香,可以说能做一辈子;软件开发靠思维、靠算法,如果编程思维清晰,算法优越,不需要太长时间就能做的相当不错,做个两三年就可达到7、8k,如果进步快甚至上万。如果软硬件都能做,独立开发产品的话,身价更胜一筹。
但是对于入门级甚至初学者来说不可能面面俱到,都要去做,你也没这个能力,即使能做,一般公司也不会让你一个人从硬件到软件独立去开发嵌入式产品,因为公司做项目有时间要求,必须分工协作。
五:嵌入式的学习规划
随着科技进步,嵌入式的出现,人们对生活质量,产品的智能化,成本的要求以及国家对这方面的扶持,造就了嵌入式的发展机遇及前途。
嵌入式产品开发是需要软硬件结合,做软件需要能看懂电路,根据电路、功能即实现原理来编写程序,如果电路不懂,是不能编程实现其功能的,硬件开发也需要对芯片架构,外设编程使用比较熟悉,否则你设计出来的硬件不便于软件开发人员编程实现功能,或者你设计出来的硬件繁琐,成本很高。
那么如何学习嵌入式呢,对于想学习嵌入式的朋友们来说有很多都有单片机的学习经历,感觉自学就行,但是从现实情况来看,嵌入式学习还是比较有难度的,很多朋友遇到问题解决不了,学了一部分就学不下去了,嵌入式学习需要有它的学习方法以及发展规划,下面就来谈谈嵌入式的学习规划:
- 软件开发不需要太多经验积累,只要你做过一些开发,编程思维、算法好,不需要太长时间就能做好,所以首先可以做软件开发,比如系统开发或应用开发。
- 对系统比较熟悉,做过一些项目之后,可以朝底层驱动方面发展,这个工作也不会太忙,待遇也相当不错,做过一些项目之后对于电路见的也多了,电路也比较熟悉了。
- 有比较多项目经验之后,电路也熟悉了之后,补充一些硬件电路知识可以朝硬件设计方面发展,整个产品的开发过程都比较熟悉了之后就可以成为项目研发部的主管或经理,也可以自己接外快接项目来做,有管理经验的甚至可以自己开公司做老板,毕竟这方面的产品开发不需要投资太多成本。
- 先打好两个基础:
- 电路基础:熟悉数字电路,能看懂电路,能分析功能,能根据电路编程
- C语言基础:要学的精通,学得不好,上了系统程序看都看不懂。
- 掌握arm架构及其外设的使用,编程控制,做相应项目。
- 学习系统编程及网络编程,在应用程序中使用。
- linux系统学习:uboot移植,内核移植、裁剪,根文件系统制作,驱动编写与移植(花比较大精力学习,它是系统的核心,也结合硬件),应用编程,用户界面等
- 先做系统编程或应用编程,有一定经验之后可向底层驱动发展;
- 软件项目经验比较丰富之后可向硬件电路设计发展。