嵌入式行业工作5年之后,如果做的是单片机软件开发,大大小小的项目都有做过,M0、M3、M4的内核国内和国外的单片机都开发过,这个时候就会感觉单片机开发没什么难度,基本都是复制粘贴,软硬件联调,这个时候就会进入技术瓶颈期。
以下以产品研发的路线分析个人技术成长过程,通过产品研发上升阶梯梳理技术栈。
初期阶段
首先,入行时一般会以学校学的51单片机作为切入点,会一些简单的寄存器操作,能够驱动外设,像UART、IIC、TIM、EXTI、ADC等等,这个阶段是从学校到公司做项目实现理论到实践的过度,应该以简单的传感器数据采集类项目作为突破点,先调用一些简单的外设,处理一些简单的逻辑。
发展阶段
开发的产品从一些简单的数据采集类,变成多数据采集,通信,控制逻辑的产品,单片机也51转到STM32,通过STM32开发一些裸机类的产品,这时候的项目难度增加,需要数据处理、通信协议解析及控制逻辑。
提升阶段
开始从裸机开发转向RTOS系统开发,需要熟悉常用的实时操作系统:UCOS、Freertos、RTT等,把功能类、数据类按照不同的模块,划分成不同的任务,这个阶段软件设计考虑模块化、分层设计,设计的软件符合低耦合高内聚。
技术瓶颈突破
这个阶段需要一个大平台,做的产品要有架构设计,在一个稳定的架构下多人协作设计不同的模块和软件层次,如果能参与这样的项目,对于软件编程思想会有一个提升,更多的会运用面向对象的思想去设计,剥离硬件平台的依赖,能够以更低的时间成本切换到不同的硬件平台。
架构师
这是软件设计类的最终归宿,这种一般适用于同产品形态,并且有一定复杂度的项目。