0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三大开发环境下的Standby RAM变量配置教程

瑞萨嵌入式小百科 来源:瑞萨MCU小百科 2025-07-05 15:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式低功耗设计中,Standby RAM(待机保持内存)是芯片在深度休眠模式下仍能保持数据的关键硬件资源。但许多开发者苦于不同开发环境的配置差异,难以高效利用这一特性。

本文将以e2studio(瑞萨)、KEIL MDK(ARM)和IAR EW(IAR Embedded Workbench)三大主流开发环境为例,手把手教你在瑞萨RA6M4平台上实现“将变量精准分配至Standby RAM”的终极目标。对于其他内置Standby RAM的瑞萨RA系列MCU产品,均可参考本文的配置过程,并参考硬件手册做适当修改。本例中,Standby RAM的起始地址为0x28000000,大小为0x400。

9fbe7cfc-5630-11f0-b147-92fbcf53809c.png

01e2studio工程中

(1)在fsp.ld文件中添加以下内容,定义Standby RAM这部分区域:

9fd08d7a-5630-11f0-b147-92fbcf53809c.png

9fe97e98-5630-11f0-b147-92fbcf53809c.png

(2)hal_entry.c中在R_BSP_WarmStart中添加以下内容,允许使用Standby RAM并进行初始化。

a000af50-5630-11f0-b147-92fbcf53809c.png

(3)代码编辑、编译&调试,并打开Memory窗口进行验证。

需要放置到Standby RAM区域的数据需要做特定的声明。例如:

uint8_t g_standby_ram_variable[512] BSP_PLACE_IN_SECTION(“.standby_ram”) = {0,1,2,3,4,5,6,7,8,9,10};

从下图中可以看到数组g_standby_ram_variable[512]的数据已经放在Standby RAM区域中。

a0183152-5630-11f0-b147-92fbcf53809c.png

02KEIL MDK工程中

(1)打开KEIL MDK工程,点击Option for Target

a0319d72-5630-11f0-b147-92fbcf53809c.png

Target标签页Read/Write Memory Areas,定义一块区域

a09da2f6-5630-11f0-b147-92fbcf53809c.png

点击Linker标签页,取消链接勾选,自定义链接脚本,点击2处编辑

a0b1fe22-5630-11f0-b147-92fbcf53809c.png

定义一片区域

a0d5bdda-5630-11f0-b147-92fbcf53809c.png

(2)定义变量

uint8_t var00[10] __attribute__((section("SAMPLE_NAME_A")));

(3)代码中添加对这个变量的写入

a0e3a5c6-5630-11f0-b147-92fbcf53809c.png

(4)编译&调试,进行验证

从Memory窗口,可以看到放置在Standby RAM区域的变量被正常写入

a0f4d954-5630-11f0-b147-92fbcf53809c.png

03IAR EW工程中

(1)修改链接器配置文件(.icf)

在项目的链接器配置文件中定义Standby RAM区域和段:

define region STANDBY_RAM = mem:[from 0x28000000 to 0x280003FF];

define block STANDBY_BLOCK { section .standby_ram };

place in STANDBY_RAM { block STANDBY_BLOCK };

do not initialize { section .standby_ram};

(2)在代码中声明变量

使用__no_init关键字和#pragma location指令将变量分配到指定段:

#pragma location = ".standby_ram"

__no_init uint8_t g_standby_ram_variable[512];

(3)在用户代码中手动初始化,并赋值

a10bb750-5630-11f0-b147-92fbcf53809c.png

(4)编译&调试,进行验证

从Memory窗口,确认变量地址和数值。

a11d136a-5630-11f0-b147-92fbcf53809c.png

通过上述步骤,我们实现了三大开发环境下的Standby RAM变量配置。无论你使用e2studio、KEIL MDK还是IAR EW,核心逻辑始终一致:

编译器层:通过链接脚本隔离内存区域

代码层:结合复位类型检测实现按需初始化

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20165

    浏览量

    329037
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1398

    浏览量

    119837
  • 瑞萨
    +关注

    关注

    36

    文章

    22432

    浏览量

    89780
  • 开发环境
    +关注

    关注

    1

    文章

    253

    浏览量

    17540
  • Standby
    +关注

    关注

    0

    文章

    5

    浏览量

    7360
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux环境变量配置的6种方法

    在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量配置方法。
    发表于 12-05 09:25 2204次阅读

    Linux环境变量配置方法

    在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量配置方法。
    发表于 09-27 09:50 812次阅读

    python环境变量配置pip

    Python环境变量配置和使用是每个Python开发者都需要了解和掌握的基本技能之一。在本文中,我们将详细介绍如何正确配置Python环境变量
    的头像 发表于 12-15 15:41 3754次阅读

    【HiSpark系列】重磅 HarmonyOS官方大开发套件HiSpark首场开箱直播

    本帖最后由 l_xy 于 2020-10-18 18:40 编辑 【HarmonyOS官方大开发套件HiSpark首场开箱直播】——揭开HarmonyOS神秘面纱 —从零开发一个
    发表于 09-14 14:42

    Java环境变量配置

    Java环境变量配置
    发表于 07-24 11:39 0次下载

    教你在Win7配置Android开发环境

    在Win7配置Android开发环境是本文要介绍的内容,主要是来了解并学习Android开发环境
    发表于 12-01 01:19 554次阅读
     教你在Win7<b class='flag-5'>下</b><b class='flag-5'>配置</b>Android<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    又一国产AI平台重大升级,大开发套件发布!

    大开发套件:AI开发工具包RKNN-Toolkit、AI SDK软件开发工具包Rock-X SDK,以及AI人工智能计算棒RK1808 AI Compute Stick。
    的头像 发表于 05-22 08:50 5373次阅读

    瑞芯微电子正式面向全球AI开发者发布大开发套件 提升开发便利性

    近日,福州瑞芯微电子Rockchip(以下简称瑞芯微)宣布旗下AI平台重大升级,正式面向全球AI开发者发布大开发套件:AI开发工具包RKNN-Toolkit、AI SDK软件
    的头像 发表于 05-23 14:04 3942次阅读

    如何在Eclipse开发环境配置OpenCV

     1. 安装OpenCV2.0,安装时注意最好安装在根目录下,或者安装路径中没有空格和中文字符。我安装在E盘根目录下,不要忘了在系统环境变量配置相应路径(E:\OpenCV2.0 \bin)安装时自动配置
    发表于 11-26 16:09 5次下载
    如何在Eclipse<b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>下</b><b class='flag-5'>配置</b>OpenCV

    6种Linux环境变量配置方法

    在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量配置方法。
    的头像 发表于 02-16 10:34 2134次阅读

    如何配置Python环境变量

    配置Python环境变量是在安装Python解释器后的一项重要步骤,它允许您在任何位置都可以通过命令行或脚本运行Python解释器,使Python编程更加便捷和灵活。在本文中,我们将介绍如何配置Python
    的头像 发表于 04-14 12:16 2.1w次阅读

    pycharm怎么配置python环境变量

    PyCharm 是一种以 Python 为主的集成开发环境 (IDE),它提供了一系列的功能用于开发、调试、测试和部署 Python 程序。在使用 PyCharm 开发 Python
    的头像 发表于 11-29 14:56 5953次阅读

    idea要配置java环境变量

    环境变量的步骤及其重要性。 在开始之前,我们先了解一环境变量的概念。环境变量是操作系统定义的一些值,用于指定操作系统及其应用程序如何运行。通过设置
    的头像 发表于 12-06 14:02 1427次阅读

    Linux环境变量配置方法

    想必大家平时工作中也会配置Linux的环境变量,但是可能也仅仅是为解决某些工具的运行环境,对于Linux环境变量本身的配置学问还没深入了解。
    的头像 发表于 01-04 09:51 1084次阅读

    Linux环境变量配置方法

    Linux上环境变量配置分为设置永久变量和临时变量两种。环境变量设置方法同时要考虑环境Shell
    的头像 发表于 10-23 13:39 1253次阅读