|
т.е. в 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 $&.objOBJS = 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).mapacqusit.obj: acqusit.c acqusit.h expon.h
$(CC) -s9 $&.c -o $&.objcrc16.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).HEXverify: $(PROJ).hex
$(AVREAL) +$(CPUNAME) -%v $(PROJ).HEXfuses:
$(AVREAL) +$(CPUNAME) -wv -%fCKSEL=2,BODEN=0,BLEV=1erase:
$(AVREAL) +$(CPUNAME) -! -ereset:
$(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
#### archivearcfresh:
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