ARTICLE · 1090231
嵌入式软件如何做组件化?
嵌入式软件如何做组件化?
嵌入式软件如何做组件化?
上个项目写了个环形缓冲区,新项目又要用。我直接复制过来改了改类型名,跑起来却不稳定。
排查半天才发现,原代码有个隐藏假设:缓冲区大小必须是2的幂次。这次给的数不是,取模逻辑直接翻车。代码复用失败,往往不是因为写得烂,而是当初压根没想过会被别人甚至一年后的自己拿来用。
嵌入式组件化想做到“拿来就用”,得死磕三件事:
硬件依赖收进一个地方:缓冲区只管数据,不管怎么发出去。硬件操作全扔给调用者。
参数化,绝不写死:大小、类型别在组件里定。要么让调用者传进来,要么用配置结构体,实在受限再用宏定义。
把隐式依赖摆到台面上:比如日志组件别偷偷指望有 printf。把输出函数当参数传进来,换到裸机也能跑。
头文件就是说明书,必须写清前置条件和线程安全。要是头文件里暴露了全局变量,或者初始化函数偷偷去调别的模块,那都是假组件。
最后防一手过度设计。拿给别人用,如果半小时都写不出第一个用例,这接口就太复杂了。
原文嵌入式软件如何做组件化?让代码真正做到"拿来就用"
福建,1小时前,