AT89S52muc用keil2 c语言写,但程序运行时出现堆栈溢出怎么解决
发布网友
发布时间:2023-06-28 10:05
我来回答
共2个回答
热心网友
时间:2023-10-11 12:05
如果你没有手动初始化过堆栈指针的话.
那么就是你用的数据太多了.大于52拥有的256字节要求
如果不想换单片机的话.
那么少用一些全局变量,减少调用函数的层次
申请指针变量的时候..少用通用指针.
如果指向是数据区的话.一般一个指针变量可以减少2个字节
如果用中断的话..不要用using 0,1,2,3这种..
降低堆栈的使用量..
如果还不行..
直接换单片机了...数据区不够那是搞不定问题的
热心网友
时间:2023-10-11 12:06
堆栈溢出的解决办法是扩展数据存储器,并将堆栈指针定位到扩展的外部数据存储器。
要多大的堆栈区,扩展多大的外部数据存储器,2k不够,扩展8k,8k不够,扩展16k。
为什么一定要qq呢?
百度hi不同样可以聊吗?