嵌入式是一门交叉学科,一个嵌入式电子产品(比如手机)从底层到上层,一般会涉及半导体芯片、电子电路、计算机、操作系统、多媒体等不同专业领域的知识,由于其碎片化的特点,**大多数入门学习者面临着:不知道学什么、怎么学的问题,因此本文我们对嵌入式不同技能进行分类和总结,让入门初学者能够有一个总体的学习思路。**
总体来说,还是可以把嵌入式学习分为三个大的阶段:
首先**基础学习阶段**,这就包括通用编程基础(C语言、数据结构/算法、操作系统、计网、计组、Linux系统基础)和基本的硬件基础,扎实地掌握这两大基础,是后续持续发展和不断进步的动力源泉。
其次就是**嵌入式应用编程阶段**,或者说系统平台编程阶段。因为一般会以特定的嵌入式平台和特定的嵌入式操作系统为依托,熟悉这个系统平台上的编程方法和流程。以常见的ARM+RTOS为例,需要掌握从通信协议到多任务编程、GUI开发、网络编程、外设基本操作、中间件和组件库的使用几个方面。
最后就是**深入嵌入式底层开发阶段**,最常见的就是内核开发和驱动开发,这些统属于内核态开发范畴,所以需要对操作系统内部机制有所涉猎和理解,在此基础上需要掌握从系统移植到内核开发、驱动开发的各个细节。
除此之外,在嵌入式软件中,我们也要了解**基本的编程设计模式和函数接口设计方法、简易上位机的制作、常用无线通信协议**等等内容。
以嵌入式入门需要的基础知识为例,可看以下思维导图:
文档的部分内容具体可见下文:
原文PDF下载,可点击链接:
https://github.com/leezisheng/Doc