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.

[参考译文] TMDX570LC43HDK:特权 FreeRTOS 任务导致 sciInit 函数挂起时的系统复位

Guru**** 2482105 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1552095/tmdx570lc43hdk-system-reset-from-privileged-freertos-task-causing-hang-in-sciinit-function

部件号:TMDX570LC43HDK


工具/软件:

您好:

我创建了一个 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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,我现在可以解决这个问题。 基本上、我按如下所示添加了 NO_RESET、现在能够看到连续复位、但我认为此代码更改是不正确的。 这可能是出于某种原因。 我想知道为什么复位源会被清除(如果是修复的)、这是根本原因。 请告诉我我我的理解是否正确。

    hl_sys_startup.c

    /*SAFETYMCUSW 62 S Mr:15.2, 15.5. “需要继续处理加电复位“*/
    充电盒 DEBUG_RESET:
    充电盒 EXT_RESET:
    如果是 NO_RESET:<-----增加了这一行  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sarbeswar:

    “我知道,就一会儿。“

    如果您在代码中使用引导加载程序、则预期行为仅为:

    请参阅以下主题以了解原因:

    (+) RM57L843:UART_Bootlader_RM57 问题 — 基于 Arm 的微控制器论坛 — 基于 Arm 的微控制器 — TI E2E 支持论坛

    请参阅上述主题中的以下注释:

    --
    此致、
    Jagadish。