在工作中,我们使用 C2000 内核 Texas Instruments TMS320F DSP 微控制器。我们从单一代码库和单一核心产品开始。客户要求导致从我们的 svn 存储库中针对不同的配置和不同的产品创建了许多修改分支。它们都共享相同的控制单元 PCB 和微控制器,有时会在外部连接不同的外围设备。不同配置的一个示例是使用修改后的 ADC 例程和序列器配置(以及 ADC 校准的不同偏移和比例值)以及不同控制例程/PID 调整值等的产品。
维护和更新产品的所有不同固件项目已成为负担,而我是唯一的开发人员。我们正在反复思考,例如使用差异报告来最小化所有固件项目之间的差异,然后使用正确设置 #defines 和 #ifdef 和 #ifndef 语句来有条件地编译所有固件项目,并且可能构建所有 10 个左右的固件立刻。
那么是否可以设置构建环境以输入#define _BUILD_CFG_1,完成编译,然后输入#define _BUILD_CFG_2 等,然后我剩下10个已编译的固件,所有版本相同但配置不同。
我们的另一个想法是设置闪存并在运行时根据闪存中代表不同配置的某些位运行不同的代码部分。这意味着我们对所有产品都有一个固件。由于我们的其他设置及其工作方式,此方法可能不实用。我们还担心性能下降,因为我们被迫占用 CPU 资源。
仅供参考,我们使用的是德州仪器 Code Composer V4。
还有其他方法吗?
非常感谢!