KW36和KW38内存堆栈的使用

本文详细描述了在NXP芯片上进行的FreeRTOS内存分配实验,包括如何修改heap和stack的大小,以及RTOS对堆栈管理的机制。实验显示,增大heap和stack大小可能导致意外的内存占用变化。
摘要由CSDN通过智能技术生成
本文介绍了在NXP芯片上做的一些RTOS内存分配实验

一、如何修改heap和stack的大小?

在IDE中修改主堆栈大小,可以在Debug文件夹下的ld文件查看修改后的结果

实验:

初始模式,IDE的heap和stack设置为默认0xbf8大小

增加堆和栈的大小,由0xbf8增加到0x1000,编译出的SRAM居然少了0x1000-0xbf8这么多,比较奇怪

二、带RTOS的内存分配是怎么样的?

首先,FreeRTOS不使用在链接器中定义的主堆栈。通常,这个堆被设置为零,堆栈值被设置为最小值,以供main函数使用。

使用"Heap 4"选项,位于"freertos->portable"目录下的"heap_4.c"文件,任务堆栈内存分配的总大小用static uint8_t ucHeap [configTOTAL_HEAP_SIZE];控制,并且RTOS控制的堆大小的单位是字节,这个任务总堆大小的宏设置增加了1500,整体的RAM就增加1500字节,属于内存先分配出来,任务用不用再说

实验:

configTOTAL_HEAP_SIZE设置((size_t)(8500))

configTOTAL_HEAP_SIZE设置((size_t)(10000))

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值