搜索
bottom↓
回复: 13

pic堆栈溢出,真痛苦。。。

[复制链接]

出0入0汤圆

发表于 2009-11-26 13:24:39 | 显示全部楼层 |阅读模式
程序在进入串口中断时容易复位,程序复位。。。。。。怀疑是堆栈溢出了。。。。。。。。
难道重新编写程序?
程序子程序好多。。。。。不知是哪一块出问题。。。。。
特意试了pic
#include<pic.h>
volatile unsigned char i=0;
fun_9()
{
        i=9;
//        fun_9();
        i=9;       
}
fun_8()
{
        i=8;
        fun_9();
        i=8;       
}
fun_7()
{
        i=7;
        fun_8();
        i=7;       
}
fun_6()
{
        i=6;
        fun_7();
        i=6;       
}
fun_5()
{
        i=5;
        fun_6();
        i=5;       
}
fun_4()
{
        i=4;
        fun_5();
        i=4;       
}
fun_3()
{
        i=3;
        fun_4();
        i=3;       
}
fun_2()
{
        i=2;
        fun_3();
        i=2;       
}
fun_1()
{
        i=1;
        fun_2();
        i=1;       

}
main()
{

        while(1)
        {
                i=0;
                fun_1();
                i=0;
        }

}

出0入0汤圆

发表于 2009-11-26 14:05:06 | 显示全部楼层
硬件堆栈的单片机子程序嵌套调用绝不超过两层,尽量不传参数(用全局变量)。感觉和汇编差不多。

出0入0汤圆

发表于 2009-11-26 14:34:08 | 显示全部楼层
你这个是特意让它溢出的,何来痛苦之说?痛苦来自你做项目的时候堆栈溢出了,而大多数时候你难以察觉。

出0入0汤圆

 楼主| 发表于 2009-11-26 15:05:04 | 显示全部楼层
就是做项目的时候,堆栈溢出了啊

出0入0汤圆

发表于 2009-11-26 15:55:32 | 显示全部楼层
把不是频繁调用的子程序改用宏

出0入0汤圆

 楼主| 发表于 2009-11-26 15:57:08 | 显示全部楼层
恩。试试看。
没什么心思在这个公司,也不想尽力了

出0入0汤圆

发表于 2009-11-27 22:23:18 | 显示全部楼层
"难道重新编写程序? "

you are purposely trying to create stack overflow.

any computer, if you do it purposely, will have its stack overflow. PIC is no exception in that regard.

出0入0汤圆

发表于 2009-11-27 23:07:28 | 显示全部楼层
没什么心思在这个公司,也不想尽力了
====================================

不管在哪个公司,努力学好手艺才是正道。

出0入0汤圆

 楼主| 发表于 2009-11-28 00:31:20 | 显示全部楼层
准备换成pic18f看看,资源成备扩张…

出0入0汤圆

发表于 2009-11-28 00:34:32 | 显示全部楼层
硬件堆栈,感觉真的不好,为什么不用指针呢,
遇到过~

出0入0汤圆

发表于 2009-11-28 02:15:04 | 显示全部楼层
LZ的代码没有一点意义。就好像明明知道鸡蛋壳很脆弱,却还是将鸡蛋在石头上使劲砸一下看看会不会碎。

出0入0汤圆

发表于 2009-12-21 20:37:25 | 显示全部楼层
看看  你们公司是很有钱, 不用考虑成本

出0入0汤圆

 楼主| 发表于 2009-12-21 21:08:37 | 显示全部楼层
说回来,性价比还是18f高…
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 04:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表