初级阶段
掌握单片机的内部结构,UART、IIC等协议详情,学会看数据手册
进阶阶段
掌握STM32库函数编程 寄存器操作
复杂外设:DMA、ADC、DAC、PWM、IIc、SPI、jtag调试、中断、时钟系统
高级模块:蓝牙、WiFi、摄像头、键盘鼠标、USB。
cortex M3内部结构:掌握STM32的内部结构和cortex M3内核结构,书籍:《cortex M3/M4权威指南》。
C语言进阶:C指针、数据结构。书籍:《C和指针》《C primer》《数据结构与算法分析》
实时操作系统:freertos 或者 ucos操作系统。下载源码,学会移植,学习操作系统基本结构,深入掌握操作系统调度和内存管理。源码+手册+大佬博客
应用层:学习一点C++或者C#,常识写上位机程序,Windows的应用程序。
【自我测试】STM32+摄像头+蓝牙+上位机。STM32读取摄像头的数据,通过蓝牙传输给PC电脑上位机,并且上位机显示出来。
【自我测试】如果是大学生,可以积极参加,电子设计竞赛,智能汽车竞赛,等各种电子类比赛。实战中提高速度和效果最快。
职业阶段:
兴趣or赚钱。看市场需求,一般嵌入式大厂大都要求有Linux开发经验,
按照顺序:先学会使用Linux,再学习Linux内核。Linux十分庞大,弄懂一个组件或者一项就能找个不错的工作。
Linux应用层编程、Linux系统编程、ARM体系结构(嵌入式一般先学ARM架构,其他架构工作中再学)
Linux驱动、Linux内核基本模块:内存管理,任务调度,文件系统。弄懂一个需要很多时间。
书籍:《Unix环境高级编程》《Linux内核设计与实现》《Linux系统编程》《深入理解Linux内核》《Linux设备驱动开发详解》《Linux设备驱动程序内核机制》《Linux内核情景分析》《ARM体系结构与编程》《ARM嵌入式系统开发:软件设计与优化》
多做学习总结,自己得能讲清楚。
掌握好基础,掌握学习新知识的方法,工作中,找到数据手册就可以开发了。
有做芯片的、手机的、安防、无人机、通信、家电,各行各业都离不开嵌入式。前景还是可以的,但是一定要坚持深入学习,浅层的皮毛都可以做,含金量低。
C语言、实时操作系统或者Linux操作系统、ARM芯片架构,这三点掌握的比较深入了,再工作中换其他硬件平台都可以较快的上手。