嵌入式开发是软硬结合的产品,需要对软硬件都有所了解,所以学习起来比较费劲,学习成本也高,回报率是个很漫长的过程。嵌入式要学的东西有很多,主要有5个方面。
语言:C
C是必须要学的,是最基本的,如果搞驱动还要学汇编,需要对照datasheet知道如何实现硬件和软件交互,如果涉及Framework就要用到C++,因为硬件抽象层全是C++写的。
操作系统
嵌入式开发的操作系统有很多:Linux、vxworks、mips、wince、QNX·····但目前来看Linux是主流,所以这个一定要掌握。Android系统及其移动设备端的流行是Linux兴起来的主要原因,Linux能做为Android系统的内核,一是因为它是开源的,社区参与开发人员多,二是Linux的性能确实不错。
编译系统
不同的公司对嵌入式开发的编译系统会有不同的需求,如果是odm做Android手机的厂商,都是用google自家的编译系统,就是我们常说的Android编译三部曲(source,lunch和make),如果是其它公司的话可能会有基于shell或者python的自定义的编译系统,其实底层也是调用Makefile。
技术栈
如果是linux内核开发,那么要掌握这些技术的:硬件架构,片上系统,boot,软硬件裁剪和定制,内核编译烧写,驱动开发,功耗分析,协议i2c、spi、uart还有usb等。如果是涉及上层,那么需要掌握的技术:进程间通信,多线程开发,信号量和锁,图形界面,网络以及网络协议等。
现在嵌入式开发的工作岗位在变多,前景还算不错,全行业都整体性提升,所以加油干吧!
了解更多