| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2150 人关注过本帖
标题:为什么函数执行完了,还能导致系统死机?
只看楼主 加入收藏
lqab1983
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-11-29
收藏
得分:0 

 printf("A7 coming\r\n");执行了
但是
if(Authentication_list()) 执行完了就死机
注释掉 一点事没有


我为什么要改循环条件,是因为我的数组列表有可能增删数据,每次循环完我必须改动,确保循环到。

我认为问题不在这
2014-09-04 15:06
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 11 楼 lqab1983
                        for(k = 0; k < group_list_nums; k++)  //这里是每次循环,每次k++后,你就要改变group_list_nums的值,在下一次循环前拿新的group_list_nums的值和k做比较。这里我只是提醒,我觉得这个用法很怪异。
                        {
                            I2C_Read(I2C1, ADDR_24C02N, 65, &group_list_nums, 1);
                            I2C_Read(I2C1, ADDR_24C02N, 66, group_list, (group_list_nums * 4));

总有那身价贱的人给作业贴回复完整的代码
2014-09-04 15:11
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
I2C_Read(I2C1, ADDR_24C02N, 66, group_list, (group_list_nums * 4));

group_list_nums*4的值一般是多少?如果数值很大的话,I2C_Read函数内部会不会超时导致没有喂看门狗芯片重启?

总有那身价贱的人给作业贴回复完整的代码
2014-09-04 15:14
lqab1983
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-11-29
收藏
得分:0 
乘4后不会超过160 ,因为最多40个组地址,一组是4个字节。我定义数组长度是160.

您说的有可能,不过我当时数组里只有2组数据,最多8个字节。真是不多
2014-09-04 15:18
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:2 
回复 14 楼 lqab1983
你加个判断,如果group_list_nums<=2则执行,如果group_list_nums>2,   则把group_list_nums打印出来并直接返回

总有那身价贱的人给作业贴回复完整的代码
2014-09-04 15:26
lqab1983
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-11-29
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

打印的LOG见上面。
我觉得问题的根源也不在于group_list-nums2. 还是我那个Authentication_list函数里。

大家能帮忙看看,是不是哪的语法错误了?函数应该执行完了,怎么会死机了?
2014-09-09 10:26
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
我觉得原因有2:
1、内存释放问题 可能存在程序“正常”结束后 死机
2、堆栈不平衡   也可能存在程序“正常”结束后 死机

DO IT YOURSELF !
2014-09-09 13:52
lqab1983
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-11-29
收藏
得分:0 
那我该怎么查找问题了,我基本用的都是数组,就没敢内存分配
2014-09-10 09:51
快速回复:为什么函数执行完了,还能导致系统死机?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029261 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved