关于STM8死机和重启的有关问题
发布时间:2010-06-14 16:01:47 文章来源:www.iduyao.cn 采编人员:星星草
关于STM8死机和重启的问题
我们公司有一个用STM8做的产品(没用系统),之前的程序跑起来一直很正常;后来公司想在该产品上增加无线数据通讯的功能,我将代码写好后加进去发现原来的主要功能和现在的无线数据通讯功能都能正常运行。但是在进入某个菜单界面进行一些设置时一直会死机和重启。
我进入到这部分菜单程序,把里面的一条case语句注释掉就可以正常运行(这些菜单程序都是以前的,并不是我这部分的)。后来发现的确是我的程序造成的,因为我将我这部分的代码屏蔽后就恢复正常。但问题是,在进入这个菜单时并没有调用我的那部分程序。我的这部分程序只有在运行原程序的某一部分的时候才会被调用。并且在不进入那个菜单时,我的那部分程序和原程序都能正常运行。但是一进入那个菜单,按下确定键进行设置时就死机或者重启。
用的是IAR的开发环境。我在查找问题的时候发现越查越诡异。我将我的那部分代码分成两半,把某一半注释掉流另一半后编译烧进去,发现正常,于是我把另一半注释掉,把原先的那部分恢复后编译烧进去发现也正常,但是都不屏蔽的话就不行。后来实在没办法了,我将我的程序经常要调用的一些函数(我写的)内容全部注释掉(也就是变成空函数了),再将我的主程序(加在原程序中)的所有代码注释掉然后一条一条放出来编译烧进去测试。发现放到一定程度就不能再放了,如果再放一条问题又会出现,不放就正常。但是那一条代码根本没有任何错误,只是一条简单的赋值语句。而且不是放某一特定语句会这样,而是在多加任何一条都不行。怎么会这样呢,我实在是想不通了。是不是芯片的堆栈什么的溢出了导致的。原程序比较大,编译后快超过64K了。哪位大侠能解惑一下,小弟不甚感激
------解决方案--------------------
1:看看你的复位电路是否完好
2:在线仿真看看死机的情况下,程序运行在哪里,锁定问题好调试
3:同时也可以利用单步运行来看看,也可以看看你的主要数组是不是溢出了
------解决方案--------------------
在软件上多找找原因,可能是遇到某种条件,计算异常或STACK溢出倒致的
------解决方案--------------------
问一个弱智的问题, 你的程序的大小会不会超出了改芯片的存储器的大小呢?
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
c51串口求助!
串口接收程序如下
void rec_gps(void) interrupt 4 {
uchar str;
uint i,k;
k=0;
i=0;...
-
win7运行CodeWarrior IDE出错
我的本安装了CodeWarrior IDE,一运行就会出现提示:
IDE 4.1 Build 0622 已停止工作。
或者提示:
Unha...
-
关于AT指令控制GSM短信猫的问题
C/C++ code
打开串口
BOOL CComm::OpenComm(const char* pPort,
int nBaudRa...
-
关于51中断求教
各位大虾,我现在要做一个GPS授时的小程序,遇到如下困惑,求大虾们解答:
1 线路板上带有时钟芯片,平时显示时间是...
-
atd指令拨号,如何判断电话状态
在网上找了许久,终于找到一位仁心解决方案,这个指令是可以得到手机当时的状态,但是不管是空号、欠费、...
-
知道在哪跑飞,跑飞的详细原因有谁能解释一下。
今天出现这样的问题:
将这个中断函数注释掉:
#pragma vector=USCI_B2_VECTOR
__in...
-
51程序移植到2051
大牛们,我想吧一个51的程序移植到2051中,用NXP的89V51芯片时用到的I/O口只有P1.0 P1.1 P1.2 3三个,我现在移植到AT...
-
一道课程设计题:基于单片机的波形发生器的设计
设计要求:
1.能产生正弦波、方波、三角波、锯齿波等4种周期性波形,并且可通过调节变...
-
解析单片机最小系统及相关电路
原文出自:电子发烧友论坛——单片机论坛[color=#FF0000][/color]
单片机最小系统单片机最小系统介...
-
单片机学习书籍大全推荐
在电子发烧友论坛里看到了单片机学习资料汇总,特地搜罗了过来,不知道大家看过几本,也希望让需要学习的人 都...