微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 内存分配问题

内存分配问题

时间:10-02 整理:3721RD 点击:

我在程序里面添加串口初始化函数以后(不断的有数据发送到串口),运行程序的时候出现IDATA溢出的错误。我对堆栈的使用不是很了解,大家帮我看看应该要怎么调整,能附上简略的堆栈使用讲解更好。谢谢

从上面的图可以看到设置的IDATA是0xc0也就是192,但是在map里面显示的值是194已经大于192了。我在设置里面把IDATA的大小设置成比0xc0大的值以后会发现map里面的值也始终会大于我新设置的那个值。

检查一下,你工程里哪些变量定义时加了修饰字idata。

然后把部分带idata修饰字的变量 在定义时去掉该修饰字。

刚刚看了几个例程,编译后idata都是194,我也觉得很奇怪,应该不像是这个问题。

但是如果是栈溢出的话,有可能是以下原因导致:

局部变量分配较大的内存;

函数的多重调用(函数A中调用函数B,函数B中又调用函数C....层数太多的话,有可能导致栈的溢出);

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top