导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→求教:为什么老是复位,难道是编译器的问题?[rj17]

 *第13412篇: 求教:为什么老是复位,难道是编译器的问题?

  
楼 主:rj17 2003年6月13日09:21
 求教:为什么老是复位,难道是编译器的问题?
由于wave不带196的C编译器,于是从网上下了个tasking196的编译软件。但是在我把c语言程序编完后发现系统老是复位(大概隔几分钟就复位一次),在我的主程序中由于计算量大,循环时间较长,因此将按键处理和显示刷新都通过中断来实现。但是如果我把主程序中的计算部分程序(含有较多浮点运算,由编译器来处理)去掉,代以等待空指令(所有中断程序照常执行),系统基本上是稳定的。
而且跟踪复位前的状态,程序好像都是执行在编译器编译出的程序部分是出问题。我从反汇编出的汇编程序中看不出到底是些什么东东。
因此请教各位大虾,这应该是我的程序不合理还是编译器编译得到的浮点运算程序不太合理导致系统复位??
多谢
  
2楼:snow 2003年6月13日09:56
 如果是在仿真的情况下复位,那么应该仔细看
如果是在仿真的情况下复位,那么应该仔细看看你的程序,看看是不是误用了不期望的复位语句,有的时候问题就出现在非常不起眼的地方,我就是深受其害呀,凭空浪费了很多时间!
  
3楼:rj17 2003年6月13日13:26
 仿真和脱机运行的时候都会出现上述现象。
  
4楼:snow 2003年6月13日14:03
 电路中用了看门狗了吗?
如果是仿真情况下看门狗应该不起作用
脱机情况下看门狗使用不当会引起电路复位
所以检查你的程序
问题出在小处的几率很大
  
5楼:rj17 2003年6月15日22:09
 应当不是看门狗的问题
我的程序中已经把看门狗关掉了。
而且我的主程序中主要部分是两个计算比较复杂的浮点运算程序,而LCD的刷新被放到了定时器中断中。调试时发现如果把主程序中的浮点运算程序不要(代以空指令),则系统基本上能稳定运行;如果只保留其中一个运算,则系统复位频率要小一点,但还是会隔一段时间就复位;如果显示刷新的中断程序改得简单一点(之前要循环刷新显示多页数据),基本上也能稳定运行。于是我将显示的刷新放在主程序中,上次测试运行了将近一个小时仍未出现复位,如果周一继续调试没有问题的话,问题似乎就已经解决了。但我始终想不通,为什么主程序运算过于复杂会使系统不稳定,请教各位大虾帮忙分析一下。
  
6楼:rj17 2003年6月18日15:58
 ^_^

>>>>>>对该主题发表你的看法

本主题贴数6,分页: [第1页]


[上一篇主题]:谁有philips RC500芯片资料,能给我发一份吗?thanks!!!

[下一篇主题]:谁用CY7C63723开发过东西,本人有一项目可委托