工具/软件:
您好:
我创建了一个 FreeRTOS 特权任务,在任务中,它所做的一切都是休眠 1 秒, 10 秒后重置。 当我在调试模式下从 Code Composer 运行时、我看到它适用于第一次复位、但下一次复位时、它卡在 sciInit 函数中。
我发现、第一次复位后、复位源设置为 DEBUG_RESET、因此要通过_memInit_()、 _coreEnableEventBusExport_()、systemInit ()、_coreEnableIrqVicOffset_ () 等进行 下一个复位源设置为 NO_RESET、因此它没有进行正常的初始化过程、这可能是原因。 您能告诉我什么是重置系统的最佳方法吗?我是否需要遵循任何具体的重置过程? 请注意、如果我使用上电复位开关将该板复位、它只运行一次、该复位会卡在 sciInit 中、如所示
下面是代码、如果需要、我可以提供整个工程。
void vResetTask (void)
{
易失性 int32_t 计数= 10;
对于(;;)
{
sciInitPrint(“正在睡觉...“);
if (--count < 0)
{
vTaskDelay (PDMs_to_ticks (100));
systemREG1->SYSECR =(1U)<< 15;
}
暴露
{
vTaskDelay (PDMs_to_ticks (1000));
}
}
}
内部 main (void)
{
gioInit();
sciInit();
sciInitPrint(“\r\n----- 主--- !!!!!! \r\n“);
//勘误表–器件#56
uint32_t esmekr = esmREG->EKR;
if (esmekr!= 0)
esmREG->EKR = 0x5;
esmekr = esmREG->EKR;//回读以检查
xTaskCreate (vResetTask、“复位系统“、256、NULL、(1 | portPRIVILEGE_BIT)、 空);
vTaskStartScheduler();
while (1);
返回 0;
}

感谢您的支持。
此致、
Sarbeswar
