工具/软件:
下面是 catch — 如果我加载一个小的小事示例,调试会话就可以正常启动。
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.
工具/软件:
当我尝试启动调试会话时
可以通过不同的方法启动调试会话。 在这里、我假设您右键点击工程并选择“Debug Project“? 如果是、CCS 将使用默认的目标配置文件 (ccxml) 启动调试会话。
一旦针对一个小项目开始调试、我就可以切换到我的大项目(只要我不对电路板进行下电上电)、然后右键点击“CPU1->Reset CPU“、然后加载我的更大应用程序、调试会话在此之后就会正常开始。
这听起来您的小型 CCS 工程有一个“正确“的目标配置文件、而您的较大工程没有。 我建议比较这两个工程中的目标配置文件。 您还可以通过右键点击工作目标配置文件来启动无工程调试会话。 调试会话启动后、您可以从任何所需的项目加载.out。
我使用的是 CCS 20.2.0。 据我所见、CCS 18 不支持 C29 架构。
正确、CCS 20 及更高版本支持 F29 器件。
如果我在加载程序后尝试减少调试、它会进入“运行程序“状态、并忽略任何断点设置。
您能够启动无工程调试并连接到 CPU? 此时 CPU 的状态是什么? 如何在加载任何程序之前?
此外、您能否说明您拥有的 F29 SOM EVM 是哪个版本? 检查 EVM 已知问题列表是一项很好的完整性检查、目的是排除 EVM 硬件是问题的根源。
EVM 的版本和组装可通过印刷电路板 (PCB) 上的标记来确定。 EVM 版本由诸如“MCU144A"等“等丝印标签指示、其中“A"是“是 EVM 版本。 EVM 组件由电路板上的标牌指示、例如“-001"。–001。</s>“
Boris,
除了 Gus 的问题外、您能否确认在 SOM 上配置的引导模式、这是一个单核工程?
是否为项目自动运行、程序加载和 MISC 设置提供了适当的调试设置。 您可以参考第 7.2.3 节 https://software-dl.ti.com/ccs/esd/documents/users_guide_ccs_20.1.1/ccs_debug-main.html
此致、
Aishwarya
尊敬的 Boris:
这种状态时的功耗。 您是否能够运行以下脚本? 您可以检查 CPU 复位原因、任务时钟检测、ESM_CPUx、ESM_SYS、错误聚合器状态。 您是否还可以验证是否是调试器属性->类别“调试器选项“->自动运行选项设置为运行符号“main"?“? 您是否可以探测 XRSn 引脚以查看您的器件是否正在复位?


此致、
Ryan Ma
正确设置了对 main 的调试运行、与屏幕截图中的完全相同:
不确定谁应该是维护 监视程序 ? 这是一个空白的 CPU、应用程序在调试器中启动、我假设 JTAG/gel 应该停止 CPU 并禁用看门狗、否则我看不到在最初不 将某些内容加载到 CPU 的情况下如何实现。
实现
SEC_AP_C29: Executing On Target Connect Functions SEC_AP_C29: SEC-AP Ready C29xx_CPU1: Executing On Target Connect Functions C29xx_CPU1: The connected device is F29H850TU9 C29xx_CPU1: Watchdog Timer Disabled C29xx_CPU1: Memory Map Initialization Complete C29xx_CPU1: Device Ready C29xx_CPU1: M0 RAM initialization complete. C29xx_CPU1: CPU2/3 is held in reset. C29xx_CPU1: Program found in Flash memory. Make sure to erase Flash if loading an application to RAM. If loading to Flash, Flash Plugin will erase the selected banks. C29xx_CPU1: CPU is in Main code. C29xx_CPU1: CPU2/3 is held in reset. C29xx_CPU1: File was loaded successfully. -0- C29xx_CPU1: Full load. C29xx_CPU1: ESM_CPU1 Status : C29xx_CPU1: All Active/Pending Error Events : C29xx_CPU1: - ESM_EVENT_CPU1_UVFINT C29xx_CPU1: Active/Pending and Enabled Error Events : C29xx_CPU1: ESM_CPU1 Status Done C29xx_CPU1: ESM_CPU1 Status : C29xx_CPU1: All Active/Pending Error Events : C29xx_CPU1: Active/Pending and Enabled Error Events : C29xx_CPU1: ESM_CPU1 Status Done C29xx_CPU1: Error Aggregator Status : C29xx_CPU1: Error Aggregator Status Done C29xx_CPU1: ESM_CPU1 Status : C29xx_CPU1: All Active/Pending Error Events : C29xx_CPU1: Active/Pending and Enabled Error Events : C29xx_CPU1: ESM_CPU1 Status Done是 ESM_CPU1 的输出:
为了进一步澄清问题、您能否提供更多有关 IDE 在启动调试会话时如何处理程序加载和执行的详细信息? 具体而言、操作顺序是什么? IDE 是否加载程序然后允许它在完全停止或复位 CPU 之前开始执行? 理解该流程会有所帮助。
尽管我们将在应用程序中使用浮点运算、但直到 DRV 芯片初始化大约 500ms 至 600ms 后、我们的代码才会调用它们。 全局motor0对象确实具有构造函数、但只应初始化值(例如,将字段设置为零)。 不过、C++初始化顺序可能导致一些浮点代码的包含时间早于预期。
一个假设是、在执行开始之前可能无法正确设置浮点初始化逻辑(通常在使用 FP 运算时自动链接)。 如果调试器提前开始执行或在设置期间多次运行部分代码、则可能会干扰正确的 FP 硬件初始化。
在过去使用摩托罗拉芯片时、中断 FP 初始化例程可能会使设备处于未定义状态、从而导致崩溃或不可预测的行为(具体取决于时间)。 我们想知道这里是否会发生类似的情况。