很多产品迭代过程中会遇到多型号固件维护的难题,本教程利用芯源CW32系列统一的寄存器映射规则,实现90%以上的固件复用率。
核心设计思路
CW32系列同内核的不同型号MCU,外设寄存器的地址映射完全统一,仅外设数量、引脚数量存在差异,基于这个特性可以搭建统一的基础固件框架。
分步实现方法
1、搭建统一的底层驱动库,所有外设操作都通过统一的API函数完成,不直接操作硬件引脚的物理地址。
2、在芯片的OTP信息区预留一个字节的型号标识位,不同型号的芯片出厂时写入对应的标识值。
3、固件启动时先读取OTP区的型号标识,根据标识自动适配对应的外设资源,比如引脚数量少的型号自动禁用多余的GPIO初始化代码,外设少的型号自动跳过不存在的外设配置。
效果验证
同一套基础固件可以同时适配CW32F030C8T6、CW32F030K8T6等多个不同封装的型号,固件复用率达到90%以上,只需要编写少量适配代码就可以完成不同型号产品的开发,大幅缩短多型号产品的开发周期,降低固件维护成本。
|
|