From b407b56c41f62923142a16060060035864155df6 Mon Sep 17 00:00:00 2001 From: n2232 Date: Thu, 12 Sep 2013 04:01:43 +0000 Subject: [PATCH] =?UTF-8?q?=E6=A9=9F=E8=83=BD=E3=81=AF=202.31=20=E3=80=82?= =?UTF-8?q?=20LAGER=20=E7=94=A8=E3=81=AB=20VDD1P=20=E3=82=92=201.00V=20?= =?UTF-8?q?=E3=81=AB=E3=81=97=E3=81=9F=E7=89=B9=E6=AE=8A=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=83=BC=E3=83=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@570 013db118-44a6-b54f-8bf7-843cb86687b1 --- snake_branches/2.2F_IS_TOOL/OMakefile | 159 ++ snake_branches/2.2F_IS_TOOL/OMakeroot | 4 + .../2.2F_IS_TOOL/VCProj/Debug/BuildLog.htm | Bin 0 -> 3992 bytes .../VCProj/Debug/bsr_trunk.lastbuildstate | 2 + .../2.2F_IS_TOOL/VCProj/Debug/bsr_trunk.log | 61 + .../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 .../2.2F_IS_TOOL/VCProj/bsr_trunk.ncb | Bin 0 -> 912384 bytes .../2.2F_IS_TOOL/VCProj/bsr_trunk.opensdf | Bin 0 -> 30 bytes .../2.2F_IS_TOOL/VCProj/bsr_trunk.sdf | Bin 0 -> 1200128 bytes .../2.2F_IS_TOOL/VCProj/bsr_trunk.sln | 20 + .../2.2F_IS_TOOL/VCProj/bsr_trunk.sln.old | 20 + .../2.2F_IS_TOOL/VCProj/bsr_trunk.suo | Bin 0 -> 72192 bytes .../2.2F_IS_TOOL/VCProj/bsr_trunk.suo.old | Bin 0 -> 45056 bytes .../2.2F_IS_TOOL/VCProj/bsr_trunk.vcproj | 594 +++++++ .../VCProj/bsr_trunk.vcproj.NCL.N2232.user | 65 + .../2.2F_IS_TOOL/VCProj/bsr_trunk.vcxproj | 162 ++ .../VCProj/bsr_trunk.vcxproj.filters | 258 +++ .../VCProj/bsr_trunk.vcxproj.user | 3 + snake_branches/2.2F_IS_TOOL/WDT.c | 12 + snake_branches/2.2F_IS_TOOL/WDT.h | 20 + snake_branches/2.2F_IS_TOOL/accero.c | 274 +++ snake_branches/2.2F_IS_TOOL/accero.h | 14 + snake_branches/2.2F_IS_TOOL/adc.c | 475 ++++++ snake_branches/2.2F_IS_TOOL/adc.h | 48 + snake_branches/2.2F_IS_TOOL/batt_params.c | 130 ++ snake_branches/2.2F_IS_TOOL/batt_params.h | 56 + snake_branches/2.2F_IS_TOOL/bsr.hex | 1014 +++++++++++ snake_branches/2.2F_IS_TOOL/bsr.lmf | Bin 0 -> 183448 bytes snake_branches/2.2F_IS_TOOL/bsr_k0r.map | 897 ++++++++++ snake_branches/2.2F_IS_TOOL/bsr_mcu.dr | 46 + snake_branches/2.2F_IS_TOOL/bsr_system.h | 73 + snake_branches/2.2F_IS_TOOL/config.h | 109 ++ snake_branches/2.2F_IS_TOOL/fsl.h | 362 ++++ snake_branches/2.2F_IS_TOOL/fsl_user.h | 113 ++ snake_branches/2.2F_IS_TOOL/get_ei.asm | 26 + snake_branches/2.2F_IS_TOOL/hal.c | 182 ++ snake_branches/2.2F_IS_TOOL/hal.h | 16 + snake_branches/2.2F_IS_TOOL/i2c_ctr.c | 312 ++++ snake_branches/2.2F_IS_TOOL/i2c_ctr.h | 210 +++ snake_branches/2.2F_IS_TOOL/i2c_mcu-sub.c | 124 ++ snake_branches/2.2F_IS_TOOL/i2c_mcu.c | 657 +++++++ snake_branches/2.2F_IS_TOOL/i2c_mcu.h | 40 + snake_branches/2.2F_IS_TOOL/i2c_mcu_sub.h | 9 + snake_branches/2.2F_IS_TOOL/i2c_twl.c | 246 +++ snake_branches/2.2F_IS_TOOL/i2c_twl.h | 7 + snake_branches/2.2F_IS_TOOL/i2c_twl_defs.h | 196 +++ snake_branches/2.2F_IS_TOOL/incs.h | 44 + snake_branches/2.2F_IS_TOOL/incs_loader.h | 49 + snake_branches/2.2F_IS_TOOL/ini_VECT.c | 347 ++++ snake_branches/2.2F_IS_TOOL/jhl_defs.h | 25 + snake_branches/2.2F_IS_TOOL/kanaria.asm | 12 + snake_branches/2.2F_IS_TOOL/kanaria_c.c | 18 + snake_branches/2.2F_IS_TOOL/led.c | 399 +++++ snake_branches/2.2F_IS_TOOL/led.h | 142 ++ snake_branches/2.2F_IS_TOOL/led_cam.c | 156 ++ snake_branches/2.2F_IS_TOOL/led_pow.c | 296 ++++ snake_branches/2.2F_IS_TOOL/loader.c | 416 +++++ snake_branches/2.2F_IS_TOOL/loader.h | 6 + snake_branches/2.2F_IS_TOOL/magic.c | 33 + snake_branches/2.2F_IS_TOOL/magic.h | 24 + snake_branches/2.2F_IS_TOOL/main.c | 100 ++ snake_branches/2.2F_IS_TOOL/mcuFirm_2_31.bin | Bin 0 -> 16387 bytes .../2.2F_IS_TOOL/nec_s_2_bsrbin2.rb | 82 + .../2.2F_IS_TOOL/pedo_alg_thre_det2.c | 567 +++++++ snake_branches/2.2F_IS_TOOL/pedo_lpf_coeff.c | 87 + snake_branches/2.2F_IS_TOOL/pedo_lpf_coeff.h | 84 + snake_branches/2.2F_IS_TOOL/pedometer.h | 36 + snake_branches/2.2F_IS_TOOL/pm.c | 1508 +++++++++++++++++ snake_branches/2.2F_IS_TOOL/pm.h | 220 +++ snake_branches/2.2F_IS_TOOL/pool.h | 24 + snake_branches/2.2F_IS_TOOL/reboot.c | 23 + snake_branches/2.2F_IS_TOOL/reboot.h | 6 + snake_branches/2.2F_IS_TOOL/renge/renge.c | 313 ++++ snake_branches/2.2F_IS_TOOL/renge/renge.h | 26 + .../2.2F_IS_TOOL/renge/renge_defs.h | 55 + .../2.2F_IS_TOOL/renge/renge_task_config.rb | 59 + .../2.2F_IS_TOOL/renge/renge_task_immediate.h | 25 + .../2.2F_IS_TOOL/renge/renge_task_intval.h | 37 + .../2.2F_IS_TOOL/renge/renge_tasks.txt | 11 + snake_branches/2.2F_IS_TOOL/rtc.c | 182 ++ snake_branches/2.2F_IS_TOOL/rtc.h | 24 + snake_branches/2.2F_IS_TOOL/self_flash.c | 635 +++++++ snake_branches/2.2F_IS_TOOL/self_flash.h | 9 + snake_branches/2.2F_IS_TOOL/sw.c | 213 +++ snake_branches/2.2F_IS_TOOL/sw.h | 20 + snake_branches/2.2F_IS_TOOL/task_debug.c | 122 ++ snake_branches/2.2F_IS_TOOL/task_misc.c | 429 +++++ snake_branches/2.2F_IS_TOOL/task_status.c | 89 + snake_branches/2.2F_IS_TOOL/task_sys.c | 667 ++++++++ snake_branches/2.2F_IS_TOOL/user_define.h | 214 +++ snake_branches/2.2F_IS_TOOL/util_funcs.c | 65 + snake_branches/2.2F_IS_TOOL/util_funcs.h | 16 + snake_branches/2.2F_IS_TOOL/voltable.c | 64 + snake_branches/2.2F_IS_TOOL/voltable.h | 57 + snake_branches/2.2F_IS_TOOL/vreg_ctr.c | 638 +++++++ snake_branches/2.2F_IS_TOOL/vreg_ctr.h | 327 ++++ snake_branches/2.2F_IS_TOOL/vreg_twl.c | 169 ++ snake_branches/2.2F_IS_TOOL/vreg_twl.h | 127 ++ snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.plg | 207 +++ snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.pri | 1031 +++++++++++ snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.prj | 1408 +++++++++++++++ snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.prk | 13 + snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.prw | 8 + snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.sdb | 325 ++++ .../2.2F_IS_TOOL/ベースからの変更.xls | Bin 0 -> 26624 bytes snake_branches/2.2F_IS_TOOL/覚え書き.txt | 9 + 110 files changed, 19753 insertions(+) create mode 100644 snake_branches/2.2F_IS_TOOL/OMakefile create mode 100644 snake_branches/2.2F_IS_TOOL/OMakeroot create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/Debug/BuildLog.htm create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/Debug/bsr_trunk.lastbuildstate create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/Debug/bsr_trunk.log create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/Debug/bsr_trunk.unsuccessfulbuild create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/_UpgradeReport_Files/UpgradeReport.css create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/_UpgradeReport_Files/UpgradeReport.xslt create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/_UpgradeReport_Files/UpgradeReport_Plus.gif create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.ncb create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.opensdf create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.sdf create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.sln create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.sln.old create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.suo create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.suo.old create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcproj create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcproj.NCL.N2232.user create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcxproj create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcxproj.filters create mode 100644 snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcxproj.user create mode 100644 snake_branches/2.2F_IS_TOOL/WDT.c create mode 100644 snake_branches/2.2F_IS_TOOL/WDT.h create mode 100644 snake_branches/2.2F_IS_TOOL/accero.c create mode 100644 snake_branches/2.2F_IS_TOOL/accero.h create mode 100644 snake_branches/2.2F_IS_TOOL/adc.c create mode 100644 snake_branches/2.2F_IS_TOOL/adc.h create mode 100644 snake_branches/2.2F_IS_TOOL/batt_params.c create mode 100644 snake_branches/2.2F_IS_TOOL/batt_params.h create mode 100644 snake_branches/2.2F_IS_TOOL/bsr.hex create mode 100644 snake_branches/2.2F_IS_TOOL/bsr.lmf create mode 100644 snake_branches/2.2F_IS_TOOL/bsr_k0r.map create mode 100644 snake_branches/2.2F_IS_TOOL/bsr_mcu.dr create mode 100644 snake_branches/2.2F_IS_TOOL/bsr_system.h create mode 100644 snake_branches/2.2F_IS_TOOL/config.h create mode 100644 snake_branches/2.2F_IS_TOOL/fsl.h create mode 100644 snake_branches/2.2F_IS_TOOL/fsl_user.h create mode 100644 snake_branches/2.2F_IS_TOOL/get_ei.asm create mode 100644 snake_branches/2.2F_IS_TOOL/hal.c create mode 100644 snake_branches/2.2F_IS_TOOL/hal.h create mode 100644 snake_branches/2.2F_IS_TOOL/i2c_ctr.c create mode 100644 snake_branches/2.2F_IS_TOOL/i2c_ctr.h create mode 100644 snake_branches/2.2F_IS_TOOL/i2c_mcu-sub.c create mode 100644 snake_branches/2.2F_IS_TOOL/i2c_mcu.c create mode 100644 snake_branches/2.2F_IS_TOOL/i2c_mcu.h create mode 100644 snake_branches/2.2F_IS_TOOL/i2c_mcu_sub.h create mode 100644 snake_branches/2.2F_IS_TOOL/i2c_twl.c create mode 100644 snake_branches/2.2F_IS_TOOL/i2c_twl.h create mode 100644 snake_branches/2.2F_IS_TOOL/i2c_twl_defs.h create mode 100644 snake_branches/2.2F_IS_TOOL/incs.h create mode 100644 snake_branches/2.2F_IS_TOOL/incs_loader.h create mode 100644 snake_branches/2.2F_IS_TOOL/ini_VECT.c create mode 100644 snake_branches/2.2F_IS_TOOL/jhl_defs.h create mode 100644 snake_branches/2.2F_IS_TOOL/kanaria.asm create mode 100644 snake_branches/2.2F_IS_TOOL/kanaria_c.c create mode 100644 snake_branches/2.2F_IS_TOOL/led.c create mode 100644 snake_branches/2.2F_IS_TOOL/led.h create mode 100644 snake_branches/2.2F_IS_TOOL/led_cam.c create mode 100644 snake_branches/2.2F_IS_TOOL/led_pow.c create mode 100644 snake_branches/2.2F_IS_TOOL/loader.c create mode 100644 snake_branches/2.2F_IS_TOOL/loader.h create mode 100644 snake_branches/2.2F_IS_TOOL/magic.c create mode 100644 snake_branches/2.2F_IS_TOOL/magic.h create mode 100644 snake_branches/2.2F_IS_TOOL/main.c create mode 100644 snake_branches/2.2F_IS_TOOL/mcuFirm_2_31.bin create mode 100755 snake_branches/2.2F_IS_TOOL/nec_s_2_bsrbin2.rb create mode 100644 snake_branches/2.2F_IS_TOOL/pedo_alg_thre_det2.c create mode 100644 snake_branches/2.2F_IS_TOOL/pedo_lpf_coeff.c create mode 100644 snake_branches/2.2F_IS_TOOL/pedo_lpf_coeff.h create mode 100644 snake_branches/2.2F_IS_TOOL/pedometer.h create mode 100644 snake_branches/2.2F_IS_TOOL/pm.c create mode 100644 snake_branches/2.2F_IS_TOOL/pm.h create mode 100644 snake_branches/2.2F_IS_TOOL/pool.h create mode 100644 snake_branches/2.2F_IS_TOOL/reboot.c create mode 100644 snake_branches/2.2F_IS_TOOL/reboot.h create mode 100644 snake_branches/2.2F_IS_TOOL/renge/renge.c create mode 100644 snake_branches/2.2F_IS_TOOL/renge/renge.h create mode 100644 snake_branches/2.2F_IS_TOOL/renge/renge_defs.h create mode 100644 snake_branches/2.2F_IS_TOOL/renge/renge_task_config.rb create mode 100644 snake_branches/2.2F_IS_TOOL/renge/renge_task_immediate.h create mode 100644 snake_branches/2.2F_IS_TOOL/renge/renge_task_intval.h create mode 100644 snake_branches/2.2F_IS_TOOL/renge/renge_tasks.txt create mode 100644 snake_branches/2.2F_IS_TOOL/rtc.c create mode 100644 snake_branches/2.2F_IS_TOOL/rtc.h create mode 100644 snake_branches/2.2F_IS_TOOL/self_flash.c create mode 100644 snake_branches/2.2F_IS_TOOL/self_flash.h create mode 100644 snake_branches/2.2F_IS_TOOL/sw.c create mode 100644 snake_branches/2.2F_IS_TOOL/sw.h create mode 100644 snake_branches/2.2F_IS_TOOL/task_debug.c create mode 100644 snake_branches/2.2F_IS_TOOL/task_misc.c create mode 100644 snake_branches/2.2F_IS_TOOL/task_status.c create mode 100644 snake_branches/2.2F_IS_TOOL/task_sys.c create mode 100644 snake_branches/2.2F_IS_TOOL/user_define.h create mode 100644 snake_branches/2.2F_IS_TOOL/util_funcs.c create mode 100644 snake_branches/2.2F_IS_TOOL/util_funcs.h create mode 100644 snake_branches/2.2F_IS_TOOL/voltable.c create mode 100644 snake_branches/2.2F_IS_TOOL/voltable.h create mode 100644 snake_branches/2.2F_IS_TOOL/vreg_ctr.c create mode 100644 snake_branches/2.2F_IS_TOOL/vreg_ctr.h create mode 100644 snake_branches/2.2F_IS_TOOL/vreg_twl.c create mode 100644 snake_branches/2.2F_IS_TOOL/vreg_twl.h create mode 100644 snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.plg create mode 100644 snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.pri create mode 100644 snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.prj create mode 100644 snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.prk create mode 100644 snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.prw create mode 100644 snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.sdb create mode 100644 snake_branches/2.2F_IS_TOOL/ベースからの変更.xls create mode 100644 snake_branches/2.2F_IS_TOOL/覚え書き.txt diff --git a/snake_branches/2.2F_IS_TOOL/OMakefile b/snake_branches/2.2F_IS_TOOL/OMakefile new file mode 100644 index 0000000..42baad6 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/OMakeroot b/snake_branches/2.2F_IS_TOOL/OMakeroot new file mode 100644 index 0000000..16f4b11 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/OMakeroot @@ -0,0 +1,4 @@ +# +# Include the OMakefile in this directory. +# +.SUBDIRS: . diff --git a/snake_branches/2.2F_IS_TOOL/VCProj/Debug/BuildLog.htm b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/VCProj/Debug/bsr_trunk.lastbuildstate b/snake_branches/2.2F_IS_TOOL/VCProj/Debug/bsr_trunk.lastbuildstate new file mode 100644 index 0000000..ed27c09 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/VCProj/Debug/bsr_trunk.log b/snake_branches/2.2F_IS_TOOL/VCProj/Debug/bsr_trunk.log new file mode 100644 index 0000000..fb95820 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/VCProj/Debug/bsr_trunk.log @@ -0,0 +1,61 @@ +2013/01/28 10:34:28 にビルドを開始しました。 + 1>ノード 2 上のプロジェクト "C:\78k_data\yav-mcu-basara\trunk\VCProj\bsr_trunk.vcxproj" (build ターゲット)。 + 1>InitializeBuildStatus: + "Debug\bsr_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 ..\pedo_alg_thre_det2.c ..\pedo_lpf_coeff.c ..\pm.c ..\reboot.c ..\renge\renge.c ..\rtc.c ..\self_flash.c ..\sim\simFixture.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\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + adc.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + batt_params.c + hal.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + i2c_ctr.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + i2c_mcu-sub.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + i2c_mcu.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + i2c_twl.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + 1>..\i2c_twl.c(223): error C2065: 'DFC0' : 定義されていない識別子です。 + ini_VECT.c + kanaria_c.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + led.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + 1>..\led.c(162): warning C4133: '初期化中' : 'uni_info_LED *' と 'char *' の間で型に互換性がありません。 + led_cam.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + led_pow.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + loader.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + 1>..\loader.c(201): error C2059: 構文エラー : 'サフィックスが無効です。' + 1>..\loader.c(201): error C2146: 構文エラー : ')' が、識別子 'b00000110' の前に必要です。 + magic.c + main.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + pedo_alg_thre_det2.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + pedo_lpf_coeff.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + pm.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + 1>..\pm.c(1357): warning C4090: '=' : 異なる 'const' 修飾子です。 + reboot.c + 1>..\reboot.c(8): warning C4068: 不明なプラグマがありました。 + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + 1>..\reboot.c(14): fatal error C1021: プリプロセッサ コマンド 'asm' が無効です。 + コードを生成中... + 1>c:\78k_data\yav-mcu-basara\trunk\i2c_mcu.c(300): fatal error C1001: コンパイラで内部エラーが発生しました。 + (コンパイラ ファイル 'f:\dd\vctools\compiler\utc\src\p2\main.c[0x5E74372A:0x00000000]'、行 183) + この問題を回避するには、上記の場所付近のプログラムを単純化するか変更してください。 + 詳細については、Visual C++ ヘルプ メニューのサポート情報コマンドを + 選択してください。またはサポート情報 ヘルプ ファイルを参照してください。 + 1>プロジェクト "C:\78k_data\yav-mcu-basara\trunk\VCProj\bsr_trunk.vcxproj" (build ターゲット) のビルドが終了しました -- 失敗。 + +ビルドに失敗しました。 + +経過時間 00:00:12.85 diff --git a/snake_branches/2.2F_IS_TOOL/VCProj/Debug/bsr_trunk.unsuccessfulbuild b/snake_branches/2.2F_IS_TOOL/VCProj/Debug/bsr_trunk.unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/snake_branches/2.2F_IS_TOOL/VCProj/_UpgradeReport_Files/UpgradeReport.css b/snake_branches/2.2F_IS_TOOL/VCProj/_UpgradeReport_Files/UpgradeReport.css new file mode 100644 index 0000000..3411f63 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/VCProj/_UpgradeReport_Files/UpgradeReport.xslt b/snake_branches/2.2F_IS_TOOL/VCProj/_UpgradeReport_Files/UpgradeReport.xslt new file mode 100644 index 0000000..8277446 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/VCProj/bsr_trunk.ncb b/snake_branches/2.2F_IS_TOOL/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 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 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/2.2F_IS_TOOL/VCProj/bsr_trunk.opensdf b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/VCProj/bsr_trunk.sdf b/snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.sdf new file mode 100644 index 0000000000000000000000000000000000000000..82ae8ba07b4f10ec4d5e654deb6b7c9893d46be4 GIT binary patch literal 1200128 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
  • npX2raa~1!&&f!v8{}=a^LM=PA(7m zJ8bZ=l>2yI__6*qFfVf~r^SH9fW?5tfW?5tfW?5tfW?5tfW?5tfW^QWFfin1?7N>B z*j{4t`+vju|LNav|JYBz{keVD#cDqH#oAv!a|SvruNDIq0~P}o0~P}o0~P}o0~P}o z0~P}o0~P}o1AkZs@csX%$G_(e*rV*nswp=5-G3wdb-rO9oj{u!V5xNw&jE~|I(16< zH+#6G&2TXmocUJ-Qoa;@?!d5jbzOO||MIQ3_G}yIXWRDe-O+nXKVsz?Q%%uRr{*zD z!AeHI%g>p{{V@llDGv6A`49F}?o<&o?m|iLb{-xn%h$77B0bu_BPwb%J;U8E>bpoRpbsf-zSp{Z~GKJeI;pR!Pn!L>Hllyj-^yV>tu z(=ljFmru*4y@@?N#+0?@;$CNG+le#d=3&t$Xv)t+?u$}Z&y2fBnR4#x-Mek~f$cqA zeTjiQN_C234pQti>SaQ4ex?e=Rm`~ODc;vN(7SJMUcuDq+~6dg#GzpmI`gwv=xn4) zsNaRozTJs|9sBn0nOSn%U8Fj{ObXRn&Cwf1Jl8PeUZA=l!KY5G`z6ci=}_vvK3el@ zYBKnSa$Cvxo|?s!UDLX&OT9$V?K8L#E3Y`GPK}&ONm~AGHdiO4rIhl#LZ%vU9=lE3 z%?)5t5i*x^8`X$MZ+VsVWP}!R7XF1>Ip;#_ZOOH#sXR_Ep9!Z>rRTJT@jZ1RQ+AQ0 z14)h3T(i){YwR?)V7M9Ec#2H3l@*pVVjG5SVMn!n2Byg-)aP2_9HEz}#+YY^R!9sc z=Ry}|2Q{nOV-DFet}E)-%_Li(QsaoyuGZ_+vebsuC9GR(GI!((cP?94?;R$Yg^Hm1 z>F4!AY2Evo8A(W~mT@fi?7G^V3wXy?Zklm0zKtEyc9C)BW}2CEj;hNDbvU#Hy+fa& zN^DjV~xRX?sFypSM+TOck$5jQ%(sdJWaZoogzYpbRPO5xUb+nxY z9c@KdVJA_ir`Jh(^7~CfPp-b`5=Ut=7K;E=^z80Q>`@Xg!8ywSrh7ZI4>QxXK$ z>vU+Bq%6pcyP8)61N(co9vGOWX6Ofl71fNqT%<%o@f@~a z+tozsR8Q9f`@-4ifepn>lXD=?*u0cg=T~&@{ zJ>-&K{hUia@At)W`zucQd;jW`Z~c3xEI;CuAN!h9Uhr9`{P`a^yz2qf4%jUAbtPuDK$MJl@}MLCojcs&Uvom7Z3ic?49lGnzNq>iNy-q z^f$+ZQvAV(-~{pHyWecwRyd0Ri-ETn16DnMd*z2^jm3b)fW?5tfW?5tfW^T7Mh5mj z|HzzDdpG-hUgEXB>ag|wzdULzr^SH9fW?5tfW?5tfW?5tfW?5tfW?5tfW^Qc6$2;8 z+D8&|7nafZ|66&Mn~wkKLx8pZFnzG^sDHNW68|xOo4?Oj=c|>ZQW;yRqy@{1&T?7| zSPWPUSPWPUSPWPUSPWPUSPWPUSPWPUSPcAu7zohI@)I9?X-+wf|9_BYgEo-2*8lUE zv78nI76TRo76TRo76TRo76TRo76TRo76TRoe_RY;{r~%a+ca50WTg(1= z>{w2V0gC~P0gC~P0gC~P0gC~P0gC~P0gC~Pfj=GwQuN`$zxwxYJXcBI|NE{w;1}P| z+hRYtk#(Mn@8>D}oP((UM~Dy7_x}V(Z&l%?6al_gjkDOq*QpzXuS*frXuo$oyuo$oyuo$oyuo(DbU|`w*Nv*G<_5WUN!C$dj8Pq zu-SADyItpSICKuDQ|EBGbPl&$=kR!R4zE||C@Ru9ii>p)pHJuT`*n_z5}hLu&^dxZ zoujl==O`=FIm*j*j*1GMqq0)xsH)OAs;hO5ni`#>wpQn;tJ68^>vfKX2A!j^QRirC z(m6sQog>Un<}#~U(m7gWonw|w=a`Lop7xZI>2n-9$6Tk*G0&xQ%y;V?=XrFF1zw$F zVUf*vdonu*<&au2)=U7ppbF8e?IaXEa9ILB! zjx{wp$N9B7#|3pd$J%lj? zBj#_zt^?W^`x)K7xJ%gZKRI?%KjsM+4ZFV1-g3Hd9Oe2_xg|0*+cF$ z9f$edw7-w8SNOve<_O7-l6wV(lF7H1J|uY9f46I?-z(9^Ft^aPkY8eE;mTUlDehr* z;dRdxVm+kjBK>L2H)b4q72lX|xH9cOOg__OYnnoZ{c-ZC+{O$<-0Q!a z%xa-;8P3*jU^XJ&LjF565#}VW-AGAD!*ETE*@^fM(uJZCCN7Z~N+8UgTtWPLbuvt$T))xZLBz{EK#opKs9fDfs-LBJh%hbb zm|Tf3_b(*ng-S5l5??`)p|~BUoRmSg78cVl@eYcxRuf?oM$IEk!BEC}DJV*Yl82az zx&9CtcuW&vLgq@n#fnc%&8X!T6EpER#WR~s$f@U3G-o@j^lB8QG5K>feUMW#7!yEO zzCcVEla8sN_#v=CwQnO?+d%~%^>ZOnhnk8kJmSl7h3TRjI;g6(&`s198b3_S}q#xP%XixNF%tF9#Nl#Dd7O3fzuh7GwI zggLAm;00#F611CWOAqlD5V_^$0g-!x0nByX%p0}mDa28_pSy>tuP(HC{QIq1k}wH& zWv;km8cfY3OoGL8WaT~qE3{!^?1ng*m)0?Y39=i|;(}0WHZ|KYS#}dO#+rann4Rqk zA{uIu_uwv$uI+zDp;EH=^y1l8_$+EF&r%Pab47|z zU!HqqO3L{3=-F3>W&{nP@iEP(U(dZVC1rei_uMHnKD+t!@wr!~q>N8bpKWEwsJ+fT z9{8m9xl*B|f=`&MDyaFT?khcl&}PS7GH-10q)oeI*IfVezL2lcbsn|r)a+2JC==o? zFI^O_k6H@!iO@Lm=O0}^NfNKp$@bak@%g0x7#_pE8ebhJpbFrICM~` zPoX_tBnJ1JA2Xzh0Oc`>hxKV6UuS2alGgSAbPvR{Hxg15D5dMPkJ&df)H>tG_FEm> z@5aQb`kIb`hrTrYXD5yiztneZ_?Z)rv7y$7y6+vj zD>cx!C%Pljli3#E8tYDXWp0k#l)NE)-Q?A=t0PwqUXhGToykk3OX6D+o3kC^izeG+ z?eUFc>%;3K(eT>r`I$AX%SPLRZJE~OlJMf>qS(Utd4uyN=fq}9v(n8I;cO^XGgduW z6{}2FOq4~+q|$UCQ8MP6D2fzGp13>aN;?_*>w&p9)!3u#-QxX!dgZ@<_&@n<${fPf zsZ;BI$(UPAuMC_zB`&8vBd$~G#!}8yIpce(nJN2@-rYU@>_D=MUv%wF?CHsKiMVsG z+HX`vU%2H}){_zU#W`>GLKVB{?4%z#V9WVPt%F-l++U3A5_iW;5~s$8IEWr+s*bmk^|K(e6?b$Za&$jK`yQB9OC4oE;C$lMf>eM`@X*tB`mmIlbp+xTBMg5H& z0h&&_AhlJ@xEnO7j^6E4>P$(bGd~lBPOXyV>8xPJ-Jlb>*)@&Edu3Ks@QalaZo|~6 z)XKD4whbD4_w?=V-PSuWWg_plkxGqbH8DbEKH>cK>4@Fmv!iE!&)#i4Q|f%cPC6Z` zE^!h%^9dI^r%mRzeS7+d+o|*N-40Ue6uQ*2P-$9#Op2|6S)sCP+wT25KC@zb*hy;9 zvgtRWHlKCwXU1y#w(aBrG_|d{Y<$GUw&xxLs%{U9HZeAJIWkt!T4TNJ-Mek~f$cri z9u7>c_PuUW>(M8bu7%pE%963VR2bFn>l^6Zx3@o+(7Y$y<1={(Ky&U1=SwYNd{4!h zvKz9M9&~!QaP)5H4HPQx>3zUlo-L}74&TQ?J1 zqJsEbDVI!S;x{hlk8CXo2IF%v>K+hGd1O-qtbcT`8`nL$hi8&&P$^7DV@~TU*i*68 z<*94gE@L^NC%B#$;h@~2N9PoG=qaz<=|`@rmyDTkgG6ijse8gdquB=^1zUq@ej*j; zvj??ZZ{0N3n%T8cRr$p;=w?lqXKES^dG+j@$*b9n@2Rz^&8f@Tw(0XqJQVYDO2{dn zcrOUK#4ngx`2`hbd34OY=!(p0G|eMeznZ;E+o#PVVW*i@=OTyldSudeC5M^{Qz8X^0I42SxP_TWy}4J4sn#Pft^p7#P^!yY;{TjYzSXrSB6M8Rd7mMEV+eusk4@ z#>!BwPhbB)V*da=DRv*&vo|l`uWok9_g?6dD}L;hKk_4|yke0{{z|b+zTwZE^3QH? z$@T?)xqGu;{>Ptr<)H@y@Ffs{JncP{JqwDBzXZNtgW2aR-ZrYkpsA?`99?J$JPCfsfPc;YpgyGheYUxTQ>G z@!tj@RQ@VH_pb;QpZvE1N&eoz^eg%la;jy2B_{sc0(hE!y`SQlYQ>*!8K+d$`Cg-t z|2RSTG=Cw0A}V|(KqpiT=09IZ`o*HVaovIcoT2ch5|aOjA$L^HC z#(xu0cvFd9eYe0E5^qrCzYU;^-nh2Fe@l^zUffio=fADUzbTgKa_gS_R~O_>TS!wv z^WR_O#8baU0OK&tPD?swFB8!1>0T$G+ta^LKpu?i>il;dIiX@LUM|pln!RM8yIJ_U z0l#Vf%0a;`MIZldNRlSVr+5iLe?tkue>0+lAiA^yqOK;uzhM@i)^164+;9F~0o^*& zHwz3wrhm)ev|g1I@gK2hhVXU$!q*XaTyZVA{O2tQ1CbI9|B(wsg|8=2V5}CJy`WHV zONosC6h;YE_^N^$M%++B@Sn)&Llo8!{=*rgm)zVmR!OFQrNN*QFMs6TgfM^Efd|Nc z;Xx-9ZTk!t?N1cl1+9;e1Co%i;H!NXL`8+o4e3li#k6*GDh;wag2ns*n>y(mdm z-!?eS`vHZwmC)*n{U3gmwt*%U)t|beh;xn(O zW;rbeECwtFECwtFrf1;zQ1|-+?+rcDdN}&-&Ih{h@4Gje3LF}_>%_s-?R^KL{ek`C zeJA&h>~8Ii-V*2;-#V0tcDLR%a{bV??3%u-My?3NhcEBDEP83{mQ=@y_Tlv>qp5X) z3sV=IToYYAv~pzm$)&?>ossC0&PCk|0`rIGw$AQu845?6`WlAoI%`r@$1A$a17)G$ ziISB6MDeh<)6Ja6?cKKHH0J-&;`y06`u^Vnbxu=E16(%qslVwHpLh3M$DgO}tUK*P z=kEJ|;6|HwIqQ~N5n2pb4E!M(5bL3+=i>SgX^*AbV!&d+V!&d+V!&d+V!&eHe;)&@ zW_|u2>S_J|>tbN8QlO1P$7#VYr3fYMLNb%evYFIoGn3lwW>Sa4OzL!+NnI{8soQNP z^?1yrUay(7sK`uOTx=%w`OKt#znQe8#7r6pm`Q^{Gihn5nY66TOj=%UCatJ2lU7!m zNvo>Nq}A1C(wZ7GX>F~Uw64xfT3>G_ZD=r)Ha40`o0`m|p^%w095$0SH=9XYTFj)g zW|>K6&o-0JnPVoMJJ(D)Z=RWS{(Lj(dFPo)7c4N7E?j6PU9`wdx_GgfbjcDkX=|&Q zG!ikBwzZi_mo7DvE?Z_MUB28*x?+WybmdAj>8e#`($%ZYq-)lgNzXsuOnSiuX4185 z&7>DzXeM2^&P*DOnn`0ZGwJ&EX3`BC%%mGPnn~N+&7_+)nMp6Y$V}SNVJ6+Y*-U!z z#b(kiTg;@FTw*5G9#a4Np4(Q6Ee0$GECwtFECwtF-rfw1_ojA+ZW-z6rk{ij)7t*{ z&8eG0H;%lc`+9cW@HNq^$FEFX5sHso-hCOnba+ej;_;5uMWIb28@o5K^~2HVy79HC z3qt3QtnOaLRt_(ZE*o!4MMAA3i@O)Gg~R7X=a0`#%?ZsOY3Xie;o+ue<9L0lE>t^G z-Ce~hhs&d7}+mSmZaX z?HiW#4J-ME1$@K0y{-_me36= z=Y|Dy!#cTPdEBrnZdeRAtbrSrz6~qhhJ|j!`nF+N+pwD5q96Yo)~*dp)`pd8!veKo zUD~i5ZCHgiEIu37oDECOh81SR!m?pK*|3akSUol@8XMM%4NJs^m0`nzuwfn8u>5OS z^))Q^8rFCXOS^^@UBg1IVg1&yY-?DpH7wE^)@BV$vWAsd!vd^f-PN$%YFK48EUp^X zRJHlOH{Hrv0WAhB1}p|F1}p|F1}p|F1}p|F2Ef4EdHlcSo`ro|>`@l3RPw5le)k^^ z{0DdN&o2L7ObmSI(T6{|DfvwapQ|jRqf`mN+CKNsuU)w3rY(=&e0am_PlP_nQcF_X z*4(&q)vm7XiGjq82NSm~+OzGzqOFPk#QwyM{d*I;db$SoAK1I=#>BR5J^S}9-X_k7 zQBf+su(~8!{yLPp=ng(GDZWbZ)|Kv5mGVzdD@w%&I_KB5e+Ej6RCAylTcOg0GfwID zZIny^B2v_ew0yJd3a$>He|OR$tRPJEy9jW4*8=Rc~X4l1Wk-LjdcZYzC5 z6Mt)v*wepwo54ZxtEolGuzh82KvNGM&a(QQdiA>03pH2&;!78P^(7_st)zYtY@)4@ z?4>hKegFQh{)7GWZQI2=x9YADt&-EA8QY?7T-EvL3*VIB#vwQqhU zph`(6YALpT%Nx03q;LABV#ev*nb^H}8wV&*)D`2Bw%J!Nm|;54NZn4T+X)4VIv*}+ z+wn|4Z+)R2WqInN(>haHd)u~kZ5!CXc$;Orm+DnYEMMummvjMeTG zYIUhCflk`~cH3t;xhPaH2&%EYMYZ%8Qc}w=5TTM<@dal0ed~Eu5d@1S^DL<4sfAiy zYJ;$Vw%P9YnN@~k-Nn7)d7r0tfAgG?YL@z&+ibUGFw)gDl z*L15cs8kH7z$I-T`L}>(!1V3Zq8S^ocN-LQgbGEW+M{EydN1b+Mcz)`znFRPB2`_x z_a(NYQHEa4kyBrVOWNM}>HD~P81?UT{2PR{73TAd9|*mBd%JF7KFTTX%|F&Ryjc*Wi-2)gPKQL&Do;n!~#idlUP66J6AS)LlZE zl4kMU^RM4_Q~6ia?u}^0;H!}A89$ZiFK`xbedf)2p3vZ&9tX+r&Ail>WwtZ{I)v<1;L~XR36k zXfJX~LyAuJ$rDe0{yS7^k;>_d(c+m_m_3PGda1Igr<}^Ls`9q2_i5=wQJVUpcZMo= zDk^#DRdr2u`X+tn{{}jKc9Tm^((zw+yX5=mDF2;Pe(t}W@_C=7@Ap6Hl2_63ncuqP zjvANzm(^~$^A4B%{o7sgJAUnwe{!2k-c84^=$rqC=qUM>Qy%^gr#$xqF8R~Hbjlm9 zr2h~2woAU~|GMO_PP*jlC!O*yPCDfSoi3TtaWH*kL&zRwzg36%HhZ+FHuXzx@*Kic z-alu&=As8R@<_jle_sgch2nbpe_v4k3SoEe-X8AXOy%ot`u7E1HAIwj7XQ95ODEGV zr&rmtm#Td3zZc9@e#S$o6eAiDtw<#T6l|nY{g*@KzYYm?e`o=f)28vWUP_}F$%x2B z8qX5~{h1UtFypRMh`;OTD)^fTv!s3w{|+YxH9~<%>OvvVpGk8aGw$Y^r%mx+6jO@D z=te{@QjC##!8QZEGsxOeAEj3eZ-fq!-Zml7pGhzNLQ%ixr}wn^`$a$f9g7&M zBE4Z-Aq4vK^r_vw@AjVk{9hZpsQ;DsSA4pEZToTw=@r8p5xw{u7%{Ua=zV9!?i15IpN`PHTHuY#09 zF_aN;ixi4!L?P#AQaat=!Swg)p;8QEgj}d>qA>bhSA>*w z(&!;^VD~`RZHe6nrsnt?WyG-<%LpBUjkGhdunBBLuxa-NpA`NFFsAN__rifm7+K?W3}M_nr5sMT%@nHU681MPN_zth?qSpl;${r z#H^Cln4InW9#M-2Oe_0)ZP!t&FPpqrn*Ar~F;&Scy~tvIBcX3*R;hh>-+I)^_rf>%GOOM)gpdh71K%lr>r8;tPYj6EBB1|m*o#Y^TG?g zhCjW`BUIBpT~@1}4%2+Vv5$IX$L~Dy*8lRz_ipye$4}ZOw{HsIuLl_Mz5L4qnXum0JN0f77BGq!Gla{f!v2ZlY&ZrW*xf^9QPQSXnjFELpi!IJ0m=#cCz6@m|zQlFM?cR($h zAiteS0e6%He3LPL@TTaRdnRy8EW}s2?Kld-7FC8pg)ofH8WYJAa=U_DE!!&T_z>qo7sp_#;(F8W6zGT5R0a8 zry3S28~rPVvdxlXj+AmKv8WQ9oWG&S_=cF&4Z75gOLMUa@f7FO6mq>-=+n#2_&R#V zAw4|$2wVXzmK>NfyvhC9L;W$yb^xT|g{St-d# zq6v2?#hY0%iYm952|41H>Lc%zyUU|ZDYtV{?hd&j$H9|nG(cC%Q8LQoo_L$^ur73G4ITH&K%s=)TcT*gMY z(9Sw!YE8IEimGiVKasrwZch|#l+1>yDNr_kj4>9hJl3{cq$)TJtlF?>YY(Y#Z@?clFu_G!Hgg7y7r9|oCA7`}DGgaME z{0e}G?A%f}oGCgW3=z^JMNZL~wiHLQT1itbLlFE;ZgT6zyy*N!yuhWzWfS7XYP^cr zA;hf)u~Ud61~KbvSK>yRu$`%$DISW#iHOu3R3nmw*eU$+vt5VUD~a$Pe} zh{c?(YM>B{c~wPh7h*BxsfZmyEG8fou~Ue}grFjJ39*=72gV-g+Z3eMhh?g3~ z(y&_Zml?#e5HB}~Z9=@pAhrwf`3A8=h%YdRT|z9DFqGVpJGUrQMGd}fLL4)Q?LxfX zAa)4x27}ls#2XD_>4d6slR+#C@kIu)O^7=TV!IG;Hi#WUe6c}n6RnTSC}wJj6)&Es zoQP5tGWd212G<(IOsH%(i0vZhml(uSr@lH2K6Oh*+RuafKuItJ;u zm5!g@A<5sQ<1PyKI-Q5VhV6&)X^gHc>h(fNKlR?z)D zbiRg;b#%<5BS=RR$^Yw4N&X2PU#H_WIzB|lgLL%KaXlU7bgZXi0UiJEpd|l{j&ITN zX*x1=9Hyh64mZVhBc0pn_}vqBIrAUuJa(`b~ej)Msz0LM+wo5$gT9rZsX9Y3b ze6pQY(RqLb?J0%gA~~uQsdwpwwdI{k$$4HUT;giIgy++jbiz$1HZo5D5CoJ0$^hkn z3P2^G3Q!HG0n`HO0QGpq;s8iO?ehYydmJLEyGIap?lM0Um%C zPy{Fj_yB%D2_OIn0!jg8fO0?upb}68s0P#kY5{eCdO!o9kw92#Yl0*M2m_h{QY(QB zumS7<2fzt%0o(u&zzZk>6a#z!KcEB<00aT0fHFWipn||{uf$~)pc+sEs0Gvk>IsCQ z_6A5A0Zo7qAPi_Ga64LXISU}A$nBH~JvM+H-~c!QE`S^00eAsLfMS3T;0Kfd0)QZ( z6i@~z2UGwm0abu%0%57M29jDp9iSf20B8g>0YU_BR~VPg05(J*0c3y;U-A05}0IfE(Z;aJ#*@ECLh*d;mY71P}lO3522UQb@`G<$wwTx2F=9 zRe)+h4WJfK2dD=$02%>JfDj-IXa=wo1QI|7*Z_8b1K0B(Q>-~|)`iUB@=pFkMu zDS;#a2m(q0Wq@)(1)vg81*itp0BQksfOhb`Ur%fUOyxyfB+x}C?49iSf20B8g>0YZQ< zpcx;MPA32*`201v=R;Pw>}3R8W>koy3BKnWlK2m(q0Wq@)(1)vg8 z1*itp0BQksfO4L-!@BqAkB0w>~ z2k-+*00BS{PzopmlmjXNm4GThHJ}DiOW^j`;j$jk0B8g>0YZQSfo7)-5<9>FZ~|NaH^2k%0*U~|03W~)C;>3{VcJ08|310M&pR zKrNsSP!DJTGy<9cAwU?whIDpHHzhC20$aA2@nE=0nGq5OdtVdfDK>=h%>o{UXQ&#`KipO;-8W} zm3=MoTJW{ePbNPZ{^Zyv20sz`#KgzbACG-}GMmZ9vr;yDJaJq)o_#g(YVg(3k0n1A z{@Bqp^=pzMOeE{<8FP_NBy2!Iwr~Jo%B#N8%rmK9YSQ@j~#0?DL7| zgU^pXmwYb#+}N?fW07MMA5MQb_TkBAGtb7Km7dLJ5}9CTbT~O29v(Y7crU#-Eg)%pOS`2_6}JBKbu4iLu8AACEjf@mTt? z*kh9)%zQBZLFt3p4~)M*{r=edCm+o`8h=!JG@DMOgXz(sG#CmGx37B6HF!NJJjL@J$%r6%8*dFP2kgNGuA zChke!6T4^f?#$isyQRCccO~u$-Zgq>^3L#`V+RKhMh;Hgk-j5#$K>sq+vB%Ow`Xrl z+!nlT^g!}J_(11?G?492^auM#_b2y<_m3q9lab^^-(X*)Z(?71Uu@sx-pt<#yh?Ht@0**S4b`j*%&lRGjy;ya`r*`7pC zuxE68a(j6D*tWrKk!=%O(_3R(Cli@OJRv2r-HGmCceHEb=Jd_6nVEaE8C)^a ziA#c)jBZJ832zy@m|dLRoY)-PJlc`$2zQKKG6NjSlPfYS;wz*T+2!NQ(#vAYCYNTG#+OP< zvu%mCVB2UU83{+mS_fMrtrJVqOJYkV7iSj77fXw?i{guUS(+)0mrAACU?La{js}u}aA2%t zuq0A4;ZOTx{z+fP7xPUPXNu#+QgNmzUX=1iyc3?ZC+3-SXWVhOGa1EccK*+g<~(OIiqq`O8_n^7 z96Ict8T8lldg;7_p6i?Q9y#xaV@&9Ib3;PS&Z&lmo--d3hG9+%KsrwFRtAE6_=h2$ zW+xxpO*xKZ<4_2&0Zc}39zJ-(7|mlgHsj+kKKkM#t%?B6X05Cw^i%<=0bvL?G~-fk zrOQorV22lYnICvX0C-gy@Y-@hJ{j%aj)`XX?lYfh#{9DTU~YmL)5`8cd|nx|$nJa1 zrjeU*=P(;0?Giu+*Z_8blfa#J;nEH80K9-AfRDiagddkBfB+x}CHyI*+A^TYB9isohjP z_*2Y*xc`Gsf?)o`{cB8scybdTnDcP|E;s3c`3`ztHgCoQ6B}+mso^fdjD@?*Y{~*N z67Gh)DGAI*xSRQO1ZE=Kv-74RLJ%se>eLIS?ZoSSuZLeB`_$m4!k-#@E%{pbwXshQ z>gE6jKOX-0Xf~M*XUAv;Ab5OKn*j)ZZ1k1HE7B{OkH-1(UK)Eb`C{9L`~p$H%Qhxyn){NAzm48AAwo{2}& zkHj9Cd^q!P{9) z`2Ml`2Jeg9H*s(J-q^j9gPFnjpfs3GB~roE=sT0|48L>i5IdB;Cvi{kp3%FLcZcsD zyKC^S$Xye6rtgg1Ie9R1Fn&-vn7t!$NAQl(+mpA4Zy&pD@V3Zp69>`&WVSES7wj9|m)sZLH@0_hZ)ESpp7fsBp2^*r-SOSh?(D9_ zuHdfGTa&kjZyoDpz1f|Koxz=>wBP%CX zq*ugNOfJtXk1tOxi!7U1nqC@PI@y+Ki?>N_*+?Q1jEuG>Tf?nmO9q!jmP{;8FODsq zT$Cvo{g2U)5obR754Vgp4>m`dC&KA)EIb*?gyNx8Q>1C4G2IwzoNUN6#2ciBY<;3W zSU*~qtP9tT)ehE1YA0&aHL;q>>P&UKTB^=gC8~l|qm{|Za3%eAu_9ZZC=Zs8mL@&8Gg58fFYR$j)yYgqq6<9<7hzwx@)eHfM}{j%Td_qsOv50g2w>3qz; z(0?~cl^T{6{FrZ1R4TFszH_Zi@CJ~?6^UR!b{p}Nw?mHXGzw-EEF)c*zQu1B4l1GAC|Vd4C!a^@e2nO6BQ;2&Oozw+ zg6h)D=gR9to7fLY`3_w)J{twN+kc4E9wwrWP(*ig%WLT>O%e}TA6Cp!$P$F%Ot#sh zo7kUIr1$1Wnx@DQF{gl(goz5%=+tN_E;hV{T|?>orihEkqmXejWQDJWu2%RDtIQDf z6pq5k$2-`y6z2U(7&6vhOFm(KoX)TU$vWy!a~JN1{fBrg6dFCF4zm7cCA7!~C+VbQ^G4{mCh*Ql{}SG z3VuhPMioz@sC!61QV)09-$GZ%C{;&t=@&*(6gGP81txvXJc?r!Rg1rkqVN(K9pv)3 zHu~y(wf+?(TgdOcSQs%lmXQ=*2%X2bux`@vd7r1My`kG9On_O@YVBZC>@A^M?$2vGapy#tMk_iH7HedtBP8IQVJUfQDi2sUpYUz zNb1OEnTNa{;hBZD!aR#=$zuc6QHoP3eVQr4o*G1zYh1*AGN&le&WeswU8?1ZsDyJ? zTPT1nr~44yL>;E;qUFmh^5Q@#(r)sQm{BWrZRFQ@5r(d*Xmn8NO_PNvqG0ZMy6#Y# zI&P!FoJt_i1iU}ff~cu#gPuZfWIYB-RY#_eRS5{{F`#NNjgtEzA9#nSqJ>*~?2N3% zdq1bO7VipGqgU^)MOs1;DS$} z9-;Q08gMNGh$D<#ZCOFCZD>PVXixKUg14b4f@5glNCT##ZPchx zKA=>i%p9Zga~RJqx{XQd223W~=*i2ghD@c`%kN=!xB|mo8#O&#BGXgf)<*3SDzEZb z6DYbw%4jH_9+^?Lzs^#g0jCH!Pw?g&I4$cZ5nc8amYv+D&ZW5C>U{ zxA{DWe6_wh?k(5nK#&(CiP}MIif4%w+m=&9g}71Si6O1RRg(6)W&mcn>oCz^qh|;` zN2rqUv|?V}Pcd=D)wth5_YSK)6qR#|8PD#clxAv9$U>|dIPho_ykNor*}?DHz#j@K zwV#>~%qBR{BBBWKhJpJHLuDVCeT;5#inti_8x@#Gph)R1Z|pz~))Po{$QRJ@2JlrRg@;MG&93l!# z#gKL$x50WjKsV5dsU_CpbXLlwAPWmGj=08*gOu~4j8dX>cf>=7yA+;4U*7XtZ89;1 zV>`@qh_~isF<$!%ViBWQ^@GV62el()<{_#XY2*~;xkw47X^IY$nJDpiCL@dDniq`; z%;Xd)Opq__J}*4>Rx$$(w$e>PM+?RAd2T*tu<9^F|{j?UZ}0m z`mbD$w{3l1dgv-umg*t}qio_gZ4_v>n@scZ2PIjpdn|GvjpT!}4Rup^@u)QkPtU`s z&T2j=Br6pW^Kmv|nvE2|K?I>np_c$seo`tFF7RF`Rb>?77Fa`ZVXZ4C5)WpigoYXvoLX{{DX@M`RV5qUfotmK9LxKBo?wg=%nM0`@e zfb1uWxL2(FHMj_qv_-sE%X=51O;#FP6uv&*%SG{di06^o zoyfJ+qPfN*?Gg+G)BdB=_(V(MA%lHN=849jnM5}IvkH^CC0I~JU3?agGNnsM!5c_g zsuU!i&|LO|11_rbpZw>^H_|_k{XFtB>8J63jQnWg@3TKl{BZL7()Y7}Cw*_?Z{vTH z_)hjj;#-k#CcZxT*O|YLe|7LLgI|h$VRAG)GWq$;=aZjHe^&al^rvH=n)qb;lcOJ( zvV$K>e{}5S!I$GNWj+#rKJi@g!xNdr@Zg8C&rH(WF4B|1BNH^s6@D!HfyDdMj}E3M z-y43fcwZ%QIPqZk{>ghY_a+8|gNb*h55*3R-931B`p(S3X|=}V<8i4MG1F-G$#$@Ss&*=S~6;==3&$@62Y zBg;pZCL@u>*@ctm1?Nk1ld~siYI10O_u9VmhgWwmZCx_Hu=Tu?a{?_VngVqr6`jG8 zzTqO~K4D|5u6p%NvuXU_FUJ4Wg=gLC>GM0v<{Dnl=-2Y?N!Lcoj5PIZ(AaorG=_08 zwMU$DJ~NQ!w~%LP{)p>SZ`RO{93yD|pI4uquFwWH8~tP|nB*HBU0h>8s5}~Z3#x`L z>W;G6YEwua__&&n@bDBz1FKk2J``gs)N4Ck&!@sm9#F)UP7zfDZmPs$tW~`(rNqrv zZ<9wnu$5XEAPbkI5uQ{i!&P39cnm>`L4;Bxa==K%c2u^*B7PFjrKU2EEk@!6$_O9h zdtq7038DpRL=R7f0F=|P2gO^BHOR9>o|bdE+2((q(!`0Sz=mugxf!GM0OAQOAq6c* z`GD;VgHyz6w(y9Y6j7-@=S|I0J)FiUJH-_)H0rd0^Gxzn&N^pW_B3;65P z$#UgYW0x$rNmtHKlkQ^j9#PV*kAI3PGZQPw&&<`AP+4`F6&7RlBc=}V4#KovIUh=K%g)lI6mS$g4F+2~^iil<73I}3qJoWWm1g$iv zLJGvEgot|THf#1&%rvmBx1kH}r{GTAtsG-YC&O@y!s$zkkHSXu2`Prayv_B{Ew#7A%V+ZA2T%8T_(aii!AOwb4VunCiTsE4DrE@t{U|rp1Bo|uRfpk9Mn=XqaDYpV8L`n z&rTjz>O&NffX{>T`9{*E%#UIPmgb4ctxbwZw9$95*RxI2SX4syi^XlIBAVv%5g-{NIIjbD)9JyNbQbCLxS>aziKn#j$WQOBAe`1T zOc{3gU(^3G_>1Hl;hzV8D*e;s#Kic-k0*aP@q@9y8~xts-)8?N_U*`6;>6@PC%zH< zdgiYpe>w5xu`gvuM?atVO#IWa*JGcId?K6;9+zH?yuw}_dp`VJ@K}7f`{|)4k~Etz zHWYbJejx0?x*I^_I=GmSK-Qxpa#g%SgBT^VsfOsmXf1PX$e4yD^)OgH9Yu>uXf@>D>ZLv!=o zcpt*y;j1pTs||-6V&$=l5j{$zSDj9DQYR&tdk7kt!Ej?LRW1rRzfhHp#C4caq(xS4 zk_>@Jt^*EzyWxfai9{M&C|hWzn)5KVVh;sbRH)ca;)cT%gF2m~W3y~{z1GVkv7vuG z-BY2Q!ci-Sti8D%Ox_;hs#R z5hC|jL;h-L!Pw;SQAxL|#KN0COet=N)K$Y_-rudlEq(6QLXiK=D<>hfRymW(;7b)y zvA|0cRIs_VE_!I1_kZ|NyDyyrYsf5k>2w5sofL$BTefu2e`1WGpNKQrC9rGEnYsSeUw?CJW> zE$T{-$$T!QY`VH1AO&Y-;?PDB<@cBi%~E@Vr!mSwah-*ULoYQmXVT?X%++_i-@=p~ zuM9}DoI1nNfx?toxl&8MIwNFk$^sNW4IMC#aJrzPwJK$XfyESh zxwgVqr;Gv{<{X10ppLAm0Xz<&)=wRY={h+%J93XrRX>jh$;;glv6fJ*CewmJ^jZq$ z)QF^MW6a&BE1{v79znwHTxX}iS~YhLoAx4#C=PW*uS*K7I37NtIh^ z(sDUw=&C5@=G~-7%*u>NcojuzG8I@u;&V3VS5CEcx;el6bQE-WIAOVTinLTxyk}v~ zPo`p3*po6CrRJEime!*iqf`=o0Tk9r6zyqd`@CpJbp4oINffhnnnqI#swlj9uSSH| zm0TW!Fs_b5&S+pkA5uT;`(FGzv2SO;75sYes}oRJ^5nz`NF@NvDTKA4xxyzAtlE_Kx)bXYWk_<2b6k@#^l;9J+c& zmnGSfdSv;&B;QG#cw~Eg#f~N0At7-x8cVV*EbI0KNoXY@Bq4wml8}Q#3JKv#uplhi z16G3NT*%riuvt!v57;crvew5QeBXZ)|KIQRG2NpXTMl74zOGikse12Ky{cDNzgAUs zPqZ_6@a+CE+Q}i^G)ZSRL~fYeBbuA8)32@Hrf+VJPtpkrk;c($=&XdR8m<^z)4Mvl zDzY-Ue5gUHZ(e$KQIysIOwJjsi_9LXnW*ZW)mYI`o}AHKHc`?X8BrSw8}mnV8$%O0 zlfJX`|NolOuY7zS+5eByy8w1ATlfcyhhL#Z&_(91{$VWZ)pPx{HoBHpi@n6bGVDQw zJI=uwnzn_P6%TPRI(uxp(1`iZj3BLcR|)~JOHjd*oVXt3g^j!_kC)!@N-kdegXN71 zFG|G9It7d86kgqfm0b!id&9yV1xvb>Y5)x&3Q!9$8$gT^!0Bj;0+0iM^{;U~goUk& zA0PmLb*2iIjVf5rs$gxZf~B|$*3>FElTN{6It2^m6s(6+uzpU#iY^7K?i8%mQ?SZR z!CEo}3&j*{`BSjvPr<@=1v~x}?D$i#<4?hkKLtDflwttv_*1aqPr-&i1snd93IJ^Q zQ?NZw!R9z62oM6mAy*1^o+;RPrr@j`1!v_bI4eiN!a}MtUS1>DQxd#B4eQVpUXIF( z_pr=R!Gaq_1CY-U@Bv^qpn}bS3ibjj*b1m%C!nGNL;$c4P$>bxHb4ct02OQkRAvHT z51>*FfGvQEI8Q(Z@B#P%u>DWL?mq=P{1j~PBSjIw_C8VoZ~)lcr(ka%)hq$*>{GC_ zPr=4M1snSm?CVpotxv(OJ_Wn_6m05Ku&GbMX+{b*^(olXr{EwX1$+7w?C4W)hLM6Z zj1=tXQ>1eQuxn4jracAc2q`#6NWrE(1$*`s?AcSWWlzEBK?+U}Qm|!@)E$Mt7C@rj zpvVANq!-uAu#!%}xs{|A0$78mV5O^qRdfp0-|=~niUyxlPe1|Sm48^wrC_0*f^}{R z*4Zk&oL7af2ms4?l_-F8hJXT)0}ucR0ptM`0E7XG0ZIX808|3td;`iA0qHye1t13? z01yI*0@MQF7y%^&fYZ|y9Gs?Lf4zd!wWzrR2Y?fjs2LN$xk%J!31G)Hbyot|Y^`9k zwK5B!3ZNPQhhQn#@vPtsD+Om*DLBJQ!PaF3TbC7VSyr%RSpu&7VLLNx_z9~G>{Q?PbVsRIa%5x`-L%FOcwW&uP6ktOGMIvs!4#Yf zrr=~S1)H=L9H6D(04)W3z2bT_2Tjrs5C8}QgaC2@@&NJy3IGZLQ~;dlO5*|noajnz zivUh^r3OX-C%RHABY?$%3QlxUM3~B%Q%?YEu$5AP835$~6#$h0GXZ7+NIC%x04G^0 zI8j8wL6!;*vQ%)8rGkSj6&z%#;2=u{2U#jOQAEK3mI@BARB(W$f&(iR99XH~z)A&2 zhbTC(Qo(_h3J$DPGyoh}sni09GX(O^6UYZB04M}d0m1+gfFgimfD(XGfHHs?0F?kz znABYWfFm}jQ4t6OL;#8aiUCRhN&(6MW&o4}Q~*>0%mkPPPz6v8Py?U=L;-36W&_j# z2#tUQAOk1>J^-Acp@ab<07U@B05~l}!D$%^wyY^t0M!6B02)9PpcX)i5s(2C03SdO zfFB?L5CjMT2r&*B4FCiILIAk{*g_N6mtl*K zf}I5lR*5Uvx~2HX2;ht&1t;PvI1yLDF&GL?qKfM)@{!R}jSw}bfd#-l{F&y@NS_&f zKKcClPmg@M`P0&;M?aPPRK(oLf7;y1-}}kvC(k}N_*}zt6VDDk+xYC{C$N`a`o!qR zlOK$}p{E+3n*7knhnjgu zfAY!5lj9@3Bhitw!-KS^f8v8fA8h>K@@9YzUPc%F+ z@%Yf=jgL=0Hu6~WW71=zk0u|DJUaf~-uFh|d-jpRM;acPczEdH#)l^#8hNPsA?cw} z*S`M2p@yM}Q$wd3PffminRKJo~`l0}T&MykqDcjqjMe zf8_q=`=$Fw?@Qhnxo@2I_DAnM`}V=NH@tn~o}qgh@0ont$lIFVCcSO+?&RH(yT|Y9 zy(@ax**gdCY`Ak`aA>e`a8e)9n{`PaeQWZqk++WD(R)YqjjHQqM) zmXWtKzeRe>=$n&oj=XvNWbeu7$+IU0Pc)pEI6ic|@%ZGikz>urq+_E;lSd;*#|L@` zq62692Y<^w{(~J29TSI!4mBQ{JUDW&`Ji-g^g!}J@9=0(8}=)Rsd=<1*%WCS z-_>-n^sCI zM^_|QL{<#HhCTm-3mXYWvxb$VuUW@P4g zWp8D)@@&OmMMK3z`A~Ud`Q(g|8O<{!`d@sqEK)XJ+FKgE?6d#sU3>qfywTibZX|a+ z)EkP1&ISjA4Z(@PP@pj|=^ybo`z8OWoJO+pM|{mb$v3Jbm54Gf_sUWEv~Nr~BcGGb zljWXxWZwJcll}jy!iKyMJ%&Y(^Z$Zm|6?-w5&8cSHar$x;eV&b|MFp){hCM*7$n}` z!vCni#Ekfd3<7VDFHo2SllR{!*?SC7$&{#uY~4Au)%yGIJ27yNbua9K3-vvX1Ak9Q?!G*fN4=#vI=6 z$T9Gcn8UjsIf$p9fVIy6kCFjeLd6t3Qs&Tpb92|^Oe!30F{3RKOy$REsEl{iFba>> zDjuy>JX))Gv{vzGt>V#I#iO-~M{5<2)+!#YRXkd&c(hjWXszPWTE(Naibrb|kJc(4 ztyMfwtFT*C%&I~2AKQ4u46HVDi$~2+l=FePH3z#pS8x!9PRQ7O4EsifeWPjsQau5f zm?}(66;J0Xp3YS~ovU~{SMhYN@=T0>cF}*)IY~TA=J1Aj4&td&#Z#qMaN5yL#6|Zqryv9-S z8b`%z92Ku|RJ_JfFb-iJ7L=`tA)>H#A|{HDa* z(`Dr53`C7lf|axrfYv@R7B&gh6{Sk=4y|SA;KbV!RVF=9vosV?7A7v<;ma}8_V?xx zt3v?S3nZ2=Wmb%z}p<6%RWqtSJ@NlnQG~g*BzZno?m+sj#M0SW_yj zDHYa~3TukmDggxmFDj^05WtHH>Iww#qJr8!0lcW7#!dh)DyW?kr~=Rcr1J#uqC&-s z3N-+L7Zob(G!=H53Oh}Ooup6u+vo7X)5eA6?U2mJ57b1rs7dmDqT*eMnsqBRCxK^J)lZe@qv43Q^;)9qANDCD0@Tt6PQDt-|V7VRfsp zx>Z=+A)|}Ju2W%vo8u_V@Q^u2!E4Meu**Zn902P)^c1HL8=YFcy>XtAIcN+pUQ`$_ zYF@pueV%D08e#By#2U?wUGYrA`yblFNoQ(sP*9J`!GCRxd5JA4b4NVWVKS*OnN(RP zFe6M282>GzUGPkgfK(1F7Aer)cgEsvc@7_=!a$W!upAmlI6|xRNpnk6u9IzdSa~AsS3=D%SfY#(-h?89rGNLC=@aV z&Tu{PnA`0sx*Vp=;D3Fz6`omPoT@Nv9XsIhE|97($_z3X@LGmPUL#Swpiy&9aS3RX z6Z2J5P^|%oQWlN9@l2QnTor(GXFQW&xT^RUimDNvs*`pWG9iEqgbP{Q;wfB%u+feEpu^tJ!B$wKhPj4*@0o*3{?fuK31<9`Dx{x_iFe*>x#Cb|zG2+nHq89V7Y_LLp+ z^c-LoDFk-sR(Ot3O7ZcWOsilyoZ95hLHsvO&4&!y5n<-AfP!ivKm?!&U?#vUfIvNg zDu8N$C_rj+xgi7Pz^faT-+Mkq%Au!lCaGsw)ct0?7Ew^GB+ihby(&bi1t_T}FdJ2d z<#MM{-*35TQiN*L%M<_|=B5PJCtPD-&NH`trz^hW@7UZzjJeeR1>)$uC5{ zFh1Tp9vweBHaONWHu2Zk^*#Ez(Z3q`%jUoA{fm)5AAKSDLga<<&-U_}i;+JYr_&at z=SM$1@~P%eB}XHpIAIZAScpE?Oy??|{dn}_XFoPUrztjmr1zPT505@gJH(%gJ{9@U zIDIoA^}U3l4;beqPCha6MDr8L$0LuAKX&%f!AEgEV(%k^4>vp9*gAa}jP0}fd z$#?g@Yvi4y40e2>KE9roUxysP)l5jxv& z{H>#RB=2axUAlerw&ZQiZ%Mwn_vH8q>BQ*qiDN^@8jnr#xrLMcjr~J?6a1wD=XVM& zc2Z&Hw;1*96Kz9njct>yBdyJ?qIGnCa(`t1c(OMcO`dHTY-wnjNDL(!6O*@&+}eDr zbnECX$y*|~jPL8+7u|RE=E0krZjx>qePi;CBR4kRDBU=ELz4d6J^qH?H{f)_$X@HK z1dYv;O%uC@b~Wyryl&*W=If;EMt3H6Ms|+x=-mHlUpNO$G7xuiEcT&d2n;X=85=FyfHqxX=GFLCTY{?#^lDx#_%B){L&6ST(e&aaA+DdzhrN28S9Z>L-_t(64mQT7~|_ zUMYUVxtvQ-uZdl_FkcYXaIXkjl1A?hTrNihDg3gvguq1;dY)b`+*h){zq>Ut(0*b- zw05_(Cpre&k0d(UI9?{97w9c|2CEy{cv*qyDUO7Oh5K>{J>1ciCQP$SNQVoHHY%gr zg+#38VkLBo3JZrYE+$grl3lp4p4LoQd6ohfF1Q6{3Za~|FoGS_xk&IuUr{tJhp?l) ziBu@zRBnO`eJMJ`oB15Oppz;LCs`Rb!|6YZ?Dk<(%zW+<&)8QgXX29ih*@ncRTCBl zEzoi}WFPKJ2R|v=M+|=oTG>xw;7i38j+U&iH@J*ntFF#D>MCzKbp?@jMo9;ANu6}* zjrwl=7SZc$7zYk#t1HoQA}guqaH?AS(P`{T?iV71)=(|7d%G`Kip zjiM}9ihJzKQKJ{ha;9u;GUa_aW5s38+r=slMHJ_#i=@;q%`+-&$<(5x71j>w1$qUY zZtlDii9IL#ckO>ud+R{IS$q9G$u3ehIaaKDgp|UUKSJhDk!mQ`5M)>IMTSVJ=<W>vt{)D z+8(DZ0S4w}CC@@Qe@W^L;l7+@G^BQRbhT%dS?;4!VKbc5StV7SNXvf-neAO|mnvsv z4wchyrDy(H<;2H$rZ|#G-x6|N&T>MgyOe3ukT#v64V}`Qg)Rt^xJ2-!Unh*qDbXI^ zxe2F6ENa4O6Hzt>l#v_3g$u5kC_1I^F2vHQo!!jp_2Q%Uby-=>G<>B7s8lbo=Az6) znl%Cgmj>zvpsPn z*~9TOjhPEBe>MtD5ot@A)>O2JzJFvtXIKTZOoWUNl6pul7VgU-vg<&{!HZ3OOE49s zx}hP_l1H=gR7dih(;ob`JodmAp@S35@yGSVzIr-64~;oBREG4Gf-gNGj7xDOe$MfT zxp_K?ySsHruN8dhSLr+S8^mEpQ4S}pV!1|Obm+{4EWJ4=OLpl?T~n2tj!DmMjo?dP zrEeq)CXp?>R;|19YGFB}2$+w+@Jgv%x@L^g^c=avI0Y}wQTsrB^$6X*EPcUpvHUKj zQozidK}QqH@Hj4Iz{weK(hqawPyZ-iF6hdYZ+#_Ke$Oxc^6dP8eEO<@d^O!S-c%@m z_p`b3;GwYm_KE_zZC*e=zd0b^Mz{Y!Kz{URez~?iAb+AQAb)K|p}cD_SN^ZYu>Al1 zBwzl?8NYm#ZqXEwzdR=xSVZgpZ$~wG&eMRW0Z#*-20RUT8t^pWX~5HfrvXm`o(4P( zcpCVV)W8F8D+w$n`~P0g{{NG#U$0P}20RUT8t^pWX~5HfrvXm`o(4P(cpC6D;AsFF zc;|wgPcNbU|Ie5UXsl&eyQi*-cwH3syH5Xg$>c>63D8GiUawarw~(AYbmJG!`ZYox z^fcgU;7>^d=<9ISuMzT~rvXm`o(4P(cpC6D;Az0qfTw}~ISoAbg=-&JO8@_-y_GI! z+oBpidSZ~Sj!Tjw7>i4?BiI<16i2WlF8Lh6BXKFm5qw8n@;ibL#-%_iC{a>DM{sLg z3Z;T_NnFZx1k2-6o+Eg3T*^-cl{dzv0!J_zmkJ%hwz#A^f(PSL*b$^WM;yVSxK!i_ zJ|35f9lk@xHQud zToRXNIf4ywsmc-D9+#>e!4q+*#u5BVT+$rDGjS>E2%e2gwT|Go;?itK@bBYNog?_| zxHQKR{7zh&>j-`~F3ocU{~<2TcLZOGOA8!9($zvokcz*^5uAuiiygtA#HA&U;6KHs zrKw=f$+)!45xhMv)jNVu$E5~G@SAaIxg+>uTw0L|`frO%D^tM$wYpV~U`1S7?Fd%J zr8SP=%(%4H5u6p5u5bja;?k9l;0NN;RgU0DTw3P{ekd+o?FfE2E?wgYej+ZdcLbk} zOEE`~+GL|6`02Q`!4Z5RE^TxK|0*tRas)pYm*S4#=i}05NAOE=X^SKH<+!xf5hP7+ za|EevY*CTrN00_p*EsA2JPmjn@HF6Qz|(-I0Z#*-2LA9gP=7=04Ncd#?Csg3?>^N$+;n=^ z*mY-ip4)Mrj%N#R*S6JfjcsY#+!F8Eq;EX6VYu;hY;66RYtCJLew|nszDm2Y{)*Vz zrZp|AdsgWyPti9GPdAL!pILTp>3KR|C%jl&RKGB`plN=~yq>xGoKtnfvrpHKMbBvG zYR*@S>Ts1dtA1vzvZ9rrefLPf!n> z@(<@YzyCLH-QK&Gk^LW?j{Wbl{#~}e%kp>G{VuEDW%Ii%ewV%Pvi4oJzRS{g+4(Lj z-(};wEPR)J@3QV)w!O=;ciHtWtKMbPyDWN_J@2ySUADZ-l6TqhE-T(;!@Deam;LUt z-d(o4%W`+w?Jld`WwX01c9*^GvesR;y30~`+37AT-DRV@EOeKB?y}BZwz(vO%q;@JPmjn@HF6Qz|(-I0Z#*-2L41eaO&Ez?dP{?+nToOTTX927Z1l{n|d}5 zZ#dH^8tY>%>rY)XMz+4TuIVcM%F|bzTN_>*Thp_8c-0v?WUzik%kooX@1I|$Eo)k; zFFC#V+@kQJ*utI#!}HI~6Z7ilwvf#~Hv4?7R@)TSwbM1{s>9W>s-9WHGtX3t%6hW< zPt6!BJ721mHkIhbr;E--!jV|GM;$IaQy|FpZ^=8AI~F=0)PhX`-G4ggoG(n@{_By4 zr8A`eo0GfCcll!CL*+(gl+n6>P5)00@IlV6)|#~>b@V*Hx%Wj0CwThlwl)YX|J*-+ z=9(k7T>Idy_iy~{quTRAU!u2Oxo^$d!-=-!Kyu&7I!v2k5xU_5%mZj5xv&Yh(h4pTZTy_y3MFafr2%%ETdvH8L>|UUIE(d9$nWStoK& zt(N7NqlqK!1MPiFS-$CoFhlfwc*#{f^S1x<_aA#vDkXm|-Atw5siGH6Tl5i9Jl&Lv zDQp3}`}1fmAB3!HY3?rY!Q-950h)%t}PL+E07$<^KQ@b5?{b!QgtQ0)>!rntT5 zpMJb2H#JzA=nRc!<#ZcOUwhZV_I(UdTnacF&{9*vJ8zz3!BDaDmG0CA^qK@yks;Vo z;$^1bpZDDPBXpA>g)wMm@1a+`h7!}Td7yu(A>H&tu2IwV@RIxHp?~MHL;S_dzVWqW zVIbLmIMH$BNPAmHa)5Nesz{_`kr5+X4e*lNdEKw#a8uR2V!Ea4Z|^*iIMA8wKeV*f=|{3gSy#bJ?wX#@*hA{Y zN4VD_{E$PqqvWd%*%@Kx2c}iiE_uh1efV7F7WEmx2lToaJ%q)DvWeM+~ zFGF?FEZujsXMlQsYhSXD2EP8x=v21WUUs&o{Rl;}_tAZz><$YUkq^DU_l{M*tG_@~G``M-cIBB15BxAIItKcQq z9=P$(@#uW%$BD}kc8G*I+WI;}miS^@H+MAj?u(CM)9z?IlDD<*KYDO!tJ4pOMoF(W zg+Cm;@f%;ExvrSP_#R94r?hE5jk3Ta9sM+dI=ql)h`t71a^LQVa=C%M_+UEi`JLs_ zr*H<2_M5`300bK1&5vV=osmJF%_}4x4s!J37$OnKuLk6t4+P|UUJ1x~p9{$E`awXB{=hFk|9!u_=KBHp&nkm*&6`8=lm8fy=g|F; zmjdz?zwygo|1ZCM#SFq93&}OBgYt(T4#-RBeqnDw-bnYiiUV@{-}~j?e9JH2{;7cc zo93Y0PxsHy1m#{j`(K0u^5S*({j|v!6HiqdC58Q8Aa3Qr(XLji3nQO~A84aNY%tix zvo{~HC->KB!gB~bZhqWu6c-mh?bdj#yK^A9zmukzlrJTClPUPY+h6#d z2|i>Cb_{!QQ}Bv6{YCVvH1f=%ur)I*d3hZs2&QSz`7z3WNVExTY)t*!LRvA%EL@#RY!R_yEOGJ{8w1BaF#G9bhmg}1)d_4I`Y zxRTMAaA$8_)1Fp3mbWJ8eP^Qo=>DaLT!EDMo$$ha|HfC7k9>`L6=pTdO;yIW*F_lz z`l;++P=@&XqZvNa=ri+w&LN{;WctV>BxlO}^QPjnCQ3Uv>IK4pEg!^)R z?Ut61v?p5W|1kZD9{M*x7k!Z(j@6p>6?U?)lquz~J_I3>)#e2k5 zjR^XB_*CpvJ>kQ{)8fnW9pcNL8E!?}&hFM`Y!@i)F7bqYP0jJN%aN%KY%=rnwT$(h zIl~vL?@aaFI^BA<#Zf(9E%?$8>L>KO#CxY-&zVM~%r%{f^I~;tp-fv&iuIo%C$&}mQMQx`~v?q<)zH({_r)a@M&_s(z20ef?xAbN~jUPR%mkRflF7$9m zR~s|i5;aZ{IH^;n=PYL*1U65^Y9JB*DUKx4;#}92F40ymN49$LuN|Xx-*kF0dT?s? z4(s)TFTF_^SGrj10o@kgZ+)*k!8*7U9l13#>-x&N(MY%~nZQ+38z<=qS-nww!oDsy zvzf+MY0Q$Jsv2vK%{=C29yn65oe#vu+=@9?Im`+2m+f@I&V{8l*YCQF)rP#Tr>8@5c2jWJ zW1r5fP%Gh;8PW{tHKInW5FfNJF4K`@k6k|U(}QH!fsTVHPNuQe=)kn#?zr(J^;aa( zx+PNgN+Vy5$O!OoRxNAfH&sD&tCqpBZX=-OEOpuH{~hc2%+4IS^ZU7S#rwi??Z4*A z|MBL4eAmK&TzFGJe(0kC`SFja@^kmleOICU$lXQqhqtKm=W|qf;l`l+k=mfV=vx7~ zc_JjQ8IeTYi>iG5j3gea&y`zaRFZnXn0xvc@7nE)iQ8x_gIhwCb4$x}?DrEKv(~&w zH3ExUbEwA}j;S#-AZY?i;Bthu?ux0TNp@15h>=GU8;mfoTp8;y15!P&=8(jolX}FW zR?x^T#7u_3amw8GC?Mr?+(LUj2vZ*fA30i#T1G#)41q9mW!5463ldA0!VGQdR*R~M zt%O{_(59A{O+bn9B9%qCoVrWwjTGS$1)?w&GXQA@b3mbqK(Pb}(89x;s3!%q31ENTt+uR3=x zJ83REkW_jkM;`=)<2>JPQ6r*`aK#L5>eCi=4!3hf%m#@Z$Ni>7tq>aFW-_#?FIv=U z5hbL?(5Bvo6v#;n#1;uHb{|1FPPrVdn4DBCX3$TLJ8ngaIu}gtzF(Q5qUA{RFkv`O zd1i_lCUg!xMLVdoQdIO!$vsY1rKs2uA-P-52P|s2_;aFGF+|!dcf_Jb#ODZC#?YpI z$fAbD7$Hj;+SCtQ)B^E0ge+ocQ$Jx*i|J((+7%!i%YD|OM#MJ=SH{q$K4(!?@ggBh z7~0fNThtQqZ9-Nsw5cyx)MD{HLY6bMseffrOT>>kE+8D|>T?#gO#Fm!Ga1^{&s)?| z@l!%pGPJ2*vZ!U^mmC)mj#K`!MJ*D)BHRpyHuXh|S}uM=$SQ_5^*a`|R7lhsD;e6< z@202a?n3 zqglO0t)y4+&;}qJ$6aYrji;lT?!LdyqH6TN5!&6x(2g6ks8#%QRBJyYfx~m220RV? zzBTaGUr6%D=zf6iF1nlOUQTxj-T(Q|lKc|ge?j;A=)QyQ7P>dkT}QW{?w4Pd0U{98Qs76CrSPu-G4>*2k6%6-cR=?y64gzr27{?m*j8I{T$t==NxlF`a_4*>uwtWV~U4E;K7?<|aT+W9SCyDLARfQbu{P8}Y;Fr-{n~LfU^E~9INJc1O9xT1REHhU&faGv&WyDf4N_g( z5~~^2LKKvbu(F8xn3Hp=6VjQWkq99zhYV5rx)nBlt<(_;YX;7c9Ta*hJ)dZbS;eF+ zVg{duKuDuo*L{>DjnG!aAhjw1!Q{*zBVaHX3B(MP0a*i9bi2gVlu|LmEX*0nmPbg5 zN=Su*v@zx}U)~v+mUYGfXjYOsvLTzV3+pJl9|;KZAQ3;^F}f{B1x$G@AMqmNHbu0O78d{8DVGPuy`!i+aE8{>2cvcs?4 zOEpFniLg!{Dp?G_5Hw5y!#SFzg>w9cO$EdpxYyv--Emk$KC7%Kb~dLm!GI=@QF1e2 z7sCwGk3{;`5X?XWnyZ#QS%Hxw>IDuC5^DxEV5cTN6$3tMMMN;`8P!W^v&v)e*=eTf zz!9XV&MIJk-$Y%=8R|6jZVl+dWkuir~2mu6*C%J%-OW*i5n!- zxl*#xF){4Q4`;4)MyZ^5^cNVpLwG%CQj8FoHf3%s5?)qkjUZxI<(mS0sN3N zUp9;TjUYYj;CV~oe|F|Fbo#qR7yX;E)#SB*s3YLobzNfP*7!#JAKVi2PLn5_n0%s# z1fasu@Ec+V%((WC9-!<7AZG9GZCijg3-d0MC7YB2qWkCs1V~BwAw{Dr&FOeFlSvBj zrhs>wJlO=`tdIbo7@{yV{Qb1%r=6}er{~bWzjDN$9r1V*NT!TaCR;WcIFlrY{*8!2 zr2O6D09~3H*Z$EJ;!?z}&HOlEN*FT9mIRC2N1Pa=@L((Pzs~*aFJagtx@krA)KbuQ zDCp|xKHg3{wiA8r$$t7ll7_Tbto0g}G)ubG!cvPk6kdSfXV^v3x-v-f2_IGeb-S*M zU#-=rq+ECp{N%DpL1uC}OA157-zWOHC3DmiFx&C&J=Z0gZrF1J2&U>DGMTc8fvv3a z|6&w|hCiDaI>M7Kh}pe&W1?|KSlv`9DZ_EgG-l$kv+`+gi{zA{%n#81ujF<-aUy8 zyBc?ILh7cl_rXsto3J{fmGJ-c6o!UBo3JAKPkE8ESc&U)ZD`!P7ZOZ??}wjUHi7eq zR>aGX6o!UBo4_z>B5VrWwkNT%v1#x1yW=-PfGKYnesY#PBZNu8XdDX(A@L#_zkolV z;Q^5pM?{CkZ2juSG;|<&q@(ksvvrJ^9F~+}GiQ zwjFOwY}~sWiJ8TD(o8s;pd~~v;FWy}L&Kj?woE;wV?BS*@jjN+ZhI1%1SYegd^C$pA3YwSajYR| z$PBVSa#5K^H%o~^;w(s9_!#`;vK4ME(dP1Eq;iIH7-oB3D%7zW+Woxb4!Mi@ah5$* zx>d}S^dQSEyQuVwKdp%ipU5K3s>mydUcrmr~A1gjgxebc41dS zdz;pJDB0(zNO9rWOUS&E=vBPbFT${rVJnTwJz^kDq|kHq3d&(?vIo0cHguoJF88@h z$i)KUS-gNa!mxtj0LkqTho{I5>Dc))knA|z-qn`u$S(Gimk_&-=$ZhGFsx#jO>BWa zi!y18O?2&V%O+aC@I;#E^rwm0L@(h*hQ?Au!=G)wbx!ctUcWK1DZb(QEn8fJ-Ulxs za1POnc^#0#(C}vy7$J>B%n2R>%^4mt%rW5umykD?)Gse>^vmB2`{jczep&QToU6YxZ?&&p)MCi@+$A*-&^Gey zcu7W&!P9`J0Z#*-20RUT8t^pWX~5HfrvXm`o(4P(`~hj;zdFta*7#b)m7e|o2UIIw zRy+-O8t^pWX~5HfrvXm`o(4P(cpC6D;Az0q!0W4l7ta1Du$Juq&7S@L`YP5-&C`IV z0Z#*-20RUT8t^pWX~5HfrvXm`o(4P(`~hj;zUa$=E6D!e<=Ov#K(*p!#nXVN0Z#*- z20RUT8t^pWX~5HfrvXm`o(4P(yuKRvx6eHM(v`IT|8bv@ZoZlP4qs1PwD?4~k3MJh zE}wYFSHE3+%qKqMJ9Dl0zRCO=vcjjcP`uwFiPs?Y^@|dw{r~dolpIcSvu-2_zvny+ zcpCWA)PU8$t=~V*QhKHGG~j8#(}1S|PXnF?JPmjn_(Rq}W_+1Czs;90$hF7{3D(U`)V)2{I<=z=RkRa$s^9 zlk33bF(%J}$!AQy15?150tcp$F@+9{${5vw2{R__z(g1mabSuVQ{=!DGp5*qDPc^B z15?VFQU|7tF=YAQmNI6k1G9`V%N&?`#?(774UB1UV3spx zxdXF;F)JLHm5f>Gz^r1-DhFmYV^%vbYZ$Y}fmzF#wGPY`jJd*rxsowgIxtr;<|+qf z9b?uxFjq6?Y6s>T#$4mTtY^%62PVdtm;=+um_`R?17kKgFdG@O(Sg~-m`x5$oH20+ zW;0_pJ1|=qv&Dhg%9yPV%r?esb6~bJ#!s(E;eorBF#!i=2V;T`%udD_{2uf);Az0q zfTsaZ1D*yv4R{*(m+TpQc2Z4+D1Z61pcZ_+om zY=|{#F|q#K)nn_1uhOq#I##945;M@=K^E? zVfxH)ixQJHNr+#4^tmnT$o~J^>Dd1+)8A$Fy9|Dpt?x4PT^7E}xOdt0E|cD6&ASYF zmksYS-(8lw%V>Am>n>B>Wu?0ebeC=JGRs{Sxyu-L+2Jk|++}^c3~!gs?J~DrmbS~t zcG=f1)7oWKy9{cVE$uR+T^6*oR9umaNN&b=j{j)753Qx(rsgt?Do@H@hrU zmvQQ{OI;?Z%NlhVqAnZskAIl;O5kb0(}1S|PXnF?JPmjn@HF6Q;15Crr>+^h`usX= zT@%^$r>{7-HoP{rrf2o=sxvFa%K8;8%TG0o)t_IcEo)k;FFC#V+@kQJ*utI#!}HI~ z6Z7ilw#+$IH#YlxtybF<)wR<#=c>bG>-WqWo_VHHRMuCtl%JY0R(8HrD{U&#i%%Dw zi-aSwa1UAiXXwke_4zG%r*g+a=Yv|XDWLmL=bZC}eKDm+9+u9KcHaAgpWJh`FD5=^ z+W(5LCpaVacZS{$bab}UhhAg!o`7B2JA!uz;{sa(U+zredz$^C<3u72WrRE0GN!f3 zO#N#IKPlQr%z*u4$+i*fapok&p|1xKpKcWAE?l^P4>cQ3dK4icu9^PE1-*bjOp33} zT2~^m=Vbq`{cmb-9q1SRCy(s!?leAw3yFG7?81fl^qFYGNpHdTBQ5zRlD;|{B=5`4 z+*>3{A*dVQS584o2sB47lbqWnk|U>5VV@-j(xy0)V|d2l1JJ(dzlJ0h+U1xv{=e3qoc z9bMT~co)9yjSm7lox-wTR*IZR%TJPu>7%61%aW8F80hQRe{=vHhn!uqdb=#r+j2;U zek(2W*V18nlVS2jN;Yt^$DzXu7uNq;a3e!J>0YDRn<6gqL%oF^8ey5>ORp2gWtFVw zFn!#a8$B9`JA|aUs247bUCClXCTwCw8<3r_1AGI z(NQE}cQNVRX&Fu{VJyAL3h1b$P%`f3vaP}2u23}4@MwcfS!yB`+ao_!*ZOmgF7WVlx`3ZsRALp136mT zd)+KxbGi+$wN5y@nKJTP8k$pmnd&5cHvXtlCmW|`-dQ%MpJwCKY-RXdvvFVhfwb|~ zF%>_4`BQO@`8j*zTj+o+!Dt6l=0}ID_g(&UoTC>C_rpj1h6xljYa5NaE+h^v4T_q$e*n6<1iPJAX-1 zu5e#mrp}Ho*SzQ&!=HAhFx9^)y{t6Aq)9L2f1VpbPO)s5Au z{`U2qm(DrorDrU$Q_BNPJY$(K(=T*ft}@vzFw=yDG&2oYA9?NBNX_`u&&KPl*=+5W zGV~|kLtL%tDb#Ovcd;I_h?)i-CAzLa{_^$$Iq_z{ z{2w3n%kQ9D`*Xki{8#;Q{5O8N=Y|6L2iF(K^3w(K=zr$P&lLydWh)EhO&{{h-^p)mudK&OF;Az0qfTsaZ1D*yv4R{*x zG~j8#(}1UeKQavz-28!;Hq!ZjFM0O=v}#VJ^Z%U39ZxHg$K+|i(}1S|PXnF?JPmjn z@HF6Qz|(-I0Z#*-27b>PSowiRgPZ98|NrjU|G(#&@Wgu>@HF6Qz|(-I0Z#*-20RUT z8t^pWX~5Hfr-9#{20}j{3C79(|8LL!|J^CsOWD(arvXm`o(4P(cpC6D;Az0qfTsaZ z1D*yv4g8)p@TULLge1Zu*UX3S_naS3yr%(A1D*yv4R{*xG~j8#(}1S|PXnF?JPmjn z@HFuHX+ScQI{RSRye+<%Xe%)gL3#lo>&9CEED89{^3VPAXRbMN%e4>QdjH1HKB_%0 z^c;QTvW<%twf6KN3Nx*m!ldZiHtpzW>oijJpr-*(1D*yv4R{*xG~j8#(}1S|PXnF? zJPmjn@HFuI(7>E}Sr$#Qd||;?cW)*8f7rDDbIJ6-s_8wPB{uCPG4%~VYiF{*A1urv zXW-}`=sVgvV6!M0SdMmeba&Ytz6>1gT}O}D3^^GXI=Tkh`wk>q+ifm?2Ck!Bhr7Cu zcO}}|TlsYaXF8C9@kslT{q22;14p}B2b_5eX63czhBB}q`|W+nf$lz=EjI&OPqHt0 zq@4<4bLC~=8fZV#)0rGdl{Eh%Oo?RQL6Y5-s(^xvaSxpAX-`beM&ZTcbai(nvcyv_ z7SAe226^EO@ea0kwfA+jCR)3@s7WQM!fh=@GO+JY_O~b8t+OZtTNf$3zsK2biZ8~M zNOpE4Q|-MZ1MkuPj;@1=sp*zx<#n~jvJ7lfn&FHLOvjRa9m)Njsb*20fhjpK(ATm5 zsH5>zT#RdK>#5AZek7TC{Wmi+J<&n6ZP(YV3`}hu$!yL_ zKu1@Ku{JB?(Jo@OOEEhGUr#sjBs#iUJC8a<*JbBC($n3S>JxLaGI9g8MbFL3M}>Bb zSM##+bvjEtKPy{LU-ICQq%C(rR>qD4PSq^D2%nwUqKh!O6umerV|!i0Le6eFmP+5Jk^kaqqX~pYj9tlfv3Nf`i!lr6`42=cl1zh zY@U@Fcv`!8Fr^Nf%F(I}eD*}_;#{49v#q1QCo}h&4BVX^`}>l8Ctazo&A@l0yX|Oa zyNm6L3~U|TTU=~cW@RJUF3zhma2`2;sflaD;)Omv=V`#xfTsaZ1Amkn2z^bKfBX?y ze&K{H57FImuPk5nvMfgk_s?&aAt34mW#e9%Rm2uERXG%<;VJD`Az?u(z;WT|L>q8f4NbS zADxip{$`S$l;yd-vaB@7@;{8p@^hzT`Q8>;J{XqexF*ZBu>a}zx_|p_=QgtcuP-&K zDxd6sN%M2SwEqpl7b}1L{)*4t*!a2b_r2Qo+|Rxx^wul)tyz0G(Uu%Y?mL-0w&Y0b z(IsSnkvY4szbkpTJwfjPx(@F<)=JOsZ`!xNzt2D{J=S^x7$aE^dK&OF;Az0qfTsaZ z1D*yv4R{*xG~j8#(}1S|PXoVW4QPJ(YwNH6#;tVz-->xoS=Wl5`fZFTI29N1-ooa> z+X^cSqlH@on+jJIE-ze7*K$cJf|D6abcz7+mJ>q{F^3A}!p909bFmnVMZ{S=HPzLH zA1utJ$hj2p4vPB0!ut!Oj_77$J%Mjk^HcMe_A!uvDCM*@YEfcjYB5Qz&>US$$h znPRoe6N&9im3_8EPE_?cQ54@mN7B(f%pGlUa+|zj*p0Lknc+&La5fQ)WD3MK5$GYE zEanX7BD0j2@bI-p_J%lEcy7DMc?PK!4sks#r;1pPDv;^55vqye$mh3lw^l+GjxN)JhBChelGwvy89q-POTMTOg#qBA>?!5&g@ zGwPBgt7EJ|v{wsX6Wb~Rk5T%w3!%%c zlzt`sn(g0gBxVr}SsKNtxQ+O!DR57)sU$T@#FL8!GWp_hRC5$`gi)ArjfcUFoU9 z+bCQ~#h3Y)>VP#i1EU=Dol9Eb0hy#1(s)75n#T#^o=xiNDa>X5lHtw5$Lx<;eTX9X zXb1~XJrOh74XJ~WrAQi;$0#D*M&&@qn9UfYN{dgk((fR`rC9T{ZK4=ir6xhCHB;$A zEJ%<}<|#zYL*;VkV|;+{6>^v~X(eyd11r!QD3kf&&7vwuIjxeY3{^pjQfd~0WDFTC zn_H@DFyZm8m~;`CZK{FNs?mAGyn|{QqZnH5{b=Syl7_RAa*XjhQ>*~xJ*U~uYw0N( zJqu`R8X=BiJC78F z{wmIF6N{=$b#oOWhD>=u8Ow>fprRlvJwo)Fssg1@o{|E`uWq6|S;KmW>K}8+lccRm z8VjsPtKfMOQcNk;5fM)>x1}e>Ibx+35!<|6n$&n2F|x|FPAr^zl!_{?z-~o^$Rk7% zr%mkuX%jA&aHV)Q;xU{MrGyA^Eas#NH5w|BW)NuxH**RUQy@YumGfvc2f|iD`9p=z z@MG>Bq<&)#HRmK^$frWisUR-n0fjJmgqaqYt=jAr#S4`6gfnsJgNzbYD@!;$1YYZnj`TAi7$frpB`;cIaGI1yMkB&#N-E) zD+h%15z^J(atKja!0m-IY-h)iR0OioFs77;E3F`n!H!RrPx1o8+k~GQ8M>m?=(A!aPa0FwlF zWTMTgIln~&j9I4o6hCc0MfG?;N?;Zr^SD)>oQtvqHgQ&Kh-nU@r$SaB_VVOEjr^?l ze~tg7_b1ZC=(*7!Cx0CIal?-$emL~Q#veBSK>9)C`{Uo6d}-vR@$XLlz4Wcgzmr~^ z{Km-NHh=Bxm!n^jz8D>k{`J|SK3=Z*O@^^36lX8;?&O8#y*QkQ`{}pXh7u9qwxG zln#${OdcFL(AzqajI<2hI=XM-=IBjLH|To@_YCcB+}+zeva5M#^S1HLLz|i#ht@Z) zpS)(|n&xXpt{%K{a&2-=@2bfa(dE*zGfM`S3@uJBip`&#H#m2)Zfy2Q?YP#fMQhGh zH&#u~8mT;8(O7=EOe;N8+){KtJf=1m#6m4O7yt1)V>|39ez zw-E^2?*zMpR`dP^O`r9$ICUX&MpF7PqPz8gl4z-POB`8`2~lEF92_ZLhtDCyk${8Y^1bsB zMb8?~Au%ft5zO4+fCzFLLpO-IgQ<{DklMoTN)<#86{-IG>|62}z@=oO&PqNpHZcPI#*`#>5x}f+9kVD`t*H zqDlCC;$AxE)Zin$H7><+(3pcpOVsEYo!fTIkjOccH7kQO3iwDEB!%gjj{1a*98eI_ z{p>+N(7>k~kqB0B*6xLz2ZTi9Kv2+tg2C=LDvJqAr^Ewc;Txui8r{gY2nXw_gc>Cu z(sIP9VIk@ygkmM4QP6-*OpvEj6teSU!geK;vKAIPsN{lmLVkf$q{KFHZYAB<2#?gH z-y0NRUwu$|8^WaBB8q`tNx2yd#z?bBLJsRxPMz{fY5M9k`q6a4Q%DkX!7XVVipgSF z$Rb7rQLgzkh}HC%(C*eK?XX5kK$khzXH*9mjCW@Lxbxs$TTc;ccIi5fFR5;7+1<-~0}>L}!z%&<(Vv)yLHCnK}eDd55o zY&aQd289fwA(`>yg&yFDZaK~k1M2ELx zXhP>K8-#S|$Q4LD+L&r|u^MGy79&d<`C|w(U=Q>OkK1V!jM)V0Ni9x46VH~EO1a%ktI5o%&koo>iBd;~3L7C0P3)KJ98 zSWJ)@4StQPdXvSA{z?8A&jo_!0;}C<;PBBfjy~dYMtUw3SeOmjVyCevD23QGDFFcm-RygN`yu$a1v6Z zA9(MkJEMyUp%X!)?sOj*kT2V5hR-J+4L8CoiF@@RjYh;mX>;NR2MN(>9Ec&L(FjL# z0r?CzU)?a_b)6Ox2Q^YS(ht+%LaC8|>z#tz0L=x2Fxm;&Spabw4$`0k#FdRCSWV@a z3!IKcHWB9B))ZQzVTaQjW}!ro>AHlAarLCw3}1}Ja&{;_g>=Z*=+5jk8?7S&Bs{dAvBAPCI+}1NL*!R&Qw}V(I`e#Ctiq$#z!PM zY}6bgiTMCyV>A-QsO3?Js-7Bbc$ibyK$SECW?5)xXRjv5$YVK4=ZY~#`=Dl^No!#V zs*BxAH*kgq@XSTEPYwgKrkhV>G71$08g-}B58d_j!%jD#@xy*2Lz2b;dfG7yZqO)E zaxnlSNmDrbN;b!NbrE$tbSL>JL|L_xBZQrlX85i8@Dt5+I{n5pI7v=|J$Mob{eLN^fR zj}ZD8CHMF*my1WXYvMtgmEW~l6Zdb@#624{ac4}Ubb{gwMWJsDQrBI6wGq3q3ShhD8kbiw-f6L2Rzb)l0;NZF>_< zyZ6*LET6A6XzSK#%e4g#k#jF05-oWlx91SUB8JlwS#OD4?Gicf5+Y}kNKF8S7={^U z6G^>F&*f5Xyp~G2%2BrYmk>0I1p$TxV3^@F1Z{*m9fB5ILQoY80t^YjVuslS<%vAK zfJ?NqanIiP?)ruXhpdH{kX6mH07C*W%rKiQXfMRF_UzqLzt$mV(Iw>6upGdU01Pv{ zw49CG_SCO-$XR>|IU4b5bU_Yagkd&0ArUfL!_G|&%U3uRx8xFnqLjEM07DE_hS>xK zL_iN3m9(k8o+5Eq6yn0tEMjJueRwXh7Ly4{GaADphQ`p*fpnZsFVu^PyR*G*8x0tA zazMwM+uQbc3}_O#%)x5eB_u8+)-vkELKHGAW!NFQ!~xNbbev8P>Se^;(RH9ZK_eEO zSVCi!;dcqGzl6|5lxRc%<}eI1%qBEnj}SKtqOvBs4;)A@WWy!oEhb520x*YRDZ^~? zBB?^MJoDg#bfL?$3*~8G8HpE7k{bkI zh+#3qY_lAOtvP6_i37!GS69C#2?t3+k`&9+b1D})y$quZ#jr()3v1FuSo~!i zT@vdEA&Kn-eeBO=cz^`7(IZ2e(*t_G$QP#GP-Uq{1o7(HG*OmlLth1)a1q0>!=F`O zI*nt{m#bxnSFgCJlu}N4Cc|=vKda7YqztmoTw?TBu1phSX~JrNy9rSx_7DsS_)8dO zYk;IRz0TPHms4ZZ>=sB5Bj|fa`(5qts}>jeD*{sM;C z#HI?_KhWKiZgPkV8!jR3J1nh&YQZnyk1!k%{o-&2lOvxWR|fhICom6SlA9`VV-|_l z15!1~suF-X3}-RSHj|g@Rm5#SIrPxMPwjnOiK9KVM|?^t0@Ye~zY{f3uYv@_uUF@#*69b6@ zIMvNj;g%Ts{kvZU1{neDDf-6L8WmKYqwBFMGi+e`Aebe$za^{PWF0`S^eO<$ymRKX`pWuFVO^&+ZM# zSJegNZ}i90FY7yR;X(MDUTXQVmZ7_;ewtNx{jKr@9{LwhzM zDNE6rV3I_%W_W7A6dM%D*4FmEZkHId?$cY4T^1OLC2S-*#dL_}BxdTn3^K6j>R8^I zptBELa!8BprWVIfcv}BWFv8H_GvE>GTLXgC;zXM|JCYnY(iR#Cl?YT{Vj> zsu066hKA0j7N$@X>P4b)zYN+D#3%33y9i*wmd3^CLgW|Kwl)bv@ltj#;N zBsN^Xd(YkkX*a%SPyLCtPPOJN!ql#eg#rDo2K#a+3ZaPZ>Z=5LV|QuCr1O!CW)Sf$X-O#q&J3ps8orj zP1iY9SU{2Cvb7XsZI%EGF)U}8O&pn~W>2uhUAJrZPUriYLI@+5O&(hDEQfVk!TxOW z=>3A()h&5Dn(BA2f<`QTs_>J`CJ?nei~a?H0s_upm`&hReeP&#a8_TKl7P!54ll`O z3BVA;84NE+oU5bbl{H*8achV+OZ@-ry$gIDM|n3qyE;1O$hPDoS+eE(NVa1qaU99c z9SAE~vgKPW-*O=d$Fd~bBEBfH91}>=vEzbq3)m^N1m2g(AyA+f5-tT=piW9DZ(ra` zC~dj4G=XyK1(G(<^ewi(|NohtbM~yx`p8MzukZKENb~H>GnfDKJagIE**&|YH9}_y zy%4x7qr;$qSa3;joEPRO(i)-7LX+Ue_ZAqlWE*iB!Qhhcu0z^fMOq`YS?C1ux;E#p zZ0mVbbTl*)3@!=pRY;qwNNa@76qz%-BZv$X-I5ZIrE(wr(40GjTyhi9up%VwZ zf`HNCFkRr10be74q&13kme3@?2GxLTgTnM;H3VXGM992`nvzs}Ez;&I(i)+2geD<2 zsz%dPMC@3WYHG(DB_${}YYNlDB zZsckL(+sxn*YR|eU%ByyRS0Yf@4&Q0cOcHpBs^S_1S^rYOp(?IZ55g%!7Mxkzc4|9 zo{d|!g(9?C5g}j@HvXKM(9kTNro?W=FJ^9<-0nzcI3CLd0jVWGHZ2pjyHGc z;()jYl@kZIvlC36nE?n!6L&P0Dkz*6+ zTt!+dv{`8KbuR3zc%6G-|ISfd{f&-h7U$c)GZ%ZqMR&Njm{LO)=ae z)B=ycA21c&YXO0W^8GvR$lK+91Uo;3H*=QURaED=z^6-+;6X{_uE{jT@O+_364aU& z$S4w6i}wvwz@Lvg>5}k2C}|%Bou(MpLX+_8Oe-!T3iyXc@W$l|0%%l9mn6VrlJ*~< z(-gy6=mZ5gFgSW}xPkyJsFW^AfD{t&(;?6X#c+#IUQUjxVOz9FO-}j%`rPpH6*9ey z4E7D&oo6q^tBfIxj$DIFFEri#e{bYQl`dKc5BBnNp6`}Cdnmu#*QpW$4rLT*Di7fX`MoG>kx)b5Jl7!yM-9mw zTrBA|j*nw3>H6d(UiCN^6C-eZ9Ag!Bj7uu?jm~jN1sn2O!?_q%m*e9Y!|EQFRKQv_ zE~$XEdR$VW6t6d&i(##Cd>msEt{s=;xwH7X{2X`>{)dlw{{M!5 z6#m`tZ-URmcfnr_UkCrMk9z($;Xe=mF#KEL_rPz0zY2afyn_GTny!0~;`;xi;c`o! z|3Ce6X;OQ6c6N1m3GXhh+yfN$S&hZ=ctjxdx=8rtcvjVI!&nE6wABJ?uh4W?_7_q7CF4(*mSh<1=VK-KQ zX+o2bsMl;k3iZN+NSg!Uy;tOyYu-e0clWkdK<2*MGQ6#T$fQ$+CLvSD8BWIt z>ecxxOHj8}K;`D!eB4kYD(MWNd`5c|&yd9&+HfkKl(=Ez)-|hck;h~4lb{VNqAhu2 z1w8J}EdV0%NT&-;(vlBFHHwyn-lO-iV2=PbmhsfA<`0V5SpYS zpKh)d71ylawjsY^W0!1Rgu2}l!*bX)f>k9CKus5F!wnKn!s7X3nqc*AyeYqC{f2zU zwyhgqqh*)PBA$C)1w`%{=Hyp9RYGkz2@ws5KMqBQxbX&55RQp+w^jhV6j`UqlUG$j zZ8!;xzuT!V0o$^^ySq1ncUuL#rN~<^zt*V|YQsr*7!CL$Zi<&4AUr&U{wjt2~9%ctY-V^iY^(28&|C= z9fUh7;BmP(Ri44B5^BRqc*QBk;YG(_e+&y%i*r`w&ax*@x1{B{p$4Hz)2GFf>C>5# zwT08!Kn%-aJ3DeexfQnyXfkRtdG?BsAMU3YwM7 zV>@F=s8XD>;Y!5pkFL`4#7v{m^PFYTx{GB}em?)Qx8wT%TzE4>uK$DQp3k~_nLTowHII+o+5NNej~~0A?8fRaFw%r;858g zZ=LIR{)iX{s4s55-ESxQkQvO_ceRSd$FaKEa#SoC=av{o_PC^ShQ z`$MfzpXG7unKOSKqHzHqbs}TNO~aF*6OLrqpqpi$7bB zIb(nP(!YP-&Y@iq7o<0E4dn4l z=MjBy-+`fB`|!|R|8B&*TW^1jZf(Enx)oPlcjYy_^l^6mPJ$@*?l@irg{+pcPz7g- z>9#kX`J065XW-J074u1!r9zv8&J&uX=_E7TEEY|Bx}oU}6H`*1`P&Lo@bdmrxx8-@ zI#+0t6g6g+xu__`M1}Zn1tECNeW_e?Hwm39w6YLeJJzfpn5YncS3wAl?P@-oazW|K3|RKQ82_$*BL#39WI zO==5_b4>eg0P?3=tGFz8N`0>aSO!^VVLBohX-;TmuvHs3Zf$$x6{TR`uK>mwa+b`K zH9~VjD}!;s@ke2iw~ClEe_sKNd&;w9PucD-=OjE~F#Os86*x2gpaK{-c;{pFNi&i* z2~7gS+7lZfuFdkD>$df_y|KO2mOre3$hmR8%#e1Uw@Jd45!rAd;?<>yKdOK@4T$q_ z2BMCnO+qUpvh_m5D@&X3#}yE{qdOlsL?q=lfWmkye<~_kHHui$j^}<7BFb3^bvftG z*^1Q54Kl0aj2i^hj%N=R|Hy%j)i@ulkpJ-3}+n!4M-^K6# z-+(;;HJ0}M+3$UJQz}q%!mImn_y5hA1)&apOc%F0BELRzv1M;s=ffY@#tLyZfDeDH z6TQ@0m;mD@=xU@lp)E??8!)HsDYHhzH68xmuzOE_U~p&Ys|FTT0OHDPx~#mSP{X+C zK7huLIoZvatcC{%_U|3UPfkk4(nVqBxaHjMthg$=NLE7AgtiDx`mN22`MJ~L3KH(hn@{D7$N9 za94ixQ1m=v&hf4iT@n!25RK#35Ept<#482`Wjv1i^(0S*{2=TB;YCgvv)E zCX257_YB0IzmgmH=Rx9$f4ZFPCkt&7n%sz7|FRKB`VQq`-5A;m)J9jvnxYra_S5BT zKUrv#(21c93=YT8t`MxUXh^|VpFr))R;wjERcMkGCmZU<9y7du&z_-uyJBcpRzRDJ z^ad=+xT+zo7n+1--_l65J%e`*?%^Ph;mM8z>KSiKZl>T%grKcL>xJ@dNeWBFJ(%NV z{}{1?GgA#O^bYJ9;zsP~e*AcOV6dNvx8BZ7;il}>VSzZNFH+RtjZH-6gq@S{ETMeX zVo#YRs=ckYb7&9F-uXlONA6(lb|3NFH4MW!B!`@py%PJ*Qv3c=`-UC+{?fa!^x1=* ztC%yBWOBKyZ_mNO{J{f*90aAWbh|bzkp#!Hd96Imkrg^c=l~SkS!N&DKJGX$v~%Zy z1EsIlysiQcPujKeE}g8M_p^Sxt$r(O>u%~Zi*C5`Cw{vINpSHg`%meQ-mh=4a5E# z=^F<|M-KLn>Ig?iE?~~QCIQ`@jCfK^%ab{c^1#Jhp@-y}Li(K(mq+xM8Rl}uE}6e; zB)?*y1QolS7s-hir;A(VB?~L@$iVIQvSiqMd1IL_ZVM+3=fN5BNWx^H(}gC@1@;Z9 zoD1+axjvqyVpG9u1uPkk6X9%mFU@43vxFwW+18H2% zX8relCF?JFb;keff8g5xAG7}N{X@pT?z)Ws^|xWK0RBH-Nc$&0jCTX};2nRs@Bi8# z;Wz$2O#A)t|NgXZ`D1 zvi_5}?%#C+_y6$@fInW)xbPjk{tvY+`Tif}mu?;KYAtKkVZXJP_?l~Y>&6rsTdCXd z*-gXKZmIKx!5o?iDOHWIHIR{V##g+}so20`Wl@7jf z=L5+Z6!VucP{7<}U0}IJj$uR@Fg3g-45+0T4I27!P*}^HMks){G}cqBCCb}F%0%s_ zg;V&UJz@C~L>(Ino-%wKtl%h0#2FW+C?ZbISOu(XTGH+LSb``Y1QM!1BDw{}sc$DE zBw-lpumWzlS$C9&P{1rcFlbE{sVK~cgDwUGgbP{~jptd+(mB<2&us9(__@SLotCrEC(u zk4hefnoY6-kp|K*prRWN$fB*rj96!4^Neq+bICYrYYtQrkv{++9a&oHWQRI!XN3OelceT9q z02=Els=0ew{x?$Fm5Lhc>29_E>Gh(f|7efuzO$~UuBC2PrmJpN-SWCkIG(I~u+E2n zsP3f1nBG!%pXW6+G~kSr4tmt&Sx9}b?zb~twX^GHxs)2DG}aB*-Gij%bqknWSA*&w zav8G7uwYT$@w#Eh$&hoL0ys_zoTmFw$0PC5)l7LrYF;k6eQ^ywrOM?X)dI*ptF8qF zAFR8_gHtocdeq$MNNcVI0vL0_m|u^YCNHOCqVOi5p_r``N}@)q>TDFO9R}iqPC9LR z)U25-9u|sNKuY-{jY7eiE>wH6ZYhc%hg>H`uH`UKq`EoCw>16q+GsP}Co+izYG*o` zSU054PCV;$C_1@lM>gn#Fia0EE0)MU+M^aXAy*UmEp?mf?qicmS`E`0sHUrd)?(-I zrQu=R&`cD}nX4HEW-kE1@w!Q(ZH+)is*V?8Q7KL3nppfE^qU3aYDelcq|UYd#$n=! zgc(Sf2k8pEEz*)MXFG z7@atxO+i0mCniiY6s8p!7gwRx7EgP0mC8V5Fy|mx+w?TZT#|+pt5o$pD31B0?s#TJ z-BQVw8C#`h)CL>uIKQWEk#MI*7_~ENtAsg!dodT891Xyk8)1j68CdB7%Z_HH*Qo0I z>K4GRlb~IT9Y!cP9SJhYmrI;=zQnmX=)$H&_vZLOWwZ5aHLc}z*lSADrnIfIK&9+y zFjy4_$s!nZQqdw$V&bW?HH}YINX?)Vi|VbYVG{J>)Ftf(L8@?0n>o*RUlu=Eca`L= zda}!+Jy^H2fR#q(X|2}S%#1X)PTg@SQU|Q+Np%ka;bF21eFrd;PQ%2JG~{6gS3-_r zKAAjdoyo}E#GzLL{N%pF``Y)aJ&)aS z=NnE9<#s>5YtzoB2ZsAw`k(95+k0RC_-)VKdir&}x2T(+z46qI?c1K&dU9*W){|R0 zwmi4_vEIJkmW|$qmbK5UI=QN&>zR&R5L`d}>fYwn(=PpdPDrZtHv#unjDw{yk?Dj%c8;<*cHMWy0d#>F9>9>*DDHZC-f0*(>50QXq=8@WP7 zl3?2>v=HwyXqO)uEt^?Fu93u45O~KBD%2FFLLPz?oL0)pg#a8Bkz~ev`?L_bT6tOi zG7OIb@E#FTJKU30f#d{X;Uh4D1VtFZ&U#r27v6S2VLC~%L5cIpWk`lfL&sXMKaXEZX$uKU)&~?Lrvik<1)$Wc87vcEqTG&%Qf&|?kPtr%i>gE} zR447}QjFw)w5(bp1_$I9M|{kS!^7} zj2r_n+j8n;a10&Ix3!y&W_?t;p|A82W^0wag!GLBLy}bJy(k3qV6xtkOq4wO`izts#NLh2Yex$QbIIvWIN z3Z!B@Wp#tQXjvpT|Labw|84#wG?F^nIDDJAO%IKuhx*(y}V zzT+9RpPM$VdX(!l^5Brdecw`-#T__}@*hSj3L7XNX3!$0Qk{r5t6ZuHX-diM^kyW% ztcYf}xB9t-Ou$r^y8e=$Wk;E4lrZD z16&{!#JIftg*GiJGfdVnJtW zqK~Q!V#T@{^Lhh&4hRtGQCgu_AjBFxr3`~`9K+z?pF9)Rp}`G}9WVq3xIl6<5_~YF zI<<(WTGOZ-u2*X3PZ4X>v871M=5#Jy&4CtlA^k8jAyug(N6^`)tU|~GGN1$e5gv|a z%gTf8=s`#tgK{cB09@qmWgb3nfowGxrL94gXbpyULgBZp5TZ>(^dMk4P?fqFMPLCx zB{Q15VyguPK@s%?hRhg_T}S+St)QPZ5jd311cYflrZsNwKbevTbBywcsF@C|(BXv3 z8AD^b!nA{oV@%AdBORv!6Q~n@XAMei*Qm;vNotcuZXe+>n8o9>Jv@o^3|6(JrN#i& z``ObCJo)6>Qbu8D%A+D4P7%#Dp8;DdI3zrMO(2by^#I!LEo?Yp&~u=8VpK^gN`Z;BTv*B)Py-8#cJ3_H$gaOmk=A@-VRL3BNvLED40h6_fHg=EVsjcVhXBCyF5q^5knP`=U{x_U?B2U2*O(l%R|*Z(!aFKxt8Ob?ZuPRJ1Qjq4!=oi#P1 zm5ahg`wbF2oIvOVJeFotEKN=VSV|QTqh*rA#w7(V;Evh_UhJ``>5Hx5{~zV_cr}9Y zte1%+&3}P?pgi=rDIwaPqJXx~)yq;Cbr@lWm8DWRWqDc|rO7cQg(aI*?W!vbwu01! zK;d-7(q){dOD13D2uR>$`D@GTfKlg+YJo^#VKfS~$iZ|2FBQ1Ve8Mkx%<@HKB%=sc z5}G;T3=0PgjdLi_8Zz;K5Pzjkr{M#EWz5Qj2Uo+|d&puK9{*SY1<->`M5Gi4e*oX2 zLFmF%2?u^4iI6xDhOBa&oyqaj;p`#ljfjl1AhUD9hDu-u`^E~aZj)U}nkk=8lWj-} zeSnekIAFhM7Zgj{>+E9OhD?DGHD7@l4TyHQ)Qa*V;UEmVVkt-b4p<-rN$Q{E10pqTs z6dx20jbWUkL9yz<>BwAVor!X>|Ky^DfG~^-Ttf7y<0>1MDgp*BRy=C4I;e9_6BkD} z3R!X(mn`|T&28+VNQ;V>ieJoeA)#Vz0gD+GH9}HHxBa15lqIELw4+$&OQuER6hp33 z$X6mn$@E;5rIMYP-sS3y9d#^jqu~{5nY0pl;_2n>8N{;{9Askn*B;xw9ON<_4+7@NgrBy`BAgtj7v}+J4kFDQAtWek#rw9}g z7lg-hu|iUbYT&j>iYcUzuQrlYnpazKOVfkWXfaljU?ay=stfAM&XHs+3KwA73-G)a zHMh3&{FIhV+}pFx3nG>Yd4I1h2aO-bPxy1*Va5_qxqWj7FU zOsPiHl~u!%C9CQ?ZC;@bQ*iSMn<{9@K;K<7dB6$NRcn<+UUf_( zrPN_x3C>5kFdIvSQ#v@F`cgLNpaLjPwqbTbspnCXh|>?a5RVR98I3&Lun#vU<_1*Bd^AWO^zVH{RTcJX3Y z{Vc1NZ_sMlI;}2Qqt!*Lu^ZT})x4Ej&FavQwq70YeAW9titGQczRuP=?)U$3I9e>p zg#rYUZX&rNlG()49JCyq?JWqnJ|x_*#4jt+U+g!QRo$Q%}jX4rp5$3({Z-fi5x@o_8DyVy5@ zTA;CeJcv{u@V<8}ryf;n>(yyijB=_fjapKj3Nz0UWzQ{#MZo$KhFNfP3kQ^iQ2~zt zoNqc<09(q&C__#l2d}LcLUGfZCDvoUV1A8D(}4de>Kr<3eKT81X+6!Qd1^)gE5e#0k)4es@c^a5-E5+F;O6cJ(untF%MSKATGwk|~W zrvufATrIf))!EjWLUaC_w|%qeoWu&pSSW`J-#~Toj-bIsuy5K>O`vkU$^;0}X|4&D zpgOu%_#;|NbEs5+7|%9n29LG*V;~Ser4HlZL$VZJatekrOS7IR7p2fgB}H&UluGxnjFbLrJKY z${GquK%>csIW2K58ZgMSAZ8gj4W$BJ0ivuy4G2?B=R}3V&X`6PIe{WmL1aw)a0cGT zY^iaSNN7ZnB}f5-GZU-UHXR|HZcLNhp=Sh68_9u?HJzo1vRu*WVsKn2nzJBc0a%PR zu1viCNCqzwrVhoZE(XsRDyV==rX*uY)$zn=v65272($}|v1llA29B_GBwPpB#)4= zSgCO-23L;|Hn4FX=)s9<#3+5-1tHrR$J0dwW%ucjWt{6Q3ovXsO3{X{bU?4HfjY-~w)QGnlt6t)uw7||)mCtfy$Tg!)xNfOQZu+g${==Z$;AjaH(*_R^ORtkU%k1B z3r-;6DwGBEN@J7`)De~Yb&UcmC@i`z=j>FDUtC+j7ewPk2S&4RG&1e*v<}+XXFSBb zCRBIiNmS_Bhg3~~3yuXEMUkokCNSSZFWavC6Ll)UhBw~{xt){8qjOS|@I)G}Y;L^& z2$+YnjcTkj*OgM;3r*D%SUYZdOI9vmxF+G5$gX;x+l z)~eFUf~>|_77wVX(|BIToKhXV+mWP#(|}6#Hs$aE(OlLKQn_4kaZ0C7d8$7^3Qy4w z4Q(YX8wsn{ zsMog(D&dO-B!rZ>D}qp(h(l$EBT*d*BZy9Af+!0er(jDa1SG0p1%|`wP0{30aOMz4 zgNfT@>hUxca);UU6Y74%N~DyCE+BX2R5jIQBbl(Jx==!7wbkhLo7tQ3r;#my=c94D zC@F6&8FJy|0vl=BKua9CIQ-Cc8Apgq*_dO83dnP-vfLUUF>dg2-VL&x_5x9Z3tpX* zZG)#hNQ4qQ@R4;ePP8F2T~-Hy>hQAF!C|nQ6?YXn)Fh*`N0Q z1eQAb6p0CfsOf79@xXYFveNIsO^yAH0su>n#qQQ z∾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 z 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 literal 0 HcmV?d00001 diff --git a/snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.suo.old b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/VCProj/bsr_trunk.vcproj b/snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcproj new file mode 100644 index 0000000..1a6531b --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcproj @@ -0,0 +1,594 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcproj.NCL.N2232.user b/snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcproj.NCL.N2232.user new file mode 100644 index 0000000..257e4e7 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcproj.NCL.N2232.user @@ -0,0 +1,65 @@ + + + + + + + + + + + diff --git a/snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcxproj b/snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcxproj new file mode 100644 index 0000000..a4fc5a6 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/VCProj/bsr_trunk.vcxproj.filters b/snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcxproj.filters new file mode 100644 index 0000000..d168232 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/VCProj/bsr_trunk.vcxproj.user b/snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcxproj.user new file mode 100644 index 0000000..695b5c7 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/VCProj/bsr_trunk.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/snake_branches/2.2F_IS_TOOL/WDT.c b/snake_branches/2.2F_IS_TOOL/WDT.c new file mode 100644 index 0000000..ed3daf3 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/WDT.c @@ -0,0 +1,12 @@ +/* ======================================================== + wdt + + $Id$ + ======================================================== */ +#include "incs_loader.h" + +/* + + gAwb_Ƀ}N̂݁B + +*/ diff --git a/snake_branches/2.2F_IS_TOOL/WDT.h b/snake_branches/2.2F_IS_TOOL/WDT.h new file mode 100644 index 0000000..2e28e9d --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/accero.c b/snake_branches/2.2F_IS_TOOL/accero.c new file mode 100644 index 0000000..aa584ec --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/accero.h b/snake_branches/2.2F_IS_TOOL/accero.h new file mode 100644 index 0000000..fbf80d6 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/adc.c b/snake_branches/2.2F_IS_TOOL/adc.c new file mode 100644 index 0000000..94920c7 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/adc.h b/snake_branches/2.2F_IS_TOOL/adc.h new file mode 100644 index 0000000..6f4ad04 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/batt_params.c b/snake_branches/2.2F_IS_TOOL/batt_params.c new file mode 100644 index 0000000..a863711 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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 + { + { + 0x9D, 0xA0, 0xA8, 0xF0, 0xAD, 0x90, 0xAF, 0x00, + 0xB3, 0x00, 0xB3, 0xE0, 0xB4, 0xA0, 0xB5, 0x40, + 0xB6, 0x30, 0xB7, 0xE0, 0xB8, 0xC0, 0xBE, 0x70, + 0xC1, 0x40, 0xC4, 0x20, 0xC9, 0xA0, 0xD0, 0x30, + 0x01, 0x10, 0x06, 0x00, 0x2C, 0x20, 0x0D, 0xA0, + 0x37, 0x00, 0x37, 0x30, 0x47, 0xF0, 0x28, 0xF0, + 0x25, 0xF0, 0x37, 0x30, 0x10, 0xF0, 0x14, 0xF0, + 0x0F, 0x70, 0x0D, 0x00, 0x0D, 0x00, 0x0D, 0x00, + }, + 2, + { 106, (-256* 0.925), (-256* 2.3) }, + 0xDA30, // = 55856 + { 0xE9, 0xE7 }, + } + + + // FLOWER ///////////////////////////////////////////// + // BCTR̃obe[gB + + // CLOSER ///////////////////////////////////////////// + // BSPFL̃obe[gB +}; + diff --git a/snake_branches/2.2F_IS_TOOL/batt_params.h b/snake_branches/2.2F_IS_TOOL/batt_params.h new file mode 100644 index 0000000..264bcb7 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/batt_params.h @@ -0,0 +1,56 @@ +#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 +*/ + + +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[64]; + u8 v_scale; + rcomp_ rcomp; + u16 ocv; + verify_ verify; +} bt_param_; + + +#endif diff --git a/snake_branches/2.2F_IS_TOOL/bsr.hex b/snake_branches/2.2F_IS_TOOL/bsr.hex new file mode 100644 index 0000000..e0fadf5 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/bsr.hex @@ -0,0 +1,1014 @@ +:02000000610D90 +:0400100043484548D4 +:02001C00F149A8 +:02002400984AF8 +:02002A00E34AA7 +:08003400104CB34B0C4C514E73 +:02004A00474825 +:02005A008148DB +:020062000F4E3F +:06008000A44CDD4C274DED +:0400C0007EFBFF04C0 +:0A00C4001B339499E033F240BFAA09 +:1000CE00C7C1FBF8FFCEABACC736F00071F4C6610A +:1000DE00D8710006F98EA89C018C015C10D1DD0A46 +:1000EE007110A6FB710006F9EF0B8C015C80D161DB +:1000FE00E8710006F98F06F931030EF6B1BBF66111 +:10010E004900DD05618900EFF5FDFE01FD3101FDC0 +:10011E008901FD080AFD3F09FDB52FFDDC2CEFA579 +:10012E00C0C6D7C7360000674C09DE3F318E04F6D5 +:10013E000FC1317B9EFDC411897267318E04F64F5B +:10014E0014896142DF03F6EF01E660610667318EC6 +:10015E00124900207267318E04F64F14896142DF16 +:10016E0003F6EF01E660610687EFBC40F84F3A6197 +:10017E00E88666D161E8FDAC06C6D751065B0C3148 +:10018E001A9F08F94008F90161F8CF08F904D5085B +:10019E00F9DF06710009F9EF04710809F98F09F901 +:1001AE00310505CD3707EF03CD3705D908F9FD61C8 +:1001BE00298F06F95CE39F06F951035B04318EE744 +:1001CE00240000DD1023DD0823DF0E712006F9D791 +:1001DE00713006F9D7714006F9D7717BFACEA010AF +:1001EE00CEA180E5F300000000CEA408F5AAFFD74B +:1001FE008F06F9310508CD0003CD030FEF08CD03AF +:10020E000EF690BFB401CD0408CD0508F521FFCE42 +:10021E0022E9CE23F8CE24F3CE25FACE26FCCE2725 +:10022E005FCE2EFCCF1105F8CF120511CF3500028F +:10023E00CF370019CF530006CBEEFEFFCE3831CEAE +:10024E003970CF38050A308700BF1801BF1A01BFB9 +:10025E001C01BF1E01D7D7C7F616FD9104717BFA9C +:10026E0031329708713297717AFAEF0C717AFAA7D8 +:10027E00F647DFE95203EF01F2C6D7C7C1C1FBF85B +:10028E00FF17A1C1E0C18C0A70C18C0270FDAA02D9 +:10029E001006629D548C01721004C6D7C7C1FBF8BC +:1002AE00FFFD6502D2DD045203EF698B70FDDE03A4 +:1002BE00D2DD077133975202EF5A8C0870FDFA03A4 +:1002CE00FD45048B6C0170FDFA03300400BF240160 +:1002DE00301740BF1C01300400BF22018C0A91DF91 +:1002EE0004F6BF2A01710BE2CE44FF3182E202EF27 +:1002FE00FAAC0C148E449961790C61690A8C0AD19E +:10030E00DFDA8B4CA461F8FD3148FD6E04710BE20F +:10031E00713397F2C0C6D7C7C1FBF8FFFD6502D295 +:10032E00DD045203EF25710AE68B70FDDE03D2DD8C +:10033E00077133975202EF138C0870FDFA038C0A83 +:10034E0070FDFA03FD6E04713397F2C0C6D7C7C1B4 +:10035E00FBF8FFFD6502D2DD045203EF70710AE671 +:10036E00710BE28B70FDDE03D2DD07713397520203 +:10037E00EF5B710BE231229744C73422FBAC0C16B3 +:10038E0052048B99A5A792DFF9C68B9D518C089DBF +:10039E00528C0A9D533184BD02EFFA717ABDCEB1F3 +:1003AE0044CBB422FB8C0A318EBEB8CEBB48714B07 +:1003BE00E1714BE5710ABD8C089E44EF0F710BE69F +:1003CE008C089E448C0A9D50AC0CBD4EF2C0C6D714 +:1003DE00C716FD1D04AF0401BF0C0117FDFA03D2B1 +:1003EE00DD07FD6E045202EF01F2C6D7C716710A81 +:1003FE00E6710BE2669E443182E202EFFAF64204A7 +:10040E0001DD09AF0401BF0C01E2EF01F2C6D7AF67 +:10041E002801085CFB08BF2801FD6402AF28015CBF +:10042E00FBBF2801300400BF2A01301780BF1C011A +:10043E00300400BF2201D7AF2401086C0408BF248A +:10044E0001AF28016C0F086C0B08BF2801FD640278 +:10045E00AF2A01085CFB08BF2A01FD6402ED1D04F2 +:10046E00300400BF2401F6BF2A01300B0BBF280158 +:10047E00FD6402300B0FBF2801FD6402300F0FBF69 +:10048E002801D731449701D77132976A0E03713B19 +:10049E0025713B23E0FD1B0A7120F000FD6402F67E +:1004AE00BF26015024BF1401CB440014300F0FBFE0 +:1004BE002801712397710BE2710AE6FD1D04CE44EB +:1004CE00FF3182E202EFFAFD6E04AF0401BF0C01B0 +:1004DE00713397714297D731349702EFFAFD450485 +:1004EE00713A25713A235A0EFC7128F00071439728 +:1004FE00D77140F00071783002713AE6713BE271CB +:10050E003BEA713BEE5A06FCCF34024AE552FF71CC +:10051E001A52710A52714830027130300271203015 +:10052E0002CF330209CF32020B713031027120310A +:10053E0002713BE6717030028E265CFC9E26716065 +:10054E003002D7717830027148F000D7C72008FB0F +:10055E00F8FFFDA7085014C15008FDD907C0CC07FD +:10056E00048C074C14DE0C8C07318EFD430A615946 +:10057E0007EFEECC07048C074C1461C8ED4806CC8F +:10058E0006008C064C0461C8ED2706300AF9BC0241 +:10059E00F6BBCEABAC31B2D109C73641057184C6BC +:1005AE00DEF3F1C73641057184C661DC9C05713BF3 +:1005BE00D1AC02148F4005997150500561790261DA +:1005CE007900F0E1614900DD09C73641057184C645 +:1005DE00DEC3F1C73641057184C661DC0E059C058C +:1005EE005040C18C07318E31AD128C06318E318D5B +:1005FE0003BDD831FFBDDADADAADD8FD0F0DC0D2AA +:10060E00DD0C5008C15014FDD907C0FDCC0B8C0574 +:10061E00D1DF06615906ED90058C07318EFD470A34 +:10062E00D2DD0C5008C15014FDD907C0FDCC0B8C87 +:10063E0005D1DF06615907ED840571605005CC04C4 +:10064E0000CC05008C054C09DE2B8C05318E04F692 +:10065E001FC1317B9EFDC41189728C05318E04F64B +:10066E004F14896142DF03F6EF01E6600E049C042D +:10067E00615905EFCF41001140F81F3A61E8615909 +:10068E00048C04D1DF08FDCD0BFDDF0CEF0C500800 +:10069E00C15014FDD907C0FDCC0B1008C6D7C7201A +:1006AE0004FBF8FF712B24CC0100F6BC02AC024413 +:1006BE000900DE3EAC0204F60F144100118972AC43 +:1006CE00020C5014896142DF03F6EF01E6600E0161 +:1006DE009C01AC021249005072AC0204F67F1489E0 +:1006EE006142DF03F6EF01E6600E019C01617902C3 +:1006FE00EFBB40F67FFF61F86159018C01D161F8C3 +:10070E00EDA507CC0100717AFAFD91047113007109 +:10071E001B20710303710205E0C15003FD722BC053 +:10072E005013FD1B0A500FC1E0FD722BC0CEABACB7 +:10073E006159018C0191DD068C014C03DF03E6EF5C +:10074E0001F66061FB7121048C014C0861F8CC014B +:10075E000031320705A024FCEF03F524FC4024FCF5 +:10076E0011DC22F524FCF0C15003FD722BC0CE37F4 +:10077E0008CBE4FFFFCBE6FFF7CED4FFCF37000860 +:10078E00F5120561FDE6BC02F6614902DD9F00002F +:10079E000000617902EFF1FDA708D2DFFA5008C11F +:1007AE005014FDD907C0D2FDCC0B1004C6D731842E +:1007BE00BD02EFFA717BBDCBE4FFFFCBE6FFFFCBB3 +:1007CE00D4FFFF717ABED7717BBED7C7C1200CFB99 +:1007DE00F8FF8C0C318E31ADC1317B9DD4C0BC067F +:1007EE008DD49C088C149C0B8C14318E040C00122E +:1007FE008C0B318EBDD813FD9E0F61C8EDA208CEB5 +:10080E00ABACCC05068C0B318EFD3F0AD2DD158CC0 +:10081E000B318EFD430A6169058C05D1DFE7FDD5ED +:10082E0007E2EF71CC0A008C0A4C04DE54F6BC02CF +:10083E00300AF9BBAC06148C089EFD118972AB14FC +:10084E006299AC06A1BC06617900617902F0E161A2 +:10085E004902DFE05040C18C0B318E31AD128C0A53 +:10086E00318E318D03BDD831FFBDDADADAADD8FD68 +:10087E000F0DC0D2DD06FDD507E2EF1961590AEF63 +:10088E00A68C0B318EFD470AD2DD03E2EF076159CC +:10089E000BEDF607F2100EC6D7C7717B9D717BFA72 +:1008AE00FDBC07300AF9FDF20AFD7D0AC6D7FDA789 +:1008BE0008FDCC0BFDD507F5ABFFF2D7C731049B76 +:1008CE00067110B3FBEF047118B3FB8FB3FB7B8E75 +:1008DE0076D1DD5B8FB3FB9D8E4004F903DF22667C +:1008EE005C10D1DD1C8FB3FB5C10D1DD0B5080C1D1 +:1008FE005011FDE534C0EF095040C15011FDE534F3 +:10090E00C04004F903DD064004F904DF22665C02F0 +:10091E00D1DD1C8FB3FB5C02D1DD0B5040C15010FA +:10092E00FDE534C0EF095020C15010FDE534C0C6BE +:10093E00D7C7360000665C80D1DD10675C80D1DFE2 +:10094E000571339AEF0B71329AEF0671040771310C +:10095E009A665C40D1DD10675C40D1DF0571439A29 +:10096E00EF0B71429AEF0671140571419A665C01A4 +:10097E00D1DD10675C01D1DF0571539AEF0B715217 +:10098E009AEF0671340771519A665C02D1DD1067D9 +:10099E005C02D1DF0571639AEF1D71629AEF184008 +:1009AE0007F901DF0871040271619AEF0AC7361068 +:1009BE000571C4C671619A665C04D1DD10675C0472 +:1009CE00D1DF0571739AEF0B71729AEF06714407BE +:1009DE0071719A665C08D1DD10675C08D1DF057114 +:1009EE00039BEF0B71029BEF0671140771019B665F +:1009FE005C10D161E8715AD1C6D7F5F6FBF5F8FB5C +:100A0E00CFFEFBFFCFFAFBFFCFFBFBFFD7C7C1C16A +:100A1E00FBF8FFCEABAC8C02D1DD12616902305C0B +:100A2E0003BBF6614900DDEE618900EFF51004C6E7 +:010A3E00D7E0 +:100A3F005208EF065203EF025206FEE600FE1B00BD +:100A4F00DC16089F03088F0408089F040862FE2421 +:100A5F0000089F0408EEBF00EEBA00C1C514410E96 +:100A6F0011D9D0FF118FD1FF312E45C4C0D7F2312C +:100A7F00A2C401E2D79DE261DD4C09DF12717BFA5E +:100A8F00C18F06089F25FDC0CF060800EE27003155 +:100A9F00F2FA04CF0608004C00DF05D50008DD167A +:100AAF0061DD717BFAD50608DD0ACDE31F61CD61EB +:100ABF00CDEE160061CDFED40061FFFE9A00FCF86A +:100ACF00FF0EFEB20061CDFED5004C09DF0EC18FC7 +:100ADF0006086F25FD9F0608C0EE0400CF0608002C +:100AEF00F8E3D75200EF025202FE3700CF24FD0089 +:100AFF00CF060800BF0408C716629F000841001107 +:100B0F008F1A209B4100118F1B209F0108C6510097 +:100B1F00FE62FFEF025205CF060800C1510CFE0A1C +:100B2F0000C0D7C1511DFE0200C0D761DD717BFA35 +:100B3F0070CEC0A59EC47CFF9EC4609EC461CDD7FD +:100B4F0061DD717BFAC18EC45C1BFED6FFCF060838 +:100B5F0001FED7FFC061CDD731F2FA1AC1AEE4BFA3 +:100B6F0016FDAEE6BF18FDAED4BF1AFD30FFFFBEB7 +:100B7F00E4BEE6BED4C0D731F2FA11C1AF16FDBE46 +:100B8F00E4AF18FDBEE6AF1AFDBED4C0D7C1BF1C7F +:100B9F00FD13BF1EFD15BF20FD17BF22FDC0D7AF30 +:100BAF001CFDDB1EFDEB20FDFB22FDD7534B30520E +:100BBF005430324E323030475631323000FFC15050 +:100BCF00FEFEAB0061DD717BFACF060800FE0A0066 +:100BDF00FEA4FF61CDF8E3EECF00C7FB0408BF16FC +:100BEF00FD8FC0009C05C5C337040600BF18FD3537 +:100BFF0036310C300000522BFE6600C2C4C630DF07 +:100C0F000BB800300000B8022004AF18FDB8003058 +:100C1F000F00B802AF16FD61FF520AFE3AFFECF863 +:100C2F00FF0E717BFAC1C7FB04088C05C65C80FE02 +:100C3F000200C0D761DD717BFA70CFC0FFA59FC0E6 +:100C4F00007CFF9FC000609FC00061CDD7618BFE0D +:100C5F00E2FF717BBE410011FB000017CEFC00616B +:100C6F00CB089EFDF31161C999A58392DFF7D7FEDB +:100C7F00B1FED524FDDF23C1CF0308035109FEF4D4 +:100C8F00FDC0D2DF37FE3800A20408CF030807519A +:100C9F0009FEE1FDD2B20408DF22C7FB040831834D +:100CAF0002C6D7C6510AFECCFD624C1FDF06CF2409 +:100CBF00FD01EF04CF24FD00C0EE5BFEC0EE55FE3C +:100CCF00C7C1FB04088B31196C0161589BC0C6D793 +:100CDF00717BFAFE4DFEAF0408040600C1143643C3 +:100CEF000C300000522DF3FE77FF8FC000FE2BFE5D +:100CFF0061CF5C807C8073C0041900CEFC0F61CB88 +:100D0F00C55404EF03C55417FE18FEC7360008BBC1 +:100D1F00629C0288089C03D1DD334C41DE2F70F1B9 +:100D2F00312DB161090033081C000851FF612A41C0 +:100D3F000E118FD0FF613B118FD1FF6138DC0E8B0D +:100D4F005C03DF0964C6C4FE2BFDEECAFDC6C4EE0C +:020D5F00C3FDD2 +:100D610061CF5100718C7109FECBF800FEFCE801E6 +:100D710000F6BF00F953C0F693935820FEDFF94106 +:100D81000036624E34CCFCEF05118B99A7A51744B0 +:100D9100AC4EDFF53602F930CCFCEF04CC0000A7F5 +:100DA10047DFF9410036AC4E3420FEEF05118B9937 +:100DB100A7A51744BC4EDFF53630FE3096FEEF0492 +:100DC100CC0000A747DFF9FCCE0000EFFE61DD712A +:100DD1007BFABEF0ADD8BEF200AEF661CDD7C361ED +:100DE100DD717BFABEF0ADD8BEF200DBF6FFADDC03 +:100DF100BEF000AEF6BDD8AEF40312ADDABEF2001D +:100E0100AEF661CD03BDDAC2D7C3F33174D908831D +:100E1100C1F626D8BDD8C031750683C312F623C2E8 +:100E2100FD2C0E93DF0312F623C2D7440000DD260A +:100E310061DD717BFACFE80080BEF6F6BEF4BEF24A +:100E4100ADD8BEF0CFE800818FE8003103FAAEF0F3 +:100E5100F5E80061CDD7B1D7C3F33174D90883C1A7 +:100E6100F626D8BDD8C0317505C312F623C2FD7A66 +:100E71000E93DF0312F623C2D7440000DD2761DDA4 +:100E8100717BFACFE80080BEF6F6BEF4BEF2ADD8B3 +:100E9100BEF0CFE800818FE8003103FAAFE000F542 +:100EA100E80061CDD7ADD8D7C3F33174DB0F83C16F +:100EB100F626D8BDD861317026DABDDAC031750D9C +:100EC10083C312F626DCBDDC61317023C2FDE20E64 +:100ED10093DF0CF626D8BDD861317026DABDDAC2AF +:100EE100D7C161686BDC6BDDC0DD2F61DD717BFA21 +:100EF100CFE80080BEF4ADDCBEF6ADD8BEF0ADDA11 +:100F0100BEF2CFE800818FE8003103FAAEF0BDD820 +:100F1100AEF2BDDAF5E80061CDD7F6BDD8BDDAD7BE +:100F21008292DD2B61DD717BFACFE80080BEF0F6A5 +:100F3100BEF2BEF46208BEF6CFE800818FE8003150 +:100F410003FAAFE0006072AEF0F5E80061CDD76062 +:100F510072F6B1D706DABDDAADDC06D8BDD861D8F4 +:100F6100A6DAD7D1DD17C1C3DAD89DD8ADDA311CE5 +:100F710061EEB4D8DFF8BDDA13BDD8C2C0D7D1DD78 +:100F81001BC1C3DADA9DDAADD8311E33311E33719C +:100F9100F9B4DADFF4BDD813BDDAC2C0D746D8DD63 +:100FA1000771FF7177D971C0D75BDB9DDB605BDABD +:100FB1009DDAADDC5BD9085BD808BDD8D7C3C7F3D0 +:100FC100728EFDC162314C410036584E1161A072E2 +:070FD100C09EFD62C6C2D7FD +:0A0FF60031353A33383A3531000046 +:0A20000031353A33383A353100002B +: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 +:1021CA0054FCA0DAF5F39DA0A8F0AD90AF00B300DF +:1021DA00B3E0B4A0B540B630B7E0B8C0BE70C140F5 +:1021EA00C420C9A0D030011006002C200DA0370051 +:1021FA00373047F028F025F0373010F014F00F7020 +:10220A000D000D000D0002006A0014FFB4FD30DA63 +:10221A00E9E77F7E7D7C7A7978777675747271705A +:10222A006F6E6D6C6A6968676665646261605F5E3D +:10223A005D5C5A5958575655535251504F4E4D4B53 +:10224A004A494948474645434241403F3E3D3B3A59 +:10225A00393801020203030200FEFBF7F3F0F0F340 +:10226A00FA041225384D5F6E777A776E5F4D3825FE +:10227A001204FAF3F0F0F3F7FBFE00020303020282 +:02228A00010051 +:10228C008D3DB43DD1DF26CD3D1EFD4423FDE52221 +:10229C003132960D3104960931329A05713304EFBF +:1022AC0003713204FD1823FDBA22FD1B26D771538E +:1022BC0096D432DD05B43271529631229607313202 +:1022CC009A03715296715496714102314402057110 +:1022DC0040B3FBD77148B3FBD78D304B3BDC114A75 +:1022EC0030B9DE0C4A3E28DE03A43ED7713396D7B4 +:1022FC008D3C4B30DE054A30BDDC0C4A3F28DE03FA +:10230C00A43FD7713296D7F43EF43FD731429A0CA2 +:10231C004A4002DE03A440D7712396D7313204120F +:10232C0040AFFB3CDE0C8FB2FB5C01D1DF047123B0 +:10233C0096D7712296F440D7C7C1FBF8FF31329A79 +:10234C00067130B3FBEF047138B3FB7144967137EF +:10235C009ADE4F71349A71419631329A0E5002C105 +:10236C005011FDE534C0CD3229EF37E0C15011FDDD +:10237C00E534C0F43217C15002FD5A2BC0D2DF0D28 +:10238C008B318E318D080E01081C00BD34AD3444E8 +:10239C00009BDC05D5AFFBDF095020C15011FDE5DA +:1023AC0034C0C0C6D78D209D41FDF323FD8E2BD5A7 +:1023BC0007F9DD04710396D78D414B2061F8316428 +:1023CC00961C716396FD91044A4107DD054A41FF55 +:1023DC00DF098F06F9310303FD8224FD9624710277 +:1023EC00963079256194D7C77162017172015003DF +:1023FC00FD1B0A5008FD6237629D305009FD6237A3 +:10240C006276716301711806F94A30F1DC0BE5074D +:10241C00F9F508F9CD3707EF0E4A3004DE06CF0781 +:10242C00F902EF03F507F95008C1506CFD8902C0A1 +:10243C0092DF08D45461F8711006F94007F901DFF6 +:10244C0005710A22EF06710B22710302CD2007578A +:10245C0000674C08DE1073090A20614EDC05679D8D +:10246C0020EF0387EFEB4A2007DF09D507F961F866 +:10247C00CF07F903C6D7500AFD1B0A304000C150E4 +:10248C0006FD3D2BC05096ED1B0AC72006FBF8FF3E +:10249C00D507F961E8ED7525304A57C1503EFD3D31 +:1024AC002BC0D2DD077100B2FBED75257108B2FBB4 +:1024BC0017040200C15004C1500CC1506CFDAA029B +:1024CC001006EA38AA48318D12AA48318E616B0881 +:1024DC00616A08C1500EFD3D2BC0F690C1500CFD39 +:1024EC003D2BC0CC01008C014C04DE28313497020A +:1024FC00EFFA712297EA388C015010D605C15010B2 +:10250C00C18C01D6044000C1506CFD5C0310066107 +:10251C005901EFD250A5FD1B0AEA38AA48318D1299 +:10252C00AA48318E616B08616A08C1500EFD3D2BC3 +:10253C00C050A5FD1B0A5004C1506CFD8902C0623D +:10254C009C01EA388A4B4E0161C3048A4A4E01173A +:10255C00040200C15004C1500CC1506CFD5C03104E +:10256C0006F6C1503EFD3D2BC01006C6D7C78D42A6 +:10257C004B3061F8ED18264A4428DE05A444ED18CA +:10258C0026F4448D309D428D305070D612307351EC +:10259C00230480001231FF318E039D439FAEFBF666 +:1025AC008D437C804C95DC1B8D43318F241400EAC9 +:1025BC0038BDD8AA44FDCE0D1231FF318E03318FB8 +:1025CC0016EF198D43318F241400EA38BDD8AA4672 +:1025DC00FDCE0D1231FF318E03318F16EA388A424F +:1025EC007217F3031644000171FE61C836FF001721 +:1025FC0001DE02F61617BD7CC7500CFD3D2BC0D278 +:10260C00DF068D309D42EF047100B2FBF2C6D7C7D6 +:10261C002008FBF8FF4007F901DD064007F902DF4F +:10262C001C17040600FD602CD2DF0A8C069C058C5E +:10263C00079C04EF4ECC0563CC0400EF4617040650 +:10264C0000FD602CD2DD0F7100B2FB710396CC053E +:10265C0000711297EF2D7108B2FB8C06318E318D03 +:10266C00080E07081C00BBEA388A4072ABFD210F2C +:10267C00BB8C019C05D1DF08CC0501CC0400EF0319 +:10268C008B9C0417040600FD6B2CD2DD06CC06C80F +:10269C00CC07008C069FB1FB8C06318E318D080E59 +:1026AC0007081C00BD34AD344401A5DC08CC036420 +:1026BC00F6BD46EF48AD3426464401A0DC08CC03F9 +:1026CC001EF6BD46EF37AD3444819DDC09CC030AC0 +:1026DC00C946F401EF27AD3444019BDC09CC03055A +:1026EC00C946F401EF17AD34440191DC09CC030069 +:1026FC00C946F401EF07711297C946F4013132044F +:10270C000C31249608CC0564CC0400EF0D8C034EE0 +:10271C0005DE078C039C05CC04008C059FAFFB8C5D +:10272C00049FB0FBFDED2B8D484E05DD2840AFFB23 +:10273C000BDE054A480BDE1440AFFB06DE054A48AB +:10274C0006DE09D5AFFBDF0DD448DD095020C150A2 +:10275C0011FDE534C08FAFFB9D48FD2A2C1008C637 +:10276C00D7C75601D837C15002FD722BC08F09F95B +:10277C003105075012FD1B0AEF0E500AFD1B0A71A2 +:10278C002010055008FD1B0A8D376C0870C15002D3 +:10279C00FD722BC05003FD1B0A8D376C1870C15095 +:1027AC0002FD722BC05016FD1B0A5003FD832B62D9 +:1027BC005C01D1DD0F7170B3FB5002C15013FDE50C +:1027CC0034C056006672C6D7C75004FD832B625CBA +:1027DC0003D1DD405014FD6B2834B3FB895C9F9909 +:1027EC008A0C7CFF50FF5C14D1DD228A0C7CFF5CD0 +:1027FC00147234B7FB89616A9971620756003162B1 +:10280C0007058666D1DFF7716307716B2734C6FB4A +:10281C00895CEB995002FD832BD2DD398D376C101E +:10282C0070C15002FD722BC0E0FD1B0AD837C1509D +:10283C0002FD722BC05033FD1B0A8F09F9310309BD +:10284C0071281005500AFD1B0AF0C15002FD722BB5 +:10285C00C07178B3FBE0C15013FDE534C0C6D7C7D7 +:10286C00C12004FBF8FFCC02005004FD832B629CBA +:10287C00038C045C20D1DD0E8C036C019C038C0258 +:10288C006C209C02EF138C045C10D1DD0C8C035C6F +:10289C00FE9C038C026C109C028C045C08D1DD0E37 +:1028AC008C036C029C038C026C089C02EF138C044E +:1028BC005C04D1DD0C8C035CFD9C038C026C049CD1 +:1028CC00024008F903DF088C03D161E8CC03028CC9 +:1028DC0003D1DD05501AFD1B0A8C0370C15004FD99 +:1028EC00722BC08FB3FB5C9F728C03318E316D14D5 +:1028FC008C03318E314D616D08616C5C606162627C +:10290C009FB3FB8FBFFB7CFF50FF5E02D1DD278F97 +:10291C00BFFB7CFF5E027234B7FB89616A997162FE +:10292C0007CC0100316207086159018C01D1DFF439 +:10293C00716307716B27F21006C6D7D9A7FBC1507C +:10294C0006FD722BC0D9A8FBC15007FD722BC0D756 +:10295C00FD4729F2D7C716664C02DD044C04DF058F +:10296C00CD3A08EF02F43AC6D7C7711300711B2099 +:10297C00710303710205E0C15003FD722BC05013AB +:10298C00FD1B0AD83AC15005FD722BC0500FC1E097 +:10299C00FD722BC0500AFD1B0A7103055008FD1B6C +:1029AC000A501FC1E0FD722BC05012FD1B0A5003D0 +:1029BC00FD832B625C01D1DF03E2EF12F0FD832B70 +:1029CC00629D363602F9C75008FD5A2BC0F2C6D7A5 +:1029DC005003C1FD722BC0710203711A20FD1A2B1A +:1029EC00F431D75003FD832B625C01D1DD155014FB +:1029FC00FD6B28FDD4275014FD1B0AE0C15003FDCC +:102A0C00722BC0711300711B207103035014FD1B3A +:102A1C000AF0C1E0FD722BC0F0C15003FD722BC057 +:102A2C00D7C72004FBF8FFCC02008D319C0350105B +:102A3C00C150A4FD8902C0629D31D454DD04F2ED75 +:102A4C00F72A8C037B315C08D1DD0F8D315C08D10A +:102A5C00DF05CC0210EF03CC02208C037B315C042D +:102A6C00D1DD158D315C04D1DF088C026C049C0225 +:102A7C00EF068C026C089C028FB2FB5CF3728D31FA +:102A8C005C0C6162629FB2FB8FBEFB7CFF50FF5EF1 +:102A9C00029C02D1DD1F34B6FB896E02997162076C +:102AAC00CC0100316207086159018C01D1DFF4714E +:102ABC006307716B278D315C40D1DD095002C15029 +:102ACC0012FDE534C08D315C01D1DD08E0C150123E +:102ADC00FDE534C0717AFA8D315C41D1DD0C5A318F +:102AEC00BED831C15010FD8E47C0F21004C6D7FDC0 +:102AFC006D27F2D7FDD427F2D7C78FC6FB7617FD0B +:102B0C006B28664FC6FBDFF2F5C6FBF2C6D75064E6 +:102B1C00FD1B0AFD762C6261FB711196F171149606 +:102B2C0061DC70C15012FD8E47C0FD9336CD63033E +:102B3C00D7C7C1C1FBF8FFAC0ABB17C15002C18C8F +:102B4C000270C1506CFD5C0310061004C6D7C7C1DF +:102B5C00FBF8FFAC08C15002C18B70C1506CFDAAD0 +:102B6C00021006C0C6D7C78806166770C1C7508446 +:102B7C00FD25031004C6D7C716C75084FD8902C0B3 +:102B8C00C6D7C74A2004DE045600EF0256018F0850 +:102B9C00F9318FE7240000DD1A23DD0B23DD0C2334 +:102BAC00DD1123DD0CEF0C8686EF0851046106EF76 +:102BBC0002868666318F12504CD633514CD6610A40 +:102BCC00045420BD384008F902DD064008F904DF42 +:102BDC0008CD3B54CD3C44EF06CD3B4BCD3C3DC6E4 +:102BEC00D740AFFB3DDC05CF04FC0FD740AFFB1F3C +:102BFC00DC05CF04FC0BD740AFFB0BDC05CF04FC92 +:102C0C0007D740AFFB0661D831320405CF04FC0373 +:102C1C00D7D5AFFBDD04E504FCD7F504FCD7D50410 +:102C2C00F9DF04717396D7FD762C6261FB71019705 +:102C3C0071149671079761C83172961771729671FB +:102C4C000497711196F171049761DC70C15012FDFB +:102C5C008E47C0D7C716C75004FD5A2BC0C6D7C75E +:102C6C0016C75002FD5A2BC0C6D740AFFB0BDE0275 +:102C7C00E2D7F2D77100010571785005713AD57120 +:102C8C003BD18F10055CFC9F1005CF54054AE542E3 +:102C9C0005711042057100420571485005713050A4 +:102CAC000571205005CF530509CF52050B713051DA +:102CBC000571205105713BD5717050058F11055C64 +:102CCC00FC9F1105F422D77178500571080105D7C6 +:102CDC00FD8D38FD9104717AFAFDB123F504F98F5D +:102CEC0006F931051B5003FD832B625C01D161E8B1 +:102CFC00CF04F902CFAFFB64710407714196EF105A +:102D0C00F6710407611012F6B1236061FB714196F4 +:102D1C00FD9530FD3243712299712BE7618461A4DA +:102D2C0061EDEFF8D7C788061666614FDD0967615C +:102D3C004EDE0396EF01866672C6D7C7161714AA25 +:102D4C000412A943DD29AA0412A923FDBC4EC3AC6D +:102D5C0002FDBC4E13C2BDD813FD9E0FDE0C171422 +:102D6C00AA0212AA0403BA04EF051714A9BA04ACF8 +:102D7C00041231FF319E03317F087208C6D77100EF +:102D8C00F200304400BFB601300188BF9001300919 +:102D9C0084BF9E01BF9C01BF9A01BF9801BF9601E1 +:102DAC00BF9401BF9201F53CFF30FE00BFBE01F69F +:102DBC00BFBC01BFB80150EEBFBA01A1BFB201C97F +:102DCC0018FE008F06F9310507F5CDFBCB6CFF0023 +:102DDC00717397716297D7C72004FBF8FF3026FBFD +:102DEC00BC02F6BBAB446400DE0EAC0214CA00009D +:102DFC00617902617900EFEC1004C6D730EF00BFA7 +:102E0C00B401F6BFBA017108F200712304715307C3 +:102E1C00BE6EBE64BE6A712304715307715BD1F43C +:102E2C0057F456716397D78D58B458D1DF6931D4A4 +:102E3C00D105715BD1E457D457DD2E7140B2FBD86C +:102E4C0056F1E734020023DD0625DD0325DF05F608 +:102E5C00BE66EF06D9CCFBF1BE66A4564A5620DFFF +:102E6C0004F456F457CD5819D7CD581E7148B2FBFF +:102E7C00D5CEFBDF04F6BE66D7D9CCFBF14266FF9C +:102E8C00DD15D9CCFBF112AE6643DE05A266FFEF71 +:102E9C0003B266FFCD5803D7C7161714F6B9AA04A8 +:102EAC0012F6231231FF31AE03316FBA02AA04615C +:102EBC0068DD0AAA026168DF04F6B1BA02C6D7C798 +:102ECC00C1FBF8FF8C085080D612AB1413B9AB14AD +:102EDC00AA0412A92312D927FBF133BDD813FD0A7A +:102EEC000EBA02C0C6D731049801D74004F902DFEC +:102EFC0010F6BE64BE6EBE6ABF8EFBBF94FBBF9A5B +:102F0C00FB31749714308AFBFDA42E3090FBFDA48A +:102F1C002E3096FBFDA42EEF713114980D71139881 +:102F2C007108D2FBF45AF459EF60D459DF5A8F264A +:102F3C00FB9D594A5A1FDC177100D2FB4028FBFF3E +:102F4C00DD1CA45B8F28FB4B5BDE13F45AEF0FD810 +:102F5C005AF1A1605C1F9D5A7108D2FBF45BE85AD0 +:102F6C00092AFB70C1308AFBFDCB2EC0E85A094AF6 +:102F7C00FB70C13090FBFDCB2EC0E85A096AFB7088 +:102F8C00C13096FBFDCB2EC0B459308AFBFD472DCA +:102F9C00F313BE6E3090FBFD472DF313BE6A3096D3 +:102FAC00FBFD472DF313BE64D7C736F00071F4DC7C +:102FBC00297170F000CE9D08CE9EC0CE9F80F594F6 +:102FCC00FFF593FFF592FFE597FFE596FFE595FF7B +:102FDC00E598FFCE9C7F7100A6FB711BE3712BE380 +:102FEC00711AE7712BE7717A9D710A9E31929E02DC +:102FFC00EFFA710B9E712398713398714398C6D771 +:10300C00C73122981E712298710A9E31929E02EF4E +:10301C00FA34D4FB3692FF52078B99A5A792DFF9AD +:10302C00710B9EC6D7C78806163132981571329827 +:10303C00C7349CFB3092FF1652078B99A5A792DFE1 +:10304C00F9C6667367189CFBC6D7C77123983134D1 +:10305C00981E713398710A9E31929E02EFFA349247 +:10306C00FF369CFB52078B99A5A792DFF9710B9E3B +:10307C0031449813714398717B9E8FDCFB9E9A8F21 +:10308C00DDFB9E9B717A9EC6D7CFA7FB5CCFA8FBBE +:10309C005FCFC8FB5DCFFCFB36CFFDFBC9D7C7CFDD +:1030AC00A4FB12CFA5FB31CFCCFBFFF5CDFBF5CEAE +:1030BC00FBF5CFFBF5D0FB5600664C64DE0872388E +:1030CC0026FB0086EFF3F5E3FB714A9D712B217112 +:1030DC000A20711A20710203C6D7C788061617F189 +:1030EC00E73403002361E3ED12342361F8EDE93298 +:1030FC00B12361E3EDF3322561F8ED0133B1240D19 +:10310C000061D8ED1234240B0061F8EDDB31236142 +:10311C00F8ED1E322361F8EDEE312361F8ED0B343E +:10312C0024060061F8ED9D32B12561D8EDB9322449 +:10313C00000061F8EDC6322361F8ED12342361F81A +:10314C00ED1034B12361E3ED21332361F8ED32331B +:10315C002361F8ED43332361F8ED32332361F8ED4D +:10316C0054332361F8ED65332361F8ED7433236137 +:10317C00F8ED96332361F8EDA1332361F8EDAC3310 +:10318C002361F8EDB4332402002361E3ED12342300 +:10319C0061F8EDE8332361F8EDBC332361F8EDC73A +:1031AC00332561F8EDD233B124060061D8ED123429 +:1031BC0024000061F8ED14342561F8EDDD332412A0 +:1031CC000061F8ED97322361F8ED8732ED14346726 +:1031DC00D1DD0C30BC3B619434C4FB89616F99ED3B +:1031EC001E34675C02D1DD0730FB2A6194EF0B675C +:1031FC005C01D1DD0530002B6194675C3CD1DD0FA7 +:10320C0030052B6194675C3C7266736218A4FBED0D +:10321C001E3467D1DD625C01D1DD05300800EF01A1 +:10322C00F6609F01FC675C02D1DD03E6EF01F6342A +:10323C0001FC89616899675C04D1DD04E6A1EF01AA +:10324C00F63401FC89616899675C08D1DD05302092 +:10325C0000EF01F63401FC89616899675C10D1DDDF +:10326C0005301000EF01F63401FC89616899675C48 +:10327C0020D161E8716001FCED1E344A5CC8DE08A7 +:10328C00E85C67185AFAA45CED1E34679D5CED1E71 +:10329C0034D44ADF08679FCDFBA44AEF0D4A4A0598 +:1032AC00DE08E84A671811FDA44AED1E34675C0F6E +:1032BC007266736218A4FBED1E344A4A64DE1B4A24 +:1032CC004A01DF0667D161F85701E84A671826FB07 +:1032DC00A44A4A4A0561C8711298ED1E3434A6FB03 +:1032EC0089615F99ED1E34305C29619466736718AF +:1032FC00A4FBED1E3440A9FB6ADF1340AAFB68DF78 +:10330C000D674C6CDF08306F406194713AD5679F44 +:10331C00ABFBED1E34675C7F70C117F1243000FDF0 +:10332C003130C0ED1E34675C3F70C117F1243000A2 +:10333C00FD3130C0ED1E34675C0770C117F12430CD +:10334C0000FD3130C0ED1E34675C1F70C117F124D5 +:10335C003000FD3130C0ED1E346770C117F12430E0 +:10336C0000FD3130C0ED1E34CEABAC710A9E3192F3 +:10337C009E02EFFAD592FFDF05710B9EEFED679E73 +:10338C0099710B9E9FDBFBED1E34714298675C7F3D +:10339C009FDCFBEF7D714298675C3F9FDDFBEF721A +:1033AC00675C3F9FDEFBEF6A675C1F9FDFFBEF6292 +:1033BC003071396194679FE4FBEF57303E3961946B +:1033CC00679FE5FBEF4C3057396194679FE8FBEF43 +:1033DC0041675C01D1DD3BFD3243EF36675C02D1C6 +:1033EC00DD05712A21EF06714A9D712B21675C0165 +:1033FC00D1DD06710300710B20679FE3FBEF1367B0 +:10340C00318EEF0EEF0CEF0A664C5BDE057367181E +:10341C00A4FBC6D7C716664C30DC094C37DE05FD5D +:10342C000C30EF76664C02DF1F8FA6FB5C03728FAD +:10343C0003FC5C03318E316D08616A08128F03FC4A +:10344C005C80312A6162EF61664C3DDF08AE90BD55 +:10345C005EF85EEF54664C3EDF04F85FEF4B664C53 +:10346C004FDF05FD5A43EF41664C61DF134A5CC8E0 +:10347C00DC045700EF06E85C095AFA776772EF290B +:10348C00664C7FDF05FD323CEF1F664C4EDF0B3187 +:10349C00049A045210EF12F2EF0F664C5BDC0452EC +:1034AC00FFEF06667309A4FB72C6D7C7880616170A +:1034BC00F1241000240500DC07244C00DD17EF1765 +:1034CC00717BFA17F104A4FB1489617F99717AFA64 +:1034DC00715298EF02A45CC6D7C7C1C1FBF8FF407C +:1034EC0004F903DD064004F904DF38717BFA8C0221 +:1034FC007309ACFB5E0AD1DF278C02318E04A4FB6E +:10350C0014896E0A99716207717AFACC01003162E2 +:10351C0007086159018C01D1DFF4716307716B27C6 +:10352C00717AFA1004C6D7CF03FC03F501FCF5053C +:10353C00FCF507FCD7C788061617F1E734020025FF +:10354C00DD3D23DD1725DD1C23DD0523DD2BEF3BC6 +:10355C00710299679F06FCCD6303EF2F675C839F15 +:10356C0003FCEF27675C039F05FC675C034C02615F +:10357C00F871229AFD4845EF12679F07FCEF0C6724 +:10358C0091DF08E0C15012FDE534C0C6D7C716174D +:10359C00F1E7240000DD2A23DD1E240300DD0724CF +:1035AC00FB00DD24EF2531329A05308000EF01F667 +:1035BC00086F04FC7208EF198F01FCF501FC72EF27 +:1035CC00107152995235EF09F2EF0666730900FC3F +:1035DC0072C6D7C71617F1E7240000DD3824100097 +:1035EC00DD1C23DD1C23DD30240E00DD182411002E +:1035FC00DD1B240F00DD12243000DD15EF1EE2EF81 +:10360C001D5202EF195204EF155206EF115205EF3D +:10361C000D5207EF09F2EF065203EF0252FFC6D725 +:10362C00C7316498377163988D629FACFB8D619F35 +:10363C00CBFB36D2FCC7D861FD9337618A70618AA7 +:10364C00FDD837C0D866F1312F609D658D604B6514 +:10365C00DD0A7172988D659D60CD63034A6305DE4A +:10366C0008309D366194CD636BB4637150F000CE1D +:10367C00300BCF170006CE3106FD6402717A307123 +:10368C000BE3710BE7C6D78D659D608D659FADFB18 +:10369C00D74004F903DF064004F904DF02F2D73106 +:1036AC0074980C7173987113998D659D67EF313116 +:1036BC0004991F710399711299D506FCDF04F46803 +:1036CC00EF0A8F06FC5002D6A1609D688D689D673D +:1036DC00EF0E311499068D689D67EF048D659D671B +:1036EC008D679FADFBD867FD0537E867091C227015 +:1036FC00C15013FD8E47C0F2D7C7C1C1FBF8FF8C78 +:10370C0002D1DF05F506FCEF1A8C024C05DE06CF64 +:10371C0006FC02EF0E8C02318E1231FE03311F605B +:10372C009F06FC8D694F06FCDD28CC011F8F06FC23 +:10373C009D69CC00008B4C08DE148B730912204F52 +:10374C0006FCDC058B9C01EF05615900EFE78C0151 +:10375C009D641004C6D7C716710AE7710BE371504C +:10376C00F000CE300BCF170006669E31FD6402715F +:10377C007A30710BE33182E302EFFA8D1F7158F04E +:10378C0000710BE772C6D7C7C1C1FBF8FF8FFCFBFA +:10379C004E02DC03F2EF318C024FFDFBDC0452FFD6 +:1037AC00EF268C022FFCFB706131318D128FFDFBEB +:1037BC002FFCFB70613133BDD813FD2C0EBB4400C4 +:1037CC0001DC03F690BB8B721004C6D7C7C1FBF8A3 +:1037DC00FFAC0814A91489708B6128706131FDBC91 +:1037EC004E1344030071FEDC23AC08148A04819A46 +:1037FC0004AC08148A044C11DC10A9148B99AC0885 +:10380C0014CA0200AC0814CA0310EF72AC0814CA34 +:10381C000400AC0814A914894DDE0AAC08148A0201 +:10382C00819A02EF12AC0814A914894D61D308AC2B +:10383C0008148A02919A02AC08148A03919A03D153 +:10384C00DF3CAC08148A024C10DF10A91489318EAD +:10385C00A112AC0814A9146299EF17AC08148A02CF +:10386C004CF0DF0EA91489318EB112AC0814A914D6 +:10387C006299AC0814CA0200AC0814CA0310C0C682 +:10388C00D7ED9038C75600664C0ADE0BF0317E122D +:10389C00F67810FC86EFF0C6D7C7200CFBF8FF17A4 +:1038AC00040600C15006C150A8C15030FDAA021038 +:1038BC0006D2DD1B4A6C04DE05A46CE2EF7034E426 +:1038CC00FB895CFC99FD71397110B2FBF2EF5F71F1 +:1038DC007BFA300600C117040600C130E9FBFDC4B9 +:1038EC004E1004717AFAF46C8FE4FB5C01D1DD2686 +:1038FC004004F903DF205010C180FDE534C0C73609 +:10390C00100571D4C6DE0F17C15006C150A8C150A6 +:10391C0030FDAA0210064004F903DD064004F90448 +:10392C00DF0B8FE4FB5C02D161E8FD7440F2100CFC +:10393C00C6D7D9E5FBC15030FD8902C0629FE8FBB8 +:10394C005008C15011FDE534C0F2D7D9E8FBC1D9FC +:10395C00E7FBC15030FD250310045008C15011FD88 +:10396C00E534C0F2D7C7200CFBF8FFCC09004007A8 +:10397C00F901DF05CC0A02EF03CC0A10CC0B808FC7 +:10398C00E4FB5C039C07D1DF08717AD5CC0807EF08 +:10399C0006717BD5CC082F17040800C15004C15008 +:1039AC00A0C15030FD5C031006624C02DF077110A1 +:1039BC00B2FBF2EF357118B2FBF46CC7361005711F +:1039CC00D4C6DE164004F903DF1017A1C15006C19E +:1039DC0050A8C15030FDAA021006717BFA8FE4FB8F +:1039EC005C034E07DD03E2EF01F2100CC6D7D504E1 +:1039FC00F9DF03F6BD6E4004F901DD0AD478DD036E +:103A0C00B478D7CD78038F04F9318FE723DD0B24FD +:103A1C00020024030061C8ED2A3B8F06F9312349CB +:103A2C00301B00466EDF158FE3FB5C01D161E8F5BE +:103A3C0004F9E0C15010FDE534C0EF1D30770146AC +:103A4C006EDF165002C15010FDE534C0F64674DF2F +:103A5C00088FC8FB5010D6BD74F64674DD36B674AC +:103A6C004674DF30711297EF2B301B00466EDF135C +:103A7C00F64676DF18E0C15010FDE534C0C9765328 +:103A8C0007EF0A307701466E61F8711297F64676A9 +:103A9C0061E8B67631549A08714399F6BD6EEF140D +:103AAC0031449905F6BD6EEF0BA66EF6466E61F8C5 +:103ABC00C96EFFFF31629A194A7005DE16A4704A6E +:103ACC007005DF0FA4705004C15010FDE534C0EF39 +:103ADC0002F47031649A194A7205DE16A4724A72A5 +:103AEC0005DF0FA4725008C15010FDE534C0EF0281 +:103AFC00F472D473DD03B473D731729A174A71051B +:103B0C00DE14A4714A7105DF0DA4715010C1FDE5DE +:103B1C0034C0EF02F4714A710661F8CD7325D7C732 +:103B2C0036100571D4DE0E8FB2FB5C02D1DF06308D +:103B3C00A5386194D24004F903DF1C31220705300B +:103B4C002D2A61943154990C7153995080C15012A3 +:103B5C00FDE534C0FD683BFD8E3BC6D78F03FC5C96 +:103B6C0001D1DD1DD47BDD03B47BD7CD7B098D6406 +:103B7C004B7ADD0D8D649D7A5040C15012FDE534B9 +:103B8C00C0D74004F903DD04F6BD1AD7D5D0FBDF4E +:103B9C0008F6461ADD19B61AD7D9CCFBF1461ADD50 +:103BAC000ED9CCFB12AD1A43DE03A61AD7B61AD720 +:103BBC00717BFAC78FC4FB76F5C4FB717AFA5C1083 +:103BCC00D161E8716299665C0FD1DD57665C01D1F9 +:103BDC00DD05F504F9EF4C665C02D1DD11E0C15056 +:103BEC0003FD722BC0711300711B20710303665C03 +:103BFC0004D1DD11711300711B20D503FC61F87128 +:103C0C000303FD3335665C08D161E871030350058D +:103C1C00FD1B0A7102035003C1FD722BC0711A20E7 +:103C2C00FD1A2BF2C6D7C756FF4A4A1361C8EDF0EE +:103C3C003C8F06F931150D314505300600EF143077 +:103C4C000400EF0F8F06F9314505300500EF04D95C +:103C5C0007F9F1609F28FC8D7C9F29FC713496E656 +:103C6C0061301271049661DC31196162629F2AFC29 +:103C7C00E52BFC31449A05304000EF01F6C131349C +:103C8C000405302000EF01F6C2616B08616A08C1BF +:103C9C0031749A05300400EF01F6C2616B08616A59 +:103CAC0008C131649A04E6A1EF01F6C2616B0861A8 +:103CBC006A08C131549A03E6EF01F6C2616B0861E0 +:103CCC006A9F2CFCF171240461DC9F26FCF1715479 +:103CDC000761DC9F27FCD84AF10104ECFC14A91401 +:103CEC008976A44A6672C6D7C7FD3F098F04F9319D +:103CFC008FE724000061F8EDC93E23DD1B2361F83A +:103D0C00EDDB3D2361F8ED4E3E2361F8ED973E234C +:103D1C0061F8ED693FEDC63EF6BD74711397400531 +:103D2C00F901DF2C31349A1B466EDD04F424EF02CA +:103D3C00A4244A2465DC0FF6BD6EF504F9712299B2 +:103D4C00EDEA3FFDB123AD6E440A0061D8EDEA3FC8 +:103D5C00714299FD9104716396FDB1234007F903FB +:103D6C00DF09712299F504F9EDEA3FFD1B2640B1FC +:103D7C00FB9BDE09712299F504F9EDEA3F714A27A4 +:103D8C007140110571301105713A22715A2271502E +:103D9C001105FD7529D2DD09712299F504F9EDEAB9 +:103DAC003F71103500CF37001D71401205FDDC2925 +:103DBC004005F901DD064005F903DF05F5CDFBEF04 +:103DCC0004CFCDFB03CF04F902FD4729EDEA3FFDFB +:103DDC00802CFDFF04FD3335FDAA30F537FF712B28 +:103DEC00E0F505F9712299CBE43FEFCBE6F6F0FD57 +:103DFC009104713BD48F06F93105285004FD832BB7 +:103E0C00625C03318E315D34B3FB89616899500279 +:103E1C00FD832BD2DD067170B3FBEF047178B3FB1D +:103E2C00FDB123FD8A2D710806F9CF04F9038FA685 +:103E3C00FB5C02D1DD095080C15010FDE534C0EDB2 +:103E4C00EA3FFDEC3F3164992FA47ED47EDD08312E +:103E5C00A4E00A31020C06712BE0FD604031A4E0B5 +:103E6C001731040C13712BE05027C15005FD722B38 +:103E7C00C0CF04F904712299FD55408F06F9312504 +:103E8C000731349A03F504F9EDEA3FFDEC3F3102BA +:103E9C000C15D83AC15005FD722BC05005FD1B0AFC +:103EAC00FD6040CF04F903FD55408F06F93125071D +:103EBC0031349A03F504F9EDEA3FF504F9CFCDFB63 +:103ECC0003F5CEFBF5D0FB717297F6426CFF61E8FF +:103EDC00EDEA3FF6BD74711397F5E4FBFD71397192 +:103EEC007AFAFD082EFDD32CFD5105712B21714B57 +:103EFC009D31349702EFFACE3708CBE4BFFFCBE607 +:103F0C00FFF3CED4FFF5B4FBF5B5FBF5B6FBF5B777 +:103F1C00FBCF37000971481205F6BEE0BEE2BED0F9 +:103F2C00716A27FDEF29714307714B277148100502 +:103F3C007148110571381005713811057133027112 +:103F4C003B22715302715B22715810057158110597 +:103F5C00CF04F905714299F6BD6EFD080AF505F915 +:103F6C00F42431349A04D432DD20E505F9E504F962 +:103F7C008F06F9312568F5F8FBF5F6FB502EFD1B85 +:103F8C000ACF05F903E504F9EF54FDE504FD4423DC +:103F9C00717301713204714302710396716296312F +:103FAC00949E02EFFA712AE7CEA409F5F3003104CE +:103FBC00070261FDE5F300F46AFD3F09CEA4083168 +:103FCC00329A06CF04F905EF09714399E505F9E535 +:103FDC0004F9712BE78F06F9312503F504F9C6D7DF +:103FEC008FE3FB5C01D1DF60D47FDF193102005815 +:103FFC005003FD832B625C01D1DF07F504F97122BC +:10400C0099D7E47FD74A7FF0DF073104003AF47F79 +:10401C00D74A7FC8DF0AF504F9712299CD7FF0D712 +:10402C00310200084A7FFFDD1FA47FD7F0C1500486 +:10403C00FD722BC08FB3FB5C9F9FB3FB7110C4FB55 +:10404C0030BC3B6194CD7FF0D731149706F504F961 +:10405C00712299D7716399F47E717207FD640271B4 +:10406C007307D7FD5A05F2D7717BFAC7200CFBF802 +:10407C00FF8FEAFBF0F9E9FBF303FDBC4E13BC0424 +:10408C008FECFBF0F9EBFBF303FDBC4E13BC028F82 +:10409C00EEFBF0F9EDFBF303FDBC4E13BB717AFAAA +:1040AC00AC04BDD8F6BDDAAC04311EBDDCF6BDDE09 +:1040BC00FDDF0DADD8BDDCADDABDDEAC02BDD8F692 +:1040CC00BDDAAC02311EDADCC3DADEC3BDDCF6BD10 +:1040DC00DEFDDF0DC0BDDEC0BDDCADDEFD550FADC0 +:1040EC00D8BDDCADDABDDEABBDD8F6BDDAAB311E6A +:1040FC00DADCC3DADEC3BDDCF6BDDEFDDF0DC0BD30 +:10410C00DEC0BDDCADDEFD550FDADAADD8FD4344C3 +:10411C00C3C58D8C5C3FF0317E0440FC14C2C0B929 +:10412C00A48CF6BC08BC0A9C078C074C2EDD3D8D7C +:10413C008C0E0770F161DC605C3FF0317E127940CF +:10414C00FCBDD8F6BDDA8C0773095C22318FBDDC5F +:10415C0070BDDEFDDF0DAC08BDDCAC0AFD550FAD4E +:10416C00DABC0AADD8BC08615907EFBDAC08BDD8A4 +:10417C00AC0ABDDAC9DC0004F6FDA90EC9DCFFFFF0 +:10418C00F6FDAA0FADD8BD86AF3AFC4686DD11AF61 +:10419C003CFCBF3EFCAF3AFCBF3CFCAD86BF3AFCDE +:1041AC00AF3CFC423EFCDC46AF3AFC423CFCDE3E03 +:1041BC00AD26423AFCDE374A2A16DC1A4A2AA0DE21 +:1041CC00138D884B2ADE0DAF3AFC268A44691061A8 +:1041DC00C8FD2C42F42AAF3AFC445146DC0AAF3AF3 +:1041EC00FC241027BD28EF0DC928F82AEF074A2A0E +:1041FC00FF61E8A42AAF3EFC423CFCDC18AF3CFC5F +:10420C00423AFCDE10AF3AFC4628DE09F488AF3A9D +:10421C00FCBD8AEF074A88FF61E8A488100CC6D75A +:10422C00717BFAC7710A9E31929E02EFFA8E949FAF +:10423C0034FC8E969F35FC8E979F36FC8E989F375C +:10424C00FC8E939F38FC8E929F39FC710B9E717A79 +:10425C00FA8F37FCFDBE0F76FDC14313BD84D5EF3D +:10426C00FBDF0AD5F0FBDF05D5F1FBDD25F6B1460A +:10427C0084DF11C9843722665C0391DF060A841837 +:10428C001A85009617FDE44413FD044331049A0289 +:10429C00EF61520692926934FC682EFCDFF6AD8415 +:1042AC00BD82F880F3311C790AF944FEFFDD44D855 +:1042BC0080F101040AF914A944FFFFDF04E6B9EF09 +:1042CC000BD880F101040AF914A9A1B9717BFAA0E9 +:1042DC00EFFBD5EFFBDF1CA0F0FBD5F0FBDF14A050 +:1042EC00F1FBD5F1FBDF0CCFEFFBFFCFF0FBFFCFEA +:1042FC00F1FBFFC6717AFAD7C716D880F10744A82C +:10430C0000DC0571029AEF1CF647DD18A4804A8088 +:10431C00A8DC0571029AEF0CF880F3311CF6780AD0 +:10432C00F9B7EFE4C6D7C756A89666F0317E12F6F9 +:10433C00B1780AF966D1DFF1717BFAF5EFFBF5F094 +:10434C00FBF5F1FBF48071039AC6717AFAD7C7209A +:10435C0004FBF8FFD44ADF168D809D8D717BFA52D9 +:10436C00069292692EFC68C0FCDFF6717AFA4A4A12 +:10437C0006DE0EE84A09C0FC9C03A44A8C0372EFCB +:10438C0030F88DF3311C790AF9BB31129A058B9CEC +:10439C0003EF0F8C019C03D48DDF05CD8DA7EF02AD +:1043AC00B48D718071179A61DC61FB71119A8C0369 +:1043BC00721004C6D7C72008FBF8FF8F37FCFDBE70 +:1043CC000F9C078F36FCFDBE0F9C068F35FCFDBE87 +:1043DC000F9C058F34FCFDBE0F9C048F38FC9C0396 +:1043EC008F39FC9C028C06318E0112791A20BB8C01 +:1043FC00075C03D1DF098C064C0361C86179008C22 +:10440C0005318EB1610900BB313D120103BB8B0E2E +:10441C0004708C011C00BB8FF4FB4E03DC0E8C0370 +:10442C004FF4FBDC0B8C024FF5FBDC04AB12EF03FF +:10443C00ABB1121008C6D7C7C3C12008FBF8FFF6F2 +:10444C0061490A61F8614908DF07F7340000EDE0C3 +:10445C0044E6BC04F6BC06AC0ABC02AC08BBAC0619 +:10446C00614902AC0461F8614900DE28AC04BDD896 +:10447C00AC06BDDAE1FD640FADDABC06ADD8BC0408 +:10448C00ABBDD8AC02BDDAE1FD7F0FADDABC02AD3D +:10449C00D8BBEFCAAC06BC02AC04BBAC08BDD8ACF4 +:1044AC000ABDDAAC04BDDCAC06FDE20EAC04BDDC2E +:1044BC00AC06FD550FE1FD7F0FADDABC06ADD8BCE7 +:1044CC0004AC06614902AC0461F8614900DCC5AC7E +:1044DC000214AB12100CC6D7C7C12004FBF8FF8F17 +:1044EC0031FCFDBE0F9C034E04DF1CAD824684DE06 +:1044FC0007AD84268212EF40F64684DF074682DD44 +:10450C0003E7EF34F7EF318C04318EB1128C0331A9 +:10451C008E43DF1830382226820684BB8C045C0361 +:10452C0091DF05AB041800BBAB12EF0C8C034E04EF +:10453C00DE0532A900EF01F71006C6D7717BFA3100 +:10454C00229A0CF64690DD07B690717AFAEF7C71E0 +:10455C00239A717AFA4004F904DF07715307F42C9B +:10456C00EF69D9CFFBF1E7240000DD0F23DD1A231F +:10457C00DD1023DD5323DD2723DD38715307F42CA5 +:10458C00EF49715207F42CEF42D42CDF077152071C +:10459C00E42CEF05715307F42CC990FA00EF2CD4DE +:1045AC002CDF0B715207E42CC990FA00EF1DF5CFEC +:1045BC00FBEF18D42CDF0B715307E42CC990FA00D5 +:1045CC00EF09CFCFFB02EF03FDD845D7D905FCF19E +:1045DC00E7240000DD0923DD2123DD0923EF1B7116 +:1045EC005307F42CD7D42CDF07715207E42CEF05BA +:1045FC00715307F42CC9902D01D7715207E42CD7B5 +:10460C0031629701D7710398D9CDFBF1E7240000F3 +:10461C00DD1223DD1923DD1123DD2623DD3423DD1B +:10462C003923DD3FFD9846EF3DFDB946EF38D9CC37 +:10463C00FBC1AE6CFD312DC0F313BE6C712304EFC6 +:10464C0025F0C1AE6CFD312DC0F313BE6C7123048B +:10465C00EF14F6BE6C712204EF0CCB6CFF007123CF +:10466C0004EF03FD2D474004F905DD064004F90174 +:10467C00DF067123047103983104980FF6BE64BEF3 +:10468C006A31220402EF02F690BE6ED7CD2E47F4AB +:10469C0092AE6C317DBFCAFCFD0247D2DF0ED9CC85 +:1046AC00FBC1AE6CFD312DC0F313BE6CD7FD0247C0 +:1046BC00D2DD0DCD2E47F492AE6C317DBFCAFCD746 +:1046CC00E8920934205080D6BFC6FC22CAFCBDD863 +:1046DC00304700FD0A0EBFC8FC30C6FCFD472DF369 +:1046EC0013BE6CB42ED42EDF0CCD2E47A4924A925E +:1046FC001F61C8F492D740AFFB0BDC05712304F2A9 +:10470C00D740AFFB0661D831229611F0C1AE6CFDDB +:10471C00312DC0F313BE6C712204EF03FD2D47E263 +:10472C00D7710298F0C1AE6CFD312DC0F313BE6C85 +:10473C00A4934A9340DC37F493D894F1313F04129C +:10474C00FD14D894F1BDD85008FD590E087208E636 +:10475C00D2DD040192DFFC896158D1DD05712204A0 +:10476C00EF03712304A4944A942061C8F494D7C72E +:10477C003026FDC6D77180717DFADE035201D75207 +:10478C0000D7C7C12004FBF8FF17040300C1E0C128 +:10479C005010C150A4FDAA021006629C02D1DD0586 +:1047AC008C0272EF518C0C70C18C0470FD0648C0E9 +:1047BC00629C02D1DD058C0272EF3B8C035C7DD1D7 +:1047CC00DF03F2EF3117A1C1E0C15010C150A4FDBD +:1047DC00AA021006629C02D1DD058C0272EF178CC6 +:1047EC00015C7DD1DD03F2EF0D8C0370C15010FD27 +:1047FC000648C0629C021006C6D7C7880616710A06 +:10480C00E650A4FDDE03D2DD077133975202EF139D +:10481C0017FDFA036770FDFA03FD3148FD6E047154 +:10482C003397F2C6D7FD450450A4FDFA035020FD82 +:07483C00FA0350AAEDFA0394 +:1048430061FC61FCC1C3C5C7520C929269D4FEC11D +:10485300DFF88EFD708EFCC1717AFA4004F903DF34 +:1048630005302D2A6194C09EFC609EFD34D4FE5217 +:1048730006C0B9A5A592DFF9C6C4C2C061FC61DF59 +:10488300520C929269D4FEC1DFF88EFD708EFCC18A +:104893008F4105775C04D1DD06675C01D1DD5031C2 +:1048A3005498367162077153988FB4FB5FBCFBD188 +:1048B300DF1B8FB5FB5FBDFBD1DF128FB6FB5FBE86 +:1048C300FBD1DF098FB7FB5FBFFBD1DD0C31620783 +:1048D30002EFFA716307716B2771139AFD5630F477 +:1048E300227148500571605005717AFAEDDD496710 +:1048F3005C02D1DD16D422DD124A2202DD0DF42240 +:104903007148500571605005717AFA717AFA8D22F7 +:10491300318FE7240000DD0823DD1423DD2CEF4A6B +:10492300F44A7140500571505005E422EDDD498F82 +:1049330040059D4B715050058D4B9D4DD84BFD202F +:1049430034629D4CCD2202EDDD49675C02D1DD1757 +:10495300675C10D1DD05CD2203EF0F71485005715F +:10496300605005F422EF73CD22044A2203DF108D39 +:104973004C9F4005D84CC1D84BFDB734C0EF1F8FB7 +:1049830040057671744BDC054A4B02DE06716050BC +:1049930005EF47C7D84BFDE630C071505005D84DE1 +:1049A300F1242900DD27240400DD22242200DD1D5B +:1049B300241100DD0C240100DD13241E00DD0EEFA5 +:1049C3000A4A4B60DF07CD4B61EF02A44B4A220337 +:1049D300DF08D84BFD2034629D4CC09EFC609EFDD9 +:1049E30034D4FE5206C0B9A5A592DFF961FCC1C358 +:1049F300C5C7520C929269D4FEC1DFF88EFD708E4A +:104A0300FCC1717AFA51405F0401D1DD06F616A7A5 +:104A130047DFF2300400BF2401F6BF2A01300B0B3D +:104A2300BF2801FD6402300B0FBF2801FD64023073 +:104A33000F0FBF2801710AE6F6420C01DD33AF0404 +:104A430001BF0C0131529729715297710BE2D85172 +:104A5300FDDE033184BD02EFFACBB422FBD853F160 +:104A6300BEB8714BE1714BE5710ABD8D529E44EFA7 +:104A73000C715397714AE5717BBD713397C09EFCEE +:104A8300609EFD34D4FE5206C0B9A5A592DFF9C6D7 +:104A9300C4C2C061FCC1C5717AFAD450DD0BEA4EC1 +:104AA300899E44A64EB450EF33710AE6300400BF2A +:104AB3002401F6BF2A01300B0BBF280100000000C0 +:104AC30000000000510FBF2801000000000000009B +:104AD30000500FBF2801712397713397C4C061FC45 +:104AE30061EF520C929269D4FEC1DFF88EFD708E95 +:104AF300FCC12006FBF8FF71503002CEABACCC04F6 +:104B030000F6BB31B2E210617900F6614900DFF3D0 +:104B130071603002ED9D4B8E519C03713BE28C031F +:104B23005C02D1DD1E8C035C08D1DF0971503002B9 +:104B3300CC0400EFCC8C0570FD9935629E50CC04FB +:104B430002EFBE8C035C03D1DF408E509C02715098 +:104B530030028C04D1DF0E8C0270FDDF35629C05C0 +:104B6300CC0401EF328C044C02DF0671603002EF9B +:104B730029CF34025A716030028C0270C18C0570E7 +:104B8300FD4135C0CF34024AEF108C035C01D1DD07 +:104B93000671603002EF03ED044B1006C09EFC600B +:104BA3009EFD34D4FE5206C0B9A5A592DFF961FC7F +:104BB300C1C3C5C7520C929269D4FEC1DFF88EFD02 +:104BC300708EFCC1710A9E31929E02EFFA8FDEFB5A +:104BD3004F96FFDF198FDFFB4F97FFDF118FE0FB4E +:104BE3004F98FFDF095004C15011FDE534C0710B2C +:104BF3009EC09EFC609EFD34D4FE5206C0B9A5A59E +:104C030092DFF9C6C4C2C061FCE46A61FCC1C3C5DA +:104C1300C7520C929269D4FEC1DFF88EFD708EFCF0 +:104C2300C1C1FBF8FF8D1F9C018E31318EE7240635 +:104C330000DD0823DD0E23DD22EF38717AFA8C01C3 +:104C43009D62EF2F717AFA4007F901DF068C019D0F +:104C530061EF2051FF2E019D61EF18717AFA8C01EB +:104C63009D304004F903DD064004F904DF05307983 +:104C73002561944031FF09DE05A031FFEF0771582C +:104C8300F000716298710BE3C0C09EFC609EFD341E +:104C9300D4FE5206C0B9A5A592DFF9C6C4C2C0614D +:104CA300FC717BFAC7D46A61F8312499277123997F +:104CB300D46ADD05B46ACEABAC717AFA5600664CA1 +:104CC3000ADD1172F3311C79D8FCCEFC0061CA6194 +:104CD300A486EFEA717AFAF2C6D7C7C1C1FBF8FF1F +:104CE300CC01008C014C0ADE36717BFA8C01F03169 +:104CF3007E0410FC14A96168DF09AC02B9717AFA69 +:104D0300F2EF1D8C01F0317E127910FC614902DF54 +:104D130006717AFAE2EF09717AFA615901EFC4E296 +:104D23001004C6D7C72004FBF8FFF64210FC61F855 +:104D3300ED094E717BFA9C038C034C0ADE3C8C0319 +:104D4300F0317E0410FC14A96168DF05717AFAEF73 +:104D530029717AFA8C0372F3311C7910FCCEFC00B2 +:104D630061CA629C02D1DF0A8C03F0317E12E678BD +:104D730010FC717BFA615903EFBECC0200CC010138 +:104D83008C02F0317E0410FC14A96168DD788C027A +:104D9300F0317E127910FCE743DF658C014C0ADEAB +:104DA3005F8C01F0317E127910FCE743DD4D717B9E +:104DB300FA8C01F0317E0410FC14A96168DF1861DC +:104DC30069018C01F0317E12F67810FC8C024E01E1 +:104DD300DCED717AFAEF2F8C01F0317E0410FC14B4 +:104DE300A9128C02F0317E337810FC8C01F0317EF5 +:104DF30012E67810FC615902717AFA615901EF9B4E +:104E0300615902ED834D00F21004C6D761FF520CC5 +:104E1300929269D4FEC1DFF88EFD708EFCC1717A67 +:104E2300FA8FE4FB5C03D1DD114004F903DD064096 +:104E330004F904DF0530A5386194C09EFC609EFD33 +:104E430034D4FE5206C0B9A5A592DFF961FC61FC1A +:044E530061FC61FCA1 +:0A4E580000060C12181E242A303642 +:104E6200ACFB0000000066FE00000000FA392C36A0 +:104E72008C220C46332EF22E48452B3BCA08F43CBA +:104E820028FC36FE20FE02F903F929FC30FE2AFC3A +:104E92002BFC08F926FC6CFF1AFF6EFF6AFF64FF09 +:0A4EA20027FC66FF2CFC5555555502 +:104EAC00FF0000000000983AF82AFF0000004700BD +:104EBC00317503F7332312D714AEF8C716AC0612AC +:104ECC00C5AC0416F643DD078B99A7A5B3EFF5C265 +:024EDC00C6D737 +:024FF400326128 +:0A4FF60031353A33383A3531000006 +:00000001FF + \ No newline at end of file diff --git a/snake_branches/2.2F_IS_TOOL/bsr.lmf b/snake_branches/2.2F_IS_TOOL/bsr.lmf new file mode 100644 index 0000000000000000000000000000000000000000..d684c83cc639c30b8b6fef2a4f10fcff0464fdca GIT binary patch literal 183448 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 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/2.2F_IS_TOOL/fsl_user.h b/snake_branches/2.2F_IS_TOOL/fsl_user.h new file mode 100644 index 0000000..1018689 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/get_ei.asm b/snake_branches/2.2F_IS_TOOL/get_ei.asm new file mode 100644 index 0000000..29f4a6e --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/hal.c b/snake_branches/2.2F_IS_TOOL/hal.c new file mode 100644 index 0000000..e2e72ec --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/hal.h b/snake_branches/2.2F_IS_TOOL/hal.h new file mode 100644 index 0000000..245be75 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/i2c_ctr.c b/snake_branches/2.2F_IS_TOOL/i2c_ctr.c new file mode 100644 index 0000000..4bd238e --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/i2c_ctr.h b/snake_branches/2.2F_IS_TOOL/i2c_ctr.h new file mode 100644 index 0000000..16234ff --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/i2c_mcu-sub.c b/snake_branches/2.2F_IS_TOOL/i2c_mcu-sub.c new file mode 100644 index 0000000..b1b468c --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/i2c_mcu.c b/snake_branches/2.2F_IS_TOOL/i2c_mcu.c new file mode 100644 index 0000000..db007b3 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/i2c_mcu.c @@ -0,0 +1,657 @@ +/* ======================================================== + Ȉ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 ); + + 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 + + X[uEFCgRfBVoƂ͋֎~łB + + ̏ꍇłG[oȂǂł܂ + + 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 ) + { + // 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/2.2F_IS_TOOL/i2c_mcu.h b/snake_branches/2.2F_IS_TOOL/i2c_mcu.h new file mode 100644 index 0000000..16eeba8 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/i2c_mcu_sub.h b/snake_branches/2.2F_IS_TOOL/i2c_mcu_sub.h new file mode 100644 index 0000000..a2c192e --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/i2c_twl.c b/snake_branches/2.2F_IS_TOOL/i2c_twl.c new file mode 100644 index 0000000..3c91ce8 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/i2c_twl.h b/snake_branches/2.2F_IS_TOOL/i2c_twl.h new file mode 100644 index 0000000..0f608b0 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/i2c_twl_defs.h b/snake_branches/2.2F_IS_TOOL/i2c_twl_defs.h new file mode 100644 index 0000000..be5d566 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/incs.h b/snake_branches/2.2F_IS_TOOL/incs.h new file mode 100644 index 0000000..f9c1c4a --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/incs_loader.h b/snake_branches/2.2F_IS_TOOL/incs_loader.h new file mode 100644 index 0000000..0569b9f --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/ini_VECT.c b/snake_branches/2.2F_IS_TOOL/ini_VECT.c new file mode 100644 index 0000000..84da25c --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/jhl_defs.h b/snake_branches/2.2F_IS_TOOL/jhl_defs.h new file mode 100644 index 0000000..9a21ab3 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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( cond, reg, pos ) \ +{ \ + if( cond ){ \ + reg |= pos; \ + }else{ \ + reg &= ~pos; \ + } \ +} + +#endif diff --git a/snake_branches/2.2F_IS_TOOL/kanaria.asm b/snake_branches/2.2F_IS_TOOL/kanaria.asm new file mode 100644 index 0000000..9deaddb --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/kanaria_c.c b/snake_branches/2.2F_IS_TOOL/kanaria_c.c new file mode 100644 index 0000000..bbb5ec7 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/led.c b/snake_branches/2.2F_IS_TOOL/led.c new file mode 100644 index 0000000..bf62e07 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/led.h b/snake_branches/2.2F_IS_TOOL/led.h new file mode 100644 index 0000000..ce8541f --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/led_cam.c b/snake_branches/2.2F_IS_TOOL/led_cam.c new file mode 100644 index 0000000..7d4a1eb --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/led_pow.c b/snake_branches/2.2F_IS_TOOL/led_pow.c new file mode 100644 index 0000000..6773d4e --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/loader.c b/snake_branches/2.2F_IS_TOOL/loader.c new file mode 100644 index 0000000..78c6468 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/loader.c @@ -0,0 +1,416 @@ +/* ======================================================== + 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 0x10 +#define REG_BIT_RESF_TRAP 0x80 +#define REG_BIT_RESF_LVI 0x01 + + + +// ======================================================== +#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)Ɋ */ + /* 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 literal 0 HcmV?d00001 diff --git a/snake_branches/2.2F_IS_TOOL/nec_s_2_bsrbin2.rb b/snake_branches/2.2F_IS_TOOL/nec_s_2_bsrbin2.rb new file mode 100755 index 0000000..c4c33fa --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/nec_s_2_bsrbin2.rb @@ -0,0 +1,82 @@ +#!/usr/bin/ruby +$KCODE = "S" +=begin + +@NEC̊‹fSRECA +@@w蕔ɂ0xFFpfBOA +@@BSR̃Abvf[gpɕKvȕ؂o܂B +@@@@@@@@@@@@i0x0000 - 0x0FFF, 0x2000-0x47FFj + +=end + + +=begin +if( ARGV[0] == nil ) + print( "input file name is nessesary!\nabort.\n" ) + exit(1) +end + + +unless(File.exist?( ARGV[0] )) + print( "file" << ARGV[0] << " not found.\nabort.\n" ) + exit(1) +end +=end + +src = File.open( 'bsr.hex' ) + +dest = File.new( "hoge.bin","wb" ) + + +dest.write( 'jhl' ) + +### get data ########################## +src_in = Hash.new +tempA = Array.new +dataTemp = Array.new + +offset = Numeric.new +bindata = Array.new( 32*1024, 0xFF ) + +while(src.readline) + tempA = $_.scan(/(\:)(\w\w)(\w\w\w\w)(\w\w)(\w+)(\w\w)/) + + break if( tempA.size == 0 ) + + src_in = { "len" => 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/2.2F_IS_TOOL/pedo_alg_thre_det2.c b/snake_branches/2.2F_IS_TOOL/pedo_alg_thre_det2.c new file mode 100644 index 0000000..4e69a04 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/pedo_lpf_coeff.c b/snake_branches/2.2F_IS_TOOL/pedo_lpf_coeff.c new file mode 100644 index 0000000..877ef98 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/pedo_lpf_coeff.h b/snake_branches/2.2F_IS_TOOL/pedo_lpf_coeff.h new file mode 100644 index 0000000..f81d6c2 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/pedo_lpf_coeff.h @@ -0,0 +1,84 @@ +#ifndef _pedo_coeff_h_ +#define _pedo_coeff_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 +*/ +}; +#endif diff --git a/snake_branches/2.2F_IS_TOOL/pedometer.h b/snake_branches/2.2F_IS_TOOL/pedometer.h new file mode 100644 index 0000000..8760308 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/pm.c b/snake_branches/2.2F_IS_TOOL/pm.c new file mode 100644 index 0000000..1599397 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/pm.c @@ -0,0 +1,1508 @@ +/* ======================================================== + 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 + +// [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( LED_CHARGE, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE ); // set_bit̂݁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( !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 +static void BT_mgic_init() +{ + u8 origParam[4]; + + /* + // -1. ZbgĂ݂ + Ⴞ! + i2c_send_buff_2B._u16 = swap_endian_16( MGIC_CMD_RESET ); + send_cmd_mgic_2B( BT_GAUGE_REG_COMMAND ); // ‚NACKԂ + */ + + 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[^ꎞۑ + iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam ); + + // 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; + + // 16oCgƂɋ؂Ƃ̂Ɓ@imCY΍Ƃ񂾂ǁAӖ񂩁Hj + for( loop = 0; loop < 4; loop ++ ) + { + iic_mcu_set_wo_dma( ); + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_BT_PARAM + loop*16, 16, p_bt_param->mg_param + loop*16 ); + } + } + + // 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 + + // 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(); + } + } + + // 10.RCOMPOCV߂ + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam ); + + // 11. bN + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( 0x0000 ) ); // lock key +} + + + +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 ); + SPFL_LCD_AMOL_HV_CONT = 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 ); + } + + + + // 50msƂ҂‚AmF܂傤ˁc + 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 + SPFL_LCD_AMOL_HV_CONT = 0; // ̃t@~łLȂ̂ŕQȂ + 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 ); // ɔB}XN΁B +} + + + +/********************************************//** +@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( ) +{ +// if( RESET1_n ) + if( PM_chk_LDSW() ) + { + // ُIłȂƂ + PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + PM_LCD_off(); // TCOM,VCS OFF Ă܂B + 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; + } +} diff --git a/snake_branches/2.2F_IS_TOOL/pm.h b/snake_branches/2.2F_IS_TOOL/pm.h new file mode 100644 index 0000000..b6cb8bc --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/pm.h @@ -0,0 +1,220 @@ +#ifndef __PM__ +#define __PM__ + +// $Id: asdf$ + + +#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 +}; + + +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_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() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW ))) +#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/2.2F_IS_TOOL/pool.h b/snake_branches/2.2F_IS_TOOL/pool.h new file mode 100644 index 0000000..81c8091 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/reboot.c b/snake_branches/2.2F_IS_TOOL/reboot.c new file mode 100644 index 0000000..53912a5 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/reboot.h b/snake_branches/2.2F_IS_TOOL/reboot.h new file mode 100644 index 0000000..c20e11e --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/reboot.h @@ -0,0 +1,6 @@ +#ifndef __MYREBOOT__ +#define __MYREBOOT__ + +void my_reboot(); + +#endif diff --git a/snake_branches/2.2F_IS_TOOL/renge/renge.c b/snake_branches/2.2F_IS_TOOL/renge/renge.c new file mode 100644 index 0000000..19bee20 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/renge/renge.h b/snake_branches/2.2F_IS_TOOL/renge/renge.h new file mode 100644 index 0000000..9c7b2e4 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/renge/renge_defs.h b/snake_branches/2.2F_IS_TOOL/renge/renge_defs.h new file mode 100644 index 0000000..03c98a6 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/renge/renge_task_config.rb b/snake_branches/2.2F_IS_TOOL/renge/renge_task_config.rb new file mode 100644 index 0000000..c2de509 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/renge/renge_task_immediate.h b/snake_branches/2.2F_IS_TOOL/renge/renge_task_immediate.h new file mode 100644 index 0000000..9ac3bd2 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/renge/renge_task_intval.h b/snake_branches/2.2F_IS_TOOL/renge/renge_task_intval.h new file mode 100644 index 0000000..9b0d9ea --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/renge/renge_tasks.txt b/snake_branches/2.2F_IS_TOOL/renge/renge_tasks.txt new file mode 100644 index 0000000..73af545 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/rtc.c b/snake_branches/2.2F_IS_TOOL/rtc.c new file mode 100644 index 0000000..dd2d1a9 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/rtc.h b/snake_branches/2.2F_IS_TOOL/rtc.h new file mode 100644 index 0000000..a203e83 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/self_flash.c b/snake_branches/2.2F_IS_TOOL/self_flash.c new file mode 100644 index 0000000..a662d07 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/self_flash.h b/snake_branches/2.2F_IS_TOOL/self_flash.h new file mode 100644 index 0000000..768565e --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/self_flash.h @@ -0,0 +1,9 @@ +#ifndef _self_flash_h_ +#define _self_flash_h_ + + +void firm_update(); + + +#endif + diff --git a/snake_branches/2.2F_IS_TOOL/sw.c b/snake_branches/2.2F_IS_TOOL/sw.c new file mode 100644 index 0000000..be26b65 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/sw.c @@ -0,0 +1,213 @@ +/* ======================================================== +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; + } + 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/2.2F_IS_TOOL/sw.h b/snake_branches/2.2F_IS_TOOL/sw.h new file mode 100644 index 0000000..abe9715 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/task_debug.c b/snake_branches/2.2F_IS_TOOL/task_debug.c new file mode 100644 index 0000000..e5b502c --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/task_misc.c b/snake_branches/2.2F_IS_TOOL/task_misc.c new file mode 100644 index 0000000..edbecca --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/task_status.c b/snake_branches/2.2F_IS_TOOL/task_status.c new file mode 100644 index 0000000..361497b --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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( 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/2.2F_IS_TOOL/task_sys.c b/snake_branches/2.2F_IS_TOOL/task_sys.c new file mode 100644 index 0000000..457ab56 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/task_sys.c @@ -0,0 +1,667 @@ +/* ======================================================== + 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 + 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ƂȂXV + if( system_status.reboot ) + { + u8 bl_status_temp; + + bl_status_temp = read_pmic( PM_REG_ADRS_BL ); + vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 ); + set_bit( ( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ), + vreg_ctr[ VREG_C_STATUS ], REG_BIT_LCD_POW ); + 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; + + 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/2.2F_IS_TOOL/user_define.h b/snake_branches/2.2F_IS_TOOL/user_define.h new file mode 100644 index 0000000..48e334c --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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 SPFL_LCD_AMOL_HV_CONT 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/2.2F_IS_TOOL/util_funcs.c b/snake_branches/2.2F_IS_TOOL/util_funcs.c new file mode 100644 index 0000000..2edea63 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/util_funcs.h b/snake_branches/2.2F_IS_TOOL/util_funcs.h new file mode 100644 index 0000000..4229413 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/voltable.c b/snake_branches/2.2F_IS_TOOL/voltable.c new file mode 100644 index 0000000..4d2e14a --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/voltable.h b/snake_branches/2.2F_IS_TOOL/voltable.h new file mode 100644 index 0000000..6ff34ab --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/voltable.h @@ -0,0 +1,57 @@ +#ifdef _10db_ +// max -10db +/* +const u8 slider_to_codec[64] = +{ + 127, 127, 127, 127, 126, 125, 123, 122, + 121, 120, 118, 117, 116, 115, 113, 112, + 111, 110, 108, 107, 106, 105, 103, 102, + 101, 100, 98, 97, 96, 95, 93, 92, + 91, 90, 88, 87, 86, 85, 83, 82, + 81, 80, 78, 77, 76, 75, 73, 72, + 72, 71, 70, 68, 67, 66, 64, 63, + 62, 61, 59, 58, 57, 56, 55, 55 + }; +*/ +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/2.2F_IS_TOOL/vreg_ctr.c b/snake_branches/2.2F_IS_TOOL/vreg_ctr.c new file mode 100644 index 0000000..aae1669 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/vreg_ctr.h b/snake_branches/2.2F_IS_TOOL/vreg_ctr.h new file mode 100644 index 0000000..00c2140 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/vreg_twl.c b/snake_branches/2.2F_IS_TOOL/vreg_twl.c new file mode 100644 index 0000000..1cb1225 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/vreg_twl.h b/snake_branches/2.2F_IS_TOOL/vreg_twl.h new file mode 100644 index 0000000..63cdd94 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/yav_mcu_bsr.plg b/snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.plg new file mode 100644 index 0000000..54c117d --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.plg @@ -0,0 +1,207 @@ +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 +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 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\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 +pm.c(545) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(856) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(860) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(888) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(902) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(988) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(997) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1068) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1219) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1221) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 10 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 +Compilation complete, 0 error(s) and 0 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 +Compilation complete, 0 error(s) and 0 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 +Compilation complete, 0 error(s) and 0 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 +Compilation complete, 0 error(s) and 0 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 +i2c_mcu.c(188) : CC78K0R warning W0401: Conversion may lose significant digits +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.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 +Compilation complete, 0 error(s) and 0 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 +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 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\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 +Compilation complete, 0 error(s) and 0 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 +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 14 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 +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 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\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 +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 7 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 +Compilation complete, 0 error(s) and 0 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 +accero.c(121) : CC78K0R warning W0745: Expected function prototype +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\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 +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 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\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 +Compilation complete, 0 error(s) and 0 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 +Compilation complete, 0 error(s) and 0 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 +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 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\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 +task_sys.c(231) : CC78K0R warning W0401: Conversion may lose significant digits +task_sys.c(293) : CC78K0R warning W0401: Conversion may lose significant digits +task_sys.c(571) : 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\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 +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 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\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 +Compilation complete, 0 error(s) and 0 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 +Compilation complete, 0 error(s) and 0 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 +Compilation complete, 0 error(s) and 0 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 +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 5 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 +Compilation complete, 0 error(s) and 0 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 +Compilation complete, 0 error(s) and 0 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 +Compilation complete, 0 error(s) and 0 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 +Compilation complete, 0 error(s) and 0 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 +Compilation complete, 0 error(s) and 0 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 +Compilation complete, 0 error(s) and 0 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_mcu.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 '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 '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 '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 'led_pow.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' + +Link complete, 0 error(s) and 14 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) : 68 diff --git a/snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.pri b/snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.pri new file mode 100644 index 0000000..b018509 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/yav_mcu_bsr.prj b/snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.prj new file mode 100644 index 0000000..13f655f --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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= +[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 +[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 diff --git a/snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.prk b/snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.prk new file mode 100644 index 0000000..40c0368 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.prk @@ -0,0 +1,13 @@ +[ProjectManager] +FrameMax=0 +FrameX=30 +FrameY=18 +FrameCX=1358 +FrameCY=849 +OpenFile1=ProjectWindow +PrjPos=0,0,706,0,291 +OpenFile2=OutputWindow +OutputPos=0,48,579,311,1203 +ActivePRJ=yav_mcu_bsr.prj +[ProjectWindow] +ProjectWindowDispType=0 diff --git a/snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.prw b/snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.prw new file mode 100644 index 0000000..7c0bbd6 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/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/2.2F_IS_TOOL/yav_mcu_bsr.sdb b/snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.sdb new file mode 100644 index 0000000..5f07130 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/yav_mcu_bsr.sdb @@ -0,0 +1,325 @@ +[SdbInfo] +Ver=5 +[loader.c] +T=51c8f978 +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=52298668 +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=52298720 +1=magic.h +2=config.h +[WDT.c] +T=51c8f7fd +1=incs_loader.h +[i2c_mcu.c] +T=51c8f7fa +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=52297269 +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=51c91572 +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=522971da +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=51c91572 +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=51c8f7f9 +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=52004273 +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=522d6cd0 +[jhl_defs.h] +T=51c8f7f9 +[user_define.h] +T=51c8f7f9 +[hal.h] +T=51c8f7f9 +[bsr_system.h] +T=5229729a +[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=51c8f7fa +[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=52004273 +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=51c8f7fa diff --git a/snake_branches/2.2F_IS_TOOL/ベースからの変更.xls b/snake_branches/2.2F_IS_TOOL/ベースからの変更.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/2.2F_IS_TOOL/覚え書き.txt b/snake_branches/2.2F_IS_TOOL/覚え書き.txt new file mode 100644 index 0000000..28269c4 --- /dev/null +++ b/snake_branches/2.2F_IS_TOOL/覚え書き.txt @@ -0,0 +1,9 @@ +A܂Ƃ wiki ɏȂƂȂǁB + +2.2C +SNAKE Ή (vCg) + +2.2D +SNAKE system updater mcu vZX쐬Ɍ߁A +o[Wԍ̂݁A2.2D ɂȂĂ +