这里我简单记录一下我的学习经历以及过程中得到的一些感悟,希望能帮助初学者少走弯路。
1、嵌入式包括哪些方向?
– 微控制器开发
这个市场对单片机开发的需求还是很大的,因为制造企业还是很多的。 单片机更多的应用在工业控制、机械控制等方面,当然也会涉及到物联网。
单片机的门槛其实不高,但做好却不容易。
– Linux应用程序开发
市场对Linux应用程序的需求仍然很大。 基本上,那些参与 Linux 开发的人都需要它们。 他们的工作要求比司机更多。 比如我们做网络设备、路由器、POS机、楼宇对讲等。
Linux应用程序使用的编程语言基本都是C和C++,因此Linux应用程序开发必须掌握C语言。 大学教材中的C语言只是介绍,比如多线程、多进程、网络通信、以及其他一些库。 没有提到这些。
– Linux驱动程序开发
Linux驱动程序开发是最困难的,因为它涉及到很多方面。
您必须能够阅读原理图和数据表,了解许多驱动程序框架,然后能够编写一些应用程序来调试驱动程序。
除了以上三个大方向外,还有一些诸如FPGA或DSP之类的,但由于这些机会不多,我们就不详细讨论了。 建议大家在入门时从这几个方面入手。 这里我也整理了一份介绍材料,比较完整。 有需要的朋友可以索取一份。
2、学习嵌入式时,应该学习哪些基础知识?
1.C语言
认真学习C语言,认真学习C语言,认真学习C语言,重要的事情说三遍。
C语言是嵌入式系统中的重中之重。 它是您开始使用嵌入式系统所需的工具,并且可以在您的工作中经常使用。
无论是开发嵌入式软件还是硬件,掌握C语言都是必须的。 尤其是对于将来致力于嵌入式软件开发的人来说,现在大多数都使用C语言。
2、操作系统
了解操作系统肯定有助于我们提高对硬件和软件的理解。
比如进程、线程,系统如何分配资源,系统如何管理硬件。 当然,这些你不用看书也能透彻理解。 如果你不能一下子理解,也没有关系。 阅读更多内容并将其与未来的项目经验相结合。 更好理解了。
还有linux或者wince下的编程,对以后的应用编程很有帮助。
当然,如果你是做手机的,可以学习MTK、Symbian、Android等操作系统。 Android也是基于Linux系统封装的,所以建议先学习Linux。
3.单片机/ARM
虽然现在51单片机用得越来越少,但在一些要求不高的项目中还是会用到。 个人感觉学习51就是学习一些基础知识,对后面学习其他芯片会有帮助。
例如,市场上广泛使用的STM32和ARM系列芯片。 有多种系列(L0、F0、F1、F4等),基本相同。 学习其中一个后,您基本上可以在几分钟内开始学习其他内容。
如果你了解了以上所有知识,那么是时候阅读一些优秀的代码了。 当然,最重要的是多做事! 如果你想深入学习,这里推荐一个学习课程,里面有很多实际案例,而且不需要开发板。 适合初学者,而且不花钱。 您可以点击下面的卡片开始免费学习。
3. 有哪些书值得推荐?
嵌入式有很多东西可以深入学习。 这里有几本书对于入门来说是必不可少的,并且对我非常有帮助。
《C 入门增强版》
《C程序设计语言》
《新概念51单片机C语言教程》
《Linux命令行与shell脚本编程百科全书》
《嵌入式Linux应用开发标准教程》
《Linux C编程实践》
《Linux/UNIX系统编程手册》
《C++入门加强版》
《LINUX设备驱动》
《嵌入式Linux应用开发完全手册》
最后,这篇文章的内容更多的是关于学习路线和方向的讨论,我有更多的主观体验。 至于具体怎么学,看书和教程,跟着老师走就可以了。 没有标准答案。
如果您目前想学习嵌入式但没有方向,或者在学习过程中遇到问题不知道如何解决,您可以点击下方卡片加入学习交流群,与行业大佬交流,也是一种升职的途径。
最好的学习时机永远是现在!
希望你能迈出学习的第一步,早日成为一名优秀的嵌入式工程师。