電機控制通用實驗工程可以移植到其他支持 FPU 和 TMU 的 C2000 MCU 控制器。以下步驟詳細(xì)說明了如何移植實驗練習(xí)代碼。F28004x MCU 用作新目標(biāo) C2000 MCU 的示例。若要調(diào)整支持 SysConfig 的實驗版本,請在以下全部說明中將 universal_motorcontrol_lab 替換為 universal_motorcontrol_syscfg。
- 瀏覽到 <install_location>\solutions\universal_motorcontrol_lab 文件夾,然后選擇現(xiàn)有的器件特定實驗文件夾之一。本示例中將使用“f28002x”文件夾,但可以使用任何文件夾。
- 在同一 universal_motorcontrol_lab 文件夾中創(chuàng)建所選器件特定實驗的副本,并將名稱更改為“f28004x”。<install_location>\solutions\universal_motorcontrol_lab\f28004x 將是您最終移植的實驗的位置,在下面會稱為 <f28004x_lab_location>。
- 編譯器使用 cmd 文件來映射 C2000 MCU 的存儲器。瀏覽至 <f28004x_lab_location>\cmd 文件夾,并更新 f28002x_flash_lib_is.cmd 文件的名稱,以反映新的 f28004x 器件。請注意,該文件夾中存在多個其他 cmd 文件,它們在默認(rèn)情況下未使用且可以忽略。
- 通用電機控制實驗使用 C2000Ware 器件驅(qū)動程序文件 device.c/h 中提供的引腳定義。必須針對新器件更新這些定義。
- 導(dǎo)航至新 C2000 MCU 的 C2000Ware 通用器件支持文件夾,位于 <install_location>\c2000ware\device_support\f28004x。在 ...\common\include 子文件夾中找到 device.h 文件。
- 將 device.h 文件復(fù)制到 <f28004x_lab_location>\drivers\include 文件夾,替換現(xiàn)有文件。
- 導(dǎo)航回新 C2000 MCU 的 C2000Ware 通用器件支持文件夾。在 ...\common\source 子文件夾中找到 device.c 文件。
- 將 device.c 文件復(fù)制到 <f28004x_lab_location>\drivers\source 文件夾,替換現(xiàn)有文件。
- 瀏覽到 <f28004x_lab_location>\ccs\motor_control 文件夾,并使用編輯器打開 projectspec 文件。CCS 使用該文件在用戶工作區(qū)中生成工程文件夾,并包含對特定于器件的 C2000Ware 源文件的引用。
- 如果使用支持 SysConfig 的實驗版本,請更新下面的粗體文本以指示新 C2000 MCU 的軟件包。這行文本可在文件的器件定義部分中找到,這應(yīng)該是第一個部分。
sysConfigBuildOptions --product ${C2000WARE_ROOT}/.metadata/sdk.json --device F28002x --package 80QFP --part F28002x_80QFP"
- 某些 C2000 MCU 具有與其他 C2000 MCU 不同的功能。更新此文件以反映這些差異。例如,F(xiàn)28002x MCU 支持快速整數(shù)除法 (FINTDIV),而 F28004x 則不支持。相關(guān)的處理器選項是“idiv_support”項。查找并刪除所有“--idiv_support=idiv0”實例,因為 F28004x 不支持此函數(shù)。
- 如果您不確定需要進(jìn)行哪些更改,請參閱 TMS320C28x 優(yōu)化 C/C++ 編譯器 v22.6.0.LTS 用戶指南第 2.3 節(jié)使用選項更改編譯器的行為 的表 2-1 處理器選項,其中詳細(xì)介紹了每個選項的用途。
- 確定該器件與您選擇的新 C2000 MCU 之間存在哪些差異。有關(guān)此過程的幫助,請參閱 C2000 實時控制外設(shè)參考指南,其中介紹了器件和外設(shè)版本之間的差異。
- 根據(jù)需要在 projectspec 文件中進(jìn)行調(diào)整。
- 找到文件中的所有“28002x”實例并替換為“28004x”。
- 在文件中找到“280025C”的所有實例。
- 第一個結(jié)果應(yīng)在文件開頭附近,指定工程器件。更新粗體文本以正確顯示為該工程選擇的新 C2000 MCU。
<project
name="universal_motorcontrol_lab_f28004x"
device="TMS320F280025C"
- 最后兩個結(jié)果應(yīng)位于文件的最后一個部分。以下摘錄可在 ccxml 文件“復(fù)制文件”操作的“路徑”中找到。
/TMS320F280025C_LaunchPad.ccxml
/TMS320F280025C.ccxml
- 更新粗體文本以正確指示新 C2000 MCU 系列器件的通用目標(biāo)配置文件,這些文件可以在之前引用的器件支持文件夾中的...\common\targetConfigs 下找到。對于所有 F28004x 器件,粗體文本應(yīng)更改為“TMS320F280049C”。
- “280025C”的所有其他結(jié)果應(yīng)位于注釋中。為了確保文檔準(zhǔn)確性,建議更新這些內(nèi)容,但并不重要。
- 將“universal_motorcontrol_lab_f28004x”工程導(dǎo)入 CCS。
- 請注意,導(dǎo)入工程后,CCS 可能會顯示錯誤,指示未找到 f28004x_headers_nonbios.cmd 文件。此錯誤不會影響性能,但可能會增加調(diào)試的難度。在該文件中執(zhí)行的內(nèi)存分配只被調(diào)試環(huán)境監(jiān)視窗口使用,在節(jié) 3.5.1.2的增量式構(gòu)建階段中進(jìn)行了說明。
- 若要充分利用調(diào)試環(huán)境監(jiān)視窗口,請遵循本節(jié)中與 f28002x_flash_lib_is.cmd 文件以及 f28002x_headers_nonbios.cmd 文件相關(guān)的所有說明。
- 打開 cmd 文件并根據(jù)所選的器件更改存儲器映射。對于完全不熟悉此類型文件的用戶,請參閱 TI 鏈接器命令文件入門,了解深入介紹和基本使用指南。
- 與針對舊器件修改 cmd 文件相比,修改某個通用 C2000Ware cmd 文件(例如 28004x_generic_flash_lnk.cmd 文件)可能更容易。這些文件位于器件支持文件夾的 ...\common\cmd 子文件夾中。在這種情況下,應(yīng)使用工程的原始 cmd 文件作為參考。
- 如果使用 f28004x_headers_nonbios.cmd 文件,則通用 C2000Ware cmd 文件位于器件支持文件夾的 ...\headers\cmd 子文件夾中。
- 按照基于 F28004x 的硬件套件的節(jié) 4.1.2中所述,修改 GPIO、PWM、ADC 和 CMPSS 模塊以及 hal.h 文件中的定義。
- 重新編譯實驗工程。工程中的所有錯誤或警告將顯示在 CCS 控制臺窗口中。按照消息提示修復(fù)所有錯誤或警告。器件之間的 driverlib API 有一些差異,此時必須考慮到這一點。
- 要添加函數(shù)以配置和使用新 C2000 MCU 中存在但在這些文件的原始 C2000 MCU 源代碼中不存在的外設(shè),請參閱 C2000Ware 或 MotorControlSDK 中的示例函數(shù)。例如,F(xiàn)28004x 具有可編程增益放大器 (PGA),而 F28002x 沒有。
- 使用不同的構(gòu)建級別以增量方式運行工程,以測試和驗證功能。
- 如果要多次導(dǎo)入該工程,則最好更新工程的源文件,以便只需執(zhí)行一次這些更改。導(dǎo)航至 <f28004x_lab_location> 文件夾。
- 在 ...\cmd 子文件夾中,將 f28004x_flash_lib_is.cmd 文件替換為所導(dǎo)入 F28004x 工程中的更新文件。
- 在 ...\drivers\source 子文件夾中,將 hal.c 文件替換為所導(dǎo)入的 F28004x 工程中的更新文件。
- 在 ...\drivers\include 子文件夾中,將 hal.h 文件替換為所導(dǎo)入 F28004x 工程中的更新文件。