在工作中,我们使用德州仪器公司的TMS320F DSP微控制器。我们一开始只有一个代码库和一个核心产品。客户的需求导致我们的svn存储库在一定程度上为不同的配置和不同的产品创建了许多修改的分支。它们都共享相同的控制单元、印刷电路板和微控制器,有时外部连接不同的外围设备。不同配置的一个例子是使用修改的ADC例程和定序器配置(以及用于ADC校准的不同偏移量和刻度值)的产品,以及不同的控制程序/ PID调整值等。
维护和更新产品的所有不同固件项目已经成为一种负担,而我是唯一的开发人员。我们正在跳跃一些想法,比如使用差异报告来最小化所有固件项目之间的差异,然后使用正确的设置#定义和#ifdef和#ifndef语句来有条件地编译所有固件项目,并一次性构建所有10个左右的固件。
所以有没有可能将构建环境设置为输入#define _BUILD_CFG_1,完成编译,然后输入#define _BUILD_CFG_2等等,然后我剩下10个已编译的固件,都是相同的版本,但具有不同的配置。
我们的另一个想法是设置闪存,并在运行时根据闪存中代表不同配置的某些位运行不同的代码部分。这意味着我们有一个适用于所有产品的固件。由于我们的其他设置以及它们的工作方式,这种方法可能并不实用。我们还担心性能的任何下降,因为我们的CPU资源很紧张。
仅供参考,我们使用的是德州仪器的Code Composer V4。
还有别的路要走吗?
非常感谢!
发布于 2013-04-04 19:47:29
IIRC Code Composer创建了一个Makefile,在所有漂亮的IDE下运行。
您可以创建另一个Makefile来设置适当的变量,调用IDE创建的Makefile,然后将生成的可执行文件移动到它的最终位置。
https://stackoverflow.com/questions/15799456
复制相似问题