2812总跑飞

woheng425   2010-7-22 03:19 楼主
我现在程序很容易跑飞,跑飞后就进入到那些没用的中断中,比如interrupt void ILLEGAL_ISR(void)或interrupt void  PDPINTB_ISR(void)   // EV-B。引起跑飞的原因很奇怪,比如变量定义,当定义为unsigned int 型可以正常云装,定义为unsigned long型就跑飞,或者定义成有符号型也跑飞。另外有些时候遇到这句GpioDataRegs.GPDDAT.bit.GPIOD6=0;也跑飞,去掉这句话就可以正常工作,是什么原因呢?

回复评论 (11)

估计是堆栈开小,把堆栈搞大点
点赞  2010-7-23 01:06

upupupu

请问如何设置堆栈???
点赞  2010-8-11 13:55

改了堆栈

还是还是这样子
点赞  2010-9-1 13:44
跑飞有两种原因:

1、是硬件,时钟电压不稳定
2、是软件,可能性很多,比如堆栈溢出

先要确认一下跑飞原因
点赞  2012-3-30 09:33
楼主可以用Mixed mode看下汇编代码或单步运行的方法看看是在什么地方跑飞的,找下原因
点赞  2012-3-30 13:02
对也看下在哪跑飞的。不过偶也遇到过跑飞的,用matlab自动生成的程序,就会跑飞。后来查出来是软件不兼容的问题
工程 = 数学+物理+经济
点赞  2012-3-30 21:49
学习了
点赞  2012-3-31 09:30

回复 7楼 安_然 的帖子

哈,安然对这个跑飞耿耿于怀,可把你磨死了。

跑飞一般分为2种原因--硬件原因和软件原因。

硬件原因上的时钟电压不稳定,比如有的时候会进入limp mode

软件上的,说到底就是CPU解码程序时候碰到0000和FFFF然后进入illegal interrupt;导致的原因一般是程序存在非法地址访问;STACK存放溢出
点赞  2012-4-16 18:02
把设计图和测试代码发上来,2812很稳定的,要么是硬件要么是软件问题,先排查硬件
点赞  2012-4-20 14:04
外部地址线 数据线看看有没有问题,比如两根地址线有点搭牢.我前几天搞一块板子也老是跑飞,启动没多久就跑飞,而且是无规律的跑飞,后来拆了个CPLD(地址线焊时有点问题)就好了.
点赞  2012-4-20 19:18
还有XINTF  InitFlash配置不合适,也有可能
点赞  2012-4-20 19:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复