############################################################ # ’´Ä’¶­’Àß’Äê ############################################################ # ’¥Þ’¥¤’¥³’¥ó’³«’ȯ’´Ä’¶­’¤Î’¥¤’¥ó’¥¹’¥È’¡¼’¥ë’Àè’¤ò’´Ä’¶­’ÊÑ’¿ô’¤Ç’»Ø’Äê’¤¹’¤ë NECEL_ROOT = if $(defined-env NECEL_ROOT) value $(absname $"$(getenv NECEL_ROOT)") else value "C:\Program Files (x86)\NEC Electronics Tools" # cygwin’¤Î’¥¤’¥ó’¥¹’¥È’¡¼’¥ë’Àè’¤ò’´Ä’¶­’ÊÑ’¿ô’¤Ç’»Ø’Äê’¤¹’¤ë CYGWIN_ROOT = if $(defined-env CYGWIN_ROOT) value $(absname $"$(getenv CYGWIN_ROOT)") else value "C:\cygwin" # GCC’¥Ð’¡¼’¥¸’¥ç’¥ó’¤ò’´Ä’¶­’ÊÑ’¿ô’¤Ç’»Ø’Äê’¤¹’¤ë CYGWIN_GCC = if $(defined-env CYGWIN_GCC) value $(CYGWIN_ROOT)/bin/$"$(getenv CYGWIN_GCC)" else value $(CYGWIN_ROOT)/bin/gcc-4 #’¥Ç’¥Ð’¥¤’¥¹’¥Õ’¥¡’¥¤’¥ë’¤Ï NECEL_ROOT/dev ’¤Ë’ÃÖ’¤¯’¤³’¤È #’¼«’¸Ê’¥¢’¥Ã’¥×’¥Ç’¡¼’¥È’ÍÑ’¥é’¥¤’¥Ö’¥é’¥ê’¤Ï CC_LIBS_ROOT/’°Ê’²¼’¤Ë’ÃÖ’¤¯’¤³’¤È SUBDIR_INTER_ASM = $(dir inter_asm) CC_ROOT = $(NECEL_ROOT)/CC78K0R CC_VER = W2.13 CC = $(CC_ROOT)/$(CC_VER)/bin/cc78k0r.exe RA = $(NECEL_ROOT)/RA78K0R/W1.33/bin/ra78k0r.exe LK = $(NECEL_ROOT)/RA78K0R/W1.33/bin/lk78k0r.exe OC = $(NECEL_ROOT)/RA78K0R/W1.33/bin/oc78k0r.exe LCNV = $(NECEL_ROOT)/RA78K0R/W1.33/bin/lc78k0r.exe DEVFILE_ROOT = $(NECEL_ROOT)/dev CC_LIBS_ROOT = $(CC_ROOT)/$(CC_VER)/lib78k0r CC_INCLUDES_ROOT = $(CC_ROOT)/$(CC_VER)/inc78k0r S0RM = s0rm.rel # ’¥»’¥­’¥å’¥ê’¥Æ’¥£ID GIVALUE = 1B339499E033F240BFAAh # ’¥æ’¡¼’¥¶’¥ª’¥×’¥·’¥ç’¥ó’¥Ð’¥¤’¥È GBValue = 7EFBFFh DEVICE_NAME = 9F0104 FSL_LIB = fsl.lib TARGET_NAME = bsr TARGET_LMF = $(TARGET_NAME).lmf TARGET_HEX = $(TARGET_NAME).hex # ’¤³’¤³’¤Þ’¤Ç ############################################################ ############################################################ # ’¥½’¡¼’¥¹’¤ò’ÄÉ’²Ã’¤·’¤¿’¤é’ÊÔ’½¸’¤¹’¤ë’²Õ’½ê ############################################################ SRC_FILES[] = loader pm i2c_ctr main magic WDT i2c_mcu i2c_twl led rtc vreg_ctr vreg_twl adc renge\renge accero self_flash sw task_debug task_misc task_sys pedo_alg_thre_det2 ini_VECT task_status led_cam led_pow INCLUDES[] = ./ renge # ’¤³’¤³’¤Þ’¤Ç ############################################################ .PHONY: clean BeforeBuild AddRel(files) = file_names = $(addsuffix .rel, $(files)) return $(file_names) # *.c’¤«’¤éinter_asm/*.asm’¤ò’ºî’¤ë’¤¿’¤á’¤Î’´Ø’¿ô AsmProgram(files) = foreach(filename, $(files)) asm_name = $(addprefix $(SUBDIR_INTER_ASM)/, $(addsuffix .asm, $(basename $(filename)))) c_name = $(addsuffix .c, $(filename)) .SCANNER: $(asm_name): $(c_name) $(CYGWIN_GCC) -MM -w -I$(CC_INCLUDES_ROOT) $(c_name) | sed 's/$(filename)\.o/$(SUBDIR_INTER_ASM)\/$(filename)\.asm/g' $(asm_name): $(c_name) $(CC) -c$(DEVICE_NAME) -y$(DEVFILE_ROOT) -_msgoff -irenge -i$(CC_INCLUDES_ROOT) -ms -qvjl2w -sa$(SUBDIR_INTER_ASM) -zpb -no $(c_name) return $(addsuffix .c, $(files)) # inter_asm/*.asm ’¤«’¤é *.rel’¤ò’ºî’¤ë’¤¿’¤á’¤Î’´Ø’¿ô RelProgram(files) = foreach(filename, $(files)) rel_name = $(addsuffix .rel, $(basename $(filename))) asm_name = $(addprefix $(SUBDIR_INTER_ASM)/, $(addsuffix .asm, $(basename $(filename)))) asm_win_name = $(addprefix $(SUBDIR_INTER_ASM)\\, $(addsuffix .asm, $(basename $(filename)))) c_name = $(addsuffix .c, $(filename)) .SCANNER: $(rel_name): $(asm_win_name) $(CYGWIN_GCC) -MM -w -I$(CC_INCLUDES_ROOT) $(c_name) | sed 's/\.o/\.rel/g' $(rel_name): $(asm_name) $(RA) -c$(DEVICE_NAME) -y$(DEVFILE_ROOT) -_msgoff $(asm_win_name) return $(addsuffix .rel, $(basename $(files))) $(TARGET_LMF): $(RelProgram $(SRC_FILES)) $(AsmProgram $(SRC_FILES)) $(LK) -y$(DEVFILE_ROOT) -_msgoff -o$(TARGET_LMF) $(CC_LIBS_ROOT)/$(S0RM) -gi$(GIVALUE) -pbsr_k0r.map -nkd -gb$(GBValue) -b$(CC_LIBS_ROOT)/$(FSL_LIB) -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i$(CC_LIBS_ROOT) -dbsr_mcu.dr -s -w0 $(AddRel $(basename $(SRC_FILES))) $(TARGET_HEX) : $(TARGET_LMF) $(OC) -y$(DEVFILE_ROOT) -_msgoff -o.\\$(TARGET_HEX) -nu -ki $(TARGET_LMF) BeforeBuild: # ’¥Ó’¥ë’¥É’Á°’¤Ë’ɬ’¤º’¼Â’¹Ô’¤·’¤¿’¤¤’½è’Íý # OMake’¤¬’¥¿’¥¤’¥à’¥¹’¥¿’¥ó’¥×’¤Ç’¤Ï’¤Ê’¤¯MD5’¤Ç’¥Õ’¥¡’¥¤’¥ë’¤Î’¾õ’ÂÖ’¤ò’´É’Íý’¤·’¤Æ’¤¤’¤ë’¤Î’¤Ç # ’»Ä’ǰ’¤Ê’¤¬’¤é clean’¤·’¤Æ’¤«’¤é’¥Ó’¥ë’¥É’¤·’¤Ê’¤ª’¤¹’ɬ’Í×’¤¬’¤¢’¤ë C:\Windows\system32\cmd.exe /c $(CYGWIN_ROOT)\bin\touch magic.c if $(not $(file-exists $(SUBDIR_INTER_ASM))) mkdir $(SUBDIR_INTER_ASM) hoge.bin: BeforeBuild $(TARGET_HEX) C:\Windows\system32\cmd.exe /c ruby nec_s_2_bsrbin2.rb $(TARGET_HEX) clean: rm -rf *.prn *.rel $(SUBDIR_INTER_ASM)/*.asm *.omc .omakedb .omakedb.lock .DEFAULT: hoge.bin