AVR Studio 3.20 es WINAVR problemak
Laslo Justin
justin at sojanet.co.yu
Thu Jan 29 23:23:49 CET 2004
Udv. mindenkinek itt a lev.listan,
Telepitettem az AVR Studio 3.20 -ast (mert az vilt a keznel az Atmel
Cd-n) Esetleg majd az FTP -rol letoltom az ujabbat a 3.xx -bol, ha
fenn van , meg nem neztem meg. Es mar egy ideje ott volt a gepemen
telepitve a WinAVR (azt hiszem ez az a GCC C fordito az Atmelekre ami
beagyazhato az AVR Studioba.)
Sajnos nem boldogulok vele......
Egy demo programot probalok leforditani vele. Egy uj projektot
keszitettem benne 2 file, az egyik a Source files -be van teve es a
neve 'demo.c' a masik az Other files -be van teve es a neve 'makefile'
a file-k itt lejjebb vannnak melekelve '====' sorokkal egymastol
elvalasztva. A project folderjebe atkopiroztam a ket bat fajlt amiket
ha jol ertettem oda kell masolni ('gcc.bat' es 'gcc2.bat') A target
options ablakjaba a Command line -be a 'gcc.bat' fajlt irtam be.
Mostmar elkeszitettem a c:\tempfile\ foldert is mert mintha ezt
kereste volna, hibat nem ir ki de nem is csinal semmit nem keszul el
sem a hex sot meg az object fajle sem, vagyis nekem ugy nez ki hogy
nem csinal semmit.
Tud -e valaki segiteni mit hogy csinaljak?
Ha az Alt-Ctrl-Del gombot megnyomva latom hogy redir32 es Winoldap
futo 'programok' maradnak visza amiknek mintha nem lenne veguk ....
Ezeket az AVR Studio vagy a gcc kesziti ......
P.S.: Kerem a lejjebi reszeket csak ha muszaj akkor idezzek a
valaszokban!!!!
======================================================
========== demo.c ===============================
======================================================
/*
* ----------------------------------------------------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* <joerg at FreeBSD.ORG> wrote this file. As long as you retain this notice you
* can do whatever you want with this stuff. If we meet some day, and you think
* this stuff is worth it, you can buy me a beer in return. Joerg Wunsch
* ----------------------------------------------------------------------------
*
* Simple AVR demonstration. Controls a LED that can be directly
* connected from OC1/OC1A to GND. The brightness of the LED is
* controlled with the PWM. After each period of the PWM, the PWM
* value is either incremented or decremented, that's all.
*
* $Id: demo.c,v 1.1 2002/09/30 18:16:07 troth Exp $
*/
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#if defined(__AVR_AT90S2313__)
# define OC1 PB3
# define OCR OCR1
# define DDROC DDRB
#elif defined(__AVR_AT90S2333__) || defined(__AVR_AT90S4433__)
# define OC1 PB1
# define DDROC DDRB
# define OCR OCR1
#elif defined(__AVR_AT90S4414__) || defined(__AVR_AT90S8515__) || \
defined(__AVR_AT90S4434__) || defined(__AVR_AT90S8535__) || \
defined(__AVR_ATmega163__)
# define OC1 PD5
# define DDROC DDRD
# define OCR OCR1A
#else
# error "Don't know what kind of MCU you are compiling for"
#endif
#if defined(COM11)
# define XCOM11 COM11
#elif defined(COM1A1)
# define XCOM11 COM1A1
#else
# error "need either COM1A1 or COM11"
#endif
enum { UP, DOWN };
volatile uint16_t pwm; /* Note [1] */
volatile uint8_t direction;
SIGNAL (SIG_OVERFLOW1) /* Note [2] */
{
switch (direction) /* Note [3] */
{
case UP:
if (++pwm == 1023)
direction = DOWN;
break;
case DOWN:
if (--pwm == 0)
direction = UP;
break;
}
OCR = pwm; /* Note [4] */
}
void
ioinit (void) /* Note [5] */
{
/* tmr1 is 10-bit PWM */
TCCR1A = _BV (PWM10) | _BV (PWM11) | _BV (XCOM11);
/* tmr1 running on full MCU clock */
TCCR1B = _BV (CS10);
/* set PWM value to 0 */
OCR = 0;
/* enable OC1 and PB2 as output */
DDROC = _BV (OC1);
timer_enable_int (_BV (TOIE1));
/* enable interrupts */
sei ();
}
int
main (void)
{
ioinit ();
/* loop forever, the interrupts are doing the rest */
for (;;) /* Note [6] */
;
return (0);
}
======================================================
============= makefile ======================
======================================================
PRG = demo
OBJ = demo.o
MCU_TARGET = at90s2313
OPTIMIZE = -O2
DEFS =
LIBS =
# You should not have to change anything below here.
CC = avr-gcc
# Override is only needed by avr-lib build system.
override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
override LDFLAGS = -Wl,-Map,$(PRG).map
OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
all: $(PRG).elf lst text eeprom
$(PRG).elf: $(OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
clean:
rm -rf *.o $(PRG).elf *.eps *.png *.pdf *.bak
rm -rf *.lst *.map $(EXTRA_CLEAN_FILES)
lst: $(PRG).lst
%.lst: %.elf
$(OBJDUMP) -h -S $< > $@
# Rules for building the .text rom images
text: hex bin srec
hex: $(PRG).hex
bin: $(PRG).bin
srec: $(PRG).srec
%.hex: %.elf
$(OBJCOPY) -j .text -j .data -O ihex $< $@
%.srec: %.elf
$(OBJCOPY) -j .text -j .data -O srec $< $@
%.bin: %.elf
$(OBJCOPY) -j .text -j .data -O binary $< $@
# Rules for building the .eeprom rom images
eeprom: ehex ebin esrec
ehex: $(PRG)_eeprom.hex
ebin: $(PRG)_eeprom.bin
esrec: $(PRG)_eeprom.srec
%_eeprom.hex: %.elf
$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@
%_eeprom.srec: %.elf
$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O srec $< $@
%_eeprom.bin: %.elf
$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O binary $< $@
# Every thing below here is used by avr-libc's build system and can be ignored
# by the casual user.
FIG2DEV = fig2dev
EXTRA_CLEAN_FILES = *.hex *.bin *.srec
dox: eps png pdf
eps: $(PRG).eps
png: $(PRG).png
pdf: $(PRG).pdf
%.eps: %.fig
$(FIG2DEV) -L eps $< $@
%.pdf: %.fig
$(FIG2DEV) -L pdf $< $@
%.png: %.fig
$(FIG2DEV) -L png $< $@
PRG = demo
OBJ = demo.o
MCU_TARGET = at90s2313
OPTIMIZE = -O2
DEFS =
LIBS =
# You should not have to change anything below here.
CC = avr-gcc
# Override is only needed by avr-lib build system.
override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
override LDFLAGS = -Wl,-Map,$(PRG).map
OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
all: $(PRG).elf lst text eeprom
$(PRG).elf: $(OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
clean:
rm -rf *.o $(PRG).elf *.eps *.png *.pdf *.bak
rm -rf *.lst *.map $(EXTRA_CLEAN_FILES)
lst: $(PRG).lst
%.lst: %.elf
$(OBJDUMP) -h -S $< > $@
# Rules for building the .text rom images
text: hex bin srec
hex: $(PRG).hex
bin: $(PRG).bin
srec: $(PRG).srec
%.hex: %.elf
$(OBJCOPY) -j .text -j .data -O ihex $< $@
%.srec: %.elf
$(OBJCOPY) -j .text -j .data -O srec $< $@
%.bin: %.elf
$(OBJCOPY) -j .text -j .data -O binary $< $@
# Rules for building the .eeprom rom images
eeprom: ehex ebin esrec
ehex: $(PRG)_eeprom.hex
ebin: $(PRG)_eeprom.bin
esrec: $(PRG)_eeprom.srec
%_eeprom.hex: %.elf
$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@
%_eeprom.srec: %.elf
$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O srec $< $@
%_eeprom.bin: %.elf
$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O binary $< $@
# Every thing below here is used by avr-libc's build system and can be ignored
# by the casual user.
FIG2DEV = fig2dev
EXTRA_CLEAN_FILES = *.hex *.bin *.srec
dox: eps png pdf
eps: $(PRG).eps
png: $(PRG).png
pdf: $(PRG).pdf
%.eps: %.fig
$(FIG2DEV) -L eps $< $@
%.pdf: %.fig
$(FIG2DEV) -L pdf $< $@
%.png: %.fig
$(FIG2DEV) -L png $< $@
======================================================
============= gcc2.bat ======================
======================================================
make.exe %1 >c:\tempfile 2>&1
======================================================
============= gcc.bat ======================
======================================================
echo xxxxxxxxxxxx
@start /MIN /wait cmd /c gcc2.bat %1
@type c:\tempfile
@del c:\tempfile
More information about the Elektro
mailing list