Лучше начать с прикручивания make (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ReAl 06 февраля 2004 г. 19:35
В ответ на: Народ кто-нибудь пользуется MEDом? Если да, то может кто знает как к ниму прикрутить IAR AVR? отправлено Stas 06 февраля 2004 г. 18:26

т.е. в MED на build вешается просто вызов make, на compile - make с имя_текущего_файла_без_расширения.obj, добавляется позиция program, в которой этому make подсовывается цель run.
makefile (под make из borland C 5.02) выглядит, например, так
(далеко не самый лучший вариант, более приличные makefile у меня под gcc и на гнутом make сделаны, а это было под IAR 1.40):
== makefile ==


#
PROJ=EXPON #имя проекта, будет сделан expon.hex
CPUNAME=90s4433
MODEL=t #
CPUCODE=1
MAXCODE=FFF
MAXEE=FF
MAXRAM=DF


SAVEPATH=$(SAVETO)\EXPONOM\S
SAVENAME=uart
SAVEFILES= *.mak *.c *.h *.asm *.inc *.txt *.hex *.prj *.mpj *.bat
ARCOPT=-m5 -rr -r
COMMON=..\..\..\common

#ABB_PORT=2
AVREAL=avreal32.exe -p$(ABB_PORT) -ab +$(CPUNAME) -o7000 -% -n
IARROOT=c:\IAR\EW22DEMO\A90
#IARROOT=c:\iar\ew23\a90
AINCLUDE=$(IARROOT)\INC
LINCLUDE=$(IARROOT)\LIB
ASM=$(IARROOT)\BIN\aa90 -v$(CPUCODE) -L -s+ -I$(AINCLUDE)
CC=$(IARROOT)\BIN\icca90 -f $(PROJ).cfg
LINK=$(IARROOT)\BIN\xlink

.asm.lst:
-$(ASM) $&.asm -o $&.obj
-del $&.obj

.asm.obj:
$(ASM) $&.asm -o $&.obj

# -z9 -- size optimization by default
.c.obj:
$(CC) -z9 $&.c -o $&.obj

# >_err.txt

#| grep.exe -e Error -e Warning

.c.lst:
$(CC) -z9 $&.c -q -l $&.lst
# -del $&.obj

# -s9 -- speed optimization
.c.lss:
$(CC) -s9 $&.c -q -l $&.lss -o $&.obj
-del $&.obj

OBJS = expon.obj crc16.obj ser.obj acqusit.obj util_a.obj

$(PROJ).HEX: $(PROJ).xcl $(PROJ).cfg $(OBJS)
@echo -----------------LINKING----------------------
-del $(PROJ).hex
$(LINK) -f $(PROJ).xcl -l $(PROJ).map

acqusit.obj: acqusit.c acqusit.h expon.h
$(CC) -s9 $&.c -o $&.obj

crc16.obj: $(COMMON)\crc16.c $(COMMON)\crc16.h $(COMMON)\AVR\compatib.h
$(CC) -z9 $(COMMON)\crc16.c -o crc16.obj

#### hardware manipulation

run: $(PROJ).hex
$(AVREAL) +$(CPUNAME) -%ewv $(PROJ).HEX

verify: $(PROJ).hex
$(AVREAL) +$(CPUNAME) -%v $(PROJ).HEX

fuses:
$(AVREAL) +$(CPUNAME) -wv -%fCKSEL=2,BODEN=0,BLEV=1

erase:
$(AVREAL) +$(CPUNAME) -! -e

reset:
$(AVREAL) +$(CPUNAME) -!

lock: $(PROJ).hex
$(AVREAL) +$(CPUNAME) -%vl2 $(PROJ).HEX -!


#### compiler|linker control files

$(PROJ).cfg: makefile.mak
copy &&|
-S
-e -K -g
-v$(CPUCODE)
-m$(MODEL)
-I$(IARROOT)\INC\\
-I$(COMMON)\\
-I$(COMMON)\AVR\\
| $(PROJ).cfg
-xdel/n *.obj $(PROJ).hex


$(PROJ).xcl: makefile.mak
copy &&|
$(OBJS)
-ca90
-xe
-Fintel-standard
-o $(PROJ).hex
-Z(CODE)INTVEC=0-1B
-Z(CODE)RCODE,CDATA0,CDATA1,CCSTR,SWITCH,FLASH,CODE=1C-$(MAXCODE)
-Z(DATA)IDATA0,UDATA0,RSTACK+1A,IDATA1,UDATA1,ECSTR,CSTACK+2C=60-$(MAXRAM)
-w29
-I$(LINCLUDE)
cl$(CPUCODE)$(MODEL)
| $(PROJ).xcl


#### archive

arcfresh:
rar a -f $(ARCMODE) $(SAVEPATH)\$(SAVENAME)

arcupdate:
if not exist $(SAVEPATH)\null md $(SAVEPATH)
rar a $(ARCMODE) $(SAVEPATH)\$(SAVENAME) $(SAVEFILES)

clean:
-xdel/n !.* *.ls* *.obj $(PROJ).cfg $(PROJ).xcl *.r90

Ещё надо настроить фильтры в MED-е для автоматического хождения по ошибкам. Вот файл проекта от того же проекта
== expon.mpj ==


#
# MED project file
#
project=expon
workDir=
incDir=
createTags=1
Compile= Compile bmake %N.obj Error\[ Warning\[ ^"(.*)", ^".*",([^ ]*) 3 15 1 1 1 0 1 compile.bmp 1 0 0 0 0 0 0 0 0 0 0 0 0
Make= Make bmake Error\[ Warning\[ ^"(.*)", ^".*",([^ \t]*) 3 15 1 1 1 0 1 make.bmp 1 0 0 0 0 0 0 0 0 0 0 0 0
Debug= Debug 0 15 0 1 1 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0
Execute= Execute bmake run 3 15 0 1 1 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0
Usercmd1= Build bmake -B Error\[ Warning\[ ^"(.*)", ^".*",([^ \t]*) 3 15 1 1 1 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0
Usercmd2= Usercmd2 0 15 0 1 1 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0
Usercmd3= Usercmd3 0 15 0 1 1 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0
Usercmd4= Usercmd4 0 15 0 1 1 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0
Usercmd5= Usercmd5 0 15 0 1 1 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0
Usercmd6= Usercmd6 0 15 0 1 1 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0
Usercmd7= Usercmd7 0 15 0 1 1 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0
Usercmd8= Usercmd8 0 15 0 1 1 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0
Usercmd9= Usercmd9 0 15 0 1 1 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0
fileGroup1=CODE files
options1=0 0 0 1 0 1 0
filter1=*.c;*.asm
fileGroup2=Header files
options2=0 0 0 1 0 1 0
filter2=*.h;*.inc
fileGroup3=DOC & CTRL
options3=0 0 0 1 0 1 0
filter3=*.txt;*.mak
fileGroup4=LST
options4=0 0 0 1 0 1 0
filter4=*.lst;*.lss;*.map


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru