大型量产固件的工程实践(八):多款同类型芯片驱动的统一抽象

大型量产固件的工程实践(八):多款同类型芯片驱动的统一抽象 大型量产固件的工程实践(八):多款同类型芯片驱动的统一抽象本文是《大型量产固件的工程实践》专栏第 8 篇。上一篇:第 7 篇实战《日志打印实现源码与使用范例》 | 下一篇:第 9 篇《GPIO 模拟 SPI 驱动设计》一、问题:几十款同类芯片怎么管一个支持多产品线的固件,往往要面对"同一种功能、几十款芯片"的局面:传感器几十款(不同精度、不同接口、不同寄存器);以太网 PHY 好几款(不同厂商、不同扩展页);温度传感器、ADC、Flash 各有若干型号。如果为每一款芯片都写一套独立的调用逻辑,上层代码会被"型号判断"淹没。正确做法是:统一接口 + 注册表 + 按型号分发。二、统一接口:函数表先抽象出这类芯片的"共性操作",定义成一张函数指针表:// 传感器驱动接口(抽象)typedefstruct{