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.

[参考译文] 具有 TMS320F28377S 的定制板不会作为独立器件运行- CCSv12

Guru**** 2434370 points
Other Parts Discussed in Thread: UNIFLASH, TMS320F28377S

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1122039/custom-board-with-tms320f28377s-will-not-run-as-standalone-device---ccsv12

主题中讨论的其他器件:UNIFLASHTMS320F28377S

您好!

我获得了源代码的 git repo 和使用 此源代码的 TMS320F28377S 的定制硬件。 一段时间前(可能是2年)、该器件经过编程、然后部署到现场。 自那时起、源代码中添加了一个新功能、现在需要在这些器件中实现该功能。 我能够成功构建输出目标。 我能够 使用调试器将新映像加载到器件的闪存中、并且可以看到代码在插入调试器时正常运行。 当我对器件进行下电上电时、有人告诉我它应该在 没有 CCS 的情况下自行启动;这种情况不会发生。 我无法使器件独立运行。 我已验证在下电上电后映像是否在器件中(使用 uniflash)。

器件上有一个 DIP 开关、用于切换我尝试使用的引导模式引脚(我认为这不是问题)。 这大概是我过去的项目的结果。 也就是说、我一直在走我能找到的每条路。 我知道 RAM 和闪存之间存在差异。 此工程的 cmd 文件是适用于此芯片的默认闪存文件之一(2837xS_FLASH_lnk_CPU1.cmd)的自定义版本。

出于完整性考虑、我在 CCS 中使用了 blinky_cpu01示例、并能够将其加载到我的器件中并使其独立运行(因此我知道这是可行的;我让它闪烁我访问过的 GPIO、并将其作为证据进行测量)。 我尝试从我自己的项目中剥离几乎所有东西、并插入了闪烁的 GPIO 位、以查看我是否可以使其粘滞。 它与调试器一起运行、但不是独立运行。

开发人员不再可用、我正在处理他留下的内容。 在工程的设置/属性中、设置似乎有误。 我有原始工程中的.project 和.cproject 文件、但此时我不确定是否有其他内容缺失。 这一切都应该在一个理想的世界中开箱即用。

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

    我将继续操作、独立打开器件并允许其运行至其故障状态、然后尝试连接调试器、但使用不会重置或重新启动器件的设置。 如果连接后一切正常、CPU 应该仍在运行、即显示播放符号。 当您按下 SUSPEND 按钮时、您应该会看到指令指针停留在何处。 在 while 循环中旋转。

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

    尊敬的 Maxx:  

    很抱歉、延迟的响应...让我们看看我们是否可以帮助您在调试过程中取得一些进展。  看起来您使用的是闪存引导模式(您的引导模式引脚配置为闪存引导模式)。  您还确认、在使用我们示例中的闪烁应用时、您可以配置和切换 GPIO 引脚。   

    您是否能够移动 GPIO 切换代码以查看是否能够以可预测的方式看到 GPIO 切换?  如果是、是否可以将 GPIO 切换代码放置在您尝试调试的代码中。  如果是、请查看您是否可以在代码中的各个位置配置此 GPIO 切换、并查看这是否显示了什么内容。

    请告诉我们。  

    此致、

    Krisna

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

    感谢 Kier 与我一起努力! 以下是我的一些调试配置设置:

    • 在 Program:Load symbols only (仅加载符号)下(加载程序选项会在我启动调试器时自动加载、因此我将其切换为仅加载符号;似乎我不得不选择其中一个符号
    • 在目标下:
      • 程序/存储器加载选项:未选中"在连接时重置目标";未选中"在子连接时自动连接";未选中"在程序加载或重新启动时重置目标"
      • 自动运行和启动选项:已选中自动运行选项; 已 选中启动选项
      • 闪存设置:在闪存编程/操作被检查前复位目标

    以下是我根据您的说明尝试的内容:

    • 对于启动器、我对器件进行了编程、并确认在刷写调试器后器件运行正常;然后我关闭了调试器并重新启动。
    • 在调试器关闭的情况下、我单独打开器件、让其运行大约10秒(大概有足够的时间)
    • 然后、我启动调试器。 当我这么做时、它不会重新启动器件或对其进行重新编程。 它表示它已挂起(CPU1)、并且显示'0x3FF16A (未定义符号)'
    • 我还看到 CPU1_CLA 为"已连接:未知"、我认为基于源代码使用 CLA
    • "usspend"按钮呈灰色显示、当我尝试恢复时、它会转至"Uspened - SW Breakpoint"、"0x3FE493 (未定义符号)"

    不确定该行为的原因是什么、或者我是否正确遵循了说明。 我在"Breakpoints"窗口中看不到添加的任何断点。 谢谢!

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

    您好、Krishna、也感谢您的参与! 我曾尝试将闪烁的 GPIO 环路放入代码中、并删除了看起来不必要的所有内容。 我匹配了闪烁的 GPIO 代码具有的函数、但使用了项目自己的版本(例如、InitSysCtrl 函数略有更改)。 在 GPIO 闪烁循环之前、我要做的最后一件事是 GPIO 初始化函数、因此我不确定是否还有其他事情可以做。 独立重启后、我无法使我自己的代码正常运行、即使大多数情况下所有代码都已删除、而且这种闪烁的 GPIO 环路也是如此(为清楚、在我刷写器件后、它确实可以正常运行)。

    InitSysCtrl 函数之间的主要区别:

    • 闪烁型 GPIO 仅具有 InitFlash_BANK0、而我的也具有 InitFlash_BANK1
    • 然后、在我的 main 中、在执行一些其他设置函数之后、main 自行调用 InitFlash_BANK1。 不确定原因

    闪烁的 GPIO 中的函数列表以及我在项目中保留的内容、以及闪烁的循环:

    • InitSysCtrl
    • InitPieCtrl
    • InitPittTable
    • InitGpio (我的是定制板上使用的 GPIO)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更新、我尝试过的更多内容:

    • 我完全替换了项目中的 device_support、driverlib 和库目录、并将它们替换为 blinky_GPIO 项目中的目录
    • 我从我自己的项目中注释出了整个 main、并将其替换为 blinky_GPIO 项目中的整个 main
    • 我从工程中删除了所有工程特定源代码、以便只使用 blinky_gpio 代码编译 main
    • 我将项目中的 cmd 文件替换为 blinky_gpio 项目(2837xS_Generic_flash_lnk.cmd)中使用的 cmd 文件(我需要更改 RAMM1的大小、因为我的项目看到的库(不确定原因)是 blinky_gpio 看不到、并且它抱怨没有足够的大小; 此更改与项目的 cmd 文件中所做的更改相匹配)

    在我的项目中、GPIO 闪烁在我刷写器件后立即工作、但一旦我对器件进行下电上电后、它就不工作(重申一下、当我使用 blinky_GPIO 项目时、它在闪存后和下电上电后都工作)。

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

    我认为、这是您完成一个分段项目的唯一方法、该项目展示了您也可以分发的问题。 如果有时间、我将尝试至少重复 F2837xD controlCARD 上的问题。

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

    更新:很抱歉、几周前我添加了更新、但没有更新。

    问题已解决。 不知怎么说、 F2837xS_CodeStartBranch.asm 文件已从工程中取消链接。 重新链接此文件时、问题已解决

    感谢 Kier 和 Krishna 的帮助!!