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.
工具与软件:
您好!
我正在使用与 AWR2243BOOST 电路板连接的 AM273x 评估模块、并且正在运行可视化工具演示应用。 我们也使用了演示项目的叉子。
我需要解决的问题是调试非常不可靠。 从 ROM 运行应用时不会发生这种情况(使用 uniflash 刷写)。
`、在五个调试运行中、大约有两个运行会导致在` HwiP_undefined_handler `m或`Hwip_data_abort_handler`/`HwiP_DATA_abort_handler_const`中提前(甚至在登陆` ain () 之前)执行程序着陆。 这是随机的、也会在其他应用中发生、无论是单核应用(例如仅从 R5F0运行;我已经尝试从 MCU + SDK 运行 UDP 客户端和 TCP 客户端)还是多核应用(例如 R5F0 + C66、如可视化工具演示中所示)。 这个过程非常麻烦、因为调试大型程序时、我需要多次重新加载程序、而且一次程序加载已经花费了很多时间。 为什么调试如此不稳定? 如果能让它更可靠、我真的很感谢大家的支持。
2.调试多核应用程序时分组不能正常工作。 根据本指南 ,我正在尝试创建一个"永久组"来同时启动核心。 问题是点击组上的"Resume":
会导致 C66无法运行。 "Debug"视图声称它正在运行:
但它不是,就像当我"暂停"它,那么它仍然在 main ()条目:
我可以逐个单独运行这些内核、但在这种情况下、 可视化工具演示应用会不同步、从而导致崩溃。
我想您可能 遇到了我在 AM2634上遇到的同样的问题。
程序加载后、其中一个内核(在本例中仅为 R5_2)可以随机处于拇指模式。 这会产生一个 UNDEF 异常、后跟 DABT。 AM2634:DevBoot 后、Cortex_R5_2有时处于 Thumb 模式。 导致 UNDEF 异常。 -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
我可以重现该问题。 它似乎特定于 C66x。
我为此提交了一个错误。 跟踪链接: https://sir.ext.ti.com/jira/browse/EXT_EP-11832
对于#1、这将需要由器件专家进行研究。 我将提请他们注意该线程。
谢谢
Ki
尊敬的 Kacper:
出现此问题的可能原因有两种:1:
1. SOC 的初始化
2. R5F 内核的 MPU 设置
关于1的问题:
如何初始化 AM273x SOC? GEL 文件或 SBL_NULL?
您的应用的 MPU 设置是什么?
此致、
Ming
我使用 GEL 文件。 但是、何时以及如何使用 SBL_NULL? 我找不到任何相关文档。
MPU 配置:
尊敬的 Kacper:
请参阅以下 URL: AM273x MCU+ SDK:Additional Details
部分 SOC 初始化使用 QSPI 存储器中刷写的二进制文件进行、以使用 SBL_NULL 初始化 SOC。
此致、
Ming
Kacper Kowalski 关于问题1、您是否可以禁用自动运行、以便 PC 从0x0开始:
然后检查 CPSW。 T 字段。 如果它是== 1 ,就在 UNDEF 异常发生之前,那么你和我有相同的问题。
[报价 userid="1502" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1388589/mcu-plus-sdk-am273x-unreliable-debugging-of-multicore-applications/5310763 #5310763"]出现此问题的可能原因有两种:1:
1. SOC 的初始化
2. R5F 内核的 MPU 设置
[报价]如果 Kacper 的问题1与 (+) AM2634中描述的我的问题(TBC)相同:在 DevBoot 之后、Cortex_R5_2有时处于 Thumb 模式。 导致 UNDEF 异常。 -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
那么 会发生问题1:
由于 Kacper 的问题在 QSPI 模式下不会发生、因此原因 必须仅限于 GEL 脚本的行为。
尊敬的 Kier:
同意您的分析。 我想是 SOC 初始化问题。 这就是我建议使用 SBL_NULL 来初始化 SOC 的原因。
此致、
Ming
我没有使用 SBL_NULL 进行调试。 从闪存运行应用后、我绝不会刷写 SBL_NULL。 让我在通过 RAM 进行调试时使用 SBL_NULL、并回来报告这是否解决了不稳定调试的问题。
使用 SBL_NULL 无法解决我的所有问题。 自从我开始使用`BL_NULL`以来、我还没有得到`SHwip_undefined_handler`、但是断点不会被命中。程序加载也会在开始时随机失败、等等。
尊敬的 Kacper:
这些问题是在所有内核上发生还是仅在一个内核上发生?
它是否到达 main()?
您在哪里设置断点(无法到达哪个断点)?
当程序加载失败时、它会显示什么错误?
此致、
Ming