当前位置: 首页 > Linux

花了我半个月的时间整理了这篇嵌入式开发学习指南(学习路线+知识点整理)

时间:2023-04-06 11:10:31 Linux

抱歉让这篇文章久等了,小伙伴们久等了。一年多来,关于嵌入式开发的学习路线、规划、看什么书的问题,问的不止一百遍,也有几十遍。但无奈,自己对这方面的了解有限,每次都解释不清,实在不好意思。但总有办法。就像上篇文章《最近厚着脸皮联系了不少老同学》所讨论的,虽然我自己并没有从事这些领域,但仔细想想,我的一些同学和朋友仍然在从事相关领域,并且在第一线(或者已经工作过)在一线),所以我请他们帮忙梳理一下我不熟悉的这些领域的学习路线。这种嵌入式开发就是其中之一。这篇文章之所以拖了这么久,是因为沟通太费时间了。毕竟大佬们都很忙,整理总结这件事比较麻烦,所以才等到现在才发表。本文已收录在开源项目:https://github.com/hansonwang99/JavaCollection,包含不同方向的自学编程路线,面试题/面经合集,技术系??列文章等资源持续更新中...嵌入公式开发难吗?通过这次与同学的交流,我自己也学到了很多。因为很多嵌入式的东西我都不懂,还在学习中。从我个人的角度,结合之前的学习经验。我觉得嵌入式开发比互联网软开放(比如Java后端)难多了。比如我们从事Java开发。毕竟基本上是用户态,但是很多嵌入式的东西是深入内核的。state,所以肯定有一定的难度,体现在几个方面:第一,嵌入式是底层,软硬件都要懂,对能力的要求高很多;其次,嵌入式开发的学习门槛也很高。更高,和linux平台下的开发流程一样,很多人不习惯,摸不着头脑;而且嵌入式学习的正反馈可能比较慢,尤其是在早期学习阶段,导致没有成就感,坚持不下去了,所以经常放弃。不过话说回来,IT就是这样。等级越低,对人的能力的培养就越高,所以能力是在提升的。所以反过来,如果嵌入式做得好,我觉得会是互联网的问题。不算大,到时候就是降维打击了。总体学习思路嵌入式学习总体上可以分为三个大阶段:第一,基础学习阶段,包括通用编程基础(C语言、数据结构/算法、操作系统、网络规划、组规划、Linux系统基础))和基础硬件基础,扎实把握好这两大基础,才是继续发展进步的动力源泉。二是嵌入式应用编程阶段,或者说系统平台编程阶段。因为它一般是基于特定的嵌入式平台和特定的嵌入式操作系统,并且熟悉在这个系统平台上的编程方法和过程。以常见的ARM+Linux平台为例,从内存管理到多任务编程、文件I/O、网络编程,甚至图形界面编程,都需要掌握几大方面。最后一步就是深入嵌入式底层开发阶段。最常见的是内核开发和驱动程序开发。内核开发和驱动开发的细节,才是成神之路。大体思路是这样的,下面来看看详细的学习路线和知识点。学习路线+知识梳理花了好长时间,才整理出这张详细的知识路线脑图。当然,由于时间有限,能力有限,毕竟整个嵌入式系统实在是太大了,包括我做嵌入式的同学,也不可能什么都懂。合作伙伴共同交流,共同补充,共同提高,共同进步。书籍推荐最后,根据整体学习路线,推荐一些相应的经典书籍:后记:本文已收录到开源项目:https://github.com/hansonwang99/JavaCollection,里面包含自学编程路线和不同方向的面试题集/面经文,以及一系列技术文章等等,资源持续更新中……这次就分享到这里吧,下篇文章见。每天进步慢一点才能快一点