单片机、嵌入式Linux开发大学自学路径

笔者所修读的专业为物联网工程,物联网工程是一门新兴的、热门的专业,其所涉及的学科更是又多又杂,既有计算机方向的编程语言(如C、C++、Java、Python等)、数据结构与算法、操作系统、移动端应用开发、机器学习等;软硬结合的方向有数字电路单片机开发、嵌入式Linux开发等;硬件、电路方向有电路分析、数字电路、模拟电路、传感器原理、RFID、FPGA开发等;涉及信号处理的有信号与系统、通信原理等。这就意味着物联网工程的发展方向非常多样,学得多涉猎得广但是却没有在某个方向上非常地深入,同学们可以在本科期间学习一些技能,为日后就业、或者考研的方向选择做一个充分的准备,笔者所就业的方向为嵌入式开发。电子信息、通信工程、电子科学与技术等专业,或者要转行嵌入式开发的亦可以参考一下。

目录

  • 学习路径
    • 电路原理图学习
    • 单片机的学习
    • 实时操作系统的学习
    • 参加比赛
    • 嵌入式Linux的学习

学习路径

网上有许许多多的教程,特别是B站,笔者几乎全部的课程都是看B站学习的。在学习之前,大学的相关课程需要有所掌握。

电路原理图学习

若要入门嵌入式、可以先从绘制PCB板开始学习、像Altium Designer、立创PCB、Allegro等等,这里要说的是,如果以后有想法往像PCB Layout这种画板的岗位发展的话可以深入地去学习一下这些软件的使用,如果是要做嵌入式开发的话可以简单地学习一下,在嵌入式开发里面主要的要求是将开发板的原理图看懂,不一定需要深入掌握这些软件的使用(小厂可能会要求啥都会吧),具体看读者的意向。

单片机的学习

可以看懂开发板的原理图之后就可以开始学习单片机啦(读者要已经有C语言基础编程的能力),笔者这边的建议是先学习8051,再学习stm32,先学习8051相当于掌握单片机的原理,像时钟、寄存器等概念,笔者所看的课程是B站up主“江科大自化协”的课,其他的课也讲得很好。再后面可以学习stm32,stm32结构比8051复杂,性能要高,功能要丰富,这里笔者看的是正点原子的课,开发板有使用过正点原子的mini板、精英板、探索板等,也有很多选择,像野火、韦东山老师等等,都是非常优秀的课程,时间充足的话可以多种课程比较着看,互相补充。
这里要特别说明,学习嵌入式开发一定需要有开发板,没有开发板,相当于纸上谈兵。
到这个阶段,就可以做一点小小的项目,比如用8051单片机做一个计算器、电子钟,用stm32去做一下图像采集系统、智能车、蓝牙音箱等。开发板可以自己绘制、焊接元器件,这样从硬件到软件层面去完成,乐趣非凡。

实时操作系统的学习

上面学习单片机主要还是裸机的使用,真正在公司开发单片机产品一般都基于实时操作系统(RTOS)开发,比如UCOS、FreeRTOS、RT-Thread等,正点原子等也有相关的教程。亦有网络编程,图形化界面系统(比如LVGL)等。到这里基本的MCU开发就算是入门了。

参加比赛

大学期间可以参加一些相关的比赛,如全国大学生电子设计竞赛等(挑战杯偏学术性,互联网+也不是侧重技术的,不太推荐),珍惜机会参加比赛,锻炼能力,这些都可以作为很好的项目经历。

嵌入式Linux的学习

RTOS学习相当于对嵌入式Linux的操作系统原理上的一些知识打下基础,若想直接学习Linux亦可以。嵌入式Linux开发涉及的方面,有应用开发、驱动开发、bootloader移植等等,其实就是相当于一个plus的单片机,如果是全面地学习嵌入式Linux的开发,比MCU开发涉及到内容要多很多,也更为复杂,需要有单片机的基础作为支撑。笔者目前主要还是在这个阶段前进,可以根据像前面所说到的韦东山老师、正点原子等家的视频学习。具体内容以及找工作需要准备的点,笔者后续再追更,敬请关注!

你可能感兴趣的:(嵌入式,MCU,单片机,单片机,学习,stm32,mcu,linux)