智能车制作

标题: 程序跑飞 [打印本页]

作者: justdown    时间: 2010-6-9 16:21
标题: 程序跑飞
大家好:
      我刚学习用CodeWarrior 5.0, 用它写了一个简单的代码,用BDM调试时正常,但目标版独立运行时程序跑飞,
代码很简单:
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
void main(void) {
  
     DDRB = 0xFF;      //定义PORTB端口为输出口
    PORTB =0xFF;
    PORTB =0;

    for(;;) {    _FEED_COP();   }
}


请大家帮忙分析一下.
谢谢!
作者: chenrunshe_007    时间: 2010-6-9 18:09
回复 1# justdown
你怎么知道跑不跑飞?以什么为标准?
作者: zouyf12    时间: 2010-6-9 20:57
我也想知道, 怎么判断程序跑没跑飞?
作者: justdown    时间: 2010-6-10 08:52
程序正常运行时 PORTB4 和PORTB5 上的发光二极管应该是亮的。

当目标版加电后,发光二极管不亮,这时再接上BDM,打开hiwave.exe,发现PC指向0X4A4D,
这个地址不是程序代码
作者: justdown    时间: 2010-6-10 11:53
程序简化后如下:
Start12.c
  #pragma NO_STRING_CONSTR
  #pragma DATA_SEG __NEAR_SEG STARTUP_DATA
  #pragma DATA_SEG DEFAULT
void main ( void ) ;
  #pragma MESSAGE DISABLE C12053
  #pragma NO_FRAME
  #pragma NO_ENTRY
  
  void _Startup ( void )
      {   __asm LDS #1280 ; /* initialize the stack pointer */ //INIT_SP_FROM_STARTUP_DESC();
          main ( ) ;
       }

void main ( void )
    {
      ( * ( volatile unsigned char * ) 0x3 ) = 0xFF ;   //定义PORTB端口为输出口
      ( * ( volatile unsigned char * ) 0x1 ) = 0xFF ;   //拉高,灯灭
      ( * ( volatile unsigned char * ) 0x1 ) = 0 ;      //拉低,灯亮
      for ( ; ; ) { }
  }

反汇编
  C000 CF0500       LDS   #1280
  C003 06C006       JMP   0xC006
  C006 C6FF           LDAB  #255
  C008 5B03          STAB  0x03         ;定义PORTB端口为输出口
  C00A 5B01          STAB  0x01         ;拉高,灯灭
  C00C 790001      CLR   0x0001     ;拉低,灯亮
  C00F 20FE           BRA   *+0          ;abs = 0xC00F
作者: 锦芫    时间: 2010-6-10 21:31
学习
作者: zhouyong99    时间: 2010-6-11 18:55
厉害啊,我就是在BDM和目标板调试上还有很多不明白的问题
作者: zhouyong99    时间: 2010-6-11 18:56
你正好说了,我也想知道
作者: justdown    时间: 2010-6-13 15:46
现在知道原因了,目标版独立运行时,我的BDM接头和电脑断开了,但是另一头还连在目标版上;
我的我的BDM接头是在淘宝网上买的,当它还和目标版连接着的时候,目标版一通电,它就将
BKGD脚拉低了,目标版就不在普通模式了,我也不知道进入到了什么模式!
作者: 王怀玉    时间: 2010-6-15 09:00
呵呵呵 二楼的牛 a
作者: zhouyong    时间: 2010-6-25 19:35
nimen  zhen  qiang   a
作者: zhouyong    时间: 2010-6-25 19:37
谁能告诉我DG系列和S12系列在写程序是的不同点 谢谢
作者: leihen0525    时间: 2010-7-24 23:16
我这也遇到 程序会从死循环里跑出来 很是郁闷
作者: lidapeng2011    时间: 2010-11-5 14:09
单步调试时程序不是从上往下执行,会乱跳。。。。。。
作者: spwbaha    时间: 2011-4-5 16:34
学习中
作者: 海彬    时间: 2012-4-23 17:10
学习




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2