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.

[参考译文] AM2632:使用 AM2632 实现无初始化 RAM 的 CAN't

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1638531/am2632-can-t-implement-of-no-init-ram-using-am2632

器件型号: AM2632

我们需要在 RAM 中定义一个 no-init 变量、该变量在软件复位后不会改变。

以下图片是 syscfg。 包括区域段和代码。 我们将该段设置为“NoLoad"。“。

uint32_t u32_FACTORY_RESET __attribute__((aligned (8U))__attribute__((section(“.FACTORY_RESET_DATA")“)));
我们使用 SOC_generateSwWarmReset ();来重置 MCU。
但是、在软件复位后、u32_FACTORY_RESET 的值始终复位为 0。  

image.png

image.png

 

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

    尊敬的 Yao Wei:

    您能否确认是否 在 QSPI 引导模式下运行程序?

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

    是、我们以 QSPI - 1S 模式运行。 我们将 mcelf 映像刷写到 NOR 中、并在上电复位后进行测试。

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

    尊敬的 Yao Wei:  

    L2 存储器初始化由组 0 和 1 的 ROM 代码完成、SBL 对组 2 和 3 执行存储器初始化、从而可以复位变量值。  

    另请参阅器件 TRM 中与此相关的以下摘录:

    此致、

    Sahana

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

    您好、Sahana、  

    您认为、在任何 PORz 中、存储体 0-3 都将在 ROM 和 SBL 两个进程后复位。 热复位不 会影响这些前移组。

    但我们 在代码中使用了 SOC_generateSwWarmReset ();来触发热复位。 并且存储器 0x701FFF00 仍处于复位状态。

    你知道吗?  

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

    尊敬的 Yao Wei:

    在您看来、在 ROM 和 SBL 两个进程的任何 PORz 后、组 0-3 都将被重置。

    ROM 和 SBL 在每个期间运行 PORz 和热复位 同样、因此 SBL 中调用的内存初始化 API “Bootloader_socInitL2MailBoxMemory ();“会影响内存  0x701FFF00。

    如果您确实不希望地址在热复位过程中受到影响、则应跳过存储器初始化、但不建议这样做 、因为在使用受 ECC 保护的存储器之前、始终有必要执行存储器初始化、以避免虚假 ECC 错误和潜在的系统故障。

    此致、

    Sahana

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

    您好、Sahana、

     你意味着唯一的方法是删除  Bootloader_socInitL2MailBoxMemory();在 SBL 中。

    但不建议这样做、因为可能会出现 ECC 错误和系统故障。

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

    尊敬的 Yao Wei:

    [quote userid=“656983" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1638531/am2632-can-t-implement-of-no-init-ram-using-am2632/6318113

    你意味着唯一的方法是删除  Bootloader_socInitL2MailBoxMemory();在 SBL 中。

    但不建议这样做、因为可能会出现 ECC 错误和系统故障。

    [/报价]

    是的、这是正确的。

    此致、

    Sahana