这篇文章让小伙伴们久等了。算法
一年多以来,关于嵌入式开发学习路线、规划、看什么书等问题,被问得没有一百,也有大几十次了。可是无奈本身对这方面了解有限,因此每次都无法交代,搞得实在很差意思。编程
可是办法总归是有的,正如前篇文章《最近厚着脸皮联系了很多老同窗》所聊,虽然我本身不从事这些方向,但寻思了一下,个人同窗和朋友中,多少仍是有一些从事相关方向而且在一线(或曾在一线)工做过的,因此我就请他们帮忙一块儿梳理这几个我不熟悉领域的学习路线,此次嵌入式开发就是其中之一。后端
这篇文章之因此拖这么久,由于沟通实在太费时间了,毕竟大佬们都挺忙,何况梳理总结这件事情自己就比较繁琐,因此等到如今才发出来。网络
通过此次和同窗的交流,我本身也学到了不少。由于嵌入式方面的不少东西我也不懂,我也算学习了。数据结构
站在我我的角度来看,结合之前的学习体验。我以为嵌入式开发比互联网软开(好比Java后端)仍是要难一些的,好比咱们搞Java开发的,再怎么说,基本也都是用户态的东西,但嵌入式不少东西都深刻到了内核态,因此难度确定是有的,表如今几个方面吧:ide
整体来讲,仍是能够把嵌入式学习分为三个大的阶段:学习
首先基础学习阶段,这就包括通用编程基础(C语言、数据结构/算法、操做系统、计网、计组、Linux系统基础)和基本的硬件基础,扎实地掌握这两大基础,是后续持续发展和不断进步的动力源泉。操作系统
其次就是嵌入式应用编程阶段,或者说系统平台编程阶段。由于通常会以特定的嵌入式平台和特定的嵌入式操做系统为依托,熟悉这个系统平台上的编程方法和流程。以常见的ARM+Linux平台为例,须要掌握从内存管理到多任务编程、文件I/O、网络编程,甚至图形化界面编程等几个大的方面。3d
最后就是深刻嵌入式底层开发阶段,最多见的就是内核开发和驱动开发,这些统属于内核态开发范畴,因此须要对操做系统内部机制有所涉猎和理解,在此基础上须要掌握从系统移植到内核开发、驱动开发的各个细节,这是成神之路。blog
大致思路是这样,接下来看一下详细的学习路线和知识点梳理。
花了很长时间,就为了整理这张详细的知识路线脑图。固然因为时间有限、能力也都有限,毕竟嵌入式全体系实在太庞大了,包括我那作嵌入式的同窗,也不可能什么都懂,有些东西可能没覆盖到,不足之处,还但愿小伙伴们一块儿交流补充,一块儿完善进步。
注:图片上传后可能被压缩,如需无损版高清大图或PDF版文档,可直接在本公众号后台回复「嵌入式」三个字自取吧。
最后,按照总体的学习路线,再推荐一些对应的经典书籍:
此次就分享到这里吧,下篇见。
天天进步一点点
慢一点才能更快