这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » MEGA48,winavr MEGA48与winavr,请诸位支招.

共2条 1/1 1 跳转至

MEGA48,winavr MEGA48与winavr,请诸位支招.

院士
2006-09-17 18:14:16     打赏
MEGA48,winavr MEGA48与winavr,请诸位支招.



关键词: MEGA48     winavr     诸位     支招    

院士
2006-12-22 22:43:00     打赏
2楼
MEGA48 &WinAVR(20040720)   &AVRStudio(4.09Build338)

一个很简单的C文件,只要一开中断,用Studio软仿真时总有莫名其妙的跑到外中断0,或复位。查LST文件正常。是我系统问题吗?请大侠相助。谢谢!
main.c source code:

#include <AVR/io.h>
#include <AVR/signal.h>
#include <AVR/interrupt.h>
#include <AVR/wdt.h>
int
main(void)
{
cli();
//EIMSK &=0X00;
//EIFR |=0X03;
while(1)
{
sei();
wdt_reset();
sei();
sei();
sei();
}
return 0;
}

SIGNAL(SIG_INTERRUPT0)
{


}
1: 以前用的MEGA8,MEGA16,没有着样呀..是STUDIO版本低吗? 2: 应该和AVRSTUDIO无关,在AVRSTUDIO中看一下堆栈初始化对不对。应该和AVRSTUDIO无关,在AVRSTUDIO中看一下堆栈初始化对不对。 3: 谢谢AVR! 堆栈初始化看来是对的.LST文件如下:

main.elf:     file format elf32-AVR

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000000  00800100  0000009e  00000132  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         0000009e  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .bss          00000000  00800100  0000009e  00000132  2**0
                  ALLOC
  3 .noinit       00000000  00800100  00800100  00000132  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000132  2**0
                  CONTENTS
  5 .stab         00000264  00000000  00000000  00000134  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      000004c4  00000000  00000000  00000398  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:    19 c0           rjmp    .+50         ; 0x34
   2:    42 c0           rjmp    .+132        ; 0x88
   4:    31 c0           rjmp    .+98         ; 0x68
   6:    30 c0           rjmp    .+96         ; 0x68
   8:    2f c0           rjmp    .+94         ; 0x68
   a:    2e c0           rjmp    .+92         ; 0x68
   c:    2d c0           rjmp    .+90         ; 0x68
   e:    2c c0           rjmp    .+88         ; 0x68
  10:    2b c0           rjmp    .+86         ; 0x68
  12:    2a c0           rjmp    .+84         ; 0x68
  14:    29 c0           rjmp    .+82         ; 0x68
  16:    28 c0           rjmp    .+80         ; 0x68
  18:    27 c0           rjmp    .+78         ; 0x68
  1a:    26 c0           rjmp    .+76         ; 0x68
  1c:    25 c0           rjmp    .+74         ; 0x68
  1e:    24 c0           rjmp    .+72         ; 0x68
  20:    23 c0           rjmp    .+70         ; 0x68
  22:    22 c0           rjmp    .+68         ; 0x68
  24:    21 c0           rjmp    .+66         ; 0x68
  26:    20 c0           rjmp    .+64         ; 0x68
  28:    1f c0           rjmp    .+62         ; 0x68
  2a:    1e c0           rjmp    .+60         ; 0x68
  2c:    1d c0           rjmp    .+58         ; 0x68
  2e:    1c c0           rjmp    .+56         ; 0x68
  30:    1b c0           rjmp    .+54         ; 0x68
  32:    1a c0           rjmp    .+52         ; 0x68

00000034 <__ctors_end>:
  34:    11 24           eor    r1, r1
  36:    1f be           out    0x3f, r1    ; 63
  38:    cf ef           ldi    r28, 0xFF    ; 255
  3a:    d2 e0           ldi    r29, 0x02    ; 2
  3c:    de bf           out    0x3e, r29    ; 62
  3e:    cd bf           out    0x3d, r28    ; 61

00000040 <__do_copy_data>:
  40:    11 e0           ldi    r17, 0x01    ; 1
  42:    a0 e0           ldi    r26, 0x00    ; 0
  44:    b1 e0           ldi    r27, 0x01    ; 1
  46:    ee e9           ldi    r30, 0x9E    ; 158
  48:    f0 e0           ldi    r31, 0x00    ; 0
  4a:    02 c0           rjmp    .+4          ; 0x50

0000004c <.do_copy_data_loop>:
  4c:    05 90           lpm    r0, Z+
  4e:    0d 92           st    X+, r0

00000050 <.do_copy_data_start>:
  50:    a0 30           cpi    r26, 0x00    ; 0
  52:    b1 07           cpc    r27, r17
  54:    d9 f7           brne    .-10         ; 0x4c

00000056 <__do_clear_bss>:
  56:    11 e0           ldi    r17, 0x01    ; 1
  58:    a0 e0           ldi    r26, 0x00    ; 0
  5a:    b1 e0           ldi    r27, 0x01    ; 1
  5c:    01 c0           rjmp    .+2          ; 0x60

0000005e <.do_clear_bss_loop>:
  5e:    1d 92           st    X+, r1

00000060 <.do_clear_bss_start>:
  60:    a0 30           cpi    r26, 0x00    ; 0
  62:    b1 07           cpc    r27, r17
  64:    e1 f7           brne    .-8          ; 0x5e
  66:    01 c0           rjmp    .+2          ; 0x6a

00000068 <__bad_interrupt>:
  68:    cb cf           rjmp    .-106        ; 0x0

0000006a <main>:
#include <AVR/signal.h>
#include <AVR/interrupt.h>
int
main(void)
{
  6a:    cf ef           ldi    r28, 0xFF    ; 255
  6c:    d2 e0           ldi    r29, 0x02    ; 2
  6e:    de bf           out    0x3e, r29    ; 62
  70:    cd bf           out    0x3d, r28    ; 61
EIMSK &=0X00;
  72:    8d b3           in    r24, 0x1d    ; 29
  74:    1d ba           out    0x1d, r1    ; 29
EIFR |=0X03;
  76:    8c b3           in    r24, 0x1c    ; 28
  78:    83 60           ori    r24, 0x03    ; 3
  7a:    8c bb           out    0x1c, r24    ; 28

sei();
  7c:    78 94           sei
sei();
  7e:    78 94           sei

sei();
  80:    78 94           sei
return 0;
}
  82:    80 e0           ldi    r24, 0x00    ; 0
  84:    90 e0           ldi    r25, 0x00    ; 0
  86:    0a c0           rjmp    .+20         ; 0x9c

00000088 <__vector_1>:

SIGNAL(SIG_INTERRUPT0)
{
  88:    1f 92           push    r1
  8a:    0f 92           push    r0
  8c:    0f b6           in    r0, 0x3f    ; 63
  8e:    0f 92           push    r0
  90:    11 24           eor    r1, r1
  92:    0f 90           pop    r0
  94:    0f be           out    0x3f, r0    ; 63
  96:    0f 90           pop    r0
  98:    1f 90           pop    r1
  9a:    18 95           reti

0000009c <_exit>:
  9c:    ff cf           rjmp    .-2          ; 0x9c



我怀疑STUDIO问题.换机试还是这样呵....

4: 我基本不用GCC的,试一下最新的测试版AVRSTUDIO4.10 beta2    我基本不用GCC的,试一下最新的测试版AVRSTUDIO4.10 beta2,但ICC和IAR生成的文件在AVRSTUDIO4.09中调试是没有问题的,我看了你生成的LST,怎么有两个地方进行堆栈初始化。
http://www.atmel.no/beta_ware/as4/b353/AVRStudio4Setup.exe

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]