首先要学习下基础课程单片机,汇编和C语言等等,然后再学习嵌入式, 如果说你要想水平高的话,最好学习下操作系统,数据结构,算法及一些硬件方面的知识等等。 看你是想在什么方面发展,在硬件方面还是软件方面。假如是软件方面, 当然对编程要侧重,反之在硬件方面,那么就要对单片机,电子电路,数电,模电等等要多加学习才是。
做嵌入式的大概有这样几个方向: 驱动/BSP/内核移植类:这一类要求你了解硬件芯片和电路原理图多一些,需要多学习大学这类基础课, 然后看一些基本的CPU芯片外围芯片手册,知道什么是CPU内部总线、外设控制器和寄存器。这类人在产品项目 中人数需要不大,但是工资不低。(内核移植和内核开发暂且不提) (辅助知识: 通信:串口,usb口,网口,RS232,RS285,LINE2.0,CANBUS,RF,蓝牙,红外 数模:ADC,DAC,放大器应用电路 电源,存储器,时钟,传感器等应用)
嵌入式操作系统类:这一类要求你能根据产品需要设计出能多任务处理并控制一些外设或者与外设通讯的程序。 需要你有很好的C语言基础,单片机基础,然后是嵌入式操作系统基础,知道各种多任务处理的模型,然后还需要 一些数据结构知识。你要知道程序是如何烧写到芯片里变成能控制设备的东西的。
嵌入式系统应用类:这一类要求更加偏向软件一些,有时甚至只是知道内存限制就可以了,其它硬件都不必考虑太多 ,比如做嵌入式GUI的(miniGUI, Qt)、嵌入式数据库的、嵌入式webserver程序等,这一类归根结底是软件开发, 需要有强大的阅读源码能力和程序设计基础。高级嵌入式相关应用程序开发类:如手机开发的,特别是iphone android 的应用开发,这一类实际上是纯软件开发,要求有很好的程序设计基础、面向对象概念、结构化开发概念等,UI相关的 现在还需要有一些UX用户体验理念。 大概就这几类,如果你是学生建议自己买一个三星的ARM9开发板,很便宜的,从读芯片手册、学习移植ucosII,写写 ucosII应用程序,深入的可以学习嵌入式linux下应用程序开发等,总之一年之内学透一个开发板,那么你就可以合格胜任前两类工作了。
总体来说
第一类:模拟电子 数字电子 微机控制等技术很好,对嵌入式各个模块很熟悉,单片机应用的炉火纯清, 能独来开发(软件,硬件,PCB)测试,控制等项目(能力很强,适合独立开发项目) 第二类:能把操作系统移植到嵌入式,并且能编写驱动程序(适合团队开发,和应用软件工程师配合) 第三类:熟悉BS/CS架构和设计,操作系统原理和内核有相当的认识,有美工经验,熟悉嵌入式应用 软件的开发(适合开发上位机,或与第二者协作开发嵌入式) 在此建议 统筹全部 专于一个方面
|