专栏中心

EEPW首页 > 专栏 > 瑞萨RH850 CS+环境下设置堆和栈空间

瑞萨RH850 CS+环境下设置堆和栈空间

发布人:美男子玩编程 时间:2023-02-28 来源:工程师 发布文章

嵌入式软件开发离不开对堆和栈的操作。


栈由操作系统自动分配和释放 ,存放函数的参数值、局部变量的值等。通常都是被调用时处于存储空间中,调用完毕立即释放。


堆由开发者手动分配和释放, 若开发者不释放,通常程序结束时回收。


图片


本篇博文将讲解基于瑞萨IDE:CS+ for CC环境如何设置RH850 MCU堆和栈的空间。


1


设置栈空间

打开cstart.asm,找到STACKSIZE,如下图所示:


图片


其中0X200即为栈的大小即512Bytes。


图片


点击编译工程,生成map文件,查看栈size,正好是0X200,如下图所示:


图片


修改代码,设置栈size 为0X400,如下所示:








STACKSIZE  .set  0x400  .section  ".stack.bss", bss  .align  4  .ds  (STACKSIZE)  .align  4_stacktop:


点击编译工程,生成map文件,查看栈size,正好是0X400,如下图所示:


图片



2


设置堆空间

在map文件中可以查看到堆空间大小,如下图所示:


图片


bss起始地址:0xFEDD6130 ,bss结束地址:0xFEDD61F7,size:0xc8,align:4。


设置堆size 为0X200,代码如下所示:






#include#define SIZEOF_HEAP  0x200int _REL_sysheap[SIZEOF_HEAP>>2];size_t _REL_sizeof_sysheap = SIZEOF_HEAP;


将代码放置到main.c文件中,如下图所示: 

图片


点击编译工程,生成map文件,查看堆size,如下图所示:


图片


bss起始地址:0xFEDD6134 ,bss结束地址:0xFEDD63FB,size:0x2C8,align:4。


bss空间增量:0x2C8 - 0xC8 = 0X200,也就是设置的大小。



专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: 瑞萨 RH850

相关推荐

瑞萨R8C/2L单片机的特殊寄存器定义

高性能嵌入式工作区 (HEW) V.4.04 用户手册

如何让电机控制更精准高效

Ceva Wi-Fi 6和蓝牙IP为瑞萨电子首款面向物联网和智能家居的组合式MCU提供支持

瑞萨收购 Irida Labs:边缘 AI 不只需要处理器

瑞萨电子R-Car V4H ADAS SoC已应用于丰田最新RAV4车型

汽车电子 2026-02-24

家用与AI数据中心供电全面升级

尖叫声检测:人工智能如何识别人声尖叫并协助应急救援

Altium 在中国发布 Altium Develop —— 标志着其正式从传统许可证合规模式转型

瑞萨电子下一代 R-Car 汽车技术采用 Arteris 片上网络 IP

NC30编译器中文手册

Renesas Power Management Solution

电原理图

资源下载 2009-12-03

MRAM 微型运动人工智能加速器

MIKROE与瑞萨签署多年MCU嵌入式开发工具支持协议

更多 培训课堂
更多 焦点
更多 视频

技术专区