mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-06-18 16:45:33 -04:00
160 lines
4.9 KiB
Plaintext
160 lines
4.9 KiB
Plaintext
############################################################
|
|
# 環境設定
|
|
############################################################
|
|
|
|
# マイコン開発環境のインストール先を環境変数で指定する
|
|
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
|
|
hal
|
|
batt_params
|
|
voltable
|
|
pedo_lpf_coeff
|
|
|
|
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
|