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.

[参考译文] AM2432:复位 am2432 soc

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1524271/am2432-reset-the-am2432-soc

器件型号:AM2432

工具/软件:

您好、

我正在尝试复位 am243x soc。

通过 syscfg -我添加了 MPU 区域 0x45D00000U 大小= 4KB 所有读写不高速缓存不可执行

#define MCU_CTRL_MMR_BASE 0x45D00000U
#define MCU_RST_CTRL_OFFSET 0x0004U
#define MCU_RST_CTRL (*(Volatile uint32_t *)(MCU_CTRL_MMR_BASE + MCU_RST_CTRL_OFFSET)
#define MCU_RST_CTRL_KEY (0x5A690000U)
#define MCU_RST_CTRL_RESET_REQ (MCU_RST_CTRL_KEY | 0x1U)

然后在我检测到电源开始下降的时候:

__sync_synchronous ();
MCU_RST_CTRL = MCU_RST_CTRL_RESET_REQ;
while (1);//等待复位

但此时我看到其他 FreeRTOS 任务继续运行、因此没有复位。

我的方法是否正确?

正确的复位是什么(就像从 CCS"系统复位"中一样)

谢谢、

Eli

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

    您好、

    我也试过了  

    #define MAIN_CTRLLMMR_RST_CTRL_REG (*(volatile uint32_t *) 0x43018000U)
    #define MAIN_RST_CTRL_KEY 0x5A690000U
    #define MAIN_SW_WARMRST_bits 0x06U //将位[3:0]设置为0b0110

    然后

    __sync_synchronous ();//确保内存障碍
    MAIN_CTRLLMMR_RST_CTRL_REG = MAIN_RST_CTRL_KEY | MAIN_SW_WARMRST_BITS;
    while (1);//等待复位

    但同样、也不会复位。

    请提供建议。

    谢谢、

    Eli

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

    您好、

    找到一个实际复位 soc 的函数:

     SoC_generateSwWarmResetMcuDomain();

    谢谢、

    Eli