"); //-->
嵌入式软件开发离不开对堆和栈的操作。
栈由操作系统自动分配和释放 ,存放函数的参数值、局部变量的值等。通常都是被调用时处于存储空间中,调用完毕立即释放。
堆由开发者手动分配和释放, 若开发者不释放,通常程序结束时回收。

本篇博文将讲解基于瑞萨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,也就是设置的大小。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
相关推荐
基于瑞萨R8C系列单片机的机顶盒方案
Renesas EPS解决方案
Ceva Wi-Fi 6和蓝牙IP为瑞萨电子首款面向物联网和智能家居的组合式MCU提供支持
瑞萨微光传感器技术解决方案
瑞萨R8C/2L单片机的特殊寄存器定义
MRAM 微型运动人工智能加速器
[求助]请问哪位大虾用过瑞萨R8C/Tiny/11系列芯片?
[求助]请问哪位用过 瑞萨R8C/Tiny/11系列芯片?帮帮忙救急
MIKROE与瑞萨签署多年MCU嵌入式开发工具支持协议
瑞萨运动检测器技术解决方案
高性能嵌入式工作区 (HEW) V.4.04 用户手册
尖叫声检测:人工智能如何识别人声尖叫并协助应急救援
[公告]瑞萨单片机国内一级代理商简介
从硅到软件:RoX AI Studio 推动软件定义汽车设计
Renesas Power Management Solution
瑞萨电子R-Car V4H ADAS SoC已应用于丰田最新RAV4车型
瑞萨发布多域SDV平台R-Car第五代
电原理图
瑞萨和Macronix携手开发0.13微米高密度闪存芯片
瑞萨R8C系列单片机的中央控制板技术解决方案
瑞萨RA4L1:基于 80MHz Arm Cortex-M33 的低功耗 MCU
NC30编译器中文手册
瑞萨图像处理硬件加速器中间件
RZ/A3M:功能强大的 1GHz MPU,内置 DDR3L SDRAM,用于高清 HMI
Altium 在中国发布 Altium Develop —— 标志着其正式从传统许可证合规模式转型