电机控制通用实验工程可以移植到其他支持 FPU 和 TMU 的 C2000 MCU 控制器。以下步骤详细说明了如何移植实验练习代码。F28004x MCU 用作新目标 C2000 MCU 的示例。若要调整支持 SysConfig 的实验版本,请在以下全部说明中将 universal_motorcontrol_lab 替换为 universal_motorcontrol_syscfg。
- 浏览到 <install_location>\solutions\universal_motorcontrol_lab 文件夹,然后选择现有的器件特定实验文件夹之一。本示例中将使用“f28002x”文件夹,但可以使用任何文件夹。
- 在同一 universal_motorcontrol_lab 文件夹中创建所选器件特定实验的副本,并将名称更改为“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 文件,它们在默认情况下未使用且可以忽略。
- 通用电机控制实验使用 C2000Ware 器件驱动程序文件 device.c/h 中提供的引脚定义。必须针对新器件更新这些定义。
- 导航至新 C2000 MCU 的 C2000Ware 通用器件支持文件夹,位于 <install_location>\c2000ware\device_support\f28004x。在 ...\common\include 子文件夹中找到 device.h 文件。
- 将 device.h 文件复制到 <f28004x_lab_location>\drivers\include 文件夹,替换现有文件。
- 导航回新 C2000 MCU 的 C2000Ware 通用器件支持文件夹。在 ...\common\source 子文件夹中找到 device.c 文件。
- 将 device.c 文件复制到 <f28004x_lab_location>\drivers\source 文件夹,替换现有文件。
- 浏览到 <f28004x_lab_location>\ccs\motor_control 文件夹,并使用编辑器打开 projectspec 文件。CCS 使用该文件在用户工作区中生成工程文件夹,并包含对特定于器件的 C2000Ware 源文件的引用。
- 如果使用支持 SysConfig 的实验版本,请更新下面的粗体文本以指示新 C2000 MCU 的软件包。这行文本可在文件的器件定义部分中找到,这应该是第一个部分。
sysConfigBuildOptions --product ${C2000WARE_ROOT}/.metadata/sdk.json --device F28002x --package 80QFP --part F28002x_80QFP"
- 某些 C2000 MCU 具有与其他 C2000 MCU 不同的功能。更新此文件以反映这些差异。例如,F28002x MCU 支持快速整数除法 (FINTDIV),而 F28004x 则不支持。相关的处理器选项是“idiv_support”项。查找并删除所有“--idiv_support=idiv0”实例,因为 F28004x 不支持此函数。
- 如果您不确定需要进行哪些更改,请参阅 TMS320C28x 优化 C/C++ 编译器 v22.6.0.LTS 用户指南第 2.3 节使用选项更改编译器的行为 的表 2-1 处理器选项,其中详细介绍了每个选项的用途。
- 确定该器件与您选择的新 C2000 MCU 之间存在哪些差异。有关此过程的帮助,请参阅 C2000 实时控制外设参考指南,其中介绍了器件和外设版本之间的差异。
- 根据需要在 projectspec 文件中进行调整。
- 找到文件中的所有“28002x”实例并替换为“28004x”。
- 在文件中找到“280025C”的所有实例。
- 第一个结果应在文件开头附近,指定工程器件。更新粗体文本以正确显示为该工程选择的新 C2000 MCU。
<project
name="universal_motorcontrol_lab_f28004x"
device="TMS320F280025C"
- 最后两个结果应位于文件的最后一个部分。以下摘录可在 ccxml 文件“复制文件”操作的“路径”中找到。
/TMS320F280025C_LaunchPad.ccxml
/TMS320F280025C.ccxml
- 更新粗体文本以正确指示新 C2000 MCU 系列器件的通用目标配置文件,这些文件可以在之前引用的器件支持文件夹中的...\common\targetConfigs 下找到。对于所有 F28004x 器件,粗体文本应更改为“TMS320F280049C”。
- “280025C”的所有其他结果应位于注释中。为了确保文档准确性,建议更新这些内容,但并不重要。
- 将“universal_motorcontrol_lab_f28004x”工程导入 CCS。
- 请注意,导入工程后,CCS 可能会显示错误,指示未找到 f28004x_headers_nonbios.cmd 文件。此错误不会影响性能,但可能会增加调试的难度。在该文件中执行的内存分配只被调试环境监视窗口使用,在节 3.5.1.2的增量式构建阶段中进行了说明。
- 若要充分利用调试环境监视窗口,请遵循本节中与 f28002x_flash_lib_is.cmd 文件以及 f28002x_headers_nonbios.cmd 文件相关的所有说明。
- 打开 cmd 文件并根据所选的器件更改存储器映射。对于完全不熟悉此类型文件的用户,请参阅 TI 链接器命令文件入门,了解深入介绍和基本使用指南。
- 与针对旧器件修改 cmd 文件相比,修改某个通用 C2000Ware cmd 文件(例如 28004x_generic_flash_lnk.cmd 文件)可能更容易。这些文件位于器件支持文件夹的 ...\common\cmd 子文件夹中。在这种情况下,应使用工程的原始 cmd 文件作为参考。
- 如果使用 f28004x_headers_nonbios.cmd 文件,则通用 C2000Ware cmd 文件位于器件支持文件夹的 ...\headers\cmd 子文件夹中。
- 按照基于 F28004x 的硬件套件的节 4.1.2中所述,修改 GPIO、PWM、ADC 和 CMPSS 模块以及 hal.h 文件中的定义。
- 重新编译实验工程。工程中的所有错误或警告将显示在 CCS 控制台窗口中。按照消息提示修复所有错误或警告。器件之间的 driverlib API 有一些差异,此时必须考虑到这一点。
- 要添加函数以配置和使用新 C2000 MCU 中存在但在这些文件的原始 C2000 MCU 源代码中不存在的外设,请参阅 C2000Ware 或 MotorControlSDK 中的示例函数。例如,F28004x 具有可编程增益放大器 (PGA),而 F28002x 没有。
- 使用不同的构建级别以增量方式运行工程,以测试和验证功能。
- 如果要多次导入该工程,则最好更新工程的源文件,以便只需执行一次这些更改。导航至 <f28004x_lab_location> 文件夹。
- 在 ...\cmd 子文件夹中,将 f28004x_flash_lib_is.cmd 文件替换为所导入 F28004x 工程中的更新文件。
- 在 ...\drivers\source 子文件夹中,将 hal.c 文件替换为所导入的 F28004x 工程中的更新文件。
- 在 ...\drivers\include 子文件夹中,将 hal.h 文件替换为所导入 F28004x 工程中的更新文件。