0

在工作中,我們使用C2000核心的Texas Instruments TMS320F DSP微控制器。我們從一個代碼庫和一個核心產品開始。客戶要求導致許多修改分支從我們的svn倉庫進行配置,然後在不同的產品範圍內進行。它們都共享相同的控制單元PCB和微控制器,有時外接不同的外設。一個不同配置的例子是使用修改的ADC例程和序列器配置(以及用於ADC校準的不同偏移和比例值)以及不同的控制例程/ PID調整值等的一個產品。使用c2000從單個代碼庫生成多個產品固件德州儀器代碼編輯器

它已成爲負責維護和更新產品的所有不同固件項目,並且我是唯一的開發人員。我們反思了一些想法,例如使用差異報告來最小化所有固件項目之間的差異,然後使用#define和#ifdef和#ifndef語句正確設置#define,以有條件地編譯所有固件項目,並且一次構建所有10個固件立刻。

所以有可能設置構建環境以饋入#define _BUILD_CFG_1,完成編譯,然後饋入#define _BUILD_CFG_2等,然後我剩下10個已編譯的固件,所有版本相同但是具有不同的配置。

我們的另一個想法是設置閃存並在運行時運行不同的代碼段,具體取決於閃存中代表不同的配置的某些位。這意味着我們對所有產品都有一個固件。由於我們的其他設置以及它們的工作方式,此方法可能不實用。我們也關注性能的下降,因爲我們需要CPU資源。

僅供參考,我們正在使用德州儀器的Code Composer V4。

還有其他的方法嗎?

非常感謝!

回答

1

IIRC Code Composer創建一個Makefile以在所有漂亮的IDE下運行。

您可以創建另一個Makefile來設置適當的變量,調用IDE創建的Makefile,然後將生成的可執行文件移動到其最終的安放位置。