KEIL之编译后的资源大小分析

4 篇文章 0 订阅
1 篇文章 0 订阅

参考:https://blog.csdn.net/aichirourou_66/article/details/79401243

用的ZET6+FreeRTOS开发一款产品,程序经常跑着跑着就死机(运行时间大概在10-20分钟之间),猜测可能是堆栈溢出的问题。

Program Size: Code=31844 RO-data=1020 RW-data=276 ZI-data=29548  

Code:指代码的大小;

Ro-data:指除了内联数据(inlinedata)之外的常量数据;

RW-data:指可读写(RW)、已初始化的变量数据;

ZI-data:指未初始化(ZI)的变量数据

Code、Ro-data:位于FLASH中;

RW-data、ZI-data:位于RAM中;

提醒:RW-data已初始化的数据会存储在Flash中,上电会从FLASH搬移至RAM中。

关系如下:

RO  Size = Code + RO Data

RW  Size = RW Data + ZI Data

ROM Size = Code + RO Data + RW Data

 

另外:在另一篇文章中看到一句话(出处:https://blog.csdn.net/l_w_zeng/article/details/73502095),说是如果没有用到标准库函数malloc来分配内存的话,可以把.s文件中的Heap_Size设置为0,

修改为:Heap_Size       EQU     0x00000000

 

//---------------------------------------------------------------------------------------------------------------------------------------

跑死机的问题已经找到

我将串口数据的解析和组包封装到了一个独立的文件中,提供两个公共函数,给三个串口使用,这种情况下就经常死机。

我把这个公共函数取消后,在每个串口文件的内部用不同的函数名弄一个内部的解析和组包函数就好了。

眼下还不知道这是为什么。

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值