This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F2800135:使用两个不同的 syscfg 文件从一个 IC 迁移到另一个 syscfg 时出现的错误

Guru**** 2457760 points
Other Parts Discussed in Thread: TMS320F2800135, TMS320F280039C, SYSCONFIG, C2000WARE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1490738/tms320f2800135-migration-error-from-one-ic-to-another-with-two-different-syscfg-file

器件型号:TMS320F2800135
主题中讨论的其他器件: TMS320F280039CSysConfigC2000WARE

工具/软件:

我正在开发一款 CCS 工程 运行的基础知识 TMS320F2800135和 TMS320F280039C 。 为此、我包含了两个 IC 的所有必要文件、并通过以下方式在这些文件之间手动切换:

  1. 排除不必要的文件 (SYSCFG 和链接器命令文件) IC。
  2. 包括所需文件 IC 图形用户界面面板。
  3. 更新目标配置 方法是选择正确的.ccxml文件。

打开它 TMS320F2800135连接到 TMS320F280039C 无构建错误 、但程序似乎没有运行:

  • 未观察到输出。
  • 程序似乎未在上执行 TMS320F280039C 频率。
  • 调试会话会运行、但行为不符合预期。

已采取的故障排除步骤:

  1. 已检查目标配置:

    • 已确保.ccxml中的正确文件处于活动状态 TargetConfigs
    • 已验证是否正确 目标处理器 被选中。
  2. 修改后的链接器命令文件:

    • 2800135_generic_ram_lnk.cmd切换到时排除TMS320F280039C
    • 280039_generic_ram_lnk.cmd而不包括在内。
  3. 已查看 SysConfig 和 DriverLib 依赖项:

    • 确保syscfg已更新以匹配选定的 IC。
    • 已验证中是否包含正确的 driverlib 文件 包括
  4. 调试观察结果:

    • 程序执行似乎受阻。
    • 控制台中没有错误消息。
    • 除非手动停止程序、否则寄存器不会实时更新。
    • 已尝试以实时模式运行、但值不会动态更新。

请求帮助:

  1. 是否需要其他工程设置 通信以在 TMS320F2800135和 TMS320F280039C 之间动态切换的通信吗?
  2. 是否应该对启动文件或内存配置进行任何修改?
  3. 使用 CCS 在这两个处理器之间切换时、是否存在任何已知问题?
  4. 可以采取哪些额外的调试步骤来确保代码在 TMS320F280039C 上正确运行?

希望就此问题提供任何指导!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    Unknown 说:
    程序执行似乎被卡住。

    能否就此提供更多详情? 执行迁移的代码时、器件的状态是什么?

    Unknown 说:
    除非手动停止程序、否则寄存器不会实时更新。

    您是否在寄存器视图中启用了"Continuous Refresh"?

    [引述 userid="644196" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1490738/tms320f2800135-migration-error-from-one-ic-to-another-with-two-different-syscfg-file 是否需要其他工程设置 在 CCS 中动态切换 TMS320F2800135和 TMS320F280039C?

    C2000迁移报告生成工具 可能会有所帮助。 您可以查看从 F280013x 迁移到 F28003x 时的寄存器、器件互连和函数级别变化。  

    Unknown 说:
    是否应该对启动文件或内存配置进行任何修改?

    您是否也更新工程以使用器件文件夹中的 f28003x_codestartbranch.asm 文件?

    此致、
    马特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、我已在寄存器视图中启用持续刷新、但我认为从135 IC 转移到39C IC 时会出现问题、因为即使器件初始化也没有发生、我通过在 main 函数中的 device_init ()语句之后引入断点进行了检查、该断点未被代码识别、 因此、寄存器中没有显示数据、并且微控制器中也没有 GPIO 在闪烁、因为数据未馈送到微控制器。 这可能是因为 SysConfig 不会生成 device.c 和 device.h 文件、这些文件是手动添加的、从一个更改为另一个 IC、不允许我排除 device.c 和 device.h 文件、因此我可以再次为新的 IC 添加这些文件。 我尝试了多次重新安装 SysConfig、但仍然无法正常工作、因此原因可能是什么以及如何使用两个不同的 SysConfig 文件成功地将工程从一个 IC 迁移到另一个 SysConfig。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    Unknown 说:
    确保syscfg已更新以匹配选定的 IC。

    如何将 SysConfig 从 F2800135迁移到 F280039C? SysConfig 中是否启用了"器件支持"模块以使用生成的 device.c/h 文件?

    此致、

    马特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    SysConfig 没有从头开始生成 device.c 和 device.h 文件、因此我使用 C2000WARE SDK 中的器件支持文件、因此它适用于我已导入器件支持文件 的 IC、但当我更改了 syconfig 文件、并通过禁用之前 IC 的 SysConfig 文件来尝试为其他 IC 运行该文件时、 它不允许也不允许我更改设备支持文件、因此我无法将其迁移到另一个 IC。 我没有遇到这样的错误,我只是在主文件的 device_init ()函数之后引入了一个断点,这个断点没有被控制器识别,所以这意味着它不会进行设备初始化,代码也不会被馈送到 IC

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您能否在工程属性中检查链接器的"文件搜索路径"以查看是否包含器件支持文件?

    您也可以尝试迁移 syscfg 文件本身-它会自动为您将配置设置从 F2800135迁移到 F280039C。 请注意、它无法撤消、因此请保存副本、以防迁移失败。

    1. 转到"Board View">"Switch"
    2. 选择要迁移到(F280039C)的器件并确认封装类型

    此致、

    马特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、现在正在生成器件文件、但在尝试调试时遇到以下调试错误、您能帮我解决这个问题吗

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    器件卡在 ITRAP ISR 中。 您能否尝试逐步执行代码、以查看哪一行会触发这种情况发生?

    此致、

    马特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    就在 device_init ()语句之前,它被卡住并抛出这个调试错误,所以如何解决这个错误。 我还附上了寄存器窗口屏幕截图。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您能否打开 Device_init ()(通过 CTRL 单击函数)并查看它的定义位置? 它是来自 SysConfig 生成的 device.c 还是来自手动导入的 device.c?

    另外,你能进入 Device_init()吗?

    此致、

    马特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它来自 SysConfig 、您可以在映像右侧看到 device.c 文件的位置。 现在、如何消除该误差

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    感谢您查看该内容。 您能否确认 我们 遵循了此常见问题解答中有关跨 C2000系列迁移的所有步骤? 如果仍然不起作用、您可以将您的项目发送给我查看(如果可能)。

    此致、

    马特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经浏览了常见问题解答、并遵循了每个步骤、但在将我的常规项目转换为通用项目后。 我收到以下编译错误。 所以,请帮助我。

    "c:/ti/c2000/C2000Ware_5_04_00_00/driverlib/f280013x/driverlib/ccs/Debug/driverlib.lib -l"syscfg/device_cmd.cmd"-llibc.a

    警告#10247-D:创建不带 SECTIONS 规范的输出段".text"
    警告#10247-D:创建不带 SECTIONS 规范的输出段".data"
    警告#10247-D:创建不带 SECTIONS 规范的输出段".bss"
    警告#10247-D:创建不带段规格的输出段".cinit "
    警告#10247-D:创建不带 SECTIONS 规格的输出段".const"
    警告#10247-D:创建不带段规范的输出段"codestart "
    错误#10430-D:由__attribute__((ramfunc))或-ramfunc=on 生成的".TI.ramfunc"段需要一个段规范才能函数。
    错误#10010:链接时遇到错误;"135IC.out"未构建

    >>编译失败
    Makefile:140:目标'135IC.out'的配方失败
    gmake[1]:***[135IC.OUT]错误1
    Makefile:136:目标"全部"的配方失败
    gmake:***[全部]错误2.

    ****构建完成****

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您是否按照常见问题解答中的步骤配置了默认的 RAM 链接器命令文件? 链接器命令文件(syscfg/device_cmd.cmd)似乎未正确生成。

    在链接器命令文件配置中、请确保设置以下内容:

    1. 复选框"Active A Linker CMD configuration"
    2. 在"Default configuration"下、点击"Setup RAM" default 以进行 RAM 配置。 您也可以进行刷写、然后将工程编译配置更改为闪存。 在本示例中、我们将使用 RAM。  

    此致、

    马特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    "syscfg/device.c"、第112行:警告#225-D:函数"SysCtl_setMCANClk"隐式声明
    "SYSCFG/device.c"、第112行:错误#20:标识符"SYSCTL_MCANCLK_DIV_1"未定义
    "SYSCFG/device.c"、第152行:错误#20:标识符"SYSCTL_PERIPH_CLK_CLA1"未定义
    "SYSCFG/device.c"、第153行:错误#20:未定义标识符"SYSCTL_PERIPH_CLK_DMA"
    "SYSCFG/device.c"、第157行:错误#20:标识符"SYSCTL_PERIPH_CLK_CPUBGCRC_"未定义
    "SYSCFG/device.c"、第158行:错误#20:标识符"SYSCTL_PERIPH_CLK_CLA1BGCRC_"未定义
    "SYSCFG/device.c"、第161行:错误#20:未定义标识符"SYSCTL_PERIPH_CLK_ERAD "
    "SYSCFG/device.c"、第169行:错误#20:标识符"SYSCTL_PERIPH_CLK_EPWM8"未定义
    "SYSCFG/device.c"、第172行:错误#20:标识符"SYSCTL_PERIPH_CLK_ECAP3"未定义
    "SYSCFG/device.c"、第174行:错误#20:标识符"SYSCTL_PERIPH_CLK_EQEP2"未定义
    "SYSCFG/device.c"、第175行:错误#20:未定义标识符"SYSCTL_PERIPH_CLK_SD1"
    "SYSCFG/device.c"、第176行:错误#20:标识符"SYSCTL_PERIPH_CLK_SD2"未定义
    "SYSCFG/device.c"、第180行:错误#20:未定义标识符"SYSCTL_PERIPH_CLK_SPIB"
    "SYSCFG/device.c"、第184行:错误#20:标识符"SYSCTL_PERIPH_CLK_MCANA"未定义
    "SYSCFG/device.c"、第186行:错误#20:标识符"SYSCTL_PERIPH_CLK_ADCB"未定义
    "SYSCFG/device.c"、第192行:错误#20:标识符"SYSCTL_PERIPH_CLK_DACA"未定义
    "SYSCFG/device.c"、第193行:错误#20:未定义标识符"SYSCTL_PERIPH_CLK_DACB"
    "SYSCFG/device.c"、第194行:错误#20:标识符"SYSCTL_PERIPH_CLK_CLB1"未定义
    "SYSCFG/device.c"、第195行:错误#20:标识符"SYSCTL_PERIPH_CLK_CLB2"未定义
    "SYSCFG/device.c"、第196行:错误#20:标识符"SYSCTL_PERIPH_CLK_CLB3"未定义
    "SYSCFG/device.c"、第197行:错误#20:标识符"SYSCTL_PERIPH_CLK_CLB4"未定义
    "SYSCFG/device.c"、第198行:错误#20:标识符"SYSCTL_PERIPH_CLK_FSITXA"未定义
    "SYSCFG/device.c"、第199行:错误#20:标识符"SYSCTL_PERIPH_CLK_FSIRXA"未定义
    "SYSCFG/device.c"、第200行:错误#20:标识符"SYSCTL_PERIPH_CLK_LINA"未定义
    "SYSCFG/device.c"、第201行:错误#20:标识符"SYSCTL_PERIPH_CLK_LINB"未定义
    "SYSCFG/device.c"、第202行:错误#20:标识符"SYSCTL_PERIPH_CLK_PMBUSA"未定义
    "SYSCFG/device.c"、第204行:错误#20:标识符"SYSCTL_PERIPH_CLK_DCC1"未定义
    "SYSCFG/device.c"、第205行:错误#20:标识符"SYSCTL_PERIPH_CLK_HICA"未定义
    "SYSCFG/device.c"、第206行:错误#20:标识符"SYSCTL_PERIPH_CLK_AESA"未定义

    问题是、这些值在 F28003x driverlib (C2000Ware_X_XX_XX_XX\driverlib\f28003x\driverlib\sysctl.h)中定义、但在 driverlib (C2000Ware_X_XX_XX_XX\driverlib\f280013x\driverlib\sysctl.h)中未定义。

    从 F28003x 迁移时、您需要确保使用 F280013x SYSCTL driverlib 定义。

    此致、

    马特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    最后一个问题是、您能告诉我如何解决上述错误、这意味着我必须再次针对 F28003x 更改 CCS 工程中的 driverlib 文件 、还是只需从 F28003x 的 driverlib 文件夹中添加 sysctl.h、还是需要通过 SysConfig 生成 sysctl.h 文件。 我已经尝试添加 sysctl.h 文件,但它仍然抛出相同的错误。 您能否指导我如何确保使用正确的 SYSCTL 文件、以便可以迁移工程?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Devesh:

    您需要分别为 F28003x 和 F280013x 器件提供两种不同的构建配置。  

    • 中的示例 F28003x 构建版本、可包含 F28003x .syscfg 并排除 F280013x 的.syscfg
    • 中的示例 F280013x 构建版本、可包含 F280013x .syscfg 并排除 F28003x .syscfg

    您可以通过右键点击该工程并导航至 Build Configurations > Manage 来创建新的构建配置

    然后、通过右键点击目标文件并选择"Exclude from Build"、可以包含/排除相应的 syscfg 文件。 CCS 会记住每个编译配置的工程设置、这样在器件编译之间切换时它们不会丢失。

    此致、

    马特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的帮助、完成迁移后、我已经希望实现构建配置、但这不会影响我因为 SYSCTL 函数而收到的错误、器件使能外设错误。 我已经尝试过、但仍然会出现相同的错误。 请正确指导我、以消除此错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果不深入了解项目的细节、就很难说清楚。 是为 F28003x 还是 F280013x 配置目标配置文件? 您能否共享正在使用的目标配置文件?

    有关迁移工程的更多详细信息、请参阅此主题: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1273438/tms320f28374s-how-to-migrate-project-from-f28379d

    此致、

    马特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这些是我在工程文件夹中的文件、我在其中使用 两个目标配置文件、并根据我使用的 IC 更改它们。

    我要选择 IC from Build Management 选项、这会从其本身中排除不必要的 syscfg 文件。 它在使用 F280013x 时工作正常、没有出现错误、但在切换到 F28003x 时、会提供这些 SYSCTL 编译错误

    我收到了来自 sysconfig 生成的 board.c 和 device.c 文件中的这些错误、因为它们存在于 syscfg 文件夹中。 现在、请给我一些宝贵的建议、从这些建议中、我也可以通过迁移来将工程用于 F28003x IC。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    构建过程中似乎并未包含 F28003x 的器件支持头文件。

    要检查的两点:

    1. 构建 F28003x 配置后、工程的"include"文件夹看起来是什么样子的?  
    2. 请转到"Project Properties">"CCS General">"Project"。 该菜单显示什么?

    您还可以尝试手动链接必要的器件支持头文件、这些文件位于:C2000Ware_5_04_00_00\device_support\f28003x\headers

    此致、
    马特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经尝试手动包含设备支持文件、但仍然显示相同的错误

    现在,有没有任何方法来解决这个问题,并摆脱 sysctl 和 device_init ()的编译错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我已接受您的朋友请求、您是否能够与我共享您的项目、以便我可以在我这边查看?

    此致、

    马特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    https://drive.google.com/drive/folders/1R1r_qn6Xxk_vGIB6Kkm2WZSUvsG9YDcB?usp=sharing
    好的、先生、请查看此工程。我使用2800135和 syscfg 文件进行迁移、135是额外的、所有头 文件和.c 文件都是冗余的、我在编译工程时将其从构建中排除。135main.c 是该工程的主文件、现在该工程在135 IC 上运行良好、但当我切换到 SYSCTL 39C IC 时、会抛出错误。 看看它,告诉我我在哪里滞后。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Devesh:

    通过执行以下操作、我获得了成功构建39C 和135的工程:

    1. 在工程的 Properties > Resource > Linked Resources 中、我分别更改了"f28003x"或"f280013x"的以下路径变量。 请注意、这些设置在不同的构建配置之间保持不变、因此每次为 F28003x 和 F280013x 构建工程时都必须更改这些设置。
      1. C2000WARE_COMMON_include
      2. C2000WARE_DIB_ROOT
      3. C2000WARE_HEADERS_INCLUDE
    2. 在编译前我删除了另一个构建配置文件夹 。 例如、如果我是为 F28003x 构建、则删除了工程中的"F280013x"文件夹。 这些文件夹是由构建生成并相互冲突生成的。
    3. 最后、我注意到 F28003x 工程无法与当前的链接器命令文件设置正确映射。 建议使用通用 RAM 链接器命令文件。

    此致、

    马特