CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!

RAM电源管理

每一个RAM Block可以处于三种不同的电源状态:POWER OFF、RETENTION或FULL。

  • FULL对应于系统Active状态,MCU可以进行RAM Block读写。
  • RETENTION主要用于系统Sleep状态,处于该电源状态的RAM Block中的数据将不会丢失,供系统从Sleep状态恢复到Active态使用。
  • 处于POWER OFF状态的RAM Block会掉电,存储于其中的数据会丢失,需用户提前进行保存。

在GR5526中,电源管理单元(PMU)在系统启动时默认开启了全部RAM电源。GR5526 SDK中也提供了完备的RAM电源管理API,开发者可以根据应用需要,合理配置RAM Block的电源。

系统启动时,默认启用了自动RAM功耗管理模式,系统会根据Application的RAM使用情况,自动进行各RAM Block的电源控制。配置规则如下:

  • 在系统Active状态,不使用的RAM Block会设置为POWER OFF状态;需要使用的RAM Block则设置为FULL状态。
  • 当系统进入Sleep状态时,会将不使用的RAM Block保持为POWER OFF状态,而需要使用的RAM Block设置为RETENTION状态。

在实际应用中,应配置如下:

  • 在BLE应用中,RAM_16K_0和RAM_16K_1的前 8 KB是保留给Bootloader和BLE协议栈使用,Application不可使用。在系统Active时,RAM_16K_0和RAM_16K_1应都处于FULL状态;在系统Sleep期间,它们应处于RETENTION状态。非BLE类MCU应用可以使用这两个RAM Block。
  • RAM_32K_0及以后的RAM Block的用途可由Application进行规划定义。通常,将用户数据和需要在RAM中执行的代码段定义在从RAM_32K_0开始的连续区间;将函数调用栈(Call Stack)的栈顶定义在RAM的高端地址。这些RAM Block的电源状态可以全部开启,也可以由Application自行控制。
说明:
  • 只有当RAM Block处于FULL状态时,MCU才能对其进行访问。
  • 更多RAM电源管理API的详细说明在SDK_Folder\components\sdk\platform_sdk.h中。

    SDK_Folder为GR5526 SDK的根目录。

扫描关注

打开微信,使用“扫一扫”即可关注。