毫无疑问,嵌入式专业是当前最有发展前途、最热门的IT应用领域之一。常见的手机、PDA、机顶盒、高清电视(HDTV)、路由器、汽车电子、可视电话、DVD、MP3、数码相机、医疗仪器、航天航空设备等等都是典型的嵌入式系统。此外,嵌入式技术还经常在工业机器人、医疗设备、卫星、飞行系统等领域扮演着更为重要的角色。随着消费家电的智能化,嵌入式更显重要。
嵌入式系统经过几年的迅猛发展,嵌入式产品渗入各个行业。嵌入式开发已经成为当前最热门最有发展前途的行业之一。业内人士认为,目前嵌入式行业至少存在30-50万的人才缺口,而且还在持续增加。
不过嵌入式是一门深奥的学问,如何才能学习好嵌入式:
(1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。
推荐书籍:《The C Programming Language》中译版本。
(2) 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3) Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。
推荐书籍:《UNIX环境高级编程》(第2版)
(4)了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
(5) 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6) 驱动开发
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。