天天热文:瑞萨RH850CS+环境下设置堆和栈空间

2023-02-06 12:09:21    来源 : 面包芯语

点击上方蓝色字体,关注我们


(资料图片)

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

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

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

本篇博文将讲解基于瑞萨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 FCL、FDL和EEL库的配置和使用

Green Hills Software(GHS)的安装和申请License文件

比亚迪元EV汽车拆解报告

比亚迪新能源汽车战略布局研究

一文搞懂I2S通信总线

详解UDS CAN诊断:什么是UDS(ISO 14229)诊断?

点击阅读原文,更精彩~

标签: 如下图所示 起始地址 存储空间

相关推荐

x 广告

如有意见请与我们联系 邮箱:8 97 180 9 @qq.com

豫ICP备2021032478号-31

Copyright ©  2015-2022 元宇宙版权所有