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