你好!欢迎来到深圳市颖特新科技有限公司!
语言
当前位置:首页 >> 技术中心 >> 单片机入门 >> 单片机堆栈溢出怎么解决?

单片机堆栈溢出怎么解决?

作者:admin 来源:不详 发布时间:2018-05-08  浏览:9
我认为单片机堆栈溢出最重要的原因是我们编程序有问题,即在程序设计初期没有留出足够的空间供堆栈使用,堆栈一旦溢出程序一般会乱指,就是我们所说的程序跑分。一般我们不容许出现这个现象,因此我们在设计程序的时候首先要在内部RAM里开辟一段连续的地址当堆栈使用,且只能让它通过PUSH和POP指令进行访问,而且每次访问堆栈后注意别让堆栈溢出。
STC单片机堆栈溢出的解决方法
RAM模式用large,尽量用XRAM,减少函数嵌套层数,如果一个函数只被一个函数调用,就尽量合并下。
编译器会根据片内RAM消耗量自动确定SP指针,而且51也只能用片内RAM做堆栈。
KEIL C51的堆栈不需要你去设置的,编译器会把DATA ram剩余的空间都划分给栈,所以尽量减少对DATA的使用。

编辑:admin  最后修改时间:2018-05-08

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright © 2014-2023 颖特新科技有限公司 All Rights Reserved.  粤ICP备14043402号-4