前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >瑞萨RH850 CS+环境下设置堆和栈空间

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

作者头像
不脱发的程序猿
发布2023-02-13 09:35:55
4910
发布2023-02-13 09:35:55
举报

目录

1、设置栈空间

2、设置堆空间


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

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

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

汽车电子技术、瑞萨MCU感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~ 

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

RH850集成环境用户手册-嵌入式文档类资源

1、设置栈空间

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

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

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

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

代码语言:javascript
复制
STACKSIZE	.set	0x400
	.section	".stack.bss", bss
	.align	4
	.ds	(STACKSIZE)
	.align	4
_stacktop:

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

​2、设置堆空间

瑞萨官网已经介绍了堆空间,链接如下:

malloc | CS+ V4.01.00 (renesas.com)

Increase Heap Memory - Forum - RL78 MCU - Renesas Community

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

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

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

代码语言:javascript
复制
#include <stddef.h>
#define SIZEOF_HEAP  0x200
int _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,也就是设置的大小。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、设置栈空间
  • ​2、设置堆空间
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档