From cff5066614c2a748b62a0821b2afda36adcfda9d Mon Sep 17 00:00:00 2001 From: n2232 Date: Tue, 8 Apr 2014 06:41:17 +0000 Subject: [PATCH] git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@617 013db118-44a6-b54f-8bf7-843cb86687b1 --- snake_branches/3.82_trial_seisan/OMakefile | 159 ++ snake_branches/3.82_trial_seisan/OMakeroot | 4 + .../VCProj/Debug/BuildLog.htm | Bin 0 -> 3992 bytes .../VCProj/Debug/bsr_trunk.lastbuildstate | 2 + .../VCProj/Debug/bsr_trunk.log | 110 ++ .../VCProj/Debug/bsr_trunk.unsuccessfulbuild | 0 .../_UpgradeReport_Files/UpgradeReport.css | 207 +++ .../_UpgradeReport_Files/UpgradeReport.xslt | 232 +++ .../UpgradeReport_Minus.gif | Bin 0 -> 69 bytes .../UpgradeReport_Plus.gif | Bin 0 -> 71 bytes .../3.82_trial_seisan/VCProj/bsr_trunk.ncb | Bin 0 -> 912384 bytes .../VCProj/bsr_trunk.opensdf | Bin 0 -> 30 bytes .../3.82_trial_seisan/VCProj/bsr_trunk.sdf | Bin 0 -> 1265664 bytes .../3.82_trial_seisan/VCProj/bsr_trunk.sln | 20 + .../VCProj/bsr_trunk.sln.old | 20 + .../3.82_trial_seisan/VCProj/bsr_trunk.suo | Bin 0 -> 85504 bytes .../VCProj/bsr_trunk.suo.old | Bin 0 -> 45056 bytes .../3.82_trial_seisan/VCProj/bsr_trunk.vcproj | 594 +++++++ .../VCProj/bsr_trunk.vcproj.NCL.N2232.user | 65 + .../VCProj/bsr_trunk.vcxproj | 162 ++ .../VCProj/bsr_trunk.vcxproj.filters | 258 +++ .../VCProj/bsr_trunk.vcxproj.user | 3 + snake_branches/3.82_trial_seisan/WDT.c | 12 + snake_branches/3.82_trial_seisan/WDT.h | 20 + snake_branches/3.82_trial_seisan/accero.c | 274 +++ snake_branches/3.82_trial_seisan/accero.h | 14 + snake_branches/3.82_trial_seisan/adc.c | 475 +++++ snake_branches/3.82_trial_seisan/adc.h | 48 + .../3.82_trial_seisan/batt_params.c | 130 ++ .../3.82_trial_seisan/batt_params.h | 62 + snake_branches/3.82_trial_seisan/bsr.hex | 1017 +++++++++++ snake_branches/3.82_trial_seisan/bsr.lmf | Bin 0 -> 183208 bytes snake_branches/3.82_trial_seisan/bsr_k0r.map | 897 ++++++++++ snake_branches/3.82_trial_seisan/bsr_mcu.dr | 46 + snake_branches/3.82_trial_seisan/bsr_system.h | 73 + snake_branches/3.82_trial_seisan/config.h | 113 ++ snake_branches/3.82_trial_seisan/fsl.h | 362 ++++ snake_branches/3.82_trial_seisan/fsl_user.h | 113 ++ snake_branches/3.82_trial_seisan/get_ei.asm | 26 + snake_branches/3.82_trial_seisan/hal.c | 182 ++ snake_branches/3.82_trial_seisan/hal.h | 16 + snake_branches/3.82_trial_seisan/hoge.bin | Bin 0 -> 16387 bytes snake_branches/3.82_trial_seisan/i2c_ctr.c | 312 ++++ snake_branches/3.82_trial_seisan/i2c_ctr.h | 210 +++ .../3.82_trial_seisan/i2c_mcu-sub.c | 124 ++ snake_branches/3.82_trial_seisan/i2c_mcu.c | 660 +++++++ snake_branches/3.82_trial_seisan/i2c_mcu.h | 40 + .../3.82_trial_seisan/i2c_mcu_sub.h | 9 + snake_branches/3.82_trial_seisan/i2c_twl.c | 246 +++ snake_branches/3.82_trial_seisan/i2c_twl.h | 7 + .../3.82_trial_seisan/i2c_twl_defs.h | 196 +++ snake_branches/3.82_trial_seisan/incs.h | 44 + .../3.82_trial_seisan/incs_loader.h | 49 + snake_branches/3.82_trial_seisan/ini_VECT.c | 347 ++++ snake_branches/3.82_trial_seisan/jhl_defs.h | 25 + snake_branches/3.82_trial_seisan/kanaria.asm | 12 + snake_branches/3.82_trial_seisan/kanaria_c.c | 18 + snake_branches/3.82_trial_seisan/led.c | 399 +++++ snake_branches/3.82_trial_seisan/led.h | 142 ++ snake_branches/3.82_trial_seisan/led_cam.c | 156 ++ snake_branches/3.82_trial_seisan/led_pow.c | 296 ++++ snake_branches/3.82_trial_seisan/loader.c | 420 +++++ snake_branches/3.82_trial_seisan/loader.h | 6 + snake_branches/3.82_trial_seisan/magic.c | 33 + snake_branches/3.82_trial_seisan/magic.h | 24 + snake_branches/3.82_trial_seisan/main.c | 100 ++ .../3.82_trial_seisan/nec_s_2_bsrbin2.rb | 82 + .../3.82_trial_seisan/pedo_alg_thre_det2.c | 567 ++++++ .../3.82_trial_seisan/pedo_lpf_coeff.c | 87 + snake_branches/3.82_trial_seisan/pedometer.h | 36 + snake_branches/3.82_trial_seisan/pm.c | 1539 +++++++++++++++++ snake_branches/3.82_trial_seisan/pm.h | 222 +++ snake_branches/3.82_trial_seisan/pool.h | 24 + snake_branches/3.82_trial_seisan/reboot.c | 23 + snake_branches/3.82_trial_seisan/reboot.h | 6 + .../3.82_trial_seisan/renge/renge.c | 313 ++++ .../3.82_trial_seisan/renge/renge.h | 26 + .../3.82_trial_seisan/renge/renge_defs.h | 55 + .../renge/renge_task_config.rb | 59 + .../renge/renge_task_immediate.h | 25 + .../renge/renge_task_intval.h | 37 + .../3.82_trial_seisan/renge/renge_tasks.txt | 11 + snake_branches/3.82_trial_seisan/rtc.c | 182 ++ snake_branches/3.82_trial_seisan/rtc.h | 24 + snake_branches/3.82_trial_seisan/self_flash.c | 635 +++++++ snake_branches/3.82_trial_seisan/self_flash.h | 9 + snake_branches/3.82_trial_seisan/sw.c | 215 +++ snake_branches/3.82_trial_seisan/sw.h | 20 + snake_branches/3.82_trial_seisan/task_debug.c | 122 ++ snake_branches/3.82_trial_seisan/task_misc.c | 429 +++++ .../3.82_trial_seisan/task_status.c | 89 + snake_branches/3.82_trial_seisan/task_sys.c | 685 ++++++++ .../3.82_trial_seisan/user_define.h | 214 +++ snake_branches/3.82_trial_seisan/util_funcs.c | 65 + snake_branches/3.82_trial_seisan/util_funcs.h | 16 + snake_branches/3.82_trial_seisan/voltable.c | 64 + snake_branches/3.82_trial_seisan/vreg_ctr.c | 638 +++++++ snake_branches/3.82_trial_seisan/vreg_ctr.h | 327 ++++ snake_branches/3.82_trial_seisan/vreg_twl.c | 169 ++ snake_branches/3.82_trial_seisan/vreg_twl.h | 127 ++ .../3.82_trial_seisan/yav_mcu_bsr.plg | 258 +++ .../3.82_trial_seisan/yav_mcu_bsr.pri | 1031 +++++++++++ .../3.82_trial_seisan/yav_mcu_bsr.prj | 1408 +++++++++++++++ .../3.82_trial_seisan/yav_mcu_bsr.prk | 16 + .../3.82_trial_seisan/yav_mcu_bsr.prw | 8 + .../3.82_trial_seisan/yav_mcu_bsr.sdb | 325 ++++ .../3.82_trial_seisan/ベースからの変更.xls | Bin 0 -> 26624 bytes snake_branches/3.82_trial_seisan/覚え書き.txt | 9 + 108 files changed, 19788 insertions(+) create mode 100644 snake_branches/3.82_trial_seisan/OMakefile create mode 100644 snake_branches/3.82_trial_seisan/OMakeroot create mode 100644 snake_branches/3.82_trial_seisan/VCProj/Debug/BuildLog.htm create mode 100644 snake_branches/3.82_trial_seisan/VCProj/Debug/bsr_trunk.lastbuildstate create mode 100644 snake_branches/3.82_trial_seisan/VCProj/Debug/bsr_trunk.log create mode 100644 snake_branches/3.82_trial_seisan/VCProj/Debug/bsr_trunk.unsuccessfulbuild create mode 100644 snake_branches/3.82_trial_seisan/VCProj/_UpgradeReport_Files/UpgradeReport.css create mode 100644 snake_branches/3.82_trial_seisan/VCProj/_UpgradeReport_Files/UpgradeReport.xslt create mode 100644 snake_branches/3.82_trial_seisan/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif create mode 100644 snake_branches/3.82_trial_seisan/VCProj/_UpgradeReport_Files/UpgradeReport_Plus.gif create mode 100644 snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.ncb create mode 100644 snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.opensdf create mode 100644 snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.sdf create mode 100644 snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.sln create mode 100644 snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.sln.old create mode 100644 snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.suo create mode 100644 snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.suo.old create mode 100644 snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcproj create mode 100644 snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcproj.NCL.N2232.user create mode 100644 snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcxproj create mode 100644 snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcxproj.filters create mode 100644 snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcxproj.user create mode 100644 snake_branches/3.82_trial_seisan/WDT.c create mode 100644 snake_branches/3.82_trial_seisan/WDT.h create mode 100644 snake_branches/3.82_trial_seisan/accero.c create mode 100644 snake_branches/3.82_trial_seisan/accero.h create mode 100644 snake_branches/3.82_trial_seisan/adc.c create mode 100644 snake_branches/3.82_trial_seisan/adc.h create mode 100644 snake_branches/3.82_trial_seisan/batt_params.c create mode 100644 snake_branches/3.82_trial_seisan/batt_params.h create mode 100644 snake_branches/3.82_trial_seisan/bsr.hex create mode 100644 snake_branches/3.82_trial_seisan/bsr.lmf create mode 100644 snake_branches/3.82_trial_seisan/bsr_k0r.map create mode 100644 snake_branches/3.82_trial_seisan/bsr_mcu.dr create mode 100644 snake_branches/3.82_trial_seisan/bsr_system.h create mode 100644 snake_branches/3.82_trial_seisan/config.h create mode 100644 snake_branches/3.82_trial_seisan/fsl.h create mode 100644 snake_branches/3.82_trial_seisan/fsl_user.h create mode 100644 snake_branches/3.82_trial_seisan/get_ei.asm create mode 100644 snake_branches/3.82_trial_seisan/hal.c create mode 100644 snake_branches/3.82_trial_seisan/hal.h create mode 100644 snake_branches/3.82_trial_seisan/hoge.bin create mode 100644 snake_branches/3.82_trial_seisan/i2c_ctr.c create mode 100644 snake_branches/3.82_trial_seisan/i2c_ctr.h create mode 100644 snake_branches/3.82_trial_seisan/i2c_mcu-sub.c create mode 100644 snake_branches/3.82_trial_seisan/i2c_mcu.c create mode 100644 snake_branches/3.82_trial_seisan/i2c_mcu.h create mode 100644 snake_branches/3.82_trial_seisan/i2c_mcu_sub.h create mode 100644 snake_branches/3.82_trial_seisan/i2c_twl.c create mode 100644 snake_branches/3.82_trial_seisan/i2c_twl.h create mode 100644 snake_branches/3.82_trial_seisan/i2c_twl_defs.h create mode 100644 snake_branches/3.82_trial_seisan/incs.h create mode 100644 snake_branches/3.82_trial_seisan/incs_loader.h create mode 100644 snake_branches/3.82_trial_seisan/ini_VECT.c create mode 100644 snake_branches/3.82_trial_seisan/jhl_defs.h create mode 100644 snake_branches/3.82_trial_seisan/kanaria.asm create mode 100644 snake_branches/3.82_trial_seisan/kanaria_c.c create mode 100644 snake_branches/3.82_trial_seisan/led.c create mode 100644 snake_branches/3.82_trial_seisan/led.h create mode 100644 snake_branches/3.82_trial_seisan/led_cam.c create mode 100644 snake_branches/3.82_trial_seisan/led_pow.c create mode 100644 snake_branches/3.82_trial_seisan/loader.c create mode 100644 snake_branches/3.82_trial_seisan/loader.h create mode 100644 snake_branches/3.82_trial_seisan/magic.c create mode 100644 snake_branches/3.82_trial_seisan/magic.h create mode 100644 snake_branches/3.82_trial_seisan/main.c create mode 100755 snake_branches/3.82_trial_seisan/nec_s_2_bsrbin2.rb create mode 100644 snake_branches/3.82_trial_seisan/pedo_alg_thre_det2.c create mode 100644 snake_branches/3.82_trial_seisan/pedo_lpf_coeff.c create mode 100644 snake_branches/3.82_trial_seisan/pedometer.h create mode 100644 snake_branches/3.82_trial_seisan/pm.c create mode 100644 snake_branches/3.82_trial_seisan/pm.h create mode 100644 snake_branches/3.82_trial_seisan/pool.h create mode 100644 snake_branches/3.82_trial_seisan/reboot.c create mode 100644 snake_branches/3.82_trial_seisan/reboot.h create mode 100644 snake_branches/3.82_trial_seisan/renge/renge.c create mode 100644 snake_branches/3.82_trial_seisan/renge/renge.h create mode 100644 snake_branches/3.82_trial_seisan/renge/renge_defs.h create mode 100644 snake_branches/3.82_trial_seisan/renge/renge_task_config.rb create mode 100644 snake_branches/3.82_trial_seisan/renge/renge_task_immediate.h create mode 100644 snake_branches/3.82_trial_seisan/renge/renge_task_intval.h create mode 100644 snake_branches/3.82_trial_seisan/renge/renge_tasks.txt create mode 100644 snake_branches/3.82_trial_seisan/rtc.c create mode 100644 snake_branches/3.82_trial_seisan/rtc.h create mode 100644 snake_branches/3.82_trial_seisan/self_flash.c create mode 100644 snake_branches/3.82_trial_seisan/self_flash.h create mode 100644 snake_branches/3.82_trial_seisan/sw.c create mode 100644 snake_branches/3.82_trial_seisan/sw.h create mode 100644 snake_branches/3.82_trial_seisan/task_debug.c create mode 100644 snake_branches/3.82_trial_seisan/task_misc.c create mode 100644 snake_branches/3.82_trial_seisan/task_status.c create mode 100644 snake_branches/3.82_trial_seisan/task_sys.c create mode 100644 snake_branches/3.82_trial_seisan/user_define.h create mode 100644 snake_branches/3.82_trial_seisan/util_funcs.c create mode 100644 snake_branches/3.82_trial_seisan/util_funcs.h create mode 100644 snake_branches/3.82_trial_seisan/voltable.c create mode 100644 snake_branches/3.82_trial_seisan/vreg_ctr.c create mode 100644 snake_branches/3.82_trial_seisan/vreg_ctr.h create mode 100644 snake_branches/3.82_trial_seisan/vreg_twl.c create mode 100644 snake_branches/3.82_trial_seisan/vreg_twl.h create mode 100644 snake_branches/3.82_trial_seisan/yav_mcu_bsr.plg create mode 100644 snake_branches/3.82_trial_seisan/yav_mcu_bsr.pri create mode 100644 snake_branches/3.82_trial_seisan/yav_mcu_bsr.prj create mode 100644 snake_branches/3.82_trial_seisan/yav_mcu_bsr.prk create mode 100644 snake_branches/3.82_trial_seisan/yav_mcu_bsr.prw create mode 100644 snake_branches/3.82_trial_seisan/yav_mcu_bsr.sdb create mode 100644 snake_branches/3.82_trial_seisan/ベースからの変更.xls create mode 100644 snake_branches/3.82_trial_seisan/覚え書き.txt diff --git a/snake_branches/3.82_trial_seisan/OMakefile b/snake_branches/3.82_trial_seisan/OMakefile new file mode 100644 index 0000000..42baad6 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/OMakefile @@ -0,0 +1,159 @@ +############################################################ +# 環境設定 +############################################################ + +# マイコン開発環境のインストール先を環境変数で指定する +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 diff --git a/snake_branches/3.82_trial_seisan/OMakeroot b/snake_branches/3.82_trial_seisan/OMakeroot new file mode 100644 index 0000000..16f4b11 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/OMakeroot @@ -0,0 +1,4 @@ +# +# Include the OMakefile in this directory. +# +.SUBDIRS: . diff --git a/snake_branches/3.82_trial_seisan/VCProj/Debug/BuildLog.htm b/snake_branches/3.82_trial_seisan/VCProj/Debug/BuildLog.htm new file mode 100644 index 0000000000000000000000000000000000000000..826ce7ce8cbd63fbd1c0dfd05436b1b710c41607 GIT binary patch literal 3992 zcmeH~&u>&!6vvM)o0#w?ywm`Sna*ho0xdNH9U{=uANGf2#xygX9~~K(Ix|H}(4C1| z6O$TOni!)&cbKrzy$cCTC9X7aNeC-;#;Bij-n*R{+dzvUVbQ$2_wJ8#&#!yV_n!OD z-^XN0T5?fp@{&9wJ!1Wm~u>=ZAg>Z7F<{OmXXviFR~`+W^1~&E5N^qyg;!G zkJ3i31YI=i#4bG&B!769Aia;f8;IminYp# zRS~T`>r1RO?W=riP&8>>@zED#Fwy2`y{k7hl6(4{#-2`Z@G&`QBn53_xuMss`vLfy z#2QZ%Kb!n2p0A*TcFfsKk*7V^w#KX~Lfh#RTf5mC85w1_NAZbyV;^z~E_FE3*gUd* zZl~ZAo}F+z;8MExcF8>(yt?-3t@A@z@T=a_@AVtKu0N^uP1}Yn_%5!X{RMeSZ&mjc zY;F`U7KpTpT$OqE)1VBvT`}*lOF{1T_vk_KWxlkxJHBEcnlE<}TLVdK-O%6lzDL&` z{hC(LJn%BUyYXc)zjd^B$CsQtQNFET;>o+@tKr*_s7q6;1Wr?_NII0=`UFJ1p>gTO6+HzTQ z*f!0~veUJ&Fsz9=byH^0r(XU0ki@$!M!3BC5F-<28@|Rr+(D zp;pIOZ5PQ=FwL;84}?=W%sCm4Sf2EN1a&ZE6)9EF#VX1O4NkfSn{|tvzLB7g;bbhO zk5v)aYL!jY!K>-L5+}K#h9OxIJxuO7>^UxH!L1k%tQxZ_%GP%x%&b>@htS$kqm2>! zAA+a*p&rw<4~lwLKLmNQ`U&`Ll3zuR*&OTf_z7ePbv7laC#f?|fb{f10+t z)ynp2>+WhLu7K@UQTJ-4Og7nxKZHlqWVh8Whvf)W!~%H}=SMDy`&3d#q`Y2fGHW=I zBeolyt5z-N{G1Q*o$IKXtqxjoSw$Hm7b@gJe3!JU=Ysw=@mh9PKT6K)IBPan<5t&1 z63+Pns`K*NnVATT2~n}V7&heSyv?*LaJw-ER2l&Rw!Y_Vee3&wRr$kWI*r%E?bT@8 HH}QV~c8B5A literal 0 HcmV?d00001 diff --git a/snake_branches/3.82_trial_seisan/VCProj/Debug/bsr_trunk.lastbuildstate b/snake_branches/3.82_trial_seisan/VCProj/Debug/bsr_trunk.lastbuildstate new file mode 100644 index 0000000..ed27c09 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/VCProj/Debug/bsr_trunk.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Debug|Win32|C:\78k_data\yav-mcu-basara\trunk\VCProj\| diff --git a/snake_branches/3.82_trial_seisan/VCProj/Debug/bsr_trunk.log b/snake_branches/3.82_trial_seisan/VCProj/Debug/bsr_trunk.log new file mode 100644 index 0000000..d15967a --- /dev/null +++ b/snake_branches/3.82_trial_seisan/VCProj/Debug/bsr_trunk.log @@ -0,0 +1,110 @@ +2014/04/04 15:26:08 にビルドを開始しました。 + 1>ノード 2 上のプロジェクト "C:\78k_data\yav-mcu-basara\snake_trunk\VCProj\bsr_trunk.vcxproj" (build ターゲット)。 + 1>InitializeBuildStatus: + "Debug\arr_trunk.unsuccessfulbuild" のタッチ タスクを実行しています。 + ClCompile: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /Zi /nologo /W1 /WX- /O2 /Oy- /D _MBCS /D _MBCS /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TC /analyze- /errorReport:prompt ..\accero.c ..\adc.c ..\batt_params.c ..\hal.c ..\i2c_ctr.c "..\i2c_mcu-sub.c" ..\i2c_mcu.c ..\i2c_twl.c ..\ini_VECT.c ..\kanaria_c.c ..\led.c ..\led_cam.c ..\led_pow.c ..\loader.c ..\magic.c ..\main.c ..\my_led.c ..\pedo_alg_thre_det2.c ..\pedo_lpf_coeff.c ..\pm.c ..\reboot.c ..\renge\renge.c ..\rtc.c ..\self_flash.c ..\sim\simFixture.c ..\sim\sim_interrupt_decrare.c ..\sw.c ..\task_debug.c ..\task_misc.c ..\task_status.c ..\task_sys.c ..\util_funcs.c ..\voltable.c ..\vreg_ctr.c ..\vreg_twl.c ..\WDT.c + accero.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + adc.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + batt_params.c + hal.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + i2c_ctr.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + i2c_mcu-sub.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + i2c_mcu.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + i2c_twl.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + ini_VECT.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\config.h(71): warning C4005: 'MCU_VER_MINOR' : マクロが再定義されました。 + c:\78k_data\yav-mcu-basara\snake_trunk\config.h(10) : 'MCU_VER_MINOR' の前の定義を確認してください + 1>..\ini_VECT.c(344): fatal error C1083: include ファイルを開けません。'sim/sim_interrupt_decrare.c': No such file or directory + kanaria_c.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + led.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + led_cam.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + led_pow.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + loader.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + magic.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\config.h(71): warning C4005: 'MCU_VER_MINOR' : マクロが再定義されました。 + c:\78k_data\yav-mcu-basara\snake_trunk\config.h(10) : 'MCU_VER_MINOR' の前の定義を確認してください + main.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + my_led.c + 1>c1 : fatal error C1083: ソース ファイルを開けません。'..\my_led.c': No such file or directory + pedo_alg_thre_det2.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + pedo_lpf_coeff.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + pm.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + コードを生成中... + コンパイル中... + reboot.c + 1>..\reboot.c(8): warning C4068: 不明なプラグマがありました。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + renge.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(16): error C2054: '__callt' の後に '(' が必要です。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(16): error C2085: 'renge_task_immed_run' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(17): error C2061: 構文エラー : 識別子 '__callt' + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(22): error C2054: '__callt' の後に '(' が必要です。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(22): error C2085: 'renge_task_interval_run' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(23): error C2085: 'renge_flg_interval' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(24): error C2085: 'renge_task_interval_run_force' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(13): error C2085: 'tsk_sw' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(14): error C2085: 'tsk_adc' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(15): error C2085: 'tsk_batt' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(16): error C2085: 'tsk_led_pow' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(17): error C2085: 'tsk_led_wifi' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(18): error C2085: 'tsk_led_notify' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(19): error C2085: 'tsk_led_cam' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(20): error C2085: 'tsk_misc' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(21): error C2085: 'tsk_status' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(22): error C2085: 'tsk_sys' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(24): error C2085: 'tasks' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(24): error C2143: 構文エラー : ';' が '=' の前にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\..\config.h(71): warning C4005: 'MCU_VER_MINOR' : マクロが再定義されました。 + c:\78k_data\yav-mcu-basara\snake_trunk\renge\..\config.h(10) : 'MCU_VER_MINOR' の前の定義を確認してください + 1>..\renge\renge.c(33): fatal error C1083: include ファイルを開けません。'../sim/simOnWin.h': No such file or directory + rtc.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + self_flash.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + simFixture.c + 1>c1 : fatal error C1083: ソース ファイルを開けません。'..\sim\simFixture.c': No such file or directory + sim_interrupt_decrare.c + 1>c1 : fatal error C1083: ソース ファイルを開けません。'..\sim\sim_interrupt_decrare.c': No such file or directory + sw.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + task_debug.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + task_misc.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + task_status.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + task_sys.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + util_funcs.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + voltable.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + vreg_ctr.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + vreg_twl.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + WDT.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + コードを生成中... + 1>プロジェクト "C:\78k_data\yav-mcu-basara\snake_trunk\VCProj\bsr_trunk.vcxproj" (build ターゲット) のビルドが終了しました -- 失敗。 + +ビルドに失敗しました。 + +経過時間 00:00:04.25 diff --git a/snake_branches/3.82_trial_seisan/VCProj/Debug/bsr_trunk.unsuccessfulbuild b/snake_branches/3.82_trial_seisan/VCProj/Debug/bsr_trunk.unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/snake_branches/3.82_trial_seisan/VCProj/_UpgradeReport_Files/UpgradeReport.css b/snake_branches/3.82_trial_seisan/VCProj/_UpgradeReport_Files/UpgradeReport.css new file mode 100644 index 0000000..3411f63 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/VCProj/_UpgradeReport_Files/UpgradeReport.css @@ -0,0 +1,207 @@ +BODY +{ + BACKGROUND-COLOR: white; + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 100%; + MARGIN-LEFT: 0px; + MARGIN-TOP: 0px +} +P +{ + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 70%; + LINE-HEIGHT: 12pt; + MARGIN-BOTTOM: 0px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 10px +} +.note +{ + BACKGROUND-COLOR: #ffffff; + COLOR: #336699; + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 100%; + MARGIN-BOTTOM: 0px; + MARGIN-LEFT: 0px; + MARGIN-TOP: 0px; + PADDING-RIGHT: 10px +} +.infotable +{ + BACKGROUND-COLOR: #f0f0e0; + BORDER-BOTTOM: #ffffff 0px solid; + BORDER-COLLAPSE: collapse; + BORDER-LEFT: #ffffff 0px solid; + BORDER-RIGHT: #ffffff 0px solid; + BORDER-TOP: #ffffff 0px solid; + FONT-SIZE: 70%; + MARGIN-LEFT: 10px +} +.issuetable +{ + BACKGROUND-COLOR: #ffffe8; + BORDER-COLLAPSE: collapse; + COLOR: #000000; + FONT-SIZE: 100%; + MARGIN-BOTTOM: 10px; + MARGIN-LEFT: 13px; + MARGIN-TOP: 0px +} +.issuetitle +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px; + COLOR: #003366; + FONT-WEIGHT: normal +} +.header +{ + BACKGROUND-COLOR: #cecf9c; + BORDER-BOTTOM: #ffffff 1px solid; + BORDER-LEFT: #ffffff 1px solid; + BORDER-RIGHT: #ffffff 1px solid; + BORDER-TOP: #ffffff 1px solid; + COLOR: #000000; + FONT-WEIGHT: bold +} +.issuehdr +{ + BACKGROUND-COLOR: #E0EBF5; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px solid; + COLOR: #000000; + FONT-WEIGHT: normal +} +.issuenone +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: 0px; + BORDER-LEFT: 0px; + BORDER-RIGHT: 0px; + BORDER-TOP: 0px; + COLOR: #000000; + FONT-WEIGHT: normal +} +.content +{ + BACKGROUND-COLOR: #e7e7ce; + BORDER-BOTTOM: #ffffff 1px solid; + BORDER-LEFT: #ffffff 1px solid; + BORDER-RIGHT: #ffffff 1px solid; + BORDER-TOP: #ffffff 1px solid; + PADDING-LEFT: 3px +} +.issuecontent +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px solid; + PADDING-LEFT: 3px +} +A:link +{ + COLOR: #cc6633; + TEXT-DECORATION: underline +} +A:visited +{ + COLOR: #cc6633; +} +A:active +{ + COLOR: #cc6633; +} +A:hover +{ + COLOR: #cc3300; + TEXT-DECORATION: underline +} +H1 +{ + BACKGROUND-COLOR: #003366; + BORDER-BOTTOM: #336699 6px solid; + COLOR: #ffffff; + FONT-SIZE: 130%; + FONT-WEIGHT: normal; + MARGIN: 0em 0em 0em -20px; + PADDING-BOTTOM: 8px; + PADDING-LEFT: 30px; + PADDING-TOP: 16px +} +H2 +{ + COLOR: #000000; + FONT-SIZE: 80%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: 3px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 20px; + PADDING-LEFT: 0px +} +H3 +{ + COLOR: #000000; + FONT-SIZE: 80%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: -5px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 20px +} +H4 +{ + COLOR: #000000; + FONT-SIZE: 70%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: 0px; + MARGIN-TOP: 15px; + PADDING-BOTTOM: 0px +} +UL +{ + COLOR: #000000; + FONT-SIZE: 70%; + LIST-STYLE: square; + MARGIN-BOTTOM: 0pt; + MARGIN-TOP: 0pt +} +OL +{ + COLOR: #000000; + FONT-SIZE: 70%; + LIST-STYLE: square; + MARGIN-BOTTOM: 0pt; + MARGIN-TOP: 0pt +} +LI +{ + LIST-STYLE: square; + MARGIN-LEFT: 0px +} +.expandable +{ + CURSOR: hand +} +.expanded +{ + color: black +} +.collapsed +{ + DISPLAY: none +} +.foot +{ +BACKGROUND-COLOR: #ffffff; +BORDER-BOTTOM: #cecf9c 1px solid; +BORDER-TOP: #cecf9c 2px solid +} +.settings +{ +MARGIN-LEFT: 25PX; +} +.help +{ +TEXT-ALIGN: right; +margin-right: 10px; +} diff --git a/snake_branches/3.82_trial_seisan/VCProj/_UpgradeReport_Files/UpgradeReport.xslt b/snake_branches/3.82_trial_seisan/VCProj/_UpgradeReport_Files/UpgradeReport.xslt new file mode 100644 index 0000000..8277446 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/VCProj/_UpgradeReport_Files/UpgradeReport.xslt @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ ソリューション: + プロジェクト: + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + src + + + + + + + + + + + + +
ファイル名状態エラー警告
+ javascript:document.images[''].click()src + + + + 変換済み + + + + 変換済み + +
+ + ファイル + + + 1 ファイル + + + 変換済み:
+ 変換されませんでした。: +
+
+
+ + + + : + + + + + + + + + 変換レポート + <xsl:if test="Properties/Property[@Name='LogNumber']"> + <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/> + </xsl:if> + + + + +

変換レポート -

+ +

+ 変換時間:
+

+ + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + +
+ 変換の設定 +

+ + +
+
diff --git a/snake_branches/3.82_trial_seisan/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif b/snake_branches/3.82_trial_seisan/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..17751cb2fd5c284dfe984adc4c769982f73a0a66 GIT binary patch literal 69 zcmZ?wbhEHb23ky~TYXIqG7FYlP literal 0 HcmV?d00001 diff --git a/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.ncb b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.ncb new file mode 100644 index 0000000000000000000000000000000000000000..c3df73580a39448b36d235699ff9a4453c3fcdab GIT binary patch literal 912384 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℞nLY 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
wTg`ZFRO^ELFVrKO7g{37O%!P~hTrty{vBwlY!! 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 z zXk-~vk^7Ihodd@9k755w>tnHr_i+9&WAM(>Q~qOkIOcfxq95!ql>W|$&B%y{d`{h5 z#v0__9d0(9jn_vFW>M!aTnW$3zd}C;M)hM(M)C{eVohutw%cK3aef-^tw)6M^vIJ6 zkKBh${&`P3{CxG>;dexz^St~QV5OT%Gg3Y_m6gqU44SEQ$cMOGYvllIw##^MkK>y8 zeT>(|dxX&#MtWEkNO8G%YY}uYh|j7xe=DLeK~Dqyl;V6E& z4sNbzjp#Y7dC;U_JwKJ7wFq?g&;=oWt>Uad5M>Iw7ud2D=lM`BgIB=QD$e_gmLFOr zlmo>x2oK|}{@62dJsE|+9K4MDUCi_1{mCSJ7W7kyqlWy^eaj+zCVCmDffUasJdCS4 zRq-6cpADWx{t=4j6h0A}FzC@0M`sZK!Z@sT70)C5>ELPPFR3{Dc!+`pof^ur;`xP# zaa)h{NL+tG;ZFunBL4=(iwJ)LS^&$Mt$1#~N@V7v`H^r|PJ}MXm z{-)xUg^z@04{_QQuPS^5^p&umC|+IoaEubLo|fV@g%1mcftOXhw(v)w`Gi-I;&p|G zaczIQFLC|#g+CNLg#3pUze)H|=ui(IT4`_NK&7?*dW;&%)06ZAp;`HHs_-W$4RJV(Vl2oK}<4pO|6@LoYLi_RDvn2ufA>NE4O;^;MfC=%BK!;E1n*J2xA1O3H{{=_ zIGQ~C3*!ebRU8c%{)O>_Ur`)`O8g7s2TxQS-6{MF;|C8@98D(vbqYEK_*8K;V))lF z=m_3G@u9*y1RcQ3D~{$7|Jn!b!Luv=i12nnJMcfcCho&<;ccOLgyl!^5yIO9ZNNWL ze3bCJp{s;`TJh1sTL-PdpHh6B@K&%u;Qdwnap5hY^@MM{;!g^{E4T~1rs5NXw}6i# zw26v8E&R^lPVh{MPZWL!EaA|TqR{yGo9)PR!fy|52S23vB;n0rE5X`ricb-K8*J)` zW1;v9!fy?31)rt(RN>8Fg@>Q6;?spU4Vr@Ar}zxvO<=c2A6xNR!W##T!OJN=NBAwU z>L9MI;;#yCgjuV2uN9vs{N~_h@Y9_W_hG*9hR}~#);`4-3U3fJ0RKes*M;ANnP6C% zO7TU)>j(A0UsU`p;q_pDLd-_R7YnZoKRwHOK=CEQ>jZVc+bOB_zK}QgPPzO6kjd;2H3fl=x|3EnPQ?L~& zzCn0Z*xj&>rQ#n7uL7MG;>|0*NqFU;GWbZvKN3zY7~-re{;_cSSmFLC{)zC4@O?x* zsrYBYD+Cq5t1G@$czIaSEUS>>UkEP;`yobw@dRcPYM8 zco|qC5i>>c-NH-5PZQ-w@jb#z1*O2}E528FN!T-{cs|&85l>q2bHek&0~Wn*#eWr^C&&XnQSsk} zC&5~b_}q&BAv`x`hFVrX#V-iY732bMr??EMteluj3JZzij?Dvdz~celY>Iorvj^G1 zvnd`3&lY3@ztACZ9~iF~J+vSz_;JP42+sna3dD+3Je}~&@V2n5b&7Lc2($=6Ch*r3 zXPjj85D>ctR#(Nd3eSM3Ht3HjokX4D_&6eHNiFD85F1I9!B?w&x8BfK5;*b3P<1` z@Y9MH6Aq;V_(8?56&^#ZAIsXNcuCkpm-_aP}PF3R-AFIG2%nqAoTMUFDsmj zAtP3k;^l=~0XFLi#VZQ`3x10juPI(h_yt5KLcc4y+kl7E2gMgS-ir+2y zk0Z_z>RZLz3P0u_1HVr3cEZ1hzX2kLDBfQ9QN&C_?V)%_;Ya)<;I88L2tN#aJUr0a zCZ0=I;fG+UM?ItXeZs%y@;TJ`dsn;!uR-lz#moo0pZ^wmKWA3R(z1~-H0fF`bzP^!gu+*z?&;R zMEFj`AV58@_(Q_K!Q4Q+FN!}b{A>Sf@G6QA6TSnp3Go~iA0hlJc-KLz*CuiQM+x7I z$Tsj6Qhc=VP5vhE+TfA?YK-uWm~jJr6wV* z2jCy6{ErJ?k9no=OH}*`;p_Z$;Iq|vo)W&+Ukg4#<>$IRmbJ!T13paUe@6KG{`=q+ zRQ`#=-}B!CFRJ*n!dLsN!E>wgOcK5dGhorWDLzH`N`EDIDs`Ucg|C248TLcPUl6_= zk;yPl#2`PqpHqdu>%R+r3>-qnQ`3dN1MM{47sY1?U*<0Z|5)*v!k1#MF7Bt|FAHDd zF9Dyc_#EMHL;sEV_KLqMd@=ms(4PU1u5+&NxBR!jhblf#_?ytAqhGB!*GGaEufGWV z9>o_3f5U$R{7%Ie3V$7bp{U0ce@*yn{%hbh6@Oj$Ld;HvpNrye2w&hY057dL*Tq21 zfO-FDJ;5R5KEEmagV+Z#%u0p1CHlQ@315R4Je?+8EZo&~={ooA)+)9z{TCmJU5zbE_@>>=oXR!{IX!cW345?bGS3I2ib6R@D* zzST|ejlzF&e*%BAT7qvD{-gUNc&i%|{1f5F-Q(Z`iYEA0;m0t$8RJAK4Ws+;h4Am) z@4?5`Nbs+OA91-(!3*m8zY%^I{^e+YZ%E|dCH#{ zqkd4o>pS85-Tgejy3V7*_rjwTdP~KR3*Y1J0dJ>%?~lU2b-x8Kpw53n_%6)ChyGdd zlfrkpT(9D^I{#_m-(c<)^hGNFS>Zceu9NYX%70GySMFEf#})ro_;zh|349sp4WRvbMTg!S7Yvarj<*hPj*QXDaRq{{#{KpodZ17rw>i`Xc=l zj|=}8bIvdjT9VzgGBLh(-au zR^`NXmJt4?`zH8%igR5!)c=?lfbyewDdBIpT*qj%;-!VZ?sDCu8x=1joUwT@%2WJ0 z;S1aa;5%Xb@bPWbLzWdjAMt!(PEq;G3!m%G1z)7{R}lV+%XOiKz<3ayhwFPHaxNmE zT2=?euNOYm<+@o76|W-v1@{H;@`_gz{=Ca|x$-JrL--WLAVNPuajtg<4L@RkU=(mm z;(BTdpWsda|5Wi>!k{jf9VN$AXtqys_{x@O^|{Lh+`;N4ulJPr-N--RE0{k8($Wf1!AD;Uf{T3BOD6 zJA{vLM}SXOyoK=L?r`t{inkQb=uddx6>lw^7IE~e6>lT_A@?Ehyo$FIKGYowZYkbD z_=E0);D>Kc{H{*I2fKs8w{)q6l zZd>FZt@v=^Z7};2dJM%!3J=#~Y+E*Q{zrwkc3UI=b&8J>-pXwS9#edr@Rsn1M?d7c z#CaYQZq{{F{0ZSL+!o0Hq~cEr=e%)@;}m~dc(@K^eZ?mVzumnZ`HLz3tnhGs$h3+- zC;V3TR^)$EJ(o$s8@LU?XDB{dcpdosqZ}$eMR;wuHh53PpBG-;tqy*t;#|j&b8@SJ z*HV0{@NgZ--zz2V+ce>o-O9-Swc^u-U+-QIUPzs1hVTmTsZIEuuw9rbyga;Zp_gco zIRDGS%em#icPl{2j#)2=`nM{29f+6OJG+-~$yu zEZlOjS?v`+D*P`8e%Mw+#g7TU;9P*Lr1%fQ|3n0Dv^$FbB>Xq$H^_5!6VLZ&;lDb+ zLhe)il<@P27>jX`;%9`PbIw7&ruZ+y&mfXH)*?`x$72NNoQ52!IIjae7Q`Ay6e-33 z5FV~8+eP&!`Fr5mj_Ao4FDuU9Z&^P${M{ARd3e9z+wJgvFDaV%y}ZA$AUFrX3#t6J z@O_BK1Aj2Z9pQW7zl!y)>m<&@=Z7~P(c3XfQuQaFH)=e@QOCEa{45{zSlk8vx#BEO z=xIAFk4qJ2`NL|3i1i6Owc;$tmi3jx@;+MeG{Uzdsu1p{;(UJ)(F-29XfG7!dx$GR z#COb2S3HyOa6R54it|0kc-Hw0`7|wuXrt9M+3BE6#c! zH8Y}fV+|n1iwl1rGxSg%6lc4F5gELi(caZc{9d+C80jO%6JpgXUPkyThxPhO#o7MR z2YChfEXCQ5;tn{=!N)3IQTV$K+mpVEvzn(q)IQud1C~(-`Zcx0Q@YkK!!QWE+CgHC+ zY`3Q<-ca}ghwc0b#TyBqkC_=5hbrD!_&j)=qg_zEsqnd2ZvlEs#cvfJt_z)A@#ey3 zJF}7BR{Rd(FFWkloKSkm7Q$yav%t42&VDL-dWZprevaa;g}>;$2tHqN_M15yXFB*4 z#oGy==CHpuOz{rFpLd=I@1b}n;ZraV7k)~LcNRX`nGD`Q@vg!rIqaWSQoNh+XPjri zvnYPA@TVR2m#Q9{wFV(x1mfo?&hao>d_Mu~D5bYKIgo;xSf}W?- z9sF&@CkXHAbOoQS_%p)0I9Rs31uot@6$LlvJS{2u2X@NSAzk7HRKoDSf3DgJ`+ za9#8Uicb^X&S{7I)fInHcw5Y8$9-1(CE=}|*5KI{pC!DN(+WILe75kGPD}9LmHzw{ z;o*Ah-zz>>_#Mt2$iGYR`ND5^ZU_HF@rA;hJI%q@EB?Ch+nn3L-%P~g=Vv4U2Ud^cnKCpD+dshh$*O@P^_uARaE}M=CwW8sU|kO5m9kUnjhx zQxQB+-}`~^3Qh&^^Gg5xq44rfdGPN_C9Y?a@N$Uyi1u3XkA#Vr3yNPO>B;YBcK6a77v|8wDaoIKzI75_qbl9L49S@CVc zb2>S}?@;_p;W-eu660dUw+qkiWCtI9ZQ^>q5}w7$0zOCet9J;`gxRJTN2~LEEj*)> z5&Wa#iSz6fp3X@J{*vOmg{MV?Qp}A}-@8Y6Dkl|qImP!0zs9)+Je}ePgvXsY_z89X z?}Wq62mElc#Pu8&?l~U#`-&eG?m8~`bj6Pe$0A?g4=etIaD-tG{Dr+$@!y1> zwP`o2qxc`f&)8?cb18m7_$m7o_)n^Susqh!CouyM^ClE`g#V1yt}N?i#XaFCY})-E zQrs8*qfI;E9g4?=|6uOZ6te#AZk-dOPr!VlYr z!HX)MN%$fA5V)s!7UAF7w2SVkn7IGhgdebJM_r;1=QU*z|+gs(54J%P`v>?VY-B&4kal=|8eZ*&mw=pJ&tGKD6h7Cc zf67$FTMB>Gra#NWir+2#75f$NHj1|s&e*@OJ1gE^_$aNWoPUt z{3ZJ(@Xr+QBz%TF1AMXK_XvLx5i4OISG=?E>GpK+A&PeqKFyv6-bV3m!k@S4e^gBI zdxcN3CxQQ>^ilT-f6jgme7)k`g+FW4ABwT`qW83i@TU>S0c*J{-c$H^dp!7H#d`@K zhu9C8AE)^J!p9<>86tu!-dp$>n|@~n74IW_6e6IZzod9y;Un#l;KxbOI-*3~Oai-!Ug!i(0fe%r9l<=N*Pw+O1j~3p;?g3t2@v*}1 zv+o1Xp!j&zW#w0Vw(u5q3-EKwp7@IJJMBBcHz+<=cyp``0`CIF=L^5h zz74#u;tPe}YTpXpO!3!+H?y08S5kbD@Fs|Nj`~XRw}dyg8-vFbe_MDXyAk*aWyf49 z{AT-R@NX1)G|d$1485@Va(g@Ii{N z6<)`#172V8^}=h~HNkT$zCrj6Sa}e=K4tgZD7=PU1N<|^Hw&+BR|lV^_{YMl+Eu}a zD*lP^Ds~m{I~D&-cxAgXcxA;u7k<5cJ$O#VzYt#DE)VW1zD;;JyBzpIHBS6ecxk&d z_{WNG7hVdHMA5z|zC(CX#N&Z}Uh!{)7qN?gk5hb?@WOUs@Ii`yE4&aQ`=CBle6R5Q zc7E{d72hvBpPdi9fZ_**=e6^K+ln6&p2yAueoT#{j|k6g=LX-Q`1itdVI4@=H55NC zJg1!#{58dY6rKYsN5Vf!@t=ifwX=fXrTA&#S?ny}H5C6vcxF2@cs9j<6`sk?1b$YH zyZ;cL&Q1ruQSrZor?u09zoEDjL&w-kW2XThsd!9yYCAP}PsIb_nDznQTJdXy`?e3> zQ1R5lV|EO@n&N4Nd$tE&Sn>42ZTv&Krg%o-Rv5BD@yx>iLZmxb%~bz6tMCh46U5r1 zcy{5xTfc*Us(4P}zgfS5zo&R^;lEnHf-hD)kMQ$|IEVg;;`xN1woZe0SG<7mQ`RZ) zMv4~_e$qM#US9Dc!hg1Y2KN;&Cj3XlvcmX9^{cNH{)6=c_*TVB2|p@pY%f>*I^jpG zBgp@P;^l=Owhn_oq3cPL(2_yOwxctypl3g2(-2QRF6b>aK0ec(A1zd`t3 zL@h+WMfLM<6u#Tq4gR&_wT17pc7d-_ysq$_)=uzwiq{wZjr9%qQ;Odt{7bCugY}^l zZylqi zC00*`-b3;B!dF-;z^_rfqwwVt`}q&0x4B0+Bb&jxs(2USjE;?ZN%3yN-@;0*m>;V6 zeZt?A^|ksa-b45zYZ3C_tavZsugRJ!B^2*1e4(`v`BN+2SNH;J0r-iciSbB(;q$He z;9n~~K=^EHHuz@69}xbs^)mQ0#Rm$XVa)(%)LkEvdWk{8U$kDt-`6NUSoi~60M0s9 zB$59?;k~S0;77pInez-0ejj2dV>}Ms)Q>rE9Fm_C;~b=tMmB=b0*=PL6UPowln+B z8Tk?9S+k!dPnfR)WCOE5#>fqjz4L~j&ogqrk^GK4`4ZpJ%IrUBKaH z67%&o@+l+vJs+ukALAS5t8Qc;$T?;|6~=D-tdEgnjhq1)u?2?x3|SImPv&o9~~X)c}A(frhD8l|2M^$Cs(b+cU3m~w<*Rv zUDV$L&Hkf`G0znB_gu5T1d{h~qmes}JZj_xBeT>F^A&-tYxWx&+0MuTMvgXe2IRX) z@0q`M7ccfHxpu<6`jMN0FB~n+Uen^iXJ&80G=?kQ6-fCZ?0%$Un8G4@^i=wNQG_+^K~}z zMI*m5GH4KfUeCw}jeNt%T}Bpe80PC@hqKt>Jmv8~M7C=Z&m$Tlo1i zM(#DTMDvgjFmkPtX>SjC3nOP3dECg#cZ8o0H*%AaS?>&aM^OKH*$}WWxIx-4>R%;BlC9)c|Rl98kzpykasZhO(Xv_^5*-(&j%a%s*#@?`MZ%N zx`+8%8ac|y*Nxn1q~9aVcb$=UK~6>5jr21T<4fj8x&vtp5}(Z%M&{`i{@umM*Ni-6 zWaazA&mS~$g^^b8kk>bItdX0HOw%X)yqS>`jQrHd9DT#jI~qCH$RCW%+AsY41|vHe zImXCEM(!|@5n}nf^7jvA10#DG`LvOXA%8-;b^zi-Aay``2#Lq8F_ME}{$0<=M~(c@ zNN-^Hc`YLc8@a^DAB-$ID9qQ!$iYTF4Y?5MTO_V)k!dh|AdqfEYJoHWX&%x}q+$=E z&yGYn2#MFV+DK=JxlSWT8~L%38HR?RH#hQGBX<~?>!I-T)<(WynWSgOM*8 zdCTI2x%PBTS$kIvX93Y9_az3(MZoA@wYB9a+{H-j7ibAVB|(4zccbrBa1&Co~N0S1C4ya$PbJ>Ze*q>!u*wtY-i*sBj*{p*~lYC+E0eZ zF=9n~m&c5;BO4mo$H?a(qj!3p+W$fAXPlDAQy%-g{+31#F><<*D~#M@!hE+G`H+!w zjr`Qe-;FFhJAlRoY7YJNx!2EO1eEgFTLyoumGI$O4Zp9o@D<~#x*Oq>wgrA{TV-|K zZE}Uj;J5e#d>v1~Kk_7eD$l?V^A}v>@9_8h6F#Cg{7PN;q6Y9^y#_w7{55;rn%>La zS01CD^IPWzw0Co_yv@iLG3?E^m%ACgmk`ZAXM5PaLCzy0T)u!78Rq;*Y-!y4L9E=| zD`hjD#%%1pDA&IeK7+gAXSf%>iTmNt_#J#855sTrKe^_N@CPme-{^Air>+1W>`L(4 zt_ol8>hKT00Y2r8ohI=3?~GXjT`{wu2WBJm!VHGKnDx+K*4!M7c^401uEryn-!T$% zLY~Hal)0GWGavJUUc+3XH=IS7nY0+QnU-J%)Vr89wE{D(R%3P+S5{kxSzsSv=GbP; zHv1Se)IM{zV!qp#m?QTU=GE=QT)ZDJpU}k|%^2o&#xWN(73Pno#hlahn5UZA&4O94 z*)UT!CuY~?#*Ey&n8lkPGk=R)j!II_VG}GFL$VE@7zK!tgBVqak%$?vL^{A#-)4LH{9c*>6-Gr?Hwno@)!PXR8Gi=SV-Hz>L zSp#A&R)JXPz2PnL7JF}d%e;3`&bS`LE^m*w*E`@H^bUJRykp*RkFm_M;=0EB8xa$Z zD_d{{vtx*d_p_`Kd>Rq|N+LRHX+&(Tf~dkHgWCA5{B@~=5-4Z9GefN>tZ!p)2PHa( zccCVtF!v4U9mssMY{sYId$+;O<1xk<%kcJsK@9?+)E+`mcG4(>ha(vN|A zxonOwc~l-h40QRD=u4< zPe30P=BZ*cN*B+O5wW@I;l0Dd`yY94vPcQtgPEuMFkAII=X>{NtkkjJ<7^1N>zUvy zQ3(DdRUFQ1;}y+u2DpsP#b16hHs7BeFcKs``PI)K&})gmps}5=S(s-%qWf%c^Wlgz z;D=**{Gxtozp`J`ukSzazv#c@&+_N^NAWc9;H=)>5bsg%aqmfQg7>udjQ6bfoHxmv z>`n2W$9lBWup;e?-VD?|v!qPDf|W()dh?}Ry)Gr|Eh$?|rF0$b8eU7A;AE|EZ?(f{ zGyGl8+Vfo--?84~x(U4EnE@kGrN>?o%#SFAITgA_spsr>Yh&HgZ#>RFV*V};Bi!*W z%<|XzuLQI&lW({f5v(@iEu3~()w{e~JB9g+28{L3BZmd_rsUoT`#4HXI_$Bw zFN+$HH6Lp^)>N!rw!5W0&Xr^CF%G>1xVKy4bMR?4x7)ejnrHroGu36h1m-B^PPh$P z5bS*`wZ`{SN1S!($IPqy(%J|Ak##oXpfLXc_xXFmy~;ty+TpKR=ZtXax53X(O60Q= z*ke6;5_7drV}AEJ%nAP$^T_|i-1EO2>#FO?pWLP>35PvKqvJDj5QFY(pKCqvuW_=v zD?NjF1(|Kep2APP;u}`vl2%2xDN);TrFP>=Z2-&3dN;R6&puvHBb%{O{~z|=1I&t| z+xzYAy=V3e49qa(Gz@vjFytgr5ECc}A|N87B1jZe6af`c!K@%bf`SSvB7%q@K`^0W z&H*FlfS3j5{{Ge7&}@6R=bY!>=Y02j-X0cJyTYnfYpn`hUA0Pd{*Fb}yo63dNFsw7 z#bvccX-3DiFI{Q&vK!?&TcxktXKF@1|t>sw+!63e7bzYs6g*^PU|Db>~W?RI3TQS}{xeMa3{pu8g! zvKOJyvRM83i@qft|2iyVJ%%-{$Facm*GQKimvf88H3^++Q@&Fi?IV+~g8g7O7sD^k z*w}in&mECij2?=)C% z357pwEbhv8Fnu7(B)+AZMSL4Ofl=_Yxb{jY$0}o8TsWIz^ZtT__Pi+k1#{X(wI0MA zPCJbiI>weQ9)*s?!qqbuxS>}iv~yGO$J(-yB|hJ5uZSIt&5m!4KhBu19J{ayCyTX8 z_d~kwdXewegsiMxh)=V#P0TE}Gpl@-8RaXSv3QGf93L=K`-EBAUS??DF{9kaZ1Oi| zk_T;@Ib?$QV+l@QmFL9YiJTtn%iTx=IR!bCdDjSfp3%&=CNS5!gdXS$=2+J-$GU^l z!wWf~yo^)O_c7Ocka^Z4%&|5wzuL^)YCH3)=a^INWbE)^Rg76*v!+!dPKj{~W zm{X-OpDM;&Dx3bHEOV$z%%7?;cdEm@sUg;13Yjmp#k$S*SjG4S=$=L(of6Oq0-Y|< z$pf8A(1``vI}tA`#k3P!zEQTmkIJ{)uHD)7t#xX5b$u^8CA+&kRXjb4}QQKE+TSsT0RPID( z@UpKfYCcGpg(ijewg<(Ap5%s}9hd!S#UDu52|MZhi&myHB&Pcul==j2qtO{PwaHcN zd^$iI(-|?v4dE?D_9Tnp56w>I#;rMI)1ZP!i>bFjP9ig|2tL`tHC{L zwc@qob>ju`dhrJQHHtTmH;Ffk7si{%+w-SgWx}_~+_NO#O^FuNQJCjgH(LYa+CQl9 zPmE9OpHRN{jio1*GM)1st+09b4w|a;8q&>n8#YHQ2-pyC$Ut7GZR1)qz{o~5wsZTH1kt+?(PQQF>#>%AGp zeq$3?oY1^{Swbfnlwz1In_CKR#ZL6TFp6fe5p}oZl``h}+3p+1yA2Yb(gw?^?@w-?W{~fKV&rKR_xSga!LRR#Z!%oOv zZ5}?&%ueBCdtXk&58wp-Ku+Bc;iUdhPWPvJ``;Vu!8^o9@%dd`YIizU#bgJy68N;z zqSXqmOf)o@)!y&G#)U?Atp{k%Dv9Y`eit@fYs7WOoTyrv&}kX@&a(TVMbg`|<0Ind z$0x?M4_Ptao1Kv+wK+p94((!87!;FbJ@KxQJuIfv9ZJ*7mR%5qE_24mbf#SC3mx6! zF3Vqv$-};)cEKwBGscdBeCIlkB3rekWxR3ejb%kbwvR;9EKY!Z?_3bmT~oq0nwzjD zCu9jhIfpv3@gdA}oeN_F&UNz);MSyJ+^nYaG)mRq)=o?HhvTgY)pqK%U&MC-O(Uv79Y2`v3PSAR&thMS?3;S`G0#A@0-~1tS)>Smu*s&c|}ZCCPm9JoV_|D zR_9cAPI9MN(YOnH{LiQBwn^PYDf_~rZgZ?mTsG@TYE4g{fvx(lS39u;g;{Ocidc$>WBbd~U_*!Oc_0aa+~#j2S2LhHx@Bd!5FuU;VieYyh`~ zoz6{S16kiXgB!>Oaa)@12R)bD+Ro>Ow+qmN(cC1b`_sp<0ycqL_oi@D-{s7TuHZ(% z>D(fCrTM#-`w*{B%;t8*8xl7r>YVM;tu-p0El|DpnA?2htC9GmiyObonHBp4t&^U$ z=O(GHP&6i?Q^%6(d+1IUZ;BO}O>VYzM~b)>OQa{N;g$s0ue}|IC(Yn^V=dzs$OxDD z86NkZ(H8>Y(tY(cS^VF2&5`t?fgJ$+@&5KK-~GNk;x6JhjoG9Z-V9PbL0-|538rl8 z2};nf3|enVPzrp2utq>?Yw5)JZYS)x){N|H}s6%?9bJ?Vuie-DC=U>h-fRL8zu zh7KGtvEC3&?~Rx+;@qL*CX5(2cH%`trwk2*@aybLFB&m?*tns?hZfj&y?j6QKa-|N zIAO%lkz*zg8$I%zp%Iy<4E-;a5t8V?hJWn1i-v{}aU?ic>5znOP%x3QnktW-H0GkA zm;94EVF`i=A~PpP1~Urr@TgLQk-?0?@cf`4gAu_DM_1t=^8aUaF!PZr{3GMhQNc_{ z>h_OJM@I!Sx#a&N!;#=%Vxe)RX{bQ6CA(s@kE7dv1}%s&{MO`fw>{UqEjhfHc@Lb) zFm*JZ;%0QtD5h{H(7(9-#bb{pr!Q&ppS>YDeU4efIem3<`ch_&J@aXI4T^qB=CF8j z;+5%`CIrIWekvoLh37Vf2fHhQaP?=*hK#-U*^j$@ zt?*Dqo-2)=?Rx|1)h|*K@12a6JCEQOpP11aJDl0zNmnZ9&oSY>oqMUsZvi~HCcK{0 zitxRG@G>U6rc;;jw*%qjOn6nNI^nzFr;opa3BTJeOZeJ*kA!P}t=Y*!bYW>Ayow2* zZR_5c8w25aCVZN)Com*XZoUccZBHhB??5u%9ImUdx1kV10~xaUi^o34h6) zUt1IiXE5WL!P-81MgrlQX|T)Ix`h8{1;Uvs@-(nc;QvlX^kIBs6JFV>j9V`d&Z{O* zCG);<^%1^}Z)(CTnptG!9f$d*=^;-A{`f+Cq}=g^CcM0v0oMtH^Af^Sjz9F_NV(g1 zspDZnhaPr3q7U1cPV>0-ArBs*XIpC%?%DzSAQ0ZhguC`J*3pPx0ET()1!(TO9<#;8k?gid>4n>O{rvuKxjle;0<`&YqPYY#$!-22XD?|e@^5DT z@YeH|Rj`x_?sE4B=uVvDh|}0!iYPMBlbQ4c`&Cq2`FF*nXDZ`lYk*zbDMhbXoL@Vc zS4?8HGT*7gckZgJOh3x49e+U&|DdNKD~BDRsylQ&6?>wT+gF@x{c1NcU&o)I$*If_ zth?>1PEEdaT^o}IWfN8&ORBFrue1L6w(~CEtv}?e;3s?)-0M`24T`Bh5*8 z$q(gv*7=prRH^3KcRTCRJNZZO4Qx_bmy=z<{J6c1Rirmr#m?l7Y_#)Z>{pNf-#Y85 zp)ifJ^1!LwXE|p(XCepDJI$Vr^_BDBuhQ(X&s*&JCdbwgps+cyrqC(c`m*wHHY?#x zcepWoop%WpmLIGPY(@;kt6%3>+pKTxcRfCS5PO#?vcg|Q2GwH~Yr46I*`HDtm9Uyw zEv>e^ZLi`D?JwTVY~IT>&o0FNh5JtSob#14G}P6nACp{#ZYhO#Tk&R+*<UWYe$T`nZ|05bVI^Q@|cz--C zc6MxXO#2*^Mt#vnrw26`ZN+(`XoyvZCLT{>#*%}|NVhIQCQ5Urb(X26O|wbkcQtlS ztl`F*-LdWHlW2Q}Ju|DIQ?&QD##pnh`|XkF=PFMJUb8Mh+QK!L6`(KelFmfxuTr|l z9`)M%WA@|rer6O39Ta=itI;0o0lSRzftTh5bgT+IP?@LF5;U?1>mWvy{(PJL;7+%W zr#Pp<3BO-mY_Df6b{F4YKC)$BK_&cReF43yjaF6euohX%tlAzA4qCN$xTz{wH+mfZ z&?)J~{$`!*`3{&7RoJH48ly$keEV)&-jZq z?$zwwxo)THe}Nw3R`fwB7FnlybPS4J7IW*EV>h=)*ngwrnWX4!4Yn?_9_3Fh^H$!~ zHTn_Bh}X@0n^BvWoIar4|IN3ibSIndOu0@YPs&}avuMYgtwxk2o}Nr^Gm&2A`|2(Y zEv*Zwjp|s!ZfalXwch!ByZXcVp0d&ZhfrBytbhJMRO*V@ta-G`3>d zoh6=bY@r9*169IVAvTnfMbTE;Ks;s!Z58C6= zT?#~>XIl?h`#j9Mok|`RJ*^9@1s=Bdo#CE7H;mom^*Re;pV4~@?{~59VkgoE3!B=~ za_dB|U5v4^=DXo)x5eWpdX#K*?08w^q8x5-dWVO@E0QTyJ{|nlGtzu{Eyvql!DGZ1HOJrgI3NsMlCF z3v}X2uHDn)&$*6fX^L-PRdZ(5bW3b+W!io1KAvo@b8hzfu9F$5Uh&%7Lx##+=g-)s z<6Nv8ol8Ag+!MPL+Er4Om@KzR`o2CpUcK8|4FbHp)A|;EtGAO)y(2x-15hM9t*s#* z#iN}e-ZZEw3OQm%lnie1mHZ#TA|G~Y~LGha>L;k)Svj?L&h ziodP&Zg0dspkCVVbuW2@VTN-rPCmYJw7bgq8d(G3`_+sWk0YNdc4za=^fS8w>)(?3 zlV;zWjls%vF1fv)`;@kFmt0Q#URu6tuaRIGecQdBT;6r+fL>+&8PmL!%2Ae9eJ|#l zaD`YszS7h+gWp%^ zeLy9DXWfLnAdvbUXZ7Rr&DFFKjYEt1DtI5QWgUNdD^lv-&O5XNaa;S}{)$!L?bG4c zZm7KzJn|2w->N`*m3FE#$(h35L0R5W_ACkL2^Vn3g2=*FuHQ2g=`es>~%jZ+1)CA6rR*Ds#5Ektl|5nDwOfm0b@ODd#in z${gv9N;g|y(~gw-jMz%A^mXQKERC>A)>Z66`q_Ee+`%MF!}(hLjlGukDh+IG@8lM~ zx8X^UBWuwWNywc=xP8T1Pxs$;Cfw_eb_1=m!S*<7+*_^B?63Kvq<3Laa=SeN{z*4? z((`}oWYYInWe#*Iv!MRWgN8E`x;R$&l$*LsOlu6vml3b*$>KIk?}w^E1#7S4j#{77 zE>!!GwD-@csbZHisy@Pqn(mxKiHhCsq{m+JXnox&QQhVIai&$wg#juj+kOj9%4gaA zy^-QIYc3e1gV&q3`(Uh-mu99@1gn(#$Jkcz$=A%<>b08Ab{Bh^SN18?P4CB|tTJD3 z&ND0Zn&+gk%P7xoXZ~c5t2I8W1IaK*1shJs6|4b1dG)6gaI9R*uB6or9+gl z)>!MAWNzm(+lw@;x0w`u!iKExY5u=k2dtQ#!G@_^yBymssG!`YV}@M}~R(j+B^UZaee8}P&Y)}ff|=)D%2-~D%r0WQ>~ zE}Od+`6%*0p-Dw~5>x|8J}(c|`IUjHWKqvdSXIMvmt2HPi#z#*)S(;c2bUkFn_Gw4 zZlp==wqCK`q@Ex0Dd1!4Q$EUkO+61$(==*Xi8>ZA&1uFYuOmj|j-!Ty_#kw#m}^ak z#2UCgfpc6LDco)|c}IFXJR01abRT-s(9_$%2t{=VuBY}*x^x@ReR#XUt=o(mdd{$m zh7G=S*yKhR4xiNM>|qm!O&B)#q6w46j2hg(Tb~JIFBoh!>ea2?;BNg+ZC2R4Rcm<$ zA2)2mITsI`Frwdxi5E>AJbc)NBPI+RI^vRXLr0H1d+^9H!$(g#XT;%bgO3|KVdRvt zWBwT-R9((FXXKcPgHIfJ;mC_doFnW*`*uGeGHv&h`t&?8JS7C5H(}U?`8`IC9x-w7 zNh60(7&~$7xfkX4A31T-u+jN_FPe1D$g%lt8#kqLN0;&6$~o+!(HEXO{J(~P+Dsfg zVC0x{#$G&e@Z?sFn|2xeKhAiVwOx84y#c*W?%sPq-y_v*eDbmV2KS);BQ730VbtKs zg^imwZrQYTVQZ^V7s>E{Qb#2EKgq3Z|H6Kf)G!m5-Du>gXl6I79sNUVI+Rh?P&9fN z1J^J@F6IBpw4Dp->?h%#&F_i81QUA^?j-t?QKak-jz0Vz%cOiT7>EDAjuE8vh}+!t zzkjaVx$A%Kx}CrN=DYs-+5cB-bseFNkI6?KekX+-i3{`n13_4#$S}(L&pO?I*6IHL zvrhMa)7qSxZ+^_3ljY-Q8fewcI%sAsIU4?piipLN%jBm5lR5We5kY3!`k1wiSJOB2 z(>k7nn&Ak#0yiE^I}t}SLeu}@)#RcI)4S$CIAs|3WDdABjEPMSfvGe{Mk z$26&yRlr(7V}7w-MxfTo>Hp0@a6!Ru{v1o$^imt+(_ox()0jo2Gsj9mc?N|vW_p{+ z^s^W`e0HO#pXCv%6hV#$mp1qxN;7zae!iq_D2+pghSsg%PwrbIZZj`HY0q`5ZFOn$Hr`eV7D% z&{~b5!Y7gM8`fLQG&RrEM#pc#$O{Z_&ovPxZ!F+N#&&ubNe%)i51ZPUJ%O%Fm0eFu z^kgAx04wmbbZhlF_waQ42$SM)o}@6R6>M@qRz8H^!(nz;B-e|y=Kw#I{41!ygur1< z>@z`80TgOdioBr-yfJqH7L{cHx5L$-OKa^P!u^Fnhpy577HsvSrJ z1paG|*Q5wB=vwlBEzmUr3JuCipw#=((dg!aPK*#pYm(5ZDa5E^aT2K1rc|^U&=M$w zZ*@Rji?-_+c^!><8>m$?9HX-nN*~qu2{pW{&Hu$fU&kao8bwJMcRq}mLfT(|Z{GVy z!xs;7DW?h06lexC0%1#_z*N3C6pE)6p;AI{i%`v0u_&~LcON}3qtNTAqfNv-xbfiP zCwnN|aJW=TIp_Y9b=t=y5GVVm=&Dscu6*Ju~)6#b2@9$kJTfR zSta?fvlaE$%{BGQb4%@2b&gZGSB%nR(}@h67@40W;D$x%xIO-CZj_}7pa`p2bTQ|Gi0o@8B*%k`J-3?Lqq-*WZE5`-AhFr>G z#Y}3YXT%nvb59t2jl1`u_=yUqh+I&rlX7TerD^0@w2(5;>_2MyovagiySbFLfJa!G zNf>=m{2b6KrO46n;dc*=yh5wm#rP8wazR}{;-(~S1{5NVTChdwh(7#02g;tXNgPm@ zy7j`p{Vvr{s?u74v?}efC6Ei+MnEA@0P3cu*C}}zwa92h51_}{#^-!$T7dsu;H5tf z_c~>vM0~cP)G^%R2anox255h=ezQv2Il^Xru#II2+*1MF_Ry-zAwwku(vavr5=nxJHUF3OKdAY?Z2gZK z{ZH5bwm#stZ}jp1(DlE=6CG+P5+!UYU!GZj)Gzm0_>9{;)L+xPhh>xYG(=-s0tK|8 zJUYhU^F1ieAV6y@Yk`3N`XviRBb2NVXowEyp~bb}_w6U=m8Ol)q z(hy(U^dltVQ4!5(J9<6^Z5H&X$JUF?oUh#J5)u$vB`r?0h;50l4t-!PP&EV;Pw?Sq z%5(0UTP;HFC*!Z*97a`#r0E1Zlv4t_icw~9e02?F8id?OZ0y7u?}==2dfqOkW^Szk zt@tGnjsTm5mJm~+I);4xa-UYuv!4#H*7hrd_xg&5*<5g#nhbc836ETQ>cOl00H4H< zYRvz7FqiLZoyMB~XhyrWbogai*Y02sw=ZI5v(etlbnQiZH}jgeI0pL%-#`;imsmGd z#u^M68K_4Bzxv5%Y93yM7a2;TS{4{JJ({2KU2dG>CHX+b>yuTYDQ|G%2|SI-riP(z zemv0N>%(Gb;APX7gXCuj+4QlY3!uAEb{8BTV;ho9+}G%p524kQ^hpFBw2CozDG*Us z&I_(CiGO2&>$V(L)kdIF*_v21hKlMiM-vMvtJJnRKK~Kgu~gw=CK-BKfmS?~E{dGR zpZ;omhaabSJvYDT>XFhG0x#`3{DRN~G%8ipY0Be2DzywF zsNU61lHos|9iXX?TL*X)_`I*nFM8LepmDX`MWd>frh+;|P$p18a+&8RP^tZ@nC`%R zyAQv7HUpIi^(hLXBKWAM+Dop`#dh5?vm@?mJp3sHO)-L#+3vSQ37|PjRvMnQ2s9+I zc?#dSuCcDQmU0{?i&?75Jb|J_u~?*jbP&>@uL#To+V_}dI#S$t-C0*i?#G=KcGN4a@Ivv!>PvLI2 z!U`8-0?oKJXcSc5l&=Iwo`Ga5$4{*eYy=J+>F?W+O`LB_RXV`h_OP-dq}nuvIQ>_e z;Rp$MgkE3Zwa**WnoHW2n>P3sUiN`QAfud3HNH#xVn2W1r}%(h^^;6?V* zzU$mf3NflU7OI*%t({kPxaDWs8!1OLZL*{o4k)kx5QSP43aZWEs z`)$OL2Uu8XYPUdkmvcVhdTg@oMg|`lJ!#||gKe>UoHb4dkDBuK0Z%&jIR}uAWZ#Va zEtU9aUebA*epYf`?;J~6!p^b*JH8w6*P6esh7!@z-Ra5SafXs!P8!s^TBN!hV|BKU z_3Av$N~1Qy`J}ahlEs}FP_)6T?;Ln|v8Sh*EXmZtj>ky2t#s1*l^*A-*%dfV{WZUY z>rH3mVf^*Tt&VE6eFgQu*`CX7mUr802~o3aj-1C&{njxy3G-sUD9T~B2>5Zeq6!QyJ{s%bIJlU4{2;^v@NtW1hq7q zHL9ACtc9iJ--M+es)JbyVMT_eoKjW-4CO7Y>}HtdsciEiP}5A78ktE+6U*7A;Z!rR zhL#p>GtClX2}^GpHOwZL%4Sq*Wj=4%)=addilqr(14}(~J8K)cikoc})hrD>tu4JP z<(nn)G)pVD#VqX$$unOrB*_lTsO8<%0{9jv&+j*JZQLK0vX>Np7H&nLG4S^i&fNlU z16}#u8#o`3-NjxG(<$7~fnmVx6f}90x}L~iCknLF{|U+*3~0YqA#UG$Ij^yua~-(XlIJp@ z^8)w>oB*5wj0C0tf7}C&xQl@MfM&p2;7MQ?upeDK?g^~t(Bjnho&o5-pjD~tI7eU{EbRl(I+DeWE0oy2)F_@Wa8BY_^&|2ZZR zlWu}`;4&Z&S{p%EYhctI@~($oU?s2)aIPT_(Dw#bv~GkK!1?r2YUA2jITd#YpdLW| zZ$skLzwX1Ij(aNZZfF{bt5GbM9^nqc*TBb8cVLeJzj{55LDvy~4}Oh+dLT)2j`6nn z)q?3LPo_I%Cww3x=4r+sV;A8iaS1Ogq939oPF{C5Sy5f$kh@P{r0!ZS>GLs~K)3IgGHN#BS+J`DxJ z={5*&%pca=&@Z3<;wHR_Sy}7?Qqe(u`zbt!9;*iKy*GMU_*)sQ!ut&2o}O=``4MiL z5fmeM=y)8^WLGQH2_OT|3|^loivxQ1(yMSbkOR0MW*s=@z-0#s=u@V?Md|~hUYQ-F zs4ssG(${A?2d#Mx8a@Gj1`Yxxs7Ny86ZRzyt}bpppaCEmHUWHly2-zTX{p*#X=QtN z6=6DCXPbKKRGWN_jf~_gZi)NyWg2~yuZq!d`KlS-xqXIhC!INkB zuXx@Uy>d!elA*#fOikn~W6pWVSJ!Bwe5H-<$(L)Xwa8c1=$%T5lTx#Dg*LK2^n49W zyH!|q>t!#jo~8M&!djTtqTD(3QEDLyEo*J_dP`F3z~JZQEy9^jfMA$G@FdUc#tS9bS;630w zpg3U%aqHq%1iAq&0nNL22p6EUg$wAsR{=U3x(oPpJ2V4t0>6;HkEKhJcEDHF8$w*+1Ot%$S#EkW*U|3bs(|3JluL8sap!Aa2Er?w@Y?2^$OnP&Dki)Z?~lwy1K~6&9(R7U zIS{UK6>a5@ejpHDO~Ky$Xh|SE--NsKBmdmFzdtsW+nfI21$yAF#pvhg8|MR2<6&}~ zersGE1fH{i*T}z=_F0`~QHsW6L(@p>6j&nPN=qli6Zm>tLs&zf!&laa`OK_dmd=`w z8dtG?wfyi%ny}T+D5edc#ztVLM}3G|+)Qh(dEbzqIhw5zm!X+cM6!@NDcdb?lj(m{ z@=Qx7s$FWNBl0!0T0#vK=a9sDjt*?%;DC-te9UoyA1s}rwyn>>dk*8nYVs@uE(Wdx z&IP19(yP+|;gn8FZ=@sA2g&{tgj)kllAmNNc}ezVnAA5QyasM;0euuOj&dGm9J-Y8 zZxQ3j&A=n1(fLT7zI+OJ9k`nCDJ!t?0M{mwNB3h)BhM84(}3;#p3Uz~xHECnaCKf% zt4}&bAG?b_coAd4{k-!5Z2+w`O#sdZ8UZzc{y;m@)&!~mS~bW9>I0dA47Rl(9G$2c z3dmN3?0Dz|xz73MT+>#RSm$fc2RZ{fxvo>jItiuq@eA5%qj6R%)dnWKX{ubb=LB7?1?r*7wyB-*DAGQI33xTS@ zCqP}GDbN<^3cL+m2`mHV01p6{0P}#yfbGDGz&F6JfQ6nF2h#D!kjJ^((L2ho2|qSb z=I96MTh`DvR?`OX&jcQM06yY=gS!McAE?Uj=Wr(jbAWe%3J;@ez*`%c&kxgTzyZEn1|DDpa6K>?7vQ*`gT_B4*Eyn#+i)$wCmS^{Wp;JM*14uS8-oi$9QuM zedhxDH~NOlfFZR1vh?ro(I5A-G`C^hfpFRPlRZIM_tUC@)*`fGptUuvyXkFT>tMT{ zW}fjBa{|iv3;2?9uA+ZmMZcCtfAc8*?LdFZs7dQkCK!+?D$V$!kG1oqotQ_dn zv~0%60!U9lmLbjpWRpP_PNoC0=+Fiz0Ce*AU_P_}Zvj()>w$&95aK!lRe{y~o{GB= z*oHq1+_DBFI~yMYUjwfLvQMD1_e=51mX2&2$X?5tfNYU;0BQqI13K$o2^!9Ol(7XF zYVFX1r{4p*XKozOc#^xer}e-(;7uUcR?G`(XSws?ADC_~18xUow?Zf4XW^IK1)Y+9 zt2px%peN~NU7-lS>=npbi7eRYeE4o)6L2}{ZQ{SnhGyK+{FWUCol$=RSN4SN!@V77 z39hsG{RMuTyp@68fNV(ZBJ6bX9}7H3nqI&>{8s|ofro(6fGowxij=I%$TG-a%IyNw z1AYciHtwZ>?0lRD&$r{3RirzC*8F}8x3^?Lc{52f4k!oSk0|d`@?VXP?JkR+mZSd% zs+6Zq;BEru11|tgfi4wjQ@Fk2}}p(={ND806*X_Rf(}|BkOI* zTsB<3*#_>djHCR10e@HAs(@@P%hJp;K(?g*xQO{m74#F(`_!Gd1Aw96IvKY=?pWND zaQo7(*4VOGL>zbqoPuukfiFNO;0$0aa5*p=(CrWlaJK@h@t+L5h5uvVIQ%1kefa0% zz6tyQ=;jpJ=>HTrM4T-8UI~;2Y5-e+OMxyxbKpC`7iowbg=^UU-29MPZ!W8fd8xy!jo0# zJ-YOt^+DQJssH`;!C|EtTXX3{fmOgl;9X!2a077{1K;3(0=PYgc>+T?qA|CmJk zT|_?(oN@-Q z@oyXij{x1~R|2?YJa}yUi5(f1n@!tAQ!_H{gB_tib;gP-ZIf0sg?BPreg?iNIpu8DKnd3xGeN z>lxgg)0kfYKjN=^1#2eIJ|5_fzut8Edte;?`M|aK9|NAo{{v8oeBFStz@5N?v*~Zo zf#0|<;jSLeSOs*)zw2D)2e`w}11J6*{5RrG!YxnOi=?ZM|3Sj;!tF`eG5CKYd>rnX zgdM=ujbVkvHN?M}xUX<^Q=D$xn1=f}uI%;S48-tfj%F;zeFFEIQM@A({xohM!pYch3PesoTsE@D*2f_;qv3 ze!@?}J(I8(ao6*^IR26Nuf+WWHwNf74c!~li?By=C*ppAyC2@Q$G;4JlOdEhl=<2q z=9a)z^t|K*bcgU$ft5g)v#0}UbjM8&{vNmsfX4V=CtP>h9KzKdel-Y_9dq64xgS^e zdz=WI2k7>Udw@M>B2SdNB`!enX+_8l1 zBYrOKg@lzO?0DR7`Mrhk82$(G>vkyJg0dA?_m!SWm~Lp9jysUBL%8j6-@(;gW4br2 zAO5$9md@CCT$5>|n*zPOdh{|tEc z3yCBWk?(Ie7lkWM%I^(E{h{67J$@E=E>JYY>b%BHO4-I+V%{tgVq-=in*I6yJV z*G&>n11$-!Lf9q12f%5>bp}QQx*@F+@soie#BBv?5`HD&9|OAir3qm-0Q&&lmQl6` zb9~@$V9&9%Tioq{?iTri^gRiC0N8+EH%(j$yhA?S=XL?sFvV{!hB_e%h7(6zECVJV5uPY$ROw%8dthQf3M2 z@F)J7xVrU5w>s%w%il?N8sX~!-F31OunB*G@Y;mU1U>^cb!My}Y(6jx|2|+C{+6Vl zM|$09a~ffzaGwTh<6j58uab8e{t~2}3XI49F3<~q3uq}r{u!kI5a>vFPuxdJiZ*p0Fmn^~f(KL3@)J5Pk5a0<-jt+k0sC3#N`vd4(LbtX@u_sWSqMt zpnH=GTfj>|w?gZ7KHc#618JuamP?rK5_=cWt*J56=McUWXhWRtRMf3MZ;)O$()|Kl z%x~SMf(0RK^f>ec{+ekD$~Z+%1D znZ#`-ycXf}fz`wvPux!8suQPsk3Irw5q=$Eqj7Z~fQtBezoqTp8|bt(aEhqGs4ya7XderMt6A~LwphWrV{@ndOMxCew5h* zI0r~4&H2D$(hVlfUf^`n=$4f`fd{~|l6c(9+Ew z_@4pJ#jl(3bi3C_fbQ|rCd?awI{1G9=MwTyhK43UKl11{(i_Pa!@V2mihm|?y2qym z`PKm^lJ`@>N8^vWg9p;qF?ZQRtNe4%2>&Japgm#F z0tv!;1AhX#2RD;GSa*MZO`5vIp9ky*+7dSdc!}@?zk33&1G+zH2yj1nHW2qHVY-R& zHry4s3((hlfm?~ch4_02-$3|fxbtwoyoj-#I_Zw4x?8%$|yy=>b-DfP>@l5=f z>X+a2^^ep4EMN5Lr7PnX@0q^k@0aEe_~^6shqm|6_~wQ32kLw>X3O^vZavWH$<2S{ z9vD*p@}D<6@a4%1`yMJP`n$=?MMcLHeOYv{=$Rs(tq12#-E+ksTMrf$P5b%jq8~pd zV%ql)U%I5-)X9IXnqTy6+oA?1A6oMF_Z=4$EoyS;^KYKq^xm|aem*d5(~dujmLGHJ zfl<|Z4H?#M=hXeD*Z$+xvG?Ep`&B>pK4;&@)nBSqq0ff+Q(vBTQm31)eyIB8MfDy^ z9BQ)g%} z%MJEW-FABU%iAvAJMWVrz5aap)xkf_>(stU zu|pMK`Qo-uyM5Ak+wV^gnOF4sw?&DUFIhL_yH4W|wtcne<)uA)?i%0nvWoj3xwfd& zq}iWW{;H_xr$4f?my9WT=FpN_MZJFhduab56NZld?S^Sfrp=%B^YefIacJvbWB+<> z&+k?L8uZbRiw{+8`t`9t4m-5#A>4( z9IALjQR_c`8nyZEJV`hCjq|?Md&O5ZH$^N0Q96Dk0(&ZO9-nsZcca_nt!ck>bj|d{qziw_ zy{*lim+kzi+N!qmGw-bVWqeN68lTSXes1=_-+sy;-K)-db9y$e_xHP3w$1o{d7C>2 z6&$F0b?Yjpm3;2yd3Rp%&4u?4oq5ONyT^~M@_13=qN!6RptCCh_sO6$kuQhQ-?FXz zocw%tbz<_@JkuGvt+?wC{GUS#J&x6RI$3FZ{MWtI^n5VTDd&SJo{7(WNX0Azpi#Nc zKQR*C*^B(&a+1oYCSEQ7I|Oxx5!30*&EJ0`qYV@P7atCX{x=B7h%cp@hou=xcjx5L zenGe{yUoFc~b1CNKlcQtu?o-IF z@k;EoZWAc8jn$;T+r)f)USiI1(q?9O&Cd(;)0E`58c<&rdW2S9l$T zMeASd^5ugc=Y%*s=kj?o#ebq z(}mh3I9&fr3R&rZxz=ct^Qz9}JpIx8R9O5Dk1p-wQoJ6~SPoDmnAfH}8KAYOe zIMTbF!|^}v$y?t_)K~bprL~e`7X3^cYF8XNCO92YiE|Mx3A-r;JtaJP^ldtHM_}DLrHa~wFsagWJMCi5N)5CB-<<(o?1H$6VdOEa%dZ*G|S(*=vD}de_ zDP&O$SuBj8_iV#+{_`Hc&#jKuRAx-8MtvWRplN9Y?sLHztgFw*I5@>g?O_PU`*M&G zG4(BaKM#xVYIylfq6_>`yfohZ-!ZPn|VYs)OI(3d+LJj;jtjefwR_)y0)u#W=q6O!f5m9}tz5|8f zD`WI&RGRjagvHC!q|4YJuebWr1 z>jba=*P2RLd>6x~c?qrehQ+Vw%0tX+EJnJHdFLh8BkRt*k*Q_>&EPzKm#dEDspGIOg%^mo^g7 zNUgQEV7WeB+YIlroO?+VtlyEjo@yxVDzKVxnpS&{f_QxTn|t(Yf3f2AxMk>n>8x~T z?Ak3U=-BGfp>_5kexJ^Do(x}4A){lE(c~1o%Yk?Lt{R3n*T`k1v3^k8qgk|T9xu9G z>TNKHk5%D=YaX{HCoz7U5sveCPhYhL8dl~OQ&-m4Qt(n{k`j!?T008Pr}R!Inp~>X z-V3c#EC7Y||C-n6dq-ILk9xekIR(FRsqIH8Xn)e9{Uz`VxBnc`w>UgvO)o{=WYkr4 z(|7AI+Ddut2+}+Yb;Drf;I}@f1AO>F_E8+5 zc_)m#>zi+UVfi01{C+y2{gJ_Vzt3uC_|?+vdkn_AWv~uz;@$5UVewCRJV~cfrs9eA z;DqHp&eJ9B0SSxOXrXs~-My^$S9kO<>@fck%!7R=`X$?FO;vu^0W|YNLFpY-1HK>t zEY#Ci@U;tQWxbI?PGymk_Lv6g@p&byaB8>u78H#4d9~5-BFi}|LiakP(19-KfX?Fj zZB{r{t^>8jDYF!Gw*vHyIIQe7Uc1sB)?mC(yG+lC_VE$4>04AVuV1gnO}*Z@P7h+zFc)EkphS6{e6h+6rN>dm*sSz4As$p{QlNm!E4AphSBlblO4t*T?LS^R@vI~ z5Ej4MlYhpY;eBIybVp|h!}8XkovWqyh@h<|e9^bpu>6mCeb@YmHX-{1!MuKZvduZ* z0&7wVz3hfwo}5INKR*ypwOZs{cr`muh!nV6*iiV z$ST9ue(bQa)4X~;m7=ZmL{{2E6PEW;uU^{w78bwC(?jj~4vUX_WnYnkr)lu?Uh0h+ zoA#-?<@4v@Ca85bR_L^1l+G_1yw!@4-gU~FFGhN=txYdb02W;UbL87fb2Im9!?&V# z*60*GuL~ZX#Zen~dpWnQt8Dkq9$5~}#oA6gO1QAG?5>q|Gw6kd!BePib{|ir%(G zQA0woFi5}Oj?3G$mpzO>-MzN(Rtni1hir5%DlBhZuZ`_*!X~pXa>Y(g8RkJGE+T$3Of2F4G>KOU9vUY(# zte=!TWM?9n*OiIt@6xTk=wb1)-=%(5=iwEvCn!(b$a5SQtfVemd)mTq7x#4O^@zOM zFB_Kkeos$IT@_xgzNZ~b!OP>}<=d3$*GF~o=fpCZUWxuewmHJeE#~n{=MKZ-Ya3ax zM=YsMe!md|_v{qBwhga4avQR%CvHm;b?&2?iOoDBjlM$r9K*_g#PGDEIp?dkE?KE; z;gTMx=gFiFrO>rp{DszU>Dp5qhU-4V<19zEAj9Hyt%-DA_7N1XC#V~&2J`pCn$oAc zGE!XdIRQE7>}DA5S{@(of>&WWE%`2wh?8B%AYQ+%G^TGTL(i*oh{1T5ZoP}Sb<+Or zu=smDz0-Nqu=tuD-32M?d?Iz$-q5hTYmDr6CVIoqusUnaQ)h+3^7i(|hm8?D*-f3p z@JfcKQ>NZS{dR!YJhH{73*Q{ZDP3`+eS2Z$clC10Hk#kZ`MO6I!gA?LJMe!8V}CQ4 z#!aWyo~n%5u8l{X_5xR-nUy4q{!emnNvVpcwX>^D!LnXgxPkEJ-qs8yuQ3LkVhV%z5Ze4rWt*+t#T2# z&!^6*bWvw(!|--9?e-C?aYTJ8N0iwe9SAG44LqtAk*`HWc{(>0M(a{fwlyR0E=nQO zKFIXC6uf=N8w&~|@a|lFG)=zT5~dwBv}A)KjAmV@Dt&1bfxCYM4^K}Kr#4U+fm1fH zg7odl)Kz%>M{g8*+?^BUtRWFJ={#tVCSN|kdGD68zZQ)5 z>l^cEzAl2U$w@L$UY{KTbtI&W+$nmn0ecv=uip?r5DKkym#Q99=JWPq8j;)}L(J1>=2w%AR&U^LW`& z2*&$mck$Yb&I*Uc|77Hq!>4W3|LzfP_V^H#N z!FXRD3v74oWhT0yc>nR&1xg^VQUuEGU|9ZiZ$6~6kYVvFJ-*jPU&8u?d~n+X-8j({ zeEOo_vbh+<>&wLQcrN>x!FiVY3}HFOaK8<0YhU_`2)^AC(FSC{DTrG<5pM1FO_()Z z_pEr3KA*4iJ-+H5jbOY_f12T26>EM(`CljLg7WIo?i<-53F7t3?QGgthTR^%Nf(pf zwPWOs(LNpCUmf&uZ3J(=_jJk>%74C2xV!a`TjOvV?l&^ea+XHa?WYuS>v&jhzo&1G zplwEqwp!81rj@Y^5XPT7ja;&v8Uw?1t{*ygz^k{fk3MfZc-+)E*)ZH0o~}P1LHB3g zIOF5?d8;eMi!+sF}l7r1AMN$ltIX}ZrVQ??AkXqsp0+bXd=LKd=7cC?{#ElD(X;vO9Tw{Ra_w%Ts6N^&kKHn9jZA(Z+O^I}GuLpCz{-z#P4C;_iUz~Df6W5osn@{Vu`i`XAsSEkzJ;CFdpU*G9 zz0rMEawB-wlDs~CP?`Qh{bf6oS1SsfAxV$`(ZlMNFg)L$D2gcioo?av&Zf-L z)H{qPqDMBf_4VBEC*_J)b&*s(zL_H2YyJJ%D zqYfM>p#HLgUpv4L**^&4^Yw9s*G>*Z@&nmK(u>W5koGU$+T0FQ16Q`f!^+QxTFF=T zZ8Q%0eW~Ojo!^YSiZiqE=Qpy=9i|7hsdruKtuMN@0`)#ELQbC~$w?Zec2L&HDHl1l zw5t9~y>-Wx==R&8_M8bv8&6J>Mg#Etj^2mW|8}oGxH3h18$f%j0S)>#>Fd7M|D^l1 zptKHk*15}?UY*@N+t@2Y9)24aZQ`r=X`9=lB$N79DR?fL{O9O4fX$L5-ubf8yry0f zUwqnhCPM8`wl2czyWG>a5fQk{{R>^|s9RV+p}pA4Q?&bzUc1+QWI=i9ySL=k+Hkil zk}3c?T9u(eW%zRSd1Qk}ceI7+U`^zq+rRW3zeYd@Wm7cB3-M89x>vTgGB)Xh@qXK^ z2Bre*m-Ld|!|R(34&Afn%ULw~I^4>uk80ByOaAHsKFLOESY2A0y11uKWCtpY*4w;xv^+&SI-PcO?7#3qc3;DA zmp1(Y-}|9Y@&4oU(Vu7QZoe?Ss7`%rQr|k%H$PC{*CY5kD;qTzJA>Ch?1rz-5Y;x6B@~LMv>Q~$7e^b6rwE=yd@AEs;Wz#ndPp&859Vv8YAi6V*I!ibG$GwkU zV}*J=#LgvllY+30F=t+Nzb@21Pv zau^Mr4^znU3}h)AG{Lg`{Pc>+-iF~Sf^6}>=Im$(?FZ~D}`}XmB2od&bfD#ZNuiK;4<)aV3dco1z|~ybATuT71PoJ-$zB zZ@wNhHoR+UJ&k?`>*>=`Kv}US;XGYzbTrGkJB5y^rs7khh@)1|x!+3CLJFg>e?d@3WKYRIQTKtASP zNN94~ll#APMYp=9dHr#Xi1K7VF08I+8$M+@J0kg=7mSvtL#yR(Q%j2Ro>@P z^k2W4?@uKY8zN}Y{Z0Pd!)?p%m&zPy$cBaMFWI!i)ZNhr+r=+qsg!lUPi-suFSYcoc7$%OH~JiM=n4p#+_ z_L}>BrED37(KXDY`Y#Q$ml3` zF)7oRn{XtLqq~!MrF!X6dwM-0u62{}au=DlGb$#VltH?Dz0NXv*UH>s6O8xuw!WuN zx`QK(S6Uq}53ef2t15em>S3%hnLn_5R+0;wor|yncZR;QAXD#ceNPg8ab|=H= zPME$e%a%>xu=t-ndFZaCAf0aCpf*^G@4wQaTE^CM7>+rfj_PjWFy6SQOq#+K+2T5) zM}=M=Bf0AFb-?|8;@Te#EAK2*UiFyn8VZZA=gCTUCi-=9@w>^gYka;A3fbjK#$`6$Cr~o=aoI>u>1?X@k+Mu{rr9# zkbW0W0(_E<^DsJR8-2=h?u?)# z=U;fBJ4M29A7f;Io$Cl)I4P+e`0K`QJ7{X%6+xHoFbU&9DR@vC9+Za%d`D}Daa zCfxOwx`*4ua{E&BA&lqQ@Lcz|h1IjRk>xwaHgH({P{ZS{PNje0qwduX%iq!CW7@cI z+B7cc9)hsE>820F=4b>Tbq`D!A9LVbE_^HpAF~5|yapag2mQxCSFdj}*_5Y~V!97D ztpBNVnAcg>H`F(X$6rHBSWOs9s`G!ob!~(^WN$yL&et1$H;UK(7k)2Ao?)`q``HgE zWYNKs#f=ek={|U!ukrf|xxA{to3e1HDf1HPq{f676Xz%Czn@3nRGKjEGyzwTM!&CA z{!$V8Fv`R0_Zfb_SKIKvk#&DW-DPh+jIRs4K5cG9-OasSA$2cFjdP&6q^CzsNmC($ z{=eaWu-<+>q%UnEcv2$?r_V3VGi7%^tX{RezIaj!p4IYrc2`8bb!S8v?(2*$a$f>8 zi*}zLxtgbzfG^qbMe>yW@h}``8XQ?py`;MNJW>1a62X%v*0^{{W*%S1w0@!0k{$mN ze?<~sRIbJ_S-&L8T2KCij(A>OIMS zbh=khp6P*P8KW6}R|9kBK#;GZ&!xX4{4Z&}m_)zNSB=55lIrf~t>Ni}?)(el_IcCZ z^b;Me_abngLjBe6Dvx9$Zi=79sd;hgkYV&f-%RvXx23f%f|tuu=+1o8W^H4KJ)BPW zU9n>XpLNGcSl(-mULJ5hN~+@#`8Tkhh@e?_)CBSRyp7XV)n4a$yoV*`ak-;+F3tY( ztglj*TWHlvl8cYKn2}3WYhenxRyQ(eWIYu@_b}uZq}!KyG3e4hq3WjQ8u6X6l_`>%N$< z_&ZHMQ91EPM7=+csCRY*&0j_2yEX;C5{6$fbN_jeUcbJ1UVXodzo2rD!)*jUE+Pi>OR(jM{&q>k|Uyf-;N8CHc!sm%sWT|i+x9^}dJn27r7-ng*5 zS9^JXO~L2NhR?OE%@K4}i>Qz8j1A+Z>;%fjg{)kNm%2YNjK0S`{W&h8ZmlDDeK1A6 zDtYxfDFUzVfeoW+qoJv{t^1~f@zPthnTiH?GpiAN3C8_!!X=e zdAc|>fd$uW*Dy?Gdh)JpB6#)$4Pj78Hpy{B^HMF3{M6lBKSNqA}$Xm zgz-V+_xVgV*;=jNs2X5%ts^o?&>e^klNnlc%pARNg#kaG+6A-Tl6$tf_mU zby|u#edX!k9_kd7jbDb^#uM;Odno;|60A(9UFj5tT88eq(LQ3`rXySHvIy3m7~Sz0 zR-Ze(K4eS;FQ!KD@XH8VTPN{BG>g_Uh7V2iXGP#0o`OeTdOUJ4=B|FgfBdy&*Ctv6 z_GPy*_t=KjdA+9_QzGh|4t}k<_;~$tT&R@MxoFIi64BwqMB zQQGjLs`VmrRen7#pL_|s`xtMD;MG+T_0WBUVRQ}j^mt+lKJWGTtUH0j@~`uFxG;jQ zr4eyAM$oK#>%+=yYx)K5985v;7aq-t@u}O-iU^ukM#P=eBDbM z#)I1okIsxu^knPjNnStHozP+Vry1GqOw@!YT|FCtw|M37{xaRnt961+GqgPF(-dfCy&8e*t%x|? zBOFHKtwxq(<0mE6&)3WHe1&*F0`GIkL3s5@R_>qHF5GqRzDam}c}n*_j=$=v{r&hF=WL}7d63mKa%k!^Dx(cjAN&Gk> z--hPS`efYdW2YMVotyq$1l{kX;MX3*uX_^C+9-aNG52|gm3^}(W8K#s7XOIHm;Dj6 zbxq=#-yGg-y4HAfWhLQ0!tXlPU(lSHczvjP3*JE! ziA1r4?hF^t-?KIk*VkNbUQTpQ=r(Bi``CkHx;ztrNwWHKO3Jp;{PG;J>aV< z*0u3jC414k^b&f9BoKN_g+LlRg(9#Mk^q5(KoXjQ3MvYUy;m&Qdv73!9{Umd5es&% zU_}wT-}B7O+Ix0L&bjyg|KIP+o7rpDGrhg@&O5W#Qm)zFMvvb!r|X;IG;5=^**eSO zmzx;l({=(rT|wLTA|XTBs+@$y$`SHTggxz)nzY<02X z?E7ZucJd zUiW_Y0rx?dUqxU}Ztz|$Re4YM)_G4)Qub@@E1jnoC?7`xXG2(S1;1Z_z62cv{TJwY z>v`)1(3{Si&R}=2%dey}&OR2;bntvcjN8mjbSJu#K$9h1n5t56oYfA$K2QG@)=8Pl zcD0kD^L2qYWD&Ij_@2Et&kK2Hdx<)47uri5J|D)`_|snLbf2!mp6qnjv0U!(+;=~? zKjb{*JPdjS^eE^t(Bq(H$X9bv3s6f?D^P3Dco1vu8d-POyZ>}wbN9KgyKlH}x(EBJ zbjsyd5t;98-Z}jhcAtE!EBnv`-b3Ca9>1T?yx%K!3Co`4@S8cz?_PV8!*}h{ez$k8 zmp)b5`#EPh=`&PZu%RC?^m~C10tW)FmtL$~I(oyk|Gv&lfb8eLxCd! z%Nyto^2Q`8-_;hs49|Ryx5wltTdg|=q1Zd$4SW_j9QZL{d)8!?ha2r`hu;}zh)Vm% zg(?rjy?8IvEBAgZRef`s7xYf{K7itj{^nUbvXyP0a~>)@0PI@P)&9($>OAlCaQXdq zmbJqA*y4E_y2rRElH15_?2dEKTcq6Qc;|Y2&pUfrQ>&@f4AdOd0@Mc77Ss-O0_bwx z53aT^cZzh2U*%*Vb*6NInB!(FQF&VCjUT5<+s;n1Kd^T?C%F9TI&(hX9?0=*a5A9x=v@?qeoz|p|Zfn%UwK)(n62>clcfOjR5o*=O5dIBD+f?uRbdyiBW|v);K4{EDT2 zPkuq3=sN3k`+nUk?y|3Nu0o%oj{^a&?dih}+!H8Stk7aF6FrV-HB#qkN%|daQCGq| zJAo~My8{K_vBZB5@LQ%V+xNn?x>@@y>h*%S|1svyz*m7E(2H%)@mw#)YvwigT6itJ zR$gnbjn~EN>UHzFdp*2Zucw#pP4%XE8Qyen2Kr}~m+j@CmRZlNY1TDsoAu2aKhaz0 zm3XDzB5$#`1ig8wx6G^XD!t{X+ZEnQuNu7XB=qa`-Uja!?^N$J@bOKO&i1x=TfKA8 zKeu`3c^+z>rMTVlFt%8_5%wHsuH&JmiLbEv_DR}4vU$FM<8!o|;Z6t5kW}D4Q>1FE zjn~n82)(v5{9Gq)6gT0k;dh8T#a-YU_lf((1L869ICjRK1P^&y>=t{(bK)Q3CGoO& zMZ79Lvmer9@I>n&J<2N43wVNr={Iq&)!ewR#kU!=ecrLpb$G&w_D0}(*J4c5Z>q;L zvTT!M&Mfyy_d7RdfO2_S^h6F>&RTIQMpjQ9XLqaTIHk>MY&WqJ?TPkUd!7A`{jQzh zjBws}Mz~F;sdN&YbDbs_OGrx04^#%8klgCCz~_N40{;d23Uml`81!}Eo4~h$?*iY0 zegGW-fBH#}ueM%0?*y;C*8#QG$?L2~+CXqT@;uUDZ-_V48|Dr75E0Q7thPnXb0t?`6)oU4=6-Qci5ew7&z$0= zpe-sqo^)Zq8*8Omh0dcGZ48-ZKdMLCDfVgLTVOnpv)%&l+ArQ0ABY3uWATajRLUuo zQNG4b>i6OYaYXzmei6Tl-^B0YFYz}bvnTC70+S#X-t6Z${%F9&m&H|?>N2!?8EvUDPy=v4|JKXKDo{@a{JL`LEmOb0P z+P=oV%f8!w%HC-=avD1wolefnPH(q5M}@xKxx=~BsV-J2boThP7`2%3R~7-!)EK8>_vRF3xn?7b~p2 z_cz8iNB!;SqrY2u&I@DIY7i@y(?$! zpRA+Se0za?gMFiYzx{x{$9~5C)BekD?zC{aIo+LCoxbi)J%ifbX2ig_DScD&rWTUv zwh7!H*j%j2-vu19pSM}}&8-;Emv~ir?5wrdPF1-X7? zT8F35$Un!pS#CBcN776;2+EUG=+1KAMLV&^UU9ag$Iw=3ZO5iHZ5LQubYI$_d9RhK=gC=CDnd5`zS%n4`r0mcE_beQu5_+)QjwoNzz;YF zoXR#XqVk3!md-#y@d<{oqpyQ!rr{mGC! zs=cAQ4wibObT92;jnd`VZ1q4nSfcILe-$fRtjALy#3ooj=z5KJ&T)P~%TRLvB5)A% z+oBwequPRUTV8s`+v1-3dwjwWA^SV{uShTnc*E=DL{Am?9V|6d8v27i1rDKDOF@`rC8-0DFCg@l+FI*&TC>Zrxj~N1PT|jqP*K*S+Co z=X^*LY~AgF-GQ6E>3Reo4&>=NJfzSSddvGuJk{rS$fy4Q1M$Q9u+ zJ=Yaj{DK;D_OgAp!#6lFKfl_?vXrgdy&bJU?Bl=#0~N=64>L?ZRyHEV#j|;3;o{r@W6rK}W!0j#+jW_GH3dg&<+O9!WB%&`&KB$Rb^1GlouN)VB*)RtI49ZJ?R0ecr6|_J9o}Tr zBYV`P)}4+64aaltZQ$d%4E(2W-x&m~yls2!iuLWHPxpF&3W@{8gAza^KzWk#9a4d$Lg;4;omrA*JES?1=0aC6*EvzrJcl%2 z(gKH6A*s?KEtgc~kXA~nc1SgnY8}#QNoyR^T1o35bFFhumb4zao%PNJNvAlZ(`?vT!uv>7_Z&Co-V&X%;*A)O=XT&&~Ib+$>mTuM%qohUtB<-7!X8T2aXHPAlL z>mcfd-v+${dKdH_Xg}zEP%pQa+Z)su)E_heG!R5R@=(w)&~Q*ZC;>DA)GyF4FcdTz zGzpXjdNA-1r0qunj|ScWy$gCzYU=hwQ%7ChhtQxN2z(6s6!aPBbE$jyBJic8gOH{U z8X5@dAgG0)9^yM_AgF`*5&AxA{31HPUjwAyB>f@ve}4x424M+AMoz{84Hk7+F&_UK zftrAtf|^UM7WG=xY_)=Jt2MM+ZLnUUj)Phb>N%+Cpsu4MRxzER@8}He7xiD%fKdn5 z16r_H=)rnI<4B!jAFnT{KWG5R*Dwr`IuU9`s23UT#Yu{XPB$JJ66#1sdZR$2LDV@Y zt;6`R-eD5-kCVK~l6?I`s+a1efzqWWVk&fS)WT5@M@<}can#0TL#sl)%1kd0ln-i1 zGdEvqLl<~OpkmNMsjDl2u8!I|>g%Ynqt1?6yJgVYQEx}h9d&oq-cf&79oA>8@z!{2 zLF=SW?btAs1tH ze+g)>mNPH5_Ks6B%0TZL!7;Ww!$UA}8?a~@u( zB)}nP8@2>nAp>Q8xKzcO=3O^U*^-^bkcYYcz1h0i+5x%+bSvmK(CwhbdhJtWFV@oW zwSgA{cX}&yUS^|AEA*=NG;dBn74NlTj+UOk4)oHi@+HtH_tGUi-Rd<-2rOE}1&{za zXK=ot7K8Hy*QuNzI5%)!pk{;f!5+whoCi1ukpGkSlkbz~Q$x5Pvf&5VA2{k1xR1Nv zxV<3tBSZhc?$z`vQYCEcwL=M5;}>AP*A8n4t_z-Yo^p0N_d*t@%S>y&^O#;gon}1- z`JU(}fo9%g#VVHW-eY<-w9eb8S3m3Qjd}%jyS>)gs8?No1(s_0|A<(s*9@g@jh5e& zY@XTbir8BP?u8zZ`!=6R9Vqpm)Ojk6r@z1OOF(G|6QIc)1O4_Uuck!hDAAjzS7moW zuKf!dvUz&7afQ`aOU}1=EwDmid0!Td?0HTHo!^`68i!}$DP2Ds(_yi)E$}*EF+psz z_c3}P>tHH$;xFpHa-(<=wMXwjRO`+f~>-tJMAL zo4{&4R=V1JKN;f@n8ElCI@Si- zJwxuziYI`xx`ZEUqvc(Tki&F+ZdWVY1C)N*?EvnZkVEK`*C}NvsI7rE!M@F zca+-eu_|ZkUx@Wu8#WtKb{baGL?>Bkx_xi39&nntSGcdZ!_X3Rd&e18q-;$*9;+nw zH(zrpTX!*Je4%^HI!EZX?dg3rUir+okMvdA&I(Z}R)`Jaba4iF<~DJj_|-Y0+u<+q zzV@GIzmHmEo0q$_?kVogy8aege7>6a7_5*AoNZ`f=HwM?+f-#6>|8cO+0Jn;L;JLZ z>kj7==Tm5XzHq*T-scGp%^bK@X!#2Ijv!%sr0g9n~J6WMhh}+_mm{&^hQ!S3tXQJ@(}8fF|i-_Yr84 zz6J-6fv=kbHwT^#-0t1(@oS%qyM=XBbN3yA=K}Y5AL;sCjv?2CK z>8k#FK-RktXh*pBm1`TWYq+N2dWLHmu4ATPk8~7P;A61{ACG#-!byQI-1~Izn(ExA z=Z{U^mAapNDHiI{xmzr(Q0ZUj@m=xEe-A6xO0?%guFco}KNb19U(Lb_E??)fqn(d> zVU7LhW8eM&E9w@|*LSh{Va@pqYMtfJ^B&Z; zT<@CxD&G6B=C|$H&NaFv)_P?awdfK;?dNhAiX7PAfBIeSIdNCl-`AyN7QOq#on9q( zsl6ud+DtKaY1EF)zuR@8^l`r2QBwOYH+b2acdc}?(YsiO>|3gjXY1bg6nNgV4!=Ff z(zdf=2P)euqK%%zR$9O7c8`T@e?3}=z4keg2`;w;b;r9;p@4YSTB0?hv#pg=R8M)- zKH1?ncWwB2%iikD)jcm@^+rD+Isz*Io~oq1J=PQ_fFm)+gOHZncqc4XcNqxF4xqHL4BX#p!GjhGiwIbJvTqAOQ z$h9HI)6Y(!`-JXL);DJY`HhPl%OU37N`vg~KP9h)uM*RhP(WZEZzo3s9phyZri-mp&6a?91$N#NG);6j}d^*_|6@Lzc$H$7m8jdk)=ONbu(P~_=&MZoC{}EL2fBLS z>-p?9>oKPl&Pu)E`p@*9>TYs3gSNTv>GDsr-kYN0dCI;~bFsP5Kb^Bsjnsj1|2Z9N zmrL}hnrm&)Jb8zeu3M>t%_oL9UM50kH^&(cob}imJI2HH-2PQy%ygB~ddJf3*v+y~ z`vLgmd8S9?Nv6jge%Xoj+r>I`qH;~cI{4kdAh~yZ2s{qmMEL97uO)x`MxI+yCs%$6 z_-jyq&FQZ#{q-XEpVbcZ#PIsgKUv|g%lvhizrOOW71snD zEAKh+?vI*71iTOQ=!k>HVF!9kSA@)jcAA!9^*J9m9U_#PDgtBsa-T2Bm<~KSQ}?J-+(o+27D4O12%MDs^9qZzA?HIi zBbMRR&Gn!s!K5{p(ZpWh^wd1G#`^=MVcPS( zdoV@P*35cT_aU4XNLBsbg&y*>B4uw0d8rSi4f_39^wFU#>u;2&88B+%6CitXJX1r! znG>rBbj1K&WjJ+Z3=8yG-m`B}qZW|-^Zk)q?15-)hV{=F7Xl67$+~t=)gP97feiQe z-(n8a0>=VDMlx{nXuRbPBm~!qzJJyg&a{DW0>HpIqOej0VTLtuavba@f`quoz!@L+ z41dAzbq4N9{Fpd~E7vQ2x{W0Mv-la;^9{VQ#E*)jxNahj1W~S)O(o8KDV**z@a7Wd zo)u&f1LrD*C-lC@Z<&F&miTw#J6vZG$CdTgM&jS%{S!h^QuWhif8;Lj*ZAf7$;aDE z{IEETD^DQ!ct?pJ5{GadVZ`4_;$MlcaBYN{knPb{*nDL?xYx7Tw-aJ{RyaRJ#9QLa z39sXNQ&7EEwT-Y(>mu>z#q+qn1iUS-z&Eo0v=lFbFkc#YH;Hq95al%R?h@yop%DLt z(dg%gcw6i`?#8uqo=UeP(v6ik_aO0|Y2Zv3_{N?R-zj$DI@`c|Nu2wYI8|xjy(P{) zO!Pw|UE(K*d&EPyo(uo2aqWh5`%3(N?1$ogI65BS8~aK8LGd82dyROAcMvz@93pst zjwcrJKv)ERD+rRCjtBV0ffDCFEKWWf@euEX53+B^wQ0V}PjAFCSmM`+Yj7O~ye+Q4 zH-bID|MejBXCofsUBvm~GF+$Yc={n8h(*9J0tvB3#{+!haEV_kF2!}85fAb1&?=mR z>m@p#fruww;+w^0T=(dBfNxBY_!hAR*N+T*gv7Ust+=Kd@e@zP8OPIbZC0Sli?2AI zhAABQVi3+u0cUxEZ^R@Hd?^Te6$1wg2fj@1>*pCbSS|1hkPwRve5}MPp*6vbYv2$o z;eR;@gxgadTe+@{8 z;RZfM;z(-ezG_j*9is=K?m`#2Z8Syc!tC`Kw|~1j)6~?_$g8f zI?upoNc>csrN!Kq9pM|qXW(U*MY!Gy{~W(*=s#d-z^8$Pct*zqd?SJaCqegS;OLUT zGC@KdGH|d=;8`HdZU#P6;@N`nwVkc%f$@XY!G8`2=kN?XPvW_P@nsk|h6w!61fhQ# zIJyk*pgiAwx`Cr9faig5KFPq5HQ@Om%$o)dEARr4`sOmn5%W1m;)R0o@msY%4gnPY zXUS8yy$t+BiO&{{kKd>C{m+y59Krbb9Yi0WFY&p8@oh5j1rk3|Fut1&JS6dXg7NX& zLVi3&5}z*^AHP%M`!*24ypnR?fbz|VmB+h4!g!l`c&i79~ z7?kI5g!sY0D<%H9_#D@d4V-*1h$odl!}T2lCm#&TGd*}Z%fMGi{1cua6jvGeN{N3g zKF0MN11BF0%5y@fHv_Mc_($R+T&oP6d@v|J1PL+Mz{v-L&}@Ey>tq98EpeVl5+csP z*GQaam7v)*@U;@>IVK_UQU89ut&_O=J|lIEK2ClY#5+JJk2ErH^1C2b742~S4ot=O zzd_=B-jRK?9n1+Z?O{5=K%$~_LkUDcO5hBS9X=cKnEJLcMlME(EzpB7>)Ut&!p3ZF zW6f`4mbUTb4I4SJ@nstu=Q3@4UChRp<7~+AHs0G{<9(ktG<7z1CT%esCJrVZCIMyy z%t)9-7{1SEG|U*7u`uIc#=}g2nFuopW-`nam?W5Fm=u^)m~@z_Fw}fGLET1v49F4$NGb6Jh4VEPx5Y6u~TnDS;^!2T#D-u08fH zV2WY3z}yG(0ZgL~(EGvUzzjvD^EzB#Kd{2hk< z7j6C%X1e?Kn2wRSPB84mO*f{~8JKTI!k(>-@7KTnJDh&}IR0y&lJ z`ea=ezGzlp}y5Trm~?};Hg?t_A-6jVsAJsI+t2w46(`5Z`*=QU-&2D zF*?KHKh>fBzHz|4Ob-Sc=oJ_F!%EIZCE73o`ExowrLR zPpAL)s11pl-u`1k&m2kE$!TWMW&$Pc5Jd@8{&V@wH^*_;X z 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%0D(6gCyK>?5sueXqnc&nY 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 BV|V}n literal 0 HcmV?d00001 diff --git a/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.opensdf b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.opensdf new file mode 100644 index 0000000000000000000000000000000000000000..cdfe0d51c461f46c4d9794132cbb050a8794f64b GIT binary patch literal 30 bcmc~}FaknjAZB0)VsK?}VF+MwhKm6JIJg6E literal 0 HcmV?d00001 diff --git a/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.sdf b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.sdf new file mode 100644 index 0000000000000000000000000000000000000000..f232243fc35c0255cfee7b01a03e65d1da13ccf0 GIT binary patch literal 1265664 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

7f3UCn~!bkXt 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𝔎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 literal 0 HcmV?d00001 diff --git a/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.sln b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.sln new file mode 100644 index 0000000..520f84d --- /dev/null +++ b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C++ Express 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bsr_trunk", "bsr_trunk.vcxproj", "{9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.Build.0 = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.ActiveCfg = Release|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.sln.old b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.sln.old new file mode 100644 index 0000000..2881d87 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.sln.old @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bsr_trunk", "bsr_trunk.vcproj", "{9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.Build.0 = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.ActiveCfg = Release|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.suo b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.suo new file mode 100644 index 0000000000000000000000000000000000000000..91c0497e2cbcc37c75680bc272a9e1c84518b232 GIT binary patch literal 85504 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 Mso9Vf```BeKZ&jC?f?J) literal 0 HcmV?d00001 diff --git a/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.suo.old b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.suo.old new file mode 100644 index 0000000000000000000000000000000000000000..63c7d4933d79ca0accc71ed0f4a53a79cefc3493 GIT binary patch literal 45056 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 literal 0 HcmV?d00001 diff --git a/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcproj b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcproj new file mode 100644 index 0000000..1a6531b --- /dev/null +++ b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcproj @@ -0,0 +1,594 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcproj.NCL.N2232.user b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcproj.NCL.N2232.user new file mode 100644 index 0000000..257e4e7 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcproj.NCL.N2232.user @@ -0,0 +1,65 @@ + + + + + + + + + + + diff --git a/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcxproj b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcxproj new file mode 100644 index 0000000..a4fc5a6 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcxproj @@ -0,0 +1,162 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2} + bsr_trunk + arr_trunk + + + + Application + MultiByte + true + + + Application + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + nmake -f yav_mcu_bsr.mak + + + + $(NMakePreprocessorDefinitions) + $(NMakeIncludeSearchPath) + $(NMakeForcedIncludes) + $(NMakeAssemblySearchPath) + $(NMakeForcedUsingAssemblies) + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r;$(IncludePath) + + + + MaxSpeed + true + MultiThreadedDLL + true + Level3 + ProgramDatabase + + + true + true + true + MachineX86 + + + + + _MBCS;%(PreprocessorDefinitions); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcxproj.filters b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcxproj.filters new file mode 100644 index 0000000..d168232 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcxproj.filters @@ -0,0 +1,258 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + {4e2142a2-478d-4e47-ab3f-7ae7d1e531bd} + + + {3bd01c87-17d0-4cf4-93a8-fb6bde3060a4} + + + + + + ソース ファイル\renge + + + ソース ファイル\renge + + + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル\renge + + + ヘッダー ファイル\sim + + + ヘッダー ファイル\sim + + + ソース ファイル + + + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ソース ファイル\renge + + + ソース ファイル\renge + + + ソース ファイル\renge + + + ソース ファイル\renge + + + ヘッダー ファイル\sim + + + ヘッダー ファイル\sim + + + \ No newline at end of file diff --git a/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcxproj.user b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcxproj.user new file mode 100644 index 0000000..695b5c7 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/VCProj/bsr_trunk.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/snake_branches/3.82_trial_seisan/WDT.c b/snake_branches/3.82_trial_seisan/WDT.c new file mode 100644 index 0000000..ed3daf3 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/WDT.c @@ -0,0 +1,12 @@ +/* ======================================================== + wdt + + $Id$ + ======================================================== */ +#include "incs_loader.h" + +/* + + gAwb_Ƀ}N̂݁B + +*/ diff --git a/snake_branches/3.82_trial_seisan/WDT.h b/snake_branches/3.82_trial_seisan/WDT.h new file mode 100644 index 0000000..2e28e9d --- /dev/null +++ b/snake_branches/3.82_trial_seisan/WDT.h @@ -0,0 +1,20 @@ +#ifndef _WDT_ +#define _WDT_ + + + +//========================================================= +#define WDT_RESTART_MAGIC 0xAC + + + +//========================================================= +// EHb`hbO^C}̃X^[g +// void WDT_Restart( void ); +#define WDT_Restart() WDTE = WDT_RESTART_MAGIC + +// KlȊOƗOŃZbg +#define mcu_wdt_reset WDTE = 0x0 + + +#endif diff --git a/snake_branches/3.82_trial_seisan/accero.c b/snake_branches/3.82_trial_seisan/accero.c new file mode 100644 index 0000000..aa584ec --- /dev/null +++ b/snake_branches/3.82_trial_seisan/accero.c @@ -0,0 +1,274 @@ +/* ======================================================== +@xZT֌W +Ef[^XVŃf[^zグ背WX^XVACPUɊ荞 +EtOĂΕJEg +ExZT荞݂^XNo^ĉBiI2C̋Ȃǂ̂Łj + + $Id: accero.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP +#pragma ROT +// rorb, rolb, rorw, rolw +#pragma MUL +#pragma BCD + +#endif + +#ifndef _WIN32 + +#pragma interrupt INTP23 intp23_ACC_ready RB3 // xZTAf[^ + +#endif + +#include "incs.h" +#include "accero.h" +#include "i2c_mcu.h" + + +#ifndef _WIN32 +#include +#endif +// ======================================================== +// WX^ +#define ACC_REG_WHOAMI 0x0F +#define ACC_REG_CTRL1 0x20 +#define ACC_REG_CTRL5 0x24 +#define ACC_REG_X 0x28 + +#define ACC_REG_FLG_BURST_ACCESS 0x80 + +// rbgʒu +#define ACC_bP_PM0 5 +#define ACC_bP_DR0 3 + +// rbgݒl +#define ACC_BITS_PM_PDN 0 +#define ACC_BITS_PM_NORM 1 +#define ACC_BITS_PM_LP0R5 2 +#define ACC_BITS_PM_LP1 3 +#define ACC_BITS_PM_LP2 4 +#define ACC_BITS_PM_LP5 5 +#define ACC_BITS_PM_LP10 6 + +#define ACC_BITS_DR_50Hz 0 +#define ACC_BITS_DR_100Hz 1 +#define ACC_BITS_DR_400Hz 2 +#define ACC_BITS_DR_1000Hz 3 + +#define ACC_BITS_ALL_AXIS_ON 7 + + +#define VREG_BITMASK_ACC_CONF_ACQ ( 1 << 0 ) +#define VREG_BITMASK_ACC_CONF_HOSU ( 1 << 1 ) + + + +// ======================================================== +#define ACC_RAW_DATA_SIZE 6 + + +// ======================================================== +static u8 acc_retry_count; // xZTǂݏoAG[ƂgCB񐔐 + + + +// ======================================================== +task_status tsk_soft_int( ); + + + +/********************************************//** +@E荞݂mFăf[^zグAWX^ɏo܂ + + E{ł΃R[obN֐o^Ă΂ƂȂ̂łA + I2CgpHƂlƎł͂܂łłȂ̂łB + + EvƂł + ***********************************************/ +task_status_immed tski_cbk_accero( ) +{ // i^jisro^܂ + u8 acc_dat_buff[ ACC_RAW_DATA_SIZE ]; + + // xZTf[^WX^ւ̔f + if( iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | ACC_REG_FLG_BURST_ACCESS ), ACC_RAW_DATA_SIZE, acc_dat_buff ) + != ERR_SUCCESS ) + { + // SLA NAK // + if( acc_retry_count < 4 ) + { + acc_retry_count ++; + // gC + return( TSKI_CONTINUE ); + } + else + { + // xZTُɂȂ̂Ŏ~߂ + vreg_stop_acc; + tski_acc_setup(); + vreg_set_acc_error; + return ( TSKI_FINISHED ); // ^XN̍폜͕Kv + } + } + else + { + // 펞pX // + DI_wt_chk(); + memcpy( &vreg_ctr[VREG_C_ACC_XL], acc_dat_buff, ACC_RAW_DATA_SIZE ); + EI(); + + acc_retry_count = 0; + // xXV荞 + if( is_acc_on && ( system_status.pwr_state == ON )) + { + set_irq( VREG_C_IRQ1, REG_BIT_ACC_DAT_RDY ); + // S~f[^̃Jǂ + if( ACC_VALID ) + { + u8 temp[ACC_RAW_DATA_SIZE]; + iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | ACC_REG_FLG_BURST_ACCESS ), ACC_RAW_DATA_SIZE, temp ); + } + } + if( (( system_status.pwr_state == ON )||( system_status.pwr_state == SLEEP )) + &&( is_pedo_on ) + ) + { + pedometer(); // v + } + } + return ( TSKI_FINISHED ); +} + + + + + +/********************************************//** +@xZT߃ANZX@[h + ***********************************************/ +task_status_immed tski_acc_read( ) +{ + vreg_ctr[VREG_C_ACC_W_BUF] = iic_mcu_read_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_R_ADRS] ); + set_irq( VREG_C_IRQ1, REG_BIT_ACC_ACK ); + return ( TSKI_FINISHED ); +} + + + +/********************************************//** +@xZT߃ANZX@Cg + ***********************************************/ +task_status_immed tski_acc_write( ) +{ + iic_mcu_write_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_W_ADRS], vreg_ctr[VREG_C_ACC_W_BUF] ); + set_irq( VREG_C_IRQ1, REG_BIT_ACC_ACK ); + return ( TSKI_FINISHED ); +} + + + +/********************************************//** +@xZT̐ݒ + ***********************************************/ +task_status_immed tski_acc_setup( ) +{ + + // x on/offݒ肷 + u8 str_send_buf[4]; + + str_send_buf[1] = 0x00; // ctrl2 HPF:normal, filterd, HPF for IRQ : dis/dis, HPF coeff:norm + + // sŝ߁ATSƂȊOiHႢjʂĐݒ + if( system_status.model == MODEL_TS_BOARD ) + { + str_send_buf[2] = bits8(0,0,0,0, 0,0,1,0); + } + else + { + str_send_buf[2] = bits8(0,0,0,1, 0,0,0,0); + } + str_send_buf[3] = 0x80; // ctrl3 block update:enable, MSB first, scale: +-2G(default), selftest: dis + + { + u8 acc_setting_sent = ( vreg_ctr[VREG_C_ACC_CONFIG] & ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ )); + + if( acc_setting_sent == 0 ) + { + // S~ + PMK23 = 1; + str_send_buf[0] = + ( ACC_BITS_PM_PDN << ACC_bP_PM0 | 0 << ACC_bP_DR0 | ACC_BITS_ALL_AXIS_ON ); + } + else + { + // on 100Hz 荞 + PMK23 = 0; + str_send_buf[0] = + ( ACC_BITS_PM_NORM << ACC_bP_PM0 + | ACC_BITS_DR_100Hz << ACC_bP_DR0 + | ACC_BITS_ALL_AXIS_ON ); + } + + // ݌AʐMłtOXV + if( iic_mcu_write( IIC_SLA_ACCEL, ( ACC_REG_CTRL1 | ACC_REG_FLG_BURST_ACCESS ), 4, str_send_buf ) == I2C_ERR_NOSLAVE ) + { + // ZTB^XN͍폜ȂĂ͂ȂȂB + vreg_set_acc_error; + return ( TSKI_FINISHED ); + // ܂ + } + // else + + // ZTݒ萬 pX + vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_ACCERO_ERR; + acc_retry_count = 0; + + // ÕS~L΃Jǂ + if( ACC_VALID ) + { + if( system_status.pwr_state == ON ) + { + u8 temp[ACC_RAW_DATA_SIZE]; + iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | ACC_REG_FLG_BURST_ACCESS ), 6, temp ); + } + } + + // ZTɏɂĂŒSoC܂Ă܂Ȃ + DI_wt_chk(); + if( acc_setting_sent != ( vreg_ctr[VREG_C_ACC_CONFIG] & ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ))) + { + // DIԂ̂܂܋A + return ( TSKI_CONTINUE ); // ƊԂčēxɂ // Ƃ悢H + } + } + + // DIԂ̂܂܋A + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + xZT荞 + + I2CgpȂ̂ŁAǂݏo^XN̓o^ŝ + ***********************************************/ +__interrupt void intp23_ACC_ready( ) +{ + EI(); + if( ( vreg_ctr[VREG_C_ACC_CONFIG] & ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ) ) != 0x00 ) + { + // xZT on + if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) ) + { +// if( ACC_VALID ) // mFsv + { + renge_task_immed_add( tski_cbk_accero ); + } + } + } +} diff --git a/snake_branches/3.82_trial_seisan/accero.h b/snake_branches/3.82_trial_seisan/accero.h new file mode 100644 index 0000000..fbf80d6 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/accero.h @@ -0,0 +1,14 @@ +#ifndef _accero_ +#define _accero_ + + +#include "jhl_defs.h" +#include "pedometer.h" + + +/////////////////////////////////////////////////////////// +task_status_immed tski_cbk_accero( ); +task_status_immed tski_acc_setup( ); + + +#endif diff --git a/snake_branches/3.82_trial_seisan/adc.c b/snake_branches/3.82_trial_seisan/adc.c new file mode 100644 index 0000000..94920c7 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/adc.c @@ -0,0 +1,475 @@ +/* ======================================================== + adc.c + + cJZ + nintendo + '09 Apr + $Id$ + ======================================================== */ +#include "incs.h" +#include "adc.h" +#include "pm.h" + +#include "led.h" + +#include "vreg_twl.h" +#include "i2c_mcu.h" + + +// ===================================================== // +static bit adc_updated; +static bit vol_changed_by_ctr; +bit vol_changed_by_twl; +static u8 vol_old; + +static u8 adc_raw_vol; +static u8 adc_raw_dep; + +u8 vol_polling; +u8 vol_level_twl; + +extern const u8 slider_to_codec[]; + + + +// ===================================================== // +typedef struct filter_work +{ + u8* value_used; + s8 diffs; // KIKAN̕΂ + s8 kikan; + u8 large_diff_count; +}filter_work; + + +static filter_work work_vr_3d = { + &vreg_ctr[ VREG_C_3D ] + // ͕̂slł悵Bconstɂ_ + }; + + +static u8 vol_data_ctr; +static u8 vol_data_ctr_tmp; +static filter_work work_vr_vol = { + &vol_data_ctr_tmp + // ͕̂slł悵Bconstɂ_ + }; + + +// twl 8iKvol̃jAl̋E +/* + twl32 -> 8 e[u + 0`1,`4,`8,`13,`18,`23,`28,31 + */ +static const u8 TWL_VOL_BOUNDARY[] = { + 1, 4, 8, 13, 18, 23, 28, 31 +}; + +// ===================================================== // +extern void nop8(); +static void adc_filter( u8 new_val, filter_work* work ); +static u8 adc_scaling( u8 ); +static void update_twl_vol( u8 sent_index ); + + + +// ===================================================== // +#define INTERVAL_TSK_ADC 15 + + + +/********************************************//** + ADCݒƁAJn + + ȉ̃s͎ɂőEĎ܂B + - BT_TEMP,_P + - ADIN1 + - VOL + + ***********************************************/ +void tsk_adc( ) +{ + if( adc_updated ) + { + adc_updated = false; + + // 3D ///////////////////////////////////////// + vreg_ctr[ VREG_C_3D ] = adc_raw_dep; // l + + // Volume ///////////////////////////////////// + { + vreg_ctr[ VREG_C_VOL_ADC_RAW ] = adc_raw_vol; + + adc_filter( adc_scaling( adc_raw_vol ), &work_vr_vol ); // ʂ*work_vr_volwvol_data_ctr ǂ݂ɂ... + vol_data_ctr = vol_data_ctr_tmp / 4; + + if( vol_old != vol_data_ctr ) + { + vol_changed_by_ctr = true; + vol_old = vol_data_ctr; + vol_polling = 3; +// renge_task_immed_add( tski_vol_update ); œo^ + } + } + + // obe /////////////////////////// + /* Ă΂܂ */ + } + + // YꂪƂȂ̂Ń|[O orz + if( vol_polling < 5 ) + { + renge_task_immed_add( tski_vol_update ); + vol_polling = (u8)(200 / SYS_INTERVAL_TICK) + 5; // 5/sec + } + vol_polling --; + + + ADCEN = 1; + ADM = bits8(0,0,0,0, 1,0,1,1); // ZNg[hAAfCLK/6 // + + ADPC = 0x06; // ADC|[g̃ZNg + ADS = ADC_SEL_3D; + nop8(); + ADCS = 1; // ADJnB // ܂Ł@@܂ł1us=8clkȏJ + + ADIF = 0; + ADMK = 0; +} + + + +/********************************************//** + vol݂̃XC_̈ʒuɋXV + ***********************************************/ +void vol_reset() +{ + vol_old = vol_data_ctr; + vreg_ctr[ VREG_C_SND_VOL ] = vol_data_ctr; // 64i +} + + +/********************************************//** +@VolXV܂B + + @Ȏɓo^܂B + + - [U[VolXC_𓮂 + - HorizonɋXVwꂽ@icodecZbgj + - TWLAvVol + ***********************************************/ +task_status_immed tski_vol_update() +{ + static u8 sent_index, sent_index_twl; + static bit last_modifyer_is_twl; // false = ctr + + if( !( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP )){ + return( TSKI_FINISHED ); + } + + // ǂ̉ʂɂ́H // + if( vol_changed_by_ctr ) + { + // XC_ + vol_changed_by_ctr = false; + last_modifyer_is_twl = false; + sent_index = vol_data_ctr; + } + else if( vol_changed_by_twl ) + { + // TWLAv + vol_changed_by_twl = false; + last_modifyer_is_twl = true; + if( vreg_twl[ REG_TWL_INT_ADRS_VOL ] == 0 ) + { + sent_index_twl = 0; + } + else + { + sent_index_twl = vreg_twl[ REG_TWL_INT_ADRS_VOL ] *2 +1; + } + sent_index = sent_index_twl; + } + else + { + // force_slider0ɂƂ & ܂Ƃ + // XC_TWL̍ŌɃZbgZbg + if( last_modifyer_is_twl ) + { + sent_index = sent_index_twl; + } + else + { + sent_index = vol_data_ctr; + } + } + + // WX^̍XV // + vreg_ctr[ VREG_C_SND_VOL ] = sent_index; + + // twlXV + update_twl_vol( sent_index ); + + // codecɓ` + /// lł + iic_mcu_write_a_byte_codec( CODEC_REG_VOL, slider_to_codec[ sent_index ] ); + + // set_irq( VREG_C_IRQ0, REG_BIT_VR_SNDVOL_CHANGE ); // 荞ݔp~ + return( TSKI_FINISHED ); +} + + +/********************************************//** + TWL ։ʂʒmB + + iKႤ̂ŁÃPAs + ***********************************************/ +static void update_twl_vol( u8 sent_index ) +{ + // XP[O + if( sent_index == 0 ) + { + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = 0; + } + else if( sent_index <= 4 ) + { + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = 2; // P̓~bVOŐ + } + else + { + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = sent_index/2 ; + } + + // 8iK̃xB@荞݂̂ɕKv + { + static u8 vol_twl_old; + + if( vol_twl_old != vreg_twl[ REG_TWL_INT_ADRS_VOL ] ) + { + // 8ixɕϊ + u8 new_level = 31; + u8 i; + + vol_twl_old = vreg_twl[ REG_TWL_INT_ADRS_VOL ]; + + for( i=0; i<=7; i++ ) + { + if( vreg_twl[ REG_TWL_INT_ADRS_VOL ] <= TWL_VOL_BOUNDARY[ i ] ) + { + new_level = i; + break; + } + } + vol_level_twl = new_level; + } + } +} + + + +/********************************************//** +@ADC isr + +@}`vNT̏Ԃ`FbNĂׂ֓]A + +@OŎ̃`lN + +@@ʂI~߂ + ***********************************************/ +__interrupt void int_adc( ) +{ + volatile u8 adc_data = ADCRH; + + switch ( ADS ) + { +/* + case ( ADC_SEL_AMB_BRIT ): + // ‹邳 // + vreg_ctr[ VREG_C_AMBIENT_BRIGHTNESS ] = adc_data; + break; +*/ + + case ( ADC_SEL_3D ): + // 3D{[ // + EI(); + adc_raw_dep = adc_data; + break; + + case ( ADC_SEL_VOL ): + // ʃXC_ // + EI(); + if( system_status.model == MODEL_TS_BOARD ) + { + adc_raw_vol = adc_data; + } + else + { + adc_raw_vol = 255 - adc_data; + } + + break; + + case ( ADC_SEL_BATT_TEMP ): + // obex // + EI(); +#ifdef _ENABLE_HAL_ + if( vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] == 0xFF ) // HAL +#else + if( 1 ) +#endif + { + raw_adc_temperature = adc_data; + } + else + { + raw_adc_temperature = vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ]; + } + + if(// (( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR ) == 0 ) && + (( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP ) + ) + ) + { + renge_task_immed_add( tski_BT_temp_update ); + } + break; + +/* Ă΂܂ + case ( ADC_SEL_BATT_DET ): + // obe[J[ // + break; +*/ + } + +// Ƃ܂Ƃȏ肻 + if( ADS < ADC_SEL_BATT_DET ) + { + ADS += 1; // ̃`l + } + else + { + ADCEN = 0; // ~߂Ă܂ + adc_updated = true; + } + ADIF = 0; // ȂƁAÕ`l̃f[^̊ŒɊ荞މ”\ +} + + + +/********************************************//** + adcWX^ǂݏoÂ܂ܕԒlɂB + + tsk_adcƋ邱ƂlĂ܂B + ***********************************************/ +u8 get_adc( u8 ch ) +{ + u8 temp; + + ADMK = 1; + ADIF = 0; + + ADCEN = 1; + ADM = bits8(0,0,0,0, 1,0,1,1); // ZNg[hAAfCLK/6 ///火 + + ADPC = 0x06; // ADC|[g̃ZNg + ADS = ch; + + nop8(); + + ADCS = 1; // ADJnB /// ܂Ł@ɁA1usȏJ + + ADIF = 0; + while( ADIF == 0 ){;} + temp = ADCRH; + ADCEN = 0; + + ADMK = 0; + return ( temp ); +} + + + + + +/********************************************//** + VR̉“͈͂lăXP[O + + Volp@g񂷂Ȃ炻̂Ƃǂɂ + ***********************************************/ +static u8 adc_scaling( u8 orig_val ) +{ + u16 temp; + + if( orig_val <= vreg_ctr[ VREG_C_VOL_CAL_MIN ] ) + { + return( 0 ); + } + if( orig_val >= vreg_ctr[ VREG_C_VOL_CAL_MAX ] ) + { + return( 255 ); + } + + temp = (u16)(( orig_val - vreg_ctr[ VREG_C_VOL_CAL_MIN ] ) * 256 ) / ( vreg_ctr[ VREG_C_VOL_CAL_MAX ] - vreg_ctr[ VREG_C_VOL_CAL_MIN ] ); + if( temp > 255 ) + { + temp = 255; + } + + return( (u8)( temp & 0xFF ) ); +} + + + + +/********************************************//** + qXeVX V2 + + ľܓIȓ܂ + ***********************************************/ +#define KIKAN 16 +static void adc_filter( u8 new_val, filter_work *work ) +{ + if( abs( new_val - *( work -> value_used )) > 2 ) + { + // 傫ꂽ + work -> large_diff_count ++; + if( work -> large_diff_count > 16 ) + { + *( work -> value_used ) = new_val; + work -> diffs = 0; + work -> kikan = KIKAN; + } + } + else + { + work -> large_diff_count = 0; + // ߏ̒lłAԂłς΂Ă炻Ɋ񂹂 + if( *( work -> value_used ) < new_val ) + { + work -> diffs ++; + } + else if( *( work -> value_used ) > new_val ) + { + work -> diffs --; + } + + if( --( work -> kikan ) == 0 ) + { + if( ( work -> diffs ) == KIKAN ) +// if( ( work -> diffs ) > (s8)( KIKAN * 0.8 ) ) + { + *( work -> value_used ) = *( work -> value_used ) + 1; + } + else if( ( work -> diffs ) == ( -1 * KIKAN ) ) +// else if( ( work -> diffs ) < (s8)( -1 * KIKAN * 0.8 ) ) + { + *( work -> value_used ) = *( work -> value_used ) - 1; + } + work -> diffs = 0; + work -> kikan = KIKAN; + } + } +} + diff --git a/snake_branches/3.82_trial_seisan/adc.h b/snake_branches/3.82_trial_seisan/adc.h new file mode 100644 index 0000000..6f4ad04 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/adc.h @@ -0,0 +1,48 @@ +#ifndef __adc__ +#define __adc__ + +#include "jhl_defs.h" + +/////////////////////////////////////// +// ANI2 P22 +#define ADC_SEL_AMB_BRIT 0x02 + +/* +// ANI3 P23 +#define ADC_SEL_GYRO_YAW 0x03 +// ANI4 P24 +#define ADC_SEL_GYRO_PITCH 0x04 +// ANI5 P25 +#define ADC_SEL_GYRO_ROLL 0x05 +*/ + +// ANI6 P26 +#define ADC_SEL_3D 0x06 +// ANI7 P27 +#define ADC_SEL_VOL 0x07 + +// ANI8 P150 +#define ADC_SEL_BATT_TEMP 0x08 +// ANI9 P151 +#define ADC_SEL_BATT_DET 0x09 + + + +/////////////////////////////////////// +#define CODEC_REG_VOL 0x13 + + + +/////////////////////////////////////// +extern u8 vol_polling; +extern u8 vol_level_twl; + + + +/////////////////////////////////////// +u8 get_adc( u8 ch ); +void vol_reset(); + + + +#endif diff --git a/snake_branches/3.82_trial_seisan/batt_params.c b/snake_branches/3.82_trial_seisan/batt_params.c new file mode 100644 index 0000000..13bdb83 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/batt_params.c @@ -0,0 +1,130 @@ +/* ======================================================== + eЃobe[p[^ + $Id: asdf$ + ======================================================== */ +#include "jhl_defs.h" + +#include "batt_params.h" + + +const bt_param_ bt_param[ /*_BT_PARAM_NUM_*/ ] = // drg񂷂̂ f~drp[^ +{ + // ctr //////////////////////////////////////////////// + // BT_PARAM_CTR_MAXELL + { + { + 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, + 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10, + 0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0, + 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10, + 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30, + 0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70, + 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0, + 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00 + }, + 2, // 2 = 19 bit mode + { 92, (u8)(-256* 0.79), (u8)(-256* 4.35) }, // @(u8)LXǧp[^̂܂܂̕ + 0xD800, // VXeƂĂ͗ǍDȓ + { 0xEA, 0xE8 } + }, + + // BT_PARAM_CTR_PANA + { + { + 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, + 0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10, + 0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50, + 0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00, + 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, + 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 + }, + 1, + { 171, (u8)(-256* 1.00), (u8)(-256* 2.60) }, // @(u8)LXǧp[^̂܂܂̕ + 0xDA20, // VXeƂĂ͗ǍDȓ + { 0x69, 0x67 }, + }, + + // SPFL /////////////////////////////////////////////// + // BT_PARAM_SPFL_MAXELL + { + { + 0xA1, 0x20, 0xB7, 0x50, 0xB9, 0xD0, 0xBB, 0x00, + 0xBC, 0x30, 0xBC, 0x60, 0xBC, 0xA0, 0xBD, 0x10, + 0xBD, 0xC0, 0xBE, 0x70, 0xBF, 0xD0, 0xC2, 0xA0, + 0xC4, 0x00, 0xC8, 0x50, 0xCC, 0x80, 0xD0, 0xB0, + 0x01, 0xA0, 0x25, 0x10, 0x18, 0xB0, 0x17, 0xC0, + 0x95, 0x20, 0x6F, 0xE0, 0x7C, 0x60, 0x35, 0x10, + 0x35, 0x00, 0x37, 0xF0, 0x16, 0xF0, 0x1C, 0xA0, + 0x17, 0x30, 0x11, 0xD0, 0x11, 0xF0, 0x11, 0xF0 + }, + 2, + { 94, (-256* 0.35), (-256* 3.85) }, + 0xDAB0, + { 0xF5, 0xF3 } + }, + + // BT_PARAM_SPFL_PANA + { + { + 0x9C, 0xF0, 0xAD, 0x50, 0xAF, 0xB0, 0xB3, 0x00, + 0xB3, 0xE0, 0XB5, 0x60, 0XB6, 0x70, 0xB7, 0xA0, + 0xBA, 0x00, 0xBC, 0x00, 0xBE, 0x90, 0xC1, 0x60, + 0xC4, 0x00, 0xC7, 0x00, 0xCC, 0xA0, 0xD0, 0xA0, + 0x02, 0x00, 0x19, 0x10, 0x12, 0x00, 0x48, 0x10, + 0x25, 0x10, 0x41, 0xF0, 0x2F, 0xA0, 0x13, 0xF0, + 0x1C, 0xD0, 0x10, 0xD0, 0x0F, 0xA0, 0x11, 0x00, + 0x10, 0xE0, 0x0C, 0x10, 0x0C, 0x00, 0x0C, 0x00 + }, + 2, + { 113, (-256* 0.30), (-256* 2.25) }, + 0xDAA0, + { 0xE7, 0xE5 }, + }, + + // SNAKE ///////////////////////////////////////////// + // BT_PARAM_SNAKE_MAXELL + { + { + 0x9D, 0x80, 0xB7, 0xB0, 0xB8, 0xA0, 0xB9, 0xA0, + 0xBB, 0x40, 0xBC, 0x50, 0xBC, 0xA0, 0xBD, 0x00, + 0xBD, 0x90, 0xBF, 0x30, 0xC0, 0xE0, 0xC3, 0x30, + 0xC5, 0x40, 0xC7, 0x50, 0xCD, 0x40, 0xD0, 0xA0, + 0x01, 0x90, 0x35, 0x10, 0x2F, 0x30, 0x11, 0x00, + 0x29, 0x40, 0x88, 0x50, 0x71, 0xA0, 0x5F, 0xE0, + 0x32, 0xD0, 0x1C, 0xF0, 0x14, 0xF0, 0x1A, 0x80, + 0x1A, 0x80, 0x11, 0x10, 0x12, 0x00, 0x12, 0x00 + }, + 2, + { 86, (-256* 0.6), (-256* 3.675) }, // rcomp, r-hot, r-cold + 0xDAA0, // ocv + { 0xF5, 0xF3 } // compare max, min + }, + + // bt_PARAM_SNAKE_PANA 3ŁH130909XV + { + { + 0x9D, 0xD0, 0xA6, 0x20, 0xAC, 0xE0, 0xAE, 0x20, + 0xB0, 0x40, 0xB2, 0x10, 0xB3, 0xC0, 0xB5, 0x00, + 0xB6, 0x70, 0xB7, 0xD0, 0xB9, 0x20, 0xBC, 0x00, + 0xBE, 0xD0, 0xC4, 0x70, 0xCA, 0x40, 0xD0, 0xA0, + 0x02, 0x00, 0x02, 0x00, 0x24, 0x00, 0x14, 0x00, + 0x16, 0x00, 0x1A, 0x00, 0x38, 0xC0, 0x2D, 0xE0, + 0x29, 0xC0, 0x27, 0xE0, 0x0F, 0xE0, 0x11, 0xE0, + 0x0F, 0xE0, 0x0F, 0x40, 0x0C, 0x00, 0x0C, 0x00 + }, + 2, // 2:19bit 1:18bit + { 95, (-256* 0.85), (-256* 1.9) }, + 55968, + { 230, 228 }, + } + + + // FLOWER ///////////////////////////////////////////// + // BCTR̃obe[gB + + // CLOSER ///////////////////////////////////////////// + // BSPFL̃obe[gB +}; + diff --git a/snake_branches/3.82_trial_seisan/batt_params.h b/snake_branches/3.82_trial_seisan/batt_params.h new file mode 100644 index 0000000..232a2d1 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/batt_params.h @@ -0,0 +1,62 @@ +#ifndef _bt_params_h_ +#define _bt_params_h_ + +/* + $Id: asdf$ +*/ + +#include "jhl_defs.h" +/* + dr CTR | SPFL | YBS + 0 ID = 0 maxell + 120 1 + 360 2 + 750 @ 3 + 1.3k@ 4 + 2.7k 5 pana + 8.2k@ 6 +*/ + + +#define BATT_PARAM_SIZE 64 + + + +typedef enum +{ + BT_PARAM_CTR_MAXELL = 0, + BT_PARAM_CTR_PANA, + BT_PARAM_SPFL_MAXELL, + BT_PARAM_SPFL_PANA, + BT_PARAM_SNAKE_MAXELL, + BT_PARAM_SNAKE_PANA, + BT_PARAM_FLOWER_MAXELL, + BT_PARAM_FLOWER_PANA, + BT_PARAM_CLOSER_MAXELL, + BT_PARAM_CLOSER_PANA, + _BT_PARAM_NUM_ +} BT_TYPE; + +typedef struct +{ + u8 rcomp; + s16 up,down; +} rcomp_; + +typedef struct +{ + u8 hi; + u8 low; +} verify_; + +typedef struct +{ + u8 mg_param[BATT_PARAM_SIZE]; + u8 v_scale; + rcomp_ rcomp; + u16 ocv; + verify_ verify; +} bt_param_; + + +#endif diff --git a/snake_branches/3.82_trial_seisan/bsr.hex b/snake_branches/3.82_trial_seisan/bsr.hex new file mode 100644 index 0000000..4d4025d --- /dev/null +++ b/snake_branches/3.82_trial_seisan/bsr.hex @@ -0,0 +1,1017 @@ +:02000000680D89 +:04001000774879486C +:02001C00254A73 +:02002400CC4AC4 +:02002A00174B72 +:08003400444CE74B404C854EA3 +:02004A007B48F1 +:02005A00B548A7 +:02006200434E0B +:06008000D84C114D5B4D50 +:0400C0007EFBFF04C0 +:0A00C4001B339499E033F240BFAA09 +:1000CE00C7C1FBF8FFCEABACC736F00071F4C6610A +:1000DE00D8710006F98EA89C018C015C10D1DD0A46 +:1000EE007110A6FB710006F9EF0B8C015C80D161DB +:1000FE00E8710006F98F06F931030EF6B1BBF66111 +:10010E004900DD05618900EFF5FDFE01FD3101FDC0 +:10011E008901FD0F0AFD4609FD1E30FD452DEFA597 +:10012E00C0C6D7C7360000674C09DE3F318E04F6D5 +:10013E000FC1317B9EFDC411897267318E04F64F5B +:10014E0014896142DF03F6EF01E660610667318EC6 +:10015E00124900207267318E04F64F14896142DF16 +:10016E0003F6EF01E660610687EFBC40F84F3A6197 +:10017E00E88666D161E8FDB306C6D751065B0C3141 +:10018E001A9F08F94008F90161F8CF08F904D5085B +:10019E00F9DF06710009F9EF04710809F98F09F901 +:1001AE00310505CD3707EF03CD3705D908F9FDC465 +:1001BE00298F06F95CE39F06F951035B04318EE744 +:1001CE00240000DD1023DD0823DF0E712006F9D791 +:1001DE00713006F9D7714006F9D7717BFACEA010AF +:1001EE00CEA180E5F300000000CEA408F5AAFFD74B +:1001FE008F06F9310508CD0003CD030FEF08CD03AF +:10020E000EF690BFB401CD0408CD0508F521FFCE42 +:10021E0022E9CE23F8CE24F3CE25FACE26FCCE2725 +:10022E005FCE2EFCCF1105F8CF120511CF3500028F +:10023E00CF370019CF530006CBEEFEFFCE3831CEAE +:10024E003970CF38050A308700BF1801BF1A01BFB9 +:10025E001C01BF1E01D7D7C7F616FD9804717BFA95 +:10026E0031329708713297717AFAEF0C717AFAA7D8 +:10027E00F647DFE95203EF01F2C6D7C7C1C1FBF85B +:10028E00FF17A1C1E0C18C0A70C18C0270FDB102D2 +:10029E001006629D54D45461E8CC01FF8C0172109B +:1002AE0004C6D7C7C1FBF8FFFD6502D2DD045203B9 +:1002BE00EF698B70FDE503D2DD077133975202EFC4 +:1002CE005A8C0870FD0104FD4C048B6C0170FD010D +:1002DE0004300400BF2401301740BF1C013004005D +:1002EE00BF22018C0A91DF04F6BF2A01710BE2CE08 +:1002FE0044FF3182E202EFFAAC0C148E449961791C +:10030E000C61690A8C0AD1DFDA8B4CA461F8FD65A9 +:10031E0048FD7504710BE2713397F2C0C6D7C7C1A1 +:10032E00FBF8FFFD6502D2DD045203EF25710AE6EC +:10033E008B70FDE503D2DD077133975202EF138CFC +:10034E000870FD01048C0A70FD0104FD7504713303 +:10035E0097F2C0C6D7C7C1FBF8FFFD6502D2DD0418 +:10036E005203EF70710AE6710BE28B70FDE503D25A +:10037E00DD077133975202EF5B710BE23122974426 +:10038E00C73422FBAC0C1652048B99A5A792DFF949 +:10039E00C68B9D518C089D528C0A9D533184BD0293 +:1003AE00EFFA717ABDCEB144CBB422FB8C0A318EFA +:1003BE00BEB8CEBB48714BE1714BE5710ABD8C08DE +:1003CE009E44EF0F710BE68C089E448C0A9D50AC38 +:1003DE000CBD4EF2C0C6D7C716FD2404AF0401BF34 +:1003EE000C0117FD0104D2DD07FD75045202EF0169 +:1003FE00F2C6D7C716710AE6710BE2669E443182C9 +:10040E00E202EFFAF6420401DD09AF0401BF0C016E +:10041E00E2EF01F2C6D7AF2801085CFB08BF280146 +:10042E00FD6402AF28015CFBBF2801300400BF2A27 +:10043E0001301780BF1C01300400BF2201D7AF244A +:10044E0001086C0408BF2401AF28016C0F086C0B67 +:10045E0008BF2801FD6402AF2A01085CFB08BF2A11 +:10046E0001FD6402ED2404300400BF2401F6BF2A0E +:10047E0001300B0BBF2801FD6402300B0FBF2801AA +:10048E00FD6402300F0FBF2801D731449701D77199 +:10049E0032976A0E03713B25713B23E0FD220A71F0 +:1004AE0020F000FD6402F6BF26015024BF1401CBDC +:1004BE00440014300F0FBF2801712397710BE271A6 +:1004CE000AE6FD2404CE44FF3182E202EFFAFD7506 +:1004DE0004AF0401BF0C01713397714297D73134C9 +:1004EE009702EFFAFD4C04713A25713A235A0EFC2D +:1004FE007128F000714397D77140F0007178300287 +:10050E00713AE6713BE2713BEA713BEE5A06FCCF63 +:10051E0034024AE552FF711A52710A527148300282 +:10052E007130300271203002CF330209CF32020B0C +:10053E007130310271203102713BE6717030028EE2 +:10054E00265CFC9E2671603002D7717830027148AD +:10055E00F000D7C72008FBF8FFFDAE085014C150BD +:10056E0008FDE007C0CC07048C074C14DE0C8C078A +:10057E00318EFD4A0A615907EFEECC07048C074C09 +:10058E001461C8ED4F06CC06008C064C0461C8ED14 +:10059E002E06300AF9BC02F6BBCEABAC31B2D10995 +:1005AE00C73641057184C6DEF3F1C7364105718445 +:1005BE00C661DC9C05713BD1AC02148F400599716C +:1005CE00505005617902617900F0E1614900DD0961 +:1005DE00C73641057184C6DEC3F1C7364105718445 +:1005EE00C661DC0E059C055040C18C07318E31ADC5 +:1005FE00128C06318E318D03BDD831FFBDDADADAB9 +:10060E00ADD8FD160DC0D2DD0C5008C15014FDE062 +:10061E0007C0FDD30B8C05D1DF06615906ED97059A +:10062E008C07318EFD4E0AD2DD0C5008C15014FDE0 +:10063E00E007C0FDD30B8C05D1DF06615907ED8BAA +:10064E000571605005CC0400CC05008C054C09DE0C +:10065E002B8C05318E04F61FC1317B9EFDC4118992 +:10066E00728C05318E04F64F14896142DF03F6EF6A +:10067E0001E6600E049C04615905EFCF4100114064 +:10068E00F81F3A61E86159048C04D1DF08FDD40BE0 +:10069E00FDE60CEF0C5008C15014FDE007C0FDD371 +:1006AE000B1008C6D7C72004FBF8FF712B24CC0112 +:1006BE0000F6BC02AC02440900DE3EAC0204F60FAA +:1006CE00144100118972AC020C5014896142DF038F +:1006DE00F6EF01E6600E019C01AC02124900507269 +:1006EE00AC0204F67F14896142DF03F6EF01E66087 +:1006FE000E019C01617902EFBB40F67FFF61F8614C +:10070E0059018C01D161F8EDAC07CC0100717AFA78 +:10071E00FD9804711300711B20710303710205E033 +:10072E00C15003FDC52BC05013FD220A500FC1E06E +:10073E00FDC52BC0CEABAC6159018C0191DD068C91 +:10074E00014C03DF03E6EF01F66061FB7121048CBF +:10075E00014C0861F8CC010031320705A024FCEFF2 +:10076E0003F524FC4024FC11DC22F524FCF0C150DE +:10077E0003FDC52BC0CE3708CBE4FFFFCBE6FFF75A +:10078E00CED4FFCF370008F5120561FDE6BC02F6A8 +:10079E00614902DD9F00000000617902EFF1FDAEBC +:1007AE0008D2DFFA5008C15014FDE007C0D2FDD3C5 +:1007BE000B1004C6D73184BD02EFFA717BBDCBE4BA +:1007CE00FFFFCBE6FFFFCBD4FFFF717ABED7717B65 +:1007DE00BED7C7C1200CFBF8FF8C0C318E31ADC1DA +:1007EE00317B9DD4C0BC068DD49C088C149C0B8C84 +:1007FE0014318E040C00128C0B318EBDD813FDA556 +:10080E000F61C8EDA908CEABACCC05068C0B318EB2 +:10081E00FD460AD2DD158C0B318EFD4A0A61690543 +:10082E008C05D1DFE7FDDC07E2EF71CC0A008C0A04 +:10083E004C04DE54F6BC02300AF9BBAC06148C082C +:10084E009EFD118972AB146299AC06A1BC0661794A +:10085E0000617902F0E1614902DFE05040C18C0B8A +:10086E00318E31AD128C0A318E318D03BDD831FFF0 +:10087E00BDDADADAADD8FD160DC0D2DD06FDDC0725 +:10088E00E2EF1961590AEFA68C0B318EFD4E0AD29A +:10089E00DD03E2EF0761590BEDFD07F2100EC6D72F +:1008AE00C7717B9D717BFAFDC307300AF9FDF90A0A +:1008BE00FD840AC6D7FDAE08FDD30BFDDC07F5ABF4 +:1008CE00FFF2D7C731049B067110B3FBEF0471180A +:1008DE00B3FB8FB3FB7B8E76D1DD5B8FB3FB9D8E2F +:1008EE004004F903DF22665C10D1DD1C8FB3FB5C84 +:1008FE0010D1DD0B5080C15011FD4E35C0EF0950A7 +:10090E0040C15011FD4E35C04004F903DD064004D0 +:10091E00F904DF22665C02D1DD1C8FB3FB5C02D1D1 +:10092E00DD0B5040C15010FD4E35C0EF095020C1B7 +:10093E005010FD4E35C0C6D7C7360000665C80D15C +:10094E00DD10675C80D1DF0571339AEF0B71329A3F +:10095E00EF0671040771319A665C40D1DD10675C59 +:10096E0040D1DF0571439AEF0B71429AEF06711475 +:10097E000571419A665C01D1DD10675C01D1DF051E +:10098E0071539AEF0B71529AEF0671340771519AA7 +:10099E00665C02D1DD10675C02D1DF0571639AEFF0 +:1009AE001D71629AEF184007F901DF087104027198 +:1009BE00619AEF0AC736100571C4C671619A665CFA +:1009CE0004D1DD10675C04D1DF0571739AEF0B71F2 +:1009DE00729AEF0671440771719A665C08D1DD1048 +:1009EE00675C08D1DF0571039BEF0B71029BEF066D +:1009FE0071140771019B665C10D161E8715AD1C602 +:100A0E00D7F5F6FBF5F8FBCFFEFBFFCFFAFBFFCFDA +:100A1E00FBFBFFD7C7C1C1FBF8FFCEABAC8C02D13D +:100A2E00DD12616902305C03BBF6614900DDEE61E7 +:080A3E008900EFF51004C6D792 +:100A46005208EF065203EF025206FEE600FE1B00B6 +:100A5600DC16089F03088F0408089F040862FE241A +:100A660000089F0408EEBF00EEBA00C1C514410E8F +:100A760011D9D0FF118FD1FF312E45C4C0D7F23125 +:100A8600A2C401E2D79DE261DD4C09DF12717BFA57 +:100A9600C18F06089F25FDC0CF060800EE2700314E +:100AA600F2FA04CF0608004C00DF05D50008DD1673 +:100AB60061DD717BFAD50608DD0ACDE31F61CD61E4 +:100AC600CDEE160061CDFED40061FFFE9A00FCF863 +:100AD600FF0EFEB20061CDFED5004C09DF0EC18FC0 +:100AE60006086F25FD9F0608C0EE0400CF06080025 +:100AF600F8E3D75200EF025202FE3700CF24FD0082 +:100B0600CF060800BF0408C716629F0008410011FF +:100B16008F1A209B4100118F1B209F0108C6510090 +:100B2600FE62FFEF025205CF060800C1510CFE0A15 +:100B360000C0D7C1511DFE0200C0D761DD717BFA2E +:100B460070CEC0A59EC47CFF9EC4609EC461CDD7F6 +:100B560061DD717BFAC18EC45C1BFED6FFCF060831 +:100B660001FED7FFC061CDD731F2FA1AC1AEE4BF9C +:100B760016FDAEE6BF18FDAED4BF1AFD30FFFFBEB0 +:100B8600E4BEE6BED4C0D731F2FA11C1AF16FDBE3F +:100B9600E4AF18FDBEE6AF1AFDBED4C0D7C1BF1C78 +:100BA600FD13BF1EFD15BF20FD17BF22FDC0D7AF29 +:100BB6001CFDDB1EFDEB20FDFB22FDD7534B305207 +:100BC6005430324E323030475631323000FFC15049 +:100BD600FEFEAB0061DD717BFACF060800FE0A005F +:100BE600FEA4FF61CDF8E3EECF00C7FB0408BF16F5 +:100BF600FD8FC0009C05C5C337040600BF18FD3530 +:100C060036380C300000522BFE6600C2C4C630E6F1 +:100C16000BB800300000B8022004AF18FDB8003051 +:100C26000F00B802AF16FD61FF520AFE3AFFECF85C +:100C3600FF0E717BFAC1C7FB04088C05C65C80FEFB +:100C46000200C0D761DD717BFA70CFC0FFA59FC0DF +:100C5600007CFF9FC000609FC00061CDD7618BFE06 +:100C6600E2FF717BBE410011FB000017CEFC006164 +:100C7600CB089EFDF31161C999A58392DFF7D7FED4 +:100C8600B1FED524FDDF23C1CF0308035109FEF4CD +:100C9600FDC0D2DF37FE3800A20408CF0308075193 +:100CA60009FEE1FDD2B20408DF22C7FB0408318346 +:100CB60002C6D7C6510AFECCFD624C1FDF06CF2402 +:100CC600FD01EF04CF24FD00C0EE5BFEC0EE55FE35 +:100CD600C7C1FB04088B31196C0161589BC0C6D78C +:100CE600717BFAFE4DFEAF0408040600C114364AB5 +:100CF6000C300000522DF3FE77FF8FC000FE2BFE56 +:100D060061CF5C807C8073C0041900CEFC0F61CB80 +:100D1600C55404EF03C55417FE18FEC7360008BBBA +:100D2600629C0288089C03D1DD334C41DE2F70F1B2 +:100D3600312DB161090033081C000851FF612A41B9 +:100D46000E118FD0FF613B118FD1FF6138DC0E8B06 +:100D56005C03DF0964C6C4FE2BFDEECAFDC6C4EE05 +:020D6600C3FDCB +:100D680061CF5100718C7109FECBF800FEFCE801DF +:100D780000F6BF00F953C0F693935820FEDFF941FF +:100D88000036964E34CCFCEF05118B99A7A5174475 +:100D9800E04EDFF53602F930CCFCEF04CC0000A7BA +:100DA80047DFF9410036E04E3420FEEF05118B99FC +:100DB800A7A51744F04EDFF53630FE3096FEEF0457 +:100DC800CC0000A747DFF9FCCE0000EFFE61DD7123 +:100DD8007BFABEF0ADD8BEF200AEF661CDD7C361E6 +:100DE800DD717BFABEF0ADD8BEF200DBF6FFADDCFC +:100DF800BEF000AEF6BDD8AEF40312ADDABEF20016 +:100E0800AEF661CD03BDDAC2D7C3F33174D9088316 +:100E1800C1F626D8BDD8C031750683C312F623C2E1 +:100E2800FD330E93DF0312F623C2D7440000DD26FC +:100E380061DD717BFACFE80080BEF6F6BEF4BEF243 +:100E4800ADD8BEF0CFE800818FE8003103FAAEF0EC +:100E5800F5E80061CDD7B1D7C3F33174D90883C1A0 +:100E6800F626D8BDD8C0317505C312F623C2FD8158 +:100E78000E93DF0312F623C2D7440000DD2761DD9D +:100E8800717BFACFE80080BEF6F6BEF4BEF2ADD8AC +:100E9800BEF0CFE800818FE8003103FAAFE000F53B +:100EA800E80061CDD7ADD8D7C3F33174DB0F83C168 +:100EB800F626D8BDD861317026DABDDAC031750D95 +:100EC80083C312F626DCBDDC61317023C2FDE90E56 +:100ED80093DF0CF626D8BDD861317026DABDDAC2A8 +:100EE800D7C161686BDC6BDDC0DD2F61DD717BFA1A +:100EF800CFE80080BEF4ADDCBEF6ADD8BEF0ADDA0A +:100F0800BEF2CFE800818FE8003103FAAEF0BDD819 +:100F1800AEF2BDDAF5E80061CDD7F6BDD8BDDAD7B7 +:100F28008292DD2B61DD717BFACFE80080BEF0F69E +:100F3800BEF2BEF46208BEF6CFE800818FE8003149 +:100F480003FAAFE0006072AEF0F5E80061CDD7605B +:100F580072F6B1D706DABDDAADDC06D8BDD861D8ED +:100F6800A6DAD7D1DD17C1C3DAD89DD8ADDA311CDE +:100F780061EEB4D8DFF8BDDA13BDD8C2C0D7D1DD71 +:100F88001BC1C3DADA9DDAADD8311E33311E337195 +:100F9800F9B4DADFF4BDD813BDDAC2C0D746D8DD5C +:100FA8000771FF7177D971C0D75BDB9DDB605BDAB6 +:100FB8009DDAADDC5BD9085BD808BDD8D7C3C7F3C9 +:100FC800728EFDC162314C4100368C4E1161A072A7 +:070FD800C09EFD62C6C2D7F6 +:0A0FF60030393A30383A3535000042 +:0A20000030393A30383A3535000027 +:10200A0005214F7B9EC5E9000104080D12171C1F0C +:10201A00080100001F003B005A0078009700B50035 +:10202A00D400F300110130014E01192634445362E1 +:10203A006E777D80807D776E625344342619100A4C +:10204A0008080808080808080A10AEF0B430B740B3 +:10205A00BA30BB50BBB0BC50BD10BD60BDB0BFE014 +:10206A00C2B0C420C7B0CAE0CE1001F014101420C8 +:10207A000630639049006E0077707B0019001900E2 +:10208A0017F01C6012001200120002005C003600F9 +:10209A00A70000D8EAE88C309C10A5E0B040B1C097 +:1020AA00B200B250B310B490B620B860BA50BFA014 +:1020BA00C6B0CE90D02000200020002000207B3027 +:1020CA00686020001700173012F00DE007F00700D3 +:1020DA00093001C001C00100AB000000670020DA2E +:1020EA006967A120B750B9D0BB00BC30BC60BCA0A6 +:1020FA00BD10BDC0BE70BFD0C2A0C400C850CC8045 +:10210A00D0B001A0251018B017C095206FE07C60F0 +:10211A003510350037F016F01CA0173011D011F029 +:10212A0011F002005E00A7FF27FCB0DAF5F39CF07D +:10213A00AD50AFB0B300B3E0B560B670B7A0BA00A7 +:10214A00BC00BE90C160C400C700CCA0D0A00200F1 +:10215A00191012004810251041F02FA013F01CD0BE +:10216A0010D00FA0110010E00C100C000C0002009F +:10217A007100B4FFC0FDA0DAE7E59D80B7B0B8A052 +:10218A00B9A0BB40BC50BCA0BD00BD90BF30C0E0F0 +:10219A00C330C540C750CD40D0A0019035102F3074 +:1021AA0011002940885071A05FE032D01CF014F071 +:1021BA001A801A801110120012000200560067FFDE +:1021CA0054FCA0DAF5F39DD0A620ACE0AE20B040D6 +:1021DA00B210B3C0B500B670B7D0B920BC00BED03B +:1021EA00C470CA40D0A002000200240014001600E5 +:1021FA001A0038C02DE029C027E00FE011E00FE0F7 +:10220A000F400C000C0002005F0027FF1AFEA0DA44 +:10221A00E6E47F7E7D7C7A79787776757472717060 +:10222A006F6E6D6C6A6968676665646261605F5E3D +:10223A005D5C5A5958575655535251504F4E4D4B53 +:10224A004A494948474645434241403F3E3D3B3A59 +:10225A00393801020203030200FEFBF7F3F0F0F340 +:10226A00FA041225384D5F6E777A776E5F4D3825FE +:10227A001204FAF3F0F0F3F7FBFE00020303020282 +:02228A00010051 +:10228C008D3DB43DD1DF26CD3D1EFD4423FDE52221 +:10229C003132960D3104960931329A05713304EFBF +:1022AC0003713204FD1823FDBA22FD7E26D771532B +:1022BC0096D432DD05B43271529631229607313202 +:1022CC009A03715296715496714102314402057110 +:1022DC0040B3FBD77148B3FBD78D304B3BDC114A75 +:1022EC0030B9DE0C4A3E28DE03A43ED7713396D7B4 +:1022FC008D3C4B30DE054A30BDDC0C4A3F28DE03FA +:10230C00A43FD7713296D7F43EF43FD731429A0CA2 +:10231C004A4002DE03A440D7712396D7313204120F +:10232C0040AFFB3CDE0C8FB2FB5C01D1DF047123B0 +:10233C0096D7712296F440D7C7C1FBF8FF31329A79 +:10234C00067130B3FBEF047138B3FB7144967137EF +:10235C009ADE4F71349A71419631329A0E5002C105 +:10236C005011FD4E35C0CD3229EF37E0C15011FD73 +:10237C004E35C0F43217C15002FDAD2BC0D2DF0D6B +:10238C008B318E318D080E01081C00BD34AD3444E8 +:10239C00009BDC05D5AFFBDF095020C15011FD4E71 +:1023AC0035C0C0C6D78D209D41FDF323FDE12BD553 +:1023BC0007F9DD04710396D78D414B2061F8316428 +:1023CC00961C716396FD98044A4107DD054A41FF4E +:1023DC00DF098F06F9310303FD8224FD9624710277 +:1023EC009630DC256194D7C771620171720150037C +:1023FC00FD220A5008FDCB37629D305009FDCB37CA +:10240C006276716301711806F94A30F1DC0BE5074D +:10241C00F9F508F9CD3707EF0E4A3004DE06CF0781 +:10242C00F902EF03F507F95008C1506CFD8902C0A1 +:10243C0092DF08D45461F8711006F94007F901DFF6 +:10244C0005710A22EF06710B22710302CD2007578A +:10245C0000674C08DE1073090A20614EDC05679D8D +:10246C0020EF0387EFEB4A2007DF09D507F961F866 +:10247C00CF07F903C6D7500AFD220A304000C150DD +:10248C0006FD902BC05096ED220AC72008FBF8FFE2 +:10249C00D507F961E8EDD825304A57C1503EFD907B +:1024AC002BC0D2DD077100B2FBEDD8257108B2FB51 +:1024BC0017040400C15002C1500CC1506CFDB10294 +:1024CC00100617040600C15002C1500EC1506CFD1D +:1024DC00B1021006EA38AA48318D12AA48318E6131 +:1024EC006B08616A08C1500EFD902BC0F690C1506C +:1024FC000CFD902BC0CC03008C034C40DE30EA3832 +:10250C008C03318E05148A01318E318D12EA388C90 +:10251C0003318E051489616213BBC18C03318E04A7 +:10252C004000FD902BC08C030C029C03EFCACC0323 +:10253C00008C034C20DE17300080C18C03318E04DC +:10254C008000FD902BC08C030C029C03EFE350A584 +:10255C00FD220AEA38AA48318D12AA48318E616BE5 +:10256C0008616A08C1500EFD902BC0F6C1503EFDAB +:10257C00902BC050A5FD220A5004C1506CFD89025D +:10258C00C0629C03EA388A4B4E0361C3048A4A4EEC +:10259C0003304A57C1503EFD902BC017040400C1B4 +:1025AC005002C1500CC1506CFD6303100617040699 +:1025BC0000C15002C1500EC1506CFD63031006F6F1 +:1025CC00C1503EFD902BC050A5FD220A1008C6D765 +:1025DC00C78D424B3061F8ED7B264A4428DE05A4BA +:1025EC0044ED7B26F4448D309D428D305070D612D4 +:1025FC00307351230480001231FF318E039D439FB1 +:10260C00AEFBF68D437C804C95DC1B8D43318F24C7 +:10261C001400EA38BDD8AA44FDD50D1231FF318E15 +:10262C0003318F16EF198D43318F241400EA38BD16 +:10263C00D8AA46FDD50D1231FF318E03318F16EA23 +:10264C00388A427217F3031644000171FE61C836D2 +:10265C00FF001701DE02F61617BD7CC7500CFD906B +:10266C002BC0D2DF068D309D42EF047100B2FBF21D +:10267C00C6D7C72008FBF8FF4007F901DD06400765 +:10268C00F902DF1C17040600FDB32CD2DF0A8C06FE +:10269C009C058C079C04EF4ECC0563CC0400EF46E4 +:1026AC0017040600FDB32CD2DD0F7100B2FB7103D1 +:1026BC0096CC0500711297EF2D7108B2FB8C063188 +:1026CC008E318D080E07081C00BBEA388A4072ABAD +:1026DC00FD280FBB8C019C05D1DF08CC0501CC0477 +:1026EC0000EF038B9C0417040600FDBE2CD2DD0604 +:1026FC00CC06C8CC07008C069FB1FB8C06318E3102 +:10270C008D080E07081C00BD34AD344401A5DC084F +:10271C00CC0364F6BD46EF48AD3426464401A0DC3C +:10272C0008CC031EF6BD46EF37AD3444819DDC0961 +:10273C00CC030AC946F401EF27AD3444019BDC09F4 +:10274C00CC0305C946F401EF17AD34440191DC0903 +:10275C00CC0300C946F401EF07711297C946F40186 +:10276C003132040C31249608CC0564CC0400EF0DF6 +:10277C008C034E05DE078C039C05CC04008C059F56 +:10278C00AFFB8C049FB0FBFD402C8D484E05DD2823 +:10279C0040AFFB0BDE054A480BDE1440AFFB06DEF8 +:1027AC00054A4806DE09D5AFFBDF0DD448DD0950DC +:1027BC0020C15011FD4E35C08FAFFB9D48FD7D2CC7 +:1027CC001008C6D7C75601D837C15002FDC52BC05B +:1027DC008F09F93105075012FD220AEF0E500AFD40 +:1027EC00220A712010055008FD220A8D376C0870E2 +:1027FC00C15002FDC52BC05003FD220A8D376C1849 +:10280C0070C15002FDC52BC05016FD220A5003FDAD +:10281C00D62B625C01D1DD0F7170B3FB5002C1503D +:10282C0013FD4E35C056006672C6D7C75004FDD690 +:10283C002B625C03D1DD405014FDCE2834B3FB89F0 +:10284C005C9F998A0C7CFF50FF5C14D1DD228A0CB2 +:10285C007CFF5C147234B7FB89616A99716207560C +:10286C0000316207058666D1DFF7716307716B274C +:10287C0034C6FB895CEB995002FDD62BD2DD398D29 +:10288C00376C1070C15002FDC52BC0E0FD220AD878 +:10289C0037C15002FDC52BC05033FD220A8F09F9F8 +:1028AC0031030971281005500AFD220AF0C15002AB +:1028BC00FDC52BC07178B3FBE0C15013FD4E35C084 +:1028CC00C6D7C7C12004FBF8FFCC02005004FDD6CC +:1028DC002B629C038C045C20D1DD0E8C036C019C60 +:1028EC00038C026C209C02EF138C045C10D1DD0C69 +:1028FC008C035CFE9C038C026C109C028C045C08A8 +:10290C00D1DD0E8C036C029C038C026C089C02EFD4 +:10291C00138C045C04D1DD0C8C035CFD9C038C02D9 +:10292C006C049C024008F903DF088C03D161E8CCED +:10293C0003028C03D1DD05501AFD220A8C0370C1F1 +:10294C005004FDC52BC08FB3FB5C9F728C03318E82 +:10295C00316D148C03318E314D616D08616C5C608E +:10296C006162629FB3FB8FBFFB7CFF50FF5E02D1A5 +:10297C00DD278FBFFB7CFF5E027234B7FB89616A77 +:10298C0099716207CC0100316207086159018C0111 +:10299C00D1DFF4716307716B27F21006C6D7D9A784 +:1029AC00FBC15006FDC52BC0D9A8FBC15007FDC506 +:1029BC002BC0D7FDAA29F2D7C716664C02DD044CF2 +:1029CC0004DF05CD3A08EF02F43AC6D7C7711300FD +:1029DC00711B20710303710205E0C15003FDC52B6F +:1029EC00C05013FD220AD83AC15005FDC52BC0506A +:1029FC000FC1E0FDC52BC0500AFD220A7103055022 +:102A0C0008FD220A501FC1E0FDC52BC05012FD224B +:102A1C000A5003FDD62B625C01D1DF03E2EF12F00A +:102A2C00FDD62B629D363602F9C75008FDAD2BC082 +:102A3C00F2C6D75003C1FDC52BC0710203711A2019 +:102A4C00FD6D2BF431D75014FDCE28FD37285014D2 +:102A5C00FD220AFDD32C711300711B20710303504E +:102A6C0014FD220AF0C1E0FDC52BC0F0C15003FDDE +:102A7C00C52BC0D7C72004FBF8FFCC02008D319CBE +:102A8C00035010C150A4FD8902C0629D31D454DDA5 +:102A9C0004F2ED4A2B8C037B315C08D1DD0F8D31B8 +:102AAC005C08D1DF05CC0210EF03CC02208C037B39 +:102ABC00315C04D1DD158D315C04D1DF088C026CE6 +:102ACC00049C02EF068C026C089C028FB2FB5CF338 +:102ADC00728D315C0C6162629FB2FB8FBEFB7CFF1E +:102AEC0050FF5E029C02D1DD1F34B6FB896E029949 +:102AFC00716207CC0100316207086159018C01D168 +:102B0C00DFF4716307716B278D315C40D1DD0950A7 +:102B1C0002C15012FD4E35C08D315C01D1DD08E093 +:102B2C00C15012FD4E35C0717AFA8D315C41D1DD48 +:102B3C000C5A31BED831C15010FDC247C0F210043E +:102B4C00C6D7FDD027F2D7FD3728F2D7C78FC6FBE3 +:102B5C007617FDCE28664FC6FBDFF2F5C6FBF2C634 +:102B6C00D75064FD220AFDC92C6261FB711196F1EC +:102B7C0071149661DC70C15012FDC247C0FDFC3669 +:102B8C00CD6303D7C7C1C1FBF8FFAC0ABB17C1505B +:102B9C0002C18C0270C1506CFD630310061004C698 +:102BAC00D7C7C1FBF8FFAC08C15002C18B70C15034 +:102BBC006CFDB1021006C0C6D7C78806166770C177 +:102BCC00C75084FD2C031004C6D7C716C75084FD0C +:102BDC008902C0C6D7C74A2004DE045600EF02564D +:102BEC00018F08F9318FE7240000DD1A23DD0B2358 +:102BFC00DD0C23DD1123DD0CEF0C8686EF08510470 +:102C0C006106EF02868666318F12504CD633514CDA +:102C1C00D6610A045420BD384008F902DD0640088C +:102C2C00F904DF08CD3B54CD3C44EF06CD3B4BCDF6 +:102C3C003C3DC6D740AFFB3DDC05CF04FC0FD74075 +:102C4C00AFFB1FDC05CF04FC0BD740AFFB0BDC0547 +:102C5C00CF04FC07D740AFFB0661D831320405CF57 +:102C6C0004FC03D7D5AFFBDD04E504FCD7F504FC6D +:102C7C00D7D504F9DF04717396D7FDC92C6261FBBB +:102C8C0071019771149671079761C831729617711B +:102C9C007296710497711196F171049761DC70C191 +:102CAC005012FDC247C0D7C716C75004FDAD2BC08C +:102CBC00C6D7C716C75002FDAD2BC0C6D740AFFB59 +:102CCC000BDE02E2D7F2D7C75003FDD62B62318F51 +:102CDC00085CFD70C15003FDC52BC0C6D771000147 +:102CEC000571785005713AD5713BD18F10055CFC9C +:102CFC009F1005CF54054AE542057110420571003D +:102D0C004205714850057130500571205005CF5364 +:102D1C000509CF52050B7130510571205105713BDE +:102D2C00D5717050058F11055CFC9F1105F422D7ED +:102D3C007178500571080105D7FDF638FD980471BE +:102D4C007AFAFDB123F504F98F06F931051B50030E +:102D5C00FDD62B625C01D161E8CF04F902CFAFFB49 +:102D6C0064710407714196EF10F67104076110123B +:102D7C00F6B1236061FB714196FDFE30FD66437137 +:102D8C002299712BE7618461A461EDEFF8D7C788B4 +:102D9C00061666614FDD0967614EDE0396EF01860C +:102DAC006672C6D7C7161714AA0412A943DD29AA3E +:102DBC000412A923FDF04EC3AC02FDF04E13C2BDAC +:102DCC00D813FDA50FDE0C1714AA0212AA0403BA1D +:102DDC0004EF051714A9BA04AC041231FF319E0399 +:102DEC00317F087208C6D77100F200304400BFB6BC +:102DFC0001300188BF9001300984BF9E01BF9C0146 +:102E0C00BF9A01BF9801BF9601BF9401BF9201F513 +:102E1C003CFF30FE00BFBE01F6BFBC01BFB8015085 +:102E2C00EEBFBA01A1BFB201C918FE008F06F9317D +:102E3C000507F5CDFBCB6CFF00717397716297D7CB +:102E4C00C72004FBF8FF3026FBBC02F6BBAB446486 +:102E5C0000DE0EAC0214CA0000617902617900EF49 +:102E6C00EC1004C6D730EF00BFB401F6BFBA017145 +:102E7C0008F200712304715307BE6EBE64BE6A7102 +:102E8C002304715307715BD1F457F456716397D7D0 +:102E9C008D58B458D1DF6931D4D105715BD1E45769 +:102EAC00D457DD2E7140B2FBD856F1E73402002323 +:102EBC00DD0625DD0325DF05F6BE66EF06D9CCFB66 +:102ECC00F1BE66A4564A5620DF04F456F457CD588A +:102EDC0019D7CD581E7148B2FBD5CEFBDF04F6BE18 +:102EEC0066D7D9CCFBF14266FFDD15D9CCFBF112CC +:102EFC00AE6643DE05A266FFEF03B266FFCD580354 +:102F0C00D7C7161714F6B9AA0412F6231231FF31DB +:102F1C00AE03316FBA02AA046168DD0AAA026168C5 +:102F2C00DF04F6B1BA02C6D7C7C1FBF8FF8C085054 +:102F3C0080D612AB1413B9AB14AA0412A92312D95C +:102F4C0027FBF133BDD813FD110EBA02C0C6D73121 +:102F5C00049801D74004F902DF10F6BE64BE6EBEC1 +:102F6C006ABF8EFBBF94FBBF9AFB31749714308AF7 +:102F7C00FBFD0D2F3090FBFD0D2F3096FBFD0D2F23 +:102F8C00EF713114980D7113987108D2FBF45AF447 +:102F9C0059EF60D459DF5A8F26FB9D594A5A1FDCD2 +:102FAC00177100D2FB4028FBFFDD1CA45B8F28FBB4 +:102FBC004B5BDE13F45AEF0FD85AF1A1605C1F9DE6 +:102FCC005A7108D2FBF45BE85A092AFB70C1308AAB +:102FDC00FBFD342FC0E85A094AFB70C13090FBFD51 +:102FEC00342FC0E85A096AFB70C13096FBFD342FB0 +:102FFC00C0B459308AFBFDB02DF313BE6E3090FB7C +:10300C00FDB02DF313BE6A3096FBFDB02DF313BE4D +:10301C0064D7C736F00071F4DC297170F000CE9DD6 +:10302C0008CE9EC0CE9F80F594FFF593FFF592FFDE +:10303C00E597FFE596FFE595FFE598FFCE9C7F7140 +:10304C0000A6FB711BE3712BE3711AE7712BE7717F +:10305C007A9D710A9E31929E02EFFA710B9E71233A +:10306C0098713398714398C6D7C73122981E712234 +:10307C0098710A9E31929E02EFFA34D4FB3692FF7D +:10308C0052078B99A5A792DFF9710B9EC6D7C788FB +:10309C00061631329815713298C7349CFB3092FF6A +:1030AC001652078B99A5A792DFF9C6667367189C11 +:1030BC00FBC6D7C77123983134981E713398710AA7 +:1030CC009E31929E02EFFA3492FF369CFB52078B94 +:1030DC0099A5A792DFF9710B9E314498137143980F +:1030EC00717B9E8FDCFB9E9A8FDDFB9E9B717A9E83 +:1030FC00C6D7CFA7FB5CCFA8FB5FCFC8FB5DCFFCCF +:10310C00FB36CFFDFBC9D7C7CFA4FB13CFA5FB82E2 +:10311C00CFCCFBFFF5CDFBF5CEFBF5CFFBF5D0FB14 +:10312C005600664C64DE08723826FB0086EFF3F519 +:10313C00E3FB714A9D712B21710A20711A207102D7 +:10314C0003C6D7C788061617F1E73403002361E3DB +:10315C00ED7B342361F8ED5233B12361E3ED5C3345 +:10316C002561F8ED6A33B1240D0061D8ED7B342470 +:10317C000B0061F8ED44322361F8ED87322361F8DE +:10318C00ED57322361F8ED743424060061F8ED0636 +:10319C0033B12561D8ED223324000061F8ED2F33D3 +:1031AC002361F8ED7B342361F8ED7934B12361E3CD +:1031BC00ED8A332361F8ED9B332361F8EDAC3323B7 +:1031CC0061F8ED9B332361F8EDBD332361F8EDCE4F +:1031DC00332361F8EDDD332361F8EDFF332361F820 +:1031EC00ED0A342361F8ED15342361F8ED1D342418 +:1031FC0002002361E3ED7B342361F8ED513423614C +:10320C00F8ED25342361F8ED30342561F8ED3B34CD +:10321C00B124060061D8ED7B3424000061F8ED7D0B +:10322C00342561F8ED463424120061F8ED003323A7 +:10323C0061F8EDF032ED7D3467D1DD0C30293C6165 +:10324C009434C4FB89616F99ED8734675C02D1DDDE +:10325C0007304E2B6194EF0B675C01D1DD053053C9 +:10326C002B6194675C3CD1DD0F30582B6194675C0B +:10327C003C7266736218A4FBED873467D1DD625C27 +:10328C0001D1DD05300800EF01F6609F01FC675CA1 +:10329C0002D1DD03E6EF01F63401FC896168996720 +:1032AC005C04D1DD04E6A1EF01F63401FC89616810 +:1032BC0099675C08D1DD05302000EF01F63401FC84 +:1032CC0089616899675C10D1DD05301000EF01F65B +:1032DC003401FC89616899675C20D161E8716001F7 +:1032EC00FCED87344A5CC8DE08E85C67185AFAA41F +:1032FC005CED8734679D5CED8734D44ADF08679FAB +:10330C00CDFBA44AEF0D4A4A05DE08E84A671811BE +:10331C00FDA44AED8734675C0F7266736218A4FBD8 +:10332C00ED87344A4A64DE1B4A4A01DF0667D161E5 +:10333C00F85701E84A671826FBA44A4A4A0561C8AF +:10334C00711298ED873434A6FB89615F99ED87344F +:10335C0030BF29619466736718A4FBED873440A9CC +:10336C00FB6ADF1340AAFB68DF0D674C6CDF08308B +:10337C00A3406194713AD5679FABFBED8734675CD2 +:10338C007F70C117F1243000FD9A30C0ED8734678F +:10339C005C3F70C117F1243000FD9A30C0ED8734CA +:1033AC00675C0770C117F1243000FD9A30C0ED87BF +:1033BC0034675C1F70C117F1243000FD9A30C0EDEA +:1033CC0087346770C117F1243000FD9A30C0ED8747 +:1033DC0034CEABAC710A9E31929E02EFFAD592FFBD +:1033EC00DF05710B9EEFED679E99710B9E9FDBFBCA +:1033FC00ED8734714298675C7F9FDCFBEF7D7142F7 +:10340C0098675C3F9FDDFBEF72675C3F9FDEFBEFD5 +:10341C006A675C1F9FDFFBEF6230DA396194679F4C +:10342C00E4FBEF5730A7396194679FE5FBEF4C3015 +:10343C00C0396194679FE8FBEF41675C01D1DD3BCC +:10344C00FD6643EF36675C02D1DD05712A21EF067C +:10345C00714A9D712B21675C01D1DD0671030071EE +:10346C000B20679FE3FBEF1367318EEF0EEF0CEF32 +:10347C000A664C5BDE05736718A4FBC6D7C71666D5 +:10348C004C30DC094C37DE05FD7530EF76664C02AE +:10349C00DF1F8FA6FB5C03728F03FC5C03318E3144 +:1034AC006D08616A08128F03FC5C80312A6162EF3F +:1034BC0061664C3DDF08AE90BD5EF85EEF54664C25 +:1034CC003EDF04F85FEF4B664C4FDF05FD8E43EF9C +:1034DC0041664C61DF134A5CC8DC045700EF06E818 +:1034EC005C095AFA776772EF29664C7FDF05FD9A03 +:1034FC003CEF1F664C4EDF0B31049A045210EF1256 +:10350C00F2EF0F664C5BDC0452FFEF06667309A406 +:10351C00FB72C6D7C788061617F1241000240500C5 +:10352C00DC07244C00DD17EF17717BFA17F104A4AC +:10353C00FB1489617F99717AFA715298EF02A45C3D +:10354C00C6D7C7C1C1FBF8FF4004F903DD06400430 +:10355C00F904DF38717BFA8C027309ACFB5E0AD17B +:10356C00DF278C02318E04A4FB14896E0A997162D8 +:10357C0007717AFACC0100316207086159018C019C +:10358C00D1DFF4716307716B27717AFA1004C6D717 +:10359C00CF03FC03F501FCF505FCF507FCD7C78848 +:1035AC00061617F1E734020025DD3D23DD1725DD76 +:1035BC001C23DD0523DD2BEF3B710299679F06FC75 +:1035CC00CD6303EF2F675C839F03FCEF27675C03DE +:1035DC009F05FC675C034C0261F871229AFD7C45E7 +:1035EC00EF12679F07FCEF0C6791DF08E0C15012E8 +:1035FC00FD4E35C0C6D7C71617F1E7240000DD2AEB +:10360C0023DD1E240300DD0724FB00DD24EF253120 +:10361C00329A05308000EF01F6086F04FC7208EF57 +:10362C00198F01FCF501FC72EF107152995235EFB4 +:10363C0009F2EF0666730900FC72C6D7C71617F1BC +:10364C00E7240000DD38241000DD1C23DD1C23DD05 +:10365C0030240E00DD18241100DD1B240F00DD12B8 +:10366C00243000DD15EF1EE2EF1D5202EF1952045B +:10367C00EF155206EF115205EF0D5207EF09F2EF5D +:10368C00065203EF0252FFC6D7C7316498377163F5 +:10369C00988D629FACFB8D619FCBFB36D2FCC7D85B +:1036AC0061FDFC37618A70618AFD4138C0D866F1D2 +:1036BC00312F609D658D604B65DD0A7172988D654B +:1036CC009D60CD63034A6305DE083006376194CDF7 +:1036DC00636BB4637150F000CE300BCF170006CE85 +:1036EC003106FD6402717A30710BE3710BE7C6D7BA +:1036FC008D659D608D659FADFBD74004F903DF069A +:10370C004004F904DF02F2D73174980C717398718C +:10371C0013998D659D67EF313104991F7103997170 +:10372C001299D506FCDF04F468EF0A8F06FC5002F0 +:10373C00D6A1609D688D689D67EF0E311499068D3A +:10374C00689D67EF048D659D678D679FADFBD8679E +:10375C00FD6E37E867091C2270C15013FDC247C0CB +:10376C00F2D7C7C1C1FBF8FF8C02D1DF05F506FC0F +:10377C00EF1A8C024C05DE06CF06FC02EF0E8C0213 +:10378C00318E1231FE03311F609F06FC8D694F068E +:10379C00FCDD28CC011F8F06FC9D69CC00008B4CF6 +:1037AC0008DE148B730912204F06FCDC058B9C0180 +:1037BC00EF05615900EFE78C019D641004C6D7C773 +:1037CC0016710AE7710BE37150F000CE300BCF1776 +:1037DC000006669E31FD6402717A30710BE3318212 +:1037EC00E302EFFA8D1F7158F000710BE772C6D728 +:1037FC00C7C1C1FBF8FF8FFCFB4E02DC03F2EF31BB +:10380C008C024FFDFBDC0452FFEF268C022FFCFBDD +:10381C00706131318D128FFDFB2FFCFB70613133E8 +:10382C00BDD813FD330EBB440001DC03F690BB8BFB +:10383C00721004C6D7C7C1FBF8FFAC0814A91489D1 +:10384C00708B6128706131FDF04E1344030071FEE2 +:10385C00DC23AC08148A04819A04AC08148A044C46 +:10386C0011DC10A9148B99AC0814CA0200AC081412 +:10387C00CA0310EF72AC0814CA0400AC0814A914E3 +:10388C00894DDE0AAC08148A02819A02EF12AC0848 +:10389C0014A914894D61D308AC08148A02919A02B8 +:1038AC00AC08148A03919A03D1DF3CAC08148A0249 +:1038BC004C10DF10A91489318EA112AC0814A91474 +:1038CC006299EF17AC08148A024CF0DF0EA9148928 +:1038DC00318EB112AC0814A9146299AC0814CA0246 +:1038EC0000AC0814CA0310C0C6D7EDF938C756008F +:1038FC00664C0ADE0BF0317E12F67810FC86EFF087 +:10390C00C6D7C7200CFBF8FF17040600C15006C130 +:10391C0050A8C15030FDB1021006D2DD1B4A6C0418 +:10392C00DE05A46CE2EF7034E4FB895CFC99FDDAF3 +:10393C00397110B2FBF2EF5F717BFA300600C117E0 +:10394C00040600C130E9FBFDF84E1004717AFAF45C +:10395C006C8FE4FB5C01D1DD264004F903DF2050C1 +:10396C0010C180FD4E35C0C736100571D4C6DE0FB0 +:10397C0017C15006C150A8C15030FDB1021006400D +:10398C0004F903DD064004F904DF0B8FE4FB5C0251 +:10399C00D161E8FDA840F2100CC6D7D9E5FBC150A7 +:1039AC0030FD8902C0629FE8FB5008C15011FD4EEA +:1039BC0035C0F2D7D9E8FBC1D9E7FBC15030FD2C9B +:1039CC000310045008C15011FD4E35C0F2D7C7206A +:1039DC000CFBF8FFCC09004007F901DF05CC0A020B +:1039EC00EF03CC0A10CC0B808FE4FB5C039C07D15B +:1039FC00DF08717AD5CC0807EF06717BD5CC082F80 +:103A0C0017040800C15004C150A0C15030FD63031D +:103A1C001006624C02DF077110B2FBF2EF35711821 +:103A2C00B2FBF46CC736100571D4C6DE164004F92F +:103A3C0003DF1017A1C15006C150A8C15030FDB111 +:103A4C00021006717BFA8FE4FB5C034E07DD03E288 +:103A5C00EF01F2100CC6D7D504F9DF03F6BD6E40AA +:103A6C0004F901DD0AD478DD03B478D7CD78038F5F +:103A7C0004F9318FE723DD0B24020024030061C815 +:103A8C00ED973B8F06F931234D301B00466EDF1945 +:103A9C008FE3FB5C01D161E8F504F931049B27E06D +:103AAC00C15010FD4E35C0EF1D307701466EDF164C +:103ABC005002C15010FD4E35C0F64674DF088FC859 +:103ACC00FB5010D6BD74F64674DD36B6744674DF02 +:103ADC0030711297EF2B301B00466EDF13F64676D3 +:103AEC00DF18E0C15010FD4E35C0C9765307EF0A00 +:103AFC00307701466E61F8711297F6467661E8B63A +:103B0C007631549A08714399F6BD6EEF143144998D +:103B1C0005F6BD6EEF0BA66EF6466E61F8C96EFF2C +:103B2C00FF31629A194A7005DE16A4704A7005DFDF +:103B3C000FA4705004C15010FD4E35C0EF02F4704C +:103B4C0031649A194A7205DE16A4724A7205DF0FA7 +:103B5C00A4725008C15010FD4E35C0EF02F472D45F +:103B6C0073DD03B473D731729A174A7105DE14A44E +:103B7C00714A7105DF0DA4715010C1FD4E35C0EFB7 +:103B8C0002F4714A710661F8CD7325D7C73610055A +:103B9C0071D4DE0E8FB2FB5C02D1DF06300E3961C0 +:103BAC0094D24004F903DF1C3122070530802A61CE +:103BBC00943154990C7153995080C15012FD4E356B +:103BCC00C0FDD53BFDFB3BC6D78F03FC5C01D1DDB3 +:103BDC001DD47BDD03B47BD7CD7B098D644B7ADDA3 +:103BEC000D8D649D7A5040C15012FD4E35C0D740AA +:103BFC0004F903DD04F6BD1AD7D5D0FBDF08F64671 +:103C0C001ADD19B61AD7D9CCFBF1461ADD0ED9CC70 +:103C1C00FB12AD1A43DE03A61AD7B61AD7717BFA7C +:103C2C00C78FC4FB76F5C4FB717AFA5C10D161E8DE +:103C3C00716299665C0FD1DD52665C01D1DD05F5D0 +:103C4C0004F9EF47665C02D1DD0CFDD32C71130037 +:103C5C00711B20710303665C04D1DD1171130071BB +:103C6C001B20D503FC61F8710303FD9C35665C08D1 +:103C7C00D161E87103035005FD220A710203500360 +:103C8C00C1FDC52BC0711A20FD6D2BF2C6D7C756CE +:103C9C00FF4A4A1361C8ED583D8F06F931150D31B5 +:103CAC004505300600EF14300400EF0F8F06F93194 +:103CBC004505300500EF04D907F9F1609F28FC8D0C +:103CCC007C9F29FC713496E661301271049661DC9C +:103CDC0031196162629F2AFCE52BFC31449A053054 +:103CEC004000EF01F6C131340405302000EF01F63D +:103CFC00C2616B08616A08C131749A05300400EF27 +:103D0C0001F6C2616B08616A08C131649A04E6A1CC +:103D1C00EF01F6C2616B08616A08C131549A03E67F +:103D2C00EF01F6C2616B08616A9F2CFCF1712404EF +:103D3C0061DC9F26FCF171540761DC9F27FCD84A9B +:103D4C00F10104ECFC14A9148976A44A6672C6D756 +:103D5C00C7FD46098F04F9318FE724000061F8EDA7 +:103D6C001A3F23DD1B2361F8ED433E2361F8EDBCC4 +:103D7C003E2361F8EDF83E2361F8EDBA3FED173FB5 +:103D8C00F6BD747113974005F901DF2C31349A1B81 +:103D9C00466EDD04F424EF02A4244A2465DC0FF6FD +:103DAC00BD6EF504F9712299ED1E40FDB123AD6E87 +:103DBC00440A0061D8ED1E40714299FD980471636C +:103DCC0096FDB1234007F903DF09712299F504F937 +:103DDC00ED1E40FD7E2640B1FB9BDE09712299F55C +:103DEC0004F9ED1E40714A2771401105713011051F +:103DFC00713A22715A2271501105FDD829D2DD0970 +:103E0C00712299F504F9ED1E4071103500CF370081 +:103E1C001D71401205FD3F2A4005F901DD064005E4 +:103E2C00F903DF05F5CDFBEF04CFCDFB03CF04F990 +:103E3C0002FDAA29ED1E4071103500CF37001D710F +:103E4C00401205FDE92CFD0605FD9C35FD1331F5F1 +:103E5C0037FF712BE0F505F9712299CBE43FEFCBDD +:103E6C00E6F6F0FD9804713BD48F06F9310522502B +:103E7C0002FDD62BD261E87170B3FB5004FDD62B3A +:103E8C00625C03318E315D34B3FB89616899FDB19D +:103E9C0023FDF32D710806F9CF04F9038FA6FB5C03 +:103EAC0002D1DD095080C15010FD4E35C0ED1E40D1 +:103EBC00FD20403164992FA47ED47EDD0831A4E02E +:103ECC000A31020C06712BE0FD944031A4E017314D +:103EDC00040C13712BE05027C15005FDC52BC0CF2E +:103EEC0004F904712299FD8940ED1E40FD204031FA +:103EFC00020C15D83AC15005FDC52BC05005FD224A +:103F0C000AFD9440CF04F903FD8940F504F9CFCDA7 +:103F1C00FB03F5CEFBF5D0FB717297F6426CFF619B +:103F2C00E8ED1E40F6BD74711397F5E4FBFDDA392C +:103F3C00717AFAFD712EFD3C2DFD5805712B217106 +:103F4C004B9D31349702EFFACE3708CBE4BFFFCB51 +:103F5C00E6FFF3CED4FFF5B4FBF5B5FBF5B6FBF5F8 +:103F6C00B7FBCF37000971481205F6BEE0BEE2BEC2 +:103F7C00D0716A27FD522A714307714B2771481083 +:103F8C00057148110571381005713811057133022E +:103F9C00713B22715302715B2271581005715811DB +:103FAC0005CF04F905714299F6BD6EFD0F0AF505B2 +:103FBC00F9F4247128100531349A04D432DD08E563 +:103FCC0005F9E504F9EF4BFDEC04FD442371730195 +:103FDC0071320471430271039671629631949E02A0 +:103FEC00EFFA712AE7CEA409F5F300310407026158 +:103FFC00FDE5F300F46AFD4609CEA40831329A06B9 +:10400C00CF04F905EF09714399E505F9E504F97158 +:10401C002BE7C6D78FE3FB5C01D1DF60D47FDF19C0 +:10402C00310200585003FDD62B625C01D1DF07F53D +:10403C0004F9712299D7E47FD74A7FF0DF07310466 +:10404C00003AF47FD74A7FC8DF0AF504F971229948 +:10405C00CD7FF0D7310200084A7FFFDD1FA47FD748 +:10406C00F0C15004FDC52BC08FB3FB5C9F9FB3FB0D +:10407C007110C4FB30293C6194CD7FF0D73114977B +:10408C0006F504F9712299D7716399F47E71720760 +:10409C00FD6402717307D7FD6105F2D7717BFAC716 +:1040AC00200CFBF8FF8FEAFBF0F9E9FBF303FDF0C2 +:1040BC004E13BC048FECFBF0F9EBFBF303FDF04E5D +:1040CC0013BC028FEEFBF0F9EDFBF303FDF04E1386 +:1040DC00BB717AFAAC04BDD8F6BDDAAC04311EBDA6 +:1040EC00DCF6BDDEFDE60DADD8BDDCADDABDDEAC7B +:1040FC0002BDD8F6BDDAAC02311EDADCC3DADEC39F +:10410C00BDDCF6BDDEFDE60DC0BDDEC0BDDCADDE4A +:10411C00FD5C0FADD8BDDCADDABDDEABBDD8F6BDF8 +:10412C00DAAB311EDADCC3DADEC3BDDCF6BDDEFD94 +:10413C00E60DC0BDDEC0BDDCADDEFD5C0FDADAAD78 +:10414C00D8FD7744C3C58D8C5C3FF0317E0440FCB8 +:10415C0014C2C0B9A48CF6BC08BC0A9C078C074CD2 +:10416C002EDD3D8D8C0E0770F161DC605C3FF03113 +:10417C007E127940FCBDD8F6BDDA8C0773095C223F +:10418C00318FBDDC70BDDEFDE60DAC08BDDCAC0ACC +:10419C00FD5C0FADDABC0AADD8BC08615907EFBDA8 +:1041AC00AC08BDD8AC0ABDDAC9DC0004F6FDB00E13 +:1041BC00C9DCFFFFF6FDB10FADD8BD86AF3AFC46AA +:1041CC0086DD11AF3CFCBF3EFCAF3AFCBF3CFCAD06 +:1041DC0086BF3AFCAF3CFC423EFCDC46AF3AFC42AC +:1041EC003CFCDE3EAD26423AFCDE374A2A16DC1A8F +:1041FC004A2AA0DE138D884B2ADE0DAF3AFC268AA4 +:10420C0044691061C8FD6042F42AAF3AFC4451463F +:10421C00DC0AAF3AFC241027BD28EF0DC928F82A78 +:10422C00EF074A2AFF61E8A42AAF3EFC423CFCDCC3 +:10423C0018AF3CFC423AFCDE10AF3AFC4628DE09D3 +:10424C00F488AF3AFCBD8AEF074A88FF61E8A4887E +:10425C00100CC6D7717BFAC7710A9E31929E02EF81 +:10426C00FA8E949F34FC8E969F35FC8E979F36FC6D +:10427C008E989F37FC8E939F38FC8E929F39FC71E1 +:10428C000B9E717AFA8F37FCFDC50F76FDF5431343 +:10429C00BD84D5EFFBDF0AD5F0FBDF05D5F1FBDDE7 +:1042AC0025F6B14684DF11C9843722665C0391DFA1 +:1042BC00060A84181A85009617FD184513FD384315 +:1042CC0031049A02EF61520692926934FC682EFC1A +:1042DC00DFF6AD84BD82F880F3311C790AF944FE17 +:1042EC00FFDD44D880F101040AF914A944FFFFDF73 +:1042FC0004E6B9EF0BD880F101040AF914A9A1B9AD +:10430C00717BFAA0EFFBD5EFFBDF1CA0F0FBD5F027 +:10431C00FBDF14A0F1FBD5F1FBDF0CCFEFFBFFCFE4 +:10432C00F0FBFFCFF1FBFFC6717AFAD7C716D88026 +:10433C00F10744A800DC0571029AEF1CF647DD1862 +:10434C00A4804A80A8DC0571029AEF0CF880F33146 +:10435C001CF6780AF9B7EFE4C6D7C756A89666F0EC +:10436C00317E12F6B1780AF966D1DFF1717BFAF57C +:10437C00EFFBF5F0FBF5F1FBF48071039AC6717A53 +:10438C00FAD7C72004FBF8FFD44ADF168D809D8D29 +:10439C00717BFA52069292692EFC68C0FCDFF671B2 +:1043AC007AFA4A4A06DE0EE84A09C0FC9C03A44A83 +:1043BC008C0372EF30F88DF3311C790AF9BB311292 +:1043CC009A058B9C03EF0F8C019C03D48DDF05CDDC +:1043DC008DA7EF02B48D718071179A61DC61FB714E +:1043EC00119A8C03721004C6D7C72008FBF8FF8FF4 +:1043FC0037FCFDC50F9C078F36FCFDC50F9C068F47 +:10440C0035FCFDC50F9C058F34FCFDC50F9C048F3E +:10441C0038FC9C038F39FC9C028C06318E0112797E +:10442C001A20BB8C075C03D1DF098C064C0361C8D6 +:10443C006179008C05318EB1610900BB313D1201EF +:10444C0003BB8B0E04708C011C00BB8FF4FB4E0362 +:10445C00DC0E8C034FF4FBDC0B8C024FF5FBDC0405 +:10446C00AB12EF03ABB1121008C6D7C7C3C12008FB +:10447C00FBF8FFF661490A61F8614908DF07F73478 +:10448C000000ED1445E6BC04F6BC06AC0ABC02AC5C +:10449C0008BBAC06614902AC0461F8614900DE2836 +:1044AC00AC04BDD8AC06BDDAE1FD6B0FADDABC06D1 +:1044BC00ADD8BC04ABBDD8AC02BDDAE1FD860FAD06 +:1044CC00DABC02ADD8BBEFCAAC06BC02AC04BBACC8 +:1044DC0008BDD8AC0ABDDAAC04BDDCAC06FDE90EF7 +:1044EC00AC04BDDCAC06FD5C0FE1FD860FADDABCA7 +:1044FC0006ADD8BC04AC06614902AC0461F8614954 +:10450C0000DCC5AC0214AB12100CC6D7C7C120041A +:10451C00FBF8FF8F31FCFDC50F9C034E04DF1CAD77 +:10452C00824684DE07AD84268212EF40F64684DF95 +:10453C00074682DD03E7EF34F7EF318C04318EB19F +:10454C00128C03318E43DF1830382226820684BB4E +:10455C008C045C0391DF05AB041800BBAB12EF0CB1 +:10456C008C034E04DE0532A900EF01F71006C6D706 +:10457C00717BFA31229A0CF64690DD07B690717A6F +:10458C00FAEF7C71239A717AFA4004F904DF07710F +:10459C005307F42CEF69D9CFFBF1E7240000DD0FB2 +:1045AC0023DD1A23DD1023DD5323DD2723DD3871B2 +:1045BC005307F42CEF49715207F42CEF42D42CDF43 +:1045CC0007715207E42CEF05715307F42CC990FACC +:1045DC0000EF2CD42CDF0B715207E42CC990FA009D +:1045EC00EF1DF5CFFBEF18D42CDF0B715307E42C28 +:1045FC00C990FA00EF09CFCFFB02EF03FD0C46D7B1 +:10460C00D905FCF1E7240000DD0923DD2123DD09B8 +:10461C0023EF1B715307F42CD7D42CDF07715207EF +:10462C00E42CEF05715307F42CC9902D01D771526E +:10463C0007E42CD731629701D7710398D9CDFBF1E0 +:10464C00E7240000DD1223DD1923DD1123DD2623F1 +:10465C00DD3423DD3923DD3FFDCC46EF3DFDED465A +:10466C00EF38D9CCFBC1AE6CFD9A2DC0F313BE6CE8 +:10467C00712304EF25F0C1AE6CFD9A2DC0F313BE6F +:10468C006C712304EF14F6BE6C712204EF0CCB6C2E +:10469C00FF00712304EF03FD61474004F905DD06BB +:1046AC004004F901DF067123047103983104980F5B +:1046BC00F6BE64BE6A31220402EF02F690BE6ED7DB +:1046CC00CD2E47F492AE6C317DBFCAFCFD3647D27D +:1046DC00DF0ED9CCFBC1AE6CFD9A2DC0F313BE6CB2 +:1046EC00D7FD3647D2DD0DCD2E47F492AE6C317D21 +:1046FC00BFCAFCD7E8920934205080D6BFC6FC2232 +:10470C00CAFCBDD8304700FD110EBFC8FC30C6FC3A +:10471C00FDB02DF313BE6CB42ED42EDF0CCD2E4772 +:10472C00A4924A921F61C8F492D740AFFB0BDC05F0 +:10473C00712304F2D740AFFB0661D831229611F0F9 +:10474C00C1AE6CFD9A2DC0F313BE6C712204EF0345 +:10475C00FD6147E2D7710298F0C1AE6CFD9A2DC095 +:10476C00F313BE6CA4934A9340DC37F493D894F1C2 +:10477C00313F0412FD14D894F1BDD85008FD600EE1 +:10478C00087208E6D2DD040192DFFC896158D1DDA4 +:10479C0005712204EF03712304A4944A942061C888 +:1047AC00F494D7C73026FDC6D77180717DFADE032D +:1047BC005201D75200D7C7C12004FBF8FF170403DE +:1047CC0000C1E0C15010C150A4FDB1021006629CA2 +:1047DC0002D1DD058C0272EF518C0C70C18C04700F +:1047EC00FD3A48C0629C02D1DD058C0272EF3B8C15 +:1047FC00035C7DD1DF03F2EF3117A1C1E0C1501092 +:10480C00C150A4FDB1021006629C02D1DD058C02E0 +:10481C0072EF178C015C7DD1DD03F2EF0D8C037010 +:10482C00C15010FD3A48C0629C021006C6D7C7881A +:10483C000616710AE650A4FDE503D2DD0771339725 +:10484C005202EF1317FD01046770FD0104FD65486A +:10485C00FD7504713397F2C6D7FD4C0450A4FD01CD +:0B486C00045020FD010450AAED0104DF +:1048770061FC61FCC1C3C5C7520C929269D4FEC1E9 +:10488700DFF88EFD708EFCC1717AFA4004F903DF00 +:104897000530802A6194C09EFC609EFD34D4FE5290 +:1048A70006C0B9A5A592DFF9C6C4C2C061FC61DF25 +:1048B700520C929269D4FEC1DFF88EFD708EFCC156 +:1048C7008F4105775C04D1DD06675C01D1DD50318E +:1048D7005498367162077153988FB4FB5FBCFBD154 +:1048E700DF1B8FB5FB5FBDFBD1DF128FB6FB5FBE52 +:1048F700FBD1DF098FB7FB5FBFFBD1DD0C3162074F +:1049070002EFFA716307716B2771139AFDBF30F4D9 +:10491700227148500571605005717AFAED114A67A6 +:104927005C02D1DD16D422DD124A2202DD0DF4220B +:104937007148500571605005717AFA717AFA8D22C3 +:10494700318FE7240000DD0823DD1423DD2CEF4A37 +:10495700F44A7140500571505005E422ED114A8F19 +:1049670040059D4B715050058D4B9D4DD84BFD8992 +:1049770034629D4CCD2202ED114A675C02D1DD17EE +:10498700675C10D1DD05CD2203EF0F71485005712B +:10499700605005F422EF73CD22044A2203DF108D05 +:1049A7004C9F4005D84CC1D84BFD2035C0EF1F8F19 +:1049B70040057671744BDC054A4B02DE0671605088 +:1049C70005EF47C7D84BFD4F31C071505005D84D43 +:1049D700F1242900DD27240400DD22242200DD1D27 +:1049E700241100DD0C240100DD13241E00DD0EEF71 +:1049F7000A4A4B60DF07CD4B61EF02A44B4A220303 +:104A0700DF08D84BFD8934629D4CC09EFC609EFD3B +:104A170034D4FE5206C0B9A5A592DFF961FCC1C323 +:104A2700C5C7520C929269D4FEC1DFF88EFD708E15 +:104A3700FCC1717AFA51405F0401D1DD06F616A771 +:104A470047DFF2300400BF2401F6BF2A01300B0B09 +:104A5700BF2801FD6402300B0FBF2801FD6402303F +:104A67000F0FBF2801710AE6F6420C01DD33AF04D0 +:104A770001BF0C0131529729715297710BE2D8513E +:104A8700FDE5033184BD02EFFACBB422FBD853F125 +:104A9700BEB8714BE1714BE5710ABD8D529E44EF73 +:104AA7000C715397714AE5717BBD713397C09EFCBA +:104AB700609EFD34D4FE5206C0B9A5A592DFF9C6A3 +:104AC700C4C2C061FCC1C5717AFAD450DD0BEA4E8D +:104AD700899E44A64EB450EF33710AE6300400BFF6 +:104AE7002401F6BF2A01300B0BBF2801000000008C +:104AF70000000000510FBF28010000000000000067 +:104B070000500FBF2801712397713397C4C061FC10 +:104B170061EF520C929269D4FEC1DFF88EFD708E60 +:104B2700FCC12006FBF8FF71503002CEABACCC04C1 +:104B370000F6BB31B2E210617900F6614900DFF39C +:104B470071603002EDD14B8E519C03713BE28C03B7 +:104B57005C02D1DD1E8C035C08D1DF097150300285 +:104B6700CC0400EFCC8C0570FD0236629E50CC045D +:104B770002EFBE8C035C03D1DF408E509C02715064 +:104B870030028C04D1DF0E8C0270FD4836629C0522 +:104B9700CC0401EF328C044C02DF0671603002EF67 +:104BA70029CF34025A716030028C0270C18C0570B3 +:104BB700FDAA35C0CF34024AEF108C035C01D1DD6A +:104BC7000671603002EF03ED384B1006C09EFC60A3 +:104BD7009EFD34D4FE5206C0B9A5A592DFF961FC4B +:104BE700C1C3C5C7520C929269D4FEC1DFF88EFDCE +:104BF700708EFCC1710A9E31929E02EFFA8FDEFB26 +:104C07004F96FFDF198FDFFB4F97FFDF118FE0FB19 +:104C17004F98FFDF095004C15011FD4E35C0710B8D +:104C27009EC09EFC609EFD34D4FE5206C0B9A5A569 +:104C370092DFF9C6C4C2C061FCE46A61FCC1C3C5A6 +:104C4700C7520C929269D4FEC1DFF88EFD708EFCBC +:104C5700C1C1FBF8FF8D1F9C018E31318EE7240601 +:104C670000DD0823DD0E23DD22EF38717AFA8C018F +:104C77009D62EF2F717AFA4007F901DF068C019DDB +:104C870061EF2051FF2E019D61EF18717AFA8C01B7 +:104C97009D304004F903DD064004F904DF0530DCEC +:104CA7002561944031FF09DE05A031FFEF077158F8 +:104CB700F000716298710BE3C0C09EFC609EFD34EA +:104CC700D4FE5206C0B9A5A592DFF9C6C4C2C06119 +:104CD700FC717BFAC7D46A61F8312499277123994B +:104CE700D46ADD05B46ACEABAC717AFA5600664C6D +:104CF7000ADD1172F3311C79D8FCCEFC0061CA6160 +:104D0700A486EFEA717AFAF2C6D7C7C1C1FBF8FFEA +:104D1700CC01008C014C0ADE36717BFA8C01F03134 +:104D27007E0410FC14A96168DF09AC02B9717AFA34 +:104D3700F2EF1D8C01F0317E127910FC614902DF20 +:104D470006717AFAE2EF09717AFA615901EFC4E262 +:104D57001004C6D7C72004FBF8FFF64210FC61F821 +:104D6700ED3D4E717BFA9C038C034C0ADE3C8C03B1 +:104D7700F0317E0410FC14A96168DF05717AFAEF3F +:104D870029717AFA8C0372F3311C7910FCCEFC007E +:104D970061CA629C02D1DF0A8C03F0317E12E67889 +:104DA70010FC717BFA615903EFBECC0200CC010104 +:104DB7008C02F0317E0410FC14A96168DD788C0246 +:104DC700F0317E127910FCE743DF658C014C0ADE77 +:104DD7005F8C01F0317E127910FCE743DD4D717B6A +:104DE700FA8C01F0317E0410FC14A96168DF1861A8 +:104DF70069018C01F0317E12F67810FC8C024E01AD +:104E0700DCED717AFAEF2F8C01F0317E0410FC147F +:104E1700A9128C02F0317E337810FC8C01F0317EC0 +:104E270012E67810FC615902717AFA615901EF9B19 +:104E3700615902EDB74D00F21004C6D761FF520C5D +:104E4700929269D4FEC1DFF88EFD708EFCC1717A33 +:104E5700FA8FE4FB5C03D1DD114004F903DD064062 +:104E670004F904DF05300E396194C09EFC609EFD95 +:104E770034D4FE5206C0B9A5A592DFF961FC61FCE6 +:044E870061FC61FC6D +:0A4E8C0000060C12181E242A30360E +:104E9600ACFB0000000066FE00000000633A953699 +:104EA6008C2240469C2E5B2F7C45983BD1085C3D6E +:104EB60028FC36FE20FE02F903F929FC30FE2AFC06 +:104EC6002BFC08F926FC6CFF1AFF6EFF6AFF64FFD5 +:0A4ED60027FC66FF2CFC55555555CE +:104EE000FF0000000000983AF82AFF000000470089 +:104EF000317503F7332312D714AEF8C716AC061278 +:104F0000C5AC0416F643DD078B99A7A5B3EFF5C230 +:024F1000C6D702 +:024FF40033B2D6 +:0A4FF60030393A30383A3535000002 +:00000001FF + \ No newline at end of file diff --git a/snake_branches/3.82_trial_seisan/bsr.lmf b/snake_branches/3.82_trial_seisan/bsr.lmf new file mode 100644 index 0000000000000000000000000000000000000000..6c31ab8a85907da79bcb199bbca62e56e38ffef9 GIT binary patch literal 183208 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 TsV3YZ{xBujnsm1KEk6Gb7xCz* literal 0 HcmV?d00001 diff --git a/snake_branches/3.82_trial_seisan/bsr_k0r.map b/snake_branches/3.82_trial_seisan/bsr_k0r.map new file mode 100644 index 0000000..3b42c03 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/bsr_k0r.map @@ -0,0 +1,897 @@ + + + +78K0R Linker W1.33 Date: 8 Apr 2014 Page: 1 + +Command: -yC:\Program Files (x86)\NEC Electronics Tools\DEV -_msgoff - + obsr.lmf ..\..\..\Program Files (x86)\NEC Electronics Tools\C + C78K0R\W2.13\lib78k0r\s0rm.rel -gi1B339499E033F240BFAAh -pbsr + _k0r.map -nkd -gb7EFBFFh -bC:\Program Files (x86)\NEC Electro + nics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib -bcl0rdm.lib -bcl0r + m.lib -bcl0rmf.lib -iC:\Program Files (x86)\NEC Electronics T + ools\CC78K0R\W2.13\lib78k0r -dbsr_mcu.dr -s -w2 loader.rel pm + .rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_t + wl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel reng + e.rel accero.rel self_flash.rel sw.rel task_debug.rel task_mi + sc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel task_ + status.rel led_cam.rel led_pow.rel hal.rel batt_params.rel vo + ltable.rel pedo_lpf_coeff.rel kanaria.rel kanaria_c.rel get_e + i.rel util_funcs.rel i2c_mcu-sub.rel +Para-file: +Out-file: bsr.lmf +Map-file: bsr_k0r.map +Direc-file:bsr_mcu.dr + + +*** Link information *** + + 73 output segment(s) + 3E66H byte(s) real data + 6397 symbol(s) defined + + +*** Memory map *** + + + SPACE=REGULAR + + MEMORY=BCL0 + BASE ADDRESS=00000H SIZE=01000H + OUTPUT INPUT INPUT BASE SIZE + SEGMENT SEGMENT MODULE ADDRESS + @@VECT00 00000H 00002H CSEG AT + @@VECT00 @cstart 00000H 00002H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL loader 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL WDT 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL i2c_mcu 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL i2c_twl 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL self_flash + 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL task_debug + 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL task_status + 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL hal 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL util_funcs + 00002H 00000H +* gap * 00002H 0000EH + @@VECT10 00010H 00004H CSEG AT + @@VECT10 ini_VECT 00010H 00004H +* gap * 00014H 00008H + @@VECT1C 0001CH 00002H CSEG AT + @@VECT1C ini_VECT 0001CH 00002H +* gap * 0001EH 00006H + @@VECT24 00024H 00002H CSEG AT + @@VECT24 ini_VECT 00024H 00002H +* gap * 00026H 00004H + @@VECT2A 0002AH 00002H CSEG AT + @@VECT2A i2c_twl 0002AH 00002H +* gap * 0002CH 00008H + @@VECT34 00034H 00008H CSEG AT + @@VECT34 ini_VECT 00034H 00008H +* gap * 0003CH 0000EH + @@VECT4A 0004AH 00002H CSEG AT + @@VECT4A ini_VECT 0004AH 00002H +* gap * 0004CH 0000EH + @@VECT5A 0005AH 00002H CSEG AT + @@VECT5A i2c_ctr 0005AH 00002H +* gap * 0005CH 00006H + @@VECT62 00062H 00002H CSEG AT + @@VECT62 accero 00062H 00002H +* gap * 00064H 0001CH + @@CALT 00080H 00006H CSEG CALLT0 + @@CALT @cstart 00080H 00000H + @@CALT loader 00080H 00000H + @@CALT pm 00080H 00000H + @@CALT i2c_ctr 00080H 00000H + @@CALT main 00080H 00000H + @@CALT magic 00080H 00000H + @@CALT WDT 00080H 00000H + @@CALT i2c_mcu 00080H 00000H + @@CALT i2c_twl 00080H 00000H + @@CALT led 00080H 00000H + @@CALT rtc 00080H 00000H + @@CALT vreg_ctr 00080H 00000H + @@CALT vreg_twl 00080H 00000H + @@CALT adc 00080H 00000H + @@CALT renge 00080H 00006H + @@CALT accero 00086H 00000H + @@CALT self_flash + 00086H 00000H + @@CALT sw 00086H 00000H + @@CALT task_debug + 00086H 00000H + @@CALT task_misc + 00086H 00000H + @@CALT task_sys 00086H 00000H + @@CALT pedo_alg_thre_det2 + 00086H 00000H + @@CALT ini_VECT 00086H 00000H + @@CALT task_status + 00086H 00000H + @@CALT led_cam 00086H 00000H + @@CALT led_pow 00086H 00000H + @@CALT hal 00086H 00000H + @@CALT batt_params + 00086H 00000H + @@CALT voltable 00086H 00000H + @@CALT pedo_lpf_coeff + 00086H 00000H + @@CALT kanaria_c + 00086H 00000H + @@CALT util_funcs + 00086H 00000H + @@CALT i2c_mcu-sub + 00086H 00000H +* gap * 00086H 0003AH + ?CSEGOB0 000C0H 00004H CSEG OPT_BYTE + @@CODE 000C4H 00000H CSEG BASE + @@CODE magic 000C4H 00000H + @@CODE ini_VECT 000C4H 00000H + @@CODE batt_params + 000C4H 00000H + LDR_CODL 000C4H 00000H CSEG + LDR_CODL loader 000C4H 00000H + LDR_CODL WDT 000C4H 00000H + LDR_CODL i2c_mcu 000C4H 00000H + LDR_CODL i2c_twl 000C4H 00000H + LDR_CODL self_flash + 000C4H 00000H + LDR_CODL task_debug + 000C4H 00000H + LDR_CODL task_status + 000C4H 00000H + LDR_CODL hal 000C4H 00000H + LDR_CODL util_funcs + 000C4H 00000H + ?CSEGSI 000C4H 0000AH CSEG + LDR_CODE 000CEH 00978H CSEG + LDR_CODE loader 000CEH 00196H + LDR_CODE WDT 00264H 00000H + LDR_CODE i2c_mcu 00264H 002A2H + LDR_CODE i2c_twl 00506H 0005BH + LDR_CODE self_flash + 00561H 00370H + LDR_CODE task_debug + 008D1H 00000H + LDR_CODE task_status + 008D1H 00075H + LDR_CODE hal 00946H 000DCH + LDR_CODE util_funcs + 00A22H 00024H + FSL_CODE 00A46H 00322H CSEG + FSL_CODE fsl_block_cmd + 00A46H 0002BH + FSL_CODE fsl_block_check + 00A71H 00013H + FSL_CODE fsl_common + 00A84H 0014FH + FSL_CODE fsl_reset + 00BD3H 00001H + FSL_CODE fsl_si_ibf + 00BD4H 00064H + FSL_CODE fsl_phySwap + 00C38H 0004DH + FSL_CODE fsl_si_common + 00C85H 00061H + FSL_CODE fsl_swap 00CE6H 00030H + FSL_CODE fsl_write + 00D16H 00052H + @@LCODE 00D68H 00277H CSEG + @@LCODE @cstart 00D68H 0006DH + @@LCODE @imul 00DD5H 00011H + @@LCODE @lumul 00DE6H 0002BH + @@LCODE @isdiv 00E11H 00022H + @@LCODE @iudiv 00E33H 0002DH + @@LCODE @isrem 00E60H 00021H + @@LCODE @iurem 00E81H 0002FH + @@LCODE @lsdiv 00EB0H 00039H + @@LCODE @ludiv 00EE9H 0003FH + @@LCODE @divuw 00F28H 00034H + @@LCODE @ladd 00F5CH 0000FH + @@LCODE @llsh 00F6BH 0001BH + @@LCODE @lursh 00F86H 0001FH + @@LCODE @iscmp 00FA5H 0000CH + @@LCODE @lband 00FB1H 00014H + @@LCODE @bcdtob 00FC5H 0001AH +* gap * 00FDFH 00017H + MGC_LOAD 00FF6H 0000AH CSEG AT + MGC_LOAD magic 00FF6H 0000AH + + MEMORY=ROM + BASE ADDRESS=02000H SIZE=03000H + OUTPUT INPUT INPUT BASE SIZE + SEGMENT SEGMENT MODULE ADDRESS + MGC_MIMI 02000H 0000AH CSEG AT + MGC_MIMI magic 02000H 0000AH + @@CNST 0200AH 00282H CSEG + @@CNST @cstart 0200AH 00000H + @@CNST loader 0200AH 00000H + @@CNST pm 0200AH 00008H + @@CNST i2c_ctr 02012H 00000H + @@CNST main 02012H 00000H + @@CNST magic 02012H 00000H + @@CNST WDT 02012H 00000H + @@CNST i2c_mcu 02012H 00000H + @@CNST i2c_twl 02012H 00000H + @@CNST led 02012H 00000H + @@CNST rtc 02012H 00000H + @@CNST vreg_ctr 02012H 00000H + @@CNST vreg_twl 02012H 00000H + @@CNST adc 02012H 00008H + @@CNST renge 0201AH 00000H + @@CNST accero 0201AH 00000H + @@CNST self_flash + 0201AH 00002H + @@CNST sw 0201CH 00000H + @@CNST task_debug + 0201CH 00000H + @@CNST task_misc + 0201CH 00000H + @@CNST task_sys 0201CH 00000H + @@CNST pedo_alg_thre_det2 + 0201CH 00018H + @@CNST ini_VECT 02034H 00000H + @@CNST task_status + 02034H 00000H + @@CNST led_cam 02034H 00000H + @@CNST led_pow 02034H 00020H + @@CNST hal 02054H 00000H + @@CNST batt_params + 02054H 001C8H + @@CNST voltable 0221CH 00040H + @@CNST pedo_lpf_coeff + 0225CH 00030H + @@CNST kanaria_c + 0228CH 00000H + @@CNST util_funcs + 0228CH 00000H + @@CNST i2c_mcu-sub + 0228CH 00000H + ROM_CODE 0228CH 025EBH CSEG + ROM_CODE pm 0228CH 00A5DH + ROM_CODE i2c_ctr 02CE9H 0005CH + ROM_CODE main 02D45H 00055H + ROM_CODE led 02D9AH 00284H + ROM_CODE rtc 0301EH 000E0H + ROM_CODE vreg_ctr 030FEH 0049EH + ROM_CODE vreg_twl 0359CH 000F9H + ROM_CODE adc 03695H 00261H + ROM_CODE renge 038F6H 00018H + ROM_CODE accero 0390EH 00155H + ROM_CODE sw 03A63H 00135H + ROM_CODE task_misc + 03B98H 001C4H + ROM_CODE task_sys 03D5CH 0034CH + ROM_CODE pedo_alg_thre_det2 + 040A8H 004D4H + ROM_CODE led_cam 0457CH 000C4H + ROM_CODE led_pow 04640H 0016FH + ROM_CODE voltable 047AFH 00000H + ROM_CODE pedo_lpf_coeff + 047AFH 00000H + ROM_CODE kanaria_c + 047AFH 00006H + ROM_CODE get_ei 047B5H 0000DH + ROM_CODE i2c_mcu-sub + 047C2H 000B5H + @@BASE 04877H 00614H CSEG BASE + @@BASE loader 04877H 00000H + @@BASE pm 04877H 0003EH + @@BASE i2c_ctr 048B5H 00170H + @@BASE main 04A25H 00000H + @@BASE magic 04A25H 00000H + @@BASE WDT 04A25H 00000H + @@BASE i2c_mcu 04A25H 000F2H + @@BASE i2c_twl 04B17H 000D0H + @@BASE led 04BE7H 00000H + @@BASE rtc 04BE7H 0005DH + @@BASE vreg_ctr 04C44H 00000H + @@BASE vreg_twl 04C44H 00000H + @@BASE adc 04C44H 00094H + @@BASE renge 04CD8H 0016BH + @@BASE accero 04E43H 00042H + @@BASE self_flash + 04E85H 00000H + @@BASE sw 04E85H 00000H + @@BASE task_debug + 04E85H 00000H + @@BASE task_misc + 04E85H 00000H + @@BASE task_sys 04E85H 00000H + @@BASE pedo_alg_thre_det2 + 04E85H 00000H + @@BASE ini_VECT 04E85H 00006H + @@BASE task_status + 04E8BH 00000H + @@BASE led_cam 04E8BH 00000H + @@BASE led_pow 04E8BH 00000H + @@BASE hal 04E8BH 00000H + @@BASE batt_params + 04E8BH 00000H + @@BASE voltable 04E8BH 00000H + @@BASE pedo_lpf_coeff + 04E8BH 00000H + @@BASE kanaria_c + 04E8BH 00000H + @@BASE util_funcs + 04E8BH 00000H + @@BASE i2c_mcu-sub + 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL @cstart 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL pm 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL i2c_ctr 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL main 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL led 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL rtc 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL vreg_ctr 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL vreg_twl 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL adc 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL renge 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL accero 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL sw 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL task_misc + 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL task_sys 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL pedo_alg_thre_det2 + 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL ini_VECT 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL led_cam 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL led_pow 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL batt_params + 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL voltable 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL pedo_lpf_coeff + 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL kanaria_c + 04E8BH 00000H + @@CNSTL 04E8BH 00000H CSEG PAGE64KP + @@CNSTL i2c_mcu-sub + 04E8BH 00000H + @@RLINIT 04E8BH 00000H CSEG UNIT64KP + @@RLINIT loader 04E8BH 00000H + @@RLINIT pm 04E8BH 00000H + @@RLINIT i2c_ctr 04E8BH 00000H + @@RLINIT main 04E8BH 00000H + @@RLINIT magic 04E8BH 00000H + @@RLINIT WDT 04E8BH 00000H + @@RLINIT i2c_mcu 04E8BH 00000H + @@RLINIT i2c_twl 04E8BH 00000H + @@RLINIT led 04E8BH 00000H + @@RLINIT rtc 04E8BH 00000H + @@RLINIT vreg_ctr 04E8BH 00000H + @@RLINIT vreg_twl 04E8BH 00000H + @@RLINIT adc 04E8BH 00000H + @@RLINIT renge 04E8BH 00000H + @@RLINIT accero 04E8BH 00000H + @@RLINIT self_flash + 04E8BH 00000H + @@RLINIT sw 04E8BH 00000H + @@RLINIT task_debug + 04E8BH 00000H + @@RLINIT task_misc + 04E8BH 00000H + @@RLINIT task_sys 04E8BH 00000H + @@RLINIT pedo_alg_thre_det2 + 04E8BH 00000H + @@RLINIT ini_VECT 04E8BH 00000H + @@RLINIT task_status + 04E8BH 00000H + @@RLINIT led_cam 04E8BH 00000H + @@RLINIT led_pow 04E8BH 00000H + @@RLINIT hal 04E8BH 00000H + @@RLINIT batt_params + 04E8BH 00000H + @@RLINIT voltable 04E8BH 00000H + @@RLINIT pedo_lpf_coeff + 04E8BH 00000H + @@RLINIT kanaria_c + 04E8BH 00000H + @@RLINIT util_funcs + 04E8BH 00000H + @@RLINIT i2c_mcu-sub + 04E8BH 00000H + @@RLINIT @rom 04E8BH 00000H + @@CODEL 04E8BH 00000H CSEG + @@CODEL pm 04E8BH 00000H + @@CODEL i2c_ctr 04E8BH 00000H + @@CODEL main 04E8BH 00000H + @@CODEL magic 04E8BH 00000H + @@CODEL led 04E8BH 00000H + @@CODEL rtc 04E8BH 00000H + @@CODEL vreg_ctr 04E8BH 00000H + @@CODEL vreg_twl 04E8BH 00000H + @@CODEL adc 04E8BH 00000H + @@CODEL renge 04E8BH 00000H + @@CODEL accero 04E8BH 00000H + @@CODEL sw 04E8BH 00000H + @@CODEL task_misc + 04E8BH 00000H + @@CODEL task_sys 04E8BH 00000H + @@CODEL pedo_alg_thre_det2 + 04E8BH 00000H + @@CODEL ini_VECT 04E8BH 00000H + @@CODEL led_cam 04E8BH 00000H + @@CODEL led_pow 04E8BH 00000H + @@CODEL batt_params + 04E8BH 00000H + @@CODEL voltable 04E8BH 00000H + @@CODEL pedo_lpf_coeff + 04E8BH 00000H + @@CODEL kanaria_c + 04E8BH 00000H + @@CODEL i2c_mcu-sub + 04E8BH 00000H +* gap * 04E8BH 00001H + @@CNSTL 04E8CH 0000AH CSEG PAGE64KP + @@CNSTL @bcdtob 04E8CH 0000AH + @@R_INIT 04E96H 0004AH CSEG UNIT64KP + @@R_INIT @cstart 04E96H 00000H + @@R_INIT loader 04E96H 00000H + @@R_INIT pm 04E96H 00000H + @@R_INIT i2c_ctr 04E96H 00000H + @@R_INIT main 04E96H 00000H + @@R_INIT magic 04E96H 00000H + @@R_INIT WDT 04E96H 00000H + @@R_INIT i2c_mcu 04E96H 00000H + @@R_INIT i2c_twl 04E96H 00000H + @@R_INIT led 04E96H 00000H + @@R_INIT rtc 04E96H 00000H + @@R_INIT vreg_ctr 04E96H 00000H + @@R_INIT vreg_twl 04E96H 00000H + @@R_INIT adc 04E96H 0000CH + @@R_INIT renge 04EA2H 00014H + @@R_INIT accero 04EB6H 00000H + @@R_INIT self_flash + 04EB6H 00000H + @@R_INIT sw 04EB6H 00000H + @@R_INIT task_debug + 04EB6H 00000H + @@R_INIT task_misc + 04EB6H 00026H + @@R_INIT task_sys 04EDCH 00000H + @@R_INIT pedo_alg_thre_det2 + 04EDCH 00000H + @@R_INIT ini_VECT 04EDCH 00000H + @@R_INIT task_status + 04EDCH 00000H + @@R_INIT led_cam 04EDCH 00000H + @@R_INIT led_pow 04EDCH 00004H + @@R_INIT hal 04EE0H 00000H + @@R_INIT batt_params + 04EE0H 00000H + @@R_INIT voltable 04EE0H 00000H + @@R_INIT pedo_lpf_coeff + 04EE0H 00000H + @@R_INIT kanaria_c + 04EE0H 00000H + @@R_INIT util_funcs + 04EE0H 00000H + @@R_INIT i2c_mcu-sub + 04EE0H 00000H + @@R_INIT @rom 04EE0H 00000H + @@R_INIS 04EE0H 00010H CSEG UNIT64KP + @@R_INIS @cstart 04EE0H 00000H + @@R_INIS loader 04EE0H 00000H + @@R_INIS pm 04EE0H 00002H + @@R_INIS i2c_ctr 04EE2H 00002H + @@R_INIS main 04EE4H 00000H + @@R_INIS magic 04EE4H 00000H + @@R_INIS WDT 04EE4H 00000H + @@R_INIS i2c_mcu 04EE4H 00000H + @@R_INIS i2c_twl 04EE4H 00000H + @@R_INIS led 04EE4H 00000H + @@R_INIS rtc 04EE4H 00000H + @@R_INIS vreg_ctr 04EE4H 00000H + @@R_INIS vreg_twl 04EE4H 00000H + @@R_INIS adc 04EE4H 00000H + @@R_INIS renge 04EE4H 00000H + @@R_INIS accero 04EE4H 00000H + @@R_INIS self_flash + 04EE4H 00000H + @@R_INIS sw 04EE4H 00000H + @@R_INIS task_debug + 04EE4H 00000H + @@R_INIS task_misc + 04EE4H 00000H + @@R_INIS task_sys 04EE4H 00002H + @@R_INIS pedo_alg_thre_det2 + 04EE6H 00006H + @@R_INIS ini_VECT 04EECH 00000H + @@R_INIS task_status + 04EECH 00000H + @@R_INIS led_cam 04EECH 00002H + @@R_INIS led_pow 04EEEH 00002H + @@R_INIS hal 04EF0H 00000H + @@R_INIS batt_params + 04EF0H 00000H + @@R_INIS voltable 04EF0H 00000H + @@R_INIS pedo_lpf_coeff + 04EF0H 00000H + @@R_INIS kanaria_c + 04EF0H 00000H + @@R_INIS util_funcs + 04EF0H 00000H + @@R_INIS i2c_mcu-sub + 04EF0H 00000H + @@R_INIS @rom 04EF0H 00000H + @@LCODEL 04EF0H 00022H CSEG + @@LCODEL abs 04EF0H 00008H + @@LCODEL memcpy_n 04EF8H 0001AH +* gap * 04F12H 000E2H + MGC_VER 04FF4H 00002H CSEG AT + MGC_VER magic 04FF4H 00002H + MGC_TAIL 04FF6H 0000AH CSEG AT + MGC_TAIL magic 04FF6H 0000AH + + MEMORY=RAM + BASE ADDRESS=FF900H SIZE=00500H + OUTPUT INPUT INPUT BASE SIZE + SEGMENT SEGMENT MODULE ADDRESS + @@DATA FF900H 003CCH DSEG BASEP + @@DATA @cstart FF900H 00002H + @@DATA loader FF902H 00000H + @@DATA pm FF902H 00002H + @@DATA i2c_ctr FF904H 00000H + @@DATA main FF904H 0021EH + @@DATA magic FFB22H 00000H + @@DATA WDT FFB22H 00000H + @@DATA i2c_mcu FFB22H 00004H + @@DATA i2c_twl FFB26H 00000H + @@DATA led FFB26H 00076H + @@DATA rtc FFB9CH 00008H + @@DATA vreg_ctr FFBA4H 0005CH + @@DATA vreg_twl FFC00H 00010H + @@DATA adc FFC10H 00000H + @@DATA renge FFC10H 00014H + @@DATA accero FFC24H 00000H + @@DATA self_flash + FFC24H 00002H + @@DATA sw FFC26H 00000H + @@DATA task_debug + FFC26H 00000H + @@DATA task_misc + FFC26H 00008H + @@DATA task_sys FFC2EH 00000H + @@DATA pedo_alg_thre_det2 + FFC2EH 00098H + @@DATA ini_VECT FFCC6H 00000H + @@DATA task_status + FFCC6H 00000H + @@DATA led_cam FFCC6H 00000H + @@DATA led_pow FFCC6H 00006H + @@DATA hal FFCCCH 00000H + @@DATA batt_params + FFCCCH 00000H + @@DATA voltable FFCCCH 00000H + @@DATA pedo_lpf_coeff + FFCCCH 00000H + @@DATA kanaria FFCCCH 00000H + @@DATA kanaria_c + FFCCCH 00000H + @@DATA util_funcs + FFCCCH 00000H + @@DATA i2c_mcu-sub + FFCCCH 00000H + @@DATA @rom FFCCCH 00000H + @@INIT FFCCCH 0004AH DSEG BASEP + @@INIT @cstart FFCCCH 00000H + @@INIT loader FFCCCH 00000H + @@INIT pm FFCCCH 00000H + @@INIT i2c_ctr FFCCCH 00000H + @@INIT main FFCCCH 00000H + @@INIT magic FFCCCH 00000H + @@INIT WDT FFCCCH 00000H + @@INIT i2c_mcu FFCCCH 00000H + @@INIT i2c_twl FFCCCH 00000H + @@INIT led FFCCCH 00000H + @@INIT rtc FFCCCH 00000H + @@INIT vreg_ctr FFCCCH 00000H + @@INIT vreg_twl FFCCCH 00000H + @@INIT adc FFCCCH 0000CH + @@INIT renge FFCD8H 00014H + @@INIT accero FFCECH 00000H + @@INIT self_flash + FFCECH 00000H + @@INIT sw FFCECH 00000H + @@INIT task_debug + FFCECH 00000H + @@INIT task_misc + FFCECH 00026H + @@INIT task_sys FFD12H 00000H + @@INIT pedo_alg_thre_det2 + FFD12H 00000H + @@INIT ini_VECT FFD12H 00000H + @@INIT task_status + FFD12H 00000H + @@INIT led_cam FFD12H 00000H + @@INIT led_pow FFD12H 00004H + @@INIT hal FFD16H 00000H + @@INIT batt_params + FFD16H 00000H + @@INIT voltable FFD16H 00000H + @@INIT pedo_lpf_coeff + FFD16H 00000H + @@INIT kanaria FFD16H 00000H + @@INIT kanaria_c + FFD16H 00000H + @@INIT util_funcs + FFD16H 00000H + @@INIT i2c_mcu-sub + FFD16H 00000H + @@INIT @rom FFD16H 00000H + FSL_DATA FFD16H 00010H DSEG UNITP + FSL_DATA fsl_common + FFD16H 00010H + @@INITL FFD26H 00000H DSEG UNIT64KP + @@INITL loader FFD26H 00000H + @@INITL pm FFD26H 00000H + @@INITL i2c_ctr FFD26H 00000H + @@INITL main FFD26H 00000H + @@INITL magic FFD26H 00000H + @@INITL WDT FFD26H 00000H + @@INITL i2c_mcu FFD26H 00000H + @@INITL i2c_twl FFD26H 00000H + @@INITL led FFD26H 00000H + @@INITL rtc FFD26H 00000H + @@INITL vreg_ctr FFD26H 00000H + @@INITL vreg_twl FFD26H 00000H + @@INITL adc FFD26H 00000H + @@INITL renge FFD26H 00000H + @@INITL accero FFD26H 00000H + @@INITL self_flash + FFD26H 00000H + @@INITL sw FFD26H 00000H + @@INITL task_debug + FFD26H 00000H + @@INITL task_misc + FFD26H 00000H + @@INITL task_sys FFD26H 00000H + @@INITL pedo_alg_thre_det2 + FFD26H 00000H + @@INITL ini_VECT FFD26H 00000H + @@INITL task_status + FFD26H 00000H + @@INITL led_cam FFD26H 00000H + @@INITL led_pow FFD26H 00000H + @@INITL hal FFD26H 00000H + @@INITL batt_params + FFD26H 00000H + @@INITL voltable FFD26H 00000H + @@INITL pedo_lpf_coeff + FFD26H 00000H + @@INITL kanaria FFD26H 00000H + @@INITL kanaria_c + FFD26H 00000H + @@INITL util_funcs + FFD26H 00000H + @@INITL i2c_mcu-sub + FFD26H 00000H + @@INITL @rom FFD26H 00000H + @@DATAL FFD26H 00000H DSEG UNIT64KP + @@DATAL loader FFD26H 00000H + @@DATAL pm FFD26H 00000H + @@DATAL i2c_ctr FFD26H 00000H + @@DATAL main FFD26H 00000H + @@DATAL magic FFD26H 00000H + @@DATAL WDT FFD26H 00000H + @@DATAL i2c_mcu FFD26H 00000H + @@DATAL i2c_twl FFD26H 00000H + @@DATAL led FFD26H 00000H + @@DATAL rtc FFD26H 00000H + @@DATAL vreg_ctr FFD26H 00000H + @@DATAL vreg_twl FFD26H 00000H + @@DATAL adc FFD26H 00000H + @@DATAL renge FFD26H 00000H + @@DATAL accero FFD26H 00000H + @@DATAL self_flash + FFD26H 00000H + @@DATAL sw FFD26H 00000H + @@DATAL task_debug + FFD26H 00000H + @@DATAL task_misc + FFD26H 00000H + @@DATAL task_sys FFD26H 00000H + @@DATAL pedo_alg_thre_det2 + FFD26H 00000H + @@DATAL ini_VECT FFD26H 00000H + @@DATAL task_status + FFD26H 00000H + @@DATAL led_cam FFD26H 00000H + @@DATAL led_pow FFD26H 00000H + @@DATAL hal FFD26H 00000H + @@DATAL batt_params + FFD26H 00000H + @@DATAL voltable FFD26H 00000H + @@DATAL pedo_lpf_coeff + FFD26H 00000H + @@DATAL kanaria FFD26H 00000H + @@DATAL kanaria_c + FFD26H 00000H + @@DATAL util_funcs + FFD26H 00000H + @@DATAL i2c_mcu-sub + FFD26H 00000H + @@DATAL @rom FFD26H 00000H +* gap * FFD26H 000DAH + + MEMORY=RAM2 + BASE ADDRESS=FFE20H SIZE=000C0H + OUTPUT INPUT INPUT BASE SIZE + SEGMENT SEGMENT MODULE ADDRESS + @@INIS FFE20H 00010H DSEG SADDRP + @@INIS @cstart FFE20H 00000H + @@INIS loader FFE20H 00000H + @@INIS pm FFE20H 00002H + @@INIS i2c_ctr FFE22H 00002H + @@INIS main FFE24H 00000H + @@INIS magic FFE24H 00000H + @@INIS WDT FFE24H 00000H + @@INIS i2c_mcu FFE24H 00000H + @@INIS i2c_twl FFE24H 00000H + @@INIS led FFE24H 00000H + @@INIS rtc FFE24H 00000H + @@INIS vreg_ctr FFE24H 00000H + @@INIS vreg_twl FFE24H 00000H + @@INIS adc FFE24H 00000H + @@INIS renge FFE24H 00000H + @@INIS accero FFE24H 00000H + @@INIS self_flash + FFE24H 00000H + @@INIS sw FFE24H 00000H + @@INIS task_debug + FFE24H 00000H + @@INIS task_misc + FFE24H 00000H + @@INIS task_sys FFE24H 00002H + @@INIS pedo_alg_thre_det2 + FFE26H 00006H + @@INIS ini_VECT FFE2CH 00000H + @@INIS task_status + FFE2CH 00000H + @@INIS led_cam FFE2CH 00002H + @@INIS led_pow FFE2EH 00002H + @@INIS hal FFE30H 00000H + @@INIS batt_params + FFE30H 00000H + @@INIS voltable FFE30H 00000H + @@INIS pedo_lpf_coeff + FFE30H 00000H + @@INIS kanaria_c + FFE30H 00000H + @@INIS util_funcs + FFE30H 00000H + @@INIS i2c_mcu-sub + FFE30H 00000H + @@INIS @rom FFE30H 00000H + @@DATS FFE30H 00066H DSEG SADDRP + @@DATS @cstart FFE30H 00000H + @@DATS loader FFE30H 00000H + @@DATS pm FFE30H 0001AH + @@DATS i2c_ctr FFE4AH 00004H + @@DATS main FFE4EH 00000H + @@DATS magic FFE4EH 00000H + @@DATS WDT FFE4EH 00000H + @@DATS i2c_mcu FFE4EH 00008H + @@DATS i2c_twl FFE56H 00000H + @@DATS led FFE56H 00006H + @@DATS rtc FFE5CH 00000H + @@DATS vreg_ctr FFE5CH 00004H + @@DATS vreg_twl FFE60H 00000H + @@DATS adc FFE60H 0000AH + @@DATS renge FFE6AH 00002H + @@DATS accero FFE6CH 00002H + @@DATS self_flash + FFE6EH 00000H + @@DATS sw FFE6EH 0000CH + @@DATS task_debug + FFE7AH 00000H + @@DATS task_misc + FFE7AH 00004H + @@DATS task_sys FFE7EH 00002H + @@DATS pedo_alg_thre_det2 + FFE80H 0000EH + @@DATS ini_VECT FFE8EH 00000H + @@DATS task_status + FFE8EH 00002H + @@DATS led_cam FFE90H 00002H + @@DATS led_pow FFE92H 00004H + @@DATS hal FFE96H 00000H + @@DATS batt_params + FFE96H 00000H + @@DATS voltable FFE96H 00000H + @@DATS pedo_lpf_coeff + FFE96H 00000H + @@DATS kanaria_c + FFE96H 00000H + @@DATS util_funcs + FFE96H 00000H + @@DATS i2c_mcu-sub + FFE96H 00000H + @@DATS @rom FFE96H 00000H + @@BITS FFE96H 00006H BSEG + @@BITS @cstart FFE96H.0 00000H.0 + @@BITS loader FFE96H.0 00000H.0 + @@BITS pm FFE96H.0 00001H.1 + @@BITS i2c_ctr FFE97H.1 00000H.0 + @@BITS main FFE97H.1 00000H.1 + @@BITS magic FFE97H.2 00000H.0 + @@BITS WDT FFE97H.2 00000H.0 + @@BITS i2c_mcu FFE97H.2 00000H.4 + @@BITS i2c_twl FFE97H.6 00000H.0 + @@BITS led FFE97H.6 00000H.4 + @@BITS rtc FFE98H.2 00000H.3 + @@BITS vreg_ctr FFE98H.5 00000H.1 + @@BITS vreg_twl FFE98H.6 00000H.0 + @@BITS adc FFE98H.6 00000H.4 + @@BITS renge FFE99H.2 00000H.2 + @@BITS accero FFE99H.4 00000H.0 + @@BITS self_flash + FFE99H.4 00000H.0 + @@BITS sw FFE99H.4 00000H.1 + @@BITS task_debug + FFE99H.5 00000H.0 + @@BITS task_misc + FFE99H.5 00000H.3 + @@BITS task_sys FFE9AH.0 00000H.0 + @@BITS pedo_alg_thre_det2 + FFE9AH.0 00000H.2 + @@BITS ini_VECT FFE9AH.2 00000H.0 + @@BITS task_status + FFE9AH.2 00000H.0 + @@BITS led_cam FFE9AH.2 00000H.1 + @@BITS led_pow FFE9AH.3 00000H.0 + @@BITS hal FFE9AH.3 00000H.6 + @@BITS batt_params + FFE9BH.1 00000H.0 + @@BITS voltable FFE9BH.1 00000H.0 + @@BITS pedo_lpf_coeff + FFE9BH.1 00000H.0 + @@BITS kanaria_c + FFE9BH.1 00000H.0 + @@BITS util_funcs + FFE9BH.1 00000H.0 + @@BITS i2c_mcu-sub + FFE9BH.1 00000H.0 +* gap * FFE9CH 00038H + @@SEGREG FFED4H 00004H DSEG AT + @@SEGREG @SEGREG FFED4H 00004H + @@RTARG0 FFED8H 00008H DSEG AT + @@RTARG0 @RTARG0 FFED8H 00008H + + + Target chip : uPD79F0104 + Device file : E1.00b + \ No newline at end of file diff --git a/snake_branches/3.82_trial_seisan/bsr_mcu.dr b/snake_branches/3.82_trial_seisan/bsr_mcu.dr new file mode 100644 index 0000000..81aeecc --- /dev/null +++ b/snake_branches/3.82_trial_seisan/bsr_mcu.dr @@ -0,0 +1,46 @@ +;;; ̈̒` +;32kB = 0x7FFF +MEMORY BCL0: (00000H, 01000H ) +;MEMORY BCL1: (01000H, 01000H ) ; obNAbv̈ +MEMORY ROM : (02000H, 03000H ) +;MEMORY ROM_BKUP:(05000H, 03000H ) ; obNAbv̈ +;MEMORY OCD :(0FC00H, 00400H ) ; OCDgĂ炵 + + +;;; ZOg̊ݒ +; u[gubN0Ɋ蓖Ă +MERGE LDR_CODE : =BCL0 +MERGE LDR_CODL : =BCL0 +MERGE FSL_CODE : =BCL0 ; =FSL ; ސtbVCu +MERGE @@LCODE : =BCL0 ; X^[gAbv[` +;MERGE @@LCODEL : =BCL0 + +;MERGE LDR_RINT:=BCL0 +;MERGE LDR_CNST:=BCL0 +MERGE LDR_CNSL:=BCL0 + + + +; ʏ̈ɒu +MERGE ROM_CODE:=ROM +MERGE @@CNST: =ROM +MERGE @@R_INIT: =ROM ; ROMȊOɒuȂX^[gAbv[`vC + + + + + + +; }WbNio[ +;; magic.c̒Ŏw + + +;--- RAM̈ ------------------------------------------------------- +; +; RAM1,RAM2̈̓[U[vOŎgpĂǂłAZtvO +; ZtvÕCugp邽߁Al͔j󂳂܂B +; +memory RAM : (0FF900H, 0500H) ; [U[q`l̈ +;memory SLF_RAM : (0FF900H, 0020H) ; Slef Program\̈[gp֎~] +memory RAM2 : (0FFE20H, 00C0H) ; ZtvOAgp֎~̈ +;memory SLF_RAM : (0FFE00H, 0020H) ; Slef Program\̈[gp֎~] diff --git a/snake_branches/3.82_trial_seisan/bsr_system.h b/snake_branches/3.82_trial_seisan/bsr_system.h new file mode 100644 index 0000000..3bf1acd --- /dev/null +++ b/snake_branches/3.82_trial_seisan/bsr_system.h @@ -0,0 +1,73 @@ +#ifndef __bsr_system__ +#define __bsr_system__ + +// $Id$ + + +// Cxg[ṽXe[g +enum pwr_state_ +{ + OFF_TRIG = 0, + ON_CHECK, + ON_TRIG, + ON, +// SLEEP_TRIG, + SLEEP, +// WAKE, + OFF, +}; + +enum poweron_reason_ +{ + NONE = 0, + RSN_PWSW, + RSN_RTC_ALARM, + RSN_TRIAL, // ̌ + RSN_RSV4, + RSN_RSV5 +}; + + +enum model_ +{ + MODEL_JIKKI, + MODEL_TS_BOARD, + MODEL_KUC_DEBUGGER, + MODEL_JIKKI_NOBATT, + MODEL_KUC_CAPTURE, + MODEL_IS_DEBUGGER, // Asystem_status.model MODEL_JIKKI ɂĂ̂Ŗgp + MODEL_IS_CAPTURE, +}; + +enum family_ +{ + FAMILY_CTR, + FAMILY_SPFL, // LL + FAMILY_SNAKE, // LAGER + FAMILY_FLOWER, + FAMILY_CLOSER, + FAMILY_RESERVED5, +}; + +// ^XNVXȅԏȂ +typedef struct _system_status_ +{ + enum pwr_state_ pwr_state; + enum poweron_reason_ poweron_reason; + unsigned char reboot:1; + unsigned char captureBox:1; // Lv` SDK ɂ͎@ƕԂ + unsigned char taikendai:1; + unsigned char taikendai_nbd:1; + unsigned char is_dev:1; // IS ̃fobKAقڎ@ + enum model_ model; + enum family_ family; + unsigned char LCD_is_CGS:1; +}system_status_; + +extern bit force_off; + +extern system_status_ system_status; + + + +#endif diff --git a/snake_branches/3.82_trial_seisan/config.h b/snake_branches/3.82_trial_seisan/config.h new file mode 100644 index 0000000..fe738ae --- /dev/null +++ b/snake_branches/3.82_trial_seisan/config.h @@ -0,0 +1,113 @@ +#ifndef __config__ +#define __config__ +/* + + $Id: config.h 418 2011-09-22 01:35:37Z n2232 $ + +*/ + +#define MCU_VER_MAJOR 0x03 +#define MCU_VER_MINOR 0x38 +/* +2014/02/13 2.36 琰ăW[グB +}Ci[͈p +*/ + + +// rhXCb` +#define _MCU_ARR // snake,closer + + +// fobOXCb` + +//#define _debug_led_ // LED print fobOƂ +//#define _ALLOW_NOBATT_ // @drȂi=A_v^̂݁jł̋N +//#define _DBG_LED_PRINT_ // LED print fobOƂ(ȃAbvf[gp) +//#define _ENABLE_COMMAND3_ // mcuZbgwdtR}hLɂ +//#define _FORCE_TAIKENDAI_ // X^hAVƌĂ΂Y +//#define _FORCE_TAIKENDAI_NBD_ + +//#define _DBG_CHK_OFF_LEAK_ // OFF[Nd̃`FbN(fobKŊmF) +//#define _DBG_NOP_ // u[N\邽߂NOP()LɂƂ + +//#define _ENABLE_HAL_ // fobOpHALLɂBRgAEgŃX[ɂȂB +//#define _ENABLE_PRESS_SEL_TO_WDT_ // SEL WDT + +//#define _WDT_CHECK_ // WDT炵̂ŒǐՂƂbreakāAR[X^bN +// IvVoCg1oCgځAbit7ZbgKv܂B + +//#define _DI_WITH_CHECK_ // 荞݋֎~dɊ|Ȃ`FbN + +//#define _DBG_BT_FULL_ +//#define _DBG_FORCE_FLOWER + + +#ifdef _DBG_NOP_ // R[hKvNOPƋʂ邽 +# define dbg_nop() NOP() +#else +# define dbg_nop() ; +#endif + + +#define _I2C_ERR_ABORT_ // *Won* I2CŌ돑݂炵ȍ~@ + //. u[NĂSRȂȂ܂... + +// dlt@[ +//#define _TAIKENDAI_ +// homej[ɓĂ܂̂t@[‚B +#define _TAIKENDAI_SEISAN_SPECIAL_ +// Yɑ̌dlǂƁAA_v^ȂƓd炸ɌɎxႪ̂ňꎞt@[ +//#define _RVD_ +// fobKA^b`Ƀ^[QbgZbgœd؂Ă܂̂ + + +// ̎́C‚ȂƑ̌̐YłȂˁI +#ifdef _TAIKENDAI_SEISAN_SPECIAL_ +#define MCU_VER_MINOR 0x82 +// 0x81 +#endif + + +#ifdef _TAIKENDAI_ +#define MCU_VER_MINOR 0x92 +// 0x90 1.31 @HOMEɓĂ܂̂XCb`̃}XNő΍ +// ROMŝ߁Adrp[^폜 +#endif + + +#define _firm_format_v3_ + +//#define _MODEL_TEG2_ + // TEG2 CPU { Type-T + +//#define _MODEL_WM0_ +//#define _MODEL_WM0_TEG2_CTRC_ + +//#define _MODEL_TS0_ + // TEG2 CPU { Type-C + +#define _MODEL_CTR_ + // TS board, WM1,1 TS-CTRC, @ + + +// ---------------------------------- // +#ifdef _MODEL_TEG2_ +unsupported! +#endif + + +#ifdef _MODEL_WM0_ +unsupported! +#endif + + +#ifdef _MODEL_TS0_ +unsupported! +#endif + +#ifdef _MODEL_CTR_ +#define _PMIC_CTR_ +#define _MCU_BSR_ +#endif + +#endif diff --git a/snake_branches/3.82_trial_seisan/fsl.h b/snake_branches/3.82_trial_seisan/fsl.h new file mode 100644 index 0000000..0e806b5 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/fsl.h @@ -0,0 +1,362 @@ +/*==============================================================================================*/ +/* Project = Selfprogramming library for 78K0R/Ix3/Kx3-L Single Voltage SST (MF2) Flash */ +/* Module = fsl.h */ +/* Version = V1.01 */ +/* Date = 28.03.2008 11:45:42 */ +/*==============================================================================================*/ +/* COPYRIGHT */ +/*==============================================================================================*/ +/* Copyright (c) 2007 by NEC Electronics (Europe) GmbH, */ +/* a company of the NEC Electronics Corporation */ +/*==============================================================================================*/ +/* Purpose: */ +/* constant, type and function prototype definitions used by the FSL */ +/* */ +/*==============================================================================================*/ +/* */ +/* Warranty Disclaimer */ +/* */ +/* Because the Product(s) is licensed free of charge, there is no warranty of any kind */ +/* whatsoever and expressly disclaimed and excluded by NEC, either expressed or implied, */ +/* including but not limited to those for non-infringement of intellectual property, */ +/* merchantability and/or fitness for the particular purpose. NEC shall not have any obligation */ +/* to maintain, service or provide bug fixes for the supplied Product(s) and/or the Application.*/ +/* */ +/* Each User is solely responsible for determining the appropriateness of using the Product(s) */ +/* and assumes all risks associated with its exercise of rights under this Agreement, */ +/* including, but not limited to the risks and costs of program errors, compliance with */ +/* applicable laws, damage to or loss of data, programs or equipment, and unavailability or */ +/* interruption of operations. */ +/* */ +/* Limitation of Liability */ +/* */ +/* In no event shall NEC be liable to the User for any incidental, consequential, indirect, */ +/* or punitive damage (including but not limited to lost profits) regardless of whether */ +/* such liability is based on breach of contract, tort, strict liability, breach of warranties, */ +/* failure of essential purpose or otherwise and even if advised of the possibility of */ +/* such damages. NEC shall not be liable for any services or products provided by third party */ +/* vendors, developers or consultants identified or referred to the User by NEC in connection */ +/* with the Product(s) and/or the Application. */ +/* */ +/*==============================================================================================*/ +/* Environment: PM plus (V6.30) */ +/* RA78K0(V1.20) */ +/* CC78K0(V2.00) */ +/*==============================================================================================*/ + +#ifndef __FSL_H_INCLUDED +#define __FSL_H_INCLUDED + + +/*==============================================================================================*/ +/* FSL type definitions */ +/*==============================================================================================*/ +typedef unsigned char fsl_u08; +typedef unsigned int fsl_u16; +typedef unsigned long int fsl_u32; + + +/*==============================================================================================*/ +/* constant definitions */ +/*==============================================================================================*/ + +/*status code definitions returned by the FSL functions */ +#define FSL_OK 0x00 +#define FSL_ERR_FLMD0 0x01 +#define FSL_ERR_PARAMETER 0x05 +#define FSL_ERR_PROTECTION 0x10 +#define FSL_ERR_ERASE 0x1A +#define FSL_ERR_BLANKCHECK 0x1B +#define FSL_ERR_IVERIFY 0x1B +#define FSL_ERR_WRITE 0x1C +#define FSL_ERR_EEP_IVERIFY 0x1D +#define FSL_ERR_EEP_BLANKCHECK 0x1E +#define FSL_ERR_INTERRUPTION 0x1F + + +/*==============================================================================================*/ +/* global function prototypes */ +/*==============================================================================================*/ + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: initialization of selfprogramming environment */ +/* After initialization: */ +/* - the pointer to the data-buffer is stored */ +/* - all timing data are re-calculated according to the used system clock */ +/* */ +/* CAUTION: */ +/* The FSL_Init(&data_buffer) function is interruptible. Please use the */ +/* FSL_Init_cont(&data_buffer) to recall it as long return status is 0x1F. */ +/* */ +/* Input: data_buffer_pu08 - pointer to a data buffer of N...256 bytes */ +/* (used for data exchange between firmware and application) */ +/* Output: - */ +/* Returned: u08, status_code */ +/* = 0x00(FSL_OK), normal and means initialization OK */ +/* = 0x1F(FSL_ERR_INTERRUPTION), initialization interrupted by user interrupt*/ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_Init( fsl_u08 * data_buffer_pu08 ); +extern fsl_u08 FSL_Init_cont( fsl_u08 * data_buffer_pu08 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: checks the voltage level (high or low) at FLMD0 pin */ +/* Input: - */ +/* Output: - */ +/* Returned: fsl_u08, status_code */ +/* = 0x00(FSL_OK), normal and means FLMD0=HIGH */ +/* = 0x01(FSL_ERR_FLMD0), error, FLMD0=LOW */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_ModeCheck( void ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: checks if specified block is blank */ +/* Input: block_u16 - block number has to be checked */ +/* Output: - */ +/* Returned: fsl_u08, status_code */ +/* = 0x00(FSL_OK), normal and means "block is blank" */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x1B(FSL_ERR_BLANKCHECK), blank-check error, means "block not blank" */ +/* = 0x1F(FSL_ERR_INTERRUPTION), blank-check interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_BlankCheck( fsl_u16 block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: erase specified block */ +/* Input: block_u16 - block number has to be erase */ +/* Output: - */ +/* Returned: fsl_u08, status_code */ +/* = 0x00(FSL_OK), normal and means "block erased successfully" */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), tried to erase protected area */ +/* = 0x1A(FSL_ERR_ERASE), erase error, retry up to max. 255 times */ +/* = 0x1F(FSL_ERR_INTERRUPTION), erasing interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_Erase( fsl_u16 block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: performs internal verify on specified block */ +/* Input: block_u16 - block number has to be verified */ +/* Output: - */ +/* Returned: fsl_u08, status_code */ +/* = 0x00(FSL_OK), normal and means "block is verified" */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), verify interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_IVerify( fsl_u16 block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: writes N words from the data buffer into flash */ +/* Input: s_address_u32 - starting flash address the data has to be written */ +/* See Condition 2) please. */ +/* my_wordcount_u08 - number of words (4 bytes) has to be written */ +/* Output: - */ +/* Condition: 1) (s_address_u32 MOD 4 == 0) */ +/* 2) most significant byte (MSB) of s_address_u32 has to be 0x00. */ +/* Means: 0x00abcdef 24 bit flash address allowed */ +/* 3) (word_count_u08 <= sizeof(data buffer)) NOT CHECKED BY LIBRARY !!!!! */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1C(FSL_ERR_WRITE), write error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_Write( fsl_u32 s_address_u32, fsl_u08 word_count_u08 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: writes N words from the data buffer into flash */ +/* Before "writing" a N-word blankcheck is performed. */ +/* After "writing" a N-Word internal verify is performed. */ +/* Input: s_address_u32 - starting destination address has to be written */ +/* my_wordcount_u08 - number of words (4 bytes) has to be written */ +/* Output: - */ +/* Condition: 1) (s_address_u32 MOD 4 == 0) */ +/* 2) (word_count_u08 <= sizeof(data buffer)) NOT CHECKED BY FIRMWARE !!!!! */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1C(FSL_ERR_WRITE), write error */ +/* = 0x1D(FSL_ERR_EEP_IVERIFY), verify error */ +/* = 0x1E(FSL_ERR_EEP_BLANKCHECK), blankcheck error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_EEPROMWrite( fsl_u32 s_address_u32, + fsl_u08 word_count_u08 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: reads the security information */ +/* Input: destination_pu16 - destination address of the security info */ +/* The format of the security info is: "unsigned short int" */ +/* */ +/* Format of the security info: */ +/* bit_0 = 0 -> chip erase command disabled, otherwise enabled */ +/* bit_1 = 0 -> block erase command disabled, otherwise enabled */ +/* bit_2 = 0 -> write command disabled, otherwise enabled */ +/* bit_4 = 0 -> boot-area re-programming disabled, otherwise enabled */ +/* bit_8...bit_15 = 03H -> last block of the boot-area */ +/* other bits = 1 */ +/* Output: - */ +/* Changed: content of the data_buffer */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetSecurityFlags( fsl_u16 * destination_pu16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: read the boot flag i */ +/* Input: destination_pu08 - destination address of the bootflag info */ +/* The format of the boot-flag info is: "unsigned char" */ +/* The value of the boot info is 0x00 for cluster 0 and 0x01 for cluster 1. */ +/* Output: - */ +/* Changed: content of the data_buffer */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetActiveBootCluster( fsl_u08 * destination_pu08 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: puts the last address of the specified block into *destination_pu32 */ +/* Input: *destination_pu32 - destination where the last-block-address */ +/* should be stored */ +/* block_u16 - block number of the last address is needed */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetBlockEndAddr( fsl_u32 * destination_pu32, + fsl_u16 block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: puts the information about the protected flash area into the function parameter */ +/* Input: *start_block_pu16 - destination where the FSW start block should be stored */ +/* *end_block_pu16 - destination where the FSW end block should be stored */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetFlashShieldWindow( fsl_u16 * start_block_pu16, + fsl_u16 * end_block_pu16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: defines a new Flash-Shield-Window area inside the flash memory */ +/* Input: start_block_u16 - starting block of the Flash-Shield-Window (FSW) */ +/* end_block_u16 - ending block of the flash-Shield-Window (FSW) */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1A(FSL_ERR_ERASE), erase error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_SetFlashShieldWindow( fsl_u16 start_block_u16, + fsl_u16 end_block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: Swapping of bootcluster 0 and 1 */ +/* */ +/* CAUTION !!!! */ +/* After this function the boot cluster are immediately swapped */ +/* Input: - */ +/* Output: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1A(FSL_ERR_ERASE), erase error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_SwapBootCluster( void ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: sets specified security flag by dedicated command-function. */ +/* */ +/* There are following security levels: */ +/* a) chip-erase protection (cannot be reset by programmer !!!) */ +/* b) block-erase protection (can be reset by chip-erase on programmer) */ +/* c) write protection (can be reset by chip-erase on programmer) */ +/* d) boot-cluster protection (cannot be reset by programmer !!!) */ +/* */ +/* CAUTION !!!! */ +/* Each security flag can be written by the application only once */ +/* */ +/* Input: - */ +/* Output: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1A(FSL_ERR_ERASE), erase error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_SetChipEraseProtectFlag( void ); +extern fsl_u08 FSL_SetBlockEraseProtectFlag( void ); +extern fsl_u08 FSL_SetWriteProtectFlag( void ); +extern fsl_u08 FSL_SetBootClusterProtectFlag( void ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: defines the firmware operation method after interrupt service (ISR) execution. */ +/* Input: mode_u08 = 0x00, after RETI the firmware is continuing the interrupted command.*/ +/* = other, after RETI the firmware is interrupted with status 0x1F. */ +/* Changed: - */ +/* Returned: - */ +/*----------------------------------------------------------------------------------------------*/ +extern void FSL_SetInterruptMode( fsl_u08 mode_u08 ); + +#endif diff --git a/snake_branches/3.82_trial_seisan/fsl_user.h b/snake_branches/3.82_trial_seisan/fsl_user.h new file mode 100644 index 0000000..1018689 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/fsl_user.h @@ -0,0 +1,113 @@ +/*==============================================================================================*/ +/* Project = Selfprogramming library for 78K0R/Ix3/Kx3-L Single Voltage SST (MF2) Flash */ +/* Module = fsl_user.h */ +/* Version = V1.01 */ +/* Date = 28.03.2008 11:45:55 */ +/*==============================================================================================*/ +/* COPYRIGHT */ +/*==============================================================================================*/ +/* Copyright (c) 2007 by NEC Electronics (Europe) GmbH, */ +/* a company of the NEC Electronics Corporation */ +/*==============================================================================================*/ +/* Purpose: */ +/* user configurable constant/macros of the selfprogramming library */ +/* */ +/*==============================================================================================*/ +/* */ +/* Warranty Disclaimer */ +/* */ +/* Because the Product(s) is licensed free of charge, there is no warranty of any kind */ +/* whatsoever and expressly disclaimed and excluded by NEC, either expressed or implied, */ +/* including but not limited to those for non-infringement of intellectual property, */ +/* merchantability and/or fitness for the particular purpose. NEC shall not have any obligation */ +/* to maintain, service or provide bug fixes for the supplied Product(s) and/or the Application.*/ +/* */ +/* Each User is solely responsible for determining the appropriateness of using the Product(s) */ +/* and assumes all risks associated with its exercise of rights under this Agreement, */ +/* including, but not limited to the risks and costs of program errors, compliance with */ +/* applicable laws, damage to or loss of data, programs or equipment, and unavailability or */ +/* interruption of operations. */ +/* */ +/* Limitation of Liability */ +/* */ +/* In no event shall NEC be liable to the User for any incidental, consequential, indirect, */ +/* or punitive damage (including but not limited to lost profits) regardless of whether */ +/* such liability is based on breach of contract, tort, strict liability, breach of warranties, */ +/* failure of essential purpose or otherwise and even if advised of the possibility of */ +/* such damages. NEC shall not be liable for any services or products provided by third party */ +/* vendors, developers or consultants identified or referred to the User by NEC in connection */ +/* with the Product(s) and/or the Application. */ +/* */ +/*==============================================================================================*/ +/* Environment: PM plus (V6.30) */ +/* RA78K0(V1.20) */ +/* CC78K0(V2.00) */ +/*==============================================================================================*/ + + +#ifndef __FSL_USER_H_INCLUDED +#define __FSL_USER_H_INCLUDED + + +/*==============================================================================================*/ +/* constant definitions */ +/*==============================================================================================*/ + + +/* specify the CPU frequency in [Hz], only 2MHz....20MHz allowed */ +#define FSL_SYSTEM_FREQUENCY 8000000 + +/* define whether low-voltage mode is used or not */ +/* #define FSL_LOW_VOLTAGE_MODE */ + +/* size of the common data buffer expressed in [bytes] */ +/* the data buffer is used for data-exchange between the firmware and the selflib. */ +//#define FSL_DATA_BUFFER_SIZE 256 +#define FSL_DATA_BUFFER_SIZE 0 + + +/* customizable interrupt controller configuration during selfprogramming period */ +/* Bit --7-------6-------5-------4-------3-------2-------1-------0---------------------- */ +/* MK0L: PMK5 PMK4 PMK3 PMK2 PMK1 PMK0 LVIMK WDTIMK */ +/* MK0H: SREMK0 SRMK0* STMK0* DMAMK1 DMAMK0 SREMK3 SRMK3 STMK3 */ +/* MK1L: TMMK03 TMMK02 TMMK01 TMMK00 IICMK0 SREMK1 SRMK1 STMK1* */ +/* MK1H: TMMK04 SREMK2 SRMK2 STMK2* KRMK RTCIMK RTCMK ADMK */ +/* MK2L: PMK10 PMK9 PMK8 PMK7 PMK6 TMMK07 TMMK06 TMMK05 */ +/* MK2H: 1 1 1 1 1 1 1 PMK11 */ +/*------------------------------------------------------------------------------------------ */ +/* */ +/* Examples: */ +/* ========= */ +/*#define FSL_MK0L_MASK 0xF7 -> allow INTP1 interrupt during selfprogramming */ +/*#define FSL_MK0H_MASK 0xEF -> allow DMA1 interrupt during selfprogramming */ +/*#define FSL_MK1L_MASK 0xBF -> allow TM02 interrupt during selfprogramming */ +/*#define FSL_MK1H_MASK 0xFF -> all interrupts disabled during selfprogramming */ +/*#define FSL_MK2L_MASK 0xF7 -> allow INTP6 interrupt during selfprogramming */ +/*#define FSL_MK2H_MASK 0xFF -> all interrupts disabled during selfprogramming */ +/*------------------------------------------------------------------------------------------ */ +#define FSL_MK0L_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK0H_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK1L_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK1H_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK2L_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK2H_MASK 0xFF /* all interrupts disabled during selfprogramming */ + + +/* FLMD0 control bit */ +#ifndef _WIN32 +#define FSL_FLMD0_HIGH {BECTL.7 = 1;} +#define FSL_FLMD0_LOW {BECTL.7 = 0;} +#else +#define FSL_FLMD0_HIGH {BECTL_7 = 1;} +#define FSL_FLMD0_LOW {BECTL_7 = 0;} +#endif + + +/*----------------------------------------------------------------------------------------------*/ +/* switch interrupt backu functionality ON/OFF using #define/#undef */ +/*----------------------------------------------------------------------------------------------*/ +/* #define FSL_INT_BACKUP */ +#undef FSL_INT_BACKUP + + +#endif diff --git a/snake_branches/3.82_trial_seisan/get_ei.asm b/snake_branches/3.82_trial_seisan/get_ei.asm new file mode 100644 index 0000000..29f4a6e --- /dev/null +++ b/snake_branches/3.82_trial_seisan/get_ei.asm @@ -0,0 +1,26 @@ +$PROCESSOR ( 9F0104 ) + +PUBLIC _get_ei +; +; PSWEIǂݏo܂B +; + + + +ROM_CODE CSEG BASE + +_get_ei: + set1 CY + and1 CY,PSW.7 ; check IE bit. if 0, all interrupts are disabled. + bnc $ie_dis + mov C,#01h + ret + +ie_dis: + mov C,#00h + ret + + + end + + diff --git a/snake_branches/3.82_trial_seisan/hal.c b/snake_branches/3.82_trial_seisan/hal.c new file mode 100644 index 0000000..e2e72ec --- /dev/null +++ b/snake_branches/3.82_trial_seisan/hal.c @@ -0,0 +1,182 @@ +/* ======================================================== + ȈՃeXĝ߂HALC + + $Id: asdf$ + ======================================================== */ +#ifndef _WIN32 +#pragma SFR +#endif + +#include "incs_loader.h" + + +#define WIFI_txLatch PIF21 // dgMpX { led.h Œ` + + +// HALłԂ //////////////////////////////////////// +// ȎȂ琳_ɂr...≽łȂ +bit PM_EXTDC_n; +bit BT_IN_CHG_n; +bit SW_POW_n; +bit SW_HOME_n; +bit SW_WIFI_n; +bit SHELL_OPEN; + +/* +#define REG_BIT_HAL0_PM_EXTDC_n ( 1 << 7 ) +#define REG_BIT_HAL0_BT_IN_CHG_n ( 1 << 6 ) +//#define REG_BIT_HAL0_PM_IRQ_n ( 1 << 5 ) // gȂ +#define REG_BIT_HAL0_WL_TX ( 1 << 4 ) +#define REG_BIT_HAL0_SHELL_OPEN ( 1 << 3 ) +#define REG_BIT_HAL0_SW_WIFI_n ( 1 << 2 ) +#define REG_BIT_HAL0_SW_HOME_n ( 1 << 1 ) +#define REG_BIT_HAL0_SW_POW_n ( 1 << 0 ) + +#define REG_BIT_HAL1_DIPSW_1 ( 1 << 3 ) +#define REG_BIT_HAL1_DIPSW_0 ( 1 << 2 ) +#define REG_BIT_HAL1_HW_DET_1 ( 1 << 1 ) +#define REG_BIT_HAL1_HW_DET_0 ( 1 << 0 ) +*/ + + +// ڂւ +// `^OȂ炱ł(ԃJEg͕) +void hal_update() +{ +#ifdef _ENABLE_HAL_ + u8 temp_conf = vreg_ctr[ VREG_C_HAL_OVW_CONT0 ]; + u8 temp_dat = vreg_ctr[ VREG_C_HAL_OVW_DAT0 ]; +#else + u8 temp_conf = 0x00; + u8 temp_dat = 0; // łǂ +#endif + + // A_v^L + if( temp_conf & REG_BIT_HAL0_PM_EXTDC_n ) + { + // O͂Ȃ񂾂傫Ȃ肪 + if(( temp_dat & REG_BIT_HAL0_PM_EXTDC_n ) == 0 ) + { + PM_EXTDC_n = 0; + } + else + { + PM_EXTDC_n = 1; + } + } + else + { + PM_EXTDC_n = PM_EXTDC_n_RAW; + } + + // [dH + if( temp_conf & REG_BIT_HAL0_BT_IN_CHG_n ) + { + if(( temp_dat & REG_BIT_HAL0_BT_IN_CHG_n ) == 0 ) + { + BT_IN_CHG_n = 0; + } + else + { + BT_IN_CHG_n = 1; + } + } + else + { + BT_IN_CHG_n = BT_IN_CHG_n_RAW; + } + + // dt + if( temp_conf & REG_BIT_HAL0_SW_POW_n ) + { + if(( temp_dat & REG_BIT_HAL0_SW_POW_n ) == 0 ) + { + SW_POW_n = 0 ; + } + else + { + SW_POW_n = 1; + } + } + else + { + SW_POW_n = SW_POW_n_RAW; + } + + // Ɩt + if( temp_conf & REG_BIT_HAL0_SW_HOME_n ) + { + if(( temp_dat & REG_BIT_HAL0_SW_HOME_n ) == 0 ) + { + SW_HOME_n = 0; + } + else + { + SW_HOME_n = 1; + } + } + else + { + if( system_status.model == MODEL_TS_BOARD )// ڑ̃|[gႤ + { + SW_HOME_n = SW_HOME_n_TSBOARD_RAW; + } + else + { + SW_HOME_n = SW_HOME_n_JIKKI_RAW; + } + } + + // J + if( temp_conf & REG_BIT_HAL0_SW_WIFI_n ) + { + if(( temp_dat & REG_BIT_HAL0_SW_WIFI_n ) == 0 ) + { + SW_WIFI_n = 0; + } + else + { + SW_WIFI_n = 1; + } + } + else + { + SW_WIFI_n = SW_WIFI_n_RAW; + } + + // + if( temp_conf & REG_BIT_HAL0_SHELL_OPEN ) + { + if(( temp_dat & REG_BIT_HAL0_SHELL_OPEN ) == 0 ) + { + SHELL_OPEN = 0; + } + else + { + SHELL_OPEN = 1; + } + } + else + { + SHELL_OPEN = SHELL_OPEN_RAW; + } + + // dg + if( temp_conf & REG_BIT_HAL0_WL_TX ) + { + WIFI_txLatch = 1; + } + +} + + + +void hal_reset() +{ + vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = 0; + vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0; + vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] = 0xFF; + vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] = 0xFF; + vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] = 0xFF; +} + diff --git a/snake_branches/3.82_trial_seisan/hal.h b/snake_branches/3.82_trial_seisan/hal.h new file mode 100644 index 0000000..245be75 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/hal.h @@ -0,0 +1,16 @@ +#ifndef _hal_h_ +#define _hal_h_ + + +extern bit PM_EXTDC_n; +extern bit BT_IN_CHG_n; +extern bit SW_POW_n; +extern bit SW_HOME_n; +extern bit SW_WIFI_n; +extern bit SHELL_OPEN; + +// ======================================================== +void hal_update(); +void hal_reset(); + +#endif diff --git a/snake_branches/3.82_trial_seisan/hoge.bin b/snake_branches/3.82_trial_seisan/hoge.bin new file mode 100644 index 0000000000000000000000000000000000000000..d04a34038d60b593073884cfb073c4ad0cf5e0ab GIT binary patch literal 16387 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 V|5nKSZ$#4n{|KIT^j_5e{{_5i7196z literal 0 HcmV?d00001 diff --git a/snake_branches/3.82_trial_seisan/i2c_ctr.c b/snake_branches/3.82_trial_seisan/i2c_ctr.c new file mode 100644 index 0000000..4bd238e --- /dev/null +++ b/snake_branches/3.82_trial_seisan/i2c_ctr.c @@ -0,0 +1,312 @@ +/* ======================================================== + SoC VK`l I2CʐM + cJZ.nintendo + '09 Apr + $Id: i2c_ctr.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 +#pragma interrupt INTIICA1 int_iic_ctr RB1 +#endif + + +#include "incs.h" +#include "rtc.h" +#include "pedometer.h" + + +#ifdef _MCU_BSR_ +// #ifdef _MODEL_TS0_ || _MODEL_WM0_ + +// [LOfI2Ct +// TEG͉H}ŃeR +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR0 IICAPR11 +#define IICAPR1 IICAPR01 +#define IICCTL0 IICCTL10 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#define TRC TRC1 +#define SMC SMC1 +#define DFC DFC1 +#define PortMode PM20 +#define Port P20 + +#endif + + + +// ============================================== +enum en_IIC_STATE +{ + IIC_IDLE = 0, + IIC_RCV_REG_ADRS, + IIC_TX_OR_RX, + IIC_TX, + IIC_RX +}; + + + +// ============================================== +extern bit irq_readed; // ꂩIRQWX^ǂ܂ꂽ + +u8 iic_burst_state; +static enum en_IIC_STATE state = IIC_IDLE; + +#define bit_iics_spd (i2c_stat & (1<<0)) +#define bit_iics_std (i2c_stat & (1<<1)) +#define bit_iics_ackd (i2c_stat & (1<<2)) +#define bit_iics_trc (i2c_stat & (1<<3)) +#define bit_iics_coi (i2c_stat & (1<<4)) + + + +/********************************************//** + isr + + Xe[gɊ荞݂菈i߂ + ***********************************************/ +__interrupt void int_iic_ctr( ) +{ + static u8 reg_adrs; + static u8 tx_buf; + u8 rx_buf; + static u8 adrs_access_from; // o[XgANZX̎Ɏg + + u8 i2c_stat = IICS; // volatilê + + // ǂݏoI + if( !bit_iics_ackd // 荞ݗvNAKif[^M̍Ōj + || bit_iics_spd ) // XgbvRfBV(!ACKD ɗƂ͊荞ݗȂ (SPIE = 0)) + { + /* + I2C̔xẴtOOSTDĂ܂Ƃ + ǁAȂ삷‚ + */ + + // WX^[hŁA荞݃slQ[g + // ܂ǂ܂ĂȂ荞݂΁AēxAT[g + if( irq_readed ) + { + IRQ0_neg; + irq_readed = false; + if( !( (( vreg_ctr[VREG_C_IRQ0] & vreg_ctr[VREG_C_IRQ_MASK0 ] ) == 0 ) + && (( vreg_ctr[VREG_C_IRQ1] & vreg_ctr[VREG_C_IRQ_MASK1 ] ) == 0 ) + && (( vreg_ctr[VREG_C_IRQ2] & vreg_ctr[VREG_C_IRQ_MASK2 ] ) == 0 ) + && (( vreg_ctr[VREG_C_IRQ3] & vreg_ctr[VREG_C_IRQ_MASK3 ] ) == 0 ) )) + { + while( !IRQ0 ){;} // ԉ҂sv + IRQ0_ast; + } + } + + // I2CIɉ镨 // + hosu_read_end( ); // vǂݏoI + rtc_unlock( ); + + state = IIC_IDLE; + SPIE = 0; + LREL = 1; + EI(); + return; + } + + if( bit_iics_std ) // 荞ݗvFX^[gRfBV + { + if( !( state == IIC_IDLE || state == IIC_TX_OR_RX )) + { + // sp/nack 葹˂ +// dbg_nop(); // Ȃ͂... +/* + // pPbg̐擪stƌȂB + // ʂɑs + state = IIC_IDLE; +/*/ + // gCĂ炤 + state = IIC_IDLE; + SPIE = 0; + LREL = 1; + EI(); +//*/ + } + // ʏ + } + + EI(); + + switch ( state ) + { + case ( IIC_IDLE ): + // njĂяoɉB + // Ȃ + iic_burst_state = 0; + SPIE = 1; + WREL = 1; // EFCg + state = IIC_RCV_REG_ADRS; + return; + + case ( IIC_RCV_REG_ADRS ): // QoCgځiWX^AhXjMɗ + // WX^AhXM + reg_adrs = IICA; + + WREL = 1; + adrs_access_from = reg_adrs; + tx_buf = vreg_ctr_read( reg_adrs ); // f[^̏Ă + state = IIC_TX_OR_RX; + return; + + case ( IIC_TX_OR_RX ): // ̎ɗ銄荞݁BSTȂ瑗MAf[^珑܂ + // if( TRC ) // MtO ŋʂ̂́A荞ݒxɕsN肦 + if( bit_iics_std ) + { // X^[gRfBVotO + // [h + if( bit_iics_coi ) + { // AhXvtO + state = IIC_TX; + // no break, no return // + } + else + { + // X^[gňႤfoCXĂ΂ꂽI + SPIE = 0; + LREL = 1; // EFCg? + state = IIC_IDLE; // I + return; + } + } + else + { + state = IIC_RX; // f[^1oCgM̊荞݂ + // no break, no return // + } + /* FALLTHROUGH */ + + default: // o[Xg R/W łĂ΂邱ƂɂȂ + if( state == IIC_TX ) + { // M + IICA = tx_buf; + vreg_ctr_after_read( reg_adrs, tx_buf ); // ǂ񂾂NAȂǂ̏ + } + else + { // M + rx_buf = IICA; + +#ifdef _I2C_ERR_ABORT_ + if( reg_adrs >= 0x80 || reg_adrs <= 1 ) + { + LREL = 1; // Ȃ񂩃f[^̂ŒʐMI nakԂ̂Ȃc + return; + } +#endif + vreg_ctr_write( reg_adrs, rx_buf ); + WREL = 1; + } + + // WX^AhX̃CNg + /// ANZX|C^i߂ȂȃWX^ + switch( adrs_access_from ) + { + case( VREG_C_ACC_HOSU_HIST ): + case( VREG_C_LED_NOTIFY_DATA ): + case( VREG_C_LED_POW ): + case( VREG_CX_INFO ): + case( VREG_CX_FREE_DATA ): + break; + case( VREG_CX_FREE_ADRS ): + if( reg_adrs == VREG_CX_FREE_ADRS ) + { + reg_adrs = VREG_CX_FREE_DATA; + } + break; + default: + reg_adrs ++; + } + + if( state == IIC_TX ) + { // ɂ‚ɑf[^̏VeINBSPĎgȂȂ + tx_buf = vreg_ctr_read( reg_adrs ); + } + break; + } +} + + + +/********************************************//** +@W[ +@ +@todo twl init Ɠ? +@ +@rbg삪̂łĕsoςȂ + ***********************************************/ +void IIC_ctr_Init( void ) +{ + + IICAEN = 1; + + IICE = 0; /* IICA disable */ + + IICAMK = 1; /* INTIICA disable */ + IICAIF = 0; /* clear INTIICA interrupt flag */ + +// IICAPR0 = 1; /* set INTIICA high priority */ +// IICAPR1 = 0; /* set INTIICA high priority */ X^bNs + + Port &= ~0x03; + + SVA = IIC_C_SLAVEADDRESS; + IICF = 0x01; + + STCEN = 1; // X^[g̋ + IICRSV = 1; // ʐM\Ȃ:X[uɓO + + SPIE = 0; // XgbvRfBVł̊荞݂֎~ + WTIM = 1; // ACKԂclkLɌŒ肷 + ACKE = 1; + + IICWH = 9; + IICWL = 11; // LԂ̒ + + SMC = 1; // [h + DFC = 1; // fW^tB^on (@fast mode) + + IICAMK = 0; // 荞݂ + + IICE = 1; + + PortMode &= ~0x03; + + state = IIC_IDLE; +} + + + +/********************************************//** + + ***********************************************/ +void IIC_ctr_Stop( void ) +{ + IICE = 0; /* IICA disable */ + IICAEN = 0; +} + + + diff --git a/snake_branches/3.82_trial_seisan/i2c_ctr.h b/snake_branches/3.82_trial_seisan/i2c_ctr.h new file mode 100644 index 0000000..16234ff --- /dev/null +++ b/snake_branches/3.82_trial_seisan/i2c_ctr.h @@ -0,0 +1,210 @@ +#ifndef _MDSERIAL_A_ +#define _MDSERIAL_A_ + + +/* IIC operation enable (IICE0) */ +#define IIC0_OPERATION 0x80 +#define IIC0_OPERATION_DISABLE 0x00 /* stop operation */ +#define IIC0_OPERATION_ENABLE 0x80 /* enable operation */ + +/* Exit from communications (LREL0) */ +#define IIC0_COMMUNICATION 0x40 +#define IIC0_COMMUNICATION_NORMAL 0x00 /* normal operation */ +#define IIC0_COMMUNICATION_EXIT 0x40 /* exit from current communication */ + +/* Wait cancellation (WREL0) */ +#define IIC0_WAITCANCEL 0x20 +#define IIC0_WAIT_NOTCANCEL 0x00 /* do not cancel wait */ +#define IIC0_WAIT_CANCEL 0x20 /* cancel wait */ + +/* Generation of interrupt when stop condition (SPIE0) */ +#define IIC0_STOPINT 0x10 +#define IIC0_STOPINT_DISABLE 0x00 /* disable */ +#define IIC0_STOPINT_ENABLE 0x10 /* enable */ + +/* Wait and interrupt generation (WTIM0) */ +#define IIC0_WAITINT 0x08 +#define IIC0_WAITINT_CLK8FALLING 0x00 /* generate at the eighth clocks falling edge */ +#define IIC0_WAITINT_CLK9FALLING 0x08 /* generated at the ninth clocks falling edge */ + +/* Acknowledgement control (ACKE0) */ +#define IIC0_ACK 0x04 +#define IIC0_ACK_DISABLE 0x00 /* enable acknowledgement */ +#define IIC0_ACK_ENABLE 0x04 /* disable acknowledgement */ + +/* Start condition trigger (STT0) */ +#define IIC0_STARTCONDITION 0x02 +#define IIC0_START_NOTGENERATE 0x00 /* do not generate start condition */ +#define IIC0_START_GENERATE 0x02 /* generate start condition */ + +/* Stop condition trigger (SPT0) */ +#define IIC0_STOPCONDITION 0x01 +#define IIC0_STOP_NOTGENERATE 0x00 /* do not generate stop condition */ +#define IIC0_STOP_GENERATE 0x01 /* generate stop condition */ + +/* + IIC Status Register 0 (IICS0) +*/ +/* Master device status (MSTS0) */ +#define IIC0_MASTERSTATUS 0x80 +#define IIC0_STATUS_NOTMASTER 0x00 /* slave device status or communication standby status */ +#define IIC0_STATUS_MASTER 0x80 /* master device communication status */ + +/* Detection of arbitration loss (ALD0) */ +#define IIC0_ARBITRATION 0x40 +#define IIC0_ARBITRATION_NO 0x00 /* arbitration win or no arbitration */ +#define IIC0_ARBITRATION_LOSS 0x40 /* arbitration loss */ + +/* Detection of extension code reception (EXC0) */ +#define IIC0_EXTENSIONCODE 0x20 +#define IIC0_EXTCODE_NOT 0x00 /* extension code not received */ +#define IIC0_EXTCODE_RECEIVED 0x20 /* extension code received */ + +/* Detection of matching addresses (COI0) */ +#define IIC0_ADDRESSMATCH 0x10 +#define IIC0_ADDRESS_NOTMATCH 0x00 /* addresses do not match */ +#define IIC0_ADDRESS_MATCH 0x10 /* addresses match */ + +/* Detection of transmit/receive status (TRC0) */ +#define IIC0_STATUS 0x08 +#define IIC0_STATUS_RECEIVE 0x00 /* receive status */ +#define IIC0_STATUS_TRANSMIT 0x08 /* transmit status */ + +/* Detection of acknowledge signal (ACKD0) */ +#define IIC0_ACKDETECTION 0x04 +#define IIC0_ACK_NOTDETECTED 0x00 /* ACK signal was not detected */ +#define IIC0_ACK_DETECTED 0x04 /* ACK signal was detected */ + +/* Detection of start condition (STD0) */ +#define IIC0_STARTDETECTION 0x02 +#define IIC0_START_NOTDETECTED 0x00 /* start condition not detected */ +#define IIC0_START_DETECTED 0x02 /* start condition detected */ + +/* Detection of stop condition (SPD0) */ +#define IIC0_STOPDETECTION 0x01 +#define IIC0_STOP_NOTDETECTED 0x00 /* stop condition not detected */ +#define IIC0_STOP_DETECTED 0x01 /* stop condition detected */ + +/* + IIC Flag Register 0 (IICF0) +*/ +/* STT0 clear flag (STCF) */ +#define IIC0_STARTFLAG 0x80 +#define IIC0_STARTFLAG_GENERATE 0x00 /* generate start condition */ +#define IIC0_STARTFLAG_UNSUCCESSFUL 0x80 /* start condition generation unsuccessful */ + +/* IIC bus status flag (IICBSY) */ +#define IIC0_BUSSTATUS 0x40 +#define IIC0_BUS_RELEASE 0x00 /* bus release status */ +#define IIC0_BUS_COMMUNICATION 0x40 /* bus communication status */ + +/* Initial start enable trigger (STCEN) */ +#define IIC0_STARTWITHSTOP 0x02 +#define IIC0_START_WITHSTOP 0x00 /* generation of a start condition without detecting a stop condition */ +#define IIC0_START_WITHOUTSTOP 0x02 /* generation of a start condition upon detection of a stop condition */ + +/* Communication reservation function disable bit (IICRSV) */ +#define IIC0_RESERVATION 0x01 +#define IIC0_RESERVATION_ENABLE 0x00 /* enable communication reservation */ +#define IIC0_RESERVATION_DISABLE 0x01 /* disable communication reservation */ + +/* + IIC clock selection register 0 (IICCL0) +*/ +#define IICCL0_INITIALVALUE 0x00 +/* Detection of SCL0 pin level (CLD0) */ +#define IIC0_SCLLEVEL 0x20 +#define IIC0_SCL_LOW 0x00 /* clock line at low level */ +#define IIC0_SCL_HIGH 0x20 /* clock line at high level */ + +/* Detection of SDA0 pin level (DAD0) */ +#define IIC0_SDALEVEL 0x10 +#define IIC0_SDA_LOW 0x00 /* data line at low level */ +#define IIC0_SDA_HIGH 0x10 /* data line at high level */ + +/* Operation mode switching (SMC0) */ +#define IIC0_OPERATIONMODE 0x08 +#define IIC0_MODE_STANDARD 0x00 /* operates in standard mode */ +#define IIC0_MODE_HIGHSPEED 0x08 /* operates in high-speed mode */ + +/* Digital filter operation control (DFC0) */ +#define IIC0_DIGITALFILTER 0x04 +#define IIC0_FILTER_OFF 0x00 /* digital filter off */ +#define IIC0_FILTER_ON 0x04 /* digital filter on */ + +/* Operation mode switching (CL01, CL00) */ +#define IIC0_CLOCKSELECTION 0x03 + +/* Combine of (SMC0, CL01, CL00)*/ +#define IIC0_CLOCK0 0x00 +#define IIC0_CLOCK1 0x01 +#define IIC0_CLOCK2 0x02 +#define IIC0_CLOCK3 0x03 +#define IIC0_CLOCK4 0x08 +#define IIC0_CLOCK5 0x09 +#define IIC0_CLOCK6 0x0a +#define IIC0_CLOCK7 0x0b + +/* + IIC function expansion register 0 (IICX0) +*/ +/* IIC clock expension (CLX0) */ +#define IIC0_CLOCKEXPENSION 0x01 +#define IIC0_EXPENSION0 0x00 +#define IIC0_EXPENSION1 0x01 + +/* Operation clock (CLX0, SMC0, CL01, CL00) + | IIC0_EXPENSION0 | IIC0_EXPENSION1 | +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK0 | fprs/2 | prohibited | selection clock(fw) + | fprs/88 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK1 | fprs/2 | prohibited | selection clock(fw) + | fprs/172 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK2 | fprs/2 | prohibited | selection clock(fw) + | fprs/344 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK3 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/66 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK4 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK5 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK6 | fprs/4 | fprs/4 | selection clock(fw) + | fprs/96 | fprs/48 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK7 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/18 | | transfer clock + | high speed | | mode +------------|-------------------|-------------------|---------------------- +*/ + +#define ADDRESS_COMPLETE 0x80 +#define IIC_MASTER_FLAG_CLEAR 0x00 + +/****************************************************************************** + * Macro define + ******************************************************************************/ + + + +/****************************************************************************** + * Function define + ******************************************************************************/ + +void IIC_ctr_Init( void ); +void IIC_ctr_Stop( void ); + + +#endif diff --git a/snake_branches/3.82_trial_seisan/i2c_mcu-sub.c b/snake_branches/3.82_trial_seisan/i2c_mcu-sub.c new file mode 100644 index 0000000..b1b468c --- /dev/null +++ b/snake_branches/3.82_trial_seisan/i2c_mcu-sub.c @@ -0,0 +1,124 @@ +/* ======================================================== + ȈI2CiytFgpjʐM + de JHL cJZ + '09 Feb - + $Id: $ + ======================================================== */ +#ifndef _WIN32 +#pragma sfr +#pragma di +#pragma ei +#pragma nop +#pragma inline // memcpy()CCWJ(̕I) +#endif + +#include "incs.h" +#include "i2c_mcu.h" +#include "loader.h" +#include "util_funcs.h" + +#include "i2c_mcu_sub.h" +#include "pm.h" /// 肽ȂcCODEC̃WX^Ђ + + +// ======================================================== +// [NAEhp +static void iic_mcu_simple_dummy_write(); +static i2c_err iic_mcu_codec_write_low( u8 adrs, u8 dat ); + +// i2c_mcu.c ɂ +extern void iic_mcu_send_re_st( ); +extern void iic_mcu_send_sp( ); +extern i2c_err iic_mcu_send_a_byte( u8 ); +extern i2c_err iic_mcu_call_slave( u8 slave ); + + +/* + yamaha codecspӂɊ荞݂邱Ƃ邪A^XNo^ + ۂɓǂݏoƂɂ͏߂Ȃ̂ʼnȂ悤ɓ͂ +*/ + +/********************************************//** + R[fbN wPoCgx Cg + + iic_mcu_write_a_byte CODECs[NAEh + ***********************************************/ +#define YAMAHA_CODEC_ERRATA_CHECK_MASK ( 0x7D ) +i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ) +{ + u8 pm_reg_original; + i2c_err rv; + + // }ncodec[NAEh SPIƂ̋pWX^̒g擾 + if(( rv = iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 1, &pm_reg_original )) != I2C_ERR_OK ) + { + return( rv ); + } + // phase1 ܂ + + // ݁I + if( ( rv = iic_mcu_codec_write_low( adrs, dat ) ) != I2C_ERR_OK ) + { + return( rv ); + } + + // }ncodec[NAEh + if( ( pm_reg_original & YAMAHA_CODEC_ERRATA_CHECK_MASK ) == 0 ) // ͂߂狤LWX^0eXgȂ + // (& ZbgvĂǂZbĝ) + { + return( I2C_ERR_OK ); + } + + { + // LWX^ 0x00 ɏĂ(Gb^I)悤Ȃ珑߂ + u8 pm_reg_after; + + if(( rv = iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 1, &pm_reg_after )) != I2C_ERR_OK ) + { + return( rv ); + } + + if( ( pm_reg_after & YAMAHA_CODEC_ERRATA_CHECK_MASK ) != 0x00 ) + { + // RtNg͂Ȃ or ZbgvȂ + return( I2C_ERR_OK ); + } + + // else { + rv = iic_mcu_codec_write_low( CODEC_REG_PM, pm_reg_original ); // ߂Aă`FbN͂Ȃ + return ( rv ); // G[Ԃ邱Ƃ邩 + // gCȂǂ͖ + } + return( rv ); // no reach // +} + + +static i2c_err iic_mcu_codec_write_low( u8 adrs, u8 dat ) +{ + IICMK10 = 1; // DMApISRɔ΂Ȃ߂Ƀ}XN + if( iic_mcu_call_slave( IIC_SLA_CODEC ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + iic_mcu_send_a_byte( adrs ); + iic_mcu_send_a_byte( dat ); + + // TI[NAEh + codec_dummy_write(); + + iic_mcu_send_sp( ); + iic_mcu_busy = false; + return( I2C_ERR_OK ); +} + + +// re-stŃ_~[Cg +void codec_dummy_write() +{ + iic_mcu_send_re_st( ); + iic_mcu_send_a_byte( IIC_SLA_CODEC ); // _~[Cg + iic_mcu_send_a_byte( 0x20 ); // S~ĂȂAhX + iic_mcu_send_a_byte( 0xAA ); // ł悢 +} + diff --git a/snake_branches/3.82_trial_seisan/i2c_mcu.c b/snake_branches/3.82_trial_seisan/i2c_mcu.c new file mode 100644 index 0000000..a417289 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/i2c_mcu.c @@ -0,0 +1,660 @@ +/* ======================================================== + ȈI2CiytFgpjʐM + de JHL cJZ + '09 Feb - + + $Id: $ + ======================================================== */ +#ifndef _WIN32 +#pragma sfr +#pragma di +#pragma ei +#pragma nop +#pragma inline // memcpy()CCWJ(̕I) +#endif + +#include "incs_loader.h" +#include "i2c_mcu.h" +#include "loader.h" +#include "util_funcs.h" + +#include "i2c_mcu_sub.h" + + + +// ======================================================== +// WX^̃rbg +// vtBbNXbAꕔ̃rbgWX^ɂԂ邽... +// SMR0n +#define bCKS0 ( 1 << 15 ) +#define bCCS0 ( 1 << 14 ) +#define bSTS0 ( 1 << 8 ) +#define bSIS0 ( 1 << 6 ) +#define bMD0n2 ( 1 << 2 ) +#define bMD0n1 ( 1 << 1 ) +#define bMD0n0 ( 1 << 0 ) +#define bSMR0n_FIXEDBIT ( 1 << 5 ) + +// SSR0n +#define bit_TSF0 6 +#define PEF0 ( 1 << 1 ) + +// SIR0n +#define PECT0 ( 1 << 1 ) + +// SCR0n +#define TXE0 ( 1 << 15 ) +#define RXE0 ( 1 << 14 ) +#define SLC02 4 +#define DLS02 0 +#define TSF0 ( 1 << 6 ) + +// SOn +#define TAUS_MASK 0x0B0B; + +// DMCn +#define DRS ( 1 << 6 ) + + + + +// ======================================================== +static void iic_mcu_send_st( ); + +// *sub炵Ă΂Ȃ +void iic_mcu_send_re_st( ); +void iic_mcu_send_sp( ); +i2c_err iic_mcu_send_a_byte( u8 ); +i2c_err iic_mcu_call_slave( u8 slave ); + + +// ======================================================== +bit iic_mcu_wo_dma; +volatile bit iic_mcu_busy; +static volatile bit iic_mcu_initialized; + + +static u8 iic_send_work[4]; +static u8 *p_iic_send_wo_dma_dat; +static u8 iic_send_wo_dma_len; + +// f[^G[iROHMxZTjgĈ +/// Ƃ肠ADMAgp}`oCgCg ̎ɂ@\Ȃ +static u8 last_slave, last_reg_adrs, last_size; + +i2c_err iic_mcu_result; // ꕶ[h̎̓f[^ԂB + +#ifdef i2c_timeout_test +extern bit i2c_mcu_time_out_error; +#endif + + + +/********************************************//** + + ***********************************************/ +void nop8() +{ + // ɗ call 3clk, return 6clk +} + + +/********************************************//** + ̒ʐMÎ҂B + + ^CAEgL + ***********************************************/ +static i2c_err iic_mcu_wait_free() +{ + u16 tot = 0; + + iic_mcu_start( ); + while( 1 ) + { + DI_wt_chk(); + if( !iic_mcu_busy ) + { + iic_mcu_busy = true; + EI(); + break; + } + EI(); + if( ++tot == 0 ) + { +#ifdef i2c_timeout_test + i2c_mcu_time_out_error = true; +#endif + return( I2C_ERR_TIMEOUT ); + } + } + return( I2C_ERR_OK ); +} + + + +/********************************************//** + X[u w1x [h + + Ԓlf[^̂̂łB + + G[R[h iic_mcu_result ɓĂ܂ + ***********************************************/ +u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ) +{ + u8 dat; + + iic_mcu_result = iic_mcu_read( SLA, adrs, 1, &dat ); + if( iic_mcu_result != I2C_ERR_OK ) + { + dat = 0xff; + } + + return ( dat ); +} + + + +/********************************************//** + X[ũ[h + + yz + + X[uEFCgRfBVoƂ͋֎~łB + + ̏ꍇłG[oȂǂł܂ + ***********************************************/ +i2c_err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8 * dest ) +{ + +#if 1 + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + // (^CAEg) + return( I2C_ERR_TIMEOUT ); + } +#else + // gpȂA +#endif + + // X^[gRfBVƃX[ǔĂяoAWX^AhX̑M + if( iic_mcu_call_slave( slave ) != 0 ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + + // WX^AhX̑M + iic_mcu_send_a_byte( adrs ); // I܂ŋAĂȂ + + // ΂NAKAĂȂO + + // f[^M // + iic_mcu_send_re_st( ); // X^[gRfBV + iic_mcu_send_a_byte( slave | 0x01 ); // M܂Ŗ߂Ă܂B + + // f[^M + ST0 = 0x0004; // M[hɐݒς̂ŃWbN~ + SCR02 = RXE0 | 1 << SLC02 | 7 << DLS02; // Mݒ + SS0 = 0x0004; // ʐMҋ@ + + do + { + if( len == 1 ) + { + SOE0 = 0x0000; // ŌNAK + } + IICIF10 = 0; + SIO10 = 0xFF; // _~[f[^ƎMJn + while( IICIF10 == 0 ) + {;} // M҂ + + *dest = SIO10; + dest++; + len--; + } + while( len != 0 ); + + if( slave == IIC_SLA_CODEC ) + { + codec_dummy_write(); + } + + iic_mcu_send_sp( ); + + IICIF10 = 0; + iic_mcu_busy = false; + return ( I2C_ERR_OK ); +} + + + + +/********************************************//** + X[u wPoCgx Cg + + O̓]Î҂āACg܂B + + Ԓl@iic_mcu_write@ɓ + ***********************************************/ +i2c_err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ) +{ + // P̎DMAƂNȂłƏI点 + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + return( I2C_ERR_TIMEOUT ); + } + + // X^[gRfBVƃX[ǔĂяo... + IICMK10 = 1; + if( iic_mcu_call_slave( SLA ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return( I2C_ERR_NOSLAVE ); + } + iic_mcu_send_a_byte( adrs ); + iic_mcu_send_a_byte( dat ); + iic_mcu_send_sp( ); + iic_mcu_busy = false; + return ( I2C_ERR_OK ); +} + + + +/********************************************//** + X[uփCg + + WX^ adrs 擪ɁA + *str + len܂B + + yz + 1) X[uEFCgRfBVoƂ͋֎~łB + ̏ꍇłG[oȂǂł܂ + 2) len < sizeof(iic_send_work) łȂDMA g܂BiRAMsjւڂB + + ylz + DMA1gp܂B + ***********************************************/ +i2c_err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src ) +{ + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + return( I2C_ERR_TIMEOUT ); + } +#if 0 // renge^̃}`^XNɂȂłɂ + // gpȂA +#endif + + // X^[gRfBVƃX[ǔĂяo... + IICMK10 = 1; + IICIF10 = 0; + if( iic_mcu_call_slave( slave ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + + IICIF10 = 0; + if( ! iic_mcu_wo_dma /* || len <= iic_send_work */ ) + { + // DMAgpiʏj// + + // WX^AhX𑗂Af[^̏ + memcpy( iic_send_work, src, 4 ); //obt@Ƃ4oCgpӂĖ߁B + + // gĈ + last_slave = slave; + last_reg_adrs = adrs; + last_size = len; + + // DMAZbg + while( DST1 ) + {;} + + DEN1 = 1; + DSA1 = (u8)( &SIO10 ); + DRA1 = (u16)( &iic_send_work[0] ); + DBC1 = len; + DMC1 = DRS | 8; // RAM -> SFR, 8bit, IRQ, IIC10 + + DMAIF1 = 0; + DMAMK1 = 0; + DST1 = 1; // DEN1 = 12clkȏJ + + SIO10 = adrs; // ςȂI 荞݂DMAX^[g + // c͊荞݃[` + } + else + { + // DMAgpȂ // + + // WX^AhX̑M + IICMK10 = 0; + SIO10 = adrs; + + iic_send_wo_dma_len = len; + p_iic_send_wo_dma_dat = (u8*)src; + // c͊荞݃[` + } + + return ( I2C_ERR_OK ); +} + + + + +/********************************************//** + DMAP]I荞 + + IIC_mcu ̑MR[obN֐̂悤Ȃ + + FDMA]IŁAI2C̓]͏IĂ܂ + +@ 荞ݒȂǂŁADMA1̏xꍇA + IIC10̊荞݂̏łɁA荞݂𔭐ȂȂ + ꂪ܂B܂A@ɂ܂B + + @̂߁ADMAdl̍ق́AŌ̃oCg͑M + tÕ|[OŊmF܂B + ***********************************************/ +__interrupt void int_dma1( ) +{ + static bit in_retry; + + EI(); + + // Ō̃oCg̑M҂ + while( ( SSR02L & TSF0 ) != 0 ) + { + u16 i = 0; + if( ++i == 0 ) // ^CAEgH + { + break; + } + } + + // XgbvRfBVs +// iic_mcu_send_sp(); // ISRŊO̊֐ĂԂ͓̂siėpWX^ҔĵœWJ + { + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // SCL + nop8(); //. |ȂBO̊֐Ă +/* + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); +*/ + SO0 = 0x0400 | TAUS_MASK; // SCL + nop8(); +/* + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); +*/ + SO0 = 0x0404 | TAUS_MASK; + } + + IICMK10 = 1; + + // f[^̓r NAK AxgCB + /// 蔲 + if( SIR02 != 0 ) + { + SIR02 = SSR02; + + if( !in_retry ) + { + in_retry = true; + + IICIF10 = 0; + iic_mcu_call_slave( last_slave ); // NAK͍mPA + + while( DST1 ){;} + DRA1 = (u16)( &iic_send_work[0] ); // CNgĂ܂Ă̂ōăZbg + DBC1 = last_size; // fNgĂ܂Ă̂ōăZbg + // ق̐ݒ͑Ô܂ + + DMAIF1 = 0; + DMAMK1 = 0; + DST1 = 1; + + SIO10 = last_reg_adrs; // ςȂI 荞݂DMAX^[g + return; + // ܂ + } + else + { + // G[xځBmȂ + dbg_nop(); + // ̂܂܏I + } + } + + // I + in_retry = false; + DMAMK1 = 1; + DEN1 = 0; + iic_mcu_busy = false; +} + + + +/********************************************//** + IIC MCŨoCgo荞 + + DMAgp͎gp܂B + + @̊荞ݏDMÅ荞݂ɂ΂ȂꍇA + @IIC荞݂̃ZbgԂɍ킸邱Ƃ܂B + ***********************************************/ +__interrupt void int_iic10( ) +{ + EI(); + if( iic_send_wo_dma_len != 0 ) // ܂MĂȂH + { + SIO10 = *p_iic_send_wo_dma_dat; + p_iic_send_wo_dma_dat ++; + iic_send_wo_dma_len --; + return; + // ܂ // + } + + // Ō̃oCgMAXgbvRfBVs + IICMK10 = 1; +// iic_mcu_send_sp(); // ISRŊO̊֐ĂԂ͓̂siėpWX^ҔĵœWJ + { + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // clear SCL + NOP(); NOP(); NOP(); NOP(); // NOP8Ăł͂ + NOP(); NOP(); NOP(); NOP(); + SO0 = 0x0400 | TAUS_MASK; // set SCL + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); + SO0 = 0x0404 | TAUS_MASK; // set CSL adn SDA + } + + iic_mcu_wo_dma = false; + iic_mcu_busy = false; +} + + + +/********************************************//** + X[ǔĂяo + +@X[uAhXĂŁAACK̊mFB + + ACK@@@@@@@@@@@@@@@@@@ԁFI2C_ERR_OK + +@NACK @XgbvRfBVoB@ԁFI2C_ERR_NOSLAVE + ***********************************************/ +i2c_err iic_mcu_call_slave( u8 slave ) +{ + iic_mcu_send_st( ); + +/* +// dbg + if( SSR02 != 0 ) + { + P1.5 = P1.0 = P1.3 = 1; + } +*/ + + SIR02 = SSR02; // NAKG[̃tONA + if( iic_mcu_send_a_byte( slave ) != I2C_ERR_OK ) + { + iic_mcu_send_sp( ); + return ( I2C_ERR_NOSLAVE ); // w̃X[uȂ + } + + return ( I2C_ERR_OK ); +} + + + +/********************************************//** + قƂɂPoCĝ + + I܂ŋA܂ + ***********************************************/ +i2c_err iic_mcu_send_a_byte( u8 dat ) +{ + IICMK10 = 1; + IICIF10 = 0; + SIO10 = dat; + while( IICIF10 == 0 ) + { +// NOP( ); + } // ʐM + + if( SSR02 != 0 ) // 炩G[? + { + SIR02 = SSR02; // G[NA + return( I2C_ERR_NAK ); + } + return( I2C_ERR_OK ); +} + + + +/********************************************//** + X^[gRfBV𔭍s + + \tgEFA + ***********************************************/ +static void iic_mcu_send_st( ) +{ + SO0 &= ~0x0004; // SDA + nop8(); + + SO0 &= ~0x0400; // SCL + SOE0 = 0x0004; // n[h + + SCR02 = TXE0 | 1 << SLC02 | 7 << DLS02; // MAf[^͂WrbgP + SS0 = 0x0004; // ʐMҋ@ +} + + + +/********************************************//** + X^[gs + ***********************************************/ +void iic_mcu_send_re_st( ) +{ + ST0 |= 0x0004; + SO0 |= 0x0400 | TAUS_MASK; // ( SDA = H ), SCL -> H + nop8(); + + SOE0 &= ~0x0004; // ( SCL = H ), SDA -> L + nop8(); + + iic_mcu_send_st( ); +} + + + +/********************************************//** + XgbvRfBVs + + ̑OɁAuŌ̃oCg̑Mv̎ɑOKvłB + ***********************************************/ +void iic_mcu_send_sp( ) +{ + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // SCL + nop8(); + + SO0 = 0x0400 | TAUS_MASK; // SCL + nop8(); + + SO0 = 0x0404 | TAUS_MASK; +} + + + + +/********************************************//** + ytFW[̏ + ***********************************************/ +void iic_mcu_start( ) +{ + if( iic_mcu_initialized ) + { + return; + } + + iic_mcu_busy = true; +// DST1 = 0; + + I2C_PU_on(); +// DEN1 = 0; // DST1 = 0 2clḱADSTn==0|[OĂ + + wait_ms( 1 ); // オ̂50usʂ + + SAU0EN = 1; + nop8(); + + SPS0 = 0x0000; // VAjbg̃NbNOB(8M/2)/1 + SMR02 = bSMR0n_FIXEDBIT | bMD0n2; // ȈI2Cɐݒ + SDR02 = 10 << 9; // {[[gݒ 8M/1/(x+1)/2 + + SO0 = 0x0404 | TAUS_MASK; // ŏHH + iic_mcu_wo_dma = false; + + + // oX̃Zbg + { + IICIF10 = 0; + IICMK10 = 1; + + iic_mcu_send_st(); + + SIO10 = 0xFF; + while( IICIF10 == 0 ){;} // ʐM + iic_mcu_send_sp(); + + SIR02 = SSR02; + } + + iic_mcu_busy = false; + iic_mcu_initialized = true; +} + + + +/********************************************//** + W[̒~ + + ēxgƂ͏Kv + ***********************************************/ +void iic_mcu_stop( ) +{ + while( iic_mcu_busy ) + {;} // DMA쒆͂҂ + iic_mcu_send_re_st( ); // SCL,SDALLɂ + I2C_PU_off(); + SAU0EN = 0; + iic_mcu_initialized = false; +} + diff --git a/snake_branches/3.82_trial_seisan/i2c_mcu.h b/snake_branches/3.82_trial_seisan/i2c_mcu.h new file mode 100644 index 0000000..16eeba8 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/i2c_mcu.h @@ -0,0 +1,40 @@ +#ifndef __ic2_mcu__ +#define __ic2_mcu__ + + +// ======================================================== +typedef enum{ + I2C_ERR_OK = 0, + I2C_ERR_NAK, + I2C_ERR_NOSLAVE, + I2C_ERR_TIMEOUT, + I2C_ERR_UNDEF = 0xFF +}i2c_err; + + + +// ======================================================== +extern volatile bit iic_mcu_busy; +extern bit iic_mcu_wo_dma; + +extern i2c_err iic_mcu_result; + + +// ======================================================== +i2c_err iic_mcu_read( u8 SLA, u8 adrs, u8 len, u8 * dest ); +u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ); + +i2c_err iic_mcu_write( u8 SLA, u8 adrs, u8 len, void * src ); +i2c_err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ); + +i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ); // codecoO@\t + + +// ̒ʐM܂B +#define iic_mcu_set_wo_dma() { while( iic_mcu_busy ){;} iic_mcu_wo_dma = true; } + +void iic_mcu_start( ); +void iic_mcu_stop( ); + + +#endif diff --git a/snake_branches/3.82_trial_seisan/i2c_mcu_sub.h b/snake_branches/3.82_trial_seisan/i2c_mcu_sub.h new file mode 100644 index 0000000..a2c192e --- /dev/null +++ b/snake_branches/3.82_trial_seisan/i2c_mcu_sub.h @@ -0,0 +1,9 @@ +#ifndef __ic2_mcu_sub__ +#define __ic2_mcu_sub__ + +// $Id: asdf$ + +i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ); +void codec_dummy_write( void ); + +#endif diff --git a/snake_branches/3.82_trial_seisan/i2c_twl.c b/snake_branches/3.82_trial_seisan/i2c_twl.c new file mode 100644 index 0000000..3c91ce8 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/i2c_twl.c @@ -0,0 +1,246 @@ +/* ======================================================== + TWL ݊I2C + + $Id: i2c_twl.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr /* @\WX^gp */ + +#endif + + +/*============================================================================*/ +#ifndef _WIN32 +# pragma interrupt INTIICA0 int_iic_twl RB2 +#endif + +#include "incs_loader.h" +#include "i2c_twl_defs.h" +#include "i2c_twl.h" +#include "vreg_twl.h" +#include "WDT.h" + + +#ifdef _MCU_BSR_ +//#ifdef _MODEL_TS0_ || _MODEL_WM0_ + +// [LOfI2Ct +#define ACKD ACKD0 +#define ACKE ACKE0 +#define COI COI0 +#define IICAEN IICA0EN +#define IICRSV IICRSV0 +#define IICA IICA0 +#define IICAIF IICAIF0 +#define IICAMK IICAMK0 +#define IICAPR0 IICAPR00 +#define IICAPR1 IICAPR10 +#define IICCTL0 IICCTL00 +#define IICE IICE0 +#define IICF IICF0 +#define IICS IICS0 +#define IICWH IICWH0 +#define IICWL IICWL0 +#define LREL LREL0 +#define SPD SPD0 +#define SPIE SPIE0 +#define STCEN STCEN0 +#define STD STD0 +#define SVA SVA0 +#define WREL WREL0 +#define WTIM WTIM0 +#define SMC SMC0 +#define TRC TRC0 +#define DFC DFC0 +#define PortMode PM6 +#define Port P6 + +#endif // _MCU_BSR_ + +#ifndef _MCU_BSR_ + +// ke3̎̓_~[֐ +void IIC_twl_Stop( void ) +{ +} +void IIC_twl_Init( void ) +{ +} +#else // _MCU_BSR_ + + + +enum IIC_TWL_STATE{ + WAIT_ADRS = 0, + WAIT_DATA, + DATA_READED +}; + + + + +/*============================================================================*/ + +// I@̓}NȂ̂ŁAreturn̓C[vɖ߂܂B +#define wait_next { \ + tot = 0; \ + while( IICAIF != 1 ){ \ + tot ++; \ + if( tot == 0 ){ \ + LREL = 1; \ + return; \ + } \ + } \ +} + + +/********************************************//** + isr + + TWL̓EFCg𗝉ĂꂸA܂Ao[XgR/W + ȂłĂ̂ŁAXgbvRfBV܂ňCɂĂ܂B + ***********************************************/ +__interrupt void int_iic_twl( ) +{ + u8 vreg_adrs; + u8 state; + + // @ + WREL = 1; // EFCgĎ̃oCg҂ + WDT_Restart(); + state = WAIT_ADRS; + + while( 1 ) + { + u8 my_iics; + + { + u16 tot; + wait_next; // PoCgM҂ + } + + my_iics = IICS; + IICAIF = 0; + + if( my_iics & 0x02 ) // ( STD && !SPD ) + { + // X^[gRfBV + if( ( my_iics & 0x08 ) == 0 ) // ( TRC ) MtO 0:}CRM + { + // @f}CRłATWLgCƂƂ + // ɗ̂̓X[uĂяo̎ // + WREL = 1; + state = WAIT_ADRS; + /// WX^AhX̂҂ + } + else + { + // BR Rł̃X[uĂяo(X^[gRfBV) // + IICA = vreg_twl_read( vreg_adrs ); // f[^M + // Xgbv҂ALREL = 1 ɂȂƁAMobt@j󂳂邱Ƃ + state = DATA_READED; + } + } + else if( ( my_iics & 0x03 ) == 0 ) // ( !STD && !SPD ) + { + u8 rcvd; + + // 炩M + rcvd = IICA; + WREL = 1; + + if( state == WAIT_ADRS ) + { + // A + vreg_adrs = adrs_table_twl_ext2int( rcvd ); + /// f[^邩AX^[gœǂݏô҂ + state = WAIT_DATA; + } + else if( state == DATA_READED ) + { + // f[^1oCgM㔭 + LREL = 1; + return; + } + else + { + // BW + // f[^܂ + SVA = 0x5A; // _~[ + LREL = 1; // X^[gRfBV҂(AݖΉ̂) + vreg_twl_write( vreg_adrs, rcvd ); + SVA = IIC_T_SLAVEADDRESS; + return; // M܂ // + } + } + else if( my_iics & 0x01 ) // SPD + { + // I + LREL = 1; + return; + } + else + { + // NOP(); + } + } +} + + + +/********************************************//** + W[ + ***********************************************/ +void IIC_twl_Init( void ) +{ + + IICAEN = 1; + + IICE = 0; /* IICA disable */ + + IICAMK = 1; /* INTIICA disable */ + IICAIF = 0; /* clear INTIICA interrupt flag */ + + IICAPR0 = 0; /* set INTIICA high priority */ + IICAPR1 = 0; /* set INTIICA high priority */ + Port &= ~0x03; + + SVA = IIC_T_SLAVEADDRESS; + IICF = 0x01; + + STCEN = 1; // X^[g̋ + IICRSV = 1; // ʐM\Ȃ:X[uɓO + + SPIE = 0; // XgbvRfBVł̊荞݂֎~ + WTIM = 1; // ACKԂclkLɌŒ肷 + ACKE = 1; // _CPU͖Ď̒ʐM͂߂邩ȂőclkJȂƂȂ + + IICWH = 9; + IICWL = 11; // LԂ̒iHj + + SMC = 1; + DFC = 1; // fW^tB^on (@fast mode) + + IICAMK = 0; // 荞݂ + + IICE = 1; + + PortMode &= ~0x03; + + LREL = 1; +} + + + +/********************************************//** + W[~ + ***********************************************/ +void IIC_twl_Stop( void ) +{ + IICE = 0; /* IICA disable */ + IICAEN = 0; +} + + +#endif diff --git a/snake_branches/3.82_trial_seisan/i2c_twl.h b/snake_branches/3.82_trial_seisan/i2c_twl.h new file mode 100644 index 0000000..0f608b0 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/i2c_twl.h @@ -0,0 +1,7 @@ +#ifndef _iic_twl_ +#define _iic_twl_ + +void IIC_twl_Init( void ); +void IIC_twl_Stop( void ); + +#endif diff --git a/snake_branches/3.82_trial_seisan/i2c_twl_defs.h b/snake_branches/3.82_trial_seisan/i2c_twl_defs.h new file mode 100644 index 0000000..be5d566 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/i2c_twl_defs.h @@ -0,0 +1,196 @@ +#ifndef _MDSERIAL_ +#define _MDSERIAL_ + + +/* IIC operation enable (IICE0) */ +#define IIC0_OPERATION 0x80 +#define IIC0_OPERATION_DISABLE 0x00 /* stop operation */ +#define IIC0_OPERATION_ENABLE 0x80 /* enable operation */ + +/* Exit from communications (LREL0) */ +#define IIC0_COMMUNICATION 0x40 +#define IIC0_COMMUNICATION_NORMAL 0x00 /* normal operation */ +#define IIC0_COMMUNICATION_EXIT 0x40 /* exit from current communication */ + +/* Wait cancellation (WREL0) */ +#define IIC0_WAITCANCEL 0x20 +#define IIC0_WAIT_NOTCANCEL 0x00 /* do not cancel wait */ +#define IIC0_WAIT_CANCEL 0x20 /* cancel wait */ + +/* Generation of interrupt when stop condition (SPIE0) */ +#define IIC0_STOPINT 0x10 +#define IIC0_STOPINT_DISABLE 0x00 /* disable */ +#define IIC0_STOPINT_ENABLE 0x10 /* enable */ + +/* Wait and interrupt generation (WTIM0) */ +#define IIC0_WAITINT 0x08 +#define IIC0_WAITINT_CLK8FALLING 0x00 /* generate at the eighth clocks falling edge */ +#define IIC0_WAITINT_CLK9FALLING 0x08 /* generated at the ninth clocks falling edge */ + +/* Acknowledgement control (ACKE0) */ +#define IIC0_ACK 0x04 +#define IIC0_ACK_DISABLE 0x00 /* enable acknowledgement */ +#define IIC0_ACK_ENABLE 0x04 /* disable acknowledgement */ + +/* Start condition trigger (STT0) */ +#define IIC0_STARTCONDITION 0x02 +#define IIC0_START_NOTGENERATE 0x00 /* do not generate start condition */ +#define IIC0_START_GENERATE 0x02 /* generate start condition */ + +/* Stop condition trigger (SPT0) */ +#define IIC0_STOPCONDITION 0x01 +#define IIC0_STOP_NOTGENERATE 0x00 /* do not generate stop condition */ +#define IIC0_STOP_GENERATE 0x01 /* generate stop condition */ + +/* + IIC Status Register 0 (IICS0) +*/ +/* Master device status (MSTS0) */ +#define IIC0_MASTERSTATUS 0x80 +#define IIC0_STATUS_NOTMASTER 0x00 /* slave device status or communication standby status */ +#define IIC0_STATUS_MASTER 0x80 /* master device communication status */ + +/* Detection of arbitration loss (ALD0) */ +#define IIC0_ARBITRATION 0x40 +#define IIC0_ARBITRATION_NO 0x00 /* arbitration win or no arbitration */ +#define IIC0_ARBITRATION_LOSS 0x40 /* arbitration loss */ + +/* Detection of extension code reception (EXC0) */ +#define IIC0_EXTENSIONCODE 0x20 +#define IIC0_EXTCODE_NOT 0x00 /* extension code not received */ +#define IIC0_EXTCODE_RECEIVED 0x20 /* extension code received */ + +/* Detection of matching addresses (COI0) */ +#define IIC0_ADDRESSMATCH 0x10 +#define IIC0_ADDRESS_NOTMATCH 0x00 /* addresses do not match */ +#define IIC0_ADDRESS_MATCH 0x10 /* addresses match */ + +/* Detection of transmit/receive status (TRC0) */ +#define IIC0_STATUS 0x08 +#define IIC0_STATUS_RECEIVE 0x00 /* receive status */ +#define IIC0_STATUS_TRANSMIT 0x08 /* transmit status */ + +/* Detection of acknowledge signal (ACKD0) */ +#define IIC0_ACKDETECTION 0x04 +#define IIC0_ACK_NOTDETECTED 0x00 /* ACK signal was not detected */ +#define IIC0_ACK_DETECTED 0x04 /* ACK signal was detected */ + +/* Detection of start condition (STD0) */ +#define IIC0_STARTDETECTION 0x02 +#define IIC0_START_NOTDETECTED 0x00 /* start condition not detected */ +#define IIC0_START_DETECTED 0x02 /* start condition detected */ + +/* Detection of stop condition (SPD0) */ +#define IIC0_STOPDETECTION 0x01 +#define IIC0_STOP_NOTDETECTED 0x00 /* stop condition not detected */ +#define IIC0_STOP_DETECTED 0x01 /* stop condition detected */ + +/* + IIC Flag Register 0 (IICF0) +*/ +/* STT0 clear flag (STCF) */ +#define IIC0_STARTFLAG 0x80 +#define IIC0_STARTFLAG_GENERATE 0x00 /* generate start condition */ +#define IIC0_STARTFLAG_UNSUCCESSFUL 0x80 /* start condition generation unsuccessful */ + +/* IIC bus status flag (IICBSY) */ +#define IIC0_BUSSTATUS 0x40 +#define IIC0_BUS_RELEASE 0x00 /* bus release status */ +#define IIC0_BUS_COMMUNICATION 0x40 /* bus communication status */ + +/* Initial start enable trigger (STCEN) */ +#define IIC0_STARTWITHSTOP 0x02 +#define IIC0_START_WITHSTOP 0x00 /* generation of a start condition without detecting a stop condition */ +#define IIC0_START_WITHOUTSTOP 0x02 /* generation of a start condition upon detection of a stop condition */ + +/* Communication reservation function disable bit (IICRSV) */ +#define IIC0_RESERVATION 0x01 +#define IIC0_RESERVATION_ENABLE 0x00 /* enable communication reservation */ +#define IIC0_RESERVATION_DISABLE 0x01 /* disable communication reservation */ + +/* + IIC clock selection register 0 (IICCL0) +*/ +#define IICCL0_INITIALVALUE 0x00 +/* Detection of SCL0 pin level (CLD0) */ +#define IIC0_SCLLEVEL 0x20 +#define IIC0_SCL_LOW 0x00 /* clock line at low level */ +#define IIC0_SCL_HIGH 0x20 /* clock line at high level */ + +/* Detection of SDA0 pin level (DAD0) */ +#define IIC0_SDALEVEL 0x10 +#define IIC0_SDA_LOW 0x00 /* data line at low level */ +#define IIC0_SDA_HIGH 0x10 /* data line at high level */ + +/* Operation mode switching (SMC0) */ +#define IIC0_OPERATIONMODE 0x08 +#define IIC0_MODE_STANDARD 0x00 /* operates in standard mode */ +#define IIC0_MODE_HIGHSPEED 0x08 /* operates in high-speed mode */ + +/* Digital filter operation control (DFC0) */ +#define IIC0_DIGITALFILTER 0x04 +#define IIC0_FILTER_OFF 0x00 /* digital filter off */ +#define IIC0_FILTER_ON 0x04 /* digital filter on */ + +/* Operation mode switching (CL01, CL00) */ +#define IIC0_CLOCKSELECTION 0x03 + +/* Combine of (SMC0, CL01, CL00)*/ +#define IIC0_CLOCK0 0x00 +#define IIC0_CLOCK1 0x01 +#define IIC0_CLOCK2 0x02 +#define IIC0_CLOCK3 0x03 +#define IIC0_CLOCK4 0x08 +#define IIC0_CLOCK5 0x09 +#define IIC0_CLOCK6 0x0a +#define IIC0_CLOCK7 0x0b + +/* + IIC function expansion register 0 (IICX0) +*/ +/* IIC clock expension (CLX0) */ +#define IIC0_CLOCKEXPENSION 0x01 +#define IIC0_EXPENSION0 0x00 +#define IIC0_EXPENSION1 0x01 + +/* Operation clock (CLX0, SMC0, CL01, CL00) + | IIC0_EXPENSION0 | IIC0_EXPENSION1 | +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK0 | fprs/2 | prohibited | selection clock(fw) + | fprs/88 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK1 | fprs/2 | prohibited | selection clock(fw) + | fprs/172 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK2 | fprs/2 | prohibited | selection clock(fw) + | fprs/344 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK3 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/66 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK4 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK5 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK6 | fprs/4 | fprs/4 | selection clock(fw) + | fprs/96 | fprs/48 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK7 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/18 | | transfer clock + | high speed | | mode +------------|-------------------|-------------------|---------------------- +*/ + +#define ADDRESS_COMPLETE 0x80 +#define IIC_MASTER_FLAG_CLEAR 0x00 + +#endif diff --git a/snake_branches/3.82_trial_seisan/incs.h b/snake_branches/3.82_trial_seisan/incs.h new file mode 100644 index 0000000..f9c1c4a --- /dev/null +++ b/snake_branches/3.82_trial_seisan/incs.h @@ -0,0 +1,44 @@ +#ifndef _WIN32 +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#endif + +#ifndef _WIN32 +#pragma section @@CODE ROM_CODE +//#pragma section @@CNST ROM_CNST +#endif + +#ifdef _WIN32 +// VC̐Ԑǂɂ +#include "sim/simOnWin.h" +# endif + + + +//========================================================= +#ifndef _incs_h_ +#define _incs_h_ + +// v_pc_ƂŐ؂ւĂ܂ +#define _mcu_ + +#include "jhl_defs.h" +#include "config.h" +#include "user_define.h" + +#include "hal.h" + +#include "bsr_system.h" +#include "renge\renge.h" + +#include "vreg_ctr.h" + +#include "util_funcs.h" + +//========================================================= + +#endif diff --git a/snake_branches/3.82_trial_seisan/incs_loader.h b/snake_branches/3.82_trial_seisan/incs_loader.h new file mode 100644 index 0000000..0569b9f --- /dev/null +++ b/snake_branches/3.82_trial_seisan/incs_loader.h @@ -0,0 +1,49 @@ +/* ======================================================== + @sԂvolatileȂ̂Ń^C~OˑŊ҂ȂɂȂ̂@ + + Hardware abstruct layer + + $Id: asdf$ + ======================================================== */ +#ifndef _WIN32 +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt + + +#pragma section @@CODE LDR_CODE +#pragma section @@CODEL LDR_CODL + +//#pragma section @@R_INIT FSL_RINT // ƃX^[gAbv[`l +//#pragma section @@CNST FSL_CNST // ZbgĂȂ +#pragma section @@CNSTL LDR_CNSL + +#endif + +# ifdef _WIN32 +// VC̐Ԑǂɂ +#include "sim/simOnWin.h" +# endif + + +//========================================================= +#include "jhl_defs.h" +#include "config.h" + +#include "user_define.h" + +#include "hal.h" + +#include "bsr_system.h" +#include "renge\renge.h" + +#include "vreg_ctr.h" +#include "vreg_twl.h" + + +//========================================================= +void firm_update( ); +void firm_restore( ); diff --git a/snake_branches/3.82_trial_seisan/ini_VECT.c b/snake_branches/3.82_trial_seisan/ini_VECT.c new file mode 100644 index 0000000..84da25c --- /dev/null +++ b/snake_branches/3.82_trial_seisan/ini_VECT.c @@ -0,0 +1,347 @@ +/* ======================================================== + 荞݃xN^e[u + $Id$ + ======================================================== */ + +#ifndef _WIN32 + +#pragma nop + +#endif + +#include "config.h" + +#ifndef _WIN32 + +#ifdef _WDT_CHECK_ +#pragma interrupt INTWDTI fn_intwdti // wdt debug +#endif + +//#pragma interrupt INTLVI fn_intlvi // gp + +//#pragma interrupt INTP0 intp0_slp // SLP (CPUAv) |[O +//#pragma interrupt INTP1 fn_intp1 // (I2C) +//#pragma interrupt INTP2 fn_intp2 // (I2C) +//#pragma interrupt INTP3 fn_intp3 // +#pragma interrupt INTP4 intp4_extdc // EXTDC, doffN̂݁Bʏ̓|[O +#pragma interrupt INTP5 intp5_shell // SHELL_CLOSE, doffN̂݁Bʏ̓|[O +#pragma interrupt INTP6 intp6_PM_irq // CODECoRŋPMICւ̃R}h + +//#ifdef _MCU_BSR_ // 荞݂͎̂̂g܂ +//#pragma interrupt INTP21 intp21_RFTx // dgMpX +//#else +//#pragma interrupt INTP7 intp21_RFTx +//#endif + + +/* + + accero +#ifdef _MCU_BSR_ +#pragma interrupt INTP23 intp23_ACC_ready RB3 // xZTAf[^ +#endif +*/ + +//#pragma interrupt INTCMP0 fn_intcmp0 +//#pragma interrupt INTCMP1 fn_intcmp1 +//#pragma interrupt INTDMA0 fn_intdma0 +#pragma interrupt INTDMA1 int_dma1 + +//#pragma interrupt INTST0 fn_intst0 +/* #pragma interrupt INTCSI00 fn_intcsi00 */ +//#pragma interrupt INTSR0 fn_intsr0 +/* #pragma interrupt INTCSI01 fn_intcsi01 */ +//#pragma interrupt INTSRE0 fn_intsre0 + +//#pragma interrupt INTST1 fn_intst1 +/* #pragma interrupt INTCSI10 fn_intcsi10 */ +#pragma interrupt INTIIC10 int_iic10 +//#pragma interrupt INTSR1 fn_intsr1 +//#pragma interrupt INTSRE1 fn_intsre1 + + +/* +// TS̓}U{ŃeRAWM͉H}eRŌLjvc +#pragma interrupt INTIICA1 int_iic_ctr RB1 + +#pragma interrupt INTIICA0 int_iic_twl RB2 +*/ + +//#pragma interrupt INTTM00 fn_inttm00 +//#pragma interrupt INTTM01 fn_inttm01 +//#pragma interrupt INTTM02 fn_inttm02 +//#pragma interrupt INTTM03 fn_inttm03 + +#pragma interrupt INTAD int_adc +#pragma interrupt INTRTC int_rtc +#pragma interrupt INTRTCI int_rtc_int +#pragma interrupt INTKR int_kr +//#pragma interrupt INTMD fn_intmd + +//#pragma interrupt INTTM04 fn_inttm04 +//#pragma interrupt INTTM05 fn_inttm05 +//#pragma interrupt INTTM06 fn_inttm06 +//#pragma interrupt INTTM07 fn_inttm07 + + +//#define _irq_debug_ +/****************************************************/ +/* gp̃_~[֐` */ +/****************************************************/ +#ifdef _WDT_CHECK_ +__interrupt void fn_intwdti( ) +{ + while( 1 ) + { + NOP(); + } +} +#endif + +#ifdef _irq_debug_ +__interrupt void fn_intlvi( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intp0(){ +while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intp1( ) +{ + while( 1 ) + { + NOP(); + } +} // +__interrupt void fn_intp2( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intp3( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void intp21_RFTx( ) +{ + while( 1 ) + { + NOP(); + } +} + + +//__interrupt void fn_intp4(){ while(1){} } // pm.c +//__interrupt void fn_intp5(){ while(1){} } // pm.c +//__interrupt void fn_intp6(){ while(1){} } // pm.c +//__interrupt void fn_intp7(){ while(1){} } // led.c +//__interrupt void fn_intp21(){ while(1){} } // led.c + +__interrupt void fn_intcmp0( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intcmp1( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intdma0( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void fn_intdma1(){} // i2c_mcu.cɂ + +__interrupt void fn_intst0( ) +{ + while( 1 ) + { + NOP(); + } +} + +/* __interrupt void fn_intcsi00(){} */ +__interrupt void fn_intsr0( ) +{ + while( 1 ) + { + NOP(); + } +} + +/* __interrupt void fn_intcsi01(){} */ +__interrupt void fn_intsre0( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intst1( ) +{ + while( 1 ) + { + NOP(); + } +} + +/* __interrupt void fn_intcsi10(){} */ +//__interrupt void fn_intiic10(){ while(1){} } +__interrupt void fn_intsr1( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intsre1( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void fn_intiica(){} // i2c.cɂ +/* __interrupt void fn_inttm00(){} *//* sub.cɂĒ` */ +__interrupt void fn_inttm01( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm02( ) +{ + while( 1 ) + { + NOP(); + } +} +__interrupt void fn_inttm03( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void fn_intad(){ while(1){} } // adc.c +__interrupt void fn_intrtc( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void int_rtcint(){} // rtc.cɂ +//__interrupt void fn_intkr(){} // main.c +__interrupt void fn_intmd( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm04( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm05( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm06( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm07( ) +{ + while( 1 ) + { + NOP(); + } +} + +#endif + + + +/* ======================================================== + L[^[荞 + ======================================================== */ +__interrupt void int_kr( ) +{ + // N邾 +} + + + +/* ======================================================== + ext dc + ======================================================== */ +__interrupt void intp4( ) +{ + // N邾 +} + + + +/* ======================================================== + shell close + ======================================================== */ +__interrupt void intp5( ) +{ + // N邾 +} + + +#else + +#include "sim/sim_interrupt_decrare.c" + +#endif + diff --git a/snake_branches/3.82_trial_seisan/jhl_defs.h b/snake_branches/3.82_trial_seisan/jhl_defs.h new file mode 100644 index 0000000..2750983 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/jhl_defs.h @@ -0,0 +1,25 @@ +#ifndef __jhl_defs_h__ +#define __jhl_defs_h__ + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef signed short s16; + +typedef unsigned short ux16; +typedef signed short sx16; + +#define true 1 +#define false 0 + + +#define set_bit_if( cond, reg, pos ) \ +{ \ + if( cond ){ \ + reg |= pos; \ + }else{ \ + reg &= ~pos; \ + } \ +} + +#endif diff --git a/snake_branches/3.82_trial_seisan/kanaria.asm b/snake_branches/3.82_trial_seisan/kanaria.asm new file mode 100644 index 0000000..9deaddb --- /dev/null +++ b/snake_branches/3.82_trial_seisan/kanaria.asm @@ -0,0 +1,12 @@ +PUBLIC _END_1,_END_2,_END_3,_END_4 + +@@DATA DSEG BASEP +_END_1: +@@INIT DSEG BASEP +_END_2: +@@INITL DSEG UNIT64KP +_END_3: +@@DATAL DSEG UNIT64KP +_END_4: +; +END diff --git a/snake_branches/3.82_trial_seisan/kanaria_c.c b/snake_branches/3.82_trial_seisan/kanaria_c.c new file mode 100644 index 0000000..bbb5ec7 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/kanaria_c.c @@ -0,0 +1,18 @@ +/********************************************//** + X^bN̍Ō̒lǂ + + X^bNj󌟍̂ + + $Id$ + ***********************************************/ +#include "incs.h" + +extern unsigned char END_4; + +void f() +{ + unsigned char *tp; + + tp = &END_4; +} + diff --git a/snake_branches/3.82_trial_seisan/led.c b/snake_branches/3.82_trial_seisan/led.c new file mode 100644 index 0000000..bf62e07 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/led.c @@ -0,0 +1,399 @@ +/* ======================================================== + LED.c + + $Id: LED.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr + +#endif + +#include "incs.h" +#include "led.h" + + +// ======================================================== +static void LED_oshirase_init(); + + + +// ======================================================== +// TPS0 +#define BIT_PRS012 ( 1 << 2 ) +#define BIT_PRS002 ( 1 << 6 ) + +// TMR0 +#define BIT_CKS0 15 +#define BIT_CCS0 12 +#define BIT_MASTER0 11 +#define BIT_STS0 8 +#define BIT_CIS0 6 +#define BIT_MD123 1 +#define BIT_MD0 0 + + + +// ======================================================== +bit ledInitialized; + + +// m点LED +uni_info_LED info_LED; // p^[f[^ +bit info_led_off; // doffȂǁAtO +bit info_led_override; // drcʋ͏_ŏ㏑rbg + +// wifi led Xe[g +static u8 state_wifi_tx; +static u8 flag_wifi_TX; + + +// ======================================================== +#define led_fade_to( now, goal ) now = fade_to( now, goal ) + + +/********************************************//** + now goal ɂȂ܂ inc / dec BxĂԂƃOf[V + + Ƃ肠AXebvŒ + ***********************************************/ +u8 fade_to( u8 now, u8 goal ) +{ + if( now != goal ) + { + if( now > goal ) + { + now --; + } + else + { + now ++; + } + } + return( now ); +} + + + + +/********************************************//** + XlăOf[V + ***********************************************/ +#define led_fade_to2( led, status ) \ + led = fade_to2( status ) + + +u8 fade_to2( st_LED_dim_status* status ) +{ + if( status->now != status->to ) + { + if( abs(( status->to - status->now )) > abs(status->delta) ) + { + status->now += status->delta; + } + else + { + // delta Ƃ to ̒lɂԂ‚Ă܂ + status->now = status->to; + } + } + return( status->now / 128 ); +} + + + + +/********************************************//** + LED̏ + + HW^C}[ĝł̏s + ***********************************************/ +void LED_init( ) +{ +/** + PWM̃ZbgAƂ肠S + + }X^`lFO@(P01:/reset2)@}X^[͋`lłȂ + X[u@@@@P@rksnB(Rc kdcH) + @@@@@@@@Q@J + @@@@@@@@R@WiFi + @@@@@@@@S@(s͂qsb32kHz out Ɏgp) + @@@@@@@@T@[d + @@@@@@@@U@d k + @@@@@@@@V@d g + */ +// LED_oshirase_init(); // m点p^[ + + /// ytF /// + TAU0EN = 1; + TPS0 = BIT_PRS012 | BIT_PRS002; // }X^[NbNCK01,8M/2 /2^4 = 250kHz + + TMR00 = + 1 << BIT_CKS0 | 0 << BIT_CCS0 | 1 << BIT_MASTER0 | 0 << BIT_STS0 | 0 + << BIT_CIS0 | 0 << BIT_MD123 | 1 << BIT_MD0; + TMR01 = TMR02 = TMR03 = TMR04 = TMR05 = TMR06 = TMR07 = + 1 << BIT_CKS0 | 0 << BIT_CCS0 | 0 << BIT_MASTER0 | 4 << BIT_STS0 | 0 + << BIT_CIS0 | 4 << BIT_MD123 | 1 << BIT_MD0; + ISC = 0; + TOM0 = 0x00FE; // o̓[hB4PWMo͂Ȃ1ɂȂTO5ȍ~ɃNbN͂Ȃ + + TOL0 = 0x0000; // o͂𔽓]邩tO + + TO0 = 0x0000; // ^C}[쒆ŁA^C}[o͂ɂĂȂƂ̃s̃b`B^C}[o͂gȂȂO + TOE0 = 0x00EE; // TOx^C}[W[H + + TS0 = 0x00EF; // Jn + + TDR00 = LED_BRIGHT_MAX - 1; // 10bit + + // Abvf[gȂǂŃ}CR̂݃u[gƂ + if( system_status.reboot ) + { + // SoC ̃R}h҂Aœd LED ‚ + vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO; + LED_duty_pow_blu = LED_BRIGHT_MAX; + } + info_led_off = false; // + ledInitialized = true; +} + + +static void LED_oshirase_init() +{ + char* p_tgt = &info_LED; + int i; + + for( i = 0; i < sizeof(info_LED); i++ ) + { + *p_tgt = 0; + p_tgt++; + } +} + + + + + +/********************************************//** + LED̒~B + + HW^C}[̒~ + ***********************************************/ + +void LED_stop( ) +{ + TT0 = 0x00EF; // Ē~iȂƂ߁j + TOE0 = 0x0000; // TOx^C}[W[H(GPIOɂȂ) + TAU0EN = 0; + LED_pow_red = 0; + LED_CAM = 0; + + LED_duty_notify_red = 0; + LED_duty_notify_blu = 0; + LED_duty_notify_grn = 0; + LED_pow_red = 0; + LED_CAM = 0; + + WIFI_txLatch = 0; + flag_wifi_TX = 0; + state_wifi_tx = 0; + + ledInitialized = false; +} + + + + +/********************************************//** + WiFi LED ̍XV + + - WX^̐ݒ on / off + - off łĂW[̑MpX -_-_-_--------_-_-_-------̃p^[_ + ***********************************************/ +void tsk_led_wifi( ) +{ + static u8 task_interval; + + if( task_interval-- != 0 ) + { + return; + } + + // MpX̃b` + if( WIFI_txLatch ) // 荞݃tÔ̂gĂ܂ + { + WIFI_txLatch = 0; + flag_wifi_TX = 1; + } + + if( flag_wifi_TX != 0 ) + { + vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_WIFI_TX; + // Mp^[ + switch ( state_wifi_tx ) + { + case ( 1 ): + case ( 3 ): + case ( 5 ): + LED_duty_WiFi = 0; + break; + default: + LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT]; + } + state_wifi_tx ++; + if( state_wifi_tx == 32 ) // _ŌA_ĂԂ̒ + { + state_wifi_tx = 0; + flag_wifi_TX = 0; + } + task_interval = 25; + return; + } + else + { + task_interval = 30; + // MtO҂ + vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_WIFI_TX; + + if( vreg_ctr[VREG_C_LED_WIFI] == WIFI_LED_OFF ) + { + LED_duty_WiFi = 0; + return; + } + else + { + if( LED_duty_WiFi == vreg_ctr[VREG_C_LED_BRIGHT] ) + { + return; + } + else if( LED_duty_WiFi < vreg_ctr[VREG_C_LED_BRIGHT] ) + { + LED_duty_WiFi ++; + } + else + { + LED_duty_WiFi --; + } + } + task_interval = 3; + return; + } +} + + + + +bit info_led_pattern_updated; +/********************************************//** + m点LED + + tF[hAEgvZ + ***********************************************/ +static void calc_info_led_fade_out( st_LED_dim_status* tgt_led ) +{ + tgt_led -> to = 0; + tgt_led -> delta = ( 0 - tgt_led -> now ) / 64; + // tF[hAEg([ɌĂB̌z肵Ă܂B) + if(( tgt_led -> now != 0 ) && ( tgt_led -> delta == 0 )) + { + tgt_led -> delta = (sx16)-1; + } +} + + +/********************************************//** + m点LED + + Of[VvZ + ***********************************************/ +static void calc_info_led_next_frame( st_LED_dim_status* tgt_led, u8 color ) +{ + tgt_led -> to = color * 128; + // Of[Ṽf^vZ + tgt_led -> delta = (( tgt_led -> to - tgt_led -> now ) ) / info_LED.info_LED.fade_time; +} + + +/********************************************//** + m点LED + ***********************************************/ +void tsk_led_notify( ) +{ + static u8 time_to_next_frame; + static u8 frame; + static u8 loops; + static st_LED_dim_status LED_dim_status_info_R, LED_dim_status_info_G, LED_dim_status_info_B; + + if( info_led_override ) + { + // dr؂ꂪD悷 + return; + } + + if( system_status.pwr_state == ON_TRIG ) + { + LED_duty_notify_blu = 0; + LED_duty_notify_red = 0; + LED_duty_notify_grn = 0; + LED_dim_status_info_R.now = 0; + LED_dim_status_info_G.now = 0; + LED_dim_status_info_B.now = 0; + } + + if( info_led_off ) // doffȂNjoff + { + // tF[hAEg + calc_info_led_fade_out( &LED_dim_status_info_R ); + calc_info_led_fade_out( &LED_dim_status_info_G ); + calc_info_led_fade_out( &LED_dim_status_info_B ); + } + else + { + // ʏ^] + if( info_led_pattern_updated ) + { + info_led_pattern_updated = false; + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP; + frame = 0; // Ə + time_to_next_frame = 0; + } + else + { + // ̃t[ɐi߂H + if( time_to_next_frame == 0 ) + { + time_to_next_frame = info_LED.info_LED.term; + + if( frame >= NOTIFY_LED_TERM -1 ) + { + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] |= REG_BIT_IN_LOOP; + if( info_LED.info_LED.last_loop != 255 ) // 255:[v + { + loops ++; + if( loops > info_LED.info_LED.last_loop ) + { + frame = 0; + } + } + } + else + { + frame = (( frame + 1 ) & 0x1F ); // Ń}XNĂȂƍŏIt[`擪Ԃ̃OfȂ + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP; + loops = 0; + } + + // Of[VvZ + calc_info_led_next_frame( &LED_dim_status_info_R, info_LED.info_LED.red[frame] ); + calc_info_led_next_frame( &LED_dim_status_info_G, info_LED.info_LED.grn[frame] ); + calc_info_led_next_frame( &LED_dim_status_info_B, info_LED.info_LED.blu[frame] ); + + } + time_to_next_frame --; + } + } + + led_fade_to2( LED_duty_notify_red, &LED_dim_status_info_R ); + led_fade_to2( LED_duty_notify_grn, &LED_dim_status_info_G ); + led_fade_to2( LED_duty_notify_blu, &LED_dim_status_info_B ); +} diff --git a/snake_branches/3.82_trial_seisan/led.h b/snake_branches/3.82_trial_seisan/led.h new file mode 100644 index 0000000..ce8541f --- /dev/null +++ b/snake_branches/3.82_trial_seisan/led.h @@ -0,0 +1,142 @@ +#ifndef __led__ +#define __led__ + + + +// ==================================== + +//#define LED_CHARGE P2.4 // PMŒ` + +// LED_DUTY +#define LED_duty_pow_blu TDR06 +#define LED_duty_WiFi TDR03 + +#define LED_duty_3d TDR01 +#define LED_duty_notify_red TDR07 +#define LED_duty_notify_grn TDR05 +#define LED_duty_notify_blu TDR02 + +// dutyς܂ +#ifndef _WIN32 +#define LED_pow_red P4.2 +#define LED_CAM P7.5 +#else +#define LED_pow_red mcuRegP[ _P4_2 ] +#define LED_CAM mcuRegP[ _P7_5 ] +#endif + +#define NOTIFY_LED_TERM 32 + + +#define LED_BRIGHT_MAX 0x00FF + +// ==================================== +#define WIFI_txLatch PIF21 // dgMpX + + + +// ==================================== +enum LED_ILUM_MODE +{ + LED_POW_ILM_AUTO = 0, + LED_POW_ILM_ON, + LED_POW_ILM_SLEEP, + LED_POW_ILM_OFF, + LED_POW_ILM_ONLY_RED, + LED_POW_ILM_ONLY_BLUE, + LED_POW_ILM_FORCE_BT_EMPTY +}; + + +enum LED_MODE_3D +{ + LED_3D_ILM_OFF = 0, + LED_3D_ILM_ON +}; + + +// VREG_C_WIFI_LED +enum WIFI_LED_MODE +{ + WIFI_LED_OFF = 0, + WIFI_LED_ON +}; + + +// VREG_C_WIFI_NOTIFY +enum NOTIFY_LED_MODE +{ + NOTIFY_LED_OFF = 0, + NOTIFY_LED_ON, + NOTIFY_LED_PTN0, + NOTIFY_LED_PTN1, + NOTIFY_LED_PTN2 +}; + + +// VREG_C_CAM_LED +enum CAM_LED_MODE +{ + CAM_LED_OFF = 0, + CAM_LED_BLINK, + CAM_LED_ON, + CAM_LED_BY_TWL, + CAM_LED_ON_PLUSE, + CAM_LED_OFF_PLUSE +}; + + + +// m点LED֌W // +typedef struct _st_info_LED +{ + u8 term; // 1t[`bNH + u8 fade_time; // `bNŎ̃t[̐FɒB邩 + u8 last_loop; // ŏIt[JԂH + u8 resv1; + u8 red[32]; + u8 grn[32]; + u8 blu[32]; +}st_info_LED; + +typedef union _uni_info_LED +{ + st_info_LED info_LED; + u8 bindata[ sizeof( st_info_LED ) ]; +}uni_info_LED; + +extern uni_info_LED info_LED; + + +// LED _Ō // +typedef struct _st_led_red_batt_empty +{ + u8 dats[4]; +}st_led_red_batt_empty; + +extern st_led_red_batt_empty led_red_batt_empty; + + +/* + m点LED +*/ +typedef struct _st_LED_dim_status +{ + sx16 to; + sx16 delta; + sx16 now; // _ȉoĂȂĂ͂ȂȂ +}st_LED_dim_status; + + + +// ==================================== +void LED_init( ); +void LED_stop( ); + + +// ==================================== +extern bit ledInitialized; +extern bit info_led_override; + + +#endif diff --git a/snake_branches/3.82_trial_seisan/led_cam.c b/snake_branches/3.82_trial_seisan/led_cam.c new file mode 100644 index 0000000..7d4a1eb --- /dev/null +++ b/snake_branches/3.82_trial_seisan/led_cam.c @@ -0,0 +1,156 @@ +/******************************************************//** + LED_Cam TO02 + + BLINK,*_PLUSE ̎́A1͕K̏ԂɂȂ܂B + + ̊Ԃ OFFBLINK ȂǂƁAOFF܂B + + $Id$ + *********************************************************/ +#ifndef _WIN32 + +#pragma sfr + +#endif + +#include "incs.h" +#include "led.h" +#include "vreg_twl.h" + + +// ======================================================== +static u8 state_led_cam = 0; +static u16 task_interval; + +bit cam_led_update; + + + +// ======================================================== +static void cam_led_twl(); + + + + +/********************************************//** + C^[os^XNƁAtwlWX^ւ݂̏̂QJĂ΂܂B + ***********************************************/ +void tsk_led_cam( ) +{ + DI_wt_chk(); // WX^ւ݂̏ŋN邱Ƃ邽 + if( !cam_led_update ) + { + if( task_interval != 0 ) + { + task_interval --; + EI(); + return; + } + } + + cam_led_update = false; // TWL ̃uNݒiꔭ_ĵ + EI(); + + if( system_status.pwr_state == SLEEP ) // sleepA + { + LED_CAM = 0; + state_led_cam = 0; + } + else + { + // uN̂悤ɑ҂ƂȊO͖TN + // (WX^̕ύXɂɔ) + switch ( vreg_ctr[VREG_C_LED_CAM] ) + { + case ( CAM_LED_OFF ): + default: + LED_CAM = 0; + state_led_cam = 0; + break; + + case ( CAM_LED_ON ): + LED_CAM = 1; + state_led_cam = 0; + break; + + case ( CAM_LED_BLINK ): + if( state_led_cam == 0 ) + { + LED_CAM = 1; + state_led_cam = 1; + } + else + { + LED_CAM = 0; + state_led_cam = 0; + } + task_interval = 250; + break; + + case ( CAM_LED_ON_PLUSE ): + if( state_led_cam == 0 ) + { + LED_CAM = 1; + state_led_cam = 1; + task_interval = 250; + } + else + { + vreg_ctr[VREG_C_LED_CAM] = CAM_LED_OFF; + } + break; + + case ( CAM_LED_OFF_PLUSE ): + if( state_led_cam == 0 ) + { + LED_CAM = 0; + state_led_cam = 1; + task_interval = 250; + } + else + { + vreg_ctr[VREG_C_LED_CAM] = CAM_LED_ON; + } + break; + + case( CAM_LED_BY_TWL ): + cam_led_twl(); + } + } // if( system_status.pwr_state == sleep ) ... else ... +} + + +/********************************************//** + TWLJLED𑀍삳 + ***********************************************/ +static void cam_led_twl() +{ + // TWL݊ // + switch ( vreg_twl[ REG_TWL_INT_ADRS_CAM ] ){ + case( TWL_CAMLED_OFF ): + LED_CAM = 0; + state_led_cam = 0; + break; + + case( TWL_CAMLED_BLINK ): + if( state_led_cam == 0 ) + { + LED_CAM = 1; + state_led_cam = 1; + } + else + { + LED_CAM = 0; + state_led_cam = 0; + } + task_interval = (u8)( 600 / SYS_INTERVAL_TICK ) + 250; + break; + + case( TWL_CAMLED_ON ): + case( TWL_CAMLED_DEF_ON ): + default: + LED_CAM = 1; + state_led_cam = 1; + break; + } +} diff --git a/snake_branches/3.82_trial_seisan/led_pow.c b/snake_branches/3.82_trial_seisan/led_pow.c new file mode 100644 index 0000000..6773d4e --- /dev/null +++ b/snake_branches/3.82_trial_seisan/led_pow.c @@ -0,0 +1,296 @@ +/* ======================================================== + dLED + LED_POW_B,R 6,7 + + TDR00@(0x03FFBTPS0250kHzŃJEgAbvB10bitȂ250HzʂɂȂ) + TDR0x@Duty 0ŏATDR00( =0x03FFȏ)œ_łB + + $Id: asdf$ + ======================================================== */ + +/* ======================================================== + enum pwr_state_{ + OFF_TRIG = 0, + ON_CHECK, + ON_TRIG, + ON, + SLEEP +}; + +enum LED_ILUM_MODE{ + LED_POW_ILM_AUTO, + LED_POW_ILM_ON, + LED_POW_ILM_SLEEP, + LED_POW_ILM_CEOFF +}; + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr + +#endif + +#include "incs.h" +#include "led.h" +#include "pm.h" + +// ======================================================== +// X[vł̃e[uB}WB +const u8 LED_PTN_SLEEP[] = { + 25, 38, 52, 68, 83, 98, 110, 119, + 125, 128, 128, 125, 119, 110, 98, 83, + 68, 52, 38, 25, 16, 10, 8, 8, + 8, 8, 8, 8, 8, 8, 10, 16 + }; + + +// LED̓drcLED̓_Ńp^[ +st_led_red_batt_empty led_red_batt_empty = { 0x55, 0x55, 0x55, 0x55 }; +#define LED_SLEEP_FRAME_LEN 71 +#define LED_SLEEP_DIM_LEN 71 +#define LED_SLEEP_FRAME_NUM 32 + + + +// ======================================================== +static void led_pow_normal( ); +static void led_pow_sleep( ); +static void led_pow_bt_empty(); +static u8 led_pow_batt_low(); + +#define led_fade_to( now, goal ) now = fade_to( now, goal ) +extern u8 fade_to( u8 now, u8 goal ); + +#define led_fade_to2( led, status ) led = fade_to2( status ) +extern u8 fade_to2( st_LED_dim_status* status ); + + + +// ======================================================== +// dLED̃X[vp^[̃Xe[^X +static u8 time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; +static u8 frame_sleep; +static st_LED_dim_status LED_dim_status_sleep; + +extern bit ledInitialized; +extern bit BT_IN_CHG_delayed_n; + + + +/********************************************//** + dLED + + {Iɂ́A + + 쎞A + - drc > 10% “_imaster_brightness̖邳j + - 5% ԓ_ (100%_AHWŒs) + - ȉ ԓ_Am点LEDԂBAA_v^h5%`̓ + + X[v + - drc > 10% “_imaster_brightness̖邳j + - 쎞Ɠ + + X[vɂ͎Ő؂ւȂ̂ŁAWX^삪Kvłi̕s悢ł傤Hj + + ̃p^[͐Ŷ߁B + ***********************************************/ +void tsk_led_pow( ) +{ + if( ! ledInitialized ) + { + return; + // ܂ + } + + info_led_override = false; + + switch ( vreg_ctr[VREG_C_LED_POW] ) + { + case ( LED_POW_ILM_AUTO ): + default: + led_pow_normal( ); + break; + + case ( LED_POW_ILM_SLEEP ): + led_pow_sleep( ); + break; + + case ( LED_POW_ILM_ON ): + led_fade_to( LED_duty_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] ); + LED_pow_red = 0; + break; + + case ( LED_POW_ILM_OFF ): + led_fade_to( LED_duty_pow_blu, 0 ); + LED_pow_red = 0; + break; + + case ( LED_POW_ILM_ONLY_RED ): + LED_duty_pow_blu = 0; + LED_pow_red = 1; + break; + + case ( LED_POW_ILM_ONLY_BLUE ): + LED_duty_pow_blu = LED_BRIGHT_MAX; + LED_pow_red = 0; + break; + + case ( LED_POW_ILM_FORCE_BT_EMPTY ): + led_pow_bt_empty(); + break; + } + + if( system_status.pwr_state == OFF || system_status.pwr_state == ON_CHECK ) + { + LED_pow_red = 0; + info_led_override = false; + } + + if( info_led_override ) + { + LED_duty_notify_blu = 0; + LED_duty_notify_grn = 0; + LED_duty_notify_red = ( LED_pow_red == 0 )? 0 : 255; + } +} + + + +/********************************************//** + ʏ퓮쎞 + + drcʂŁA@ԁԓ_ + ***********************************************/ +static void led_pow_normal( ) +{ + time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; + frame_sleep = 0; + LED_dim_status_sleep.now = (sx16)LED_duty_pow_blu * 128; + + if( led_pow_batt_low() != 0 ) // Ԃ̓_łĂ܂ + { + return; + // ܂ + } + + // “_ + led_fade_to( LED_duty_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] ); +} + + + +/********************************************//** + X[vz^p^[ + + drcʂŐԁԓ_łɂ + ***********************************************/ +static void led_pow_sleep( ) +{ + if( led_pow_batt_low() != 0 ) // Ԃ̓_łĂ܂ + { + time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; + frame_sleep = 0; + LED_dim_status_sleep.now = (sx16)LED_duty_pow_blu * 128; + return; + // ܂ + } + + LED_dim_status_sleep.to = LED_PTN_SLEEP[frame_sleep] * 128; + + // Of[Ṽf^vZ + LED_dim_status_sleep.delta = (( LED_dim_status_sleep.to - LED_dim_status_sleep.now ) ) / LED_SLEEP_DIM_LEN; + led_fade_to2( LED_duty_pow_blu, &LED_dim_status_sleep ); + + // ̃t[ɐi߂H + time_to_next_frame_sleep --; + if( time_to_next_frame_sleep == 0 ) + { + time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; + + frame_sleep ++; + if( frame_sleep >= LED_SLEEP_FRAME_NUM -1 ) + { + frame_sleep = 0; + } + } +} + + + +/********************************************//** + drȂƂ̋ + +@ԒlF@0@drȂȂ +@@@@@1@Ȃ̂ŋʃp^[ɂ + ***********************************************/ +static u8 led_pow_batt_low() +{ + if( vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_LO ) + { + LED_pow_red = 0; + return 0; + // ܂ + } + + if(( vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_EMPTY ) || !BT_IN_CHG_delayed_n ) + // drcʂ5%i`10%j@܂́Aꖢł[d + { + // ԓ_ + led_fade_to( LED_duty_pow_blu, 0 ); + { + LED_pow_red = 1; + } + + } + else // dr5%@@A_v^Ȃ + { + led_pow_bt_empty(); + } + return 1; +} + + + + +/********************************************//** +@drȂp^[ + +@@wp^[𗬂 + +@@m点㏑ + ***********************************************/ +static void led_pow_bt_empty() +{ + static u8 delay; + static u8 red_blink_poi; + + info_led_override = true; + + // ԓ_ + led_fade_to( LED_duty_pow_blu, 0 ); + + // Ԃ̓_Ńp^[wł + delay ++; + if( delay < 64 ) // t[̕ێԉ҂ + { + return; + } + delay = 0; + + if( led_red_batt_empty.dats[ red_blink_poi / 8 ] & ( 1 << ( red_blink_poi % 8 )) ) + { + LED_pow_red = 1; + } + else + { + LED_pow_red = 0; + } + red_blink_poi ++; + if( red_blink_poi >= 32 ) + { + red_blink_poi = 0; + } +} + + diff --git a/snake_branches/3.82_trial_seisan/loader.c b/snake_branches/3.82_trial_seisan/loader.c new file mode 100644 index 0000000..2b0393f --- /dev/null +++ b/snake_branches/3.82_trial_seisan/loader.c @@ -0,0 +1,420 @@ +/* ======================================================== + MCU CTR BSR + 2009/03/30 - + JZp c + + u[g[_[ + zXg̒ʐMƁAȏAt@[̃`FbNsB + + $Id: loader.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#pragma opc + +#endif +#include "incs_loader.h" + +#include +#include "fsl_user.h" + +#include "i2c_ctr.h" +#include "i2c_mcu.h" +#include "pm.h" +#include "rtc.h" + +#include "reboot.h" + +#include "wdt.h" +#include "magic.h" + + + +#define REG_BIT_RESF_WDT (1<<4) +#define REG_BIT_RESF_TRAP (1<<7) +#define REG_BIT_RESF_LVI (1<<0) + + + +// ======================================================== +#if (FSL_DATA_BUFFER_SIZE>0) +fsl_u08 fsl_data_buffer[FSL_DATA_BUFFER_SIZE]; +#endif + + + +#ifdef FSL_INT_BACKUP +static fsl_u08 fsl_MK0L_bak_u08; /* if (interrupt backup required) */ +static fsl_u08 fsl_MK0H_bak_u08; /* { */ +static fsl_u08 fsl_MK1L_bak_u08; /* reserve space for backup information */ +static fsl_u08 fsl_MK1H_bak_u08; /* of interrupt mask flags */ +static fsl_u08 fsl_MK2L_bak_u08; /* */ +static fsl_u08 fsl_MK2H_bak_u08; /* } */ +#endif + + + +// ======================================================== +void hdwinit(); // static ɂcrt0猩ȂȂ܂BӁI +static void hdwinit2(); +static void chk_platform_type(); +static void chk_firm_broke(); + + +extern void main_loop(); + + +/********************************************//** + * - t@[Abvf[gAWDT̃ZbgA + * - t@[̔jA + * - {̎ނ̎ʁA + * - |[gA + * - ჌xȃytF̏A + * + * main_loop()ĂԁB + ***********************************************/ +void main( ) +{ + while( 1 ) + { + WDT_Restart( ); + + if( RTCEN ) // TRAP(update)ɂgȂBWDTł͗Ȃ + { + system_status.reboot = true; + } + + { + volatile u8 my_resf = RESF; // ǂނƏ + if( ( my_resf & REG_BIT_RESF_WDT ) != 0 ) + { + vreg_ctr[ VREG_C_MCU_STATUS ] |= REG_BIT_STATUS_WDT_RESET; + // set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET ); + // I2C̏ɍs + system_status.reboot = true; + } + else if( ( my_resf & REG_BIT_RESF_TRAP ) != 0 ) // ( FSL_ForceReset, 'r' ) + { + system_status.reboot = true; + } +/* LVIgp + else if(( my_resf & REG_BIT_RESF_LVI ) != 0 ) + { + vreg_ctr[ VREG_C_MCU_STATUS ] |= ( 1 << 2 ); + } +*/ + } +//* ROMǂɂȂȂA]̏RgAEg + if( !system_status.reboot ) + { + // ʏ̓d + // drڑAƑ҂Ă݂(`^O΍) + u16 pwup_delay0; + for( pwup_delay0 = 0xFFFF; pwup_delay0 != 0; pwup_delay0 -- ){;}; + } +//*/ + hdwinit2( ); + +#ifndef _WIN32 + // t@[̐`FbN // + chk_firm_broke(); // ĂAĂȂ +#endif + + // @픻 + chk_platform_type(); + + // HALfobOZbg + hal_reset(); + hal_update(); + + // RTC + RTC_init( ); // Ńu[g肵ď邩f܂ + + // ʏ^] + main_loop( ); + } +} + + + +/********************************************//** + * }WbNio[`FbNāA삳悤ƂĂt@[jĂȂ`FbN܂B + * + * Ăꍇ̓XgA݁AMCU̓Zbg܂B + ***********************************************/ +static void chk_firm_broke() +{ + u8 i; + u8 comp = 0; + + // [_[Ɩ{͓̂o[WH + /// ւ̃Abvf[g̓rŏIĂȂH + for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 炵 + { + comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; + comp += ( *( u8 * )( MGC_HEAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; + } + + if( *( u8 * )( MGC_FOOT +2 ) != ':' ) // ς̂܂ + { + comp ++; + } + + if( comp != 0 ) + { + // t@[XgA݂ + firm_restore( ); + // AĂȂBZbgB + } +} + + +/********************************************//** +vbgtH[̔sAsystem_statusɃZbg܂B + + fobK‚ȂłƏɔłȂƂ܂B + +CTRt@~ + + DEV_DET(P12.[2:1]) + + +CTR̊J@ + + P40,41 !! fobOLP40LMCUN܂I + + - HH @ + - HL NBDV + - LH X^hAV + - LL ISfobK + + ***********************************************/ +void chk_platform_type() +{ + // CTRt@~ // + system_status.family = (enum family_)( DEV_DET >> 1 ); /// ... + +#ifdef _DBG_FORCE_FLOWER + // Iɋ@ݒăfobOƂ +// system_status.family = FAMILY_FLOWER; +#endif + +#ifdef _MCU_ARR + if( system_status.family == FAMILY_SPFL ) + { + system_status.family = FAMILY_CLOSER; + } +#endif + + if( system_status.family == FAMILY_CTR ) + { + system_status.LCD_is_CGS = true; + } + else + { + // FAMILY_SPFL or FAMILY_SNAKE or FAMILY_FLOWER // At@XYȂ + system_status.LCD_is_CGS = false; + } + + if( system_status.LCD_is_CGS == true ) + { + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_CGS; + } + else + { + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_AMO; + } + set_vdd_voltages( system_status.family ); + + // CTR̊J@ // + // ꉞ + system_status.is_dev = false; + system_status.taikendai = false; + system_status.taikendai_nbd = false; + + switch( DIPSW ) + { + case DIPSW_TAIKENDAI: + system_status.taikendai = true; + break; + + case DIPSW_TAIKENDAI_NBD: + system_status.taikendai_nbd = true; + break; + + case DIPSW_ISDEV: + system_status.is_dev = true; + break; + } +#ifdef _FORCE_TAIKENDAI_ + system_status.taikendai = true; +#endif + +#ifdef _FORCE_TAIKENDAI_NBD_ + system_status.taikendai_nbd = true; +#endif +} + + + + +/********************************************//** + ŏ̃WX^s܂B + + gݍ݃X^[gAbv[`Ă΂܂B + ***********************************************/ +void hdwinit( void ) +{ // X^[gAbv[`ɌĂт܂ + DI( ); /* }X^荞݋֎~ */ + + CMC = bits8(0,0,0,1, 0,0,0,0); /* X1U(̓|[g)AXT1gpAd͔U͕sɕtʏ */ + CSC = bits8(1,0,0,0, 0,0,0,0); /* X1UȂAXT1UAU */ + OSMC = bits8(0,0,0,0, 0,0,0,1); /* BWX^ */ + NOP();NOP();NOP(); // 3clkJ + CKC = bits8(0,0,0,0, 1,0,0,0); /* CPU/ӃNbN=fMAINAfMAIN=fMXAfCLK=fMX */ + + /*--- doH̐ݒ ---*/ + /* Zbg̃ftHǵAIvVEoCgɂĎw肳 */ + LVIS = 0x00; /* VLVI = 4.22}0.1V */ +// LVIM = 0x00; /* LVI֎~ */ + /* dd(VDD)od(VLVI)Ɋ */ + /* dd(VDD)od tempA[0][1], "offset" => tempA[0][2], "type" => tempA[0][3], "data" => tempA[0][4], "CRC" => tempA[0][5] } + + break if src_in["type"].hex == 01 + break if src_in["len"].hex == 00 + # next if src_in["type"].hex != 00 + if( src_in["type"].hex != 00 ) +# p dat + next + end + + offset = src_in["offset"].hex + next if(( 0x1000 <= offset ) && ( offset < 0x2000 )) + + dataTemp = src_in["data"].scan(/\w\w/) + + ( 0...(src_in["len"].to_s.hex) ).each{|i| + bindata[ offset + i ] = ( dataTemp[ i ] ).to_s.hex + } +end + +### debug enable bit check ############# +# fobO‚ɂȂĂISfobKŋNȂiMCU삵Ȃj +p bindata[0xC3] +if( bindata[0xC3] != 0x04 ) + print( "!E debug enable!!" ) + exit( 1 ) +end + + +### format data and output ############# +4096.times{ + bindata.delete_at(4096) +} +dest.write( bindata[0..(0x4FFF - 0x1000)].pack("c*") ) +dest.close + +printf( "intel-HEX to bsr bin converter\n file converted!\n\n" ) diff --git a/snake_branches/3.82_trial_seisan/pedo_alg_thre_det2.c b/snake_branches/3.82_trial_seisan/pedo_alg_thre_det2.c new file mode 100644 index 0000000..4e69a04 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/pedo_alg_thre_det2.c @@ -0,0 +1,567 @@ +/* ******************************************************** + v + + 3x̃A^Cf[^AxNg̃moA + 臒l𒴂鎞ԁAԊuAm̑傫臒l؂ւȂ + + $Id$ +********************************************************* */ +#ifndef _WIN32 + +#pragma mul +#pragma div +#pragma bcd + +#endif + +#include "incs.h" + +#ifndef _WIN32 +#include +#endif + +#include "accero.h" +#include "pedometer.h" + +#include "pool.h" + +// ======================================================== +// ̍ŏIL^ +// ̏Ԃ̓OǂݏȍԂł̂łȂł +// ԂɃAhX̎Ⴂ̂mۂ̂҂Ă܂... +typedef struct{ + u8 hour_bcd; + u8 day_bcd; + u8 month_bcd; + u8 year_bcd; + u8 min_bcd; + u8 sec_bcd; +}st_calender; + + + +// ======================================================== +static u16 get_long_hour(); +static u16 calc_hours_spend( u8 ); + + + +// ======================================================== +bit pedolog_overflow; // 192ԋL^ς݃tO(i2cœǂ߂) +extern uni_pool pool; // O͂̍\̂̒ +static u8 p_record; // Ȍ݈ʒu +static st_calender cal_log_latest; // ŌɕXV +static u16 last_hour_fny; // fny:from new year +static st_calender cal_temp; +static u16 now_longhour; + + + + + + +// ======================================================== +#define _use_my_sqrt_ +#ifdef _use_my_sqrt_ +static unsigned long my_sqrt( unsigned long ); +#endif + +// N͉[NH +#define is_leapyear( y ) (( y & 0x03 ) == 0 ) +// uNv͉[NH +#define is_firstyear( y ) (( y & 0x03 ) == 1 ) + + +// xZTlFIR-LPFɒʂB̌W +extern const s8 lpf_coeff[]; +#define TAP 64 +#define FIL_COEFF_QUANT 10 + + +/********************************************//** +@v + ***********************************************/ +void pedometer() +{ + static s16 th_H = 15000; // 臒lBIύX܂ + static s16 th_L = 11000; + static u16 acc_norm[3]; // x̑傫̃qXgB傫 + static u16 acc_norm_temp; + static u8 interval_hh = 0xFF; // R-RԂ̎ԁBZ߂͂B + static u8 time_l; // Őɏ̌oߎ + static u16 peak_l; // J̐[ + static u16 norm_hist[TAP]; + + static u8 hist_indx; + + signed long filterd; + + u8 i; + + u16 sx16,sy16,sz16; + + DI_wt_chk(); + sx16 = abs( (u16)vreg_ctr[VREG_C_ACC_XH] * 256 + vreg_ctr[VREG_C_ACC_XL] ); + sy16 = abs( (u16)vreg_ctr[VREG_C_ACC_YH] * 256 + vreg_ctr[VREG_C_ACC_YL] ); + sz16 = abs( (u16)vreg_ctr[VREG_C_ACC_ZH] * 256 + vreg_ctr[VREG_C_ACC_ZL] ); + EI(); + + // xNg̃m +#ifdef _mcu_ +# ifndef _use_my_sqrt_ + norm_hist[ hist_indx & TAP-1 ] = sqrt( (long)sx16 * ( sx16 / 2 ) + + (long)sy16 * ( sy16 / 2 ) + + (long)sz16 * ( sz16 / 2 ) + ); +# else + norm_hist[ hist_indx & TAP-1 ] = my_sqrt( (long)sx16 * ( sx16 / 2 ) + + (long)sy16 * ( sy16 / 2 ) + + (long)sz16 * ( sz16 / 2 ) + ); +# endif +#endif + +#ifdef _pc_ + norm_hist[ hist_indx & TAP-1 ] = normh * 256 + norml; +#endif + + hist_indx ++; + + // qXgɃtB^(fir)|āA̒l߂ // + filterd = 0; +// for( i = 8; i != 55; i++ ) // WO΂̂ + for( i = 0; i != 46; i++ ) // We[u܂Bp[^ + { + filterd += (signed long)norm_hist[ ( hist_indx + i ) & TAP-1 ] * lpf_coeff[ i ]; + } + + filterd += (4096)*512; // DCZ...Ǝv + acc_norm_temp = (s16)( filterd /1024 & 0xFFFF ); // FIL_COEFF_QUANT琳K +/* + if( acc_norm[0] < acc_norm_temp ) + { + t_rise ++; + if( t_rise == 0 ) + t_rise == 254; + } + else + { + t_rise = 0; + } +*/ + if( acc_norm[0] != acc_norm_temp ) + { + acc_norm[2] = acc_norm[1]; // qXg + acc_norm[1] = acc_norm[0]; + acc_norm[0] = acc_norm_temp; + } + + if( acc_norm[2] <= acc_norm[1] && acc_norm[1] > acc_norm[0] + && acc_norm[0] > th_H ) + // ɑŁA臒l𒴂Ă + { + if( 21 < interval_hh ) + // Őɑ傩̊Ԋuقǂ悢 + { + if(( interval_hh < 160 ) && ( time_l < interval_hh )) + // Jł + { + if( acc_norm[0] - peak_l > 4200 ){ + // ܂ + hosu_increment_if_necessary(); + } + } + interval_hh = 0; + } + // Ȃ񂿂臒l̓IύX + if( acc_norm[0] > 18000 ) + { + th_L = acc_norm[0] - 10000; + } + else + { + th_L = 11000; + } + } + else + { + if( interval_hh != 255 ) // OaZĊyɏ炢̂ + { + interval_hh ++; + } + } + + // (2) ߂̋ɏ̎ + if( acc_norm[2] >= acc_norm[1] && acc_norm[1] < acc_norm[0] + && acc_norm[0] < th_L ) + { + // ɏo + time_l = 0; + peak_l = acc_norm[0]; + } + else + { + if( time_l != 255 ) + { + time_l ++; + } + } +} + + +/********************************************//** +@{P + + - ݐςCNg + - XV + + *2011/01/20 + + dlύX@OςɂȂ炻Ŏ~߂ + ***********************************************/ +#define HOSU_NODATA 0xFFFF +#define HOSU_MAX 0xFFFE + +void hosu_increment_if_necessary() +{ + u8 year_compd; // hourE␳ς݌ݔNBcomp(ensation -ed) + + // ݎ擾 + DI_wt_chk(); + RWAIT = 1; + while( !RWST ){;} + + cal_temp.hour_bcd = HOUR; + cal_temp.day_bcd = DAY; + cal_temp.month_bcd = MONTH; + cal_temp.year_bcd = YEAR; + cal_temp.min_bcd = MIN; + cal_temp.sec_bcd = SEC; + + RWAIT = 0; + EI(); + + year_compd = bcdtob( cal_temp.year_bcd ); + + now_longhour = get_long_hour(); + + // ݃|C^̍XV + if( ! ( vreg_ctr[ VREG_C_ACC_HOSU_L ] == 0 && // vonAŏ̈܂ł͑O񂩂̌oߎԂvZȂ + vreg_ctr[ VREG_C_ACC_HOSU_M ] == 0 && + vreg_ctr[ VREG_C_ACC_HOSU_H ] == 0 )) //. SrbgORŃ[肷̂̓fW^H݂̕ + { + // v~܂ĂԂlĕKvȂi߂ + // ␳vZ@U뎞ōɂȂꍇAA23ɏ㏑ + if( now_longhour == (u16)-1 ) // NA23䈵̂ƂAvZʂ -1 ɂȂĂ + { + now_longhour = 365 * 24 -1; + if( is_firstyear(year_compd) ) + { + now_longhour += 24; + } + year_compd --; + } + fill_hosu_hist_hours( calc_hours_spend( year_compd ) ); // ݃|C^̍XVs + + // OӂŋL^~H + if( pedolog_overflow ) + { + return; + // ܂BO̍XVȂB + } + } + + // CNgėǂ + cal_log_latest = cal_temp; // OXV + last_hour_fny = now_longhour; + + // O@CNg + if( pool.vreg_c_ext.pedo_log[ p_record ] == HOSU_MAX ) + { + // Ȃł܂ + //. v̍vƗ݌vȂȂ̂邽߂낤ǁAǂȂ́H + return; + } + else if( pool.vreg_c_ext.pedo_log[ p_record ] == HOSU_NODATA ) // ̎ԑэŏ̃JEg̎ + { // ꂵȂ1Ȃ + pool.vreg_c_ext.pedo_log[ p_record ] = 1; + } + else + { + // ʏpX + pool.vreg_c_ext.pedo_log[ p_record ] ++; + } + + // ݐς̍XV // + DI_wt_chk(); + if( ++vreg_ctr[ VREG_C_ACC_HOSU_L ] == 0 ) // JXg`FbN + { + if( ++vreg_ctr[ VREG_C_ACC_HOSU_M ] == 0 ) + { + if( ++vreg_ctr[ VREG_C_ACC_HOSU_H ] == 0 ){ + vreg_ctr[ VREG_C_ACC_HOSU_L ] = 255; //. 낢뎸s... + vreg_ctr[ VREG_C_ACC_HOSU_M ] = 255; + vreg_ctr[ VREG_C_ACC_HOSU_H ] = 255; + } + } + } + EI(); +} + + +/********************************************//** +󔒂̎ԂK؂0ɂāA +܂ނPԂ̃f[^ʒuɃ|C^Hi߂ + ***********************************************/ +static void fill_hosu_hist_hours( u16 hours ) +{ + // OӂH + if( (u16)p_record + hours >= PEDOMETER_LOG_SIZE ) + { + pedolog_overflow = true; + return; + } + + // 󔒂̐Ԃ̐ݒ + while( hours != 0 ) + { + // Vdl@ςŒ~ + p_record ++; +#if 1 // debug + if( p_record >= PEDOMETER_LOG_SIZE ) + { + pedolog_overflow = true; +// dbg_nop(); // ɗ悤ƃoO + break; + } + else +#endif + { + pool.vreg_c_ext.pedo_log[ p_record ] = 0; + } + hours --; + } + + return; +} + + + +/********************************************//** +NAAuf[^vɏ + ***********************************************/ +void clear_hosu_hist() +{ + u8 hours = PEDOMETER_LOG_SIZE; + do + { + hours --; + pool.vreg_c_ext.pedo_log[ hours ] = 0xFFFF; + } + while( hours != 0 ); + + DI_wt_chk(); + vreg_ctr[ VREG_C_ACC_HOSU_L ] = 0; + vreg_ctr[ VREG_C_ACC_HOSU_M ] = 0; + vreg_ctr[ VREG_C_ACC_HOSU_H ] = 0; + p_record = 0; + pedolog_overflow = false; + EI(); +} + + +extern u8 iic_burst_state; +bit pedolog_read_msb; +/********************************************//** + ṽqXgԂB + + PĂԓxɁAqXg̉ʁAʁAꎞԑkĉʏ... + ***********************************************/ +u8 hosu_read( ) +{ + u8 rv; + static u8 p_record_buffer; + static st_calender cal_buff; // ꉞAAg~bN + + if( iic_burst_state == 0 ) + { + p_record_buffer = p_record; + DI_wt_chk(); + cal_buff = cal_log_latest; + EI(); + } + + if( iic_burst_state <= 5 ) + { + rv = *( (u8*)&cal_buff + iic_burst_state ); // + iic_burst_state ++; + return( rv ); + } + else + { + u16 temp; + // 16rbgŋL^Ă̂ł΂炵đ /// Ɗy@񂶂 + temp = pool.vreg_c_ext.pedo_log[ p_record_buffer ]; + if( !pedolog_read_msb ) + { + rv = (u8)( temp & 0x00FF ); + } + else + { + rv = (u8)(( temp >> 8 ) & 0x00FF ); + if( p_record_buffer == 0 ) + { + p_record_buffer = PEDOMETER_LOG_SIZE-1; + } + else + { + p_record_buffer --; + } + } + pedolog_read_msb ^= 1; + return( rv ); + } + +} + + + +/********************************************//** + ŇǓoߎ(hour)ԂB + + + + Ԓl u16 long_hour + ***********************************************/ +const u16 DAYS_FROM_HNY[] = { + 0, + 31, + 31+28, // =59B@cRO͂PTX + 31+28+31, + 31+28+31+30, + 31+28+31+30+31, + 31+28+31+30+31+30, + 31+28+31+30+31+30+31, + 31+28+31+30+31+30+31+31, + 31+28+31+30+31+30+31+31+30, + 31+28+31+30+31+30+31+31+30+31, + 31+28+31+30+31+30+31+31+30+31+30 + }; + +static u16 get_long_hour() +{ + u8 year = bcdtob( cal_temp.year_bcd ); + u8 month = bcdtob( cal_temp.month_bcd ); + u8 day = bcdtob( cal_temp.day_bcd ); + u8 hour = bcdtob( cal_temp.hour_bcd ); + u8 min_bcd = cal_temp.min_bcd; // 召rȂ̂bcd̂܂܂ł悢 + u8 sec_bcd = cal_temp.sec_bcd; + u16 long_hour; + + // ܂̕ + long_hour = DAYS_FROM_HNY[ month -1 ]; // -1̓CfbNX킹 + if( is_leapyear(year) && ( 3 <= month )) + { + // [NŁA[ + long_hour ++; + } + long_hour += day - 1; + long_hour *= 24; // + + long_hour += hour; + + // EȆOHH + if( ( min_bcd > vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] ) + || ( ( min_bcd >= vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] ) + && ( sec_bcd >= vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC ] )) + ) + { + return( long_hour ); + } + else + { + return( long_hour -1 ); // 1ԑOɊ܂߂ ӁFUōNɂƂB-1 ɂȂ + } +} + + + +/********************************************//** +@yʕB + +@Kv\Ȑxőł؂ + + pcŃV~[Vđv + ***********************************************/ +static unsigned long my_sqrt(unsigned long x) +{ + unsigned long s, t; + + if (x <= 0) return 0; + + s = 1; + t = x; + while (s < t) + { + s <<= 1; + t >>= 1; + } + do + { + t = s; + s = (x / s + s) >> 1; + } while (s < t); + + return t; +} + + + + +/********************************************//** +@‚ OĂ΂ꂽƁAݎ̍߂BԂ̂fill_hosu_hist_hours ɂ̂܂ܓn + //. year_bcd Ȃ̂Ƃ₾... + ***********************************************/ +static u16 calc_hours_spend( u8 year ) +{ + u8 cal_log_latest_year = bcdtob( cal_log_latest.year_bcd ); + + // N̓ + if( cal_log_latest_year == year ) + { + if( now_longhour > last_hour_fny ) + { + return( now_longhour - last_hour_fny ); + } + else if( now_longhour == 0 && last_hour_fny != 0 ) + { + // N΂ŁAEzځBȂƍNŌɉZĂ܂B + return( 1 ); + } + else + { + return( 0 ); // ԑ(ƁA߂B@ǂȂĂmȂ) + } + } + else if( cal_log_latest_year == ( year -1 ) ) + { + // N܂łƂ + u16 temp = 365 * 24 - last_hour_fny + now_longhour; + if( is_firstyear(year) ) + { + temp += 24; + } + return( temp ); + } + else if( cal_log_latest_year < year ) + { + // Nu + return( PEDOMETER_LOG_SIZE +1 ); + } + else + { + // J_[߂Ȃ + // m[PAł悢cAslƂ킯ɂȂ + return( 0 ); + } +} diff --git a/snake_branches/3.82_trial_seisan/pedo_lpf_coeff.c b/snake_branches/3.82_trial_seisan/pedo_lpf_coeff.c new file mode 100644 index 0000000..877ef98 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/pedo_lpf_coeff.c @@ -0,0 +1,87 @@ +/********************************************//** + vŎgpALPF̃tB^W + $Id$ + ***********************************************/ + +#include "incs.h" + +// ========================================================= +#define TAP 64 +#define FIL_COEFF_QUANT 10 +const s8 lpf_coeff[]={ +/* +Window Function Algorithm LPF +Sampling Frequency = 100.0 +cutoff1 = 6.0000000 +Tap Count =64 +Kaiser Constant = 7.000000 +Quantized by 11 [bits] + */ +/* 0,// [0] + 0, + 0, + 0, + 0, + 0, + 0, + 0, +*/ + 1,// 8 + 2, + 2, + 3, + 3, + 2, + 0, + -2, + -5,// 16 + -9, + -13, + -16, + -16, + -13, + -6, + 4, + 18,// 24 + 37, + 56, + 77, + 95, + 110, + 119, + 122, + 119,// 32 + 110, + 95, + 77, + 56, + 37, + 18, + 4, + -6,// 40 + -13, + -16, + -16, + -13, + -9, + -5, + -2, + 0,// 48 + 2, + 3, + 3, + 2, + 2, + 1, +/* + 0, + 0,// 56 + 0, + 0, + 0, + 0, + 0, + 0, + 0 +*/ +}; diff --git a/snake_branches/3.82_trial_seisan/pedometer.h b/snake_branches/3.82_trial_seisan/pedometer.h new file mode 100644 index 0000000..8760308 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/pedometer.h @@ -0,0 +1,36 @@ +#ifndef _pedo_ +#define _pedo_ + +#ifdef WIN32 +typedef unsigned char bit; +typedef unsigned char u8; +typedef unsigned short u16; + + +#endif + + +// ========================================================= +extern bit pedolog_read_msb; + + + +// ========================================================= +//void hosu_read_end( ); }N +#define hosu_read_end() pedolog_read_msb = 0 + +u8 hosu_read( ); +void hosu_increment_if_necessary(); +void fill_hosu_hist_hours( u16 ); +void clear_hosu_hist(); +void pedometer(); + + + +// ========================================================= +#define PEDOMETER_LOG_SIZE ( 24 * 7 ) + + + +// ========================================================= +#endif diff --git a/snake_branches/3.82_trial_seisan/pm.c b/snake_branches/3.82_trial_seisan/pm.c new file mode 100644 index 0000000..247ba90 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/pm.c @@ -0,0 +1,1539 @@ +/* ======================================================== + PMIC + cJZ + nintendo + '08 Dec + + $Id: pm.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma nop + +#endif + +#include "incs.h" +#include "adc.h" +#include "led.h" +#include "pm.h" +#include "renge\renge.h" + +#include "batt_params.h" + +#include +#include "fsl_user.h" + +#include "vreg_twl.h" +#include "i2c_mcu.h" + +// ======================================================== +u8 raw_adc_temperature; +BT_VENDER battery_manufacturer = BT_VENDER_NOT_CHECKED; +static u8 ntr_pm_reg_shadow; // NTR PMIC WX^~[ +bit bt_authorized; // obep[^MρB[dJn +u8 chg_led_override; // A_v^ƂA[d邵ȂɊւ炸΂炭_ + +static u16 bt_volt16; + +static bit ntr_pm_bt_low_old; + +bit BT_IN_CHG_delayed_n; +bit temp_zone_charge_disable; // xŏ[d~鎞ɃqXeVXt邽 + +u8 pmic_version; +u8 mgic_version[2]; + +u8 pm_reg_bit_vddlcd; + +static bt_param_* p_bt_param; +extern const bt_param_ bt_param[]; + +bit pm_extdc_old; // OA_v^`FbNƂhĂH + +u8 pmreg_v_core; // SoC̃RAdݒBSNAKE(LAGER)ŕύX邽߁B + +#define K_RCOMP_SEG 0x0080 + +// [d~x֌W +static u8 raw_temp_lh; +static u8 raw_temp_ll; +#define RAW_TEMP_HL 184 // 1 +#define RAW_TEMP_HH 189 // -1 +#define RAW_TEMP_LH_CTR 75 // 50 [degC] +#define RAW_TEMP_LL_CTR 61 // 59 +#define RAW_TEMP_LH_SNAKE 84 // 45 +#define RAW_TEMP_LL_SNAKE 68 // 54 + + +// ======================================================== +static void BT_model_detect(); +static void BT_mgic_quick_start(); +static void BT_mgic_init(); +static void bt_chk_temparature(); +static void bt_get_charge_status(); +static void bt_param_select(); +static void bt_batt_update_twl(); +static void bt_batt_update_ntr(); +static void update_chg_led(); + + +// bp[ +static err send_cmd_mgic_2B( u8 reg, u16 dat ); +static err read_mgic_2B( u8 reg, u8* dat ); +static err read_BT_SOC( u8* dest ); +static err read_BT_voltage( u8* dest ); +static u8 conv_ctr_bt_to_twl_bt(); + + + +// ======================================================== +#define swap_endian_16( x ) (unsigned int)(( x << 8 ) | ( x >> 8 )) + + + +// ======================================================== +const u8 BT_MANUF_BORDER[] = { + 5, 33, 79, 123, 158, 197, 233 + }; + + + +/********************************************//** + dr̊Ǘ + + ȉ̃s͎ɂőEĎ܂B + - PM_BT_AUTH AGPI in + - PM_CHARGE_n CCIC /CHG in + - PM_EXTDC_n /DOK INTP4 in + - PM_CHARGE_EN_n /CEN out + + ȉ͊̕֌W肻łʂ̂ƂŊĎĂ܂B + - LED Charge tsk_LED + - BT_TEMP,_P tsk_ADC + + PM_EXTDC͊荞݃Cɂ邩 + ***********************************************/ +#define INTERVAL_TSK_BATT 60 +// 100Ə[dG[ɂ܂_łȂ̂ + +/********************************************//** + d̊Ď + - A_v^̊Ď + - [dALEDXV + - cʎ擾ALEDXV + ***********************************************/ +void tsk_batt( ) +{ + static u8 task_interval; + + if( task_interval -- != 0 ) + { + return; + } + else + { + task_interval = (u8)( INTERVAL_TSK_BATT / SYS_INTERVAL_TICK ); + } + + // A_v^Xe[^XXV // + pm_chk_adapter(); + + // [d // + bt_chk_temparature(); // x`FbN + if( !temp_zone_charge_disable && bt_authorized && !PM_EXTDC_n ) + { + BT_CHG_ENABLE(); // x͈OKŏ[dĊJ + } + else + { + BT_CHG_DISABLE(); // x댯I@[d~ + } + + bt_get_charge_status(); // [d󋵃`FbN + update_chg_led(); // chg ledXV + + // drc // + BT_get_left(); +} + + +/********************************************//** + [dLEDXV + + - CCIC[dƂΓ_B + - łȂĂAA_v^h΂Ȃ5b_ + - Aw^drΉʼnR[d̎Aq[Y؂iMGICNAKjȂ + ***********************************************/ +static void update_chg_led() +{ + static bit temp_led_chg; // static ‚ȂƃRpCʂ炸 + + temp_led_chg = false; + + // A_v^‚ȂuԁA[dłb킴Ɠ_BdĂ邱Ƃ킩点邽߁B + if( chg_led_override != 0 ) + { + chg_led_override --; + temp_led_chg = true; + } + + // CCIC ͏[dƌĂ邩H + if( ! BT_IN_CHG_delayed_n // bt_get_charge_status()ōXV܂B + && ! PM_EXTDC_n ) + { + temp_led_chg = true; + } + + LED_CHARGE = temp_led_chg; + + // WX^̏[drbgLEDɓ + set_bit_if( LED_CHARGE, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE ); // set_bit_if̂݁B + /// 荞݂task_status()ōs +} + + + +/********************************************//** + x`FbN + xtqXeVXL + ***********************************************/ +#define AVG_COUNT 40 +void bt_chk_temparature() +{ + static u8 heikinka_h,heikinka_l; + + if(( raw_temp_lh <= raw_adc_temperature ) + && ( raw_adc_temperature <= RAW_TEMP_HL )) + { + if( heikinka_h < AVG_COUNT ) + { + heikinka_h++; + } + else + { + temp_zone_charge_disable = false; // [d + } + } + else if(( raw_adc_temperature <= raw_temp_ll ) + || ( RAW_TEMP_HH <= raw_adc_temperature )) + { + if( heikinka_l < AVG_COUNT ) + { + heikinka_l++; + } + else + { + temp_zone_charge_disable = true; // [d֎~ + } + } + else + { + // temp_zone_charge_disable ̂܂ + heikinka_h = 0; + heikinka_l = 0; + } +} + + + +/********************************************//** + [d̃`FbN + + [dIC̃oO΍sB + ***********************************************/ +#define TIME_DENOIZE (u8)( 1000 / INTERVAL_TSK_BATT ) +void bt_get_charge_status() +{ + // CCIC̕s̂߁A/CHG̃lQ[gƒJɒx + static u8 anti_chatter; + + if( !BT_IN_CHG_n ) + { + // Ƀ`^O + if( anti_chatter < 2 ) // drŃA_v^āAdɂ킳 + { // Ə[dLED̂ + anti_chatter++; + } + else + + { + BT_IN_CHG_delayed_n = 0; // [d + } + } + else + { + if( !BT_CHG_Ena_n + && ( vreg_ctr[ VREG_C_BT_REMAIN ] < 60 ) + && !( is_mgic_error ) + ) + { + BT_IN_CHG_delayed_n = 0; // [dƈB[dIĂ͂Ȃ + } + else + { + BT_IN_CHG_delayed_n = 1; + anti_chatter = 0; + } + } +} + + + +/********************************************//** + A_v^̗L`FbN + ***********************************************/ +void pm_chk_adapter() +{ + set_bit_if( !PM_EXTDC_n, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY ); + + if( pm_extdc_old != PM_EXTDC_n ) // HAL ʂ߁A PM_EXTDC_n volatile ɂSzȂ + { + pm_extdc_old = PM_EXTDC_n; + if( !PM_EXTDC_n ) + { + // h + set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_CONNECT ); + chg_led_override = (u8)( 2500 / INTERVAL_TSK_BATT ); // bt_chckwait_ms(5)̂ŐL΂B + } + else + { + u8 temp_v[2]; + + // + set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_DISC ); + chg_led_override = 0; + + // drcʂ1%ŁAA_v^L̎ɂ͖{̂NAQ[ + // 1%ɉ񕜂OɃA_v^ƂA荞݂ȂƊҒʂ + // łȂBʑΉ̂߂őΉ + if( read_mgic_2B( BT_GAUGE_REG_VCELL, temp_v ) == ERR_SUCCESS ) + { + bt_volt16 = ( temp_v[0] * 256 + temp_v[1] ); + } + + if(( bt_volt16 < V_TH_ZERO ) || ( vreg_ctr[ VREG_C_BT_REMAIN ] == 0 )) + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN ); + } + } + } +} + + + +/******************************************************** +dr֌W̏ + +@@@Q[W@@b@L@@@@@b@ +@@[[[[[[[[[[[[[[[[[[[[[[[ +@@@dr@Lb@@@@@@@b@H +@@[[[[[[[[[[[[[[[[[[[[[[[ +@@@@@@b@@@@@@b@sr +@@@@@@@@b@@dr@b +@@[[[[[[[[[[[[[[[[[[[[[[[ + +@@Q[WLAdr@̔^@ʂ́A +@drxŔ肷 + + ԒlF@dr 0xFF + drςĂȂ 0 + drς 1 + +***********************************************************/ +bit bt_force_update; + + + +/********************************************//** + obẽ`FbNAƁA{̎ʎʁisp̂߁j + ***********************************************/ +void BT_chk() +{ + static BT_VENDER battery_manufacturer_old; + + battery_manufacturer_old = battery_manufacturer; + + BT_model_detect(); + bt_param_select(); // obecʕ␳p[^ȂǃZbg @łAƂ肠̒l(pi)wɂĂB + + if( system_status.model != MODEL_JIKKI ) + { + bt_authorized = false; + return; + // ܂ + } + + if(( battery_manufacturer_old != battery_manufacturer ) || + bt_force_update ) + { + bt_force_update = false; + iic_mcu_start( ); // ŏtOĂ̂ŌĂт܂ėǂ@ȂƂɁcorz + if( (( battery_manufacturer_old == BT_VENDER_OPEN ) || + ( battery_manufacturer_old == BT_VENDER_NOT_CHECKED )) && + !system_status.reboot ) + { + BT_mgic_quick_start(); + } + BT_mgic_init(); // @픻s܂ + } + bt_authorized = true; + renge_task_immed_add( tski_BT_temp_update ); // drxĎ +} + + + +/********************************************//** + {̎ʎ + ***********************************************/ +void BT_model_detect() +{ + u8 temp; + + BT_DET_P = 1; + BT_TEMP_P = 1; + wait_ms( 3 ); // dオ̂ɎԂ| + + raw_adc_temperature = get_adc( ADC_SEL_BATT_TEMP ); + temp = get_adc( ADC_SEL_BATT_DET ); + BT_DET_P = 0; + + system_status.captureBox = false; + // vbgtH[ // + if( raw_adc_temperature > 0xF0 ) + { + // TS // + system_status.model = MODEL_TS_BOARD; + system_status.family = FAMILY_CTR; // Hł̌딻㏑ + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_CGS; +// set_voltages( system_status.family ); svH + } + else if( raw_adc_temperature < 4 ) + { + // (KuC) // + system_status.model = MODEL_KUC_DEBUGGER; + } + else + { + // @AcIC NACK( obe܂͎cIC̏ ) + system_status.model = MODEL_JIKKI; // obe̎́ŏ㏑ + } + + // Lv`H // + if( iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VERSION ) == 0x01 ) + { + if( iic_mcu_result == I2C_ERR_OK ) // oɏȂƕ]nˑ + { + system_status.captureBox = true; + } + } + + // TShome{^A@͖ڑȂ̂ŗv[q /// gndɂƂ΂悩c + if( system_status.model == MODEL_TS_BOARD ) + { + PM_SW_HOME_n_TSBOARD = 1; + } + else + { + PM_SW_HOME_n_TSBOARD = 0; + SW_HOME_n_TSBOARD_RAW = 0; /// @open ǂł񂾂 + } + + // dr[J[̎ // + { + u8 i; + + battery_manufacturer = BT_VENDER_OPEN; // ftHgl + for(i=0; i<=7; i++) + { + if( temp <= BT_MANUF_BORDER[ i ] ) + { + battery_manufacturer = (BT_VENDER)i; + break; + /* + BT_VENDER_MAXELL; // = 0 + BT_VENDER_1; + BT_VENDER_2; + BT_VENDER_3; + BT_VENDER_4; + BT_VENDER_PANA; + BT_VENDER_6; + + BT_VENDER_OPEN; + */ + } + } + } + + + if( ( battery_manufacturer == BT_VENDER_OPEN ) && + ( system_status.model == MODEL_JIKKI ) ) + { + system_status.model = MODEL_JIKKI_NOBATT; + } +} + + + +#define MGIC_CMD_QUICKSTART 0x4000 +/********************************************//** + MGICNCbNX^[giɃoO΍j + ***********************************************/ +static void BT_mgic_quick_start() +{ + wait_ms( 10 ); // MGIC̋NɊ| + + // 0. obecIC NCbNX^[g + send_cmd_mgic_2B( BT_GAUGE_REG_MODE, swap_endian_16( MGIC_CMD_QUICKSTART ) ); + + wait_ms( 150 ); +} + + +/********************************************//** + drcʑ菉 + + drp[^Ȃǂ] + ***********************************************/ + +#define MGIC_CMD_UNLOCK_KEY 0x4A57 +#define MGIC_CMD_RESET 0x5400 +#define RCOMP_SIZE 16 +static void BT_mgic_init() +{ + u8 origParam[4]; + + if( system_status.model != MODEL_JIKKI ) + { + return; + // ܂ + } + + // 1. bN + if( send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( MGIC_CMD_UNLOCK_KEY ) ) != ERR_SUCCESS ) + { + // cIC NACK + vreg_set_mgic_error; + return; + // ܂ + } + + vreg_clear_mgic_error; + + // wait_ms( 5 + 1 ); OɃEFCgĂ̂ŕsv + + // 2. p[^ꎞۑ + //. o[Xg[hAQoCg܂ł݂Biǂݏoȑh~̂߂Hj + iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &origParam[0] ); + iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP+2, 2, &origParam[2] ); + + // 3. ꎞIOCVύX + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( p_bt_param->ocv )); // }WbNio[IȂ́B[J[w + + // 4. ꎞIRCOMPύX + send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, swap_endian_16( 0xFF00 ) ); + + // 5.[J[ʃp[^̃[h + { + u8 loop; + u16 temp; + + // -16oCgƂɋ؂Ƃ̂Ɓ@imCY΍Ƃ񂾂ǁAӖ񂩁Hj- + // 2oCgPʂőƂ̂ƁB + for( loop = 0; loop < BATT_PARAM_SIZE; loop +=2 ) + { + // ň + temp = *(p_bt_param->mg_param + loop) | (*(p_bt_param->mg_param + loop+1)) << 8 ; + send_cmd_mgic_2B( BT_GAUGE_REG_BT_PARAM + loop, temp ); + } + } + + { + // 5.1 g RCOMP XV + // {gȂAsӂɏĂ܂Ƃ̂߁AKlB + // 17048 ŕKvB17040iCTR) ɏĂ܂ĂsȂ + u8 loop; + + for( loop=0; loop < RCOMP_SIZE*2; loop+=2 ) + { + send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP_EXT + loop, swap_endian_16(K_RCOMP_SEG) ); + } + } + + // 6. 150msȏ҂ + wait_ms( 150 + 15 ); + + // 7. OCVɁuƂlv + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( p_bt_param->ocv ) ); // }WbNio[IȂ́B[J[w + + + // 7.1 bN + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( 0x0000 ) ); // lock key + + + // 8. 150`600ms҂B600ms͌ + wait_ms( 150 + 15 ); + + // 9. SOCǂށBxt@Ĉ߁B + { + u8 temp; + temp = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC ); + + if(( p_bt_param->verify.low <= temp ) && ( temp <= p_bt_param->verify.hi )) + { + // JX^fOKI + }else{ + // s烊gĈH + // dbg_nop(); // ͖ + } + } + + // 9.1 ēxfăbN + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( MGIC_CMD_UNLOCK_KEY ) ); + + // 10.RCOMPOCV߂ + // 2B x 2times write + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &origParam[0] ); + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP+2, 2, &origParam[2] ); + + // 11. bN + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( 0x0000 ) ); // lock key + + // 12. MAX17048AEFCgKvB + wait_ms( 150 + 15 ); +} + + + +extern u16 _dbg_rcomp; +/********************************************//** + raw_adc_temperatureɓĂlɕϊƂƂɁA + - WX^ɃZbg + - cICɃZbg + ***********************************************/ +task_status_immed tski_BT_temp_update( ) +{ + static u8 rawdat_old; + static s8 temperature; + s16 newrcomp; + static u8 heikinka; + +/* + T[~X^ - 10k_̎A + pxł͕̃J[uقڃjAŁA + c T[] = 81.48 - 111.97 x ratio + TDK T = 81.406 - 111.81 x ratio +*/ + + if( rawdat_old != raw_adc_temperature ) + { + if( heikinka < 40 ) + { + heikinka ++; + } + else + { + heikinka = 0; + rawdat_old = raw_adc_temperature; + // temperature = 81.45 - 111.9 * raw_adc_temperature/256.0; + // ꂼ256{Ă + temperature = (u8)(( 20851 - 112 * raw_adc_temperature + (256/2) ) /256); + vreg_ctr[VREG_C_BT_TEMP] = temperature; + + newrcomp = 0; + if( temperature > 20 ) + { + newrcomp = ( ( temperature - 20 ) * p_bt_param->rcomp.up )/256; + } + else + { + newrcomp = ( ( temperature - 20 ) * p_bt_param->rcomp.down )/256; + } + newrcomp = p_bt_param->rcomp.rcomp + newrcomp; + + if( newrcomp > 255 ) + { + newrcomp = 255; + } + if( newrcomp < 0 ) + { + newrcomp = 0; + } + _dbg_rcomp = newrcomp; + + if( send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, newrcomp ) == ERR_SUCCESS ) // swapsv + { + rawdat_old = raw_adc_temperature; + } + else + { + vreg_set_mgic_error; + } + } + } + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + drcICcʂ擾AWX^ɏށB + + @drcICȄȂǂ̎͂Ƃ肠c99%ƂB + + @@@@@@@@ status_1ŊmF”\BdɃ`FbNĂ܂B + + @BT_chk()sĂKv܂B + ***********************************************/ +void BT_get_left(){ + u8 temp[2]; + u8 reg_volatile_temp_bt_remain,reg_volatile_temp_bt_remain_fine; // I2C̔񓯊ǂݍ݂ł̂‚h~ Lbv̏ + u8 fuel_cap_by_voltage; // dŃLbvɎg + + // drc + if( system_status.model == MODEL_TS_BOARD + || system_status.model == MODEL_KUC_DEBUGGER ) + { + // TS & // + if( read_BT_SOC( temp ) == ERR_SUCCESS ) + { + reg_volatile_temp_bt_remain = temp[0]; + reg_volatile_temp_bt_remain_fine = temp[1]; + } + else + { + // G~[V@\ + // @œdf͕sւ邾낤 + reg_volatile_temp_bt_remain = 99; + reg_volatile_temp_bt_remain_fine = 0; + } + } + else + { + // @ // + // cʃ[h + if( read_BT_SOC( temp ) != ERR_SUCCESS ) + { + // cICNACK cobe͂ꂽ + vreg_set_mgic_error; + bt_authorized = false; + reg_volatile_temp_bt_remain = 0; + force_off = true; + } + else + { + u16 temp_u16; + + vreg_clear_mgic_error; + // obep[^̊֌WŃrbgVtgKv + temp_u16 = temp[0] * 256 + temp[1]; + temp_u16 /= p_bt_param->v_scale; + reg_volatile_temp_bt_remain = (u8)(( temp_u16 >> 8 ) & 0xFF ); + if( reg_volatile_temp_bt_remain == 0 ) + { + // 0%̎1.00%ɏグ + // [dJn΂炭͓drcʂ̂ + // 0%ɓBĂ܂Ƃ̂ + reg_volatile_temp_bt_remain = 1; + reg_volatile_temp_bt_remain_fine = 0; + } + else + { + reg_volatile_temp_bt_remain_fine = (u8)(temp_u16 & 0xFF); + } +#ifdef _DBG_BT_FULL_ + reg_volatile_temp_bt_remain = 100; + reg_volatile_temp_bt_remain_fine = 0; +#endif + } + } + + // drd + { + if( read_BT_voltage( temp ) != ERR_SUCCESS ) // 2byte read + { + temp[0] = (u8)( V_BT_4000MV / 256 ); // drdǂ߂Ȃ4000mVƂɂĂB + temp[1] = 0; + } + vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp[0]; + bt_volt16 = ( temp[0] * 256 + temp[1] ); + } + + + // dŃLbv...̏ + { + static u16 hysteresis; + + if( bt_volt16 > V_TH_30 ) + { + fuel_cap_by_voltage = 100; + hysteresis = 0; + } + else if( bt_volt16 - hysteresis > V_TH_LO ) // lqXeVXĂBǂނƂӁB + { + fuel_cap_by_voltage = 30; + hysteresis = 0; + } + else if( bt_volt16 > V_TH_EMPTY ) + { + fuel_cap_by_voltage = BATT_TH_LO; // + hysteresis = 500; + } + else if( bt_volt16 > V_TH_ZERO ) + { + fuel_cap_by_voltage = BATT_TH_EMPTY; + hysteresis = 500; + } + else if( bt_volt16 > V_TH_FORCE_OFF ) + { + fuel_cap_by_voltage = 0; + hysteresis = 500; + } + else + { + force_off = true; + hysteresis = 500; + } + } + + + // [diA_v^hĂĵɏ[dĂȂ + // AiȂƂjf̓drcʂ60%ȏiCCICoOABT_IN_CHG_delayed_nɐD荞ݍς݁j + // = [dBdrւĂMGIC100%ԂȂ + if( !BT_CHG_Ena_n && BT_IN_CHG_delayed_n ){ + reg_volatile_temp_bt_remain = 100; + reg_volatile_temp_bt_remain_fine = 0; + } + else + { // dł̃Lbv|邩H + if( fuel_cap_by_voltage < reg_volatile_temp_bt_remain ) + { + reg_volatile_temp_bt_remain = fuel_cap_by_voltage; + reg_volatile_temp_bt_remain_fine = 0; + } + } + + /* + \ɖȂdĂ炵̂ŃPAł悵 + if( system_status.taikendai_nbd && system_status.model != MODEL_TS_BOARD ) // dr[qɓd‚ȂĂĒlsȂߏ㏑B + { + reg_volatile_temp_bt_remain = 100; + } + */ + + vreg_ctr[ VREG_C_BT_REMAIN ] = reg_volatile_temp_bt_remain; + vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = reg_volatile_temp_bt_remain_fine; + + // twl̃WX^XV@(CTRɊ荞ݓOɍXVȂƊ荞݂̃^C~O܂Ȃ) + bt_batt_update_twl(); + + // cʂŊ荞݁B}ɌƔԂƂ // + { + static u8 bt_remain_old_ctr; + + if( bt_remain_old_ctr != reg_volatile_temp_bt_remain ) + // CTRɒʒm + { + if( (( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO ) && ( BATT_TH_LO < bt_remain_old_ctr ))|| + (( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_EMPTY ) && ( BATT_TH_EMPTY < bt_remain_old_ctr ))|| + (( vreg_ctr[ VREG_C_BT_REMAIN ] == 0 ) && ( bt_remain_old_ctr != 0 )) ) + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN ); + } + } + bt_remain_old_ctr = vreg_ctr[ VREG_C_BT_REMAIN ]; + } + + // PMIC-NTRɓdrcʂĂ + bt_batt_update_ntr(); +} + + + +/********************************************//** + tn̓d + + @Xe[^XtO͂ɗĂĂ܂B + + @sԂ邵A + + NsłΓd + + ʂ̃^XNœd͊ĎĂāAXe[^XNA + ***********************************************/ +err PM_LCD_on( ) +{ + err rv = ERR_ERR; + + PM_VDDLCD_on( ); // CGS AMO ؂ւĂ܂ + + if( system_status.LCD_is_CGS == true ) + { + // CTR + wait_ms( DELAY_PM_TSS_50B_AND_TCOM ); + } + else + { + // SPFL/SNAKE ȂAt@XHV on Ԃɋ + wait_ms( 10 ); + LCD_AMOL_HV_CTRL = 1; + wait_ms( DELAY_PM_TSS_50B_AND_TCOM - 10 ); + } + + PM_TCOM_on( ); + + wait_ms( DELAY_PM_TCOM_TO_VCS ); + + PM_VCS_on( ); + + wait_ms( DELAY_PM_VCS_TO_BL ); + + if( PM_chk_LDSW() != 0 ) // pX + { + // dNG[Ȃd؂Ă܂Bł̓PAȂ + vreg_ctr[VREG_C_STATUS] |= REG_BIT_LCD_POW; + set_irq( VREG_C_IRQ3, REG_BIT_LCD_ON ); + rv = ERR_SUCCESS; + } + + return rv; +} + + +void PM_LCD_off() +{ + // BL‚ĂB + // `FbN̂͊荞݂̊֌W + if( ( read_pmic( PM_REG_ADRS_BL ) & 0x03 ) != 0 ) + { + u8 tot; + + PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + vreg_ctr[VREG_C_STATUS] &= bits8(1,0,0,1, 1,1,1,1); + + if( (( REG_BIT_BL_U_OFF | REG_BIT_BL_L_OFF ) & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ) != 0 ) + { + vreg_ctr[ VREG_C_IRQ3 ] |= ( ( REG_BIT_BL_U_OFF | REG_BIT_BL_L_OFF ) & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ); + IRQ0_neg; + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} + IRQ0_ast; + } + vreg_ctr[VREG_C_COMMAND2] &= ~( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + } + + + // LCD dƂ + // 50ms wait ̂œ_Ă邩mF + if( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ) + { + PM_TCOM_off(); + wait_ms( 1 ); + PM_TCOM_VCS_off( ); + wait_ms( DELAY_PM_LCD_OFF ); + + if( system_status.LCD_is_CGS == false ) + { + // At@XȂ|[g + LCD_AMOL_HV_CTRL = 0; // ̃t@~łLȂ̂ŕQȂB + wait_ms( 10 ); // At@X15V؂Ƃ̃EFCgB + } + + PM_VDDLCD_off( ); // cĂ̑S~߂܂B + vreg_ctr[VREG_C_STATUS] &= ~REG_BIT_LCD_POW; + } + + set_irq( VREG_C_IRQ3, REG_BIT_LCD_OFF ); // ɔBi}XN͗Lj +} + + + +/********************************************//** +@obNCǧ•on/off + +@󂩂@on/off/ێ@̃tOȂ̂Ŗʓ| + +@BL on/on ̏ԂŁAon/onɂƌĂAon/on荞݂܂B + ***********************************************/ +err PM_BL_set( u8 dat ) +{ + u8 blset; // PMIC WX^ɏޒl + u8 intset = 0; // 荞݃WX^ɔfl + // RMWs + + // Read + blset = read_pmic( PM_REG_ADRS_BL ); + + // Modify + // + if(( dat & REG_BIT_CMD_BL_U_ON ) != 0 ) + { + blset |= PM_REG_BIT_BL_U; + intset |= REG_BIT_BL_U_ON; + } + else if(( dat & REG_BIT_CMD_BL_U_OFF ) != 0 ) + { + blset &= ~PM_REG_BIT_BL_U; + intset |= REG_BIT_BL_U_OFF; + } + + // + if(( dat & REG_BIT_CMD_BL_L_ON ) != 0 ) + { + blset |= PM_REG_BIT_BL_L; + intset |= REG_BIT_BL_L_ON; + } + else if(( dat & REG_BIT_CMD_BL_L_OFF ) != 0 ) + { + blset &= ~PM_REG_BIT_BL_L; + intset |= REG_BIT_BL_L_OFF; + } + + if( system_status.family == FAMILY_FLOWER ) + { + // plꖇȂ̂ŁAoff/off łȂΓ_ALX1iڑj𗧂グȂ + // A荞݂͉R‚ SoC ݒ肵Ǝv񂾒lɂB + // todo: vmB + if( blset != 0 ) + { + blset = PM_REG_BIT_BL_L; + } + } + + // write + if( blset != 0 ) // BLtꍇ̓EFCg܂ȂPWMĂ炸 + // Vbg_E邱Ƃ + { + wait_ms( 16 + 10 ); + } + send_cmd_pmic( PM_REG_ADRS_BL, blset ); + + // SoCPWMo悤WX^ZbgĂxL邽߁AXe[^X + // XVĂ܂BĂقƂ̗vB + + // PMICBL̃rbgƁAMCUSTATUSWX^̃rbgʒutȂߓւ + vreg_ctr[VREG_C_STATUS] = (( vreg_ctr[VREG_C_STATUS] & bits8(1,0,0,1, 1,1,1,1) ) + | ( (( blset << 6 ) | ( blset << 4 )) & bits8(0,1,1,0, 0,0,0,0) )); + + // 荞 + /// rbg܂Ƃ߂čŝŁAset_irq()gȂ + { + u8 tot; + + if( ( intset & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ) != 0 ) + { + vreg_ctr[ VREG_C_IRQ3 ] |= ( intset & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ); + IRQ0_neg; + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} + IRQ0_ast; + } + } + + return( ERR_SUCCESS ); // łُ͈`FbNsv +} + + + +/********************************************//** + t̑Όd̐ݒs܂B + + zWX^̓e𑗂邾 + ***********************************************/ +void PM_LCD_vcom_set( ) +{ + send_cmd_pmic( PM_REG_ADRS_POW_DAC1, vreg_ctr[VREG_C_VCOM_T] ); // ȂƂɁAPMIC̓o[Xgݕs + send_cmd_pmic( PM_REG_ADRS_POW_DAC2, vreg_ctr[VREG_C_VCOM_B] ); + return; +} + + + +/********************************************//** + ŁAWX^݂Ăяo鎞̂ + + @I2C̎荇̊֌WłĂ + ***********************************************/ +task_status_immed tski_vcom_set( ) +{ + PM_LCD_vcom_set( ); + return ( TSKI_FINISHED ); +} + + +void set_vdd_voltages( enum family_ family ) +{ + if(( family == FAMILY_SNAKE ) || ( family == FAMILY_CLOSER )) + { + // SNAKE + pmreg_v_core = PM_REG_BIT_VDD1P_1R05; + } + else + { + // NORMAL + pmreg_v_core = PM_REG_BIT_VDD1P_1R15; + } +} + +/********************************************//** + V[PX̒ʂd𗧂グĂ䂫܂B + + - Ԓl 0 Ō܂ŐɊB + - 1 V[gȂǂœd肫Ȃ + ***********************************************/ +err PM_sys_pow_on( ) +{ + // dグ +// PM_reset_ast( ); sv PM_LDSW_on܂ + RESET2_ast; + FCRAM_RST_ast; + GYRO_DISABLE(); + + PM_LDSW_on( ); + + wait_ms( 1 + DELAY_PM_TW_PWUP ); + + PM_VDD_normMode(); + PM_VDD_on( ); +// wait_ms( DELAY_PM_TW_PWUP ); // GYROނ + wait_ms( 10 ); + GYRO_ENABLE(); + wait_ms( DELAY_PM_TW_PWUP - 10 ); + + PM_VDD50A_on( ); // tdł͂ȂAledɎg + + wait_ms( DELAY_PM_TW_PWUP ); + + // dN`FbNB + if( !PM_chk_LDSW() ) + { + return ( ERR_ERR ); // reset1͂قƂėǂ + } + + // dIC + pmic_version = read_pmic( PM_REG_ADRS_VER ); + read_mgic_2B( BT_GAUGE_REG_VERSION, mgic_version ); + + return ( ERR_SUCCESS ); +} + + + +void reset_release() +{ + // ZbgȂǁBVXeNI + PM_reset_neg(); + FCRAM_RST_neg; + RESET2_neg; + + codec_reg_init(); // CODEC s背WX^(reset2̌łȂƂȂ̂) + ntr_pm_reg_shadow = 0; // @V@ȂƂ... +} + + + + +/********************************************//** + dOFFV[PX + ***********************************************/ +void PM_sys_pow_off( ) +{ + // ꉞ LCD ֌Ŵ݂B + PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + PM_LCD_off(); // ĂΉȂ + wait_ms( 20 ); + + PM_reset_ast(); + + RESET2_ast; + FCRAM_RST_ast; + + wait_ms( 20 ); + + PM_off( ); + PM_LDSW_off( ); +} + + + +/********************************************//** + extDC荞 + + dOFFNi[d̉xĎ̂߁ĵ + + i̓|[O(pm) + ***********************************************/ +__interrupt void intp4_extdc( ) +{ +} + + + +/********************************************//** + t^J‚ߊ荞 + + i̓|[O(misc) + ***********************************************/ +__interrupt void intp5_shell( ) +{ + ; +} + + +/********************************************//** + PMICւ̃R}h + ***********************************************/ +__interrupt void intp6_PM_irq( ) +{ + EI(); + if( system_status.pwr_state == ON ) + { + renge_task_immed_add( tski_ntr_pmic_comm ); + } +} + + +/********************************************//** + CODEC̊荞݂󂯂āANTR PMIC݊WX^烊[h + ***********************************************/ +task_status_immed tski_ntr_pmic_comm( ) +{ + u8 reg1_old; + u8 irq_work = 0; + + reg1_old = ntr_pm_reg_shadow; + ntr_pm_reg_shadow = iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_PM ); + if( iic_mcu_result != ERR_SUCCESS ) + { + return ( TSKI_FINISHED ); + } + +// DI( ); + + // obNCg //////////////////////////////////// + if( ( ( reg1_old ^ ntr_pm_reg_shadow ) & REG_BIT_TWL_REQ_BL_U ) != 0 ) + { + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_BL_U ) == 0 ) // + { + irq_work = REG_BIT_TWL_BL_U_OFF; + } + else + { + irq_work = REG_BIT_TWL_BL_U_ON; + } + } + + // obNCg + if( ( ( reg1_old ^ ntr_pm_reg_shadow ) & REG_BIT_TWL_REQ_BL_L ) != 0 ) + { + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_BL_L ) == 0 ) // + { + irq_work |= REG_BIT_TWL_BL_L_OFF; + } + else + { + irq_work |= REG_BIT_TWL_BL_L_ON; + } + } + +// EI(); + + vreg_ctr[ VREG_C_STATUS_1 ] = ( vreg_ctr[ VREG_C_STATUS_1 ] & ~REG_BIT_MASK_STATUS1_NTR_PM_REG ) + | ( ntr_pm_reg_shadow & REG_BIT_MASK_STATUS1_NTR_PM_REG ); // TWLobNCg̃~[ + + irq_work &= ~vreg_ctr[ VREG_C_IRQ_MASK2 ]; + // set_irq i + if( irq_work != 0 ) + { + u8 tot; + + vreg_ctr[ VREG_C_IRQ2 ] |= irq_work; + IRQ0_neg; // uグăpX𑗂蒼 + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} // O.DȂ̂łƂ̂҂ IRQ_mcu LɔĂƍ(•s) + IRQ0_ast; + } + + /// obNCgAC𗘂ď肵܂B + + // offNGXg ////////////////////////////////////// + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_OFF_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_OFF_REQ ); + } + + // ZbgNGXg ///////////////////////////////// + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_RST_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); + } + + // obNCg}XNď߂ + EI( ); + if( ( ntr_pm_reg_shadow & ( REG_BIT_TWL_REQ_OFF_REQ | REG_BIT_TWL_REQ_RST_REQ )) != 0 ) + { + ntr_pm_reg_shadow &= ~( REG_BIT_TWL_REQ_OFF_REQ | REG_BIT_TWL_REQ_RST_REQ ); + iic_mcu_write_a_byte_codec( CODEC_REG_PM, ntr_pm_reg_shadow ); + } + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + command2 tn + +@ bp[IȕBERR_SUCCESSԂȂc + ***********************************************/ +task_status_immed tski_PM_LCD_on() +{ + PM_LCD_on(); + return( TSKI_FINISHED ); +} + +task_status_immed tski_PM_LCD_off() +{ + PM_LCD_off(); + return( TSKI_FINISHED ); +} + +task_status_immed tski_PM_BL_set() +{ + u8 cmd_BL; // volatileƂtȂĂv݂ + + do + { + cmd_BL = vreg_ctr[VREG_C_COMMAND2]; + PM_BL_set( cmd_BL ); // }XNς + } + while( cmd_BL != vreg_ctr[VREG_C_COMMAND2] ); // <- PM_BL_setXV + vreg_ctr[VREG_C_COMMAND2] = 0; + + return( TSKI_FINISHED ); +} + + + +/********************************************//** +@reset2 CODEC ɃZbgAWX^sɂȂ邽 + ***********************************************/ +void codec_reg_init() +{ + wait_ms( 100 ); + + ntr_pm_bt_low_old = conv_ctr_bt_to_twl_bt(); + + iic_mcu_write_a_byte_codec( CODEC_REG_BT, (u8)ntr_pm_bt_low_old ); // SoC 珑 + + vol_reset(); +// renge_task_immed_add( tski_vol_update ); |[ÔŁB + vol_polling = 3; +} + + +/********************************************//** + wp[Ƃbp[ƂH + + ROMߖ̂ + ***********************************************/ +err send_cmd_mgic_2B( u8 reg, u16 dat ) +{ + u16 temp = dat; // Mobt@ + return iic_mcu_write( IIC_SLA_BT_GAUGE, reg, 2, &temp ); // DMA]̂őMf[^obt@̃|C^ǂKv +} + +err read_mgic_2B( u8 reg, u8* dat ) // Mobt@͌Œ +{ + return iic_mcu_read( IIC_SLA_BT_GAUGE, reg, 2, dat ); +} + +err send_cmd_pmic( u8 reg, u8 dat ) +{ + return iic_mcu_write_a_byte( IIC_SLA_PMIC, reg, dat ); +} + +u8 read_pmic( u8 reg ) +{ + return iic_mcu_read_a_byte( IIC_SLA_PMIC, reg ); +} + +/********************************************//** + dr[J[ƃfAgdrp[^̌ + ***********************************************/ +void bt_param_select() +{ + BT_TYPE bt_type_temp; + + // obe[J[ + if( battery_manufacturer <= BT_VENDER_3 ) // ]TĒԂ臒lƂ + { + bt_type_temp = BT_PARAM_CTR_MAXELL; + } + else + { + bt_type_temp = BT_PARAM_CTR_PANA; + } + + // f + switch( system_status.family ) + { + case( FAMILY_SPFL ): bt_type_temp += BT_PARAM_SPFL_MAXELL; break; // ItZbg cOȎŁcB + case( FAMILY_SNAKE ): bt_type_temp += BT_PARAM_SNAKE_MAXELL; break; + case( FAMILY_CLOSER ): bt_type_temp += BT_PARAM_SPFL_MAXELL; break; + case( FAMILY_CTR ): + case( FAMILY_FLOWER ): // CTR Ɠ + default: /* bt_type_temp ̂܂ */ break; + } + + p_bt_param = &bt_param[ bt_type_temp ]; + + // [d~x̐ݒ + /// tȂ̂ƁA򂪏Ȃ̂ł + if(( system_status.family == FAMILY_SNAKE ) || + ( system_status.family == FAMILY_CLOSER )) + { + raw_temp_lh = RAW_TEMP_LH_SNAKE; + raw_temp_ll = RAW_TEMP_LL_SNAKE; + } + else + { + raw_temp_lh = RAW_TEMP_LH_CTR; + raw_temp_ll = RAW_TEMP_LL_CTR; + } +} + + + + +#define TWL_BT_LEVEL_THREASH_F 60 +#define TWL_BT_LEVEL_THREASH_B 30 +#define TWL_BT_LEVEL_THREASH_1 0 + +/********************************************//** + TWLɓdrcʂĂ + ***********************************************/ +static void bt_batt_update_twl() +{ + if (vreg_ctr[VREG_C_BT_REMAIN] > TWL_BT_LEVEL_THREASH_F ) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x0F; + } + else if (vreg_ctr[VREG_C_BT_REMAIN] > TWL_BT_LEVEL_THREASH_B ) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x0B; + } + else if (vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_LO) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x07; + } + else if (( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_EMPTY )|| + !BT_CHG_Ena_n ) + { // A_v^̗LŒグ + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x03; + } + else if (vreg_ctr[VREG_C_BT_REMAIN] > TWL_BT_LEVEL_THREASH_1 ) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x01; + } + else + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x00; + } +} + + +/********************************************//** + NTRɓdrcʂĂ + ***********************************************/ +static void bt_batt_update_ntr() +{ + static bit initialized; + static bit flag; // HstaticłȂƃRpCɓ{ + + if( system_status.pwr_state == OFF_TRIG ) + { + initialized = false; + } + else + { + + flag = conv_ctr_bt_to_twl_bt(); + + if(( ntr_pm_bt_low_old != flag ) || !initialized ) + { + initialized = true; + ntr_pm_bt_low_old = flag; + iic_mcu_write_a_byte_codec( CODEC_REG_BT, (u8)flag ); + } + } +} + + +/********************************************//** + drcʂǂł + ***********************************************/ +static err read_BT_SOC( u8* dest ) +{ +#ifdef _ENABLE_HAL_ + if( vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] != 0xFF ) // trueȂHALL +#else + if( 0 ) +#endif + { + *dest = vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ]; + *(dest+1) = 0x00; + return ERR_SUCCESS; + } + else + { + return( read_mgic_2B( BT_GAUGE_REG_SOC, dest ) ); + } +} + + +/********************************************//** + drdǂł + ***********************************************/ +static err read_BT_voltage( u8* dest ) +{ +#ifdef _ENABLE_HAL_ + if( vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] != 0xFF ) // trueȂHALL +#else + if( 0 ) +#endif + { + *dest = vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ]; +// *(dest+1) = 0x00; // gȂ@ǂQoCg[h֐pӂĂȂ̂ł + return ERR_SUCCESS; + } + else + { + return( read_mgic_2B( BT_GAUGE_REG_VCELL, dest ) ); + } +} + + +/********************************************//** + drcʂtwlɃtOɕϊ + ***********************************************/ +static u8 conv_ctr_bt_to_twl_bt() +{ +// ntr_pm_bt_low_old = ( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )? NTR_PM_BT_EMPTY: NTR_PM_BT_ENOUGH; // 1œdr؂ + if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO ) + { + return NTR_PM_BT_EMPTY; + } + else + { + return NTR_PM_BT_ENOUGH; + } +} + + + +void PM_reset_ast() +{ + char temp; + temp = read_pmic( PM_REG_ADRS_CONT ); + send_cmd_pmic( PM_REG_ADRS_CONT, temp & ~(PM_REG_BIT_nRST1)); +} + diff --git a/snake_branches/3.82_trial_seisan/pm.h b/snake_branches/3.82_trial_seisan/pm.h new file mode 100644 index 0000000..a0d27ed --- /dev/null +++ b/snake_branches/3.82_trial_seisan/pm.h @@ -0,0 +1,222 @@ +#ifndef __PM__ +#define __PM__ +/* + $Id$ +*/ + +#define IIC_SLA_PMIC 0x84 +#define IIC_SLA_BT_GAUGE 0x6C + +#define VCOM_DEFAULT_T 92 +#define VCOM_DEFAULT_B 95 + + + +#define BATT_TH_LO 10 +#define BATT_TH_EMPTY 5 + +// dWX^ƒڔrłpɃItZbg +#define V_BT_4000MV (u16)( 4000 * 12.8 ) // dǂݏosp 4000mVݒ +#define V_TH_30 (u16)( 3300 * 12.8 ) // 30% +#define V_TH_LO (u16)( 3200 * 12.8 ) // 10% +#define V_TH_EMPTY (u16)( 3150 * 12.8 ) // 5% +#define V_TH_ZERO (u16)( 3100 * 12.8 ) // 0% +#define V_TH_FORCE_OFF (u16)( 2900 * 12.8 ) // 2.9V ŏIf + + +//========================================================= +#ifdef _WIN32 +#define LED_CHARGE mcuRegP[ _P2_4 ] +#else +#define LED_CHARGE P2.4 +#endif + + +//========================================================= +enum PMIC_REG_ADRS +{ + PM_REG_ADRS_VER = 0x00, // verinfo Ȃ + PM_REG_ADRS_VDD_SYS, // VXegpd + PM_REG_ADRS_VDD_LCD, // td + PM_REG_ADRS_CONT, // /RESET1, LoadSwitch + PM_REG_ADRS_BL, // obNCg on/off + PM_REG_ADRS_POW_SAVE, // ȓd͐ݒ + PM_REG_ADRS_POW_DAC1, + PM_REG_ADRS_POW_DAC2 +}; + +enum BT_GAUGE_REG_ADRS +{ + BT_GAUGE_REG_VCELL = 0x02, // ꂼ16rbĝ + BT_GAUGE_REG_SOC = 0x04, + BT_GAUGE_REG_MODE = 0x06, + BT_GAUGE_REG_VERSION = 0x08, + BT_GAUGE_REG_OCV = 0x0E, + BT_GAUGE_REG_RCOMP = 0x0C, + BT_GAUGE_REG_LOCK = 0x3E, + BT_GAUGE_REG_BT_PARAM = 0x40, + BT_GAUGE_REG_COMMAND = 0xFE, + BT_GAUGE_REG_RCOMP_EXT = 0x80, +}; + + +typedef enum BT_VENDER +{ + BT_VENDER_MAXELL = 0, // V[g + BT_VENDER_1, // 120 + BT_VENDER_2, // 360 + BT_VENDER_3, // 750 + BT_VENDER_4, // 1.3k + BT_VENDER_PANA = 5, // 2.7k + BT_VENDER_6, // 8.2k + BT_VENDER_OPEN = 7, // open + BT_VENDER_NOT_CHECKED = 0xFF, +}BT_VENDER; + + + +enum NTR_PM_BT_STATUS{ + NTR_PM_BT_ENOUGH, + NTR_PM_BT_EMPTY, + NTR_PM_BT_NOT_INITIALIZED = 0xFF +}; + + + +//========================================================= +// CODECPMIC݊WX^ +#define CODEC_REG_PM 0x10 +#define CODEC_REG_BL 0x11 +#define CODEC_REG_BT 0x12 +//#define CODEC_REG_VOL 0x13 // ...sɂAadc.hŒ` + +// TWLSPIPMICɓR}h +#define REG_BIT_TWL_REQ_OFF_REQ ( 1 << 6 ) +#define REG_BIT_TWL_REQ_RST_REQ ( 1 << 0 ) +#define REG_BIT_TWL_REQ_BL ( 3 << 2 ) + + + +// 0x03 pw cnt3 +#define PM_REG_BIT_LDSW ( 1 << 0 ) +#define PM_REG_BIT_nRST1 ( 1 << 1 ) + +// 0x01 pw cnt1 +#define PM_REG_BIT_VDD_CTR 0x0F +#define PM_REG_BIT_VDD50A ( 1 << 4 ) + +// 0x02 pw cnt2 +#define PM_REG_BIT_VDDLCD_CGS 0x07 +#define PM_REG_BIT_VDDLCD_AMO 0x05 +#define PM_REG_BIT_LCD_VCS ( 0x01 << 4 ) +#define PM_REG_BIT_LCD_TCOM ( 0x01 << 3 ) + +// 0x04 bl cnt +#define PM_REG_BIT_BL_U 0x01 +#define PM_REG_BIT_BL_L 0x02 + + +// 0x05 pow save +#define PM_REG_BIT_VDD1P_1R15 bits8(0,0,0,0, 0,0,0,0) +#define PM_REG_BIT_VDD1P_1R05 bits8(0,0,0,0, 1,0,0,0) +#define PM_REG_BIT_VDD1P_1R00 bits8(0,0,0,1, 0,0,0,0) +#define PM_REG_BIT_VDD1P_0R95 bits8(0,0,0,1, 1,0,0,0) +#define PM_REG_BIT_VDD1P_0R90 bits8(0,0,1,0, 0,0,0,0) +#define PM_REG_BIT_VDD_AUTO bits8(0,0,0,0, 0,1,1,1) +#define PM_REG_BIT_VDD_PWM bits8(0,0,0,0, 0,0,0,0) + + +#define DELAY_PM_TW_PWUP 16 + 2 +#define DELAY_PM_TSS_50B_AND_TCOM 17 + 1 +#define DELAY_PM_5V_TO_TCOM 17 + 1 +#define DELAY_PM_TCOM_TO_VCS 3 +#define DELAY_PM_VCS_TO_BL ( 17 + 5 ) +#define DELAY_PM_LCD_OFF ( 50 + 1 ) + + +//========================================================= +extern u8 raw_adc_temperature; +extern BT_VENDER battery_manufacturer; +extern bit bt_force_update; + +extern u8 pmic_version; +extern u8 mgic_version[]; + +extern u8 pm_reg_bit_vddlcd; // At@XΉ(dV[PXႤ) + +extern u8 pmreg_v_core; // SoC̃RAdݒBSNAKE(LAGER)ŕύX邽߁B + +//========================================================= +err PM_sys_pow_on( ); +void PM_sys_pow_off( ); +//err PM_bt_auth( ); +void PM_LCD_vcom_set( ); + +err PM_LCD_on( ); +void PM_LCD_off( ); +err PM_BL_set( u8 ); + +void BT_chk(); +void BT_get_left(); +void pm_chk_adapter(); + +void codec_reg_init(); + +void set_vdd_voltages( enum family_ family ); + +void reset_release(); + +task_status_immed tski_BT_temp_update( ); +task_status_immed tski_vcom_set( ); +task_status_immed tski_PM_LCD_on(); +task_status_immed tski_PM_LCD_off(); +task_status_immed tski_PM_BL_set(); + + +err send_cmd_pmic( u8 reg, u8 dat ); +u8 read_pmic( u8 reg ); + + +#define PM_Chg_Stop() { BT_TEMP_P = 0; BT_CHG_DISABLE(); LED_CHARGE = 0; bt_authorized = false; } +// @ĂԑOɁA݉xĂKv܂B +#define PM_reset() ( send_cmd_pmic( PM_REG_ADRS_CONT, 0x00 ) ) + + +//========================================================= + + +// // +#define PM_LDSW_on() ( send_cmd_pmic( PM_REG_ADRS_CONT, PM_REG_BIT_LDSW )) +#define PM_LDSW_off() ( send_cmd_pmic( PM_REG_ADRS_CONT, 0 )) + + +// VXed // +#define PM_VDD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, PM_REG_BIT_VDD_CTR )) +#define PM_VDD50A_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, ( PM_REG_BIT_VDD_CTR | PM_REG_BIT_VDD50A ))) +#define PM_VDD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, 0 )) +#define PM_off() PM_VDD_off() + +// CPUd +#define PM_VDD_normMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, pmreg_v_core | PM_REG_BIT_VDD_PWM )) +#define PM_VDD_ecoMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_0R90 | PM_REG_BIT_VDD_AUTO )) + +// ق // +#define PM_reset_neg() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW | PM_REG_BIT_nRST1 ))) +// #define PM_reset_ast() // read modify write 悤ɂ܂ +void PM_reset_ast(); +#define PM_chk_LDSW() ( read_pmic( PM_REG_ADRS_CONT ) & PM_REG_BIT_LDSW ) // 1̂ƂAdon + +// tnd // +#define PM_VDDLCD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, pm_reg_bit_vddlcd )) +#define PM_TCOM_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_TCOM ))) +#define PM_VCS_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_VCS | PM_REG_BIT_LCD_TCOM ))) +#define PM_TCOM_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_VCS ))) +#define PM_TCOM_VCS_off() PM_VDDLCD_on() +#define PM_VDDLCD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, 0 ) ) + +#define PM_set_BL( dat ) ( send_cmd_pmic( PM_REG_ADRS_BL, dat ) ) +#define PM_set_adc1( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC1, dat ) ) +#define PM_set_adc2( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC2, dat ) ) + + +#endif // __PM__ diff --git a/snake_branches/3.82_trial_seisan/pool.h b/snake_branches/3.82_trial_seisan/pool.h new file mode 100644 index 0000000..81c8091 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/pool.h @@ -0,0 +1,24 @@ +#ifndef _pool_h_ +#define _pool_h_ + + +#include "pedometer.h" + +#define VREG_C_FREE_SIZE 200 + +// 󂢂Ă郁 +typedef struct _st_vreg_c_ext{ + unsigned short pedo_log[ PEDOMETER_LOG_SIZE ]; + unsigned char vreg_c_free[ VREG_C_FREE_SIZE ]; +}st_vreg_c_ext; + +typedef union _uni_pool +{ + st_vreg_c_ext vreg_c_ext; + u8 self_update_work[ 256 ]; // 256ȏ͂܂ƂߏłȂ +}uni_pool; + +extern uni_pool pool; + + +#endif diff --git a/snake_branches/3.82_trial_seisan/reboot.c b/snake_branches/3.82_trial_seisan/reboot.c new file mode 100644 index 0000000..53912a5 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/reboot.c @@ -0,0 +1,23 @@ +/********************************************************//* + ނ胊u[g + + t@CɃCCAZuƁA + ̃W[SœKȂȂ邽ߒǂo + $Id$ + **********************************************************/ +#pragma SFR + +#include "incs_loader.h" + + +void my_reboot(){ +#asm + + MOV PSW,#06H ; _~[PSWZbg + MOVW AX,#000d0h ; Zbg̃xN^l荞ł܂B + PUSH PSW + PUSH AX ; RETÎ߂̃X^bN + RETI ; ŃZbgExN^ɕ + +#endasm +} diff --git a/snake_branches/3.82_trial_seisan/reboot.h b/snake_branches/3.82_trial_seisan/reboot.h new file mode 100644 index 0000000..c20e11e --- /dev/null +++ b/snake_branches/3.82_trial_seisan/reboot.h @@ -0,0 +1,6 @@ +#ifndef __MYREBOOT__ +#define __MYREBOOT__ + +void my_reboot(); + +#endif diff --git a/snake_branches/3.82_trial_seisan/renge/renge.c b/snake_branches/3.82_trial_seisan/renge/renge.c new file mode 100644 index 0000000..19bee20 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/renge/renge.c @@ -0,0 +1,313 @@ +#ifndef _WIN32 + +#pragma section @@CODE ROM_CODE +#pragma nop +#pragma ei +#pragma di +#pragma sfr + +#endif + + +#ifdef _WIN32 +typedef unsigned char bit; +typedef unsigned char u8; +#endif + +/****************************************************************************** + ^XNVXeH + ȂقǁAiTRONɂ̓RtBM[^͂B + ܂ + ctr_mcu_config.rb QƁB task_config.h쐬܂B + *****************************************************************************/ +#include "renge.h" +#include "renge_task_intval.h" +#include "renge_task_immediate.h" +#include "..\WDT.h" +#include "..\config.h" +#include "..\user_define.h" +#include "..\util_funcs.h" + + +#ifdef _WIN32 +#include "../sim/simOnWin.h" +#endif +//#define _renge_test_ + +#define true 1 +#define false 0 + +//****************************************************************************** +u8 renge_flg_interval; +bit renge_task_interval_run_force; +bit renge_task_immediate_not_empty; + + +#include "..\bsr_system.h" +extern system_status_ system_status; + + +//****************************************************************************** +static void renge_task_immed_init(); +static void renge_task_immed_del(); + + + +//****************************************************************************** +task_status_immed ( *tasks_immed[ TASK_IMMED_RUN_LIST_MAX ] )(); + + + +/****************************************************************************** + +E^XNVXe̓Ȉ +EC^[o^C} + *****************************************************************************/ +void renge_init(){ + renge_task_immed_init(); + /* + Cxg^C}̃ZbgȂ + RTC𗬗pĂ̂ŃRgAEg + #define renge_tick 19xxxxxxx [ms] + renge_interval_init(); RTC_init(); + */ +} + + + +/****************************************************************************** + VXe`bNi߂ + *****************************************************************************/ +/* +void renge_interval(){ +// RTCĂ +__interrupt void int_rtc_int(); +} +*/ + + + +/****************************************************************************** + RpCɌ܂ĂAC^[oÑ^XN + ̂ANƍ邩ȂB + *****************************************************************************/ +__callt err renge_task_interval_run(){ + u8 i; + + // C^[oN + DI_wt_chk(); + if(( renge_flg_interval != 0 ) || + ( renge_task_interval_run_force )) /// ȁc + { + renge_task_interval_run_force = false; // N^XNA荞ރ^XNŃtO‚Ȃ̂ + if( renge_flg_interval != 0 ) + { + renge_flg_interval --; + WDT_Restart( ); + } + EI(); + for( i = 0; i != TSK_LAST; i ++ ) + { + tasks[ i ](); + // N^XNԂɋ + renge_task_immed_run(); + } + } + EI(); + return( ERR_SUCCESS ); +} + + + +/***************************************************************************** + N^XN + + task_immed Ԃ֐B + VXetickA炩̊荞݁iI2CʐMȂǁj + X[v畜A^C~OŎs܂B + +Ԓl@TSKI_FINISHED@^XN폜 +@@@@ȊO ̃^C~Oł܂s + + *****************************************************************************/ + + +/************************************** + **************************************/ +void renge_task_immed_init(){ + u8 i; + + for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i++ ){ + tasks_immed[ i ] = TSK_IMM_EMPTY_; + } +} + + + +/************************************** + s^XN̓o^ + 荞݋֎~ 36us + **************************************/ +__callt err renge_task_immed_add( task_status_immed (*new_task)() ){ + u8 i; + + // Xg̋󂫂̐擪ɓo^ + // 폜΂̃^XŃA폜}[N(TSK_IMM_DELETED_)ƂȂA󂫂Ƃ͖Iɋʂ + // do^ + for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i ++ ) + { + DI_wt_chk(); + if( tasks_immed[ i ] == TSK_IMM_EMPTY_ ) + { + // 󂫂‚ + tasks_immed[ i ] = new_task; + EI(); + return( ERR_SUCCESS ); + } + else + { + // do^`FbN + /// ɂȂĂȂAOl߂ĂO + if( tasks_immed[ i ] == new_task ) + { + // do^͂Ȃ + EI(); + return( ERR_ERR ); + } + } + EI(); + } + // ^XNo^(͂ + return( ERR_ERR ); +} + + + +/************************************** + s^XN̎s + **************************************/ +__callt err renge_task_immed_run(){ + u8 list_id; + +// while( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ ) + if( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ ) + { + DI_wt_chk(); + for( list_id = 0; list_id < TASK_IMMED_RUN_LIST_MAX; list_id ++ ){ + if( tasks_immed[ list_id ] == TSK_IMM_EMPTY_ ){ + // Xg + EI(); + break; + } +#ifdef _renge_test_ + else if( tasks_immed[ list_id ] == TSK_IMM_DELETED_ ) + { + EI(); + NOP(); + // ^XNǗ̕s + // ݂Ȃ^XNs悤Ƃ + // ^XN̍폜̏܂ + // \Ȃ^C~O immed_run Ă΂ꂽ + } +#endif + else + { + u8 rv; + + EI(); + rv = tasks_immed[ list_id ](); // ^XNs + if( rv == ERR_SUCCESS ) + { + tasks_immed[ list_id ] = TSK_IMM_DELETED_; + } + // ǂ^C~Oœ^XN̓o^ƍ̂DIԂłė鎖 + } + DI_wt_chk(); + } + // Xg̃^XNʂs + + // ^XN폜 // + { + u8 i = 0; // Xg̕בւ + u8 j = 1; + + // K i < jAj < TASK_IMMED_RUN_LIST_MAX (łȂƃ^XNӂ) + while( 1 ) + { + if( tasks_immed[ i ] == TSK_IMM_EMPTY_ ) + { + // Olߊ && Xg + // break; + goto imm_list_sort_fin; + } + else if( tasks_immed[ i ] == TSK_IMM_DELETED_ ) + { + for( ; j < TASK_IMMED_RUN_LIST_MAX; j++ ) + { + if( tasks_immed[ j ] == TSK_IMM_DELETED_ ) + { + // ׁiHj폜Ώۂ + // next j + } + else + { + DI_wt_chk(); + if( tasks_immed[ j ] == TSK_IMM_EMPTY_ ) + { + do{ + j --; + tasks_immed[ j ] = TSK_IMM_EMPTY_; + // XgOlߊ + }while( i < j ); + EI(); + goto imm_list_sort_fin; + } + else + { + // Ol߂ׂ^XN‚ + tasks_immed[ i ] = tasks_immed[ j ]; + tasks_immed[ j ] = TSK_IMM_DELETED_; + i ++; + EI(); + } + } + } + } + else + { + // ̃^XNAؗ + } + i ++; + } + } + } + +imm_list_sort_fin: + // ܂łŊSɑOl߂Ă +#ifdef _renge_test_ + /// ق? + { + u8 a,b; + + a = 0; + for( b = 0 ; b < TASK_IMMED_RUN_LIST_MAX; b++ ) + { + if( tasks_immed[ b ] == TSK_IMM_EMPTY_ ) + { + a = 1; + } + else + { + if( a != 0 ) + { + NOP(); // EMPTYɃ^XNdeletedL + } + } + } + } +#else + NOP(); // Ȃ񂩖ƃJ{ +#endif +// } + return( ERR_SUCCESS ); +} diff --git a/snake_branches/3.82_trial_seisan/renge/renge.h b/snake_branches/3.82_trial_seisan/renge/renge.h new file mode 100644 index 0000000..9c7b2e4 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/renge/renge.h @@ -0,0 +1,26 @@ +#ifndef __renge__ +#define __renge__ + +//****************************************************************************** + + + +//****************************************************************************** +#include "renge_defs.h" +#include "renge_task_immediate.h" +// #include "renge_task_interval_run.h" // O狭N֎~I + +//****************************************************************************** +void renge_init(); +void renge_task_immed_init(); +__callt err renge_task_immed_run(); +__callt err renge_task_immed_add( task_status_immed (*p_task_func)() ); +// static err renge_task_immed_del( u8 ); + + +//****************************************************************************** +__callt err renge_task_interval_run(); +extern u8 renge_flg_interval; +extern bit renge_task_interval_run_force; // ^XNstO + +#endif diff --git a/snake_branches/3.82_trial_seisan/renge/renge_defs.h b/snake_branches/3.82_trial_seisan/renge/renge_defs.h new file mode 100644 index 0000000..03c98a6 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/renge/renge_defs.h @@ -0,0 +1,55 @@ +#ifndef __renge_defs__ +#define __renge_defs__ +/****************************************************************************** + Renge Ver.0 (2009/04/09) + 2009- 7k4jhl R.Fujita @ RED.nintendo + + OSɂ͂قljAȈՓIȃ^XNVXeB + Range Typo ł͂ȂłBQłB + + Ȃ Q ͑̂œ{ QQ + ǖɗ–𑐂łB + 傫ĂˁI + ******************************************************************************/ + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef signed short s16; + + +// ************************************ +#define SYS_INTERVAL_TICK 1.953 + + + +// ************************************ +typedef enum _ERR +{ + ERR_SUCCESS = 0, + ERR_ERR +}err; + + +typedef enum _IMMED_TASK_ERR +{ + TSKI_FINISHED = 0, + TSKI_CONTINUE +}IMMED_TASK_ERR; + + + +/************************************** + C^[oN + *************************************/ +typedef void task_status; + + +/************************************** + Ñ^XNXg + p~ɂȂ邩Ȃ + *************************************/ +typedef IMMED_TASK_ERR task_status_immed; + + +#endif diff --git a/snake_branches/3.82_trial_seisan/renge/renge_task_config.rb b/snake_branches/3.82_trial_seisan/renge/renge_task_config.rb new file mode 100644 index 0000000..c2de509 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/renge/renge_task_config.rb @@ -0,0 +1,59 @@ +#!/usr/bin/ruby -Ks + +tasklist = Array.new + + +if( ARGV[0] == nil ) + printf( "t@C renge_tasks.txt gp܂" ) + datfile = "renge_tasks.txt" +else + datfile = ARGV[0] +end + +if( !File.exist?( datfile ) ) + printf("ݒt@C‚܂B") + exit( 1 ) +end + + +setting = File.open( datfile ) + +setting.each{|dat| + dat.chomp! + if( dat != nil ) + tasklist << dat + end +} + +tasklist.each{|dat| + printf( "\n%s" , dat ) +} +printf( "\n----------\n^XN %d \n", tasklist.size ) + + +#----- ÓI^XN̗ ------------------------------------------------------- +conf = File.new( "renge_task_intval.h", "w+" ) + +conf << "/*XNvgɂ鎩łB蓮ŏȂ悢ł*/\n\n" +conf << "#ifndef __renge_task__\n#define __renge_task__\n\n" +conf << "#include \"renge_defs.h\"\n\n" + +conf << "enum {\n " +tasklist.each{|dat| + conf << "TSK_" << dat.upcase << ", " +} +conf << "TSK_LAST \n };\n\n" + + +tasklist.each{|dat| + conf << "extern void tsk_" << dat << "();\n" +} +conf << "\n" + +conf << "const void ( *tasks[ TSK_LAST ] )() = {\n" +tasklist.each{|dat| + conf << " tsk_" << dat << ",\n" +} +conf << " };\n" + +conf << "\n#endif\n" diff --git a/snake_branches/3.82_trial_seisan/renge/renge_task_immediate.h b/snake_branches/3.82_trial_seisan/renge/renge_task_immediate.h new file mode 100644 index 0000000..9ac3bd2 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/renge/renge_task_immediate.h @@ -0,0 +1,25 @@ +#ifndef __tasks__ +#define __tasks__ + +#include "renge_defs.h" + +// ************************************* +#define TASK_IMMED_RUN_LIST_MAX 10 + + +extern task_status_immed tski_do_command0( ); +extern task_status_immed tski_ntr_pmic_comm(); +extern task_status_immed tski_acc_read(); +extern task_status_immed tski_acc_write(); +//extern task_status_immed tski_acc_setup(); // accero.h +extern task_status_immed tski_mcu_reset(); +extern task_status_immed tski_vol_update(); + + +// ************************************* +#define TSK_IMM_EMPTY_ ( void * )( 0x0000 ) +#define TSK_IMM_DELETED_ ( void * )( 0x0001 ) + + + +#endif diff --git a/snake_branches/3.82_trial_seisan/renge/renge_task_intval.h b/snake_branches/3.82_trial_seisan/renge/renge_task_intval.h new file mode 100644 index 0000000..9b0d9ea --- /dev/null +++ b/snake_branches/3.82_trial_seisan/renge/renge_task_intval.h @@ -0,0 +1,37 @@ +/*XNvgɂ鎩łB蓮ŏȂ悢ł*/ + +#ifndef __renge_task__ +#define __renge_task__ + +#include "renge_defs.h" + +enum TSK +{ + TSK_SW, TSK_ADC, TSK_BATT, TSK_LED_POW, TSK_LED_WIFI, TSK_LED_NOTIFY, TSK_LED_CAM, TSK_MISC, TSK_STATUS, TSK_SYS, TSK_LAST + }; + +extern void tsk_sw(); +extern void tsk_adc(); +extern void tsk_batt(); +extern void tsk_led_pow(); +extern void tsk_led_wifi(); +extern void tsk_led_notify(); +extern void tsk_led_cam(); +extern void tsk_misc(); +extern void tsk_status(); +extern void tsk_sys(); + +const void ( *tasks[ TSK_LAST ] )() = { + tsk_sw, + tsk_adc, + tsk_batt, + tsk_led_pow, + tsk_led_wifi, + tsk_led_notify, + tsk_led_cam, + tsk_misc, + tsk_status, + tsk_sys, + }; + +#endif diff --git a/snake_branches/3.82_trial_seisan/renge/renge_tasks.txt b/snake_branches/3.82_trial_seisan/renge/renge_tasks.txt new file mode 100644 index 0000000..73af545 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/renge/renge_tasks.txt @@ -0,0 +1,11 @@ +sw +adc +batt +led_pow +led_wifi +led_notify +led_cam +misc +status +debug +sys diff --git a/snake_branches/3.82_trial_seisan/rtc.c b/snake_branches/3.82_trial_seisan/rtc.c new file mode 100644 index 0000000..dd2d1a9 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/rtc.c @@ -0,0 +1,182 @@ +/* ======================================================== + RTC + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr +#pragma inline + +#endif + +#include "incs.h" + + +#define RTC_DATA_SIZE 7 +// ======================================================== +static u8 rtc_work[RTC_DATA_SIZE]; +static bit rtc_lock; +static bit rtc_dirty; +bit rtc_alarm_dirty; + + +/********************************************//** + ytF̏ + + WX^̓drrbg̃Zbg + ***********************************************/ +void RTC_init( void ) +{ + + if( !RTCEN ) // rbgĂ烊u[g + { + RTCEN = 1; // W[ON + + // RTCݒ + RTCC0 = bits8(0,0,0,0, 1,0,0,0); /* ~A24ԐA32kóu܂ȂvA荞݂Ȃ */ + // (RTCE 0 RCLOE1 RCLOE0 AMPM CT2 CT1 CT0) + RTCC1 = bits8(1,1,0,0, 0,0,0,0); /* A[荞ݗLJn */ + // (WALE WALIE 0 WAFG RIFG 0 RWST RWAIT) + RTCC2 = bits8(1,0,0,0, 0,0,0,0); /* C^[o:32k/2^6=2msARTCDIVo͂Ȃ */ + // (RINTE RCLOE2 RCKDIV 0 0 ICT2 ICT1 ICT0) + + HOUR = 0x00; + MIN = 0x00; + SEC = 0x00; + MONTH = 0x01; + DAY = 0x01; + WEEK = 0x01; // Mon + YEAR = 0x01; + + ALARMWW = 0x7F; + + vreg_ctr[VREG_C_MCU_STATUS] |= REG_BIT_RTC_BLACKOUT; + } + // 荞ݐݒ + RTCIF = 0; + RTCIIF = 0; + RTCMK = 1; /* 荞()֎~ */ + RTCIMK = 0; /* 荞(A[&C^[o) */ + + RTCE = 1; /* Jn */ + + RWAIT = 1; + while( !RWST ) + {;} + RWAIT = 0; + + rtc_lock = false; + rtc_dirty = false; + rtc_alarm_dirty = false; +} + + + +/********************************************//** + RTC A[荞 + ***********************************************/ +__interrupt void int_rtc( ) +{ + RWAIT = 1; + while( !RWST ) + {;} + // tw + if( ( vreg_ctr[VREG_C_RTC_ALARM_DAY] == DAY ) + && ( vreg_ctr[VREG_C_RTC_ALARM_MONTH] == MONTH ) + && ( vreg_ctr[VREG_C_RTC_ALARM_YEAR] == YEAR ) ) + { + set_irq( VREG_C_IRQ1, REG_BIT_RTC_ALARM ); + } + RWAIT = 0; +} + + + +/********************************************//** + RTC ̃[h + + WX^́Asec,min,hour,week,day,month,year ̏ + ***********************************************/ +void rtc_buf_refresh( ) +{ + if( !rtc_lock ) + { + rtc_lock = true; + RWAIT = 1; + while( !RWST ) + {;} + + memcpy( &vreg_ctr[VREG_C_RTC_SEC], &SEC, RTC_DATA_SIZE ); + RWAIT = 0; +// renge_task_immed_add( tski_rtc_close ); + } +} + + + +/********************************************//** + RTC ̃Cg + + set_rtc_close Ƒ΂ŎgĉB + + ‚̓obt@ɃRs[邾ŁA + ۂRTCɃZbĝset_rtc_close()łB + ***********************************************/ +void set_rtc( u8 adrs, u8 data ) +{ + if( !rtc_dirty ) + { + rtc_dirty = true; + memcpy( rtc_work, &SEC, RTC_DATA_SIZE ); +// renge_task_immed_add( tski_rtc_close ); // I2CIɍs + } + rtc_work[adrs] = data; +} + + + +/********************************************//** + KvȂ΁ARTCWX^̍XV + ***********************************************/ +// task_status_immed tski_rtc_close(){ +void rtc_unlock( ) +{ + // [hbN + rtc_lock = false; + + // CgbN + if( rtc_dirty ) + { + rtc_dirty = false; + RWAIT = 1; + while( !RWST ) + {;} + memcpy( &SEC, rtc_work, RTC_DATA_SIZE ); + RWAIT = 0; + } + + // A[Zbg + if( rtc_alarm_dirty ) + { + rtc_alarm_dirty = false; + WALE = 0; + ALARMWM = vreg_ctr[VREG_C_RTC_ALARM_MIN]; + ALARMWH = vreg_ctr[VREG_C_RTC_ALARM_HOUR]; + WALE = 1; + } +} + + + + +/********************************************//** + RTC VXe`bN^C}荞݃xN^ + + 2^6/fXTi1.953125 msj + ***********************************************/ +__interrupt void int_rtc_int( ) +{ +// renge_flg_interval ++; // CNg/fNg߂ĝ DI()sv + renge_flg_interval = 1; // set1߂ĝ DI()sv +} + diff --git a/snake_branches/3.82_trial_seisan/rtc.h b/snake_branches/3.82_trial_seisan/rtc.h new file mode 100644 index 0000000..a203e83 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/rtc.h @@ -0,0 +1,24 @@ +#ifndef __rtc_h__ +#define __rtc_h__ + +// $Id: asdf$ + + +void RTC_init( void ); +void rtc_buf_refresh( ); +void set_rtc( u8 adrs, u8 data ); + +//task_status_immed tski_rtc_close(); +void rtc_unlock( ); + +// ------------------------------------ +#define RTC_32k_on() { /*RCLOE2 = 0;*/ RCLOE0 = 1; /*P1.2 = 0;*/ PM1.2 = 0; } +#define RTC_32k_off() { PM1.2 = 0; RCLOE0 = 0; } +#define RTC_32k_HI_Z() { PM1.2 = 1; } + + +// ------------------------------------ +extern bit rtc_alarm_dirty; + + +#endif diff --git a/snake_branches/3.82_trial_seisan/self_flash.c b/snake_branches/3.82_trial_seisan/self_flash.c new file mode 100644 index 0000000..a662d07 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/self_flash.c @@ -0,0 +1,635 @@ +/* ======================================================== + ȃAbvf[^ + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt + +#endif + +#include "incs_loader.h" + +#include +#include "fsl_user.h" +#include "i2c_ctr.h" +#include "i2c_mcu.h" + +#include "pool.h" +#include "magic.h" + +#include "pm.h" +#include "WDT.h" +#include "util_funcs.h" + + +// ======================================================== +const u8 fsl_fx_MHz_u08 = 8; +const u8 fsl_low_voltage_u08 = 1; + + +// ȃtbVp[^ +#define SAM_BLOCK_SIZE 1024 + // 256oCgȏ͂܂Ƃ߂Ă܂B +#define SELF_UPDATE_BUFF_SIZE 256 +#define SELF_UPDATE_SPLIT_WRITE_NUM ( SAM_BLOCK_SIZE / SELF_UPDATE_BUFF_SIZE ) +#define SAM_WORD_SIZE 4 + +// ubNԍi1ubN1kBj +#define INACTIVE_BOOTSECT_TOP 4 +#define FIRM_TOP 8 +#define FIRM_SIZE 12 +#define ALTERNATE_FIRMTOP 20 + + +#ifdef _MCU_BSR_ +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICAPR0 IICAPR10 +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR1 IICAPR11 +#define IICCTL0 IICCTL01 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#endif + +#ifndef _WIN32 +#define LED_POW1 P4.2 +#define LED_PM_POW1 PM4.2 +#else +#define LED_POW1 mcuRegP[ _P4_2 ] +#define LED_PM_POW1 mcuRegPM[ _P4_2 ] +#endif + +// ======================================================== +static void FSL_Open( void ); +static void FSL_Close( void ); +void firm_restore( ); + +static err my_FSL_Init(); +static err firm_duplicate( u8 block_src, u8 block_dest ); + +#ifdef _DBG_LED_PRINT_ +void alert( u8 ); +void led_print( u8 ); +#else +# define alert( x ) ; +# define led_print( x ) ; +#endif + + +// ======================================================== +extern uni_pool pool; + + +// 0.Dȍ~ VAbvf[^ +// Vt@[͑vH +#define N_MGC_L 0x1FF6 +#define N_MGC_T 0x4FF6 + + + +/********************************************//** + I2CŎMāA + + ݁A + + `FbNOK@@Vt@[ɐ؂ւčċN + + @@@@NG@@ijt@[ɖ߂čċN + + i̊֐͖߂܂j + ***********************************************/ +void firm_update( ) +{ + u8 target_block; + u8 split_write_count; // ubNւ܂܏ރJE^ + + // ւO ///////////////////////////////////// + my_FSL_Init(); + + /* t@[̃obNAbv + JnAhXAݐ̐擪hubNԍh (TCY FIRM_SIZE) + 0x2000 - 0x4FFF + 0x5000 - 0x7FFF (ubN 20 - 31) ɃRs[ + */ + firm_duplicate( FIRM_TOP, + ALTERNATE_FIRMTOP ); + + // SubN폜 ///////////////////////////////////// + // df𔻒肷邽߁AŏɑSNX^ + //iVt@[ƂɎcĂAȑÕt@[̃tb^j + for( target_block = INACTIVE_BOOTSECT_TOP; + target_block < ALTERNATE_FIRMTOP; + target_block ++ ) + { + FSL_Erase( target_block ); + } + + + // ւ /////////////////////////////////////////// + // XgbvRfBV܂ő + // IAX^[gAbv[`ɔ + for( target_block = INACTIVE_BOOTSECT_TOP; + target_block < ALTERNATE_FIRMTOP; + target_block ++ ) + { + u8 my_spd; + +/* łɏĂBłȂƒfꂽƂIĂ邩ʏoȂ +// // Vt@[̈폜 +// FSL_Erase( target_block ); +*/ + // + for( split_write_count = 0; + split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; + split_write_count ++ ) + { + u8* p_buffer = &pool.self_update_work[0]; + u16 buff_written_size = 0; + + WDT_Restart( ); + + // I2C珑݃f[^obt@ɂ߂ + do + { + while( !IICAIF && !SPD ) + {;} + my_spd = SPD; + IICAIF = 0; + *p_buffer = IICA; + WREL = 1; + p_buffer ++; + buff_written_size ++; + } + while( ( buff_written_size != SELF_UPDATE_BUFF_SIZE ) + && !SPD ); + + my_spd += SPD; + + // + // ŌゾƁAS~pfBO邪ʂɂ܂Ȃ + if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE + + split_write_count * SELF_UPDATE_BUFF_SIZE ), + ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ) + + != FSL_OK ) + { + alert(1); + // ݌̃`FbNG[ + // XgA + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // Zbg + // FSL_SwapBootCluster( ); // u[gXbvuɁvċNďoȂ炵 + // ߂ĂȂ // + } + + if( my_spd != 0 ) + { + break; + } + } + + // 1ubN݊Bxt@Cs + if( FSL_IVerify( target_block ) != FSL_OK ){ + alert(2); + // ēx xt@CJԂ_ł... /// ďׂ݂H + // XgA + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // Zbg + // FSL_SwapBootCluster( ); // u[gXbvuɁvċNďoȂ炵 + // ߂ĂȂ // + } + + if( my_spd != 0 ) + { + break; + } + } + + LREL = 1; + + // 񂾃t@[̃`FbN // + { + u8 i; + u8 comp = 0; + + // [_[̃}WbNƁA{̖̃}WbN͓mF + for( i = 0; i < sizeof( __TIME__ ); i++ ) + { + comp += (u8)(( (*( __far u8 * ) ( N_MGC_L + i )) == (*( u8 * ) ( N_MGC_T + i ) )) ? 0 : 1); + } + if( *( __far u8 * )( N_MGC_L +2 ) != ':' ) // ς̂܂ + { + comp ++; + } + + if( comp == 0 ) + { + // OK! + FSL_InvertBootFlag( ); + FSL_SwapBootCluster( ); // ZbgɓBFSL_Close͕sv + } + else + { + // f[^(}WbNio[ĂȂ)G[ + // XgA + alert(3); + + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // Zbg + // FSL_SwapBootCluster( ); // u[gXbvuɁvċNďoȂ炵 + } + // ߂ĂȂ // + } +} + + + + +/********************************************//** +t@[obNAbv̈悩烊XgA܂B + +`FbNAŌ̍ŌŃu[gXbv̂ŁA +ł̓u[gXbv͕svłB + ***********************************************/ +void firm_restore( ) +{ + DBG_LED_on; + LED_PM_POW1 = 0; + + // obNAbv͐H // + { + u16 i; + u8 comp = 0; + + for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 炵 + { + comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_HEAD_BKUP + i ) ) ? 0 : 1; + comp += ( *( u8 * )( MGC_HEAD_BKUP + i ) == *( u8 * )( MGC_FOOT_BKUP + i ) ) ? 0 : 1; + } + if( *( u8 * )( MGC_FOOT_BKUP ) == 0xFF ) + { + comp ++; + } + + if( comp != 0 ) + { + // obNAbv̈ꂽ... + comp = 0; + + // 3.3VオȂƍ + EI( ); + iic_mcu_start( ); + RESET2_ast; + FCRAM_RST_ast; + GYRO_DISABLE(); + PM_LDSW_on(); + wait_ms( 1 + DELAY_PM_TW_PWUP ); + PM_VDD_on( ); + + while(1) + { + WDT_Restart(); + + { + // LED sRsR + comp++; + LED_POW1 = ( comp == 1 || comp == 3 )? 1: 0; + if( comp == 8 ) + { + comp = 0; + } + } + + { + // d{^œdoff + static u8 sw_hold_count; + + if( !SW_POW_n_RAW ) + { + sw_hold_count++; + } + else + { + sw_hold_count = 0; + } + + if( sw_hold_count > 16 ) + { + sw_hold_count = 0; + // doff + PM_LDSW_off( ); + + // pwsw҂ŐQ + KRM = ( KR_SW_POW ); // Mask ł͂ȂAMode + MK0 = 0xFFFF; + MK1 = ~( INT_MSK1_KR ); + MK2L = 0xFF; + + // PU5 ̂܂ + PU7 = bits8(0,0,0,0, 1,0,0,0); // PWSWI + PU20 = bits8(0,0,0,0, 0,0,0,0); // SW_HOME ~ + + STOP( ); + +// mcu_wdt_reset; // [v̂͂悭ȂƎv + +// while(1){ +// NOP(); // Ȃ +// } + } + } + + // EFCg + for( i = 1; i != 0; i++ ) + { + NOP(); + NOP(); + NOP(); + NOP(); + } + } + } + } + + // else{ // obNAbv͐Ă + + while( my_FSL_Init() != ERR_SUCCESS ){ // FSLs悤Ȃ~Ȃ... + // todo gC񐔏H + alert(1); + } + + /* t@[̃XgA + 0x4800 - 0x7FFF (ubN 18 - 27) + 0x2000 - 0x47FF (ubN 8 - 17) փRs[ + */ + if( firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ) != ERR_SUCCESS ) + { + alert(2); + } + DBG_LED_off; + + // todo XgAsALEDƂāAT[rXɂĂ炤H + + FSL_ForceReset(); // ZbgA߂ĂȂ +} + + + +/********************************************//** +tbV̏̂߂̑O + ***********************************************/ +static void FSL_Open( void ) +{ + /* save the configuration of the interrupt controller and set */ +#ifdef FSL_INT_BACKUP + fsl_MK0L_bak_u08 = MK0L; /* if (interrupt backup required) */ + fsl_MK0H_bak_u08 = MK0H; /* { */ + fsl_MK1L_bak_u08 = MK1L; /* */ + fsl_MK1H_bak_u08 = MK1H; /* save interrupt controller */ + fsl_MK2L_bak_u08 = MK2L; /* configuration */ + fsl_MK2H_bak_u08 = MK2H; /* */ + MK0L = FSL_MK0L_MASK; /* */ + MK0H = FSL_MK0H_MASK; /* */ + MK1L = FSL_MK1L_MASK; /* prepare interrupt controller */ + MK1H = FSL_MK1H_MASK; /* for selfprogramming */ + MK2L = FSL_MK2L_MASK; /* */ + MK2H = FSL_MK2H_MASK; /* } */ +#endif + + while( DST1 ){;} // DMA~ + DEN1 = 0; + + MK0 = 0xFFFF; + MK1 = 0xFFFF; + MK2 = 0xFFFF; +/* + LVIM = bits8(0,0,0,0, 0,0,1,0); + LVIS = bits8(0,0,0,0, 1,0,0,0); + LVIM = bits8(1,0,0,0, 0,0,1,0); +*/ + FSL_FLMD0_HIGH; // tbVւ +} + + + +/********************************************//** +tbV̏I + ***********************************************/ +static void FSL_Close( void ) +{ + // nH + + FSL_FLMD0_LOW; // tbVCgveNg + +#ifdef FSL_INT_BACKUP + MK0L = fsl_MK0L_bak_u08; /* do{ */ + MK0H = fsl_MK0H_bak_u08; /* restore interrupt controller */ + MK1L = fsl_MK1L_bak_u08; /* configuration */ + MK1H = fsl_MK1H_bak_u08; /* */ + MK2L = fsl_MK2L_bak_u08; /* */ + MK2H = fsl_MK2H_bak_u08; /* } */ +#endif +} + + + +/********************************************//** +@}CRŃt@[Rs[܂B + + __far u8 * p_rom Rs[̐擪AhX + + block_dest Rs[̐擪ubN + + Rs[ɏ悤my_FSL_Init炩ߎsKv܂B + ***********************************************/ +static err firm_duplicate( u8 block_src, + u8 block_dest ) +{ + u8 target_block; + u8 split_write_count; // ubNւ܂܏ރJE^ + __far u8* p_src = ( __far u8* )( block_src * 0x400 ); + u8 retry_error; + + led_print(1); + + // ݐubN̐JԂ + for( target_block = block_dest; + target_block < ( block_dest + FIRM_SIZE ); + target_block ++ ) + { + led_print(2); + WDT_Restart( ); + // ubN + retry_error = 5 + 1; + while( FSL_BlankCheck( target_block ) != FSL_OK ) + { + led_print(3); + FSL_Erase( target_block ); + if( -- retry_error == 0 ) + { + // tbVH + FSL_Close( ); + return ( ERR_ERR ); // ZbgA݂@ǂȂ邩m + } + } + + led_print(4); + // ݕJԂ + for( split_write_count = 0; + split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; + split_write_count ++ ) + { + u16 buff_written_size; + u8* p_buff; + + // ݃f[^obt@ɂ߂ + buff_written_size = 0; + p_buff = &pool.self_update_work[0]; + do + { + *p_buff = *p_src; + p_src ++; + p_buff ++; + buff_written_size ++; + } + while( buff_written_size != SELF_UPDATE_BUFF_SIZE ); + + // + if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE + + split_write_count * SELF_UPDATE_BUFF_SIZE ), + ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ) + != FSL_OK ) + { + // Jo̓u[g // + FSL_Close( ); + led_print(5); +// while(1){} + return ( ERR_ERR ); + } + } + led_print(6); + + // 1ubN݊Bd`FbNs + while( FSL_IVerify( target_block ) != FSL_OK ) + { + // Jo̓u[g // + led_print(7); + return ( ERR_ERR ); + } + } + return( ERR_SUCCESS ); + +} + + + +/********************************************//** +ƔœtbV̏ + ***********************************************/ +static err my_FSL_Init() +{ + u8 rv; + + RTCE = 0; + + // ւO // + DI( ); + FSL_Open( ); // 荞݋֎~Ȃ + + FSL_Init( &pool.self_update_work[0] ); // CuB荞ݒfl + rv = FSL_ModeCheck( ); // CgveNg`FbNBs邱Ƃl + + return( (err)rv ); +} + + +/********************************************//** +MCUZbg + +system_status.reboot ܂B + ***********************************************/ +task_status_immed tski_mcu_reset() +{ + // ʂɍċN + my_FSL_Init(); + + FSL_ForceReset(); // Zbg + FSL_Close( ); + + // یH // + mcu_wdt_reset; + return( ERR_SUCCESS ); // no reach +} + + + +/********************************************//** +ɃG[ۂLED_łăG[ʒm + +l悤ł͂ȂAIVȂǂŃpX`FbN + +fobKgȂԂȂ̂ LEDprintf fobÔ߁B + ***********************************************/ +#ifdef _DBG_LED_PRINT_ +// P1.5 = led_pow_red_old +void alert( u8 num ) +{ + u8 i; + + while(1) + { + WDT_Restart(); + LED_POW1 = 1; + for( i = 0; i < num; i++ ) + { + DBG_LED_on; + DBG_LED_off; + } + LED_POW1 = 0; + } +} + + +/********************************************//** +ɃG[ۂLED_łăG[ʒmiQj + +l悤ł͂ȂAIVȂǂŃpX`FbN + +fobKgȂԂȂ̂ LEDprintf fobÔ߁B + ***********************************************/ +void led_print( u8 num ) +{ + u8 i; + + DBG_LED_on; + for( i = 0; i < num; i++ ) + { + LED_POW1 = 1; + LED_POW1 = 0; + } + DBG_LED_off; +} +#endif diff --git a/snake_branches/3.82_trial_seisan/self_flash.h b/snake_branches/3.82_trial_seisan/self_flash.h new file mode 100644 index 0000000..768565e --- /dev/null +++ b/snake_branches/3.82_trial_seisan/self_flash.h @@ -0,0 +1,9 @@ +#ifndef _self_flash_h_ +#define _self_flash_h_ + + +void firm_update(); + + +#endif + diff --git a/snake_branches/3.82_trial_seisan/sw.c b/snake_branches/3.82_trial_seisan/sw.c new file mode 100644 index 0000000..19561a8 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/sw.c @@ -0,0 +1,215 @@ +/* ======================================================== +XCb` +EHOME +EPOWER +EWiFi +̊Ď^XN + + $Id$ +======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" + +#include "i2c_twl.h" +#include "i2c_ctr.h" +#include "led.h" +#include "pm.h" +#include "rtc.h" +#include "sw.h" + + +//========================================================= +/* + vreg_ctrǂ݂̂Ńwb_ +#define INTERVAL_TSK_SW +#define CLICK_THRESHOLD + +#define HOLD_THREASHOLD +#define FORCEOFF_THREASHOLD +*/ +#define TIME_MUKAN ( u8)( 300 / INTERVAL_TSK_SW ) +#define TIME_MUKAN_PWSW_RED_TRIAL (u16)( 15000 / INTERVAL_TSK_SW ) // VAhome}XN + +//========================================================= +u16 SW_pow_count; +bit SW_pow_mask; + +static u8 SW_home_count, SW_wifi_count, SW_home_count_rel; +static u8 sw_wifi_mukan_time; + +u16 off_timeout_timer; + +static u16 sw_pwsw_mukan_time; + + + +/********************************************//** + Ԃ𐔂BςȂł0ɖ߂Ȃ + + mask0̎́Ax܂Ŗ + ***********************************************/ +#define count_sw_n( sw, counter, mask ) \ + { \ + if( sw ){ \ + mask = 0; \ + counter = 0; \ + }else{ \ + if( mask != 0 ){ \ + counter = 0; \ + }else{ \ + counter ++; \ + if( counter == 0 ) counter = -1; \ + } \ + } \ + } + + +/********************************************//** + NbN(`^O)BKvɉĊ荞 + ***********************************************/ +#define chk_clicked( button, count, irq_bit_name ) \ + if( !button ) \ + { \ + if( count < CLICK_THRESHOLD ) \ + { \ + count ++; \ + if( count == CLICK_THRESHOLD ) \ + { \ + count ++; \ + set_irq( VREG_C_IRQ0, irq_bit_name ); \ + } \ + } \ + } \ + else \ + { \ + count = 0; \ + } + + + +/********************************************//** + XCb`̊Ď + + @`^O͂˂AAgKȂǂ̌os + ***********************************************/ +void tsk_sw( ) +{ + static u8 task_interval; + + if( system_status.pwr_state == OFF_TRIG ) + { + SW_pow_count = 0; // dɔăNA +// task_interval = 0; + } + + if( system_status.pwr_state != ON_CHECK ) // 莞(PWSW_POWON_TIME)ẐŃvXP[@łȂƃ`^܂肫Ȃ + { + if( task_interval != 0 ) + { + task_interval--; + return; + // ܂ + } + + task_interval = (u8)( INTERVAL_TSK_SW / SYS_INTERVAL_TICK ) -1; // vXP[ɎgĂ܂ˁc + // -1̓|XgfNĝ߂̒ + } + + // 8ms ɂ܂ + switch ( system_status.pwr_state ) + { + case ( ON ): + case ( SLEEP ): + case ( OFF ): + case ( ON_CHECK ): + // @̏ꍇ + if( ! system_status.taikendai ) + { + // dXCb`̊Ď // + if( SW_pow_count == ( TIME_PWSW_CLICK ) ) // NbNԂɓB + { + if( is_wifi_calib_resets_ast ) // wifi Lu[VȂASoCɒʒmoffɑJ + { + system_status.pwr_state = OFF_TRIG; + } + if( SHELL_OPEN ) // PWSW IoĂ֌WŁAuW‚v ANbN͖ + { + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_CLICK ); + } + } + else if( SW_pow_count == ( HOLD_THREASHOLD ) ) // ɓB + { + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_HOLD ); + if( off_timeout_timer == 0 ) // dfJEg_EJnAxȂ悤ɁB + { + off_timeout_timer = vreg_ctr[ VREG_C_OFF_DELAY ] * 16; + } + } + + if( off_timeout_timer != 0 ) // 荞݌A^CAEgŋItB + { + off_timeout_timer --; + if( off_timeout_timer == 0 ) + { + force_off = true; + } + } + + }else{ + // X^hAV + // dXCb`̊Ď // + if( SW_pow_count == ( TIME_PWSW_CLICK ) ) + { + if( sw_pwsw_mukan_time == 0 ) + { + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_CLICK ); + // ȃ^C~OPWSWHOMEj[ɓĂ܂̂邽߂̃}XN^C}[ + sw_pwsw_mukan_time = TIME_MUKAN_PWSW_RED_TRIAL; + } + } + else if( SW_pow_count == ( HOLD_THREASHOLD ) ) + { + force_off = true; + } + + if( sw_pwsw_mukan_time != 0 ) + { + sw_pwsw_mukan_time--; + } + } + + // @Ě䋤 + count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // {^Ԃ̃JEg + + // HOME sw // + chk_clicked( SW_HOME_n, SW_home_count, REG_BIT_SW_HOME_CLICK ); + chk_clicked( !SW_HOME_n, SW_home_count_rel, REG_BIT_SW_HOME_RELEASE ); + + // wifi sw // + /// ňȎȂ̂͂킩Ă邪AsɏoĂ܂sǃXCb`~ + if( sw_wifi_mukan_time != 0 ) + { + sw_wifi_mukan_time--; + } + else + { + chk_clicked( SW_WIFI_n, SW_wifi_count, REG_BIT_SW_WIFI_CLICK ); + if( SW_wifi_count == CLICK_THRESHOLD +1 ) // 蔭I + { + sw_wifi_mukan_time = TIME_MUKAN; + } + } + break; + default: + break; + }// switch() +} + diff --git a/snake_branches/3.82_trial_seisan/sw.h b/snake_branches/3.82_trial_seisan/sw.h new file mode 100644 index 0000000..abe9715 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/sw.h @@ -0,0 +1,20 @@ +#ifndef _sw_ +#define _sw_ + +#include "config.h" + +extern u16 SW_pow_count; +extern bit SW_pow_mask; + +#define INTERVAL_TSK_SW 8 +#define CLICK_THRESHOLD 5 + +#define HOLD_THREASHOLD (u16)( 3000 /INTERVAL_TSK_SW ) +#define TIME_PWSW_CLICK (u8)( 220 /INTERVAL_TSK_SW ) +#define FORCEOFF_THREASHOLD (u8)( 12000 /INTERVAL_TSK_SW /16 ) + + +extern u16 off_timeout_timer; +#define clear_pow_off_countdown(){ off_timeout_timer = 0; force_off = false; } + +#endif diff --git a/snake_branches/3.82_trial_seisan/task_debug.c b/snake_branches/3.82_trial_seisan/task_debug.c new file mode 100644 index 0000000..e5b502c --- /dev/null +++ b/snake_branches/3.82_trial_seisan/task_debug.c @@ -0,0 +1,122 @@ +/* ======================================================== + fobO^XN + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs_loader.h" +//#include "incs.h" +#include "renge\renge.h" +#include "pm.h" +#include "accero.h" + + +// ======================================================== +// 7ZO 4oCg +#define IIC_SLA_DBG_MONITOR 0x44 + + + +#if 0 // fobOj^p^XN + +ӁI@^XNXgOĂ܂̂ŁAgȂ畜ĉI + +/********************************************//** + fobOp^XN + ***********************************************/ +void tsk_debug( ) +{ +// u8 temp; + + /* + if( system_status.pwr_state == ON_TRIG ){ + { + static u8 count = 0; + // fobOLEDi8bitj̏ + temp = iic_mcu_read_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO ); + count ++; + iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, count ); + iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, count ); + } + } + */ + +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_IRQ1 ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, boot_ura ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_SND_VOL ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_3D ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, vreg_ctr[ VREG_C_3D ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_SND_VOL ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_STATUS ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] ); + + /* + { + u8 str[4]; + + if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) ) + { + str[3] = vreg_ctr[ VREG_C_FREE0 ]; + str[2] = vreg_ctr[ VREG_C_FREE1 ]; + str[1] = vreg_ctr[ VREG_C_STATUS ]; + str[0] = vreg_ctr[ VREG_C_RTC_SEC ]; + + str[3] = vreg_ctr[ VREG_C_SND_VOL ]; + str[2] = vreg_ctr[ VREG_C_3D ]; + str[1] = vreg_ctr[ VREG_C_ACC_CONFIG ]; + str[0] = SEC; + iic_mcu_write( IIC_SLA_DBG_MONITOR, 0x03, 4, &str ); + } + } + */ +} + +#endif + + +#if 0 // ^XNЂȌ` +/********************************************//** +^XNЂȌ` + ***********************************************/ +task_interval tsk_hina( ) +{ + switch ( system_status.pwr_state ) + { + case ON_CHECK: + case ON_TRIG: + case ON: + case SLEEP: + case OFF_TRIG: + default: + } + + return; // tic Ă΂邱ƂɂȂ܂ +} + + +// |C^ʼn炤̂͊댯ȋCĂ +/* ̂悤Ɏg + renge_task_immed_add( ^XN֐ւ̃|C^ ); +*/ + +/********************************************//** +^XNЂȌ`(s) + ***********************************************/ +task_status_immed tski_hina( u8 * arg ) +{ + return ( TSKI_FINISHED ); + // TSKI_FINISHED ^XN폜 + // TSKI_CONTINUE ɂȂ񂩊荞݂ȂA[U[ȂAVXe`bN + // Ƃɍēxs +} + + +#endif diff --git a/snake_branches/3.82_trial_seisan/task_misc.c b/snake_branches/3.82_trial_seisan/task_misc.c new file mode 100644 index 0000000..edbecca --- /dev/null +++ b/snake_branches/3.82_trial_seisan/task_misc.c @@ -0,0 +1,429 @@ +/* ======================================================== + ̑Gȃ^XN + ^XN𕪂₷ȂC邪A\[X̖ŕȂ + + $Id: task_misc.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ + +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" +#include "renge\renge.h" +#include "pm.h" + +#include "accero.h" +#include "adc.h" +#include "i2c_mcu.h" +#include "led.h" +#include "vreg_twl.h" + + + +#ifdef _MCU_BSR_ +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR0 IICAPR11 +#define IICAPR1 IICAPR01 +#define IICCTL0 IICCTL10 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#define TRC TRC1 +#define SMC SMC1 +#define DFC DFC1 +#endif + +// ======================================================== +extern void f(); // X^bN̍Ō𓾂 + + +// ======================================================== +bit twl_ver_read; // twl home menuverǂ񂾂݊J[lɊ荞݂邽 +bit going_to_sleep; // SoCAsleepɓʒm炤Bslp_i HԂ0ɂȂ + // X[v畜AłȂȂ̂h + + +// eXgp +bit reserve_pedo_increnent; + + +// ======================================================== +static void update_LED_3D(); +static void check_twl_vol_irq(); + + + +/********************************************//** + PiŃ^XNɂȂGȏ + - xZT荞݂̎肱ڂmF(Ö) + - TWL PM݊WX^ւ݂̏Γǂ݂ɍs + - ݊J[lTWL`[̋Nʒm + - TWL̉ʕω荞݂`FbN + - 3Dv̍XV + - (HAL) vA₷ + - (fobO) SELWDTZbg𔭐 + ***********************************************/ +void tsk_misc( ) +{ + // 荞݂̎肱ڂH + if( ACC_VALID && ( ( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_ACCERO_ERR ) == 0 )) + { + if( renge_task_immed_add( tski_cbk_accero ) == ERR_SUCCESS ){ + // dbg_nop(); + } + } + + if( system_status.pwr_state == ON ) + { + /* ======================================================== + PM݊WX^ւ̏ + |[OőΉ + ======================================================== */ + if( !PM_IRQ_n ) + { + renge_task_immed_add( tski_ntr_pmic_comm ); + // dbg_nop(); + } + + /* ======================================================== + TWL`[NƂCTRm肽炵 + ======================================================== */ + if( twl_ver_read ) + { + twl_ver_read = false; + set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); + } + + // TWL ̉ʕω荞݃`FbN // + check_twl_vol_irq(); + } + + // 3D vXV // + update_LED_3D(); + +#ifdef _ENABLE_HAL_ + // fobOHAL ₷ // + if( reserve_pedo_increnent ) + { + reserve_pedo_increnent = 0; + hosu_increment_if_necessary(); + } +#endif + +#ifdef _ENABLE_PRESS_SEL_TO_WDT_ + if(( system_status.pwr_state == ON ) + || ( system_status.pwr_state == SLEEP )) + { + static u16 timer; + if( !SW_SEL_n ) + { + timer += 1; + if( timer == 2000 ) + { + DI(); + timer = 0; + while(1) + { + NOP(); // ̂WDT + } + } + } + } +#endif + + //. X^bNeXg +// f(); +} + + + +/********************************************//** +TWLVol̂ƁAXC_̑삪obeBO +sN鎖Ah + + TWLł͒ʏ펞A{^8iKBɍ킹Ċ荞݂B + ***********************************************/ +void check_twl_vol_irq() +{ + static u8 vol_level_twl_sent; + static u8 mabiki; + + if( !is_TWL ) + { + return; + // ܂ + } + + if( mabiki != 0 ) + { + mabiki--; + return; + // ܂ + } + + mabiki = 9; // 1t[͊J + if( vol_level_twl != vol_level_twl_sent ) + { + vol_level_twl_sent = vol_level_twl; + set_irq( VREG_C_IRQ2, REG_BIT_SLIDE_VOL_ACROSS_TWL_BOUNDARY ); + } +} + + +/********************************************//** +3DvXV + ***********************************************/ +void update_LED_3D() +{ + if( system_status.pwr_state != ON ) + { + LED_duty_3d = 0; + return; + // ܂ // + } + + if( vreg_ctr[VREG_C_LED_3D] == LED_3D_ILM_OFF ) + { + if( LED_duty_3d != 0 ) + { + LED_duty_3d --; + } + } + else + { + if( LED_duty_3d != vreg_ctr[VREG_C_LED_BRIGHT] ) + { + if( LED_duty_3d < vreg_ctr[VREG_C_LED_BRIGHT] ) + { + LED_duty_3d ++; + } + else + { + LED_duty_3d --; + } + } + } +} + + + + +/********************************************//** + COMMANDWX^ւ̏ + + 0ȂĂ΂܂BPAsv + + - sleep ʒm() + - ZbgnR}h + ***********************************************/ +task_status_immed tski_do_command0( ) +{ + u8 temp_command; + + // command0 {̓dȂ + DI_wt_chk(); + temp_command = vreg_ctr[VREG_C_COMMAND0]; + vreg_ctr[VREG_C_COMMAND0] = 0; + EI(); + + // SLPO(SoC->mcu) 񓯊̂߁ApX[ɂȂĂ܂Amcu SoC̈u + // X[vooASLPIgOoȂB炩ߒʒmĂ炢A + // ^CAEgsB + if( temp_command & REG_BIT_GOING_TO_SLEEP ) + { + going_to_sleep = true; + } + + // ZbgñR}h // + if( ( temp_command & ( REG_BIT_OFF_REQ | REG_BIT_RESET1_REQ | REG_BIT_FCRAM_RESET_REQ | REG_BIT_RESET2_REQ )) != 0x00 ) + { + if( temp_command & REG_BIT_OFF_REQ ) + { + system_status.pwr_state = OFF_TRIG; + } + else + { + if( temp_command & REG_BIT_RESET1_REQ ) + { + PM_reset_ast( ); + RESET2_ast; + FCRAM_RST_ast; + } + if( temp_command & REG_BIT_RESET2_REQ ) + { + RESET2_ast; + if( vreg_twl[ REG_TWL_INT_ADRS_MODE ] == 0 ) + { + FCRAM_RST_ast; // twlntr[hœ삵Ă + } + // TWL[hDS[hւ̐؂ւɃZbg + // IRQǂ܂Ȃꍇ̂TWLWX^ + vreg_twl_init(); + } + if( temp_command & REG_BIT_FCRAM_RESET_REQ ) + { + FCRAM_RST_ast; + } + wait_ms( 5 ); // ԉ҂ + FCRAM_RST_neg; + PM_reset_neg(); + RESET2_neg; + + // CODEC s背WX^ // + codec_reg_init(); + } + } +/* + X[vvɓdOFFEZbgR}h͗܂ + if( vreg_ctr[VREG_C_COMMAND0] != 0 ) + { + return ( TSKI_CONTINUE ); + } +*/ + return ( TSKI_FINISHED ); +} + + + +/* fobOEeXgp ============================== */ +u16 _dbg_rcomp; +extern u8 raw_adc_temperature; + +extern u8 iic_burst_state; +extern bit temp_zone_charge_disable; +extern bit bt_authorized; + + + + +#define KOUMOKU 19 + +static u8 infos_bits[2]; +static u8 infos_temp[5]; + +static const u8 *infos_table[ KOUMOKU ] = { + &infos_temp[0], /* 0 */ + &pmic_version, + (u8*)&battery_manufacturer, + &mgic_version[0], + &mgic_version[1], + &infos_temp[1], /* 5 */ + &raw_adc_temperature, + &infos_temp[2], + &infos_temp[3], + (u8*)&system_status.family, /* 9 */ + &infos_bits[0], /* 10 */ + (u8*)&LED_duty_pow_blu, + (u8*)&LED_duty_3d, + (u8*)&LED_duty_notify_red, + (u8*)&LED_duty_notify_grn, + (u8*)&LED_duty_notify_blu, /* 15 */ + &infos_bits[1], + (u8*)&LED_duty_WiFi, + &infos_temp[4] /* 18 */ + /* ڑƂ KOUMOKU ɒ */ +}; + +/********************************************//** +@fobOpɃXe[^XԂBigXe[^X 0x7Fj + +@Ԓl̓f[^̂ + + oĂ鏇́A + + - 1) vbgtH[ + - 2) PMIC o[W + - 3) dr[J[ + - 4) KXQ[Wo[W + - 5) V + - 6) ( rcomp & 0xFF ) + - 7) raw_adc_temperature + - 8) ( !temp_zone_charge_disable | ( bt_authorized << 1 ) ) + - 9) m点LED̓tJ[H + - 10) system_status.family + ***********************************************/ +u8 extinfo_read(void) +{ + u8 ret = 0xFF; + + /* + * temp͌vZKvȃf[^Bɗ]TȂ̂ŌvZKv + * ϐ́Av/svɊւ炸vZ|V[ + */ + + if( iic_burst_state < KOUMOKU ) + { + infos_temp[0] = system_status.captureBox? ( system_status.is_dev? MODEL_IS_CAPTURE :MODEL_KUC_CAPTURE ) + : ( system_status.is_dev? MODEL_IS_DEBUGGER: (u8)system_status.model ); + infos_temp[1] = (u8)( _dbg_rcomp & 0xFF ); + infos_temp[2] = ( !temp_zone_charge_disable | ( bt_authorized << 1 ) ); + infos_temp[3] = 1; /* dlύXɂ1ŒɂȂ */ + infos_temp[4] = 0 +// | ( PM_EXTDC_n ? REG_BIT_HAL0_PM_EXTDC_n : 0 ) // status0ɂ + | ( BT_IN_CHG_n ? REG_BIT_HAL0_BT_IN_CHG_n : 0 ) + | ( BT_CHG_Ena_n ? REG_BIT_HAL0_RSV_5 : 0 ) // 󂫃rbggp,out pin + | 0 // WL_TX gȂ +// | ( SHELL_OPEN ? REG_BIT_HAL0_SHELL_OPEN : 0 ) // status0ɂ + | ( SW_WIFI_n ? REG_BIT_HAL0_SW_WIFI_n : 0 ) + | ( SW_HOME_n ? REG_BIT_HAL0_SW_HOME_n : 0 ) + | ( SW_POW_n ? REG_BIT_HAL0_SW_POW_n : 0 ); + + infos_bits[0] = (u8)LED_pow_red; + infos_bits[1] = (u8)LED_CAM; + + ret = *infos_table[iic_burst_state]; + +#if 0 +// debug // + /// VXeɋ@펯ʂʼnR‚ + if( iic_burst_state == 9 ) + { + ret = (u8)FAMILY_FLOWER; + } +#endif + iic_burst_state ++; + } + + return ret; +} + + +#ifdef i2c_timeout_test +/********************************************//** +ifobOpjI2C_mcu ɃvgRᔽ(g`)oꂽSLED_Ēʒm + ***********************************************/ +void i2c_mcu_error_monitor() +{ + LED_duty_pow_blu = 0xff; + LED_duty_3d = 0xff; + LED_duty_notify_red = 0xff; + LED_duty_notify_grn = 0xff; + LED_duty_notify_blu = 0xff; + LED_pow_red = 1; + LED_CAM = 1; +} +#endif + diff --git a/snake_branches/3.82_trial_seisan/task_status.c b/snake_branches/3.82_trial_seisan/task_status.c new file mode 100644 index 0000000..0de3bf4 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/task_status.c @@ -0,0 +1,89 @@ +/* ******************************************************** + ꕔ̃Xe[^XWX^XVAKvɉĊ荞݂܂B + + $Id$ +********************************************************* */ + +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs_loader.h" +#include "renge\renge.h" + +#include "pm.h" + +#include "accero.h" +#include "adc.h" +#include "i2c_mcu.h" +#include "led.h" + + +/********************************************//** + Xe[^XWX^́A + - WJ + + Ŋ荞݂KvłΔ܂B + todo: H + ***********************************************/ +void tsk_status( ) +{ + static u8 state_old; // Xe[^Xωo荞 ̈ + u8 diff; + + // WJ`FbN + set_bit_if( SHELL_OPEN, vreg_ctr[VREG_C_STATUS], REG_BIT_ST_SHELL_OPEN ); + + // Xe[^XWX^֌W 荞 // + // pm.c ŁȀōs܂B + // REG_BIT_LCD_ON/OFF + // REG_BIT_BL_ON/OFF + // REG_BIT_BT_DC_CONNECT/DISC + // REG_BIT_BT_CHG_START/STOP + + diff = (u8)( vreg_ctr[VREG_C_STATUS] ^ state_old ); + if( diff != 0 ) + { + state_old = vreg_ctr[VREG_C_STATUS]; + + if( system_status.pwr_state == ON ) + { + if( diff & REG_BIT_BATT_CHARGE ) + { + // [dԔf + if( is_bt_charging ) // set_irqʁXɌĂԕRpNg + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_START ); + } + else + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_STOP ); + } + } + } + + if(( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP ) + ) + { + if( diff & REG_BIT_ST_SHELL_OPEN ) + { + // W̊J‚ + if( is_shell_open ) + { + set_irq( VREG_C_IRQ0, REG_BIT_SHELL_OPEN ); + } + else + { + set_irq( VREG_C_IRQ0, REG_BIT_SHELL_CLOSE ); + } + } + } + } +} + diff --git a/snake_branches/3.82_trial_seisan/task_sys.c b/snake_branches/3.82_trial_seisan/task_sys.c new file mode 100644 index 0000000..ba7733d --- /dev/null +++ b/snake_branches/3.82_trial_seisan/task_sys.c @@ -0,0 +1,685 @@ +/* ======================================================== + task_sys + dĩ^XN + + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" + +#include "i2c_twl.h" +#include "i2c_ctr.h" +#include "led.h" +#include "accero.h" +#include "pm.h" +#include "rtc.h" +#include "sw.h" +#include "adc.h" +#include "self_flash.h" +#include "i2c_mcu.h" +#include "vreg_twl.h" + + +//========================================================= +#define WAIT_SHIROBAKO_POW_CONTROL 240 + + +//========================================================= +extern void nop8(); + + +static void chk_emergencyExit(); +static void force_off_check(); +static void send_getup_to_soc(); +#ifdef _DBG_CHK_OFF_LEAK_ +static void leak_check(); +#endif + + + +//========================================================= +extern bit info_led_off; +extern bit going_to_sleep; +extern bit bt_authorized; + +static u8 timeout_sleep; +extern u8 chg_led_override; + +#ifdef i2c_timeout_test +extern bit i2c_mcu_time_out_error; +#endif + + +//========================================================= +#define PWSW_POWON_TIME (u8)( 20 / SYS_INTERVAL_TICK ) // [ms] // INTERVAL_TSK_SW ŊȂBl珬̂ +#define PWSW_ON_CHECK_TIMEOUT 100 // K donׂ̈ɓdXCb`삳ꂽƂA̎Ԍo߂mcuȓd͂ɖ߂ + + + +/********************************************//** + d̗グX[vȂǂǗ + ***********************************************/ +void tsk_sys( ) +{ + static u8 pwsw_timeout = 0; // d{^`^OB@^CAEg܂łɓdm肵Ȃoffɖ߂ + + hal_update(); + + switch ( system_status.pwr_state ) + { + case ON_CHECK: //------------------------------------------------------- + // dfJEg_E^C}NA + clear_pow_off_countdown(); + + // ̊荞݂HALT(X[v) ^@A_v^L + + // dXCb`HALT // + if( system_status.poweron_reason == RSN_PWSW ) + { + if( PM_EXTDC_n ) + { + // A_v^Ȃ + if( SW_pow_count != 0 ) + { + pwsw_timeout = 0; + } + else + { + pwsw_timeout ++; + } + + if( pwsw_timeout > PWSW_ON_CHECK_TIMEOUT ) + { + SW_pow_count = 0; + system_status.pwr_state = OFF_TRIG; // XCb`̓mCYBQB + renge_task_interval_run_force = true; + return; + } + } + else + { + BT_chk(); + } + + + if( SW_pow_count < PWSW_POWON_TIME ) + { + // ԂZēdonɓBĂȂ + return; + } + } + // else { if( system_status.poweron_reason == RSN_TRIALAc ) d } + + SW_pow_mask = true; // pwswςȂœd/ JԂȂ悤 + + // d // + iic_mcu_start( ); + + bt_force_update = false; + BT_chk(); // @obe̔AdrcIC̐ݒ + +#ifndef _ALLOW_NOBATT_ + if( system_status.model == MODEL_JIKKI_NOBATT ) + { + renge_task_interval_run_force = true; + system_status.pwr_state = OFF_TRIG; + return; + } +#endif + + // cʃ`FbN + BT_get_left(); // ɁABT_chk()sĂKv܂B + if( +// ( vreg_ctr[VREG_C_BT_REMAIN] < 1 ) // Ŕ肷ƓdrقƂǖƂ +// // A_v^ĂNłȂȂႤ + ( vreg_ctr[VREG_C_BT_VOLTAGE] < ( V_TH_ZERO / 256 ) ) // dr + ) + { + // drȂ̂ŋNȂ(d`FbNĂ) + renge_task_interval_run_force = true; + system_status.pwr_state = OFF_TRIG; + return; + } + + // |[g̕ݒ@dOɁB + PM_SW_WIFI_n = 1; + PM_SW_HOME_n_JIKKI = 1; + PM_WL_TX = 1; + PM_SW_SEL_n = 1; + PM_ACCEL_INT1 = 1; + PM_ACC_VALID = 1; + + if( PM_sys_pow_on( ) != ERR_SUCCESS ) + { // dNsƒG[ + renge_task_interval_run_force = true; + system_status.pwr_state = OFF_TRIG; + return; + } + + // ܂ŗƁAdm // + // vAbvon + PU_BT_IN_CHG_n = 1; + PU7 = bits8(0,0,0,1, 1,1,0,1); // 4:SW_WIFI 3:SW_PWSW 2:PM_IRQ 0:PM_EXTDC_n + PU_SW_HOME_n_JIKKI = 1; // SW_HOME + + reset_release(); + + if( system_status.poweron_reason == RSN_PWSW || + system_status.poweron_reason == RSN_TRIAL ) + { + // d{^łon̎́ALED_ + vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO; + } + else + { + // Ƃ肠ALEDԂŋN + vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_OFF; + } + + system_status.pwr_state = ON_TRIG; + + PM_LCD_vcom_set( ); // LCD̑ΌdlȂǏ + + break; + + case ON_TRIG: //------------------------------------------------------- +#ifdef i2c_timeout_test + LED_duty_pow_blu = 0; // debug + LED_duty_3d = 0; + LED_duty_notify_red = 0; + LED_duty_notify_grn = 0; + LED_duty_notify_blu = 0; + LED_pow_red = 0; + LED_CAM = 0; + i2c_mcu_time_out_error = false; +#endif + + /// łׂł́H + // vAbvon + PU_BT_IN_CHG_n = 1; + PU7 = bits8(0,0,0,1, 1,1,0,1); // 4:SW_WIFI 3:SW_PWSW 2:PM_IRQ 0:PM_EXTDC_n + PU_SW_HOME_n_JIKKI = 1; // SW_HOME + + IIC_ctr_Init( ); + IIC_twl_Init( ); + + vreg_twl_init( ); + vreg_ctr_reset( ); + + KRM = bits8(0,0,0,0, 0,0,0,0); + PIF0 = 0; + + system_status.poweron_reason = NONE; + renge_task_interval_run_force = true; + + MK0 = INT_MSK0_RSV; + MK1 = INT_MSK1_RSV; + + iic_mcu_start(); + +// MK2 = ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ ); +// PMK21 = 0; // wifi gȂ + PMK6 = 0; // pm_irq + + // u[gAXe[^X덇킹 + if( system_status.reboot ) + { + u8 bl_status_temp; + + // LCD donH Xe[^X̍XVB + /// t@[XVAKtoffH + if( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ) + { + vreg_ctr[ VREG_C_STATUS ] |= REG_BIT_LCD_POW; + // LCD_AMOL_HV_CTRL = 1; svBt@[XVAsԂ͕ێ̂߁B + } + + // obNCg_ĂH@Xe[^X̍XVB + bl_status_temp = read_pmic( PM_REG_ADRS_BL ); + vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 ); + + // obe{̎ + BT_chk(); + } + + LED_init( ); // reboot́BT_Chk,BT_chkɍs + + system_status.reboot = 0; + system_status.pwr_state = ON; + + // WDTZbgAI2C̏܂Ŋ荞ݕۗ + // قƂ͂ɂׂȂ... + if( ( vreg_ctr[ VREG_C_MCU_STATUS ] & REG_BIT_STATUS_WDT_RESET ) != 0 ) + { + set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET ); + } + + break; + + case ON: //--------------------------------------------- + // PMICɂ鋭df`FbN + // fobKreset1AT[g邱ƂB̂Ƃ͑SZbg + chk_emergencyExit(); + + // SLPĎ + if( going_to_sleep ) // ΂ SLP_REQ ̑Oɗ\ + { + timeout_sleep ++; + if( timeout_sleep == 0 || // I[o[t[ҁBsleepČLjuŋNċC‚Ȃ + ( PIF0 && !SLP_REQ )) // slp荞݂CANĂ܂ + { + PIF0 = 0; + send_getup_to_soc(); + } + if( PIF0 && SLP_REQ ){ + PIF0 = 0; + PM_VDD_ecoMode(); + system_status.pwr_state = SLEEP; + renge_task_interval_run_force = true; + } + } + + // offJEg + force_off_check(); + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) // A_v^玩œdoff + { + if( PM_EXTDC_n ) + { + system_status.pwr_state = OFF_TRIG; + } + } +#endif + + break; + + case SLEEP: //------------------------------------------ + chk_emergencyExit(); + // X[v畜A + if( !SLP_REQ ){ + PM_VDD_normMode(); + wait_ms( 5 ); // tdly_sw + send_getup_to_soc(); + system_status.pwr_state = ON; + } + + force_off_check(); +// leak_check(); + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) // A_v^玩œdoff + { + if( PM_EXTDC_n ) + { + system_status.pwr_state = OFF_TRIG; + } + } + break; // ł悢B +#else + /* FALLTHROUGH */ +#endif + + default: //--------------------------------------- + system_status.pwr_state = OFF_TRIG; // 蓾ȂXe[gBfobOp +// dbg_nop(); + /* FALLTHROUGH */ + + case OFF_TRIG: //--------------------------------------- + // LED҂ + vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ILM_OFF; + vreg_ctr[ VREG_C_LED_WIFI ] = WIFI_LED_OFF; + vreg_ctr[ VREG_C_LED_3D ] = LED_3D_ILM_OFF; + info_led_off = true; + if( LED_duty_pow_blu != 0 ) + { + return; + } + + // dfJEg_E^C}NA + clear_pow_off_countdown(); + + // xZT~ + vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x00; + tski_acc_setup(); + EI(); // DIԂłė̂ŁAI2C_mcu ̂ɕKv + + // ̑ytF~ + LED_stop( ); + IIC_ctr_Stop( ); + IIC_twl_Stop( ); + RTC_32k_off(); + +// dI̊荞݃Zbg +// PWSW KR3 L +// BG24 KR4 +// ӂJ INTP5 ‚L +// ACA_v^ INTP4 A_v^L +// RTC + while( iic_mcu_busy ) + {;} + + // irq}XNݒ + KRM = ( KR_SW_POW ); // Mask ł͂ȂAModeȂ̂B킵 + MK0 = ~( INT_MSK0_EXTDC | INT_MSK0_WDTI ); + MK1 = ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL ); // INT_MSK1_RTCALARM | RTCA[ + MK2L = 0xFF; + + // irqtONA + vreg_ctr[VREG_C_IRQ0] = 0; + vreg_ctr[VREG_C_IRQ1] = 0; + vreg_ctr[VREG_C_IRQ2] = 0; + vreg_ctr[VREG_C_IRQ3] = 0; + + // PU5 ̂܂ + PU7 = bits8(0,0,0,0, 1,0,0,1); // PWSWI,PM_EXTTDC,( IRQ0_deactive(), PM_IRQ_deactive ) + PU_SW_HOME_n_JIKKI = 0; // SW_HOME ~ + + IF0 = 0; + IF1 = 0; + IF2 = 0; + + IRQ0_disable; + + PM_sys_pow_off( ); // dJbgIt + + // |[gނ~[hɁBHłALo͂ɂȂႾ߂ȁB + SW_WIFI_n_RAW = 0; + PM_SW_WIFI_n = 0; + + SW_HOME_n_JIKKI_RAW = 0; + PM_SW_HOME_n_JIKKI = 0; + + WL_TX = 0; + PM_WL_TX = 0; + + SW_SEL_n = 0; + PM_SW_SEL_n = 0; + + ACCEL_INT1 = 0; + PM_ACCEL_INT1 = 0; + ACC_VALID = 0; + PM_ACC_VALID = 0; + + system_status.pwr_state = OFF; + SW_pow_mask = true; + SW_pow_count = 0; + + // HALfobOZbg@YƓdonoȂȂ邱Ƃc + hal_reset(); + /* FALLTHROUGH */ + + case OFF: + // Fł͓d{^d͂܂B + + system_status.poweron_reason = NONE; + pwsw_timeout = 0; + LCD_AMOL_HV_CTRL = 0; // ُIAAt@XLCDpd؂YĂ܂ + + + if( !PM_EXTDC_n + || chg_led_override != 0 ) // ꂪ[ɂȂ܂ő҂ + { + // A_v^L /////////////////////////////// ܂́AA_v^ĂRb͏[dLED_Ă + + // d{^`FbN + system_status.poweron_reason = RSN_PWSW; + system_status.pwr_state = ON_CHECK; + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + // VȂ玩œdē + if( system_status.taikendai ) + { + vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0; + wait_ms(46); // pmic̓dēdl̂ + system_status.poweron_reason = RSN_TRIAL; + system_status.pwr_state = ON_CHECK; + } +#endif + } + else + { + // A_v^Ȃ /////////////////////////////// + + // ȓd͂ֈڍs + iic_mcu_stop( ); + pm_chk_adapter(); + PM_Chg_Stop(); + + bt_force_update = true; + + while( RWST ) + {;} + + // 荞ݑ҂ŐQ // + RTCIMK = 1; // systickpC^[o^C}[荞݃}XN + +#ifdef _DBG_CHK_OFF_LEAK_ + leak_check(); +#endif + CKC = bits8(0,0,0,0, 1,0,0,1); // 4MHzɗƂ(bit0)STOPȂĂ͂ȂȂ + OSMC = bits8(0,0,0,0, 0,0,0,0); // 5MHzȉ[hցB + + if( PM_EXTDC_n_RAW ) // ǂ^C~Oő}N邱ƂBHALʂȂׂioffłj + { + STOP(); + } + + // N // + // N + // EKeyReturn荞݁id{^j + // ERTCA[iݕj + + // NbNA + OSMC = bits8(0,0,0,0, 0,0,0,1); // 8MHz쏀 + renge_flg_interval = 0; + hal_update(); + + CKC = bits8(0,0,0,0, 1,0,0,0); // OSMC.FSEL = 1 3clkȏJ + + // NŔH + if( !PM_EXTDC_n ){ + system_status.pwr_state = OFF; // ĂāAON_CHECKɍs + } +/* // RTCA[B + else if( vreg_ctr[ VREG_C_IRQ1 ] & REG_BIT_RTC_ALARM ) + { + system_status.poweron_reason = RSN_RTC_ALARM; + system_status.pwr_state = ON_CHECK; + } + // else if( ̊荞݂œdon ){ + // 󑼂̗vł͋NȂ + // } +*/ + else // if( !SW_POW_n ) // iȊOȂjd{^ŋN + { + SW_pow_mask = false; + system_status.poweron_reason = RSN_PWSW; + system_status.pwr_state = ON_CHECK; + } + + RTCIMK = 0; // sys tick ^C}[L + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) + { + system_status.pwr_state = OFF_TRIG; + } +#endif + } + } +} + + + +/********************************************//** + PMICdُŎ~߂mF + + ***********************************************/ +static void chk_emergencyExit(){ + static u8 shirobako_power_control_count; + + // wifi W[Lu[V[hreset1牺ĂƂ̓`FbNpX + if( is_wifi_calib_resets_ast ) + { + return; + } + + if( shirobako_power_control_count == 0 ) + { + if( !RESET1_n ) // PM_chk_LDSW() I2C_mgpARXg + { + if( !PM_chk_LDSW() ) + { + // ZbgĂ + /// PMICُIf + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + } + else + { + // ̎d + shirobako_power_control_count = 1; + } + } + } + else + { + if( shirobako_power_control_count == WAIT_SHIROBAKO_POW_CONTROL ) // }WbNio[ + // fobKBreset1܂ł͖ + { + if( RESET1_n ) // ZbglQ[g҂ + { + shirobako_power_control_count = 0; + } + else + { + // nothing to do + } + } + else if( shirobako_power_control_count == 200 ) // * (sys_tick)[ms] + // fobK炵 + { +#ifndef _RVD_ + // ͓d؂肽炵 + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + shirobako_power_control_count = WAIT_SHIROBAKO_POW_CONTROL; +#endif + } + else + { + if( !RESET1_n ) + { + if( shirobako_power_control_count != 255 ) + shirobako_power_control_count ++; + } + else + { + // (TS{[hŎ蓮/fobK)Zbg炵 + send_cmd_pmic( PM_REG_ADRS_BL, 0 ); + vreg_ctr[VREG_C_STATUS] = ( vreg_ctr[VREG_C_STATUS] & bits8(1,0,0,1, 1,1,1,1) ); + vreg_ctr[VREG_C_COMMAND0] |= REG_BIT_RESET1_REQ; + renge_task_immed_add( tski_do_command0 ); + shirobako_power_control_count = WAIT_SHIROBAKO_POW_CONTROL; + } + } + } +} + + + +/********************************************//** + - d{^ + - dr؂ + - dr + + ł̋OFFBƉs\ + ***********************************************/ +static void force_off_check() +{ + if( force_off ) + { + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + } +} + + + +/********************************************//** + SoCN + +@@dʏɖ߂ĂĂʼnB + ***********************************************/ +void send_getup_to_soc() +{ + going_to_sleep = false; + timeout_sleep = 0; +#ifdef _MODEL_CTR_ + SLP_ACK = 1; + nop8(); + SLP_ACK = 0; +#endif +} + + + + +/********************************************//** + ȃAbvf[g firm_update() ĂԁiisrsłȂ̂Łj + + task_status_immed^ Ԃ悤ɂ΂̂ł... + ***********************************************/ +task_status_immed tski_firm_update(){ + firm_update(); + return( ERR_SUCCESS ); +} + + + +#ifdef _DBG_CHK_OFF_LEAK_ +/********************************************//** + pinݒ~X`FbN + ***********************************************/ +static void leak_check() +{ + volatile u8 ports_i[12]; + volatile u8 ports_o[12]; + + ports_i[0] = ( PM0 & PU0 & ~P0 ); // vAbv؂YH + ports_i[1] = ( PM1 & PU1 & ~P1 ); + ports_i[2] = 0; + ports_i[3] = ( PM3 & PU3 & ~P3 ); + ports_i[4] = ( PM4 & PU4 & ~P4 ); + ports_i[5] = ( PM5 & PU5 & ~P5 ); + ports_i[6] = 0; + ports_i[7] = ( PM7 & PU7 & ~P7 ); + ports_i[8] = ( PM12 & PU12 & ~P12 ); + ports_i[9] = ( PM14 & PU14 & ~P14 ); + ports_i[10] = 0; + ports_i[11] = ( PM20 & PU20 & ~P20 ); + + ports_o[0] = ( ~PM0 & P0 ); // H o͂Ă邩 + ports_o[1] = ( ~PM1 & P1 ); + ports_o[2] = ( ~PM2 & P2 ); + ports_o[3] = ( ~PM3 & P3 & ~POM3 ); + ports_o[4] = ( ~PM4 & P4 ); // bit3chg_enȂ̂1ł悢 + ports_o[5] = ( ~PM5 & P5 ); + ports_o[6] = ( ~PM6 & P6 ); + ports_o[7] = ( ~PM7 & P7 ); + ports_o[8] = ( ~PM12 & P12 ); + ports_o[9] = ( ~PM14 & P14 ); + ports_o[10] = ( ~PM15 & P15 ); + ports_o[11] = ( ~PM20 & P20 ); + NOP(); // u[Nu +} +#endif _DBG_CHK_OFF_LEAK_ diff --git a/snake_branches/3.82_trial_seisan/user_define.h b/snake_branches/3.82_trial_seisan/user_define.h new file mode 100644 index 0000000..413773b --- /dev/null +++ b/snake_branches/3.82_trial_seisan/user_define.h @@ -0,0 +1,214 @@ +#ifndef _USER_DEF_ +#define _USER_DEF_ + +// $Id: asdf$ + +#define IIC_T_SLAVEADDRESS 0x4A +#define IIC_C_SLAVEADDRESS 0x4A +#define IIC_C_SLAVEADDRESS_DMY 0x4C + +//#define IIC_SLA_DCP 0x50 + +#define bits8(a,b,c,d,e,f,g,h) ( a<<7 | b<<6 | c<<5 | d<<4 | e<<3 | f<<2 | g<<1 | h ) + +#ifndef _WIN32 +// @‹ + +#ifdef _debug_led_ +/*spflΉȍ~AncłȂȂ̂Ŏg܂ +# define DBG_LED_on { PM2.1 = 0; P2.1 = 1; } +# define DBG_LED_off { P2.1 = 0; } +# define DBG_LED_toggle ( P2.1 ^= 1 ) +# define DBG_LED2_on { PM2.2 = 0; P2.2 = 1; } +# define DBG_LED2_off { P2.2 = 0; } +# define DBG_LED2_toggle ( P2.2 ^= 1 ) +*/ +#else +# define DBG_LED_on ; +# define DBG_LED_off ; +# define DBG_LED_toggle ; +# define DBG_LED2_on ; +# define DBG_LED2_off ; +# define DBG_LED2_toggle ; +#endif // _debug_led_ + +#define IIC_SLA_CODEC 0xA4 +#define IIC_SLA_ACCEL 0x30 // ST LIS331DLH + + +#define SLP_ACK P7.7 + + +// PMx0ŏo̓[h + +// SoC +#define IRQ0_ast { P7.6 = 0; PM7.6 = 0; } // B4 +#define IRQ0_neg { P7.6 = 1; } +#define IRQ0_enable { PM7.6 = 0; } +#define IRQ0_disable { PM7.6 = 1; } +#define IRQ0 ( P7.6 ) + + +// h~ +#define RESET1_n ( P0.0 ) // G7 + +#if 1 // iPM_RESET1gAWiFiW[̃eXg̎͒ +# define RESET1_ast { P0.0 = 0; PM0.0 = 0; } +# define RESET1_neg { PM0.0 = 1; } +#endif + +#define RESET2_ast { P0.1 = 0; PM0.1 = 0; } // F7 +#define RESET2_neg { PM0.1 = 1; } + +#define SLP_REQ P12.0 // H8 + +// CTR,SPFL,SNAKE,܂ʔh@ +#define DEV_DET ( P12 & 0b00000110 ) // [2:1] = D8,C8 +#define DEV_CTR ( 0b00 << 1 ) +#define DEV_SPFL ( 0b01 << 1 ) +#define DEV_SNAKE ( 0b10 << 1 ) +#define DEV_RSV2 ( 0b11 << 1 ) + +// FCRAM +#define FCRAM_RST P3.0 // B6 +#define FCRAM_RST_ast { P3.0 = 0; } +#define FCRAM_RST_neg { P3.0 = 1; } + +// CODEC +#define PM_IRQ_n P7.2 // A3 +// INTP6 + +// PM +#define PM_EXTDC_n_RAW P7.0 // B2 +// INTP7 +//#define BT_TEMP P15.0 // G3(a) +// ANI8 +//#define BT_DET P15.1 // H2(a) +// ANI9 +#define BT_DET_P P1.6 // D4 +#define BT_TEMP_P P1.7 // C4 + + +// SPFL̃At@XLCDŕKvȁ}15V̓dB +#define LCD_AMOL_HV_CTRL P20.2 // F2 + + +// [d(out) +// _łBӁB +#define BT_CHG_ENABLE() ( P4.3 = 0 ) // F6 +#define BT_CHG_DISABLE() ( P4.3 = 1 ) +#define BT_CHG_Ena_n ( P4.3 ) + +// [d(in) +#define BT_IN_CHG_n_RAW P5.1 // B1 +#define PM_BT_IN_CHG_n PM5.1 +#define PU_BT_IN_CHG_n PU5.1 + +#define SW_WIFI_n_RAW P7.4 // C3 +#define PM_SW_WIFI_n PM7.4 +// KR4 +#define SW_POW_n_RAW P7.3 // B3 +// KR3 +#define SW_SEL_n P2.3 // G5 +#define PM_SW_SEL_n PM2.3 +//#define VOL P2.7 // H4(a) +// ANI7 + +#define SW_HOME_n_JIKKI_RAW P20.4 // G2 +#define PM_SW_HOME_n_JIKKI PM20.4 +#define PU_SW_HOME_n_JIKKI PU20.4 + +// INTP22 +#define SW_HOME_n_TSBOARD_RAW P2.0 // TS}U[pull up(P2͓p.u.) // G6 +#define PM_SW_HOME_n_TSBOARD PM2.0 + +// WiFi +#define WL_TX P20.3 // INTP21 // F3 +#define PM_WL_TX PM20.3 // INTP21 + +//#define VOL_P P2.1 // E5 open +//#define VOL_N P2.2 // F5 V + +//#define LED_CAM P1.0 // TO02 // E4 +//#define LED_WIFI P1.1 // TO03 // E3 +//#define LED_NOTIFY P1.3 // TO05 // D3 +//#define LED_3D P5.2 // SLTO TO01 // A2 +//#define LED_POW2 P1.4 // TO06 ( ) // D2 +//#define LED_POW1 P1.5 // TO07 ( ) // D1 +//#define LED_CHARGE P2.4 // H5 + +// P5.3 ɉAP5.5, P140 P141 +// P140o͐pȂ̂... +#define I2C_PU_on() { P14 |= 0x03; PM5.3 = 0; PM3.3 = 0; } // P14[1:0] H6,H7 P5.3,3.3 A1,C5 +#define I2C_PU_off() { PM5.3 = 1; PM3.3 = 1; P14 &= ~0x03; } + +#define GYRO_ENABLE() P5.0 = 0 // C1 +#define GYRO_DISABLE() P5.0 = 1 + +//#define I2C_M_SDA P3.1 // SDA10 // C6 +//#define I2C_M_SCL P3.2 // SCL10 // B5 + +//#define I2C_0_SCL P6.0 // IIC_TWL SCL0 // A7 +//#define I2C_0_SDA P6.1 // SDA0 // A6 + +//#define I2C_1_SCL P20.0 // IIC CTR SCL1 // E1 +//#define I2C_1_SDA P20.1 // SDA1 // F1 + +//#define 32kHz_O P1.2 // RTCCL // E2 +//#define 32k_I1 P12.3 // XT1 // F8 +//#define 32k_I2 P12.4 // XT2 // G8 + +// @AJ@AV䔻ʁB +#define DIPSW ( P4 & 0b00000011 ) // mini cube & \tgEFAfBbvXCb` TOOL0,1B P4.0 L ӁI +#define DIPSW_CTR 0b11 // gp +#define DIPSW_ISDEV 0b00 // KuCBattGaugeŔ +#define DIPSW_TAIKENDAI 0b10 +#define DIPSW_TAIKENDAI_NBD 0b01 + + +#define SHELL_OPEN_RAW P7.1 // INTP5 ӂJ (‚L) // C2 + +#define ACC_VALID P20.5 // H3 +#define PM_ACC_VALID PM20.5 +#define ACCEL_INT1 P2.5 // F4 +#define PM_ACCEL_INT1 PM2.5 + + +#endif // _WIN32 + +// win32 sim‹Ƌ + +#define KR_SW_POW ( 1 << 3 ) +#define KR_SW_WIFI ( 1 << 4 ) + +/////////////////////////////////////////////////////////// +#ifdef _WDT_CHECK_ +# define INT_MSK0_WDTI 1<<15 +#else +# define INT_MSK0_WDTI 0 +#endif + +#define INT_MSK0_IIC_M_DMA 1<<12 +#define INT_MSK0_SHELL 1<<7 +#define INT_MSK0_EXTDC 1<<6 +//#define INT_MSK0_SLP 1<<2 +#define INT_MSK0_RSV ~( INT_MSK0_IIC_M_DMA | INT_MSK0_SHELL | INT_MSK0_EXTDC | INT_MSK0_WDTI ) + +#define INT_MSK1_KR 1<<11 +#define INT_MSK1_RTCINTVAL 1<<10 +#define INT_MSK1_RTCALARM 1<<9 +#define INT_MSK1_ADC 1<<8 +#define INT_MSK1_IIC_CTR 1<<3 +#define INT_MSK1_IIC_MCU 1<<0 +#define INT_MSK1_RSV ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL | INT_MSK1_RTCALARM | INT_MSK1_ADC \ + | INT_MSK1_IIC_CTR | INT_MSK1_IIC_MCU ) + +#define INT_MSK2_WIFI_TX_KE3 1<<4 +#define INT_MSK2L_RSV ~( INT_MSK2_WIFI_TX_KE3 ) + +#define INT_MSK2_IIC_TWL 1<<8 +#define INT_MSK2_WIFI_TX_BSR 1<<10 +#define INT_MSK2_CODEC_PMIRQ 1<<3 +#define INT_MSK2_RSV ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ ) + +#endif // dupe include guard diff --git a/snake_branches/3.82_trial_seisan/util_funcs.c b/snake_branches/3.82_trial_seisan/util_funcs.c new file mode 100644 index 0000000..2edea63 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/util_funcs.c @@ -0,0 +1,65 @@ +/* ======================================================== + util_funcs + + Gȃ[eBeB֐ + + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#pragma opc + +#endif +#include "incs_loader.h" +#include "wdt.h" + + + +/********************************************//** + Pʂ ms + + NOP񂷂Aw莞CPU *L܂* B + + 荞݂ƂƂ̕x܂B + + 덷܂B + ***********************************************/ +void wait_ms( u8 ms ){ + u16 fine; + + WDT_Restart(); + while( ms != 0 ){ + ms--; + fine = 860; + while( fine != 0 ){ + fine --; + } + } +} + + + + +extern unsigned char get_ei(); + +#ifdef _DI_WITH_CHECK_ +/********************************************//** + ł 荞݋֎~ԉ`FbNĂ犄荞݋֎~ɂ + + ]̌ʁAA#ifdef Ń`FbN DI + ***********************************************/ +void DI_wt_chk() +{ + if( !get_ei() ) + { + dbg_nop(); + } + DI(); +} +#endif // _DI_WITH_CHECK_ diff --git a/snake_branches/3.82_trial_seisan/util_funcs.h b/snake_branches/3.82_trial_seisan/util_funcs.h new file mode 100644 index 0000000..4229413 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/util_funcs.h @@ -0,0 +1,16 @@ +#ifndef _util_funcs_h_ +#define _util_funcs_h_ + + +void wait_ms( u8 ); + + +# ifdef _DI_WITH_CHECK_ +void DI_wt_chk(); +# else +# define DI_wt_chk() DI() +# endif /* _DI_WITH_CHECK_ */ + + +#endif + diff --git a/snake_branches/3.82_trial_seisan/voltable.c b/snake_branches/3.82_trial_seisan/voltable.c new file mode 100644 index 0000000..4d2e14a --- /dev/null +++ b/snake_branches/3.82_trial_seisan/voltable.c @@ -0,0 +1,64 @@ +/* ======================================================== + voltable.c + + $Id$ + ======================================================== */ +#include "incs.h" + +#define _10db_ + + + +/********************************************//** + XC_l CODEC ɃZbgہAőVol̊֌W + KɃXP[OKv + + yȂ̂Ńe[u + ***********************************************/ + + + +#ifdef _10db_ +// max -10db +const u8 slider_to_codec[64] = +{ + 127, 126, 125, 124, 122, 121, 120, 119, + 118, 117, 116, 114, 113, 112, 111, 110, + 109, 108, 106, 105, 104, 103, 102, 101, + 100, 98, 97, 96, 95, 94, 93, 92, + 90, 89, 88, 87, 86, 85, 83, 82, + 81, 80, 79, 78, 77, 75, 74, 73, + 73, 72, 71, 70, 69, 67, 66, 65, + 64, 63, 62, 61, 59, 58, 57, 56 + }; +#endif + +#ifdef _15db_ +// max -15db +const u8 slider_to_codec[64] = +{ + 127, 127, 127, 127, 127, 126, 125, 123, + 122, 121, 120, 119, 118, 117, 116, 115, + 114, 113, 112, 110, 109, 108, 107, 106, + 105, 104, 103, 102, 101, 100, 99, 97, + 96, 95, 94, 93, 92, 91, 90, 89, + 88, 87, 86, 85, 84, 83, 82, 81, + 80, 79, 78, 77, 76, 75, 74, 73, + 71, 70, 69, 68, 67, 66, 66, 66 +}; +#endif + +#ifdef _4db_ +// max -4db +const u8 slider_to_codec[64] = +{ + 127, 127, 126, 125, 123, 122, 121, 119, + 118, 117, 115, 114, 112, 111, 110, 108, + 107, 106, 104, 103, 101, 100, 99, 97, + 96, 94, 93, 92, 90, 89, 88, 86, + 85, 83, 82, 81, 79, 78, 77, 75, + 74, 72, 71, 70, 68, 67, 66, 64, + 64, 63, 61, 60, 59, 57, 56, 54, + 53, 52, 50, 49, 48, 46, 44, 44 +}; +#endif diff --git a/snake_branches/3.82_trial_seisan/vreg_ctr.c b/snake_branches/3.82_trial_seisan/vreg_ctr.c new file mode 100644 index 0000000..aae1669 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/vreg_ctr.c @@ -0,0 +1,638 @@ +/* ======================================================== + + CTR MCU I2CWX^ + + $Id$ + ====================================================== */ +#include "incs.h" +#include "vreg_ctr.h" +#include "rtc.h" +#include "led.h" +#include "accero.h" +#include "pm.h" +#include "pool.h" +#include "vreg_twl.h" +#include "sw.h" +#include "WDT.h" + +#include +#include "fsl_user.h" + + + + +extern u8 extinfo_read(); // task_misc.c + +extern u8 iic_burst_state; // o[XgANZX鎞̃JE^ +extern bit info_led_pattern_updated; // m点LED̃p^[擪ɖ߂ + +extern bit pedolog_overflow; +extern bit reserve_pedo_increnent; + + + +// ******************************************************** +u8 vreg_ctr[VREG_C_ENDMARK_]; + +static u8 vreg_free_adrs; // AhXł̂ł΂炭͂ +bit irq_readed; // AAA^̂߁B + + + +// ******************************************************** +extern task_status_immed tski_firm_update(); +extern task_status_immed tski_mcu_reset(); +extern unsigned char get_ei(); + + + +// ******************************************************** +#ifdef _MCU_BSR_ +#define IICAMK IICAMK1 +#endif + + +/********************************************//** + + + [̏l̎w肪KvȃAhX + + }CRZbgɌĂ΂܂ + ***********************************************/ +void vreg_ctr_init( ) +{ + vreg_ctr[ VREG_C_VCOM_T ] = VCOM_DEFAULT_T; + vreg_ctr[ VREG_C_VCOM_B ] = VCOM_DEFAULT_B; + + vreg_ctr[ VREG_C_OFF_DELAY ] = FORCEOFF_THREASHOLD; + + vreg_ctr[ VREG_C_VOL_CAL_MIN ] = 0x36; + vreg_ctr[ VREG_C_VOL_CAL_MAX ] = 0xFF - 0x36; +} + + +/********************************************//** + lZbg + + VXeZbgɌĂ΂܂ + ***********************************************/ +void vreg_ctr_reset( ) +{ + vreg_ctr[ VREG_C_MCU_VER_MAJOR ] = MCU_VER_MAJOR | 0x10; + vreg_ctr[ VREG_C_MCU_VER_MINOR ] = MCU_VER_MINOR; + +// vreg_ctr[ VREG_C_STATUS ] &= bits8(0,0,0,1, 1,1,1,1); + vreg_ctr[ VREG_C_LED_BRIGHT ] = 0xFF; + vreg_ctr[ VREG_C_LED_POW ] = 0; + vreg_ctr[ VREG_C_LED_WIFI ] = 0; + vreg_ctr[ VREG_C_LED_CAM ] = 0; + vreg_ctr[ VREG_C_LED_3D ] = 0; + { + u8 i; + for( i = 0; i < sizeof( uni_info_LED ); i++ ) + { + info_LED.bindata[ i ] = 0; + } + } + + vreg_ctr[ VREG_C_WIFI_CALIB ] = 0; + // ł̂͋Cc + RTC_32k_on(); + RESET1_neg; + RESET2_neg; + FCRAM_RST_neg; +} + + + +/********************************************//** + I2CzWX^ɏ܂B + + @ adrs ͓AhX + + @ȂAhXɃANZXꍇA܂B + + 񂾌ʁAI2C_mcuʐMꍇArenge_task_immed_add() + gpȂƁAI2C_mcugpŃG[IꍇɃgC܂B + ***********************************************/ +void vreg_ctr_write( u8 adrs, u8 data ) +{ + switch ( adrs ) + { + + case VREG_C_COMMAND0: + if( data != 0 ) + { + renge_task_immed_add( tski_do_command0 ); + vreg_ctr[ VREG_C_COMMAND0 ] |= data; + } + break; + + case VREG_C_COMMAND2: + // 炩̊荞݂҂ĂȂłB #--) ̂߂̊荞݂ + // td + if(( data & REG_BIT_CMD_LCD_ON ) != 0 ) + { + renge_task_immed_add( tski_PM_LCD_on ); + } + else if(( data & REG_BIT_CMD_LCD_OFF ) != 0 ) + { + renge_task_immed_add( tski_PM_LCD_off ); + } + + // obNCgݒ + /// ̂Ƃ낳ɍׂ͕Ȃǁc + if(( data & REG_BITS_CMD_BL ) != 0 ) + { + renge_task_immed_add( tski_PM_BL_set ); + vreg_ctr[adrs] = (u8)( data & REG_BITS_CMD_BL ); + } + break; + + case VREG_C_COMMAND1: + if( data != 0 ) + { + // u8 temp; ԕϐg΂łȂ... + // TWLɊ荞݂ + /// ۂɊ荞݂̂SoC + /// rbg̕тႤʓ| + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] = ( ( data & REG_BIT_SEND_TWL_PWSW_DET ) != 0 ) ? REG_BIT_TWL_IRQ_PWSW_DET : 0x00; //pwsw_det + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_RESET_DET ) != 0 ) ? REG_BIT_TWL_IRQ_RESET : 0x00; //reset_req + + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_OFF_DET ) != 0 ) ? REG_BIT_TWL_IRQ_OFF : 0x00; //off_req + + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_BATT_LOW ) != 0 ) ? REG_BIT_TWL_IRQ_BT_LOW : 0x00; //batt_low + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_BATT_EMPTY ) != 0 ) ? REG_BIT_TWL_IRQ_BT_EMPTY : 0x00; //batt_empty + + if(( data & REG_BIT_SEND_TWL_VOL_CLICK ) != 0 ) + { + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= REG_BIT_TWL_IRQ_VOL_CHANGE; //vol_changed + } + } + break; + + case VREG_CX_FREE_DATA: + if( vreg_free_adrs < VREG_C_FREE_SIZE ) + { + pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ] = data; + vreg_free_adrs ++; + } + else + { + dbg_nop(); + } + break; + + case VREG_CX_FREE_ADRS: + vreg_free_adrs = data; + break; + + case VREG_C_LED_POW: + if( iic_burst_state == 0 ) + { + vreg_ctr[ VREG_C_LED_POW ] = data; + iic_burst_state ++; + } + else if( iic_burst_state < 5 ) + { + led_red_batt_empty.dats[ iic_burst_state -1 ] = data; + iic_burst_state ++; + } + break; + + case VREG_C_LED_WIFI: + case VREG_C_LED_CAM: + case VREG_C_LED_3D: + vreg_ctr[adrs] = (u8)( data & 0x0F ); + break; + + case VREG_C_LED_NOTIFY_DATA: + if( iic_burst_state < sizeof( uni_info_LED ) ) + { + if(( iic_burst_state == 1 ) && ( data == 0 )) // fade_time == 0 ֎~ + { + data = 1; + } + info_LED.bindata[ iic_burst_state ] = data; + iic_burst_state ++; + if( iic_burst_state > 4 ) // p^[1ł + { + info_led_pattern_updated = true; + } + } + break; + + case VREG_C_MCU_STATUS: +// vreg_twl[ REG_TWL_INT_ADRS_MODE ] = (u8)( ( data >> 6 ) & 0x03 ); Rł悢B̑胊ZbgŃNA + vreg_ctr[ VREG_C_MCU_STATUS ] &= data; // bitNA͂邪Zbg͂ȂB + // ̕twlWX^~[͓ǂݏoꎞɍ + break; + + case VREG_C_VCOM_T: + case VREG_C_VCOM_B: + renge_task_immed_add( tski_vcom_set ); + vreg_ctr[adrs] = data; + break; + + case VREG_C_DBG03: + if( ( vreg_ctr[VREG_C_DBG01] == 'j' ) + && ( vreg_ctr[VREG_C_DBG02] == 'h' ) + && ( data == 'l' ) ) + { + renge_task_immed_add( tski_firm_update ); + IICAMK = 1; + } + vreg_ctr[ VREG_C_DBG03 ] = data; + break; + + /// 񓯊œĂ邽߂ł͏ȂB + // \񂷂邾stopŏ + case VREG_C_RTC_SEC: + case VREG_C_RTC_MIN: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x7F ); + break; + + case VREG_C_RTC_DAY: + case VREG_C_RTC_HOUR: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x3F ); + break; + + case VREG_C_RTC_YOBI: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x07 ); + break; + + case VREG_C_RTC_MONTH: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x1F ); + break; + + case VREG_C_RTC_YEAR: + set_rtc( adrs - VREG_C_RTC_SEC, data ); + break; + + case VREG_C_RTC_COMP: + WDT_Restart(); + while(1) + { + RWAIT = 1; + while( !RWST ){} + if( SEC != 0 ) + { + break; + } + RWAIT = 0; + } + SUBCUD = data; + RWAIT = 0; + vreg_ctr[ VREG_C_RTC_COMP ] = data; + break; + + case VREG_C_RTC_ALARM_MIN: + rtc_alarm_dirty = true; + vreg_ctr[ VREG_C_RTC_ALARM_MIN ] = (u8)( data & 0x7F ); + break; + + case VREG_C_RTC_ALARM_HOUR: + rtc_alarm_dirty = true; + vreg_ctr[ VREG_C_RTC_ALARM_HOUR ] = (u8)( data & 0x3F ); + break; + + // ł悢 + case VREG_C_RTC_ALARM_DAY: + vreg_ctr[ VREG_C_RTC_ALARM_DAY ] = (u8)( data & 0x3F ); + break; + + case VREG_C_RTC_ALARM_MONTH: + vreg_ctr[ VREG_C_RTC_ALARM_MONTH ] = (u8)( data & 0x1F ); + break; + + case VREG_C_ACC_CONFIG: + renge_task_immed_add( tski_acc_setup ); + vreg_ctr[ VREG_C_ACC_CONFIG ] = data; + break; + + case VREG_C_ACC_R_ADRS: + renge_task_immed_add( tski_acc_read ); + vreg_ctr[ VREG_C_ACC_R_ADRS ] = data; + break; + + case VREG_C_ACC_W_BUF: + renge_task_immed_add( tski_acc_write ); + vreg_ctr[ VREG_C_ACC_W_BUF ] = data; + break; + + case VREG_C_ACC_HOSU_SETTING: + if( ( data & 0x01 ) != 0 ) + { + clear_hosu_hist(); // NA + } + break; + + case VREG_C_WIFI_CALIB: + if( data & REG_BIT_WIFI_CALIB_32K_HI_Z ) + { + RTC_32k_HI_Z(); + } + else{ + RTC_32k_on(); + } + if( data & REG_BIT_WIFI_CALIB_RSTS_AST ) + { + RESET1_ast; + // RESET2_ast; RESET1̂݁B + // FCRAM_RST_ast; + } + else{ +/* + SoC ~܂Ă܂̂łɗȂ + RESET1_neg; + RESET2_neg; + FCRAM_RST_neg; +*/ + } + vreg_ctr[ VREG_C_WIFI_CALIB ] = data; + break; + + case VREG_C_COMMAND3: + switch ( data ) + { +#ifdef _ENABLE_COMMAND3_ + case 'r': + // 荞݃[`FSLCuĂԂ̂͋֎~ + // }CRċNB@WX^ނB + renge_task_immed_add( tski_mcu_reset ); + break; + + case 'w': + // WDTōċNieXgj +// mcu_wdt_reset; // ̃R}hgӖȂłI + while(1) + { + dbg_nop(); + } + break; +#endif //_ENABLE_COMMAND3_ + +#ifdef _ENABLE_HAL_ + case 'p': + reserve_pedo_increnent = 1; + // ő₷ɂ̓X^bNȂBŗ\̂݁Atask_miscŏ +// hosu_increment_if_necessary(); // A + break; +#endif //_ENABLE_HAL_ + + } +// vreg_ctr[ VREG_C_COMMAND3 ] = data; // KvȂ + break; + + case VREG_C_RBR_CONTROL: +// vreg_ctr[ VREG_C_RBR_CONTROL ] = data; // todo debug u[N|Cgu߁BAt[WX^ + break; + + + // read only ////////////////////////////////////////// + case VREG_C_MCU_VER_MAJOR: + case VREG_C_MCU_VER_MINOR: + case VREG_C_3D: // ɃtbV + case VREG_C_SND_VOL: // ɃtbV + case VREG_C_BT_TEMP: // ɃtbV + case VREG_C_BT_REMAIN: // ɃtbV + case VREG_C_BT_REMAIN_FINE: // ɃtbV + case VREG_C_BT_VOLTAGE: // ɃtbV + case VREG_C_STATUS_1: // KɃtbV + case VREG_C_STATUS: // KɃtbV + case VREG_C_IRQ0: // ̂‚łɊ荞݋NĂقȂ... + case VREG_C_IRQ1: + case VREG_C_IRQ2: + case VREG_C_IRQ3: + case VREG_C_IRQ4: + case VREG_C_LED_NOTIFY_FLAG: // tbV + case VREG_C_RTC_SEC_FINE_L: // tbV + case VREG_C_RTC_SEC_FINE_H: // tbV + // VREG_C_ACC_RESERVE, // NȂ + // VREG_C_ACC_HOSU_HIST = 0x4F, + case VREG_C_ACC_XH: // tbV + case VREG_C_ACC_XL: + case VREG_C_ACC_YH: + case VREG_C_ACC_YL: + case VREG_C_ACC_ZH: + case VREG_C_ACC_ZL: +// dbg_nop(); + // return( ERROR ) + break; + + case VREG_C_ACC_HOSU_L: // ĂǁAfobOpB(AhX0x4B == mcu sla(r)) +// dbg_nop(); + /* FALLTHROUGH */ + + // ʂɏ邾 ///////////////////////////////// + default: + /* + case VREG_C_IRQ_MASK0: + case VREG_C_IRQ_MASK1: + case VREG_C_IRQ_MASK2: + case VREG_C_IRQ_MASK3: + case VREG_C_IRQ_MASK4: + case VREG_C_DBG01: + case VREG_C_DBG02: + case VREG_C_LED_BRIGHT: + case VREG_C_ACC_HOSU_L: + case VREG_C_ACC_HOSU_M: + case VREG_C_ACC_HOSU_H: + case VREG_C_ACC_HOSU_HOUR_BOUNDARY: + case VREG_C_FREE_ADRS: + case VREG_C_RTC_ALARM_YEAR: + case VREG_C_ACC_W_ADRS: + case VREG_C_OFF_DELAY: + case VREG_C_HAL_OVW_CONT0: + case VREG_C_HAL_OVW_DAT0: + case VREG_C_HAL_OVW_CONT1: + case VREG_C_HAL_OVW_DAT1: + */ + if( adrs < VREG_C_ENDMARK_ ) + { + vreg_ctr[adrs] = data; + break; + } + else + { +// dbg_nop(); // `AhXɏ@Ȃ񂩃oOĂȂH + // return( ERROR ) + break; + } + } +// return( SUCCESS ) + return; +} + + + +/********************************************//** + I2CzWX^ǂ݂܂B + + ߂F xx f[^ + + ӁF̃AhX̏ŌĂ΂ ̂ŁA + [hꂽNAȂǂ͋C‚ + + ( vreg_ctr_after_read( u8 adrs ) ) + ***********************************************/ +u8 vreg_ctr_read( u8 adrs ) +{ + static u16 rsub_temp; + u8 temp; + + // RTC͓ǂݏorɌJオ̂邽 + if( ( VREG_C_RTC_SEC <= adrs ) && ( adrs <= VREG_C_RTC_YEAR ) ) + { + rtc_buf_refresh( ); + } + else if( adrs == VREG_C_MCU_STATUS ) + { + return( ( vreg_ctr[ VREG_C_MCU_STATUS ] & 0x03 ) | + ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x03 ) << 6 ) | // sys_mode + ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 ) >> 2 )); // vol32 + } + else if( adrs == VREG_C_RTC_SEC_FINE_L ) + { + rsub_temp = RSUBC; + return( (u8)( rsub_temp & 0xFF ) ); + } + else if( adrs == VREG_C_RTC_SEC_FINE_H ) + { + return( (u8)( ( rsub_temp >> 8 ) & 0xFF ) ); + } +/* + // debug I + else if( adrs == VREG_C_IRQ_MASK0 ) + { + return( vreg_ctr[ VREG_C_IRQ_MASK0 ] & 0x7F ); // `MSB0B1ȂʐMG[ + } +*/ + else if( adrs == VREG_C_ACC_HOSU_HIST ) + { + return( hosu_read() ); + } + else if( adrs == VREG_CX_FREE_DATA ) + { + if( vreg_free_adrs >= VREG_C_FREE_SIZE ) + { + temp = 0x00; + } + else + { + temp = pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ]; + // vreg_free_adrs ++; // ʼnZĂ܂ƃCfbNX + } + return( temp ); + } + else if( adrs == VREG_CX_INFO ) + { + return( extinfo_read() ); + } + else if( adrs == VREG_C_ACC_HOSU_SETTING ) + { + if( pedolog_overflow ) + { + return( 0x10 ); + } + else + { + return( 0 ); + } + } + + if( adrs >= VREG_C_ENDMARK_ ) + { + // VREG_C_INFO > VREG_C_ENDMARK_ Ȃ̂łƂ + return( 0xFF ); + } + return ( vreg_ctr[adrs] ); +} + + +/********************************************//** + I2CzWX^ǂ܂ĉ郌WX^ + ***********************************************/ +void vreg_ctr_after_read( u8 adrs, u8 data ) +{ + // 荞݃tO̓[hŃNA + switch( adrs ) + { + case VREG_C_IRQ0: + case VREG_C_IRQ1: + case VREG_C_IRQ2: + case VREG_C_IRQ3: + case VREG_C_IRQ4: + DI_wt_chk(); + vreg_ctr[ adrs ] ^= data; + EI(); + irq_readed = true; + break; + + case VREG_CX_FREE_DATA: + vreg_free_adrs ++; + break; + + default: + break; + } +} + + + + + + +/********************************************//** + 荞݂ + + - @}XNĂAtOuĂȂvA荞ݓȂB + + - @荞݂AǂݏoOɃ}XNƂ́ASoC̏L[ɂ + IRQǂރ^XNςł̂ŁAǂ݂ɂ͗B + + @ƁAÔ߁A}XNƂ͋ǂ݂Ă炤B + + łDĨ`FbNsvB + + @DIɗ̂I2C_twlARTC_A[B̒ŖڒEIĎgpȂ + ***********************************************/ +void set_irq( u8 irqreg, u8 irq_flg ) +{ + u8 tot; +//0 u8 ei_orig; // EItOۑ + + if(( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP )) + { +/*0 łDIԂȂPAKvȂ + ei_orig = get_ei(); + + //. debug + if( !ei_orig ) + { + dbg_nop(); + } + + DI_wt_chk(); +*/ + DI(); + if( ( vreg_ctr[ irqreg + 8 ] & irq_flg ) == 0 ) + { + vreg_ctr[ irqreg ] |= irq_flg; + IRQ0_neg; // uグ... +//0 if( ei_orig ) + { + EI(); + } + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} // O.D.Ȃ̂łƂ̂҂ IRQ_mcu LɔĂƍ(•s) + IRQ0_ast; // ƂBiGbW荞ׁ݂̈j + } +//0 if( ei_orig ) + { + EI(); + } + } +} + diff --git a/snake_branches/3.82_trial_seisan/vreg_ctr.h b/snake_branches/3.82_trial_seisan/vreg_ctr.h new file mode 100644 index 0000000..00c2140 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/vreg_ctr.h @@ -0,0 +1,327 @@ +#ifndef __vreg_ctr__ +#define __vreg_ctr__ +/* + + + $Id$ +*/ + +#include "config.h" + +// VREG_C_MCU_STATUS +// bit[7.6] twl.sys_mode[1.0] ctr珑ȂAfcr_resetɓKɃZbg +// bit[5] V [7] ctr珑ȂAfcr_resetɓKɃZbg +#define REG_BIT_STATUS_WDT_RESET ( 1 << 1 ) +#define REG_BIT_RTC_BLACKOUT ( 1 << 0 ) + + +// VREG_C_STATUS, +#define REG_BIT_LCD_POW ( 1 << 7 ) +#define REG_BIT_BL_U ( 1 << 6 ) +#define REG_BIT_BL_L ( 1 << 5 ) +#define REG_BIT_BATT_CHARGE ( 1 << 4 ) +#define REG_BIT_POW_SUPPLY ( 1 << 3 ) +// gp ( 1 << 2 ) +#define REG_BIT_ST_SHELL_OPEN ( 1 << 1 ) +// gp ( 1 << 0 ) + + +// VREG_C_STATUS_X +// gp ( 1 << 6 ) +// gp ( 1 << 5 ) +#define REG_BIT_WIFI_TX ( 1 << 4 ) +// twl bl ̃~[[1: ( 1 << 3 ) +// 0]( 1 << 2 ) +#define REG_BIT_ACCERO_ERR ( 1 << 1 ) +#define REG_BIT_MGIC_ERR ( 1 << 0 ) + +#define REG_BIT_MASK_STATUS1_NTR_PM_REG 0x0C + + +// VREG_C_IRQ0 +#define REG_BIT_IRQ_WDT_RESET ( 1 << 7 ) +#define REG_BIT_SHELL_OPEN ( 1 << 6 ) +#define REG_BIT_SHELL_CLOSE ( 1 << 5 ) +#define REG_BIT_SW_WIFI_CLICK ( 1 << 4 ) +#define REG_BIT_SW_HOME_RELEASE ( 1 << 3 ) +#define REG_BIT_SW_HOME_CLICK ( 1 << 2 ) +#define REG_BIT_SW_POW_HOLD ( 1 << 1 ) +#define REG_BIT_SW_POW_CLICK ( 1 << 0 ) + +// VREG_C_IRQ1 +#define REG_BIT_BT_CHG_START ( 1 << 7 ) +#define REG_BIT_BT_CHG_STOP ( 1 << 6 ) +#define REG_BIT_BT_REMAIN ( 1 << 5 ) +#define REG_BIT_ACC_DAT_RDY ( 1 << 4 ) +#define REG_BIT_ACC_ACK ( 1 << 3 ) +#define REG_BIT_RTC_ALARM ( 1 << 2 ) +#define REG_BIT_BT_DC_CONNECT ( 1 << 1 ) +#define REG_BIT_BT_DC_DISC ( 1 << 0 ) + +// VREG_C_IRQ2 +#define REG_BIT_TWL_VER_READ ( 1 << 7 ) +//#define REG_BIT_TWL_SNDVOL_CHANGE ( 1 << 6 ) p~ +#define REG_BIT_SLIDE_VOL_ACROSS_TWL_BOUNDARY ( 1 << 6 ) +#define REG_BIT_TWL_BL_U_ON ( 1 << 5 ) +#define REG_BIT_TWL_BL_U_OFF ( 1 << 4 ) +#define REG_BIT_TWL_BL_L_ON ( 1 << 3 ) +#define REG_BIT_TWL_BL_L_OFF ( 1 << 2 ) +#define REG_BIT_TWL_OFF_REQ ( 1 << 1 ) +#define REG_BIT_TWL_RESET_REQ ( 1 << 0 ) + +// VREG_C_IRQ3 +#define REG_BIT_BL_U_ON ( 1 << 5 ) +#define REG_BIT_BL_U_OFF ( 1 << 4 ) +#define REG_BIT_BL_L_ON ( 1 << 3 ) +#define REG_BIT_BL_L_OFF ( 1 << 2 ) +#define REG_BIT_LCD_ON ( 1 << 1 ) +#define REG_BIT_LCD_OFF ( 1 << 0 ) + + +// ̂ǂ... +//#define REG_BIT_VR_3D_CHANGE ( 1 << 7 ) + + + +// VREG_C_COMMAND0 +//#define REG_BIT_CMD_LCD_ON ( 1 << 7 ) +//#define REG_BIT_CMD_LCD_OFF ( 1 << 6 ) +//#define REG_BIT_CMD_BL_ON ( 1 << 5 ) +//#define REG_BIT_CMD_BL_OFF ( 1 << 4 ) +#define REG_BIT_GOING_TO_SLEEP ( 1 << 4 ) +#define REG_BIT_FCRAM_RESET_REQ ( 1 << 3 ) +#define REG_BIT_RESET2_REQ ( 1 << 2 ) +#define REG_BIT_RESET1_REQ ( 1 << 1 ) +#define REG_BIT_OFF_REQ ( 1 << 0 ) + +// VREG_C_COMMAND1 (TWLɊ荞݂) +// gp ( 1 << 7 ) +// gp ( 1 << 6 ) +#define REG_BIT_SEND_TWL_VOL_CLICK ( 1 << 5 ) +#define REG_BIT_SEND_TWL_BATT_EMPTY ( 1 << 4 ) +#define REG_BIT_SEND_TWL_BATT_LOW ( 1 << 3 ) +#define REG_BIT_SEND_TWL_OFF_DET ( 1 << 2 ) +#define REG_BIT_SEND_TWL_RESET_DET ( 1 << 1 ) +#define REG_BIT_SEND_TWL_PWSW_DET ( 1 << 0 ) + +// VREG_C_COMMAND2 t֌W +#define REG_BIT_CMD_BL_U_ON ( 1 << 5 ) +#define REG_BIT_CMD_BL_U_OFF ( 1 << 4 ) +#define REG_BIT_CMD_BL_L_ON ( 1 << 3 ) +#define REG_BIT_CMD_BL_L_OFF ( 1 << 2 ) +#define REG_BIT_CMD_LCD_ON ( 1 << 1 ) +#define REG_BIT_CMD_LCD_OFF ( 1 << 0 ) +#define REG_BITS_CMD_BL ( REG_BIT_CMD_BL_U_ON | REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_ON | REG_BIT_CMD_BL_L_OFF ) + + +// TWLɒʒmIRQWX^ +#define REG_BIT_TWL_IRQ_PWSW_DET 0x08 +#define REG_BIT_TWL_IRQ_RESET 0x01 +#define REG_BIT_TWL_IRQ_OFF 0x02 +#define REG_BIT_TWL_IRQ_BT_LOW 0x20 +#define REG_BIT_TWL_IRQ_BT_EMPTY 0x10 +#define REG_BIT_TWL_IRQ_VOL_CHANGE 0x40 + + +// CODECPMIC NTR ̑㗝WX^ +#define REG_BIT_TWL_REQ_OFF ( 1 << 6 ) +#define REG_BIT_TWL_REQ_BL_U ( 1 << 3 ) +#define REG_BIT_TWL_REQ_BL_L ( 1 << 2 ) +#define REG_BIT_TWL_REQ_RESET ( 1 << 0 ) + + +// VREG_C_LED_NOTIFY_FLAG +#define REG_BIT_IN_LOOP ( 1 << 0 ) + +// RBR control (0x57) +#define REG_BIT_FLIGHT ( 1 << 1 ) +#define REG_BIT_RESET_n ( 1 << 0 ) + + +// HAL bitfields 0 +#define REG_BIT_HAL0_PM_EXTDC_n ( 1 << 7 ) +#define REG_BIT_HAL0_BT_IN_CHG_n ( 1 << 6 ) +//#define REG_BIT_HAL0_PM_IRQ_n // gȂ +#define REG_BIT_HAL0_RSV_5 ( 1 << 5 ) +#define REG_BIT_HAL0_WL_TX ( 1 << 4 ) +#define REG_BIT_HAL0_SHELL_OPEN ( 1 << 3 ) // statusɂ܂ +#define REG_BIT_HAL0_SW_WIFI_n ( 1 << 2 ) +#define REG_BIT_HAL0_SW_HOME_n ( 1 << 1 ) +#define REG_BIT_HAL0_SW_POW_n ( 1 << 0 ) + + +// HAL bitfields 1 +#define REG_BIT_HAL1_DIPSW_1 ( 1 << 3 ) +#define REG_BIT_HAL1_DIPSW_0 ( 1 << 2 ) +#define REG_BIT_HAL1_HW_DET_1 ( 1 << 1 ) +#define REG_BIT_HAL1_HW_DET_0 ( 1 << 0 ) + + +// VREG_C_WIFI_CALIB +#define REG_BIT_WIFI_CALIB_32K_HI_Z ( 1 << 1 ) +#define REG_BIT_WIFI_CALIB_RSTS_AST ( 1 << 0 ) + + +/* + ev +#define REG_BIT_ ( 1 << 7 ) +#define REG_BIT_ ( 1 << 6 ) +#define REG_BIT_ ( 1 << 5 ) +#define REG_BIT_ ( 1 << 4 ) +#define REG_BIT_ ( 1 << 3 ) +#define REG_BIT_ ( 1 << 2 ) +#define REG_BIT_ ( 1 << 1 ) +#define REG_BIT_ ( 1 << 0 ) +*/ + + + +/*============================================================================*/ +extern u8 vreg_ctr[]; + +/*============================================================================*/ +enum VREG_C_ADRS +{ // `AhX֏񂾍ۂ͕̓s + VREG_C_MCU_VER_MAJOR = 0x00, + VREG_C_MCU_VER_MINOR, + VREG_C_MCU_STATUS, + + VREG_C_VCOM_T = 0x03, + VREG_C_VCOM_B, + + VREG_C_DBG01 = 0x05, + VREG_C_DBG02, + VREG_C_DBG03, + + VREG_C_3D = 0x08, + VREG_C_SND_VOL, + VREG_C_BT_TEMP, + VREG_C_BT_REMAIN, + VREG_C_BT_REMAIN_FINE, + VREG_C_BT_VOLTAGE, + + VREG_C_STATUS_1 = 0x0E, + VREG_C_STATUS = 0x0F, + + VREG_C_IRQ0 = 0x10, + VREG_C_IRQ1, + VREG_C_IRQ2, + VREG_C_IRQ3, + VREG_C_IRQ4, + + VREG_C_IRQ_MASK0 = 0x18, + VREG_C_IRQ_MASK1, + VREG_C_IRQ_MASK2, + VREG_C_IRQ_MASK3, + VREG_C_IRQ_MASK4, + + VREG_C_COMMAND0 = 0x20, + VREG_C_COMMAND1, + VREG_C_COMMAND2, + VREG_C_COMMAND3, // 'r' Ń}CRZbgA 'w' WDTZbg + + VREG_C_OFF_DELAY = 0x24, +// VREG_C_VOL_DIGITAL = 0x25, // todo +// VREG_C_VOL_OPTION, + VREG_C_VOL_ADC_RAW = 0x27, + + VREG_C_LED_BRIGHT = 0x28, + VREG_C_LED_POW, + VREG_C_LED_WIFI, + VREG_C_LED_CAM, + VREG_C_LED_3D, + VREG_C_LED_NOTIFY_DATA, + VREG_C_LED_NOTIFY_FLAG, + + VREG_C_RBR_CONTROL = 0x2F, // p~ + + VREG_C_RTC_SEC = 0x30, + VREG_C_RTC_MIN, + VREG_C_RTC_HOUR, + VREG_C_RTC_YOBI, + VREG_C_RTC_DAY, + VREG_C_RTC_MONTH, + VREG_C_RTC_YEAR, + + VREG_C_RTC_COMP, + + VREG_C_RTC_ALARM_MIN = 0x38, + VREG_C_RTC_ALARM_HOUR, + VREG_C_RTC_ALARM_DAY, + VREG_C_RTC_ALARM_MONTH, + VREG_C_RTC_ALARM_YEAR, + + VREG_C_RTC_SEC_FINE_L, + VREG_C_RTC_SEC_FINE_H, + + VREG_C_WIFI_CALIB = 0x3F, + + VREG_C_ACC_CONFIG = 0x40, + VREG_C_ACC_R_ADRS, + VREG_C_ACC_RESERVE, + VREG_C_ACC_W_ADRS, + VREG_C_ACC_W_BUF, // r,w p + + VREG_C_ACC_XL = 0x45, + VREG_C_ACC_XH, + VREG_C_ACC_YL, + VREG_C_ACC_YH, + VREG_C_ACC_ZL, + VREG_C_ACC_ZH, + + VREG_C_ACC_HOSU_L = 0x4B, + VREG_C_ACC_HOSU_M, + VREG_C_ACC_HOSU_H, + VREG_C_ACC_HOSU_SETTING, + VREG_C_ACC_HOSU_HIST = 0x4F, + + VREG_C_ACC_HOSU_HOUR_BOUNDARY = 0x50, + VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC, + + VREG_C_HAL_OVW_CONT0 = 0x52, + VREG_C_HAL_OVW_DAT0, + VREG_C_HAL_OVW_CONT1, // reserved + VREG_C_HAL_OVW_DAT1, // reserved + + VREG_C_HAL_OVW_BT_FUEL = 0x56, + VREG_C_HAL_OVW_BT_VOLTAGE, + + VREG_C_VOL_CAL_MIN = 0x58, + VREG_C_VOL_CAL_MAX, + + VREG_C_HAL_OVW_TEMPERATURE = 0x5A, + + VREG_C_ENDMARK_ +}; + +// Ԃ͔ɂāAmۂȂ߂ ʂ define Ă +#define VREG_CX_INFO 0x7F +#define VREG_CX_FREE_ADRS 0x60 +#define VREG_CX_FREE_DATA 0x61 +// VREG_C_AMBIENT_BRIGHTNESS = 0xXX, + + + + +/*============================================================================*/ +void vreg_ctr_init( ); +void vreg_ctr_reset( ); +void vreg_ctr_write( u8 adrs, u8 data ); +u8 vreg_ctr_read( u8 phy_adrs ); +void vreg_ctr_after_read( u8 adrs, u8 data ); +void set_irq( u8 irqreg, u8 irq_flg ); + + +#define is_wifi_calib_resets_ast ( vreg_ctr[ VREG_C_WIFI_CALIB ] & REG_BIT_WIFI_CALIB_RSTS_AST ) +#define vreg_stop_acc ( vreg_ctr[ VREG_C_ACC_CONFIG ] &= ~( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ) ) +#define vreg_set_acc_error ( vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_ACCERO_ERR ) +#define is_acc_on ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_ACQ ) +#define is_pedo_on ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_HOSU ) +#define is_mgic_error ( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR ) +#define vreg_set_mgic_error ( vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_MGIC_ERR ) +#define vreg_clear_mgic_error ( vreg_ctr[ VREG_C_STATUS_1 ] &= ~(REG_BIT_MGIC_ERR) ) +#define is_bt_charging ( vreg_ctr[VREG_C_STATUS] & REG_BIT_BATT_CHARGE ) +#define is_shell_open ( vreg_ctr[VREG_C_STATUS] & REG_BIT_ST_SHELL_OPEN ) + + +#endif diff --git a/snake_branches/3.82_trial_seisan/vreg_twl.c b/snake_branches/3.82_trial_seisan/vreg_twl.c new file mode 100644 index 0000000..1cb1225 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/vreg_twl.c @@ -0,0 +1,169 @@ +/* ======================================================== + TWL݊I2CWX^ + + $Id$ + ======================================================== */ +#include "incs.h" +#include "jhl_defs.h" +#include "led.h" + +#include "vreg_twl.h" +//#include "vreg_ctr.h" +#include "adc.h" + + +// ======================================================== +#define TWL_REG_VER_INFO 0x35 +#define NON_EXIST_REG 0xFF + +// ======================================================== +u8 vreg_twl[_REG_TWL_INT_ADRS_ENDMARK]; + + +extern bit twl_ver_read; +extern bit cam_led_update; +extern bit vol_changed_by_twl; + + +// ======================================================== +extern void tsk_led_cam(); + + + + +/********************************************//** + zWX^̏ + ***********************************************/ +void vreg_twl_init( ) +{ + vreg_twl[ REG_TWL_INT_ADRS_MODE ] = 0x03; + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] = 0; + vreg_twl[ REG_TWL_INT_ADRS_CAM ] = 0; + vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = 0; +} + + + +/********************************************//** + I2CzWX^ɏEANV + + @ adrs ͓AhX + + @݂ȂAhXɃANZXꍇA܂B + ***********************************************/ +void vreg_twl_write( u8 adrs, u8 data ) +{ + switch ( adrs ) + { + case ( REG_TWL_INT_ADRS_VOL ): + { + vol_changed_by_twl = true; + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = data; + //renge_task_immed_add( tski_vol_update ); + vol_polling = 3; + break; + } + + case ( REG_TWL_INT_ADRS_MODE ): + vreg_twl[ REG_TWL_INT_ADRS_MODE ] = ( data & 0x83 ); // [8]vol32 [1:0]nand + break; + + case ( REG_TWL_INT_ADRS_CAM ): + vreg_twl[ REG_TWL_INT_ADRS_CAM ] = ( data & 0x03 ); + if( ( data & 0x03 ) == TWL_CAMLED_BLINK ) + { + cam_led_update = true; // łȂƈꔭɕs邽 + } + tsk_led_cam(); // uN̓sŋN + break; + + case ( REG_TWL_INT_ADRS_TEMP0 ): + vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = data; + break; + + case ( REG_TWL_INT_ADRS_COMMAND ): +/* + if( data <= 2 ){ + if( ( data & REG_BIT_TWL_OFF_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_OFF_REQ ); // OFFĂ炵B + break; + } + else if( ( data & REG_BIT_TWL_RESET_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); //ZbgȂB̂́ASPI痈܂B + break; + } + } +*/ + if( data == REG_BIT_TWL_RESET_REQ ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); //ZbgȂB̂́ASPI痈܂B + break; + } + } + return; +} + + + +/********************************************//** + I2CzWX^ǂ݂܂B + + @ adrs O猩Ƃ́AAhX + + @߂ xx f[^ + + @݂ȂAhXɃANZXꍇA߂l0x5A + ***********************************************/ +u8 vreg_twl_read( u8 phy_adrs ) +{ + u8 temp; + + switch( phy_adrs ){ + // 10%ȉŐԂɂȂ + case( REG_TWL_INT_ADRS_POWER_INFO ): + // x̃Zbg get_batt_left()ixĖłj + return( vreg_twl[ REG_TWL_INT_ADRS_POWER_INFO ] | ( !PM_EXTDC_n ? 0x80: 0x00 ) ); // A_v^bit(A_v^L) + + case( REG_TWL_INT_ADRS_IRQ ): + temp = vreg_twl[ REG_TWL_INT_ADRS_IRQ ]; + vreg_twl[ REG_TWL_INT_ADRS_IRQ ]= 0; + return( temp ); + + case( REG_TWL_INT_ADRS_VER_INFO ): +// set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); // xIɖȂ̂ + twl_ver_read = true; + return( TWL_REG_VER_INFO ); + + case( REG_TWL_ADRS_NON_EXIST ): + return( 0x00 ); + + default: + return( vreg_twl[ phy_adrs ] ); + } +} + + + +/********************************************//** + O猩钎HAhXA̘AAhXɓǂݑւ + + 0xFF݂͑ȂAhXB + ***********************************************/ +u8 adrs_table_twl_ext2int( u8 img ) +{ + switch( img ){ + case( REG_TWL_ADRS_IRQ ): return( REG_TWL_INT_ADRS_IRQ ); + case( REG_TWL_ADRS_COMMAND ): return( REG_TWL_INT_ADRS_COMMAND ); + case( REG_TWL_ADRS_POWER_INFO ): return( REG_TWL_INT_ADRS_POWER_INFO ); + case( REG_TWL_ADRS_VOL ): return( REG_TWL_INT_ADRS_VOL ); + case( REG_TWL_ADRS_CAM ): return( REG_TWL_INT_ADRS_CAM ); + case( REG_TWL_ADRS_TEMP0 ): return( REG_TWL_INT_ADRS_TEMP0 ); + case( REG_TWL_ADRS_VER_INFO ): return( REG_TWL_INT_ADRS_VER_INFO ); + case( REG_TWL_ADRS_MODE ): return( REG_TWL_INT_ADRS_MODE ); + default: return( REG_TWL_ADRS_NON_EXIST ); +// 0ǂ߂΂悢AȂėǂ +// case( REG_TWL_ADRS_WIFI ): return( REG_TWL_INT_ADRS_WIFI ); + } +} diff --git a/snake_branches/3.82_trial_seisan/vreg_twl.h b/snake_branches/3.82_trial_seisan/vreg_twl.h new file mode 100644 index 0000000..63cdd94 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/vreg_twl.h @@ -0,0 +1,127 @@ +#ifndef __vreg_twl__ +#define __vreg_twl__ +/* ========================================================================= */ +extern u8 vreg_twl[]; + + +/* + * O猩Ƃ̃}CRWX^AhXB + * gȂǂlĔєтɂĂB + */ +/* + * 荞ݗvtO + * MSB:OdL/Ȃω ij + * 6:VolL[iύXɌ炸BMAXɁ{łBj + * 5:drd o + * 4: + * 3:dXCb` ꌟo + * 2:iݒj + * 1:dXCb` OFF ԉꌟo + * LSB: Zbg + */ +enum REG_TWL_ADRS +{ // `AhX֏񂾍ۂ͖ + REG_TWL_ADRS_VER_INFO = 0x00, + REG_TWL_ADRS_PMIC_INFO, + REG_TWL_ADRS_BATT_INFO, + REG_TWL_ADRS_IRQ = 0x10, + REG_TWL_ADRS_COMMAND, + REG_TWL_ADRS_MODE, + REG_TWL_ADRS_POWER_INFO = 0x20, + REG_TWL_ADRS_POWER_SAVE, + REG_TWL_ADRS_WIFI = 0x30, + REG_TWL_ADRS_CAM, + REG_TWL_ADRS_VOL = 0x40, + REG_TWL_ADRS_BL, + REG_TWL_ADRS_CODEC_MIC_GAIN = 0x50, + REG_TWL_ADRS_ADC_CALIB = 0x60, + REG_TWL_ADRS_ADC_CALIB_STATUS, + REG_TWL_ADRS_ADC_CALIB_VALUE, + REG_TWL_ADRS_POWER_LED, + REG_TWL_ADRS_TEMP0 = 0x70, + REG_TWL_ADRS_TEMP1, + REG_TWL_ADRS_TEMP2, + REG_TWL_ADRS_TEMP3, + REG_TWL_ADRS_TEMP4, + REG_TWL_ADRS_TEMP5, + REG_TWL_ADRS_TEMP6, + REG_TWL_ADRS_TEMP7, + REG_TWL_ADRS_TIME_PWSW_DELAY = 0x80, + REG_TWL_ADRS_TIME_PWSW_THRESHOLD +}; + +#define REG_TWL_ADRS_NON_EXIST 0xFF + +/* + * }CRł̃WX^̎ + * ‚߂Ă + */ +enum REG_TWL_ADRS_INT +{ + REG_TWL_INT_ADRS_VER_INFO = 0x00, +// REG_TWL_INT_ADRS_PMIC_INFO, +// REG_TWL_INT_ADRS_BATT_INFO, + REG_TWL_INT_ADRS_IRQ, // 0x10, + REG_TWL_INT_ADRS_COMMAND, + REG_TWL_INT_ADRS_MODE, + REG_TWL_INT_ADRS_POWER_INFO, // 0x20, +// REG_TWL_INT_ADRS_POWER_SAVE, +// REG_TWL_INT_ADRS_WIFI, // 0x30, + REG_TWL_INT_ADRS_CAM, + REG_TWL_INT_ADRS_VOL, // 0x40, +// REG_TWL_INT_ADRS_BL, +// REG_TWL_INT_ADRS_CODEC_MIC_GAIN, // 0x50, +// REG_TWL_INT_ADRS_CODEC_MIC_GAIN_RELOAD, +// REG_TWL_INT_ADRS_ADC_CALIB, // 0x60, +// REG_TWL_INT_ADRS_ADC_CALIB_STATUS, +// REG_TWL_INT_ADRS_ADC_CALIB_VALUE, +// REG_TWL_INT_ADRS_POWER_LED, + REG_TWL_INT_ADRS_TEMP0, // 0x70 - 0x77 + REG_TWL_INT_ADRS_TEMP1, + REG_TWL_INT_ADRS_TEMP2, + REG_TWL_INT_ADRS_TEMP3, + REG_TWL_INT_ADRS_TEMP4, + REG_TWL_INT_ADRS_TEMP5, + REG_TWL_INT_ADRS_TEMP6, + REG_TWL_INT_ADRS_TEMP7, +// REG_TWL_INT_ADRS_TIME_PWSW_DELAY, +// REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD + _REG_TWL_INT_ADRS_ENDMARK, +}; + + + +/* ========================================================================= */ +#define is_TWL ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x01 ) +#define with_NAND ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x02 ) +#define volSteps32 ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 ) + +#define reg_wifi_led ( vreg_twl[ REG_TWL_INT_ADRS_WIFI ] & 0x01 ) +#define reg_wifi_led_blink ( vreg_twl[ REG_TWL_INT_ADRS_WIFI ] & 0x02 ) + +#define REG_TWL_ADRS_MODE__VOL32 ( 1 << 7 ) + +typedef enum CAM_LED_TWL_MODE +{ + TWL_CAMLED_OFF, + TWL_CAMLED_ON, + TWL_CAMLED_BLINK, + TWL_CAMLED_DEF_ON +}twl_camLed_mode; + + +/* ========================================================================= */ +void vreg_twl_init( ); +void vreg_twl_write( u8 adrs, u8 data ); +u8 adrs_table_twl_ext2int( u8 img ); +u8 vreg_twl_read( u8 phy_adrs ); + + +// ǂ񂾂NAȂǂ̏ +#define vreg_twl_after_read( reg_adrs ); \ + if( reg_adrs == REG_TWL_INT_ADRS_IRQ ) \ + { \ + vreg_twl[ REG_TWL_INT_ADRS_IRQ ]= 0;\ + } + +#endif diff --git a/snake_branches/3.82_trial_seisan/yav_mcu_bsr.plg b/snake_branches/3.82_trial_seisan/yav_mcu_bsr.plg new file mode 100644 index 0000000..ba335e2 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/yav_mcu_bsr.plg @@ -0,0 +1,258 @@ +C:\Windows\system32\cmd.exe /c c:\cygwin\bin\touch magic.c +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no loader.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +loader.c(160) : CC78K0R warning W0401: Conversion may lose significant digits +loader.c(161) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 3 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\loader.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no pm.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +pm.c(546) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(558) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(882) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(886) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(915) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(929) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1015) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1024) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1095) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1241) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1243) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1537) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 13 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\pm.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_ctr.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_ctr.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no main.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\main.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no magic.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\magic.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no WDT.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\WDT.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_mcu.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +i2c_mcu.c(193) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 2 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_mcu.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_twl.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_twl.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no led.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +led.c(90) : CC78K0R warning W0745: Expected function prototype +led.c(381) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 3 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\led.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no rtc.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\rtc.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2m -qvjl2w -sainter_asm -zpb -no vreg_ctr.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +vreg_ctr.c(159) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(160) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(162) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(164) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(165) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(252) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(252) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(257) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(257) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(261) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(261) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(265) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(265) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(269) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 15 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\vreg_ctr.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2m -qvjl2w -sainter_asm -zpb -no vreg_twl.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +vreg_twl.c(68) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_twl.c(72) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 3 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\vreg_twl.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no adc.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +adc.c(104) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(190) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(241) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(308) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(434) : CC78K0R warning W0745: Expected function prototype +adc.c(463) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(468) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 8 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\adc.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2m -qvjl2w -sainter_asm -zpb -no renge\renge.c +renge\\..\config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\renge.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no accero.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +accero.c(121) : CC78K0R warning W0745: Expected function prototype +Compilation complete, 0 error(s) and 2 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\accero.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2 -qvjl2w -sainter_asm -zpb -no self_flash.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +self_flash.c(289) : CC78K0R warning W0401: Conversion may lose significant digits +self_flash.c(290) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 3 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\self_flash.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no sw.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\sw.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no task_debug.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\task_debug.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no task_misc.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +task_misc.c(380) : CC78K0R warning W0401: Conversion may lose significant digits +task_misc.c(382) : CC78K0R warning W0401: Conversion may lose significant digits +task_misc.c(392) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 4 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\task_misc.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no task_sys.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +task_sys.c(247) : CC78K0R warning W0401: Conversion may lose significant digits +task_sys.c(309) : CC78K0R warning W0401: Conversion may lose significant digits +task_sys.c(589) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 4 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\task_sys.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no pedo_alg_thre_det2.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +pedo_alg_thre_det2.c(104) : CC78K0R warning W0745: Expected function prototype +pedo_alg_thre_det2.c(120) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 3 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\pedo_alg_thre_det2.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no ini_VECT.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\ini_VECT.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no task_status.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\task_status.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no led_cam.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\led_cam.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no led_pow.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +led_pow.c(120) : CC78K0R warning W0401: Conversion may lose significant digits +led_pow.c(125) : CC78K0R warning W0401: Conversion may lose significant digits +led_pow.c(178) : CC78K0R warning W0401: Conversion may lose significant digits +led_pow.c(240) : CC78K0R warning W0401: Conversion may lose significant digits +led_pow.c(271) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 6 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\led_pow.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no hal.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\hal.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no voltable.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\voltable.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no pedo_lpf_coeff.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\pedo_lpf_coeff.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no kanaria_c.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\kanaria_c.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no util_funcs.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\util_funcs.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_mcu-sub.c +config.h(66) : CC78K0R warning W0816: Redefined macro name 'MCU_VER_MINOR' +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_mcu-sub.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\lk78k0r.exe" -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -obsr.lmf "..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\s0rm.rel" -gi1B339499E033F240BFAAh -pbsr_k0r.map -nkd -gb7EFBFFh -b"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r" -dbsr_mcu.dr -s -w2 loader.rel pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_twl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel sw.rel task_debug.rel task_misc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel task_status.rel led_cam.rel led_pow.rel hal.rel batt_params.rel voltable.rel pedo_lpf_coeff.rel kanaria.rel kanaria_c.rel get_ei.rel util_funcs.rel i2c_mcu-sub.rel +RA78K0R warning W3420: File 'loader.rel' already has had error(s)/warning(s) by 'CC78K' + Read Device File Directory : C:\PROGRAM FILES (X86)\NEC ELECTRONICS TOOLS\DEV\ +RA78K0R warning W3420: File 'pm.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'i2c_ctr.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'main.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'magic.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'WDT.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'i2c_mcu.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'i2c_twl.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'led.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'rtc.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'vreg_ctr.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'vreg_twl.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'adc.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'renge.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'accero.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'self_flash.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'sw.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'task_debug.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'task_misc.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'task_sys.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'pedo_alg_thre_det2.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'ini_VECT.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'task_status.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'led_cam.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'led_pow.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'hal.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'batt_params.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'voltable.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'pedo_lpf_coeff.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'kanaria_c.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'util_funcs.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'i2c_mcu-sub.rel' already has had error(s)/warning(s) by 'CC78K' + +Link complete, 0 error(s) and 32 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\oc78k0r.exe" -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -o.\bsr.hex -nu -ki bsr.lmf +Object Conversion Complete, 0 error(s) and 0 warning(s) found. +C:\Windows\system32\cmd.exe /c ruby nec_s_2_bsrbin2.rb bsr.hex +nec_s_2_bsrbin2.rb:2: warning: variable $KCODE is no longer effective; ignored +4 +intel-HEX to bsr bin converter + file converted! + + +Build Total error(s) : 0 Total warning(s) : 119 diff --git a/snake_branches/3.82_trial_seisan/yav_mcu_bsr.pri b/snake_branches/3.82_trial_seisan/yav_mcu_bsr.pri new file mode 100644 index 0000000..b018509 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/yav_mcu_bsr.pri @@ -0,0 +1,1031 @@ +[Project.ID] +Ver=200 +Target=IDK0R32G +[Configuration] +Chip=uPD79F0104 +Internal Rom=32KB +Internal Ram=1536B +Clock=Target +Sub Clock=Target +Peripheral Break=0x3 +Firm Clock=System +Flash Programming=Permit +Low-voltage Flash Rewriting=On +Fail Safe Break=0x2000 +Port=1 +NMI=OFF +TRESET=OFF +IRESET=OFF +WAIT=OFF +SysClock=None +SubClock=None +[Mapping] +Count=0 +[Main] +Geometry=154, 154, 1188, 812 +Window=Max +MDI_MAX=OFF +Button=ON +Mode=Auto +Trace=Uncond ON +Trace2=Non Stop +Coverage=OFF +Timer=OFF +Tracer=OFF +[Load File] +Dir=\\tsclient\C\78k_data\yav-mcu-basara\trunk\ +SaveFilter=0 +Start=0 +End=0 +LoadFilter=5 +Offset=0 +Object=ON +Symbol=ON +Erase=OFF +HighSpeed=OFF +Symbol Reset=ON +CPU Reset=ON +File1=\\tsclient\C\78k_data\yav-mcu-basara\trunk\bsr.lmf +LoadFilter1=5 +Offset1=0 +Object1=ON +Symbol1=ON +Erase1=OFF +HighSpeed1=OFF +CPU Reset1=ON +Symbol Reset1=ON +[View File] +Dir=\\tsclient\C\78k_data\yav-mcu-basara\trunk\ +Filter=Source +[Debugger Option] +Source Path="\\tsclient\C\78k_data\yav-mcu-basara\trunk\renge" +Symbol Size=Byte +Symbol Format=Hex +Register Name=Func +Offset Label=OFF +Offset Mnemonic=ON +Tab Count=4 +Tab Size1=*.*, 8 +Tab Size2=*.c, 8 +Tab Size3=*.s, 8 +Tab Size4=*.asm, 8 +Default Source=*.c;*.s;*.asm +Default Module=*.lnk;*.lmf +Startup Start=_@cstart +Startup End=_@cend +Main Symbol=_main +Symbol Type=OFF +Language=C +Kanji=SJIS +[Source] +Geometry=762, 184, 689, 822 +Window=Normal +DispStart=82 +CaretPos=83,0 +Mode=Normal +DispFile= +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Data1= +Data2= +Data3= +Data4= +Data5= +Data6= +Data7= +Data8= +Data9= +Data10= +Data11= +Data12= +Data13= +Data14= +Data15= +Data16= +Option=0 +Case=ON +Direction=Down +File1= +File2= +File3= +File4= +File5= +File6= +File7= +File8= +File9= +File10= +File11= +File12= +File13= +File14= +File15= +File16= +SaveRange=Screen +SaveStart= +SaveEnd= +Accumulative=ON +[Source1] +Geometry=100, 100, 689, 822 +Window=Normal +DispStart=55 +CaretPos=1,0 +Mode=Normal +DispFile=\\tsclient\C\78k_data\yav-mcu-basara\trunk\hal.c +Accumulative=ON +[Assemble] +Geometry=0, 0, 0, 0 +Window=Hide +DispStart=847627264 +CaretPos=0,0 +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Data1= +Data2= +Data3= +Data4= +Data5= +Data6= +Data7= +Data8= +Data9= +Data10= +Data11= +Data12= +Data13= +Data14= +Data15= +Data16= +Case=ON +Scan=OFF +Direction=Down +FindStart= +FindEnd= +SaveRange=Screen +SaveStart= +SaveEnd= +[Memory] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Format=Hex +Mode=Byte +Endian= +Ascii=OFF +Idtag=OFF +Address= +DispStart=FFFFFFFF +CaretPosData=0, 0 +CaretPosAscii=0, 0 +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Data1= +Data2= +Data3= +Data4= +Data5= +Data6= +Data7= +Data8= +Data9= +Data10= +Data11= +Data12= +Data13= +Data14= +Data15= +Data16= +Binary=ON +Scan=OFF +Direction=DOWN +FindStart= +FindEnd= +Unit=Byte +SaveRange=Screen +SaveStart= +SaveEnd= +Accumulative=ON +[Memory fill] +Scope=0, 0 +Code=0 +[Memory copy] +Scope=0, 0 +To=0 +[Memory compare] +Source=0, 0 +Destination=0 +[I/O Port] +Line=0 +[Stack] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Mode=Proper +[Sfr] +Geometry=0, 0, 0, 0 +Window=Hide +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Boundary=0, 0 +Mode=Hex +Attribute=Show +Sort=Address +Pickup=OFF +SelectSort=Address +Last Name= +Line=531 +L1=P0 +L2=P1 +L3=P2 +L4=P3 +L5=P4 +L6=P5 +L7=P6 +L8=P7 +L9=P12 +L10=P14 +L11=P15 +L12=SDR00 +L13=SIO00 +L14=TXD0 +L15=SDR01 +L16=RXD0 +L17=SIO01 +L18=TDR00 +L19=TDR01 +L20=ADCRH +L21=PM0 +L22=PM1 +L23=PM2 +L24=PM3 +L25=PM4 +L26=PM5 +L27=PM6 +L28=PM7 +L29=PM12 +L30=PM14 +L31=PM15 +L32=ADM +L33=ADCE +L34=ADCS +L35=ADS +L36=KRM +L37=EGP0 +L38=EGN0 +L39=ISC +L40=TIS0 +L41=SDR02 +L42=SIO10 +L43=TXD1 +L44=SDR03 +L45=RXD1 +L46=IICA0 +L47=IICS0 +L48=SPD0 +L49=STD0 +L50=ACKD0 +L51=TRC0 +L52=COI0 +L53=EXC0 +L54=ALD0 +L55=MSTS0 +L56=IICF0 +L57=IICRSV0 +L58=STCEN0 +L59=IICBSY0 +L60=STCF0 +L61=TDR02 +L62=TDR03 +L63=TDR04 +L64=TDR05 +L65=TDR06 +L66=TDR07 +L67=RSUBC +L68=SEC +L69=MIN +L70=HOUR +L71=WEEK +L72=DAY +L73=MONTH +L74=YEAR +L75=SUBCUD +L76=ALARMWM +L77=ALARMWH +L78=ALARMWW +L79=RTCC0 +L80=RCLOE0 +L81=RCLOE1 +L82=RTCE +L83=RTCC1 +L84=RWAIT +L85=RWST +L86=RIFG +L87=WAFG +L88=WALIE +L89=WALE +L90=RTCC2 +L91=RCKDIV +L92=RCLOE2 +L93=RINTE +L94=CMC +L95=CSC +L96=HIOSTOP +L97=XTSTOP +L98=MSTOP +L99=OSTC +L100=OSTS +L101=CKC +L102=MCM0 +L103=MCS +L104=CSS +L105=CLS +L106=CKS0 +L107=PCLOE0 +L108=CKS1 +L109=PCLOE1 +L110=RESF +L111=LVIM +L112=LVIF +L113=LVIMD +L114=LVISEL +L115=LVION +L116=LVIS +L117=WDTE +L118=DSA0 +L119=DSA1 +L120=DRA0 +L121=DRA0L +L122=DRA0H +L123=DRA1 +L124=DRA1L +L125=DRA1H +L126=DBC0 +L127=DBC0L +L128=DBC0H +L129=DBC1 +L130=DBC1L +L131=DBC1H +L132=DMC0 +L133=DWAIT0 +L134=DS0 +L135=DRS0 +L136=STG0 +L137=DMC1 +L138=DWAIT1 +L139=DS1 +L140=DRS1 +L141=STG1 +L142=DRC0 +L143=DST0 +L144=DEN0 +L145=DRC1 +L146=DST1 +L147=DEN1 +L148=BECTL +L149=FLMDPUP +L150=PFCMD +L151=PFS +L152=FPRERR +L153=FLPMC +L154=BFAEN +L155=FWEPR +L156=BRAMEN +L157=IF2 +L158=IF2L +L159=TMIF05 +L160=TMIF06 +L161=TMIF07 +L162=PIF6 +L163=IF2H +L164=IICAIF1 +L165=PIF20 +L166=PIF21 +L167=PIF22 +L168=PIF23 +L169=MK2 +L170=MK2L +L171=TMMK05 +L172=TMMK06 +L173=TMMK07 +L174=PMK6 +L175=MK2H +L176=IICAMK1 +L177=PMK20 +L178=PMK21 +L179=PMK22 +L180=PMK23 +L181=PR02 +L182=PR02L +L183=TMPR005 +L184=TMPR006 +L185=TMPR007 +L186=PPR06 +L187=PR02H +L188=IICAPR01 +L189=PPR020 +L190=PPR021 +L191=PPR022 +L192=PPR023 +L193=PR12 +L194=PR12L +L195=TMPR105 +L196=TMPR106 +L197=TMPR107 +L198=PPR16 +L199=PR12H +L200=IICAPR11 +L201=PPR120 +L202=PPR121 +L203=PPR122 +L204=PPR123 +L205=IF0 +L206=IF0L +L207=WDTIIF +L208=LVIIF +L209=PIF0 +L210=PIF1 +L211=PIF2 +L212=PIF4 +L213=PIF5 +L214=IF0H +L215=DMAIF0 +L216=DMAIF1 +L217=CSIIF00 +L218=STIF0 +L219=CSIIF01 +L220=SRIF0 +L221=SREIF0 +L222=IF1 +L223=IF1L +L224=CSIIF10 +L225=IICIF10 +L226=STIF1 +L227=SRIF1 +L228=SREIF1 +L229=IICAIF0 +L230=TMIF00 +L231=TMIF01 +L232=TMIF02 +L233=TMIF03 +L234=IF1H +L235=ADIF +L236=RTCIF +L237=RTCIIF +L238=KRIF +L239=MDIF +L240=TMIF04 +L241=MK0 +L242=MK0L +L243=WDTIMK +L244=LVIMK +L245=PMK0 +L246=PMK1 +L247=PMK2 +L248=PMK4 +L249=PMK5 +L250=MK0H +L251=DMAMK0 +L252=DMAMK1 +L253=CSIMK00 +L254=STMK0 +L255=CSIMK01 +L256=SRMK0 +L257=SREMK0 +L258=MK1 +L259=MK1L +L260=CSIMK10 +L261=IICMK10 +L262=STMK1 +L263=SRMK1 +L264=SREMK1 +L265=IICAMK0 +L266=TMMK00 +L267=TMMK01 +L268=TMMK02 +L269=TMMK03 +L270=MK1H +L271=ADMK +L272=RTCMK +L273=RTCIMK +L274=KRMK +L275=MDMK +L276=TMMK04 +L277=PR00 +L278=PR00L +L279=WDTIPR0 +L280=LVIPR0 +L281=PPR00 +L282=PPR01 +L283=PPR02 +L284=PPR04 +L285=PPR05 +L286=PR00H +L287=DMAPR00 +L288=DMAPR01 +L289=CSIPR000 +L290=STPR00 +L291=CSIPR001 +L292=SRPR00 +L293=SREPR00 +L294=PR01 +L295=PR01L +L296=CSIPR010 +L297=IICPR010 +L298=STPR01 +L299=SRPR01 +L300=SREPR01 +L301=IICAPR00 +L302=TMPR000 +L303=TMPR001 +L304=TMPR002 +L305=TMPR003 +L306=PR01H +L307=ADPR0 +L308=RTCPR0 +L309=RTCIPR0 +L310=KRPR0 +L311=MDPR0 +L312=TMPR004 +L313=PR10 +L314=PR10L +L315=WDTIPR1 +L316=LVIPR1 +L317=PPR10 +L318=PPR11 +L319=PPR12 +L320=PPR14 +L321=PPR15 +L322=PR10H +L323=DMAPR10 +L324=DMAPR11 +L325=CSIPR100 +L326=STPR10 +L327=CSIPR101 +L328=SRPR10 +L329=SREPR10 +L330=PR11 +L331=PR11L +L332=CSIPR110 +L333=IICPR110 +L334=STPR11 +L335=SRPR11 +L336=SREPR11 +L337=IICAPR10 +L338=TMPR100 +L339=TMPR101 +L340=TMPR102 +L341=TMPR103 +L342=PR11H +L343=ADPR1 +L344=RTCPR1 +L345=RTCIPR1 +L346=KRPR1 +L347=MDPR1 +L348=TMPR104 +L349=MDAL +L350=MULA +L351=MDAH +L352=MULB +L353=MDBH +L354=MULOH +L355=MDBL +L356=MULOL +L357=PMC +L358=MAA +L359=ADPC +L360=PU0 +L361=PU1 +L362=PU3 +L363=PU4 +L364=PU5 +L365=PU7 +L366=PU12 +L367=PU14 +L368=PIM3 +L369=PIM7 +L370=POM3 +L371=POM7 +L372=NFEN0 +L373=NFEN1 +L374=NFEN2 +L375=MDCL +L376=MDCH +L377=MDUC +L378=DIVST +L379=DIVMODE +L380=PER0 +L381=SAU0EN +L382=IICA0EN +L383=ADCEN +L384=RTCEN +L385=PER2 +L386=TAU0EN +L387=OSMC +L388=BCDADJ +L389=SSR00 +L390=SSR00L +L391=SSR01 +L392=SSR01L +L393=SSR02 +L394=SSR02L +L395=SSR03 +L396=SSR03L +L397=SIR00 +L398=SIR00L +L399=SIR01 +L400=SIR01L +L401=SIR02 +L402=SIR02L +L403=SIR03 +L404=SIR03L +L405=SMR00 +L406=SMR01 +L407=SMR02 +L408=SMR03 +L409=SCR00 +L410=SCR01 +L411=SCR02 +L412=SCR03 +L413=SE0 +L414=SE0L +L415=SS0 +L416=SS0L +L417=ST0 +L418=ST0L +L419=SPS0 +L420=SPS0L +L421=SO0 +L422=SOE0 +L423=SOE0L +L424=SOL0 +L425=SOL0L +L426=TCR00 +L427=TCR01 +L428=TCR02 +L429=TCR03 +L430=TCR04 +L431=TCR05 +L432=TCR06 +L433=TCR07 +L434=TMR00 +L435=TMR01 +L436=TMR02 +L437=TMR03 +L438=TMR04 +L439=TMR05 +L440=TMR06 +L441=TMR07 +L442=TSR00 +L443=TSR00L +L444=TSR01 +L445=TSR01L +L446=TSR02 +L447=TSR02L +L448=TSR03 +L449=TSR03L +L450=TSR04 +L451=TSR04L +L452=TSR05 +L453=TSR05L +L454=TSR06 +L455=TSR06L +L456=TSR07 +L457=TSR07L +L458=TE0 +L459=TE0L +L460=TS0 +L461=TS0L +L462=TT0 +L463=TT0L +L464=TPS0 +L465=TPS0L +L466=TO0 +L467=TO0L +L468=TOE0 +L469=TOE0L +L470=TOL0 +L471=TOL0L +L472=TOM0 +L473=TOM0L +L474=IICCTL00 +L475=SPT0 +L476=STT0 +L477=ACKE0 +L478=WTIM0 +L479=SPIE0 +L480=WREL0 +L481=LREL0 +L482=IICE0 +L483=IICCTL10 +L484=DFC0 +L485=SMC0 +L486=DAD0 +L487=CLD0 +L488=WUP0 +L489=IICWL0 +L490=IICWH0 +L491=SVA0 +L492=PER3 +L493=IICA1EN +L494=P20 +L495=PM20 +L496=PU20 +L497=EGP2 +L498=EGN2 +L499=IICA1 +L500=IICS1 +L501=SPD1 +L502=STD1 +L503=ACKD1 +L504=TRC1 +L505=COI1 +L506=EXC1 +L507=ALD1 +L508=MSTS1 +L509=IICF1 +L510=IICRSV1 +L511=STCEN1 +L512=IICBSY1 +L513=STCF1 +L514=IICCTL01 +L515=SPT1 +L516=STT1 +L517=ACKE1 +L518=WTIM1 +L519=SPIE1 +L520=WREL1 +L521=LREL1 +L522=IICE1 +L523=IICCTL11 +L524=DFC1 +L525=SMC1 +L526=DAD1 +L527=CLD1 +L528=WUP1 +L529=IICWL1 +L530=IICWH1 +L531=SVA1 +[Local Variable] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Mode=Proper +[Trace View] +Geometry=0, 0, 0, 0 +Window=Hide +Mode=Normal +Frame=Show +Timetag=Clock +Address=Show +Data=Hex +Status=Show +Address2=Show +Data2=Hex +Status2=Show +Disasm=Show +Pick Up=Off +Synchronize=0 0 0 0 +Frameno= +Frameno1= +Frameno2= +Frameno3= +Frameno4= +Frameno5= +Frameno6= +Frameno7= +Frameno8= +Frameno9= +Frameno10= +Frameno11= +Frameno12= +Frameno13= +Frameno14= +Frameno15= +Frameno16= +ScanStatus=ALL +Access Size=B +ScanAddress=<>-<> +Mask Address= +ScanData= +Mask Data= +ScanExternal= +Mask External= +Scan=OFF +Direction=Down +FindStart= +FindEnd= +SaveRange=Screen +SaveStart= +SaveEnd= +[Register] +Geometry=0, 0, 0, 0 +Window=Hide +Mode=Hex +Boundary=0 +Pickup=OFF +Name=Functional +Register Bank=0 +RP0=3 +RP1=3 +RP2=3 +RP3=3 +PC=3 +SP=3 +PSW=3 +ES=3 +CS=3 +[Event Manager] +Geometry=0, 0, 0, 0 +Window=Hide +Sort by=Unsort +Detail=OFF +[Event Set] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Event Link] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Break] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Trace] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Delay Count0=2 +Count=0 +[Snap] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Stub] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Timer] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +TimerRateRunBreak=0011 +TimerBreakOutRunBreak=OFF +Count=0 +[Timer Monitor] +Count=0 +[Dmm] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Variable] +Geometry=1153, 8, 440, 300 +Window=Normal +Boundary=13762700 +0=.BT_IN_CHG_n,P,N,A,+,1 +Line=1 +[Quick Watch] +0=BT_IN_CHG_n,P,A,1 +1= +2= +3= +4= +5= +6= +7= +8= +9= +10= +11= +12= +13= +14= +15= +[Software Break] +Geometry=0, 0, 0, 0 +Window=Hide +Width=150 30 200 100 +Name0=Swb00002 +Address0=pm.c#_tsk_batt+0x27 +Window0=ASM +Status0=ON +Name1=Swb00001 +Address1=pm.c#_tsk_batt+0x24 +Window1=ASM +Status1=ON +Count=2 +[Reset] +Debugger=ON +Symbol=OFF +Target CPU=OFF +[Extended Option] +OnClick Software Break=ON +TraceTimetag=x1 +Redraw=500 +Break When Access Function=OFF +Break When Access Whole=Select +Verify=ON +Break Sound=ON +TraceAutoClear=OFF +RRM Clock=Internal +CKC Register Value=0x09 +RRM Internal Clock Frequency=8.000 +[About] +Version=Program +[Pseudo Emulation] +Geometry=0, 0, 0, 0 +Window=Hide +[Data Flash Option] +Data Flash Emulation=OFF +[List] +Geometry=0, 0, 0, 0 +Window=Hide +[Console] +Geometry=0, 0, 0, 0 +Window=Hide diff --git a/snake_branches/3.82_trial_seisan/yav_mcu_bsr.prj b/snake_branches/3.82_trial_seisan/yav_mcu_bsr.prj new file mode 100644 index 0000000..4292dd6 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/yav_mcu_bsr.prj @@ -0,0 +1,1408 @@ +[ProjectManager] +Version=6.00 +Path=C:\78k_data\yav-mcu-basara\snake_trunk\ +Title=yav-mcu +Series=78K0R.PM +Device=uPD79F0104 +DeviceVer=E1.00b +DebugMode=1 +Target=bsr.lmf +[BuildMode0] +BuildModeName=Debug Build +TargetFile=0 +[BuildMode1] +BuildModeName=Release Build +TargetFile=0 +[Tools] +MakeFile=yav_mcu_bsr.mak +Debugger=C:\Program Files (x86)\NEC Electronics Tools\ID78K0R-QB\V3.61\BIN\IDK0R32G.EXE +DebOption= +DebCpuReset=1 +DebSymReset=1 +MuitiLoad=0 +LoadPrjNum=0 +CheckVersion=CC78K0R|W2.13;RA78K0R|W1.33 +[Option.IDK0R32G] +File=\\tsclient\C\78k_data\yav-mcu-basara\trunk\yav_mcu_bsr.pri +[BuildMode2] +BuildModeName=K0R_dbg +TargetFile=0 +[BuildMode3] +BuildModeName=BSR_dbg +TargetFile=0 +[BuildMode4] +BuildModeName=BSR_rel +TargetFile=0 +[BuildMode5] +BuildModeName=BSR_WM0 +TargetFile=0 +[Options.OC78K0R 0] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 1] +Version=100 +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 2] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=0 +UN=FF +UST= +USZ= +K=0 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 3] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 4] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 5] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[BuildBefore-AfterCmd] +Before1=c:\cygwin\bin\touch magic.c +After1=ruby nec_s_2_bsrbin2.rb bsr.hex +[ToolSet] +ToolSetName=(ύX)78K0R Software Package V1.10 +Tool1=CC78K0R|W2.13 +Tool2=RA78K0R|W1.33 +Tool3=SK78K0R|V3.10 +Tool4=ID78K0R-QB|V3.61 +[Options.RA78K0R 0] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 1] +Version=100 +G=0 +GA=0 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 2] +Version=100 +O0= +O1=obj +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +P0=inter_asm +KA=1 +KS=1 +KX=1 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT=-pinter_asm -ks -kx +[Options.RA78K0R 3] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 4] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 5] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[SrcFile] +Source1=loader.c +Source2=pm.c +Source3=i2c_ctr.c +Source4=main.c +Source5=magic.c +Source6=WDT.c +Source7=i2c_mcu.c +Source8=i2c_twl.c +Source9=led.c +Source10=rtc.c +Source11=vreg_ctr.c +Source12=vreg_twl.c +Source13=adc.c +Source14=renge\renge.c +Source15=accero.c +Source16=self_flash.c +Source17=sw.c +Source18=task_debug.c +Source19=task_misc.c +Source20=task_sys.c +Source21=pedo_alg_thre_det2.c +Source22=ini_VECT.c +Source23=task_status.c +Source24=led_cam.c +Source25=led_pow.c +Source26=hal.c +Source27=batt_params.c +Source28=voltable.c +Source29=pedo_lpf_coeff.c +Source30=kanaria.asm +Source31=kanaria_c.c +Source32=get_ei.asm +Source33=util_funcs.c +Source34=i2c_mcu-sub.c +[Options.CC78K0R 0] +Version=210 +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 1] +Version=210 +Memorymodel=2 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1128 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=0 +Outdebug=1153 +Outasmsrcchk=0 +Outasmsrc=1157 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1173 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=0 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=1 +FarROMization=1 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rll.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Define3=_TEG_,proc_is_ke3 +Define4=proc_is_ke3 +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include2=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1069 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 vreg_ctr.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 vreg_twl.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 renge.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 self_flash.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 3] +Version=210 +Define0=_debug_,proc_is_bsr,_TEG_ +Define1=_debug_,proc_is_bsr +Define2=proc_is_bsr +Define3=_TEG_,proc_is_ke3 +Define4=proc_is_ke3 +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 4] +Version=210 +Define0=proc_is_bsr +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 5] +Version=210 +Define0= +Define1=_debug_,proc_is_bsr,_TEG_,_WM0_ +Define2=_debug_,proc_is_bsr,_TEG_,_WM0 +Define3=_debug_,proc_is_bsr,_TEG_ +Define4=_debug_,proc_is_bsr +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[IncFile] +Include1=incs_loader.h +Include2=config.h +Include3=jhl_defs.h +Include4=user_define.h +Include5=hal.h +Include6=bsr_system.h +Include7=renge\renge.h +Include8=renge\renge_defs.h +Include9=renge\renge_task_immediate.h +Include10=vreg_ctr.h +Include11=vreg_twl.h +Include12=loader.h +Include13=i2c_mcu.h +Include14=WDT.h +Include15=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +Include16=fsl_user.h +Include17=i2c_ctr.h +Include18=pm.h +Include19=rtc.h +Include20=reboot.h +Include21=magic.h +Include22=incs.h +Include23=i2c_twl.h +Include24=accero.h +Include25=pedometer.h +Include26=sw.h +Include27=adc.h +Include28=led.h +Include29=batt_params.h +Include30=pool.h +Include31=i2c_twl_defs.h +Include32=renge\renge_task_intval.h +Include33=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h +Include34=self_flash.h +Include35=util_funcs.h +Include36=i2c_mcu_sub.h +[Options.LK78K0R 0] +Version=100 +O0=bsr_k0r.lmf +O1=bsr.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=1 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 1] +Version=100 +O0=a.lmf +G=0 +E=0 +E0=a.elk +GO=0 +GOValue= +GOStart=FC00 +GOSizeValue=1024 +GI=0 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=1 +MemInfoCheck=0 +P=1 +P0=a.map +MI=0 +GB=0 +GBValue= +KM=1 +KD=1 +KP=0 +KL=0 +LF=0 +LL=0 +S=0 +W=1 +SELFCheck=0 +SELF=0 +ZB= +CommandFile=0 +[Options.LK78K0R 2] +Version=100 +O0=bsr.lmf +O1=bsr_k0r.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=0 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=1B339499E033F240BFAA +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=7EFBFF +KM=1 +KD=0 +KP=0 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib +B1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +OFILE=C:\78k_data\yav-mcu-basara\snake_trunk\bsr.lmf +[Options.LK78K0R 3] +Version=100 +O0=bsr_bsr.lmf +O1=bsr_k0r.lmf +O2=bsr.lmf +O3=flash.lmf +O4=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_bsr.map +P1=bsr_k0r.map +P2=bsr.map +P3=flash.map +P4=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 4] +Version=100 +O0=bsr_k0r.lmf +O1=bsr.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=1 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 5] +Version=100 +O0=bsr_bsr.lmf +O1=bsr_k0r.lmf +O2=bsr.lmf +O3=flash.lmf +O4=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_bsr.map +P1=bsr_k0r.map +P2=bsr.map +P3=flash.map +P4=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LCNV78K0R 0] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 1] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 2] +Version=100 +LCNV_GO=0 +O0=inter_asm +E=0 +CommandFile=0 +[Options.LCNV78K0R 3] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 4] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 5] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.78K0R] +BuildMode=2 +BuildMode2=K0R_dbg +BuildMode3=BSR_dbg +BuildMode4=BSR_rel +BuildMode5=BSR_WM0 +DefaultMode2=1 +DefaultMode3=1 +DefaultMode4=1 +DefaultMode5=1 diff --git a/snake_branches/3.82_trial_seisan/yav_mcu_bsr.prk b/snake_branches/3.82_trial_seisan/yav_mcu_bsr.prk new file mode 100644 index 0000000..864a7a9 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/yav_mcu_bsr.prk @@ -0,0 +1,16 @@ +[ProjectManager] +FrameMax=0 +FrameX=183 +FrameY=180 +FrameCX=1363 +FrameCY=1108 +OpenFile1=config.h,0,100,100,984,672,2,11,2,0 +OpenFile2=ProjectWindow +PrjPos=0,0,706,0,291 +OpenFile3=i2c_mcu-sub.c,0,100,100,1143,764,0,117,23,0 +OpenFile4=pm.c,0,45,36,1021,638,25,30,25,0 +OpenFile5=OutputWindow +OutputPos=0,354,837,394,1112 +ActivePRJ=yav_mcu_bsr.prj +[ProjectWindow] +ProjectWindowDispType=0 diff --git a/snake_branches/3.82_trial_seisan/yav_mcu_bsr.prw b/snake_branches/3.82_trial_seisan/yav_mcu_bsr.prw new file mode 100644 index 0000000..7c0bbd6 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/yav_mcu_bsr.prw @@ -0,0 +1,8 @@ +[System] +System1=default +[default] +Project1=yav_mcu_bsr.prj +[BATCH_BUILD] +Build1=yav_mcu_bsr.prj,Debug Build,1 +Build2=yav_mcu_bsr.prj,Release Build,0 +Build3=yav_mcu_bsr.prj,BSR_WM0,0 diff --git a/snake_branches/3.82_trial_seisan/yav_mcu_bsr.sdb b/snake_branches/3.82_trial_seisan/yav_mcu_bsr.sdb new file mode 100644 index 0000000..6ae12c8 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/yav_mcu_bsr.sdb @@ -0,0 +1,325 @@ +[SdbInfo] +Ver=5 +[loader.c] +T=52b3fb69 +1=incs_loader.h +2=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +3=fsl_user.h +4=i2c_ctr.h +5=i2c_mcu.h +6=pm.h +7=rtc.h +8=reboot.h +9=WDT.h +10=magic.h +[pm.c] +T=5320f646 +1=incs.h +2=adc.h +3=led.h +4=pm.h +5=renge\renge.h +6=batt_params.h +7=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +8=fsl_user.h +9=vreg_twl.h +10=i2c_mcu.h +[i2c_ctr.c] +T=51c8f7f4 +1=incs.h +2=rtc.h +3=pedometer.h +[main.c] +T=51c8f7f4 +1=incs.h +2=rtc.h +3=pm.h +4=accero.h +5=led.h +6=adc.h +7=i2c_mcu.h +8=pool.h +[magic.c] +T=5320f95e +1=magic.h +2=config.h +[WDT.c] +T=51c8f7fd +1=incs_loader.h +[i2c_mcu.c] +T=52e9bc95 +1=incs_loader.h +2=i2c_mcu.h +3=loader.h +4=util_funcs.h +5=i2c_mcu_sub.h +[i2c_twl.c] +T=51c8f7f9 +1=incs_loader.h +2=i2c_twl_defs.h +3=i2c_twl.h +4=vreg_twl.h +5=WDT.h +[led.c] +T=52296ef8 +1=incs.h +2=led.h +[rtc.c] +T=51c8f7f4 +1=incs.h +[vreg_ctr.c] +T=522d6d56 +1=incs.h +2=vreg_ctr.h +3=rtc.h +4=led.h +5=accero.h +6=pm.h +7=pool.h +8=vreg_twl.h +9=sw.h +10=WDT.h +11=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +12=fsl_user.h +[vreg_twl.c] +T=51c8f7f9 +1=incs.h +2=jhl_defs.h +3=led.h +4=vreg_twl.h +5=adc.h +[adc.c] +T=51c8f7fd +1=incs.h +2=adc.h +3=pm.h +4=led.h +5=vreg_twl.h +6=i2c_mcu.h +[renge\renge.c] +T=511c3fe3 +1=renge\renge.h +2=renge\renge_task_intval.h +3=renge\renge_task_immediate.h +4=WDT.h +5=config.h +6=user_define.h +7=util_funcs.h +8=bsr_system.h +[accero.c] +T=51c8f7f5 +1=incs.h +2=accero.h +3=i2c_mcu.h +4=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h +[self_flash.c] +T=51c8f7fa +1=incs_loader.h +2=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +3=fsl_user.h +4=i2c_ctr.h +5=i2c_mcu.h +6=pool.h +7=magic.h +8=pm.h +9=WDT.h +10=util_funcs.h +[sw.c] +T=5320f7be +1=incs.h +2=i2c_twl.h +3=i2c_ctr.h +4=led.h +5=pm.h +6=rtc.h +7=sw.h +[task_debug.c] +T=51c8f7f9 +1=incs_loader.h +2=renge\renge.h +3=pm.h +4=accero.h +[task_misc.c] +T=5320f661 +1=incs.h +2=renge\renge.h +3=pm.h +4=accero.h +5=adc.h +6=i2c_mcu.h +7=led.h +8=vreg_twl.h +[task_sys.c] +T=52e9b9fb +1=incs.h +2=i2c_twl.h +3=i2c_ctr.h +4=led.h +5=accero.h +6=pm.h +7=rtc.h +8=sw.h +9=adc.h +10=self_flash.h +11=i2c_mcu.h +12=vreg_twl.h +[pedo_alg_thre_det2.c] +T=51c8f7f9 +1=incs.h +2=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h +3=accero.h +4=pedometer.h +5=pool.h +[ini_VECT.c] +T=51c8f7fa +1=config.h +[task_status.c] +T=52a9795d +1=incs_loader.h +2=renge\renge.h +3=pm.h +4=accero.h +5=adc.h +6=i2c_mcu.h +7=led.h +[led_cam.c] +T=51c8f7f9 +1=incs.h +2=led.h +3=vreg_twl.h +[led_pow.c] +T=51c8f7f5 +1=incs.h +2=led.h +3=pm.h +[hal.c] +T=51c8f7f9 +1=incs_loader.h +[batt_params.c] +T=522d7dd3 +1=jhl_defs.h +2=batt_params.h +[voltable.c] +T=51c8f7fa +1=incs.h +[pedo_lpf_coeff.c] +T=51c8f7f9 +1=incs.h +[kanaria.asm] +T=511c3fe7 +[kanaria_c.c] +T=51c8f7f9 +1=incs.h +[get_ei.asm] +T=511c3fe3 +[util_funcs.c] +T=51c8f7fd +1=incs_loader.h +2=WDT.h +[i2c_mcu-sub.c] +T=51c8f7fa +1=incs.h +2=i2c_mcu.h +3=loader.h +4=util_funcs.h +5=i2c_mcu_sub.h +6=pm.h +[incs_loader.h] +T=51c8f7f9 +1=jhl_defs.h +2=config.h +3=user_define.h +4=hal.h +5=bsr_system.h +6=renge\renge.h +7=vreg_ctr.h +8=vreg_twl.h +[config.h] +T=533e509a +[jhl_defs.h] +T=52a97827 +[user_define.h] +T=52a97392 +[hal.h] +T=51c8f7f9 +[bsr_system.h] +T=522d6d56 +[renge\renge.h] +T=511c3fe3 +1=renge\renge_defs.h +2=renge\renge_task_immediate.h +[renge\renge_defs.h] +T=511c3fe3 +[renge\renge_task_immediate.h] +T=511c3fe3 +1=renge\renge_defs.h +[vreg_ctr.h] +T=52004274 +1=config.h +[vreg_twl.h] +T=51c8f7f9 +[loader.h] +T=51c8f7fa +[i2c_mcu.h] +T=51c8f7fd +[WDT.h] +T=51c8f7fd +[..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h] +T=49a3bd4e +[fsl_user.h] +T=51c8f7fa +[i2c_ctr.h] +T=51c8f7f5 +[pm.h] +T=5320f7be +[rtc.h] +T=51c8f7f5 +[reboot.h] +T=51c8f7f5 +[magic.h] +T=51c8f7fa +[incs.h] +T=51c8f7f9 +1=jhl_defs.h +2=config.h +3=user_define.h +4=hal.h +5=bsr_system.h +6=renge\renge.h +7=vreg_ctr.h +8=util_funcs.h +[i2c_twl.h] +T=51c8f7f9 +[accero.h] +T=51c8f7f9 +1=jhl_defs.h +2=pedometer.h +[pedometer.h] +T=51c8f7f4 +[sw.h] +T=51c8f7fd +1=config.h +[adc.h] +T=51c8f7fd +1=jhl_defs.h +[led.h] +T=51c8f7f9 +[batt_params.h] +T=5320f973 +1=jhl_defs.h +[pool.h] +T=51c8f7fa +1=pedometer.h +[i2c_twl_defs.h] +T=51c8f7fa +[renge\renge_task_intval.h] +T=511c3fe3 +1=renge\renge_defs.h +[..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h] +T=45f12258 +[self_flash.h] +T=51c8f7fa +[util_funcs.h] +T=51c8f7f4 +[i2c_mcu_sub.h] +T=5320f979 diff --git a/snake_branches/3.82_trial_seisan/ベースからの変更.xls b/snake_branches/3.82_trial_seisan/ベースからの変更.xls new file mode 100644 index 0000000000000000000000000000000000000000..5212dac6485080dca2bfd246e855585895ff82af GIT binary patch literal 26624 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 literal 0 HcmV?d00001 diff --git a/snake_branches/3.82_trial_seisan/覚え書き.txt b/snake_branches/3.82_trial_seisan/覚え書き.txt new file mode 100644 index 0000000..28269c4 --- /dev/null +++ b/snake_branches/3.82_trial_seisan/覚え書き.txt @@ -0,0 +1,9 @@ +A܂Ƃ wiki ɏȂƂȂǁB + +2.2C +SNAKE Ή (vCg) + +2.2D +SNAKE system updater mcu vZX쐬Ɍ߁A +o[Wԍ̂݁A2.2D ɂȂĂ +