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.
我认为我已将 MPOST 配置为运行、但我继续在结果存储器位置看到0x00000000 (未测试)。 使用 launch_ex1_f280025c_demo.c 作为起点、我修改了源文件和链接器文件、如下所示、使用0x5AFFFF3F 对 OTP GPREG2 (0x7800E)进行编程。
#pragma DATA_SECTION (Z1_GPREG_VALUE、"OTP_Z1_GPRG")
const uint64_t Z1_GPREG_VALUE = 0x5AFFFF3FFFFFFFFF;
#pragma RETAIN (Z1_GPREG_VALUE)
存储器
{
OTP_Z1_GPREG:origin = 0x0007800C,length = 0x00000004
部分
{
OTP_Z1_GPREG:> OTP_Z1_GPREG
加载调试器后、OTP GPREG2似乎已在存储器浏览器中成功编程。
该程序还需要几秒钟才能开始、我知道这是 MPOST 的预期。
但是、当我查看存储器位置0x00000006以获得测试结果时、我看到0x00000000、表示未启用 MPOST。
您能帮我解决可能出现的问题吗?
谢谢、
Don
其他信息...
在 F28002x TRM 第4.7.10.2节"引导模式和 MPOST 状态"中、可以看到"C2000存储器上电自检(M-POST)应用报告"、其中提供了表 A-2 M-POST 状态、返回值为0xFFFFFFFF 以便成功进行测试。
但是、在浏览 F28002x_ROM 源文件时、我发现 cpu1brom_pbist.h 中具有不同返回值且状态为0xFAABDEED 的以下内容是成功测试的返回值。
//错误代码-用作返回值
#define PBIST_ALWAYSFAIL_TIMEOUT_ERROR 0xFF00FF00U //预期失败测试未完成
#define PBIST_ALWAYSFAIL_INCORRECT_OPERATION 0xFF11FF01U
#define PBIST_DOUBLEINT_TIMEOUT_ERROR 0xFF22FF02U
#define PBIST_MEMORYTEST_TIMEOUT_ERROR 0xFF33FF03U
#define PBIST_MEMORY_TEST_FAIL_ERROR 0xFF44FF04U
#define PBIST_MEMORY_LS_INITDONE_ERROR 0xFFAFF0AU
#define PBIST_MEMORY_GX_INITDONE_ERROR 0xFFBBFF0BU
#define PBIST_MEMORY_M0M1_INITDONE_ERROR 0xFFCCFF0CU
#define Isarate_MEM_INIT_ERROR 16.
#define PBIST_MASK_KET_ERROR_CODE_UPPER 0xFFFFFF0000U
#define PBIST_MEMORY_TEST_IN_PROGRESS 0xFAAB123UL //在内存测试进行过程中返回状态
#define PBIST_MEMORY_TEST_PASS 0xFAABDEEDUL //成功完成 MEM 测试的标记
虽然我无法在调试中使 MPOST 在 LaunchXL 板上运行、但按照原始帖子中的指定对 OTP 进行编程、 然后在没有仿真器的情况下对电路板进行下电上电、内存测试似乎会运行、导致大约5秒、而对0x00000006的检查确实提供 了0xFAABDEED 值。 在没有对 GPREG2进行编程 的第二个板上运行相同的程序不具有延迟、并且在0x00000006处没有0xFAABDEED 值。 您能否确认 TRM 中引用的表不正确、 以及 cpu1brom_pbist.h 是否正确?
此外、是否有方法让 MPST 在调试中运行? 我已经按照如下方式对 EMU_Boot 位置进行了编程:
0xD00 = 0xFFFFFFFF
0xD02 = 0x5AFFFF3F
0xD04 = 0xFFFFFFFF
0xD06 = 0xFFFFFFFF
设置上述值后、我选择了"CPU Reset"和"Resume"、但它在引导 ROM 中命中了 ESTOP0。
谢谢、
Don
您好!
主题专家将在今天晚些时候再次与您交流。
谢谢、此致、
桑托什
您好、Don、
MPOST 测试仅在 PORSn 路径上运行。 TRM 中的器件引导流程图(图4-1)将在此处提供更清晰的说明。 只有在到达仿真引导路径后、EMU 引导模式才会被设定。
谢谢、此致、
Pawan
您好、Don、
应用报告显示了 F28004x 器件的错误代码。 对于 F28002x、您可以从头文件中引用错误代码。 我将了解如何改进文档以提供更清晰的信息。
关于状态为0x00000000 -用于启用 Pbist 的 OTP 配置已正确配置、并且引导需要一些时间来确认这一点。 因此、我们可以得出这样的结论:pbist 已经执行。
状态可能已被 GEL 文件或其他一些代码覆盖。 要消除 GEL 文件的作用,您能否在启动目标配置并连接到 CPU 之前将其删除?
感谢对文档的澄清、它在调试之外似乎正常工作。 有没有关于为何无法使其在调试模式下运行的想法? 根据我的理解、在调试模式下重新启动时、它会查看仿真位置、而不是 OTP 存储器。 我已按如下方式设置仿真位置、但继续运行到引导 ROM 中位置0x3F4751的 ESTOP0中。 是否知道为什么设置0xD02后它是 Estop?
0xD00 = 0xFFFFFFFF
0xD02 = 0x5AFFFF3F
0xD04 = 0xFFFFFFFF
0xD06 = 0xFFFFFFFF
谢谢、这也是我的理解。 但是、我认为在进入调试和设置位置0xD02后、您可以执行 CPU 复位、这将模拟 POR? 如果情况不是这样、是否有任何方法可以在 Debug 中测试和查看 MPOST 结果?
谢谢、
Don
由于 MPOST 测试在 POR 复位时进行、因此无法直接调试。
不过、您可以在连接 CCS 的情况下通过移动程序计数器并运行测试来绕过调试模式下的检查。