我认为单片机堆栈溢出最重要的原因是我们编程序有问题,即在程序设计初期没有留出足够的空间供堆栈使用,堆栈一旦溢出程序一般会乱指,就是我们所说的程序跑分。一般我们不容许出现这个现象,因此我们在设计程序的时候首先要在内部RAM里开辟一段连续的地址当堆栈使用,且只能让它通过PUSH和POP指令进行访问,而且每次访问堆栈后注意别让堆栈溢出。
STC单片机堆栈溢出的解决方法
RAM模式用large,尽量用XRAM,减少函数嵌套层数,如果一个函数只被一个函数调用,就尽量合并下。
编译器会根据片内RAM消耗量自动确定SP指针,而且51也只能用片内RAM做堆栈。
KEIL C51的堆栈不需要你去设置的,编译器会把DATA ram剩余的空间都划分给栈,所以尽量减少对DATA的使用。
导读:目前正在解读《单片机堆栈溢出怎么解决?》的相关信息,《单片机堆栈溢出怎么解决?》是由用户自行发布的知识型内容!下面请观看由(电工学习网 - www.9pbb.com)用户发布《单片机堆栈溢出怎么解决?》的详细说明。
提醒:《单片机堆栈溢出怎么解决?》最后刷新时间 2023-07-10 03:56:59,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机堆栈溢出怎么解决?》该内容的真实性请自行鉴别。