嵌入式开发是软件和硬件的结合,需要对软件和硬件都有一定的了解,所以学习起来比较费力,学习成本也很高,所以他的回报也是一个很长的过程。嵌入式有很多东西要学,主要有5个方面。
语言:C
C是必须学的,它是较基础的,如果你想学汇编,你需要知道如何根据datasheet来实现软硬件交互。如果涉及framework,则需要使用C++,因为硬件抽象层都是用C++编写的。
操作系统
嵌入式开发的操作系统有很多:Linux、vxworks、mips、wince、QNX……但是目前Linux是主流,所以这个一定要掌握。Android系统和移动设备的普及是Linux兴起的主要原因。Linux作为Android系统的内核,它是开源的,社区中有很多开发者。然后,Linux的性能也确实不错。
构建系统
不同的公司对嵌入式开发的编译系统有不同的要求。如果说odm是安卓手机的厂商,他们都使用谷歌自己的编译系统,也就是我们常说的安卓编译三部曲(source、lunch、make)。如果是别的公司,可能有基于shell或者python的自定义来构建系统,其实底层也调用了Makefile。
技术栈
如果是linux内核开发,那么你必须掌握这些技术:硬件架构、片上系统、引导、软硬件剪裁与定制、内核编译与编程、驱动开发、功耗分析、协议i2c、spi、uart,还有usb等。如果涉及到上层,那么需要掌握的技术:进程间通信、多线程开发、信号量和锁、图形界面、网络和网络协议等。
现在嵌入式开发的岗位比较多,前景还不错,整个行业整体都在提升,如果你决心从事这一块,那就赶紧来学习吧!加油!