自从读研以后,一个问题一直萦绕在我的脑海:
嵌入式研究方向究竟该学会哪些东西?
个人认为研究生想好自己的专业道路很有必要,在过去的一年里,盲目的做着导师给的项目,缺乏一个系统的学习,本科学到的知识也是零零散散,直到现在做项目依旧是靠CSDN、度娘的支撑,一直陷入这种情景,内心感觉很是煎熬,总是会了但又没完全会,因此想系统的学习一遍嵌入式的相关知识,打牢自己的基础,但又苦于无从下手,加之导师项目繁多、研究生课程繁重,系统学习嵌入式的计划一直搁浅,也不知道从何下手, 直到前段时间,看到了一个关注的公众号的一篇推文:嵌入式学习路线+资料放送
如同醍醐灌顶,瞬间点醒了我,觉得博主讲的很有道理,随即开通属于我的博客,在这里分享我的学习历程以及平时学习工作中项目上遇到的问题以及总结出的经验。
废话不说进入正题:
第一阶段:语言
- C语言基础,地址指针、结构体、文件操作重点学习(查漏补缺),学习地址:菜鸟教程
- 捎带学习python、golang以及C++,学习地址:菜鸟教程
第二阶段:单片机
- 51系列单片机基础,大致浏览,查漏补缺,学习地址:哔哩哔哩《郭天祥十天带你精通51单片机》
- STM32系列单片机,透彻理解学习(触摸屏、GUI、SD、GPS等),并带入 ucos-Ⅱ、FreeRTOS学习嵌入式操作系统,推荐使用野火系列或正点原子,看个人所需
第三阶段:Linux操作系统
- 学习Linux操作系统下的各种协议,建议通过Linux开发板深入了解各种通讯协议
- 学习用户程序、Qt,同时带入C++的相关知识熟练运用
- 透彻学习linux系统的内核与驱动部分,强烈建议通过Linux开发板深入透彻学习,熟练掌握系统移植
- 做综合性强的项目来熟练各种操作以及对各种知识点的运用
第四阶段:拓展学习
- 了解FPGA、ZYNQ等热门芯片
- 学会制作微信小程序来控制自己的硬件部分,熟悉嵌入式所需要的web前端知识点
- 了解后端知识:docker、mysql、redis等工具。尝试搭建服务器来管理终端数据
- 熟练使用Git等开发工具
目标:研究生毕业后简历上可以书写一下内容:
-
熟练C/C++,熟练使用cortex-M3、A9芯片,具有stm32裸机开发经验,以及SPI、232、485、IIC、CAN总线等协议的使用经验;
-
熟练掌握arm+Linux嵌入式应用开发,驱动开发,TCP/IP网络编程等,精通QT图形界面开发。
-
熟悉FPGA软件,有zynq开发经验。
-
熟悉Python/golang后端,物联网云端开发;
-
熟练使用git开发工具。
如有什么问题欢迎联系我一起讨论