智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 7004|回复: 15
打印 上一主题 下一主题

程序跑飞

  [复制链接]

3

主题

11

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
威望
769
贡献
322
兑换币
0
注册时间
2010-5-27
在线时间
6 小时
跳转到指定楼层
1#
发表于 2010-6-9 16:21:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好:
      我刚学习用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();   }
}


请大家帮忙分析一下.
谢谢!

21

主题

1019

帖子

0

精华

常驻嘉宾

我爱雯婕

Rank: 8Rank: 8

积分
4657
威望
2223
贡献
1682
兑换币
4
注册时间
2009-3-4
在线时间
376 小时
2#
发表于 2010-6-9 18:09:03 | 只看该作者
回复 1# justdown
你怎么知道跑不跑飞?以什么为标准?
回复 支持 反对

使用道具 举报

39

主题

593

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1694
威望
989
贡献
401
兑换币
86
注册时间
2008-12-13
在线时间
152 小时
3#
发表于 2010-6-9 20:57:19 | 只看该作者
我也想知道, 怎么判断程序跑没跑飞?
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
威望
769
贡献
322
兑换币
0
注册时间
2010-5-27
在线时间
6 小时
4#
 楼主| 发表于 2010-6-10 08:52:41 | 只看该作者
程序正常运行时 PORTB4 和PORTB5 上的发光二极管应该是亮的。

当目标版加电后,发光二极管不亮,这时再接上BDM,打开hiwave.exe,发现PC指向0X4A4D,
这个地址不是程序代码
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
威望
769
贡献
322
兑换币
0
注册时间
2010-5-27
在线时间
6 小时
5#
 楼主| 发表于 2010-6-10 11:53:31 | 只看该作者
程序简化后如下:
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
回复 支持 反对

使用道具 举报

4

主题

207

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
QQ
威望
1255
贡献
688
兑换币
0
注册时间
2009-11-12
在线时间
25 小时
6#
发表于 2010-6-10 21:31:43 | 只看该作者
学习
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
威望
175
贡献
31
兑换币
0
注册时间
2010-6-11
在线时间
0 小时
7#
发表于 2010-6-11 18:55:37 | 只看该作者
厉害啊,我就是在BDM和目标板调试上还有很多不明白的问题
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
威望
175
贡献
31
兑换币
0
注册时间
2010-6-11
在线时间
0 小时
8#
发表于 2010-6-11 18:56:12 | 只看该作者
你正好说了,我也想知道
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
威望
769
贡献
322
兑换币
0
注册时间
2010-5-27
在线时间
6 小时
9#
 楼主| 发表于 2010-6-13 15:46:21 | 只看该作者
现在知道原因了,目标版独立运行时,我的BDM接头和电脑断开了,但是另一头还连在目标版上;
我的我的BDM接头是在淘宝网上买的,当它还和目标版连接着的时候,目标版一通电,它就将
BKGD脚拉低了,目标版就不在普通模式了,我也不知道进入到了什么模式!
回复 支持 反对

使用道具 举报

30

主题

477

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4940

论坛元老奖章

威望
705
贡献
4087
兑换币
0
注册时间
2009-6-14
在线时间
74 小时
10#
发表于 2010-6-15 09:00:30 | 只看该作者
呵呵呵 二楼的牛 a
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-28 06:29 , Processed in 0.050304 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表