您好、专家!
MEM8A 存在一些问题:互连自检的引导时间执行和 CPU2A:LBIST STC 诊断的引导时间执行。
两种实现在最初都运行良好、但现在测试似乎在达到 WFI 指令时停止。
达到 WFI 指令后、SW 会停止响应。 未触发预期的 CPU 复位。
根据我的理解、这种情况只会在 WFI 指令被触发时发生、但自检没有开始。
那么我的问题是:什么会阻止 WFI 指令正确执行?
谢谢、此致、
最大值
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.
您好、专家!
MEM8A 存在一些问题:互连自检的引导时间执行和 CPU2A:LBIST STC 诊断的引导时间执行。
两种实现在最初都运行良好、但现在测试似乎在达到 WFI 指令时停止。
达到 WFI 指令后、SW 会停止响应。 未触发预期的 CPU 复位。
根据我的理解、这种情况只会在 WFI 指令被触发时发生、但自检没有开始。
那么我的问题是:什么会阻止 WFI 指令正确执行?
谢谢、此致、
最大值
您好、Max:
请参阅任何异常、例如 UNDEF 或中止? 能否检查是否有任何挂起的 CPU 中断? 如果您有异步中止、但 CPU 已使用 CPSR 中的 A 位屏蔽异步中止、则 CPU 即使在执行 WFI 后也不会进入待机状态。
有关更多详细信息、请参阅以下主题:
(+) RM57L843:SL_SelfTest_STC 不生成 CPU 复位-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
--
谢谢。此致、
Jagadish。
您好、Max:
对于延误、道歉、我也遇到了其他问题。
是否有方法可以检查 VIM 之外的挂起中断/中止?
我不知道这一点。
--
谢谢。此致、
Jagdish。
Jagadish、您好!
在调用 WFI 指令前、我们检查了 VIM 寄存器、但在 VIM 中找不到任何会导致测试无法开始的内容。
下面显示了 VIM 寄存器的状态:
ADDR:0xFFFFFE00值:0x00000000
ADDR:0xFFFFFFE04值:0x00000000
ADDR:0xFFFFFE08值:0x00000000
ADDR:0xFFFFFE0C 值:0x00000000
ADDR:0xFFFFFE10值:0x00000003
ADDR:0xFFFFFE14值:0x00000000
ADDR:0xFFFFFE18值:0x00000000
ADDR:0xFFFFFE1C 值:0x00000000
ADDR:0xFFFFFE20值:0x00000000
ADDR:0xFFFFFE24值:0x00000000
ADDR:0xFFFFFE28值:0x00000000
ADDR:0xFFFFFE2C 值:0x00000000
ADDR:0xFFFFFE30值:0x00000003
ADDR:0xFFFFFE34值:0x00000000
ADDR:0xFFFFFE38值:0x00000000
ADDR:0xFFFFFE3C 值:0x00000000
ADDR:0xFFFFFE40值:0x00000003
ADDR:0xFFFFFE44值:0x00000000
ADDR:0xFFFFFE48值:0x00000000
ADDR:0xFFFFFFE4C 值:0x00000000
ADDR:0xFFFFFE50值:0x00000000
ADDR:0xFFFFFE54值:0x00000000
ADDR:0xFFFFFE58值:0x00000000
ADDR:0xFFFFFE5C 值:0x00000000
ADDR:0xFFFFFE60值:0x00000000
ADDR:0xFFFFFE64值:0x00000000
ADDR:0xFFFFFE68值:0x00000000
ADDR:0xFFFFFE6C 值:0x00000000
ADDR:0xFFFFFE70值:0x00000000
ADDR:0xFFFFFE74值:0x00000000
ADDR:0xFFFFFE78值:0x00000000
ADDR:0xFFFFFFE7C 值:0x00000000
ADDR:0xFFFFFE80值:0x00010203
ADDR:0xFFFFFE84值:0x04050607
ADDR:0xFFFFFE88值:0x08090A0B
ADDR:0xFFFFFE8C 值:0x0C0D0E0F
ADDR:0xFFFFFFE90值:0x10111213
ADDR:0xFFFFFE94值:0x14151617
ADDR:0xFFFFFE98值:0x18191A1B
ADDR:0xFFFFFFE9C 值:0x1C1D1E1F
ADDR:0xFFFFFEA0值:0x20212223
ADDR:0xFFFFFEA4值:0x24252627
ADDR:0xFFFFFEA8值:0x28292A2B
ADDR:0xFFFFFEAC 值:0x2C2D2E2F
ADDR:0xFFFFFFB0值:0x30313233
ADDR:0xFFFFFEB4值:0x34353637
ADDR:0xFFFFFEB8值:0x38393A3B
ADDR:0xFFFFFFBC 值:0x3C3D3E3F
ADDR:0xFFFFFFEC0值:0x40414243
ADDR:0xFFFFFFEC4值:0x44454647
ADDR:0xFFFFFEC8值:0x48494A4B
ADDR:0xFFFFFECC 值:0x4C4D4E4F
ADDR:0xFFFFFED0值:0x50515253
ADDR:0xFFFFFED4值:0x54555657
ADDR:0xFFFFFED88值:0x58595A5B
ADDR:0xFFFFFEDC 值:0x5C5D5E5F
ADDR:0xFFFFFEE0值:0x60616263
ADDR:0xFFFFFEE4值:0x64656667
ADDR:0xFFFFFEE8值:0x68696A6B
ADDR:0xFFFFFEEC 值:0x6C6D6E6F
ADDR:0xFFFFFEF0值:0x70717273
ADDR:0xFFFFFEF4值:0x74757677
ADDR:0xFFFFFEF8值:0x78797A7B
ADDR:0xFFFFFEFC 值:0x7C7D7E7F
是否有其他任何因素可以阻止执行 WFI 或自检?
谢谢、此致、
最大值
您好 Jagadish:
很遗憾、我们无法分享我们的项目。
该过程如下。
-系统正常启动
- VIM 中的所有中断被停用
- RTI 被关闭
-互连自检开始(将 SDC 控制寄存器中的位24 (MASK_SOFT_RESET)设置为0x0、将 SCM 控制寄存器中的位8-11 (DTC_SOFT_RESET)设置为0xA)。
-然后执行 WFI
-试验仍然在一个无限循环中。
你有任何关于调试的提示或其他想法吗?
谢谢、此致、
最大值
您好、Max:
我创建了一个用于 STC 自检运行的示例工程:
我认为调试工程不是监控 STC 状态的理想方式、因此在这里、我使用 SCI 外设将状态发送到串行端口:

如上所示、我将在主循环启动并打印状态后立即验证 STC 运行状态。 如果测试未完成、我将通过打印"测试"进行测试、并在 while (1)的开始处打印"loop"
下面是我的测试结果:

按下上电按钮后、我将测试状态设置为 false、因此代码进入测试、测试后控制器自动复位、然后再次打印状态、这次状态设置为 true、无故障。 现在代码命中该循环、即 while (1)。
我随附代码供您参考、请仔细阅读:
e2e.ti.com/.../STC_5F00_SelfTest_5F00_LC4357.zip
--
谢谢。此致、
Jagadish。
Jagadish、您好!
我们在做与您相同的事情、但测试仍不起作用。
我们将旧的软件版本与新的软件版本进行了比较、后者同样的测试无法运行。
我们会注意到 CPU 以不同的模式运行。 工作版本的 CPU 处于管理模式(CPSR 寄存器 M 域)、而不工作版本的 CPU 处于系统模式。
我的问题是:
是否可能因为处理器处于系统模式而没有执行 WFI 指令或执行 WFI 指令但未启动测试?
谢谢、此致、
最大值
您好、Max:
对于我们的响应出现延迟、深表歉意、实际上我们上周五在 TI 印度有假期。 同时,我在这段时间内一直被很多悬而未决的问题所困扰。
我们注意到的一件事是 CPU 以不同的模式运行。 工作版本的 CPU 处于管理员模式(CPSR 寄存器 M 字段),而不工作版本的 CPU 处于系统模式。
我认为这不会是问题、因为在我的工作代码中、模式是仅系统模式。


--
谢谢。此致、
Jagadish。