Thread 中讨论的其他器件:controlSUITE
大家好、香榭丽舍、
我的客户正在使用 F28075、他们的产品将大规模生产、但最近他们发现5块电路板在加载闪存映像后无法独立运行程序(在加载后连接仿真器、它可以完全运行)。
我支持在连接仿真器的情况下进行现场调试、发现代码卡在引导 ROM (地址:0x3FE444)中、其中是 interrupt void c1brom_handle_NMI ()函数、用于处理 c1brom_interrupts.c 源文件中文件夹 C:\ti\controlSUITE\libs\utilities\boot_rom\f2807x\bootx\rom\from\bootx\sources\f281b\boot\bootx\bootx_rom\bootx\rom\bootx\rom\powers\powers\powers\bootx\bootx\
if (c1brom_NMI_STATUS & NMI_INT_FLLUNCERR)/*检查 C28FLLUNCERR NMI *
{
c1brom_status |= C1_BootROM_GK_A_FLASH_UNCHERR_NMI;
//if debugger connected -为用户提供了解情况的机会
asm (" ESTOP0");
//让 NMIWD 复位器件
while (1);
}
然后、我们确定 NMIFlG.bit.FLLUNCERR=1、ERR_STATUS.BIT.UNC_ERR_L=1和 UNC_ERR_ADDR_L=0x78010、这意味着在128位内存对齐数据的低64位中会出现不可纠正的错误。
客户软件会将0xFFFE 的值写入该位置、我们观察到其中的内容、它也是0xFFFE、但为什么 ECC 会将其检测为不可纠正的错误? 以及我们应该如何处理它、因为每次上电时、它不能单独运行、但会始终停留在引导 ROM 中。
由于客户的软件是相同的、并且他们的大多数控制板都可以在0x78010中的相同内容下正常工作、您认为这与器件有什么关系吗?
此致、
张卫健