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.

TMS320F280049: 最近在做高低温测试的时候会出现芯片重启的问题,我想获取芯片复位的原因,试过了读取CpuSysRegs.RESC复位寄存器的值,但是获取到的都是0,还尝试了使用了读取BROM_STATUS 0x0000 0002这个地址里面的值,打印出来的值也是0,有前辈能够回答和解决这个问题吗?这是我的定义及两种使用的方法

Part Number: TMS320F280049

最近在做高低温测试的时候会出现芯片重启的问题,我想获取芯片复位的原因,试过了读取CpuSysRegs.RESC复位寄存器的值,但是获取到的都是0,还尝试了使用了读取BROM_STATUS 0x0000 0002这个地址里面的值,打印出来的值也是0,有前辈能够回答和解决这个问题吗?这是我的定义及两种使用的方法

#define BOOTSTATUS 0x00000000
Uint32 *BOOTSTAT;
Uint32 bootstatus_prf;

Int main()
{
BOOTSTAT = (Uint32 *)BOOTSTATUS;
bootstatus_prf = *BOOTSTAT;
Task_Handle task;

}

if(CpuSysRegs.RESC.bit.DCON == 1)
{
LogPrint("RESET_STA_DCON\n");
}
if(CpuSysRegs.RESC.bit.NMIWDRSn == 1)
{
LogPrint("RESET_STA_NMIWDRSn\n");
}
if(CpuSysRegs.RESC.bit.POR == 1)
{
LogPrint("RESET_STA_POR\n");
}
if(CpuSysRegs.RESC.bit.SCCRESETn == 1)
{
LogPrint("RESET_STA_SCCRESETn\n");
}
if(CpuSysRegs.RESC.bit.WDRSn == 1)
{
LogPrint("RESET_STA_WDRSn\n");
}
if(CpuSysRegs.RESC.bit.XRSn == 1)
{
LogPrint("RESET_STA_XRSn\n");
}
if(CpuSysRegs.RESC.bit.XRSn_pin_status == 1)
{
LogPrint("RESET_STA_XRSn_pin_status\n");
}

  • 更正一下,这个地址读的是#define BOOTSTATUS 0x00000002

  • 您好

    请参考以下建议进行尝试:

    1. 检查复位寄存器读取方法

      • 确保您读取复位寄存器的方法是正确的。对于TMS320F280049,通常可以通过访问特定的系统控制寄存器来获取复位信息。您可能需要参考芯片的技术参考手册(TRM)来确认正确的寄存器和读取方法。
    2. 确认复位寄存器是否受限制

      • 有些芯片的复位寄存器可能在复位后会被清零或设置为特定的值,以确保系统从一个已知的状态开始运行。如果这是您芯片的情况,那么您可能无法在复位后读取到有用的信息。
    3. 检查电源和时钟稳定性

      • 高低温测试可能会导致电源和时钟信号的稳定性问题。不稳定的电源和时钟信号可能会触发复位。检查您的电源和时钟电路,确保它们在测试条件下能够保持稳定。
    4. 使用外部复位监控器

      • 考虑使用外部复位监控器来监控芯片的复位信号。这可以帮助您确定复位是由外部条件(如电源波动、温度变化等)触发的,还是由芯片内部条件触发的。
x 出现错误。请重试或与管理员联系。