登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

[求教]侦测到堆栈溢出

作者:51mcubbs 栏目:单片机
[求教]侦测到堆栈溢出
我在用仿真器编程时(伟福51编程器),在程序运行时出现“侦测到堆栈溢出”的提示。

程序的思路如下:

main:

     call     xxxxx
     call     xxxxx
     call     xxxxx
     call     xxxxx
     call     xxxxx
     call     xxxxx    

     jmp    main
     xxxx   ;若干个子程序
     xxxx
     xxxx
     end

程序中多次使用call指令,且子程序嵌套较多,在运行时我在jmp  main处设置了断点,我的程序前4次都能正常运行到断点,但第4次跳转之后变出现“侦测到堆栈溢出”的提示.

求教如何修改。




* - 本贴最后修改时间:2005-11-19 15:25:01 修改者:51mcubbs

2楼: >>参与讨论
coke
re
main:

     call     xxxxx

     call     xxxxx

     call    xxxxx

     jmp    main
程序开始有设置堆栈吗?你这种并列CALL方式只会占用一级堆栈(无中断和嵌套情况下). 1.可能你的子程序嵌套太多了.2.可能是你的哪个子程序没有返回.

* - 本贴最后修改时间:2005-11-18 13:44:13 修改者:coke

3楼: >>参与讨论
chenzhen
堆栈溢出主要查看以下内容
堆栈溢出主要查看1、是否有修改堆栈指针;2、是否嵌套的数据保护的内容超高堆栈(以最大嵌套记)。3、是否有调用没返回的子程序。4、是否有中断没有用中断返回而用子程序返回的。

参与讨论
昵称:
讨论内容:
 
 
相关帖子
除了STC,还有那个厂家有支持6T的廉价芯片?
请教在Protel99se中如何方便快捷的重新改变已定好的PCB板尺寸
学了段时间的51感觉前途很迷茫
关于16C550的问题
两个芯片能否共用一个24MHz的有源晶振
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号