From c25b9d3990d2afd2c489af736913da0cb8d2fd51 Mon Sep 17 00:00:00 2001 From: N2232 Date: Tue, 6 Sep 2016 00:24:57 +0000 Subject: [PATCH] =?UTF-8?q?jane=E5=AF=BE=E5=BF=9C?= 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@621 013db118-44a6-b54f-8bf7-843cb86687b1 --- snake_branches/3.40_jane/OMakefile | 159 ++ snake_branches/3.40_jane/OMakeroot | 4 + .../3.40_jane/VCProj/Debug/BuildLog.htm | Bin 0 -> 3992 bytes .../VCProj/Debug/bsr_trunk.lastbuildstate | 2 + .../3.40_jane/VCProj/Debug/bsr_trunk.log | 103 ++ .../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 snake_branches/3.40_jane/VCProj/bsr_trunk.ncb | Bin 0 -> 912384 bytes .../3.40_jane/VCProj/bsr_trunk.opensdf | Bin 0 -> 30 bytes snake_branches/3.40_jane/VCProj/bsr_trunk.sdf | Bin 0 -> 1265664 bytes snake_branches/3.40_jane/VCProj/bsr_trunk.sln | 20 + .../3.40_jane/VCProj/bsr_trunk.sln.old | 20 + snake_branches/3.40_jane/VCProj/bsr_trunk.suo | Bin 0 -> 84992 bytes .../3.40_jane/VCProj/bsr_trunk.suo.old | Bin 0 -> 45056 bytes .../3.40_jane/VCProj/bsr_trunk.vcproj | 594 +++++++ .../VCProj/bsr_trunk.vcproj.NCL.N2232.user | 65 + .../3.40_jane/VCProj/bsr_trunk.vcxproj | 162 ++ .../VCProj/bsr_trunk.vcxproj.filters | 258 +++ .../3.40_jane/VCProj/bsr_trunk.vcxproj.user | 3 + snake_branches/3.40_jane/WDT.c | 12 + snake_branches/3.40_jane/WDT.h | 20 + snake_branches/3.40_jane/accero.c | 274 +++ snake_branches/3.40_jane/accero.h | 14 + snake_branches/3.40_jane/adc.c | 475 +++++ snake_branches/3.40_jane/adc.h | 48 + snake_branches/3.40_jane/batt_params.c | 130 ++ snake_branches/3.40_jane/batt_params.h | 62 + snake_branches/3.40_jane/bsr.hex | 1021 +++++++++++ snake_branches/3.40_jane/bsr.lmf | Bin 0 -> 183864 bytes snake_branches/3.40_jane/bsr_k0r.map | 897 ++++++++++ snake_branches/3.40_jane/bsr_mcu.dr | 46 + snake_branches/3.40_jane/bsr_system.h | 73 + snake_branches/3.40_jane/config.h | 113 ++ snake_branches/3.40_jane/fsl.h | 362 ++++ snake_branches/3.40_jane/fsl_user.h | 113 ++ snake_branches/3.40_jane/get_ei.asm | 26 + snake_branches/3.40_jane/hal.c | 182 ++ snake_branches/3.40_jane/hal.h | 16 + snake_branches/3.40_jane/hoge.bin | Bin 0 -> 16387 bytes snake_branches/3.40_jane/i2c_ctr.c | 312 ++++ snake_branches/3.40_jane/i2c_ctr.h | 210 +++ snake_branches/3.40_jane/i2c_mcu-sub.c | 124 ++ snake_branches/3.40_jane/i2c_mcu.c | 660 +++++++ snake_branches/3.40_jane/i2c_mcu.h | 40 + snake_branches/3.40_jane/i2c_mcu_sub.h | 9 + snake_branches/3.40_jane/i2c_twl.c | 246 +++ snake_branches/3.40_jane/i2c_twl.h | 7 + snake_branches/3.40_jane/i2c_twl_defs.h | 196 +++ snake_branches/3.40_jane/incs.h | 44 + snake_branches/3.40_jane/incs_loader.h | 49 + snake_branches/3.40_jane/ini_VECT.c | 347 ++++ snake_branches/3.40_jane/jhl_defs.h | 25 + snake_branches/3.40_jane/kanaria.asm | 12 + snake_branches/3.40_jane/kanaria_c.c | 18 + snake_branches/3.40_jane/led.c | 399 +++++ snake_branches/3.40_jane/led.h | 142 ++ snake_branches/3.40_jane/led_cam.c | 156 ++ snake_branches/3.40_jane/led_pow.c | 296 ++++ snake_branches/3.40_jane/loader.c | 420 +++++ snake_branches/3.40_jane/loader.h | 6 + snake_branches/3.40_jane/magic.c | 33 + snake_branches/3.40_jane/magic.h | 24 + snake_branches/3.40_jane/main.c | 100 ++ snake_branches/3.40_jane/nec_s_2_bsrbin2.rb | 82 + snake_branches/3.40_jane/pedo_alg_thre_det2.c | 567 ++++++ snake_branches/3.40_jane/pedo_lpf_coeff.c | 87 + snake_branches/3.40_jane/pedo_lpf_coeff.h | 84 + snake_branches/3.40_jane/pedometer.h | 36 + snake_branches/3.40_jane/pm.c | 1539 +++++++++++++++++ snake_branches/3.40_jane/pm.h | 222 +++ snake_branches/3.40_jane/pool.h | 24 + snake_branches/3.40_jane/reboot.c | 23 + snake_branches/3.40_jane/reboot.h | 6 + snake_branches/3.40_jane/renge/renge.c | 313 ++++ snake_branches/3.40_jane/renge/renge.h | 26 + snake_branches/3.40_jane/renge/renge_defs.h | 55 + .../3.40_jane/renge/renge_task_config.rb | 59 + .../3.40_jane/renge/renge_task_immediate.h | 25 + .../3.40_jane/renge/renge_task_intval.h | 37 + .../3.40_jane/renge/renge_tasks.txt | 11 + snake_branches/3.40_jane/rtc.c | 182 ++ snake_branches/3.40_jane/rtc.h | 24 + snake_branches/3.40_jane/self_flash.c | 635 +++++++ snake_branches/3.40_jane/self_flash.h | 9 + snake_branches/3.40_jane/sw.c | 215 +++ snake_branches/3.40_jane/sw.h | 20 + snake_branches/3.40_jane/task_debug.c | 122 ++ snake_branches/3.40_jane/task_misc.c | 429 +++++ snake_branches/3.40_jane/task_status.c | 89 + snake_branches/3.40_jane/task_sys.c | 685 ++++++++ snake_branches/3.40_jane/user_define.h | 214 +++ snake_branches/3.40_jane/util_funcs.c | 65 + snake_branches/3.40_jane/util_funcs.h | 16 + snake_branches/3.40_jane/voltable.c | 64 + snake_branches/3.40_jane/voltable.h | 57 + snake_branches/3.40_jane/vreg_ctr.c | 638 +++++++ snake_branches/3.40_jane/vreg_ctr.h | 327 ++++ snake_branches/3.40_jane/vreg_twl.c | 169 ++ snake_branches/3.40_jane/vreg_twl.h | 127 ++ snake_branches/3.40_jane/yav_mcu_bsr.plg | 209 +++ snake_branches/3.40_jane/yav_mcu_bsr.pri | 1031 +++++++++++ snake_branches/3.40_jane/yav_mcu_bsr.prj | 1408 +++++++++++++++ snake_branches/3.40_jane/yav_mcu_bsr.prk | 15 + snake_branches/3.40_jane/yav_mcu_bsr.prw | 8 + snake_branches/3.40_jane/yav_mcu_bsr.sdb | 325 ++++ snake_branches/3.40_jane/ベースからの変更.xls | Bin 0 -> 26624 bytes snake_branches/3.40_jane/覚え書き.txt | 9 + 110 files changed, 19876 insertions(+) create mode 100644 snake_branches/3.40_jane/OMakefile create mode 100644 snake_branches/3.40_jane/OMakeroot create mode 100644 snake_branches/3.40_jane/VCProj/Debug/BuildLog.htm create mode 100644 snake_branches/3.40_jane/VCProj/Debug/bsr_trunk.lastbuildstate create mode 100644 snake_branches/3.40_jane/VCProj/Debug/bsr_trunk.log create mode 100644 snake_branches/3.40_jane/VCProj/Debug/bsr_trunk.unsuccessfulbuild create mode 100644 snake_branches/3.40_jane/VCProj/_UpgradeReport_Files/UpgradeReport.css create mode 100644 snake_branches/3.40_jane/VCProj/_UpgradeReport_Files/UpgradeReport.xslt create mode 100644 snake_branches/3.40_jane/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif create mode 100644 snake_branches/3.40_jane/VCProj/_UpgradeReport_Files/UpgradeReport_Plus.gif create mode 100644 snake_branches/3.40_jane/VCProj/bsr_trunk.ncb create mode 100644 snake_branches/3.40_jane/VCProj/bsr_trunk.opensdf create mode 100644 snake_branches/3.40_jane/VCProj/bsr_trunk.sdf create mode 100644 snake_branches/3.40_jane/VCProj/bsr_trunk.sln create mode 100644 snake_branches/3.40_jane/VCProj/bsr_trunk.sln.old create mode 100644 snake_branches/3.40_jane/VCProj/bsr_trunk.suo create mode 100644 snake_branches/3.40_jane/VCProj/bsr_trunk.suo.old create mode 100644 snake_branches/3.40_jane/VCProj/bsr_trunk.vcproj create mode 100644 snake_branches/3.40_jane/VCProj/bsr_trunk.vcproj.NCL.N2232.user create mode 100644 snake_branches/3.40_jane/VCProj/bsr_trunk.vcxproj create mode 100644 snake_branches/3.40_jane/VCProj/bsr_trunk.vcxproj.filters create mode 100644 snake_branches/3.40_jane/VCProj/bsr_trunk.vcxproj.user create mode 100644 snake_branches/3.40_jane/WDT.c create mode 100644 snake_branches/3.40_jane/WDT.h create mode 100644 snake_branches/3.40_jane/accero.c create mode 100644 snake_branches/3.40_jane/accero.h create mode 100644 snake_branches/3.40_jane/adc.c create mode 100644 snake_branches/3.40_jane/adc.h create mode 100644 snake_branches/3.40_jane/batt_params.c create mode 100644 snake_branches/3.40_jane/batt_params.h create mode 100644 snake_branches/3.40_jane/bsr.hex create mode 100644 snake_branches/3.40_jane/bsr.lmf create mode 100644 snake_branches/3.40_jane/bsr_k0r.map create mode 100644 snake_branches/3.40_jane/bsr_mcu.dr create mode 100644 snake_branches/3.40_jane/bsr_system.h create mode 100644 snake_branches/3.40_jane/config.h create mode 100644 snake_branches/3.40_jane/fsl.h create mode 100644 snake_branches/3.40_jane/fsl_user.h create mode 100644 snake_branches/3.40_jane/get_ei.asm create mode 100644 snake_branches/3.40_jane/hal.c create mode 100644 snake_branches/3.40_jane/hal.h create mode 100644 snake_branches/3.40_jane/hoge.bin create mode 100644 snake_branches/3.40_jane/i2c_ctr.c create mode 100644 snake_branches/3.40_jane/i2c_ctr.h create mode 100644 snake_branches/3.40_jane/i2c_mcu-sub.c create mode 100644 snake_branches/3.40_jane/i2c_mcu.c create mode 100644 snake_branches/3.40_jane/i2c_mcu.h create mode 100644 snake_branches/3.40_jane/i2c_mcu_sub.h create mode 100644 snake_branches/3.40_jane/i2c_twl.c create mode 100644 snake_branches/3.40_jane/i2c_twl.h create mode 100644 snake_branches/3.40_jane/i2c_twl_defs.h create mode 100644 snake_branches/3.40_jane/incs.h create mode 100644 snake_branches/3.40_jane/incs_loader.h create mode 100644 snake_branches/3.40_jane/ini_VECT.c create mode 100644 snake_branches/3.40_jane/jhl_defs.h create mode 100644 snake_branches/3.40_jane/kanaria.asm create mode 100644 snake_branches/3.40_jane/kanaria_c.c create mode 100644 snake_branches/3.40_jane/led.c create mode 100644 snake_branches/3.40_jane/led.h create mode 100644 snake_branches/3.40_jane/led_cam.c create mode 100644 snake_branches/3.40_jane/led_pow.c create mode 100644 snake_branches/3.40_jane/loader.c create mode 100644 snake_branches/3.40_jane/loader.h create mode 100644 snake_branches/3.40_jane/magic.c create mode 100644 snake_branches/3.40_jane/magic.h create mode 100644 snake_branches/3.40_jane/main.c create mode 100755 snake_branches/3.40_jane/nec_s_2_bsrbin2.rb create mode 100644 snake_branches/3.40_jane/pedo_alg_thre_det2.c create mode 100644 snake_branches/3.40_jane/pedo_lpf_coeff.c create mode 100644 snake_branches/3.40_jane/pedo_lpf_coeff.h create mode 100644 snake_branches/3.40_jane/pedometer.h create mode 100644 snake_branches/3.40_jane/pm.c create mode 100644 snake_branches/3.40_jane/pm.h create mode 100644 snake_branches/3.40_jane/pool.h create mode 100644 snake_branches/3.40_jane/reboot.c create mode 100644 snake_branches/3.40_jane/reboot.h create mode 100644 snake_branches/3.40_jane/renge/renge.c create mode 100644 snake_branches/3.40_jane/renge/renge.h create mode 100644 snake_branches/3.40_jane/renge/renge_defs.h create mode 100644 snake_branches/3.40_jane/renge/renge_task_config.rb create mode 100644 snake_branches/3.40_jane/renge/renge_task_immediate.h create mode 100644 snake_branches/3.40_jane/renge/renge_task_intval.h create mode 100644 snake_branches/3.40_jane/renge/renge_tasks.txt create mode 100644 snake_branches/3.40_jane/rtc.c create mode 100644 snake_branches/3.40_jane/rtc.h create mode 100644 snake_branches/3.40_jane/self_flash.c create mode 100644 snake_branches/3.40_jane/self_flash.h create mode 100644 snake_branches/3.40_jane/sw.c create mode 100644 snake_branches/3.40_jane/sw.h create mode 100644 snake_branches/3.40_jane/task_debug.c create mode 100644 snake_branches/3.40_jane/task_misc.c create mode 100644 snake_branches/3.40_jane/task_status.c create mode 100644 snake_branches/3.40_jane/task_sys.c create mode 100644 snake_branches/3.40_jane/user_define.h create mode 100644 snake_branches/3.40_jane/util_funcs.c create mode 100644 snake_branches/3.40_jane/util_funcs.h create mode 100644 snake_branches/3.40_jane/voltable.c create mode 100644 snake_branches/3.40_jane/voltable.h create mode 100644 snake_branches/3.40_jane/vreg_ctr.c create mode 100644 snake_branches/3.40_jane/vreg_ctr.h create mode 100644 snake_branches/3.40_jane/vreg_twl.c create mode 100644 snake_branches/3.40_jane/vreg_twl.h create mode 100644 snake_branches/3.40_jane/yav_mcu_bsr.plg create mode 100644 snake_branches/3.40_jane/yav_mcu_bsr.pri create mode 100644 snake_branches/3.40_jane/yav_mcu_bsr.prj create mode 100644 snake_branches/3.40_jane/yav_mcu_bsr.prk create mode 100644 snake_branches/3.40_jane/yav_mcu_bsr.prw create mode 100644 snake_branches/3.40_jane/yav_mcu_bsr.sdb create mode 100644 snake_branches/3.40_jane/ベースからの変更.xls create mode 100644 snake_branches/3.40_jane/覚え書き.txt diff --git a/snake_branches/3.40_jane/OMakefile b/snake_branches/3.40_jane/OMakefile new file mode 100644 index 0000000..42baad6 --- /dev/null +++ b/snake_branches/3.40_jane/OMakefile @@ -0,0 +1,159 @@ +############################################################ +# 環境設定 +############################################################ + +# マイコン開発環境のインストール先を環境変数で指定する +NECEL_ROOT = + if $(defined-env NECEL_ROOT) + value $(absname $"$(getenv NECEL_ROOT)") + else + value "C:\Program Files (x86)\NEC Electronics Tools" + +# cygwinのインストール先を環境変数で指定する +CYGWIN_ROOT = + if $(defined-env CYGWIN_ROOT) + value $(absname $"$(getenv CYGWIN_ROOT)") + else + value "C:\cygwin" + +# GCCバージョンを環境変数で指定する +CYGWIN_GCC = + if $(defined-env CYGWIN_GCC) + value $(CYGWIN_ROOT)/bin/$"$(getenv CYGWIN_GCC)" + else + value $(CYGWIN_ROOT)/bin/gcc-4 + +#デバイスファイルは NECEL_ROOT/dev に置くこと +#自己アップデート用ライブラリは CC_LIBS_ROOT/以下に置くこと + +SUBDIR_INTER_ASM = $(dir inter_asm) + +CC_ROOT = $(NECEL_ROOT)/CC78K0R +CC_VER = W2.13 +CC = $(CC_ROOT)/$(CC_VER)/bin/cc78k0r.exe +RA = $(NECEL_ROOT)/RA78K0R/W1.33/bin/ra78k0r.exe +LK = $(NECEL_ROOT)/RA78K0R/W1.33/bin/lk78k0r.exe +OC = $(NECEL_ROOT)/RA78K0R/W1.33/bin/oc78k0r.exe +LCNV = $(NECEL_ROOT)/RA78K0R/W1.33/bin/lc78k0r.exe +DEVFILE_ROOT = $(NECEL_ROOT)/dev + +CC_LIBS_ROOT = $(CC_ROOT)/$(CC_VER)/lib78k0r +CC_INCLUDES_ROOT = $(CC_ROOT)/$(CC_VER)/inc78k0r +S0RM = s0rm.rel + +# セキュリティID +GIVALUE = 1B339499E033F240BFAAh + +# ユーザオプションバイト +GBValue = 7EFBFFh + +DEVICE_NAME = 9F0104 + +FSL_LIB = fsl.lib + +TARGET_NAME = bsr +TARGET_LMF = $(TARGET_NAME).lmf +TARGET_HEX = $(TARGET_NAME).hex + +# ここまで +############################################################ + +############################################################ +# ソースを追加したら編集する箇所 +############################################################ + +SRC_FILES[] = + loader + pm + i2c_ctr + main + magic + WDT + i2c_mcu + i2c_twl + led + rtc + vreg_ctr + vreg_twl + adc + renge\renge + accero + self_flash + sw + task_debug + task_misc + task_sys + pedo_alg_thre_det2 + ini_VECT + task_status + led_cam + led_pow + hal + batt_params + voltable + pedo_lpf_coeff + +INCLUDES[] = + ./ + renge + +# ここまで +############################################################ + +.PHONY: clean BeforeBuild + +AddRel(files) = + file_names = $(addsuffix .rel, $(files)) + return $(file_names) + +# *.cからinter_asm/*.asmを作るための関数 +AsmProgram(files) = + foreach(filename, $(files)) + asm_name = $(addprefix $(SUBDIR_INTER_ASM)/, $(addsuffix .asm, $(basename $(filename)))) + c_name = $(addsuffix .c, $(filename)) + + .SCANNER: $(asm_name): $(c_name) + $(CYGWIN_GCC) -MM -w -I$(CC_INCLUDES_ROOT) $(c_name) | sed 's/$(filename)\.o/$(SUBDIR_INTER_ASM)\/$(filename)\.asm/g' + + $(asm_name): $(c_name) + $(CC) -c$(DEVICE_NAME) -y$(DEVFILE_ROOT) -_msgoff -irenge -i$(CC_INCLUDES_ROOT) -ms -qvjl2w -sa$(SUBDIR_INTER_ASM) -zpb -no $(c_name) + + return $(addsuffix .c, $(files)) + +# inter_asm/*.asm から *.relを作るための関数 +RelProgram(files) = + foreach(filename, $(files)) + rel_name = $(addsuffix .rel, $(basename $(filename))) + asm_name = $(addprefix $(SUBDIR_INTER_ASM)/, $(addsuffix .asm, $(basename $(filename)))) + asm_win_name = $(addprefix $(SUBDIR_INTER_ASM)\\, $(addsuffix .asm, $(basename $(filename)))) + c_name = $(addsuffix .c, $(filename)) + + .SCANNER: $(rel_name): $(asm_win_name) + $(CYGWIN_GCC) -MM -w -I$(CC_INCLUDES_ROOT) $(c_name) | sed 's/\.o/\.rel/g' + + $(rel_name): $(asm_name) + $(RA) -c$(DEVICE_NAME) -y$(DEVFILE_ROOT) -_msgoff $(asm_win_name) + + return $(addsuffix .rel, $(basename $(files))) + +$(TARGET_LMF): $(RelProgram $(SRC_FILES)) $(AsmProgram $(SRC_FILES)) + $(LK) -y$(DEVFILE_ROOT) -_msgoff -o$(TARGET_LMF) $(CC_LIBS_ROOT)/$(S0RM) -gi$(GIVALUE) -pbsr_k0r.map -nkd -gb$(GBValue) -b$(CC_LIBS_ROOT)/$(FSL_LIB) -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i$(CC_LIBS_ROOT) -dbsr_mcu.dr -s -w0 $(AddRel $(basename $(SRC_FILES))) + +$(TARGET_HEX) : $(TARGET_LMF) + $(OC) -y$(DEVFILE_ROOT) -_msgoff -o.\\$(TARGET_HEX) -nu -ki $(TARGET_LMF) + +BeforeBuild: +# ビルド前に必ず実行したい処理 +# OMakeがタイムスタンプではなくMD5でファイルの状態を管理しているので +# 残念ながら cleanしてからビルドしなおす必要がある + C:\Windows\system32\cmd.exe /c $(CYGWIN_ROOT)\bin\touch magic.c + if $(not $(file-exists $(SUBDIR_INTER_ASM))) + mkdir $(SUBDIR_INTER_ASM) + +hoge.bin: BeforeBuild $(TARGET_HEX) + C:\Windows\system32\cmd.exe /c ruby nec_s_2_bsrbin2.rb $(TARGET_HEX) + +clean: + rm -rf *.prn *.rel $(SUBDIR_INTER_ASM)/*.asm *.omc .omakedb .omakedb.lock + +.DEFAULT: hoge.bin diff --git a/snake_branches/3.40_jane/OMakeroot b/snake_branches/3.40_jane/OMakeroot new file mode 100644 index 0000000..16f4b11 --- /dev/null +++ b/snake_branches/3.40_jane/OMakeroot @@ -0,0 +1,4 @@ +# +# Include the OMakefile in this directory. +# +.SUBDIRS: . diff --git a/snake_branches/3.40_jane/VCProj/Debug/BuildLog.htm b/snake_branches/3.40_jane/VCProj/Debug/BuildLog.htm new file mode 100644 index 0000000000000000000000000000000000000000..826ce7ce8cbd63fbd1c0dfd05436b1b710c41607 GIT binary patch literal 3992 zcmeH~&u>&!6vvM)o0#w?ywm`Sna*ho0xdNH9U{=uANGf2#xygX9~~K(Ix|H}(4C1| z6O$TOni!)&cbKrzy$cCTC9X7aNeC-;#;Bij-n*R{+dzvUVbQ$2_wJ8#&#!yV_n!OD z-^XN0T5?fp@{&9wJ!1Wm~u>=ZAg>Z7F<{OmXXviFR~`+W^1~&E5N^qyg;!G zkJ3i31YI=i#4bG&B!769Aia;f8;IminYp# zRS~T`>r1RO?W=riP&8>>@zED#Fwy2`y{k7hl6(4{#-2`Z@G&`QBn53_xuMss`vLfy z#2QZ%Kb!n2p0A*TcFfsKk*7V^w#KX~Lfh#RTf5mC85w1_NAZbyV;^z~E_FE3*gUd* zZl~ZAo}F+z;8MExcF8>(yt?-3t@A@z@T=a_@AVtKu0N^uP1}Yn_%5!X{RMeSZ&mjc zY;F`U7KpTpT$OqE)1VBvT`}*lOF{1T_vk_KWxlkxJHBEcnlE<}TLVdK-O%6lzDL&` z{hC(LJn%BUyYXc)zjd^B$CsQtQNFET;>o+@tKr*_s7q6;1Wr?_NII0=`UFJ1p>gTO6+HzTQ z*f!0~veUJ&Fsz9=byH^0r(XU0ki@$!M!3BC5F-<28@|Rr+(D zp;pIOZ5PQ=FwL;84}?=W%sCm4Sf2EN1a&ZE6)9EF#VX1O4NkfSn{|tvzLB7g;bbhO zk5v)aYL!jY!K>-L5+}K#h9OxIJxuO7>^UxH!L1k%tQxZ_%GP%x%&b>@htS$kqm2>! zAA+a*p&rw<4~lwLKLmNQ`U&`Ll3zuR*&OTf_z7ePbv7laC#f?|fb{f10+t z)ynp2>+WhLu7K@UQTJ-4Og7nxKZHlqWVh8Whvf)W!~%H}=SMDy`&3d#q`Y2fGHW=I zBeolyt5z-N{G1Q*o$IKXtqxjoSw$Hm7b@gJe3!JU=Ysw=@mh9PKT6K)IBPan<5t&1 z63+Pns`K*NnVATT2~n}V7&heSyv?*LaJw-ER2l&Rw!Y_Vee3&wRr$kWI*r%E?bT@8 HH}QV~c8B5A literal 0 HcmV?d00001 diff --git a/snake_branches/3.40_jane/VCProj/Debug/bsr_trunk.lastbuildstate b/snake_branches/3.40_jane/VCProj/Debug/bsr_trunk.lastbuildstate new file mode 100644 index 0000000..ed27c09 --- /dev/null +++ b/snake_branches/3.40_jane/VCProj/Debug/bsr_trunk.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Debug|Win32|C:\78k_data\yav-mcu-basara\trunk\VCProj\| diff --git a/snake_branches/3.40_jane/VCProj/Debug/bsr_trunk.log b/snake_branches/3.40_jane/VCProj/Debug/bsr_trunk.log new file mode 100644 index 0000000..b8d18e0 --- /dev/null +++ b/snake_branches/3.40_jane/VCProj/Debug/bsr_trunk.log @@ -0,0 +1,103 @@ +2014/02/21 13:25:32 にビルドを開始しました。 + 1>ノード 2 上のプロジェクト "C:\78k_data\yav-mcu-basara\snake_trunk\VCProj\bsr_trunk.vcxproj" (build ターゲット)。 + 1>InitializeBuildStatus: + "Debug\arr_trunk.unsuccessfulbuild" のタッチ タスクを実行しています。 + ClCompile: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /Zi /nologo /W1 /WX- /O2 /Oy- /D _MBCS /D _MBCS /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TC /analyze- /errorReport:prompt ..\accero.c ..\adc.c ..\hal.c ..\i2c_ctr.c "..\i2c_mcu-sub.c" ..\i2c_mcu.c ..\i2c_twl.c ..\ini_VECT.c ..\kanaria_c.c ..\led.c ..\led_cam.c ..\led_pow.c ..\loader.c ..\magic.c ..\main.c ..\my_led.c ..\pedo_alg_thre_det2.c ..\pedo_lpf_coeff.c ..\pm.c ..\reboot.c ..\renge\renge.c ..\rtc.c ..\self_flash.c ..\sim\simFixture.c ..\sim\sim_interrupt_decrare.c ..\sw.c ..\task_debug.c ..\task_misc.c ..\task_status.c ..\task_sys.c ..\util_funcs.c ..\voltable.c ..\vreg_ctr.c ..\vreg_twl.c ..\WDT.c + accero.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + adc.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + hal.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + i2c_ctr.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + i2c_mcu-sub.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + i2c_mcu.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + i2c_twl.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + ini_VECT.c + 1>..\ini_VECT.c(344): fatal error C1083: include ファイルを開けません。'sim/sim_interrupt_decrare.c': No such file or directory + kanaria_c.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + led.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + led_cam.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + led_pow.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + loader.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + magic.c + main.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + my_led.c + 1>c1 : fatal error C1083: ソース ファイルを開けません。'..\my_led.c': No such file or directory + pedo_alg_thre_det2.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + pedo_lpf_coeff.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + pm.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + reboot.c + 1>..\reboot.c(8): warning C4068: 不明なプラグマがありました。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + コードを生成中... + コンパイル中... + renge.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(16): error C2054: '__callt' の後に '(' が必要です。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(16): error C2085: 'renge_task_immed_run' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(17): error C2061: 構文エラー : 識別子 '__callt' + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(22): error C2054: '__callt' の後に '(' が必要です。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(22): error C2085: 'renge_task_interval_run' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(23): error C2085: 'renge_flg_interval' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge.h(24): error C2085: 'renge_task_interval_run_force' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(13): error C2085: 'tsk_sw' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(14): error C2085: 'tsk_adc' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(15): error C2085: 'tsk_batt' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(16): error C2085: 'tsk_led_pow' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(17): error C2085: 'tsk_led_wifi' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(18): error C2085: 'tsk_led_notify' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(19): error C2085: 'tsk_led_cam' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(20): error C2085: 'tsk_misc' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(21): error C2085: 'tsk_status' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(22): error C2085: 'tsk_sys' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(24): error C2085: 'tasks' : 仮パラメーター リスト内にありません。 + 1>c:\78k_data\yav-mcu-basara\snake_trunk\renge\renge_task_intval.h(24): error C2143: 構文エラー : ';' が '=' の前にありません。 + 1>..\renge\renge.c(33): fatal error C1083: include ファイルを開けません。'../sim/simOnWin.h': No such file or directory + rtc.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + self_flash.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + simFixture.c + 1>c1 : fatal error C1083: ソース ファイルを開けません。'..\sim\simFixture.c': No such file or directory + sim_interrupt_decrare.c + 1>c1 : fatal error C1083: ソース ファイルを開けません。'..\sim\sim_interrupt_decrare.c': No such file or directory + sw.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + task_debug.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + task_misc.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + task_status.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + task_sys.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + util_funcs.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + voltable.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + vreg_ctr.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + vreg_twl.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs.h(17): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + WDT.c + 1>c:\78k_data\yav-mcu-basara\snake_trunk\incs_loader.h(28): fatal error C1083: include ファイルを開けません。'sim/simOnWin.h': No such file or directory + コードを生成中... + 1>プロジェクト "C:\78k_data\yav-mcu-basara\snake_trunk\VCProj\bsr_trunk.vcxproj" (build ターゲット) のビルドが終了しました -- 失敗。 + +ビルドに失敗しました。 + +経過時間 00:00:04.22 diff --git a/snake_branches/3.40_jane/VCProj/Debug/bsr_trunk.unsuccessfulbuild b/snake_branches/3.40_jane/VCProj/Debug/bsr_trunk.unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/snake_branches/3.40_jane/VCProj/_UpgradeReport_Files/UpgradeReport.css b/snake_branches/3.40_jane/VCProj/_UpgradeReport_Files/UpgradeReport.css new file mode 100644 index 0000000..3411f63 --- /dev/null +++ b/snake_branches/3.40_jane/VCProj/_UpgradeReport_Files/UpgradeReport.css @@ -0,0 +1,207 @@ +BODY +{ + BACKGROUND-COLOR: white; + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 100%; + MARGIN-LEFT: 0px; + MARGIN-TOP: 0px +} +P +{ + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 70%; + LINE-HEIGHT: 12pt; + MARGIN-BOTTOM: 0px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 10px +} +.note +{ + BACKGROUND-COLOR: #ffffff; + COLOR: #336699; + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 100%; + MARGIN-BOTTOM: 0px; + MARGIN-LEFT: 0px; + MARGIN-TOP: 0px; + PADDING-RIGHT: 10px +} +.infotable +{ + BACKGROUND-COLOR: #f0f0e0; + BORDER-BOTTOM: #ffffff 0px solid; + BORDER-COLLAPSE: collapse; + BORDER-LEFT: #ffffff 0px solid; + BORDER-RIGHT: #ffffff 0px solid; + BORDER-TOP: #ffffff 0px solid; + FONT-SIZE: 70%; + MARGIN-LEFT: 10px +} +.issuetable +{ + BACKGROUND-COLOR: #ffffe8; + BORDER-COLLAPSE: collapse; + COLOR: #000000; + FONT-SIZE: 100%; + MARGIN-BOTTOM: 10px; + MARGIN-LEFT: 13px; + MARGIN-TOP: 0px +} +.issuetitle +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px; + COLOR: #003366; + FONT-WEIGHT: normal +} +.header +{ + BACKGROUND-COLOR: #cecf9c; + BORDER-BOTTOM: #ffffff 1px solid; + BORDER-LEFT: #ffffff 1px solid; + BORDER-RIGHT: #ffffff 1px solid; + BORDER-TOP: #ffffff 1px solid; + COLOR: #000000; + FONT-WEIGHT: bold +} +.issuehdr +{ + BACKGROUND-COLOR: #E0EBF5; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px solid; + COLOR: #000000; + FONT-WEIGHT: normal +} +.issuenone +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: 0px; + BORDER-LEFT: 0px; + BORDER-RIGHT: 0px; + BORDER-TOP: 0px; + COLOR: #000000; + FONT-WEIGHT: normal +} +.content +{ + BACKGROUND-COLOR: #e7e7ce; + BORDER-BOTTOM: #ffffff 1px solid; + BORDER-LEFT: #ffffff 1px solid; + BORDER-RIGHT: #ffffff 1px solid; + BORDER-TOP: #ffffff 1px solid; + PADDING-LEFT: 3px +} +.issuecontent +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px solid; + PADDING-LEFT: 3px +} +A:link +{ + COLOR: #cc6633; + TEXT-DECORATION: underline +} +A:visited +{ + COLOR: #cc6633; +} +A:active +{ + COLOR: #cc6633; +} +A:hover +{ + COLOR: #cc3300; + TEXT-DECORATION: underline +} +H1 +{ + BACKGROUND-COLOR: #003366; + BORDER-BOTTOM: #336699 6px solid; + COLOR: #ffffff; + FONT-SIZE: 130%; + FONT-WEIGHT: normal; + MARGIN: 0em 0em 0em -20px; + PADDING-BOTTOM: 8px; + PADDING-LEFT: 30px; + PADDING-TOP: 16px +} +H2 +{ + COLOR: #000000; + FONT-SIZE: 80%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: 3px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 20px; + PADDING-LEFT: 0px +} +H3 +{ + COLOR: #000000; + FONT-SIZE: 80%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: -5px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 20px +} +H4 +{ + COLOR: #000000; + FONT-SIZE: 70%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: 0px; + MARGIN-TOP: 15px; + PADDING-BOTTOM: 0px +} +UL +{ + COLOR: #000000; + FONT-SIZE: 70%; + LIST-STYLE: square; + MARGIN-BOTTOM: 0pt; + MARGIN-TOP: 0pt +} +OL +{ + COLOR: #000000; + FONT-SIZE: 70%; + LIST-STYLE: square; + MARGIN-BOTTOM: 0pt; + MARGIN-TOP: 0pt +} +LI +{ + LIST-STYLE: square; + MARGIN-LEFT: 0px +} +.expandable +{ + CURSOR: hand +} +.expanded +{ + color: black +} +.collapsed +{ + DISPLAY: none +} +.foot +{ +BACKGROUND-COLOR: #ffffff; +BORDER-BOTTOM: #cecf9c 1px solid; +BORDER-TOP: #cecf9c 2px solid +} +.settings +{ +MARGIN-LEFT: 25PX; +} +.help +{ +TEXT-ALIGN: right; +margin-right: 10px; +} diff --git a/snake_branches/3.40_jane/VCProj/_UpgradeReport_Files/UpgradeReport.xslt b/snake_branches/3.40_jane/VCProj/_UpgradeReport_Files/UpgradeReport.xslt new file mode 100644 index 0000000..8277446 --- /dev/null +++ b/snake_branches/3.40_jane/VCProj/_UpgradeReport_Files/UpgradeReport.xslt @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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

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

変換レポート -

+ +

+ 変換時間:
+

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

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

+ + +
+
diff --git a/snake_branches/3.40_jane/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif b/snake_branches/3.40_jane/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..17751cb2fd5c284dfe984adc4c769982f73a0a66 GIT binary patch literal 69 zcmZ?wbhEHb23ky~TYXIqG7FYlP literal 0 HcmV?d00001 diff --git a/snake_branches/3.40_jane/VCProj/bsr_trunk.ncb b/snake_branches/3.40_jane/VCProj/bsr_trunk.ncb new file mode 100644 index 0000000000000000000000000000000000000000..c3df73580a39448b36d235699ff9a4453c3fcdab GIT binary patch literal 912384 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℞nLY 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
wTg`ZFRO^ELFVrKO7g{37O%!P~hTrty{vBwlY!! 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 z zXk-~vk^7Ihodd@9k755w>tnHr_i+9&WAM(>Q~qOkIOcfxq95!ql>W|$&B%y{d`{h5 z#v0__9d0(9jn_vFW>M!aTnW$3zd}C;M)hM(M)C{eVohutw%cK3aef-^tw)6M^vIJ6 zkKBh${&`P3{CxG>;dexz^St~QV5OT%Gg3Y_m6gqU44SEQ$cMOGYvllIw##^MkK>y8 zeT>(|dxX&#MtWEkNO8G%YY}uYh|j7xe=DLeK~Dqyl;V6E& z4sNbzjp#Y7dC;U_JwKJ7wFq?g&;=oWt>Uad5M>Iw7ud2D=lM`BgIB=QD$e_gmLFOr zlmo>x2oK|}{@62dJsE|+9K4MDUCi_1{mCSJ7W7kyqlWy^eaj+zCVCmDffUasJdCS4 zRq-6cpADWx{t=4j6h0A}FzC@0M`sZK!Z@sT70)C5>ELPPFR3{Dc!+`pof^ur;`xP# zaa)h{NL+tG;ZFunBL4=(iwJ)LS^&$Mt$1#~N@V7v`H^r|PJ}MXm z{-)xUg^z@04{_QQuPS^5^p&umC|+IoaEubLo|fV@g%1mcftOXhw(v)w`Gi-I;&p|G zaczIQFLC|#g+CNLg#3pUze)H|=ui(IT4`_NK&7?*dW;&%)06ZAp;`HHs_-W$4RJV(Vl2oK}<4pO|6@LoYLi_RDvn2ufA>NE4O;^;MfC=%BK!;E1n*J2xA1O3H{{=_ zIGQ~C3*!ebRU8c%{)O>_Ur`)`O8g7s2TxQS-6{MF;|C8@98D(vbqYEK_*8K;V))lF z=m_3G@u9*y1RcQ3D~{$7|Jn!b!Luv=i12nnJMcfcCho&<;ccOLgyl!^5yIO9ZNNWL ze3bCJp{s;`TJh1sTL-PdpHh6B@K&%u;Qdwnap5hY^@MM{;!g^{E4T~1rs5NXw}6i# zw26v8E&R^lPVh{MPZWL!EaA|TqR{yGo9)PR!fy|52S23vB;n0rE5X`ricb-K8*J)` zW1;v9!fy?31)rt(RN>8Fg@>Q6;?spU4Vr@Ar}zxvO<=c2A6xNR!W##T!OJN=NBAwU z>L9MI;;#yCgjuV2uN9vs{N~_h@Y9_W_hG*9hR}~#);`4-3U3fJ0RKes*M;ANnP6C% zO7TU)>j(A0UsU`p;q_pDLd-_R7YnZoKRwHOK=CEQ>jZVc+bOB_zK}QgPPzO6kjd;2H3fl=x|3EnPQ?L~& zzCn0Z*xj&>rQ#n7uL7MG;>|0*NqFU;GWbZvKN3zY7~-re{;_cSSmFLC{)zC4@O?x* zsrYBYD+Cq5t1G@$czIaSEUS>>UkEP;`yobw@dRcPYM8 zco|qC5i>>c-NH-5PZQ-w@jb#z1*O2}E528FN!T-{cs|&85l>q2bHek&0~Wn*#eWr^C&&XnQSsk} zC&5~b_}q&BAv`x`hFVrX#V-iY732bMr??EMteluj3JZzij?Dvdz~celY>Iorvj^G1 zvnd`3&lY3@ztACZ9~iF~J+vSz_;JP42+sna3dD+3Je}~&@V2n5b&7Lc2($=6Ch*r3 zXPjj85D>ctR#(Nd3eSM3Ht3HjokX4D_&6eHNiFD85F1I9!B?w&x8BfK5;*b3P<1` z@Y9MH6Aq;V_(8?56&^#ZAIsXNcuCkpm-_aP}PF3R-AFIG2%nqAoTMUFDsmj zAtP3k;^l=~0XFLi#VZQ`3x10juPI(h_yt5KLcc4y+kl7E2gMgS-ir+2y zk0Z_z>RZLz3P0u_1HVr3cEZ1hzX2kLDBfQ9QN&C_?V)%_;Ya)<;I88L2tN#aJUr0a zCZ0=I;fG+UM?ItXeZs%y@;TJ`dsn;!uR-lz#moo0pZ^wmKWA3R(z1~-H0fF`bzP^!gu+*z?&;R zMEFj`AV58@_(Q_K!Q4Q+FN!}b{A>Sf@G6QA6TSnp3Go~iA0hlJc-KLz*CuiQM+x7I z$Tsj6Qhc=VP5vhE+TfA?YK-uWm~jJr6wV* z2jCy6{ErJ?k9no=OH}*`;p_Z$;Iq|vo)W&+Ukg4#<>$IRmbJ!T13paUe@6KG{`=q+ zRQ`#=-}B!CFRJ*n!dLsN!E>wgOcK5dGhorWDLzH`N`EDIDs`Ucg|C248TLcPUl6_= zk;yPl#2`PqpHqdu>%R+r3>-qnQ`3dN1MM{47sY1?U*<0Z|5)*v!k1#MF7Bt|FAHDd zF9Dyc_#EMHL;sEV_KLqMd@=ms(4PU1u5+&NxBR!jhblf#_?ytAqhGB!*GGaEufGWV z9>o_3f5U$R{7%Ie3V$7bp{U0ce@*yn{%hbh6@Oj$Ld;HvpNrye2w&hY057dL*Tq21 zfO-FDJ;5R5KEEmagV+Z#%u0p1CHlQ@315R4Je?+8EZo&~={ooA)+)9z{TCmJU5zbE_@>>=oXR!{IX!cW345?bGS3I2ib6R@D* zzST|ejlzF&e*%BAT7qvD{-gUNc&i%|{1f5F-Q(Z`iYEA0;m0t$8RJAK4Ws+;h4Am) z@4?5`Nbs+OA91-(!3*m8zY%^I{^e+YZ%E|dCH#{ zqkd4o>pS85-Tgejy3V7*_rjwTdP~KR3*Y1J0dJ>%?~lU2b-x8Kpw53n_%6)ChyGdd zlfrkpT(9D^I{#_m-(c<)^hGNFS>Zceu9NYX%70GySMFEf#})ro_;zh|349sp4WRvbMTg!S7Yvarj<*hPj*QXDaRq{{#{KpodZ17rw>i`Xc=l zj|=}8bIvdjT9VzgGBLh(-au zR^`NXmJt4?`zH8%igR5!)c=?lfbyewDdBIpT*qj%;-!VZ?sDCu8x=1joUwT@%2WJ0 z;S1aa;5%Xb@bPWbLzWdjAMt!(PEq;G3!m%G1z)7{R}lV+%XOiKz<3ayhwFPHaxNmE zT2=?euNOYm<+@o76|W-v1@{H;@`_gz{=Ca|x$-JrL--WLAVNPuajtg<4L@RkU=(mm z;(BTdpWsda|5Wi>!k{jf9VN$AXtqys_{x@O^|{Lh+`;N4ulJPr-N--RE0{k8($Wf1!AD;Uf{T3BOD6 zJA{vLM}SXOyoK=L?r`t{inkQb=uddx6>lw^7IE~e6>lT_A@?Ehyo$FIKGYowZYkbD z_=E0);D>Kc{H{*I2fKs8w{)q6l zZd>FZt@v=^Z7};2dJM%!3J=#~Y+E*Q{zrwkc3UI=b&8J>-pXwS9#edr@Rsn1M?d7c z#CaYQZq{{F{0ZSL+!o0Hq~cEr=e%)@;}m~dc(@K^eZ?mVzumnZ`HLz3tnhGs$h3+- zC;V3TR^)$EJ(o$s8@LU?XDB{dcpdosqZ}$eMR;wuHh53PpBG-;tqy*t;#|j&b8@SJ z*HV0{@NgZ--zz2V+ce>o-O9-Swc^u-U+-QIUPzs1hVTmTsZIEuuw9rbyga;Zp_gco zIRDGS%em#icPl{2j#)2=`nM{29f+6OJG+-~$yu zEZlOjS?v`+D*P`8e%Mw+#g7TU;9P*Lr1%fQ|3n0Dv^$FbB>Xq$H^_5!6VLZ&;lDb+ zLhe)il<@P27>jX`;%9`PbIw7&ruZ+y&mfXH)*?`x$72NNoQ52!IIjae7Q`Ay6e-33 z5FV~8+eP&!`Fr5mj_Ao4FDuU9Z&^P${M{ARd3e9z+wJgvFDaV%y}ZA$AUFrX3#t6J z@O_BK1Aj2Z9pQW7zl!y)>m<&@=Z7~P(c3XfQuQaFH)=e@QOCEa{45{zSlk8vx#BEO z=xIAFk4qJ2`NL|3i1i6Owc;$tmi3jx@;+MeG{Uzdsu1p{;(UJ)(F-29XfG7!dx$GR z#COb2S3HyOa6R54it|0kc-Hw0`7|wuXrt9M+3BE6#c! zH8Y}fV+|n1iwl1rGxSg%6lc4F5gELi(caZc{9d+C80jO%6JpgXUPkyThxPhO#o7MR z2YChfEXCQ5;tn{=!N)3IQTV$K+mpVEvzn(q)IQud1C~(-`Zcx0Q@YkK!!QWE+CgHC+ zY`3Q<-ca}ghwc0b#TyBqkC_=5hbrD!_&j)=qg_zEsqnd2ZvlEs#cvfJt_z)A@#ey3 zJF}7BR{Rd(FFWkloKSkm7Q$yav%t42&VDL-dWZprevaa;g}>;$2tHqN_M15yXFB*4 z#oGy==CHpuOz{rFpLd=I@1b}n;ZraV7k)~LcNRX`nGD`Q@vg!rIqaWSQoNh+XPjri zvnYPA@TVR2m#Q9{wFV(x1mfo?&hao>d_Mu~D5bYKIgo;xSf}W?- z9sF&@CkXHAbOoQS_%p)0I9Rs31uot@6$LlvJS{2u2X@NSAzk7HRKoDSf3DgJ`+ za9#8Uicb^X&S{7I)fInHcw5Y8$9-1(CE=}|*5KI{pC!DN(+WILe75kGPD}9LmHzw{ z;o*Ah-zz>>_#Mt2$iGYR`ND5^ZU_HF@rA;hJI%q@EB?Ch+nn3L-%P~g=Vv4U2Ud^cnKCpD+dshh$*O@P^_uARaE}M=CwW8sU|kO5m9kUnjhx zQxQB+-}`~^3Qh&^^Gg5xq44rfdGPN_C9Y?a@N$Uyi1u3XkA#Vr3yNPO>B;YBcK6a77v|8wDaoIKzI75_qbl9L49S@CVc zb2>S}?@;_p;W-eu660dUw+qkiWCtI9ZQ^>q5}w7$0zOCet9J;`gxRJTN2~LEEj*)> z5&Wa#iSz6fp3X@J{*vOmg{MV?Qp}A}-@8Y6Dkl|qImP!0zs9)+Je}ePgvXsY_z89X z?}Wq62mElc#Pu8&?l~U#`-&eG?m8~`bj6Pe$0A?g4=etIaD-tG{Dr+$@!y1> zwP`o2qxc`f&)8?cb18m7_$m7o_)n^Susqh!CouyM^ClE`g#V1yt}N?i#XaFCY})-E zQrs8*qfI;E9g4?=|6uOZ6te#AZk-dOPr!VlYr z!HX)MN%$fA5V)s!7UAF7w2SVkn7IGhgdebJM_r;1=QU*z|+gs(54J%P`v>?VY-B&4kal=|8eZ*&mw=pJ&tGKD6h7Cc zf67$FTMB>Gra#NWir+2#75f$NHj1|s&e*@OJ1gE^_$aNWoPUt z{3ZJ(@Xr+QBz%TF1AMXK_XvLx5i4OISG=?E>GpK+A&PeqKFyv6-bV3m!k@S4e^gBI zdxcN3CxQQ>^ilT-f6jgme7)k`g+FW4ABwT`qW83i@TU>S0c*J{-c$H^dp!7H#d`@K zhu9C8AE)^J!p9<>86tu!-dp$>n|@~n74IW_6e6IZzod9y;Un#l;KxbOI-*3~Oai-!Ug!i(0fe%r9l<=N*Pw+O1j~3p;?g3t2@v*}1 zv+o1Xp!j&zW#w0Vw(u5q3-EKwp7@IJJMBBcHz+<=cyp``0`CIF=L^5h zz74#u;tPe}YTpXpO!3!+H?y08S5kbD@Fs|Nj`~XRw}dyg8-vFbe_MDXyAk*aWyf49 z{AT-R@NX1)G|d$1485@Va(g@Ii{N z6<)`#172V8^}=h~HNkT$zCrj6Sa}e=K4tgZD7=PU1N<|^Hw&+BR|lV^_{YMl+Eu}a zD*lP^Ds~m{I~D&-cxAgXcxA;u7k<5cJ$O#VzYt#DE)VW1zD;;JyBzpIHBS6ecxk&d z_{WNG7hVdHMA5z|zC(CX#N&Z}Uh!{)7qN?gk5hb?@WOUs@Ii`yE4&aQ`=CBle6R5Q zc7E{d72hvBpPdi9fZ_**=e6^K+ln6&p2yAueoT#{j|k6g=LX-Q`1itdVI4@=H55NC zJg1!#{58dY6rKYsN5Vf!@t=ifwX=fXrTA&#S?ny}H5C6vcxF2@cs9j<6`sk?1b$YH zyZ;cL&Q1ruQSrZor?u09zoEDjL&w-kW2XThsd!9yYCAP}PsIb_nDznQTJdXy`?e3> zQ1R5lV|EO@n&N4Nd$tE&Sn>42ZTv&Krg%o-Rv5BD@yx>iLZmxb%~bz6tMCh46U5r1 zcy{5xTfc*Us(4P}zgfS5zo&R^;lEnHf-hD)kMQ$|IEVg;;`xN1woZe0SG<7mQ`RZ) zMv4~_e$qM#US9Dc!hg1Y2KN;&Cj3XlvcmX9^{cNH{)6=c_*TVB2|p@pY%f>*I^jpG zBgp@P;^l=Owhn_oq3cPL(2_yOwxctypl3g2(-2QRF6b>aK0ec(A1zd`t3 zL@h+WMfLM<6u#Tq4gR&_wT17pc7d-_ysq$_)=uzwiq{wZjr9%qQ;Odt{7bCugY}^l zZylqi zC00*`-b3;B!dF-;z^_rfqwwVt`}q&0x4B0+Bb&jxs(2USjE;?ZN%3yN-@;0*m>;V6 zeZt?A^|ksa-b45zYZ3C_tavZsugRJ!B^2*1e4(`v`BN+2SNH;J0r-iciSbB(;q$He z;9n~~K=^EHHuz@69}xbs^)mQ0#Rm$XVa)(%)LkEvdWk{8U$kDt-`6NUSoi~60M0s9 zB$59?;k~S0;77pInez-0ejj2dV>}Ms)Q>rE9Fm_C;~b=tMmB=b0*=PL6UPowln+B z8Tk?9S+k!dPnfR)WCOE5#>fqjz4L~j&ogqrk^GK4`4ZpJ%IrUBKaH z67%&o@+l+vJs+ukALAS5t8Qc;$T?;|6~=D-tdEgnjhq1)u?2?x3|SImPv&o9~~X)c}A(frhD8l|2M^$Cs(b+cU3m~w<*Rv zUDV$L&Hkf`G0znB_gu5T1d{h~qmes}JZj_xBeT>F^A&-tYxWx&+0MuTMvgXe2IRX) z@0q`M7ccfHxpu<6`jMN0FB~n+Uen^iXJ&80G=?kQ6-fCZ?0%$Un8G4@^i=wNQG_+^K~}z zMI*m5GH4KfUeCw}jeNt%T}Bpe80PC@hqKt>Jmv8~M7C=Z&m$Tlo1i zM(#DTMDvgjFmkPtX>SjC3nOP3dECg#cZ8o0H*%AaS?>&aM^OKH*$}WWxIx-4>R%;BlC9)c|Rl98kzpykasZhO(Xv_^5*-(&j%a%s*#@?`MZ%N zx`+8%8ac|y*Nxn1q~9aVcb$=UK~6>5jr21T<4fj8x&vtp5}(Z%M&{`i{@umM*Ni-6 zWaazA&mS~$g^^b8kk>bItdX0HOw%X)yqS>`jQrHd9DT#jI~qCH$RCW%+AsY41|vHe zImXCEM(!|@5n}nf^7jvA10#DG`LvOXA%8-;b^zi-Aay``2#Lq8F_ME}{$0<=M~(c@ zNN-^Hc`YLc8@a^DAB-$ID9qQ!$iYTF4Y?5MTO_V)k!dh|AdqfEYJoHWX&%x}q+$=E z&yGYn2#MFV+DK=JxlSWT8~L%38HR?RH#hQGBX<~?>!I-T)<(WynWSgOM*8 zdCTI2x%PBTS$kIvX93Y9_az3(MZoA@wYB9a+{H-j7ibAVB|(4zccbrBa1&Co~N0S1C4ya$PbJ>Ze*q>!u*wtY-i*sBj*{p*~lYC+E0eZ zF=9n~m&c5;BO4mo$H?a(qj!3p+W$fAXPlDAQy%-g{+31#F><<*D~#M@!hE+G`H+!w zjr`Qe-;FFhJAlRoY7YJNx!2EO1eEgFTLyoumGI$O4Zp9o@D<~#x*Oq>wgrA{TV-|K zZE}Uj;J5e#d>v1~Kk_7eD$l?V^A}v>@9_8h6F#Cg{7PN;q6Y9^y#_w7{55;rn%>La zS01CD^IPWzw0Co_yv@iLG3?E^m%ACgmk`ZAXM5PaLCzy0T)u!78Rq;*Y-!y4L9E=| zD`hjD#%%1pDA&IeK7+gAXSf%>iTmNt_#J#855sTrKe^_N@CPme-{^Air>+1W>`L(4 zt_ol8>hKT00Y2r8ohI=3?~GXjT`{wu2WBJm!VHGKnDx+K*4!M7c^401uEryn-!T$% zLY~Hal)0GWGavJUUc+3XH=IS7nY0+QnU-J%)Vr89wE{D(R%3P+S5{kxSzsSv=GbP; zHv1Se)IM{zV!qp#m?QTU=GE=QT)ZDJpU}k|%^2o&#xWN(73Pno#hlahn5UZA&4O94 z*)UT!CuY~?#*Ey&n8lkPGk=R)j!II_VG}GFL$VE@7zK!tgBVqak%$?vL^{A#-)4LH{9c*>6-Gr?Hwno@)!PXR8Gi=SV-Hz>L zSp#A&R)JXPz2PnL7JF}d%e;3`&bS`LE^m*w*E`@H^bUJRykp*RkFm_M;=0EB8xa$Z zD_d{{vtx*d_p_`Kd>Rq|N+LRHX+&(Tf~dkHgWCA5{B@~=5-4Z9GefN>tZ!p)2PHa( zccCVtF!v4U9mssMY{sYId$+;O<1xk<%kcJsK@9?+)E+`mcG4(>ha(vN|A zxonOwc~l-h40QRD=u4< zPe30P=BZ*cN*B+O5wW@I;l0Dd`yY94vPcQtgPEuMFkAII=X>{NtkkjJ<7^1N>zUvy zQ3(DdRUFQ1;}y+u2DpsP#b16hHs7BeFcKs``PI)K&})gmps}5=S(s-%qWf%c^Wlgz z;D=**{Gxtozp`J`ukSzazv#c@&+_N^NAWc9;H=)>5bsg%aqmfQg7>udjQ6bfoHxmv z>`n2W$9lBWup;e?-VD?|v!qPDf|W()dh?}Ry)Gr|Eh$?|rF0$b8eU7A;AE|EZ?(f{ zGyGl8+Vfo--?84~x(U4EnE@kGrN>?o%#SFAITgA_spsr>Yh&HgZ#>RFV*V};Bi!*W z%<|XzuLQI&lW({f5v(@iEu3~()w{e~JB9g+28{L3BZmd_rsUoT`#4HXI_$Bw zFN+$HH6Lp^)>N!rw!5W0&Xr^CF%G>1xVKy4bMR?4x7)ejnrHroGu36h1m-B^PPh$P z5bS*`wZ`{SN1S!($IPqy(%J|Ak##oXpfLXc_xXFmy~;ty+TpKR=ZtXax53X(O60Q= z*ke6;5_7drV}AEJ%nAP$^T_|i-1EO2>#FO?pWLP>35PvKqvJDj5QFY(pKCqvuW_=v zD?NjF1(|Kep2APP;u}`vl2%2xDN);TrFP>=Z2-&3dN;R6&puvHBb%{O{~z|=1I&t| z+xzYAy=V3e49qa(Gz@vjFytgr5ECc}A|N87B1jZe6af`c!K@%bf`SSvB7%q@K`^0W z&H*FlfS3j5{{Ge7&}@6R=bY!>=Y02j-X0cJyTYnfYpn`hUA0Pd{*Fb}yo63dNFsw7 z#bvccX-3DiFI{Q&vK!?&TcxktXKF@1|t>sw+!63e7bzYs6g*^PU|Db>~W?RI3TQS}{xeMa3{pu8g! zvKOJyvRM83i@qft|2iyVJ%%-{$Facm*GQKimvf88H3^++Q@&Fi?IV+~g8g7O7sD^k z*w}in&mECij2?=)C% z357pwEbhv8Fnu7(B)+AZMSL4Ofl=_Yxb{jY$0}o8TsWIz^ZtT__Pi+k1#{X(wI0MA zPCJbiI>weQ9)*s?!qqbuxS>}iv~yGO$J(-yB|hJ5uZSIt&5m!4KhBu19J{ayCyTX8 z_d~kwdXewegsiMxh)=V#P0TE}Gpl@-8RaXSv3QGf93L=K`-EBAUS??DF{9kaZ1Oi| zk_T;@Ib?$QV+l@QmFL9YiJTtn%iTx=IR!bCdDjSfp3%&=CNS5!gdXS$=2+J-$GU^l z!wWf~yo^)O_c7Ocka^Z4%&|5wzuL^)YCH3)=a^INWbE)^Rg76*v!+!dPKj{~W zm{X-OpDM;&Dx3bHEOV$z%%7?;cdEm@sUg;13Yjmp#k$S*SjG4S=$=L(of6Oq0-Y|< z$pf8A(1``vI}tA`#k3P!zEQTmkIJ{)uHD)7t#xX5b$u^8CA+&kRXjb4}QQKE+TSsT0RPID( z@UpKfYCcGpg(ijewg<(Ap5%s}9hd!S#UDu52|MZhi&myHB&Pcul==j2qtO{PwaHcN zd^$iI(-|?v4dE?D_9Tnp56w>I#;rMI)1ZP!i>bFjP9ig|2tL`tHC{L zwc@qob>ju`dhrJQHHtTmH;Ffk7si{%+w-SgWx}_~+_NO#O^FuNQJCjgH(LYa+CQl9 zPmE9OpHRN{jio1*GM)1st+09b4w|a;8q&>n8#YHQ2-pyC$Ut7GZR1)qz{o~5wsZTH1kt+?(PQQF>#>%AGp zeq$3?oY1^{Swbfnlwz1In_CKR#ZL6TFp6fe5p}oZl``h}+3p+1yA2Yb(gw?^?@w-?W{~fKV&rKR_xSga!LRR#Z!%oOv zZ5}?&%ueBCdtXk&58wp-Ku+Bc;iUdhPWPvJ``;Vu!8^o9@%dd`YIizU#bgJy68N;z zqSXqmOf)o@)!y&G#)U?Atp{k%Dv9Y`eit@fYs7WOoTyrv&}kX@&a(TVMbg`|<0Ind z$0x?M4_Ptao1Kv+wK+p94((!87!;FbJ@KxQJuIfv9ZJ*7mR%5qE_24mbf#SC3mx6! zF3Vqv$-};)cEKwBGscdBeCIlkB3rekWxR3ejb%kbwvR;9EKY!Z?_3bmT~oq0nwzjD zCu9jhIfpv3@gdA}oeN_F&UNz);MSyJ+^nYaG)mRq)=o?HhvTgY)pqK%U&MC-O(Uv79Y2`v3PSAR&thMS?3;S`G0#A@0-~1tS)>Smu*s&c|}ZCCPm9JoV_|D zR_9cAPI9MN(YOnH{LiQBwn^PYDf_~rZgZ?mTsG@TYE4g{fvx(lS39u;g;{Ocidc$>WBbd~U_*!Oc_0aa+~#j2S2LhHx@Bd!5FuU;VieYyh`~ zoz6{S16kiXgB!>Oaa)@12R)bD+Ro>Ow+qmN(cC1b`_sp<0ycqL_oi@D-{s7TuHZ(% z>D(fCrTM#-`w*{B%;t8*8xl7r>YVM;tu-p0El|DpnA?2htC9GmiyObonHBp4t&^U$ z=O(GHP&6i?Q^%6(d+1IUZ;BO}O>VYzM~b)>OQa{N;g$s0ue}|IC(Yn^V=dzs$OxDD z86NkZ(H8>Y(tY(cS^VF2&5`t?fgJ$+@&5KK-~GNk;x6JhjoG9Z-V9PbL0-|538rl8 z2};nf3|enVPzrp2utq>?Yw5)JZYS)x){N|H}s6%?9bJ?Vuie-DC=U>h-fRL8zu zh7KGtvEC3&?~Rx+;@qL*CX5(2cH%`trwk2*@aybLFB&m?*tns?hZfj&y?j6QKa-|N zIAO%lkz*zg8$I%zp%Iy<4E-;a5t8V?hJWn1i-v{}aU?ic>5znOP%x3QnktW-H0GkA zm;94EVF`i=A~PpP1~Urr@TgLQk-?0?@cf`4gAu_DM_1t=^8aUaF!PZr{3GMhQNc_{ z>h_OJM@I!Sx#a&N!;#=%Vxe)RX{bQ6CA(s@kE7dv1}%s&{MO`fw>{UqEjhfHc@Lb) zFm*JZ;%0QtD5h{H(7(9-#bb{pr!Q&ppS>YDeU4efIem3<`ch_&J@aXI4T^qB=CF8j z;+5%`CIrIWekvoLh37Vf2fHhQaP?=*hK#-U*^j$@ zt?*Dqo-2)=?Rx|1)h|*K@12a6JCEQOpP11aJDl0zNmnZ9&oSY>oqMUsZvi~HCcK{0 zitxRG@G>U6rc;;jw*%qjOn6nNI^nzFr;opa3BTJeOZeJ*kA!P}t=Y*!bYW>Ayow2* zZR_5c8w25aCVZN)Com*XZoUccZBHhB??5u%9ImUdx1kV10~xaUi^o34h6) zUt1IiXE5WL!P-81MgrlQX|T)Ix`h8{1;Uvs@-(nc;QvlX^kIBs6JFV>j9V`d&Z{O* zCG);<^%1^}Z)(CTnptG!9f$d*=^;-A{`f+Cq}=g^CcM0v0oMtH^Af^Sjz9F_NV(g1 zspDZnhaPr3q7U1cPV>0-ArBs*XIpC%?%DzSAQ0ZhguC`J*3pPx0ET()1!(TO9<#;8k?gid>4n>O{rvuKxjle;0<`&YqPYY#$!-22XD?|e@^5DT z@YeH|Rj`x_?sE4B=uVvDh|}0!iYPMBlbQ4c`&Cq2`FF*nXDZ`lYk*zbDMhbXoL@Vc zS4?8HGT*7gckZgJOh3x49e+U&|DdNKD~BDRsylQ&6?>wT+gF@x{c1NcU&o)I$*If_ zth?>1PEEdaT^o}IWfN8&ORBFrue1L6w(~CEtv}?e;3s?)-0M`24T`Bh5*8 z$q(gv*7=prRH^3KcRTCRJNZZO4Qx_bmy=z<{J6c1Rirmr#m?l7Y_#)Z>{pNf-#Y85 zp)ifJ^1!LwXE|p(XCepDJI$Vr^_BDBuhQ(X&s*&JCdbwgps+cyrqC(c`m*wHHY?#x zcepWoop%WpmLIGPY(@;kt6%3>+pKTxcRfCS5PO#?vcg|Q2GwH~Yr46I*`HDtm9Uyw zEv>e^ZLi`D?JwTVY~IT>&o0FNh5JtSob#14G}P6nACp{#ZYhO#Tk&R+*<UWYe$T`nZ|05bVI^Q@|cz--C zc6MxXO#2*^Mt#vnrw26`ZN+(`XoyvZCLT{>#*%}|NVhIQCQ5Urb(X26O|wbkcQtlS ztl`F*-LdWHlW2Q}Ju|DIQ?&QD##pnh`|XkF=PFMJUb8Mh+QK!L6`(KelFmfxuTr|l z9`)M%WA@|rer6O39Ta=itI;0o0lSRzftTh5bgT+IP?@LF5;U?1>mWvy{(PJL;7+%W zr#Pp<3BO-mY_Df6b{F4YKC)$BK_&cReF43yjaF6euohX%tlAzA4qCN$xTz{wH+mfZ z&?)J~{$`!*`3{&7RoJH48ly$keEV)&-jZq z?$zwwxo)THe}Nw3R`fwB7FnlybPS4J7IW*EV>h=)*ngwrnWX4!4Yn?_9_3Fh^H$!~ zHTn_Bh}X@0n^BvWoIar4|IN3ibSIndOu0@YPs&}avuMYgtwxk2o}Nr^Gm&2A`|2(Y zEv*Zwjp|s!ZfalXwch!ByZXcVp0d&ZhfrBytbhJMRO*V@ta-G`3>d zoh6=bY@r9*169IVAvTnfMbTE;Ks;s!Z58C6= zT?#~>XIl?h`#j9Mok|`RJ*^9@1s=Bdo#CE7H;mom^*Re;pV4~@?{~59VkgoE3!B=~ za_dB|U5v4^=DXo)x5eWpdX#K*?08w^q8x5-dWVO@E0QTyJ{|nlGtzu{Eyvql!DGZ1HOJrgI3NsMlCF z3v}X2uHDn)&$*6fX^L-PRdZ(5bW3b+W!io1KAvo@b8hzfu9F$5Uh&%7Lx##+=g-)s z<6Nv8ol8Ag+!MPL+Er4Om@KzR`o2CpUcK8|4FbHp)A|;EtGAO)y(2x-15hM9t*s#* z#iN}e-ZZEw3OQm%lnie1mHZ#TA|G~Y~LGha>L;k)Svj?L&h ziodP&Zg0dspkCVVbuW2@VTN-rPCmYJw7bgq8d(G3`_+sWk0YNdc4za=^fS8w>)(?3 zlV;zWjls%vF1fv)`;@kFmt0Q#URu6tuaRIGecQdBT;6r+fL>+&8PmL!%2Ae9eJ|#l zaD`YszS7h+gWp%^ zeLy9DXWfLnAdvbUXZ7Rr&DFFKjYEt1DtI5QWgUNdD^lv-&O5XNaa;S}{)$!L?bG4c zZm7KzJn|2w->N`*m3FE#$(h35L0R5W_ACkL2^Vn3g2=*FuHQ2g=`es>~%jZ+1)CA6rR*Ds#5Ektl|5nDwOfm0b@ODd#in z${gv9N;g|y(~gw-jMz%A^mXQKERC>A)>Z66`q_Ee+`%MF!}(hLjlGukDh+IG@8lM~ zx8X^UBWuwWNywc=xP8T1Pxs$;Cfw_eb_1=m!S*<7+*_^B?63Kvq<3Laa=SeN{z*4? z((`}oWYYInWe#*Iv!MRWgN8E`x;R$&l$*LsOlu6vml3b*$>KIk?}w^E1#7S4j#{77 zE>!!GwD-@csbZHisy@Pqn(mxKiHhCsq{m+JXnox&QQhVIai&$wg#juj+kOj9%4gaA zy^-QIYc3e1gV&q3`(Uh-mu99@1gn(#$Jkcz$=A%<>b08Ab{Bh^SN18?P4CB|tTJD3 z&ND0Zn&+gk%P7xoXZ~c5t2I8W1IaK*1shJs6|4b1dG)6gaI9R*uB6or9+gl z)>!MAWNzm(+lw@;x0w`u!iKExY5u=k2dtQ#!G@_^yBymssG!`YV}@M}~R(j+B^UZaee8}P&Y)}ff|=)D%2-~D%r0WQ>~ zE}Od+`6%*0p-Dw~5>x|8J}(c|`IUjHWKqvdSXIMvmt2HPi#z#*)S(;c2bUkFn_Gw4 zZlp==wqCK`q@Ex0Dd1!4Q$EUkO+61$(==*Xi8>ZA&1uFYuOmj|j-!Ty_#kw#m}^ak z#2UCgfpc6LDco)|c}IFXJR01abRT-s(9_$%2t{=VuBY}*x^x@ReR#XUt=o(mdd{$m zh7G=S*yKhR4xiNM>|qm!O&B)#q6w46j2hg(Tb~JIFBoh!>ea2?;BNg+ZC2R4Rcm<$ zA2)2mITsI`Frwdxi5E>AJbc)NBPI+RI^vRXLr0H1d+^9H!$(g#XT;%bgO3|KVdRvt zWBwT-R9((FXXKcPgHIfJ;mC_doFnW*`*uGeGHv&h`t&?8JS7C5H(}U?`8`IC9x-w7 zNh60(7&~$7xfkX4A31T-u+jN_FPe1D$g%lt8#kqLN0;&6$~o+!(HEXO{J(~P+Dsfg zVC0x{#$G&e@Z?sFn|2xeKhAiVwOx84y#c*W?%sPq-y_v*eDbmV2KS);BQ730VbtKs zg^imwZrQYTVQZ^V7s>E{Qb#2EKgq3Z|H6Kf)G!m5-Du>gXl6I79sNUVI+Rh?P&9fN z1J^J@F6IBpw4Dp->?h%#&F_i81QUA^?j-t?QKak-jz0Vz%cOiT7>EDAjuE8vh}+!t zzkjaVx$A%Kx}CrN=DYs-+5cB-bseFNkI6?KekX+-i3{`n13_4#$S}(L&pO?I*6IHL zvrhMa)7qSxZ+^_3ljY-Q8fewcI%sAsIU4?piipLN%jBm5lR5We5kY3!`k1wiSJOB2 z(>k7nn&Ak#0yiE^I}t}SLeu}@)#RcI)4S$CIAs|3WDdABjEPMSfvGe{Mk z$26&yRlr(7V}7w-MxfTo>Hp0@a6!Ru{v1o$^imt+(_ox()0jo2Gsj9mc?N|vW_p{+ z^s^W`e0HO#pXCv%6hV#$mp1qxN;7zae!iq_D2+pghSsg%PwrbIZZj`HY0q`5ZFOn$Hr`eV7D% z&{~b5!Y7gM8`fLQG&RrEM#pc#$O{Z_&ovPxZ!F+N#&&ubNe%)i51ZPUJ%O%Fm0eFu z^kgAx04wmbbZhlF_waQ42$SM)o}@6R6>M@qRz8H^!(nz;B-e|y=Kw#I{41!ygur1< z>@z`80TgOdioBr-yfJqH7L{cHx5L$-OKa^P!u^Fnhpy577HsvSrJ z1paG|*Q5wB=vwlBEzmUr3JuCipw#=((dg!aPK*#pYm(5ZDa5E^aT2K1rc|^U&=M$w zZ*@Rji?-_+c^!><8>m$?9HX-nN*~qu2{pW{&Hu$fU&kao8bwJMcRq}mLfT(|Z{GVy z!xs;7DW?h06lexC0%1#_z*N3C6pE)6p;AI{i%`v0u_&~LcON}3qtNTAqfNv-xbfiP zCwnN|aJW=TIp_Y9b=t=y5GVVm=&Dscu6*Ju~)6#b2@9$kJTfR zSta?fvlaE$%{BGQb4%@2b&gZGSB%nR(}@h67@40W;D$x%xIO-CZj_}7pa`p2bTQ|Gi0o@8B*%k`J-3?Lqq-*WZE5`-AhFr>G z#Y}3YXT%nvb59t2jl1`u_=yUqh+I&rlX7TerD^0@w2(5;>_2MyovagiySbFLfJa!G zNf>=m{2b6KrO46n;dc*=yh5wm#rP8wazR}{;-(~S1{5NVTChdwh(7#02g;tXNgPm@ zy7j`p{Vvr{s?u74v?}efC6Ei+MnEA@0P3cu*C}}zwa92h51_}{#^-!$T7dsu;H5tf z_c~>vM0~cP)G^%R2anox255h=ezQv2Il^Xru#II2+*1MF_Ry-zAwwku(vavr5=nxJHUF3OKdAY?Z2gZK z{ZH5bwm#stZ}jp1(DlE=6CG+P5+!UYU!GZj)Gzm0_>9{;)L+xPhh>xYG(=-s0tK|8 zJUYhU^F1ieAV6y@Yk`3N`XviRBb2NVXowEyp~bb}_w6U=m8Ol)q z(hy(U^dltVQ4!5(J9<6^Z5H&X$JUF?oUh#J5)u$vB`r?0h;50l4t-!PP&EV;Pw?Sq z%5(0UTP;HFC*!Z*97a`#r0E1Zlv4t_icw~9e02?F8id?OZ0y7u?}==2dfqOkW^Szk zt@tGnjsTm5mJm~+I);4xa-UYuv!4#H*7hrd_xg&5*<5g#nhbc836ETQ>cOl00H4H< zYRvz7FqiLZoyMB~XhyrWbogai*Y02sw=ZI5v(etlbnQiZH}jgeI0pL%-#`;imsmGd z#u^M68K_4Bzxv5%Y93yM7a2;TS{4{JJ({2KU2dG>CHX+b>yuTYDQ|G%2|SI-riP(z zemv0N>%(Gb;APX7gXCuj+4QlY3!uAEb{8BTV;ho9+}G%p524kQ^hpFBw2CozDG*Us z&I_(CiGO2&>$V(L)kdIF*_v21hKlMiM-vMvtJJnRKK~Kgu~gw=CK-BKfmS?~E{dGR zpZ;omhaabSJvYDT>XFhG0x#`3{DRN~G%8ipY0Be2DzywF zsNU61lHos|9iXX?TL*X)_`I*nFM8LepmDX`MWd>frh+;|P$p18a+&8RP^tZ@nC`%R zyAQv7HUpIi^(hLXBKWAM+Dop`#dh5?vm@?mJp3sHO)-L#+3vSQ37|PjRvMnQ2s9+I zc?#dSuCcDQmU0{?i&?75Jb|J_u~?*jbP&>@uL#To+V_}dI#S$t-C0*i?#G=KcGN4a@Ivv!>PvLI2 z!U`8-0?oKJXcSc5l&=Iwo`Ga5$4{*eYy=J+>F?W+O`LB_RXV`h_OP-dq}nuvIQ>_e z;Rp$MgkE3Zwa**WnoHW2n>P3sUiN`QAfud3HNH#xVn2W1r}%(h^^;6?V* zzU$mf3NflU7OI*%t({kPxaDWs8!1OLZL*{o4k)kx5QSP43aZWEs z`)$OL2Uu8XYPUdkmvcVhdTg@oMg|`lJ!#||gKe>UoHb4dkDBuK0Z%&jIR}uAWZ#Va zEtU9aUebA*epYf`?;J~6!p^b*JH8w6*P6esh7!@z-Ra5SafXs!P8!s^TBN!hV|BKU z_3Av$N~1Qy`J}ahlEs}FP_)6T?;Ln|v8Sh*EXmZtj>ky2t#s1*l^*A-*%dfV{WZUY z>rH3mVf^*Tt&VE6eFgQu*`CX7mUr802~o3aj-1C&{njxy3G-sUD9T~B2>5Zeq6!QyJ{s%bIJlU4{2;^v@NtW1hq7q zHL9ACtc9iJ--M+es)JbyVMT_eoKjW-4CO7Y>}HtdsciEiP}5A78ktE+6U*7A;Z!rR zhL#p>GtClX2}^GpHOwZL%4Sq*Wj=4%)=addilqr(14}(~J8K)cikoc})hrD>tu4JP z<(nn)G)pVD#VqX$$unOrB*_lTsO8<%0{9jv&+j*JZQLK0vX>Np7H&nLG4S^i&fNlU z16}#u8#o`3-NjxG(<$7~fnmVx6f}90x}L~iCknLF{|U+*3~0YqA#UG$Ij^yua~-(XlIJp@ z^8)w>oB*5wj0C0tf7}C&xQl@MfM&p2;7MQ?upeDK?g^~t(Bjnho&o5-pjD~tI7eU{EbRl(I+DeWE0oy2)F_@Wa8BY_^&|2ZZR zlWu}`;4&Z&S{p%EYhctI@~($oU?s2)aIPT_(Dw#bv~GkK!1?r2YUA2jITd#YpdLW| zZ$skLzwX1Ij(aNZZfF{bt5GbM9^nqc*TBb8cVLeJzj{55LDvy~4}Oh+dLT)2j`6nn z)q?3LPo_I%Cww3x=4r+sV;A8iaS1Ogq939oPF{C5Sy5f$kh@P{r0!ZS>GLs~K)3IgGHN#BS+J`DxJ z={5*&%pca=&@Z3<;wHR_Sy}7?Qqe(u`zbt!9;*iKy*GMU_*)sQ!ut&2o}O=``4MiL z5fmeM=y)8^WLGQH2_OT|3|^loivxQ1(yMSbkOR0MW*s=@z-0#s=u@V?Md|~hUYQ-F zs4ssG(${A?2d#Mx8a@Gj1`Yxxs7Ny86ZRzyt}bpppaCEmHUWHly2-zTX{p*#X=QtN z6=6DCXPbKKRGWN_jf~_gZi)NyWg2~yuZq!d`KlS-xqXIhC!INkB zuXx@Uy>d!elA*#fOikn~W6pWVSJ!Bwe5H-<$(L)Xwa8c1=$%T5lTx#Dg*LK2^n49W zyH!|q>t!#jo~8M&!djTtqTD(3QEDLyEo*J_dP`F3z~JZQEy9^jfMA$G@FdUc#tS9bS;630w zpg3U%aqHq%1iAq&0nNL22p6EUg$wAsR{=U3x(oPpJ2V4t0>6;HkEKhJcEDHF8$w*+1Ot%$S#EkW*U|3bs(|3JluL8sap!Aa2Er?w@Y?2^$OnP&Dki)Z?~lwy1K~6&9(R7U zIS{UK6>a5@ejpHDO~Ky$Xh|SE--NsKBmdmFzdtsW+nfI21$yAF#pvhg8|MR2<6&}~ zersGE1fH{i*T}z=_F0`~QHsW6L(@p>6j&nPN=qli6Zm>tLs&zf!&laa`OK_dmd=`w z8dtG?wfyi%ny}T+D5edc#ztVLM}3G|+)Qh(dEbzqIhw5zm!X+cM6!@NDcdb?lj(m{ z@=Qx7s$FWNBl0!0T0#vK=a9sDjt*?%;DC-te9UoyA1s}rwyn>>dk*8nYVs@uE(Wdx z&IP19(yP+|;gn8FZ=@sA2g&{tgj)kllAmNNc}ezVnAA5QyasM;0euuOj&dGm9J-Y8 zZxQ3j&A=n1(fLT7zI+OJ9k`nCDJ!t?0M{mwNB3h)BhM84(}3;#p3Uz~xHECnaCKf% zt4}&bAG?b_coAd4{k-!5Z2+w`O#sdZ8UZzc{y;m@)&!~mS~bW9>I0dA47Rl(9G$2c z3dmN3?0Dz|xz73MT+>#RSm$fc2RZ{fxvo>jItiuq@eA5%qj6R%)dnWKX{ubb=LB7?1?r*7wyB-*DAGQI33xTS@ zCqP}GDbN<^3cL+m2`mHV01p6{0P}#yfbGDGz&F6JfQ6nF2h#D!kjJ^((L2ho2|qSb z=I96MTh`DvR?`OX&jcQM06yY=gS!McAE?Uj=Wr(jbAWe%3J;@ez*`%c&kxgTzyZEn1|DDpa6K>?7vQ*`gT_B4*Eyn#+i)$wCmS^{Wp;JM*14uS8-oi$9QuM zedhxDH~NOlfFZR1vh?ro(I5A-G`C^hfpFRPlRZIM_tUC@)*`fGptUuvyXkFT>tMT{ zW}fjBa{|iv3;2?9uA+ZmMZcCtfAc8*?LdFZs7dQkCK!+?D$V$!kG1oqotQ_dn zv~0%60!U9lmLbjpWRpP_PNoC0=+Fiz0Ce*AU_P_}Zvj()>w$&95aK!lRe{y~o{GB= z*oHq1+_DBFI~yMYUjwfLvQMD1_e=51mX2&2$X?5tfNYU;0BQqI13K$o2^!9Ol(7XF zYVFX1r{4p*XKozOc#^xer}e-(;7uUcR?G`(XSws?ADC_~18xUow?Zf4XW^IK1)Y+9 zt2px%peN~NU7-lS>=npbi7eRYeE4o)6L2}{ZQ{SnhGyK+{FWUCol$=RSN4SN!@V77 z39hsG{RMuTyp@68fNV(ZBJ6bX9}7H3nqI&>{8s|ofro(6fGowxij=I%$TG-a%IyNw z1AYciHtwZ>?0lRD&$r{3RirzC*8F}8x3^?Lc{52f4k!oSk0|d`@?VXP?JkR+mZSd% zs+6Zq;BEru11|tgfi4wjQ@Fk2}}p(={ND806*X_Rf(}|BkOI* zTsB<3*#_>djHCR10e@HAs(@@P%hJp;K(?g*xQO{m74#F(`_!Gd1Aw96IvKY=?pWND zaQo7(*4VOGL>zbqoPuukfiFNO;0$0aa5*p=(CrWlaJK@h@t+L5h5uvVIQ%1kefa0% zz6tyQ=;jpJ=>HTrM4T-8UI~;2Y5-e+OMxyxbKpC`7iowbg=^UU-29MPZ!W8fd8xy!jo0# zJ-YOt^+DQJssH`;!C|EtTXX3{fmOgl;9X!2a077{1K;3(0=PYgc>+T?qA|CmJk zT|_?(oN@-Q z@oyXij{x1~R|2?YJa}yUi5(f1n@!tAQ!_H{gB_tib;gP-ZIf0sg?BPreg?iNIpu8DKnd3xGeN z>lxgg)0kfYKjN=^1#2eIJ|5_fzut8Edte;?`M|aK9|NAo{{v8oeBFStz@5N?v*~Zo zf#0|<;jSLeSOs*)zw2D)2e`w}11J6*{5RrG!YxnOi=?ZM|3Sj;!tF`eG5CKYd>rnX zgdM=ujbVkvHN?M}xUX<^Q=D$xn1=f}uI%;S48-tfj%F;zeFFEIQM@A({xohM!pYch3PesoTsE@D*2f_;qv3 ze!@?}J(I8(ao6*^IR26Nuf+WWHwNf74c!~li?By=C*ppAyC2@Q$G;4JlOdEhl=<2q z=9a)z^t|K*bcgU$ft5g)v#0}UbjM8&{vNmsfX4V=CtP>h9KzKdel-Y_9dq64xgS^e zdz=WI2k7>Udw@M>B2SdNB`!enX+_8l1 zBYrOKg@lzO?0DR7`Mrhk82$(G>vkyJg0dA?_m!SWm~Lp9jysUBL%8j6-@(;gW4br2 zAO5$9md@CCT$5>|n*zPOdh{|tEc z3yCBWk?(Ie7lkWM%I^(E{h{67J$@E=E>JYY>b%BHO4-I+V%{tgVq-=in*I6yJV z*G&>n11$-!Lf9q12f%5>bp}QQx*@F+@soie#BBv?5`HD&9|OAir3qm-0Q&&lmQl6` zb9~@$V9&9%Tioq{?iTri^gRiC0N8+EH%(j$yhA?S=XL?sFvV{!hB_e%h7(6zECVJV5uPY$ROw%8dthQf3M2 z@F)J7xVrU5w>s%w%il?N8sX~!-F31OunB*G@Y;mU1U>^cb!My}Y(6jx|2|+C{+6Vl zM|$09a~ffzaGwTh<6j58uab8e{t~2}3XI49F3<~q3uq}r{u!kI5a>vFPuxdJiZ*p0Fmn^~f(KL3@)J5Pk5a0<-jt+k0sC3#N`vd4(LbtX@u_sWSqMt zpnH=GTfj>|w?gZ7KHc#618JuamP?rK5_=cWt*J56=McUWXhWRtRMf3MZ;)O$()|Kl z%x~SMf(0RK^f>ec{+ekD$~Z+%1D znZ#`-ycXf}fz`wvPux!8suQPsk3Irw5q=$Eqj7Z~fQtBezoqTp8|bt(aEhqGs4ya7XderMt6A~LwphWrV{@ndOMxCew5h* zI0r~4&H2D$(hVlfUf^`n=$4f`fd{~|l6c(9+Ew z_@4pJ#jl(3bi3C_fbQ|rCd?awI{1G9=MwTyhK43UKl11{(i_Pa!@V2mihm|?y2qym z`PKm^lJ`@>N8^vWg9p;qF?ZQRtNe4%2>&Japgm#F z0tv!;1AhX#2RD;GSa*MZO`5vIp9ky*+7dSdc!}@?zk33&1G+zH2yj1nHW2qHVY-R& zHry4s3((hlfm?~ch4_02-$3|fxbtwoyoj-#I_Zw4x?8%$|yy=>b-DfP>@l5=f z>X+a2^^ep4EMN5Lr7PnX@0q^k@0aEe_~^6shqm|6_~wQ32kLw>X3O^vZavWH$<2S{ z9vD*p@}D<6@a4%1`yMJP`n$=?MMcLHeOYv{=$Rs(tq12#-E+ksTMrf$P5b%jq8~pd zV%ql)U%I5-)X9IXnqTy6+oA?1A6oMF_Z=4$EoyS;^KYKq^xm|aem*d5(~dujmLGHJ zfl<|Z4H?#M=hXeD*Z$+xvG?Ep`&B>pK4;&@)nBSqq0ff+Q(vBTQm31)eyIB8MfDy^ z9BQ)g%} z%MJEW-FABU%iAvAJMWVrz5aap)xkf_>(stU zu|pMK`Qo-uyM5Ak+wV^gnOF4sw?&DUFIhL_yH4W|wtcne<)uA)?i%0nvWoj3xwfd& zq}iWW{;H_xr$4f?my9WT=FpN_MZJFhduab56NZld?S^Sfrp=%B^YefIacJvbWB+<> z&+k?L8uZbRiw{+8`t`9t4m-5#A>4( z9IALjQR_c`8nyZEJV`hCjq|?Md&O5ZH$^N0Q96Dk0(&ZO9-nsZcca_nt!ck>bj|d{qziw_ zy{*lim+kzi+N!qmGw-bVWqeN68lTSXes1=_-+sy;-K)-db9y$e_xHP3w$1o{d7C>2 z6&$F0b?Yjpm3;2yd3Rp%&4u?4oq5ONyT^~M@_13=qN!6RptCCh_sO6$kuQhQ-?FXz zocw%tbz<_@JkuGvt+?wC{GUS#J&x6RI$3FZ{MWtI^n5VTDd&SJo{7(WNX0Azpi#Nc zKQR*C*^B(&a+1oYCSEQ7I|Oxx5!30*&EJ0`qYV@P7atCX{x=B7h%cp@hou=xcjx5L zenGe{yUoFc~b1CNKlcQtu?o-IF z@k;EoZWAc8jn$;T+r)f)USiI1(q?9O&Cd(;)0E`58c<&rdW2S9l$T zMeASd^5ugc=Y%*s=kj?o#ebq z(}mh3I9&fr3R&rZxz=ct^Qz9}JpIx8R9O5Dk1p-wQoJ6~SPoDmnAfH}8KAYOe zIMTbF!|^}v$y?t_)K~bprL~e`7X3^cYF8XNCO92YiE|Mx3A-r;JtaJP^ldtHM_}DLrHa~wFsagWJMCi5N)5CB-<<(o?1H$6VdOEa%dZ*G|S(*=vD}de_ zDP&O$SuBj8_iV#+{_`Hc&#jKuRAx-8MtvWRplN9Y?sLHztgFw*I5@>g?O_PU`*M&G zG4(BaKM#xVYIylfq6_>`yfohZ-!ZPn|VYs)OI(3d+LJj;jtjefwR_)y0)u#W=q6O!f5m9}tz5|8f zD`WI&RGRjagvHC!q|4YJuebWr1 z>jba=*P2RLd>6x~c?qrehQ+Vw%0tX+EJnJHdFLh8BkRt*k*Q_>&EPzKm#dEDspGIOg%^mo^g7 zNUgQEV7WeB+YIlroO?+VtlyEjo@yxVDzKVxnpS&{f_QxTn|t(Yf3f2AxMk>n>8x~T z?Ak3U=-BGfp>_5kexJ^Do(x}4A){lE(c~1o%Yk?Lt{R3n*T`k1v3^k8qgk|T9xu9G z>TNKHk5%D=YaX{HCoz7U5sveCPhYhL8dl~OQ&-m4Qt(n{k`j!?T008Pr}R!Inp~>X z-V3c#EC7Y||C-n6dq-ILk9xekIR(FRsqIH8Xn)e9{Uz`VxBnc`w>UgvO)o{=WYkr4 z(|7AI+Ddut2+}+Yb;Drf;I}@f1AO>F_E8+5 zc_)m#>zi+UVfi01{C+y2{gJ_Vzt3uC_|?+vdkn_AWv~uz;@$5UVewCRJV~cfrs9eA z;DqHp&eJ9B0SSxOXrXs~-My^$S9kO<>@fck%!7R=`X$?FO;vu^0W|YNLFpY-1HK>t zEY#Ci@U;tQWxbI?PGymk_Lv6g@p&byaB8>u78H#4d9~5-BFi}|LiakP(19-KfX?Fj zZB{r{t^>8jDYF!Gw*vHyIIQe7Uc1sB)?mC(yG+lC_VE$4>04AVuV1gnO}*Z@P7h+zFc)EkphS6{e6h+6rN>dm*sSz4As$p{QlNm!E4AphSBlblO4t*T?LS^R@vI~ z5Ej4MlYhpY;eBIybVp|h!}8XkovWqyh@h<|e9^bpu>6mCeb@YmHX-{1!MuKZvduZ* z0&7wVz3hfwo}5INKR*ypwOZs{cr`muh!nV6*iiV z$ST9ue(bQa)4X~;m7=ZmL{{2E6PEW;uU^{w78bwC(?jj~4vUX_WnYnkr)lu?Uh0h+ zoA#-?<@4v@Ca85bR_L^1l+G_1yw!@4-gU~FFGhN=txYdb02W;UbL87fb2Im9!?&V# z*60*GuL~ZX#Zen~dpWnQt8Dkq9$5~}#oA6gO1QAG?5>q|Gw6kd!BePib{|ir%(G zQA0woFi5}Oj?3G$mpzO>-MzN(Rtni1hir5%DlBhZuZ`_*!X~pXa>Y(g8RkJGE+T$3Of2F4G>KOU9vUY(# zte=!TWM?9n*OiIt@6xTk=wb1)-=%(5=iwEvCn!(b$a5SQtfVemd)mTq7x#4O^@zOM zFB_Kkeos$IT@_xgzNZ~b!OP>}<=d3$*GF~o=fpCZUWxuewmHJeE#~n{=MKZ-Ya3ax zM=YsMe!md|_v{qBwhga4avQR%CvHm;b?&2?iOoDBjlM$r9K*_g#PGDEIp?dkE?KE; z;gTMx=gFiFrO>rp{DszU>Dp5qhU-4V<19zEAj9Hyt%-DA_7N1XC#V~&2J`pCn$oAc zGE!XdIRQE7>}DA5S{@(of>&WWE%`2wh?8B%AYQ+%G^TGTL(i*oh{1T5ZoP}Sb<+Or zu=smDz0-Nqu=tuD-32M?d?Iz$-q5hTYmDr6CVIoqusUnaQ)h+3^7i(|hm8?D*-f3p z@JfcKQ>NZS{dR!YJhH{73*Q{ZDP3`+eS2Z$clC10Hk#kZ`MO6I!gA?LJMe!8V}CQ4 z#!aWyo~n%5u8l{X_5xR-nUy4q{!emnNvVpcwX>^D!LnXgxPkEJ-qs8yuQ3LkVhV%z5Ze4rWt*+t#T2# z&!^6*bWvw(!|--9?e-C?aYTJ8N0iwe9SAG44LqtAk*`HWc{(>0M(a{fwlyR0E=nQO zKFIXC6uf=N8w&~|@a|lFG)=zT5~dwBv}A)KjAmV@Dt&1bfxCYM4^K}Kr#4U+fm1fH zg7odl)Kz%>M{g8*+?^BUtRWFJ={#tVCSN|kdGD68zZQ)5 z>l^cEzAl2U$w@L$UY{KTbtI&W+$nmn0ecv=uip?r5DKkym#Q99=JWPq8j;)}L(J1>=2w%AR&U^LW`& z2*&$mck$Yb&I*Uc|77Hq!>4W3|LzfP_V^H#N z!FXRD3v74oWhT0yc>nR&1xg^VQUuEGU|9ZiZ$6~6kYVvFJ-*jPU&8u?d~n+X-8j({ zeEOo_vbh+<>&wLQcrN>x!FiVY3}HFOaK8<0YhU_`2)^AC(FSC{DTrG<5pM1FO_()Z z_pEr3KA*4iJ-+H5jbOY_f12T26>EM(`CljLg7WIo?i<-53F7t3?QGgthTR^%Nf(pf zwPWOs(LNpCUmf&uZ3J(=_jJk>%74C2xV!a`TjOvV?l&^ea+XHa?WYuS>v&jhzo&1G zplwEqwp!81rj@Y^5XPT7ja;&v8Uw?1t{*ygz^k{fk3MfZc-+)E*)ZH0o~}P1LHB3g zIOF5?d8;eMi!+sF}l7r1AMN$ltIX}ZrVQ??AkXqsp0+bXd=LKd=7cC?{#ElD(X;vO9Tw{Ra_w%Ts6N^&kKHn9jZA(Z+O^I}GuLpCz{-z#P4C;_iUz~Df6W5osn@{Vu`i`XAsSEkzJ;CFdpU*G9 zz0rMEawB-wlDs~CP?`Qh{bf6oS1SsfAxV$`(ZlMNFg)L$D2gcioo?av&Zf-L z)H{qPqDMBf_4VBEC*_J)b&*s(zL_H2YyJJ%D zqYfM>p#HLgUpv4L**^&4^Yw9s*G>*Z@&nmK(u>W5koGU$+T0FQ16Q`f!^+QxTFF=T zZ8Q%0eW~Ojo!^YSiZiqE=Qpy=9i|7hsdruKtuMN@0`)#ELQbC~$w?Zec2L&HDHl1l zw5t9~y>-Wx==R&8_M8bv8&6J>Mg#Etj^2mW|8}oGxH3h18$f%j0S)>#>Fd7M|D^l1 zptKHk*15}?UY*@N+t@2Y9)24aZQ`r=X`9=lB$N79DR?fL{O9O4fX$L5-ubf8yry0f zUwqnhCPM8`wl2czyWG>a5fQk{{R>^|s9RV+p}pA4Q?&bzUc1+QWI=i9ySL=k+Hkil zk}3c?T9u(eW%zRSd1Qk}ceI7+U`^zq+rRW3zeYd@Wm7cB3-M89x>vTgGB)Xh@qXK^ z2Bre*m-Ld|!|R(34&Afn%ULw~I^4>uk80ByOaAHsKFLOESY2A0y11uKWCtpY*4w;xv^+&SI-PcO?7#3qc3;DA zmp1(Y-}|9Y@&4oU(Vu7QZoe?Ss7`%rQr|k%H$PC{*CY5kD;qTzJA>Ch?1rz-5Y;x6B@~LMv>Q~$7e^b6rwE=yd@AEs;Wz#ndPp&859Vv8YAi6V*I!ibG$GwkU zV}*J=#LgvllY+30F=t+Nzb@21Pv zau^Mr4^znU3}h)AG{Lg`{Pc>+-iF~Sf^6}>=Im$(?FZ~D}`}XmB2od&bfD#ZNuiK;4<)aV3dco1z|~ybATuT71PoJ-$zB zZ@wNhHoR+UJ&k?`>*>=`Kv}US;XGYzbTrGkJB5y^rs7khh@)1|x!+3CLJFg>e?d@3WKYRIQTKtASP zNN94~ll#APMYp=9dHr#Xi1K7VF08I+8$M+@J0kg=7mSvtL#yR(Q%j2Ro>@P z^k2W4?@uKY8zN}Y{Z0Pd!)?p%m&zPy$cBaMFWI!i)ZNhr+r=+qsg!lUPi-suFSYcoc7$%OH~JiM=n4p#+_ z_L}>BrED37(KXDY`Y#Q$ml3` zF)7oRn{XtLqq~!MrF!X6dwM-0u62{}au=DlGb$#VltH?Dz0NXv*UH>s6O8xuw!WuN zx`QK(S6Uq}53ef2t15em>S3%hnLn_5R+0;wor|yncZR;QAXD#ceNPg8ab|=H= zPME$e%a%>xu=t-ndFZaCAf0aCpf*^G@4wQaTE^CM7>+rfj_PjWFy6SQOq#+K+2T5) zM}=M=Bf0AFb-?|8;@Te#EAK2*UiFyn8VZZA=gCTUCi-=9@w>^gYka;A3fbjK#$`6$Cr~o=aoI>u>1?X@k+Mu{rr9# zkbW0W0(_E<^DsJR8-2=h?u?)# z=U;fBJ4M29A7f;Io$Cl)I4P+e`0K`QJ7{X%6+xHoFbU&9DR@vC9+Za%d`D}Daa zCfxOwx`*4ua{E&BA&lqQ@Lcz|h1IjRk>xwaHgH({P{ZS{PNje0qwduX%iq!CW7@cI z+B7cc9)hsE>820F=4b>Tbq`D!A9LVbE_^HpAF~5|yapag2mQxCSFdj}*_5Y~V!97D ztpBNVnAcg>H`F(X$6rHBSWOs9s`G!ob!~(^WN$yL&et1$H;UK(7k)2Ao?)`q``HgE zWYNKs#f=ek={|U!ukrf|xxA{to3e1HDf1HPq{f676Xz%Czn@3nRGKjEGyzwTM!&CA z{!$V8Fv`R0_Zfb_SKIKvk#&DW-DPh+jIRs4K5cG9-OasSA$2cFjdP&6q^CzsNmC($ z{=eaWu-<+>q%UnEcv2$?r_V3VGi7%^tX{RezIaj!p4IYrc2`8bb!S8v?(2*$a$f>8 zi*}zLxtgbzfG^qbMe>yW@h}``8XQ?py`;MNJW>1a62X%v*0^{{W*%S1w0@!0k{$mN ze?<~sRIbJ_S-&L8T2KCij(A>OIMS zbh=khp6P*P8KW6}R|9kBK#;GZ&!xX4{4Z&}m_)zNSB=55lIrf~t>Ni}?)(el_IcCZ z^b;Me_abngLjBe6Dvx9$Zi=79sd;hgkYV&f-%RvXx23f%f|tuu=+1o8W^H4KJ)BPW zU9n>XpLNGcSl(-mULJ5hN~+@#`8Tkhh@e?_)CBSRyp7XV)n4a$yoV*`ak-;+F3tY( ztglj*TWHlvl8cYKn2}3WYhenxRyQ(eWIYu@_b}uZq}!KyG3e4hq3WjQ8u6X6l_`>%N$< z_&ZHMQ91EPM7=+csCRY*&0j_2yEX;C5{6$fbN_jeUcbJ1UVXodzo2rD!)*jUE+Pi>OR(jM{&q>k|Uyf-;N8CHc!sm%sWT|i+x9^}dJn27r7-ng*5 zS9^JXO~L2NhR?OE%@K4}i>Qz8j1A+Z>;%fjg{)kNm%2YNjK0S`{W&h8ZmlDDeK1A6 zDtYxfDFUzVfeoW+qoJv{t^1~f@zPthnTiH?GpiAN3C8_!!X=e zdAc|>fd$uW*Dy?Gdh)JpB6#)$4Pj78Hpy{B^HMF3{M6lBKSNqA}$Xm zgz-V+_xVgV*;=jNs2X5%ts^o?&>e^klNnlc%pARNg#kaG+6A-Tl6$tf_mU zby|u#edX!k9_kd7jbDb^#uM;Odno;|60A(9UFj5tT88eq(LQ3`rXySHvIy3m7~Sz0 zR-Ze(K4eS;FQ!KD@XH8VTPN{BG>g_Uh7V2iXGP#0o`OeTdOUJ4=B|FgfBdy&*Ctv6 z_GPy*_t=KjdA+9_QzGh|4t}k<_;~$tT&R@MxoFIi64BwqMB zQQGjLs`VmrRen7#pL_|s`xtMD;MG+T_0WBUVRQ}j^mt+lKJWGTtUH0j@~`uFxG;jQ zr4eyAM$oK#>%+=yYx)K5985v;7aq-t@u}O-iU^ukM#P=eBDbM z#)I1okIsxu^knPjNnStHozP+Vry1GqOw@!YT|FCtw|M37{xaRnt961+GqgPF(-dfCy&8e*t%x|? zBOFHKtwxq(<0mE6&)3WHe1&*F0`GIkL3s5@R_>qHF5GqRzDam}c}n*_j=$=v{r&hF=WL}7d63mKa%k!^Dx(cjAN&Gk> z--hPS`efYdW2YMVotyq$1l{kX;MX3*uX_^C+9-aNG52|gm3^}(W8K#s7XOIHm;Dj6 zbxq=#-yGg-y4HAfWhLQ0!tXlPU(lSHczvjP3*JE! ziA1r4?hF^t-?KIk*VkNbUQTpQ=r(Bi``CkHx;ztrNwWHKO3Jp;{PG;J>aV< z*0u3jC414k^b&f9BoKN_g+LlRg(9#Mk^q5(KoXjQ3MvYUy;m&Qdv73!9{Umd5es&% zU_}wT-}B7O+Ix0L&bjyg|KIP+o7rpDGrhg@&O5W#Qm)zFMvvb!r|X;IG;5=^**eSO zmzx;l({=(rT|wLTA|XTBs+@$y$`SHTggxz)nzY<02X z?E7ZucJd zUiW_Y0rx?dUqxU}Ztz|$Re4YM)_G4)Qub@@E1jnoC?7`xXG2(S1;1Z_z62cv{TJwY z>v`)1(3{Si&R}=2%dey}&OR2;bntvcjN8mjbSJu#K$9h1n5t56oYfA$K2QG@)=8Pl zcD0kD^L2qYWD&Ij_@2Et&kK2Hdx<)47uri5J|D)`_|snLbf2!mp6qnjv0U!(+;=~? zKjb{*JPdjS^eE^t(Bq(H$X9bv3s6f?D^P3Dco1vu8d-POyZ>}wbN9KgyKlH}x(EBJ zbjsyd5t;98-Z}jhcAtE!EBnv`-b3Ca9>1T?yx%K!3Co`4@S8cz?_PV8!*}h{ez$k8 zmp)b5`#EPh=`&PZu%RC?^m~C10tW)FmtL$~I(oyk|Gv&lfb8eLxCd! z%Nyto^2Q`8-_;hs49|Ryx5wltTdg|=q1Zd$4SW_j9QZL{d)8!?ha2r`hu;}zh)Vm% zg(?rjy?8IvEBAgZRef`s7xYf{K7itj{^nUbvXyP0a~>)@0PI@P)&9($>OAlCaQXdq zmbJqA*y4E_y2rRElH15_?2dEKTcq6Qc;|Y2&pUfrQ>&@f4AdOd0@Mc77Ss-O0_bwx z53aT^cZzh2U*%*Vb*6NInB!(FQF&VCjUT5<+s;n1Kd^T?C%F9TI&(hX9?0=*a5A9x=v@?qeoz|p|Zfn%UwK)(n62>clcfOjR5o*=O5dIBD+f?uRbdyiBW|v);K4{EDT2 zPkuq3=sN3k`+nUk?y|3Nu0o%oj{^a&?dih}+!H8Stk7aF6FrV-HB#qkN%|daQCGq| zJAo~My8{K_vBZB5@LQ%V+xNn?x>@@y>h*%S|1svyz*m7E(2H%)@mw#)YvwigT6itJ zR$gnbjn~EN>UHzFdp*2Zucw#pP4%XE8Qyen2Kr}~m+j@CmRZlNY1TDsoAu2aKhaz0 zm3XDzB5$#`1ig8wx6G^XD!t{X+ZEnQuNu7XB=qa`-Uja!?^N$J@bOKO&i1x=TfKA8 zKeu`3c^+z>rMTVlFt%8_5%wHsuH&JmiLbEv_DR}4vU$FM<8!o|;Z6t5kW}D4Q>1FE zjn~n82)(v5{9Gq)6gT0k;dh8T#a-YU_lf((1L869ICjRK1P^&y>=t{(bK)Q3CGoO& zMZ79Lvmer9@I>n&J<2N43wVNr={Iq&)!ewR#kU!=ecrLpb$G&w_D0}(*J4c5Z>q;L zvTT!M&Mfyy_d7RdfO2_S^h6F>&RTIQMpjQ9XLqaTIHk>MY&WqJ?TPkUd!7A`{jQzh zjBws}Mz~F;sdN&YbDbs_OGrx04^#%8klgCCz~_N40{;d23Uml`81!}Eo4~h$?*iY0 zegGW-fBH#}ueM%0?*y;C*8#QG$?L2~+CXqT@;uUDZ-_V48|Dr75E0Q7thPnXb0t?`6)oU4=6-Qci5ew7&z$0= zpe-sqo^)Zq8*8Omh0dcGZ48-ZKdMLCDfVgLTVOnpv)%&l+ArQ0ABY3uWATajRLUuo zQNG4b>i6OYaYXzmei6Tl-^B0YFYz}bvnTC70+S#X-t6Z${%F9&m&H|?>N2!?8EvUDPy=v4|JKXKDo{@a{JL`LEmOb0P z+P=oV%f8!w%HC-=avD1wolefnPH(q5M}@xKxx=~BsV-J2boThP7`2%3R~7-!)EK8>_vRF3xn?7b~p2 z_cz8iNB!;SqrY2u&I@DIY7i@y(?$! zpRA+Se0za?gMFiYzx{x{$9~5C)BekD?zC{aIo+LCoxbi)J%ifbX2ig_DScD&rWTUv zwh7!H*j%j2-vu19pSM}}&8-;Emv~ir?5wrdPF1-X7? zT8F35$Un!pS#CBcN776;2+EUG=+1KAMLV&^UU9ag$Iw=3ZO5iHZ5LQubYI$_d9RhK=gC=CDnd5`zS%n4`r0mcE_beQu5_+)QjwoNzz;YF zoXR#XqVk3!md-#y@d<{oqpyQ!rr{mGC! zs=cAQ4wibObT92;jnd`VZ1q4nSfcILe-$fRtjALy#3ooj=z5KJ&T)P~%TRLvB5)A% z+oBwequPRUTV8s`+v1-3dwjwWA^SV{uShTnc*E=DL{Am?9V|6d8v27i1rDKDOF@`rC8-0DFCg@l+FI*&TC>Zrxj~N1PT|jqP*K*S+Co z=X^*LY~AgF-GQ6E>3Reo4&>=NJfzSSddvGuJk{rS$fy4Q1M$Q9u+ zJ=Yaj{DK;D_OgAp!#6lFKfl_?vXrgdy&bJU?Bl=#0~N=64>L?ZRyHEV#j|;3;o{r@W6rK}W!0j#+jW_GH3dg&<+O9!WB%&`&KB$Rb^1GlouN)VB*)RtI49ZJ?R0ecr6|_J9o}Tr zBYV`P)}4+64aaltZQ$d%4E(2W-x&m~yls2!iuLWHPxpF&3W@{8gAza^KzWk#9a4d$Lg;4;omrA*JES?1=0aC6*EvzrJcl%2 z(gKH6A*s?KEtgc~kXA~nc1SgnY8}#QNoyR^T1o35bFFhumb4zao%PNJNvAlZ(`?vT!uv>7_Z&Co-V&X%;*A)O=XT&&~Ib+$>mTuM%qohUtB<-7!X8T2aXHPAlL z>mcfd-v+${dKdH_Xg}zEP%pQa+Z)su)E_heG!R5R@=(w)&~Q*ZC;>DA)GyF4FcdTz zGzpXjdNA-1r0qunj|ScWy$gCzYU=hwQ%7ChhtQxN2z(6s6!aPBbE$jyBJic8gOH{U z8X5@dAgG0)9^yM_AgF`*5&AxA{31HPUjwAyB>f@ve}4x424M+AMoz{84Hk7+F&_UK zftrAtf|^UM7WG=xY_)=Jt2MM+ZLnUUj)Phb>N%+Cpsu4MRxzER@8}He7xiD%fKdn5 z16r_H=)rnI<4B!jAFnT{KWG5R*Dwr`IuU9`s23UT#Yu{XPB$JJ66#1sdZR$2LDV@Y zt;6`R-eD5-kCVK~l6?I`s+a1efzqWWVk&fS)WT5@M@<}can#0TL#sl)%1kd0ln-i1 zGdEvqLl<~OpkmNMsjDl2u8!I|>g%Ynqt1?6yJgVYQEx}h9d&oq-cf&79oA>8@z!{2 zLF=SW?btAs1tH ze+g)>mNPH5_Ks6B%0TZL!7;Ww!$UA}8?a~@u( zB)}nP8@2>nAp>Q8xKzcO=3O^U*^-^bkcYYcz1h0i+5x%+bSvmK(CwhbdhJtWFV@oW zwSgA{cX}&yUS^|AEA*=NG;dBn74NlTj+UOk4)oHi@+HtH_tGUi-Rd<-2rOE}1&{za zXK=ot7K8Hy*QuNzI5%)!pk{;f!5+whoCi1ukpGkSlkbz~Q$x5Pvf&5VA2{k1xR1Nv zxV<3tBSZhc?$z`vQYCEcwL=M5;}>AP*A8n4t_z-Yo^p0N_d*t@%S>y&^O#;gon}1- z`JU(}fo9%g#VVHW-eY<-w9eb8S3m3Qjd}%jyS>)gs8?No1(s_0|A<(s*9@g@jh5e& zY@XTbir8BP?u8zZ`!=6R9Vqpm)Ojk6r@z1OOF(G|6QIc)1O4_Uuck!hDAAjzS7moW zuKf!dvUz&7afQ`aOU}1=EwDmid0!Td?0HTHo!^`68i!}$DP2Ds(_yi)E$}*EF+psz z_c3}P>tHH$;xFpHa-(<=wMXwjRO`+f~>-tJMAL zo4{&4R=V1JKN;f@n8ElCI@Si- zJwxuziYI`xx`ZEUqvc(Tki&F+ZdWVY1C)N*?EvnZkVEK`*C}NvsI7rE!M@F zca+-eu_|ZkUx@Wu8#WtKb{baGL?>Bkx_xi39&nntSGcdZ!_X3Rd&e18q-;$*9;+nw zH(zrpTX!*Je4%^HI!EZX?dg3rUir+okMvdA&I(Z}R)`Jaba4iF<~DJj_|-Y0+u<+q zzV@GIzmHmEo0q$_?kVogy8aege7>6a7_5*AoNZ`f=HwM?+f-#6>|8cO+0Jn;L;JLZ z>kj7==Tm5XzHq*T-scGp%^bK@X!#2Ijv!%sr0g9n~J6WMhh}+_mm{&^hQ!S3tXQJ@(}8fF|i-_Yr84 zz6J-6fv=kbHwT^#-0t1(@oS%qyM=XBbN3yA=K}Y5AL;sCjv?2CK z>8k#FK-RktXh*pBm1`TWYq+N2dWLHmu4ATPk8~7P;A61{ACG#-!byQI-1~Izn(ExA z=Z{U^mAapNDHiI{xmzr(Q0ZUj@m=xEe-A6xO0?%guFco}KNb19U(Lb_E??)fqn(d> zVU7LhW8eM&E9w@|*LSh{Va@pqYMtfJ^B&Z; zT<@CxD&G6B=C|$H&NaFv)_P?awdfK;?dNhAiX7PAfBIeSIdNCl-`AyN7QOq#on9q( zsl6ud+DtKaY1EF)zuR@8^l`r2QBwOYH+b2acdc}?(YsiO>|3gjXY1bg6nNgV4!=Ff z(zdf=2P)euqK%%zR$9O7c8`T@e?3}=z4keg2`;w;b;r9;p@4YSTB0?hv#pg=R8M)- zKH1?ncWwB2%iikD)jcm@^+rD+Isz*Io~oq1J=PQ_fFm)+gOHZncqc4XcNqxF4xqHL4BX#p!GjhGiwIbJvTqAOQ z$h9HI)6Y(!`-JXL);DJY`HhPl%OU37N`vg~KP9h)uM*RhP(WZEZzo3s9phyZri-mp&6a?91$N#NG);6j}d^*_|6@Lzc$H$7m8jdk)=ONbu(P~_=&MZoC{}EL2fBLS z>-p?9>oKPl&Pu)E`p@*9>TYs3gSNTv>GDsr-kYN0dCI;~bFsP5Kb^Bsjnsj1|2Z9N zmrL}hnrm&)Jb8zeu3M>t%_oL9UM50kH^&(cob}imJI2HH-2PQy%ygB~ddJf3*v+y~ z`vLgmd8S9?Nv6jge%Xoj+r>I`qH;~cI{4kdAh~yZ2s{qmMEL97uO)x`MxI+yCs%$6 z_-jyq&FQZ#{q-XEpVbcZ#PIsgKUv|g%lvhizrOOW71snD zEAKh+?vI*71iTOQ=!k>HVF!9kSA@)jcAA!9^*J9m9U_#PDgtBsa-T2Bm<~KSQ}?J-+(o+27D4O12%MDs^9qZzA?HIi zBbMRR&Gn!s!K5{p(ZpWh^wd1G#`^=MVcPS( zdoV@P*35cT_aU4XNLBsbg&y*>B4uw0d8rSi4f_39^wFU#>u;2&88B+%6CitXJX1r! znG>rBbj1K&WjJ+Z3=8yG-m`B}qZW|-^Zk)q?15-)hV{=F7Xl67$+~t=)gP97feiQe z-(n8a0>=VDMlx{nXuRbPBm~!qzJJyg&a{DW0>HpIqOej0VTLtuavba@f`quoz!@L+ z41dAzbq4N9{Fpd~E7vQ2x{W0Mv-la;^9{VQ#E*)jxNahj1W~S)O(o8KDV**z@a7Wd zo)u&f1LrD*C-lC@Z<&F&miTw#J6vZG$CdTgM&jS%{S!h^QuWhif8;Lj*ZAf7$;aDE z{IEETD^DQ!ct?pJ5{GadVZ`4_;$MlcaBYN{knPb{*nDL?xYx7Tw-aJ{RyaRJ#9QLa z39sXNQ&7EEwT-Y(>mu>z#q+qn1iUS-z&Eo0v=lFbFkc#YH;Hq95al%R?h@yop%DLt z(dg%gcw6i`?#8uqo=UeP(v6ik_aO0|Y2Zv3_{N?R-zj$DI@`c|Nu2wYI8|xjy(P{) zO!Pw|UE(K*d&EPyo(uo2aqWh5`%3(N?1$ogI65BS8~aK8LGd82dyROAcMvz@93pst zjwcrJKv)ERD+rRCjtBV0ffDCFEKWWf@euEX53+B^wQ0V}PjAFCSmM`+Yj7O~ye+Q4 zH-bID|MejBXCofsUBvm~GF+$Yc={n8h(*9J0tvB3#{+!haEV_kF2!}85fAb1&?=mR z>m@p#fruww;+w^0T=(dBfNxBY_!hAR*N+T*gv7Ust+=Kd@e@zP8OPIbZC0Sli?2AI zhAABQVi3+u0cUxEZ^R@Hd?^Te6$1wg2fj@1>*pCbSS|1hkPwRve5}MPp*6vbYv2$o z;eR;@gxgadTe+@{8 z;RZfM;z(-ezG_j*9is=K?m`#2Z8Syc!tC`Kw|~1j)6~?_$g8f zI?upoNc>csrN!Kq9pM|qXW(U*MY!Gy{~W(*=s#d-z^8$Pct*zqd?SJaCqegS;OLUT zGC@KdGH|d=;8`HdZU#P6;@N`nwVkc%f$@XY!G8`2=kN?XPvW_P@nsk|h6w!61fhQ# zIJyk*pgiAwx`Cr9faig5KFPq5HQ@Om%$o)dEARr4`sOmn5%W1m;)R0o@msY%4gnPY zXUS8yy$t+BiO&{{kKd>C{m+y59Krbb9Yi0WFY&p8@oh5j1rk3|Fut1&JS6dXg7NX& zLVi3&5}z*^AHP%M`!*24ypnR?fbz|VmB+h4!g!l`c&i79~ z7?kI5g!sY0D<%H9_#D@d4V-*1h$odl!}T2lCm#&TGd*}Z%fMGi{1cua6jvGeN{N3g zKF0MN11BF0%5y@fHv_Mc_($R+T&oP6d@v|J1PL+Mz{v-L&}@Ey>tq98EpeVl5+csP z*GQaam7v)*@U;@>IVK_UQU89ut&_O=J|lIEK2ClY#5+JJk2ErH^1C2b742~S4ot=O zzd_=B-jRK?9n1+Z?O{5=K%$~_LkUDcO5hBS9X=cKnEJLcMlME(EzpB7>)Ut&!p3ZF zW6f`4mbUTb4I4SJ@nstu=Q3@4UChRp<7~+AHs0G{<9(ktG<7z1CT%esCJrVZCIMyy z%t)9-7{1SEG|U*7u`uIc#=}g2nFuopW-`nam?W5Fm=u^)m~@z_Fw}fGLET1v49F4$NGb6Jh4VEPx5Y6u~TnDS;^!2T#D-u08fH zV2WY3z}yG(0ZgL~(EGvUzzjvD^EzB#Kd{2hk< z7j6C%X1e?Kn2wRSPB84mO*f{~8JKTI!k(>-@7KTnJDh&}IR0y&lJ z`ea=ezGzlp}y5Trm~?};Hg?t_A-6jVsAJsI+t2w46(`5Z`*=QU-&2D zF*?KHKh>fBzHz|4Ob-Sc=oJ_F!%EIZCE73o`ExowrLR zPpAL)s11pl-u`1k&m2kE$!TWMW&$Pc5Jd@8{&V@wH^*_;X z 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%0D(6gCyK>?5sueXqnc&nY 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 BV|V}n literal 0 HcmV?d00001 diff --git a/snake_branches/3.40_jane/VCProj/bsr_trunk.opensdf b/snake_branches/3.40_jane/VCProj/bsr_trunk.opensdf new file mode 100644 index 0000000000000000000000000000000000000000..cdfe0d51c461f46c4d9794132cbb050a8794f64b GIT binary patch literal 30 bcmc~}FaknjAZB0)VsK?}VF+MwhKm6JIJg6E literal 0 HcmV?d00001 diff --git a/snake_branches/3.40_jane/VCProj/bsr_trunk.sdf b/snake_branches/3.40_jane/VCProj/bsr_trunk.sdf new file mode 100644 index 0000000000000000000000000000000000000000..d0f212388250d766b5c9646afaa53a140e43a28b GIT binary patch literal 1265664 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
^dOqI&yaw0BXb%vz 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 literal 0 HcmV?d00001 diff --git a/snake_branches/3.40_jane/VCProj/bsr_trunk.sln b/snake_branches/3.40_jane/VCProj/bsr_trunk.sln new file mode 100644 index 0000000..520f84d --- /dev/null +++ b/snake_branches/3.40_jane/VCProj/bsr_trunk.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C++ Express 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bsr_trunk", "bsr_trunk.vcxproj", "{9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.Build.0 = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.ActiveCfg = Release|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/snake_branches/3.40_jane/VCProj/bsr_trunk.sln.old b/snake_branches/3.40_jane/VCProj/bsr_trunk.sln.old new file mode 100644 index 0000000..2881d87 --- /dev/null +++ b/snake_branches/3.40_jane/VCProj/bsr_trunk.sln.old @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bsr_trunk", "bsr_trunk.vcproj", "{9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.Build.0 = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.ActiveCfg = Release|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/snake_branches/3.40_jane/VCProj/bsr_trunk.suo b/snake_branches/3.40_jane/VCProj/bsr_trunk.suo new file mode 100644 index 0000000000000000000000000000000000000000..853df153e3170cb1dd001542334ab77be4ad3cb0 GIT binary patch literal 84992 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 J{S0#p{6CVJEFJ&= literal 0 HcmV?d00001 diff --git a/snake_branches/3.40_jane/VCProj/bsr_trunk.suo.old b/snake_branches/3.40_jane/VCProj/bsr_trunk.suo.old new file mode 100644 index 0000000000000000000000000000000000000000..63c7d4933d79ca0accc71ed0f4a53a79cefc3493 GIT binary patch literal 45056 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 literal 0 HcmV?d00001 diff --git a/snake_branches/3.40_jane/VCProj/bsr_trunk.vcproj b/snake_branches/3.40_jane/VCProj/bsr_trunk.vcproj new file mode 100644 index 0000000..1a6531b --- /dev/null +++ b/snake_branches/3.40_jane/VCProj/bsr_trunk.vcproj @@ -0,0 +1,594 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/snake_branches/3.40_jane/VCProj/bsr_trunk.vcproj.NCL.N2232.user b/snake_branches/3.40_jane/VCProj/bsr_trunk.vcproj.NCL.N2232.user new file mode 100644 index 0000000..257e4e7 --- /dev/null +++ b/snake_branches/3.40_jane/VCProj/bsr_trunk.vcproj.NCL.N2232.user @@ -0,0 +1,65 @@ + + + + + + + + + + + diff --git a/snake_branches/3.40_jane/VCProj/bsr_trunk.vcxproj b/snake_branches/3.40_jane/VCProj/bsr_trunk.vcxproj new file mode 100644 index 0000000..a4fc5a6 --- /dev/null +++ b/snake_branches/3.40_jane/VCProj/bsr_trunk.vcxproj @@ -0,0 +1,162 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2} + bsr_trunk + arr_trunk + + + + Application + MultiByte + true + + + Application + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + nmake -f yav_mcu_bsr.mak + + + + $(NMakePreprocessorDefinitions) + $(NMakeIncludeSearchPath) + $(NMakeForcedIncludes) + $(NMakeAssemblySearchPath) + $(NMakeForcedUsingAssemblies) + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r;$(IncludePath) + + + + MaxSpeed + true + MultiThreadedDLL + true + Level3 + ProgramDatabase + + + true + true + true + MachineX86 + + + + + _MBCS;%(PreprocessorDefinitions); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/snake_branches/3.40_jane/VCProj/bsr_trunk.vcxproj.filters b/snake_branches/3.40_jane/VCProj/bsr_trunk.vcxproj.filters new file mode 100644 index 0000000..d168232 --- /dev/null +++ b/snake_branches/3.40_jane/VCProj/bsr_trunk.vcxproj.filters @@ -0,0 +1,258 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + {4e2142a2-478d-4e47-ab3f-7ae7d1e531bd} + + + {3bd01c87-17d0-4cf4-93a8-fb6bde3060a4} + + + + + + ソース ファイル\renge + + + ソース ファイル\renge + + + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル\renge + + + ヘッダー ファイル\sim + + + ヘッダー ファイル\sim + + + ソース ファイル + + + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ソース ファイル\renge + + + ソース ファイル\renge + + + ソース ファイル\renge + + + ソース ファイル\renge + + + ヘッダー ファイル\sim + + + ヘッダー ファイル\sim + + + \ No newline at end of file diff --git a/snake_branches/3.40_jane/VCProj/bsr_trunk.vcxproj.user b/snake_branches/3.40_jane/VCProj/bsr_trunk.vcxproj.user new file mode 100644 index 0000000..695b5c7 --- /dev/null +++ b/snake_branches/3.40_jane/VCProj/bsr_trunk.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/snake_branches/3.40_jane/WDT.c b/snake_branches/3.40_jane/WDT.c new file mode 100644 index 0000000..ed3daf3 --- /dev/null +++ b/snake_branches/3.40_jane/WDT.c @@ -0,0 +1,12 @@ +/* ======================================================== + wdt + + $Id$ + ======================================================== */ +#include "incs_loader.h" + +/* + + gAwb_Ƀ}N̂݁B + +*/ diff --git a/snake_branches/3.40_jane/WDT.h b/snake_branches/3.40_jane/WDT.h new file mode 100644 index 0000000..2e28e9d --- /dev/null +++ b/snake_branches/3.40_jane/WDT.h @@ -0,0 +1,20 @@ +#ifndef _WDT_ +#define _WDT_ + + + +//========================================================= +#define WDT_RESTART_MAGIC 0xAC + + + +//========================================================= +// EHb`hbO^C}̃X^[g +// void WDT_Restart( void ); +#define WDT_Restart() WDTE = WDT_RESTART_MAGIC + +// KlȊOƗOŃZbg +#define mcu_wdt_reset WDTE = 0x0 + + +#endif diff --git a/snake_branches/3.40_jane/accero.c b/snake_branches/3.40_jane/accero.c new file mode 100644 index 0000000..aa584ec --- /dev/null +++ b/snake_branches/3.40_jane/accero.c @@ -0,0 +1,274 @@ +/* ======================================================== +@xZT֌W +Ef[^XVŃf[^zグ背WX^XVACPUɊ荞 +EtOĂΕJEg +ExZT荞݂^XNo^ĉBiI2C̋Ȃǂ̂Łj + + $Id: accero.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP +#pragma ROT +// rorb, rolb, rorw, rolw +#pragma MUL +#pragma BCD + +#endif + +#ifndef _WIN32 + +#pragma interrupt INTP23 intp23_ACC_ready RB3 // xZTAf[^ + +#endif + +#include "incs.h" +#include "accero.h" +#include "i2c_mcu.h" + + +#ifndef _WIN32 +#include +#endif +// ======================================================== +// WX^ +#define ACC_REG_WHOAMI 0x0F +#define ACC_REG_CTRL1 0x20 +#define ACC_REG_CTRL5 0x24 +#define ACC_REG_X 0x28 + +#define ACC_REG_FLG_BURST_ACCESS 0x80 + +// rbgʒu +#define ACC_bP_PM0 5 +#define ACC_bP_DR0 3 + +// rbgݒl +#define ACC_BITS_PM_PDN 0 +#define ACC_BITS_PM_NORM 1 +#define ACC_BITS_PM_LP0R5 2 +#define ACC_BITS_PM_LP1 3 +#define ACC_BITS_PM_LP2 4 +#define ACC_BITS_PM_LP5 5 +#define ACC_BITS_PM_LP10 6 + +#define ACC_BITS_DR_50Hz 0 +#define ACC_BITS_DR_100Hz 1 +#define ACC_BITS_DR_400Hz 2 +#define ACC_BITS_DR_1000Hz 3 + +#define ACC_BITS_ALL_AXIS_ON 7 + + +#define VREG_BITMASK_ACC_CONF_ACQ ( 1 << 0 ) +#define VREG_BITMASK_ACC_CONF_HOSU ( 1 << 1 ) + + + +// ======================================================== +#define ACC_RAW_DATA_SIZE 6 + + +// ======================================================== +static u8 acc_retry_count; // xZTǂݏoAG[ƂgCB񐔐 + + + +// ======================================================== +task_status tsk_soft_int( ); + + + +/********************************************//** +@E荞݂mFăf[^zグAWX^ɏo܂ + + E{ł΃R[obN֐o^Ă΂ƂȂ̂łA + I2CgpHƂlƎł͂܂łłȂ̂łB + + EvƂł + ***********************************************/ +task_status_immed tski_cbk_accero( ) +{ // i^jisro^܂ + u8 acc_dat_buff[ ACC_RAW_DATA_SIZE ]; + + // xZTf[^WX^ւ̔f + if( iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | ACC_REG_FLG_BURST_ACCESS ), ACC_RAW_DATA_SIZE, acc_dat_buff ) + != ERR_SUCCESS ) + { + // SLA NAK // + if( acc_retry_count < 4 ) + { + acc_retry_count ++; + // gC + return( TSKI_CONTINUE ); + } + else + { + // xZTُɂȂ̂Ŏ~߂ + vreg_stop_acc; + tski_acc_setup(); + vreg_set_acc_error; + return ( TSKI_FINISHED ); // ^XN̍폜͕Kv + } + } + else + { + // 펞pX // + DI_wt_chk(); + memcpy( &vreg_ctr[VREG_C_ACC_XL], acc_dat_buff, ACC_RAW_DATA_SIZE ); + EI(); + + acc_retry_count = 0; + // xXV荞 + if( is_acc_on && ( system_status.pwr_state == ON )) + { + set_irq( VREG_C_IRQ1, REG_BIT_ACC_DAT_RDY ); + // S~f[^̃Jǂ + if( ACC_VALID ) + { + u8 temp[ACC_RAW_DATA_SIZE]; + iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | ACC_REG_FLG_BURST_ACCESS ), ACC_RAW_DATA_SIZE, temp ); + } + } + if( (( system_status.pwr_state == ON )||( system_status.pwr_state == SLEEP )) + &&( is_pedo_on ) + ) + { + pedometer(); // v + } + } + return ( TSKI_FINISHED ); +} + + + + + +/********************************************//** +@xZT߃ANZX@[h + ***********************************************/ +task_status_immed tski_acc_read( ) +{ + vreg_ctr[VREG_C_ACC_W_BUF] = iic_mcu_read_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_R_ADRS] ); + set_irq( VREG_C_IRQ1, REG_BIT_ACC_ACK ); + return ( TSKI_FINISHED ); +} + + + +/********************************************//** +@xZT߃ANZX@Cg + ***********************************************/ +task_status_immed tski_acc_write( ) +{ + iic_mcu_write_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_W_ADRS], vreg_ctr[VREG_C_ACC_W_BUF] ); + set_irq( VREG_C_IRQ1, REG_BIT_ACC_ACK ); + return ( TSKI_FINISHED ); +} + + + +/********************************************//** +@xZT̐ݒ + ***********************************************/ +task_status_immed tski_acc_setup( ) +{ + + // x on/offݒ肷 + u8 str_send_buf[4]; + + str_send_buf[1] = 0x00; // ctrl2 HPF:normal, filterd, HPF for IRQ : dis/dis, HPF coeff:norm + + // sŝ߁ATSƂȊOiHႢjʂĐݒ + if( system_status.model == MODEL_TS_BOARD ) + { + str_send_buf[2] = bits8(0,0,0,0, 0,0,1,0); + } + else + { + str_send_buf[2] = bits8(0,0,0,1, 0,0,0,0); + } + str_send_buf[3] = 0x80; // ctrl3 block update:enable, MSB first, scale: +-2G(default), selftest: dis + + { + u8 acc_setting_sent = ( vreg_ctr[VREG_C_ACC_CONFIG] & ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ )); + + if( acc_setting_sent == 0 ) + { + // S~ + PMK23 = 1; + str_send_buf[0] = + ( ACC_BITS_PM_PDN << ACC_bP_PM0 | 0 << ACC_bP_DR0 | ACC_BITS_ALL_AXIS_ON ); + } + else + { + // on 100Hz 荞 + PMK23 = 0; + str_send_buf[0] = + ( ACC_BITS_PM_NORM << ACC_bP_PM0 + | ACC_BITS_DR_100Hz << ACC_bP_DR0 + | ACC_BITS_ALL_AXIS_ON ); + } + + // ݌AʐMłtOXV + if( iic_mcu_write( IIC_SLA_ACCEL, ( ACC_REG_CTRL1 | ACC_REG_FLG_BURST_ACCESS ), 4, str_send_buf ) == I2C_ERR_NOSLAVE ) + { + // ZTB^XN͍폜ȂĂ͂ȂȂB + vreg_set_acc_error; + return ( TSKI_FINISHED ); + // ܂ + } + // else + + // ZTݒ萬 pX + vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_ACCERO_ERR; + acc_retry_count = 0; + + // ÕS~L΃Jǂ + if( ACC_VALID ) + { + if( system_status.pwr_state == ON ) + { + u8 temp[ACC_RAW_DATA_SIZE]; + iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | ACC_REG_FLG_BURST_ACCESS ), 6, temp ); + } + } + + // ZTɏɂĂŒSoC܂Ă܂Ȃ + DI_wt_chk(); + if( acc_setting_sent != ( vreg_ctr[VREG_C_ACC_CONFIG] & ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ))) + { + // DIԂ̂܂܋A + return ( TSKI_CONTINUE ); // ƊԂčēxɂ // Ƃ悢H + } + } + + // DIԂ̂܂܋A + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + xZT荞 + + I2CgpȂ̂ŁAǂݏo^XN̓o^ŝ + ***********************************************/ +__interrupt void intp23_ACC_ready( ) +{ + EI(); + if( ( vreg_ctr[VREG_C_ACC_CONFIG] & ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ) ) != 0x00 ) + { + // xZT on + if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) ) + { +// if( ACC_VALID ) // mFsv + { + renge_task_immed_add( tski_cbk_accero ); + } + } + } +} diff --git a/snake_branches/3.40_jane/accero.h b/snake_branches/3.40_jane/accero.h new file mode 100644 index 0000000..fbf80d6 --- /dev/null +++ b/snake_branches/3.40_jane/accero.h @@ -0,0 +1,14 @@ +#ifndef _accero_ +#define _accero_ + + +#include "jhl_defs.h" +#include "pedometer.h" + + +/////////////////////////////////////////////////////////// +task_status_immed tski_cbk_accero( ); +task_status_immed tski_acc_setup( ); + + +#endif diff --git a/snake_branches/3.40_jane/adc.c b/snake_branches/3.40_jane/adc.c new file mode 100644 index 0000000..94920c7 --- /dev/null +++ b/snake_branches/3.40_jane/adc.c @@ -0,0 +1,475 @@ +/* ======================================================== + adc.c + + cJZ + nintendo + '09 Apr + $Id$ + ======================================================== */ +#include "incs.h" +#include "adc.h" +#include "pm.h" + +#include "led.h" + +#include "vreg_twl.h" +#include "i2c_mcu.h" + + +// ===================================================== // +static bit adc_updated; +static bit vol_changed_by_ctr; +bit vol_changed_by_twl; +static u8 vol_old; + +static u8 adc_raw_vol; +static u8 adc_raw_dep; + +u8 vol_polling; +u8 vol_level_twl; + +extern const u8 slider_to_codec[]; + + + +// ===================================================== // +typedef struct filter_work +{ + u8* value_used; + s8 diffs; // KIKAN̕΂ + s8 kikan; + u8 large_diff_count; +}filter_work; + + +static filter_work work_vr_3d = { + &vreg_ctr[ VREG_C_3D ] + // ͕̂slł悵Bconstɂ_ + }; + + +static u8 vol_data_ctr; +static u8 vol_data_ctr_tmp; +static filter_work work_vr_vol = { + &vol_data_ctr_tmp + // ͕̂slł悵Bconstɂ_ + }; + + +// twl 8iKvol̃jAl̋E +/* + twl32 -> 8 e[u + 0`1,`4,`8,`13,`18,`23,`28,31 + */ +static const u8 TWL_VOL_BOUNDARY[] = { + 1, 4, 8, 13, 18, 23, 28, 31 +}; + +// ===================================================== // +extern void nop8(); +static void adc_filter( u8 new_val, filter_work* work ); +static u8 adc_scaling( u8 ); +static void update_twl_vol( u8 sent_index ); + + + +// ===================================================== // +#define INTERVAL_TSK_ADC 15 + + + +/********************************************//** + ADCݒƁAJn + + ȉ̃s͎ɂőEĎ܂B + - BT_TEMP,_P + - ADIN1 + - VOL + + ***********************************************/ +void tsk_adc( ) +{ + if( adc_updated ) + { + adc_updated = false; + + // 3D ///////////////////////////////////////// + vreg_ctr[ VREG_C_3D ] = adc_raw_dep; // l + + // Volume ///////////////////////////////////// + { + vreg_ctr[ VREG_C_VOL_ADC_RAW ] = adc_raw_vol; + + adc_filter( adc_scaling( adc_raw_vol ), &work_vr_vol ); // ʂ*work_vr_volwvol_data_ctr ǂ݂ɂ... + vol_data_ctr = vol_data_ctr_tmp / 4; + + if( vol_old != vol_data_ctr ) + { + vol_changed_by_ctr = true; + vol_old = vol_data_ctr; + vol_polling = 3; +// renge_task_immed_add( tski_vol_update ); œo^ + } + } + + // obe /////////////////////////// + /* Ă΂܂ */ + } + + // YꂪƂȂ̂Ń|[O orz + if( vol_polling < 5 ) + { + renge_task_immed_add( tski_vol_update ); + vol_polling = (u8)(200 / SYS_INTERVAL_TICK) + 5; // 5/sec + } + vol_polling --; + + + ADCEN = 1; + ADM = bits8(0,0,0,0, 1,0,1,1); // ZNg[hAAfCLK/6 // + + ADPC = 0x06; // ADC|[g̃ZNg + ADS = ADC_SEL_3D; + nop8(); + ADCS = 1; // ADJnB // ܂Ł@@܂ł1us=8clkȏJ + + ADIF = 0; + ADMK = 0; +} + + + +/********************************************//** + vol݂̃XC_̈ʒuɋXV + ***********************************************/ +void vol_reset() +{ + vol_old = vol_data_ctr; + vreg_ctr[ VREG_C_SND_VOL ] = vol_data_ctr; // 64i +} + + +/********************************************//** +@VolXV܂B + + @Ȏɓo^܂B + + - [U[VolXC_𓮂 + - HorizonɋXVwꂽ@icodecZbgj + - TWLAvVol + ***********************************************/ +task_status_immed tski_vol_update() +{ + static u8 sent_index, sent_index_twl; + static bit last_modifyer_is_twl; // false = ctr + + if( !( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP )){ + return( TSKI_FINISHED ); + } + + // ǂ̉ʂɂ́H // + if( vol_changed_by_ctr ) + { + // XC_ + vol_changed_by_ctr = false; + last_modifyer_is_twl = false; + sent_index = vol_data_ctr; + } + else if( vol_changed_by_twl ) + { + // TWLAv + vol_changed_by_twl = false; + last_modifyer_is_twl = true; + if( vreg_twl[ REG_TWL_INT_ADRS_VOL ] == 0 ) + { + sent_index_twl = 0; + } + else + { + sent_index_twl = vreg_twl[ REG_TWL_INT_ADRS_VOL ] *2 +1; + } + sent_index = sent_index_twl; + } + else + { + // force_slider0ɂƂ & ܂Ƃ + // XC_TWL̍ŌɃZbgZbg + if( last_modifyer_is_twl ) + { + sent_index = sent_index_twl; + } + else + { + sent_index = vol_data_ctr; + } + } + + // WX^̍XV // + vreg_ctr[ VREG_C_SND_VOL ] = sent_index; + + // twlXV + update_twl_vol( sent_index ); + + // codecɓ` + /// lł + iic_mcu_write_a_byte_codec( CODEC_REG_VOL, slider_to_codec[ sent_index ] ); + + // set_irq( VREG_C_IRQ0, REG_BIT_VR_SNDVOL_CHANGE ); // 荞ݔp~ + return( TSKI_FINISHED ); +} + + +/********************************************//** + TWL ։ʂʒmB + + iKႤ̂ŁÃPAs + ***********************************************/ +static void update_twl_vol( u8 sent_index ) +{ + // XP[O + if( sent_index == 0 ) + { + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = 0; + } + else if( sent_index <= 4 ) + { + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = 2; // P̓~bVOŐ + } + else + { + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = sent_index/2 ; + } + + // 8iK̃xB@荞݂̂ɕKv + { + static u8 vol_twl_old; + + if( vol_twl_old != vreg_twl[ REG_TWL_INT_ADRS_VOL ] ) + { + // 8ixɕϊ + u8 new_level = 31; + u8 i; + + vol_twl_old = vreg_twl[ REG_TWL_INT_ADRS_VOL ]; + + for( i=0; i<=7; i++ ) + { + if( vreg_twl[ REG_TWL_INT_ADRS_VOL ] <= TWL_VOL_BOUNDARY[ i ] ) + { + new_level = i; + break; + } + } + vol_level_twl = new_level; + } + } +} + + + +/********************************************//** +@ADC isr + +@}`vNT̏Ԃ`FbNĂׂ֓]A + +@OŎ̃`lN + +@@ʂI~߂ + ***********************************************/ +__interrupt void int_adc( ) +{ + volatile u8 adc_data = ADCRH; + + switch ( ADS ) + { +/* + case ( ADC_SEL_AMB_BRIT ): + // ‹邳 // + vreg_ctr[ VREG_C_AMBIENT_BRIGHTNESS ] = adc_data; + break; +*/ + + case ( ADC_SEL_3D ): + // 3D{[ // + EI(); + adc_raw_dep = adc_data; + break; + + case ( ADC_SEL_VOL ): + // ʃXC_ // + EI(); + if( system_status.model == MODEL_TS_BOARD ) + { + adc_raw_vol = adc_data; + } + else + { + adc_raw_vol = 255 - adc_data; + } + + break; + + case ( ADC_SEL_BATT_TEMP ): + // obex // + EI(); +#ifdef _ENABLE_HAL_ + if( vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] == 0xFF ) // HAL +#else + if( 1 ) +#endif + { + raw_adc_temperature = adc_data; + } + else + { + raw_adc_temperature = vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ]; + } + + if(// (( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR ) == 0 ) && + (( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP ) + ) + ) + { + renge_task_immed_add( tski_BT_temp_update ); + } + break; + +/* Ă΂܂ + case ( ADC_SEL_BATT_DET ): + // obe[J[ // + break; +*/ + } + +// Ƃ܂Ƃȏ肻 + if( ADS < ADC_SEL_BATT_DET ) + { + ADS += 1; // ̃`l + } + else + { + ADCEN = 0; // ~߂Ă܂ + adc_updated = true; + } + ADIF = 0; // ȂƁAÕ`l̃f[^̊ŒɊ荞މ”\ +} + + + +/********************************************//** + adcWX^ǂݏoÂ܂ܕԒlɂB + + tsk_adcƋ邱ƂlĂ܂B + ***********************************************/ +u8 get_adc( u8 ch ) +{ + u8 temp; + + ADMK = 1; + ADIF = 0; + + ADCEN = 1; + ADM = bits8(0,0,0,0, 1,0,1,1); // ZNg[hAAfCLK/6 ///火 + + ADPC = 0x06; // ADC|[g̃ZNg + ADS = ch; + + nop8(); + + ADCS = 1; // ADJnB /// ܂Ł@ɁA1usȏJ + + ADIF = 0; + while( ADIF == 0 ){;} + temp = ADCRH; + ADCEN = 0; + + ADMK = 0; + return ( temp ); +} + + + + + +/********************************************//** + VR̉“͈͂lăXP[O + + Volp@g񂷂Ȃ炻̂Ƃǂɂ + ***********************************************/ +static u8 adc_scaling( u8 orig_val ) +{ + u16 temp; + + if( orig_val <= vreg_ctr[ VREG_C_VOL_CAL_MIN ] ) + { + return( 0 ); + } + if( orig_val >= vreg_ctr[ VREG_C_VOL_CAL_MAX ] ) + { + return( 255 ); + } + + temp = (u16)(( orig_val - vreg_ctr[ VREG_C_VOL_CAL_MIN ] ) * 256 ) / ( vreg_ctr[ VREG_C_VOL_CAL_MAX ] - vreg_ctr[ VREG_C_VOL_CAL_MIN ] ); + if( temp > 255 ) + { + temp = 255; + } + + return( (u8)( temp & 0xFF ) ); +} + + + + +/********************************************//** + qXeVX V2 + + ľܓIȓ܂ + ***********************************************/ +#define KIKAN 16 +static void adc_filter( u8 new_val, filter_work *work ) +{ + if( abs( new_val - *( work -> value_used )) > 2 ) + { + // 傫ꂽ + work -> large_diff_count ++; + if( work -> large_diff_count > 16 ) + { + *( work -> value_used ) = new_val; + work -> diffs = 0; + work -> kikan = KIKAN; + } + } + else + { + work -> large_diff_count = 0; + // ߏ̒lłAԂłς΂Ă炻Ɋ񂹂 + if( *( work -> value_used ) < new_val ) + { + work -> diffs ++; + } + else if( *( work -> value_used ) > new_val ) + { + work -> diffs --; + } + + if( --( work -> kikan ) == 0 ) + { + if( ( work -> diffs ) == KIKAN ) +// if( ( work -> diffs ) > (s8)( KIKAN * 0.8 ) ) + { + *( work -> value_used ) = *( work -> value_used ) + 1; + } + else if( ( work -> diffs ) == ( -1 * KIKAN ) ) +// else if( ( work -> diffs ) < (s8)( -1 * KIKAN * 0.8 ) ) + { + *( work -> value_used ) = *( work -> value_used ) - 1; + } + work -> diffs = 0; + work -> kikan = KIKAN; + } + } +} + diff --git a/snake_branches/3.40_jane/adc.h b/snake_branches/3.40_jane/adc.h new file mode 100644 index 0000000..6f4ad04 --- /dev/null +++ b/snake_branches/3.40_jane/adc.h @@ -0,0 +1,48 @@ +#ifndef __adc__ +#define __adc__ + +#include "jhl_defs.h" + +/////////////////////////////////////// +// ANI2 P22 +#define ADC_SEL_AMB_BRIT 0x02 + +/* +// ANI3 P23 +#define ADC_SEL_GYRO_YAW 0x03 +// ANI4 P24 +#define ADC_SEL_GYRO_PITCH 0x04 +// ANI5 P25 +#define ADC_SEL_GYRO_ROLL 0x05 +*/ + +// ANI6 P26 +#define ADC_SEL_3D 0x06 +// ANI7 P27 +#define ADC_SEL_VOL 0x07 + +// ANI8 P150 +#define ADC_SEL_BATT_TEMP 0x08 +// ANI9 P151 +#define ADC_SEL_BATT_DET 0x09 + + + +/////////////////////////////////////// +#define CODEC_REG_VOL 0x13 + + + +/////////////////////////////////////// +extern u8 vol_polling; +extern u8 vol_level_twl; + + + +/////////////////////////////////////// +u8 get_adc( u8 ch ); +void vol_reset(); + + + +#endif diff --git a/snake_branches/3.40_jane/batt_params.c b/snake_branches/3.40_jane/batt_params.c new file mode 100644 index 0000000..13bdb83 --- /dev/null +++ b/snake_branches/3.40_jane/batt_params.c @@ -0,0 +1,130 @@ +/* ======================================================== + eЃobe[p[^ + $Id: asdf$ + ======================================================== */ +#include "jhl_defs.h" + +#include "batt_params.h" + + +const bt_param_ bt_param[ /*_BT_PARAM_NUM_*/ ] = // drg񂷂̂ f~drp[^ +{ + // ctr //////////////////////////////////////////////// + // BT_PARAM_CTR_MAXELL + { + { + 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, + 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10, + 0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0, + 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10, + 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30, + 0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70, + 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0, + 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00 + }, + 2, // 2 = 19 bit mode + { 92, (u8)(-256* 0.79), (u8)(-256* 4.35) }, // @(u8)LXǧp[^̂܂܂̕ + 0xD800, // VXeƂĂ͗ǍDȓ + { 0xEA, 0xE8 } + }, + + // BT_PARAM_CTR_PANA + { + { + 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, + 0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10, + 0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50, + 0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00, + 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, + 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 + }, + 1, + { 171, (u8)(-256* 1.00), (u8)(-256* 2.60) }, // @(u8)LXǧp[^̂܂܂̕ + 0xDA20, // VXeƂĂ͗ǍDȓ + { 0x69, 0x67 }, + }, + + // SPFL /////////////////////////////////////////////// + // BT_PARAM_SPFL_MAXELL + { + { + 0xA1, 0x20, 0xB7, 0x50, 0xB9, 0xD0, 0xBB, 0x00, + 0xBC, 0x30, 0xBC, 0x60, 0xBC, 0xA0, 0xBD, 0x10, + 0xBD, 0xC0, 0xBE, 0x70, 0xBF, 0xD0, 0xC2, 0xA0, + 0xC4, 0x00, 0xC8, 0x50, 0xCC, 0x80, 0xD0, 0xB0, + 0x01, 0xA0, 0x25, 0x10, 0x18, 0xB0, 0x17, 0xC0, + 0x95, 0x20, 0x6F, 0xE0, 0x7C, 0x60, 0x35, 0x10, + 0x35, 0x00, 0x37, 0xF0, 0x16, 0xF0, 0x1C, 0xA0, + 0x17, 0x30, 0x11, 0xD0, 0x11, 0xF0, 0x11, 0xF0 + }, + 2, + { 94, (-256* 0.35), (-256* 3.85) }, + 0xDAB0, + { 0xF5, 0xF3 } + }, + + // BT_PARAM_SPFL_PANA + { + { + 0x9C, 0xF0, 0xAD, 0x50, 0xAF, 0xB0, 0xB3, 0x00, + 0xB3, 0xE0, 0XB5, 0x60, 0XB6, 0x70, 0xB7, 0xA0, + 0xBA, 0x00, 0xBC, 0x00, 0xBE, 0x90, 0xC1, 0x60, + 0xC4, 0x00, 0xC7, 0x00, 0xCC, 0xA0, 0xD0, 0xA0, + 0x02, 0x00, 0x19, 0x10, 0x12, 0x00, 0x48, 0x10, + 0x25, 0x10, 0x41, 0xF0, 0x2F, 0xA0, 0x13, 0xF0, + 0x1C, 0xD0, 0x10, 0xD0, 0x0F, 0xA0, 0x11, 0x00, + 0x10, 0xE0, 0x0C, 0x10, 0x0C, 0x00, 0x0C, 0x00 + }, + 2, + { 113, (-256* 0.30), (-256* 2.25) }, + 0xDAA0, + { 0xE7, 0xE5 }, + }, + + // SNAKE ///////////////////////////////////////////// + // BT_PARAM_SNAKE_MAXELL + { + { + 0x9D, 0x80, 0xB7, 0xB0, 0xB8, 0xA0, 0xB9, 0xA0, + 0xBB, 0x40, 0xBC, 0x50, 0xBC, 0xA0, 0xBD, 0x00, + 0xBD, 0x90, 0xBF, 0x30, 0xC0, 0xE0, 0xC3, 0x30, + 0xC5, 0x40, 0xC7, 0x50, 0xCD, 0x40, 0xD0, 0xA0, + 0x01, 0x90, 0x35, 0x10, 0x2F, 0x30, 0x11, 0x00, + 0x29, 0x40, 0x88, 0x50, 0x71, 0xA0, 0x5F, 0xE0, + 0x32, 0xD0, 0x1C, 0xF0, 0x14, 0xF0, 0x1A, 0x80, + 0x1A, 0x80, 0x11, 0x10, 0x12, 0x00, 0x12, 0x00 + }, + 2, + { 86, (-256* 0.6), (-256* 3.675) }, // rcomp, r-hot, r-cold + 0xDAA0, // ocv + { 0xF5, 0xF3 } // compare max, min + }, + + // bt_PARAM_SNAKE_PANA 3ŁH130909XV + { + { + 0x9D, 0xD0, 0xA6, 0x20, 0xAC, 0xE0, 0xAE, 0x20, + 0xB0, 0x40, 0xB2, 0x10, 0xB3, 0xC0, 0xB5, 0x00, + 0xB6, 0x70, 0xB7, 0xD0, 0xB9, 0x20, 0xBC, 0x00, + 0xBE, 0xD0, 0xC4, 0x70, 0xCA, 0x40, 0xD0, 0xA0, + 0x02, 0x00, 0x02, 0x00, 0x24, 0x00, 0x14, 0x00, + 0x16, 0x00, 0x1A, 0x00, 0x38, 0xC0, 0x2D, 0xE0, + 0x29, 0xC0, 0x27, 0xE0, 0x0F, 0xE0, 0x11, 0xE0, + 0x0F, 0xE0, 0x0F, 0x40, 0x0C, 0x00, 0x0C, 0x00 + }, + 2, // 2:19bit 1:18bit + { 95, (-256* 0.85), (-256* 1.9) }, + 55968, + { 230, 228 }, + } + + + // FLOWER ///////////////////////////////////////////// + // BCTR̃obe[gB + + // CLOSER ///////////////////////////////////////////// + // BSPFL̃obe[gB +}; + diff --git a/snake_branches/3.40_jane/batt_params.h b/snake_branches/3.40_jane/batt_params.h new file mode 100644 index 0000000..232a2d1 --- /dev/null +++ b/snake_branches/3.40_jane/batt_params.h @@ -0,0 +1,62 @@ +#ifndef _bt_params_h_ +#define _bt_params_h_ + +/* + $Id: asdf$ +*/ + +#include "jhl_defs.h" +/* + dr CTR | SPFL | YBS + 0 ID = 0 maxell + 120 1 + 360 2 + 750 @ 3 + 1.3k@ 4 + 2.7k 5 pana + 8.2k@ 6 +*/ + + +#define BATT_PARAM_SIZE 64 + + + +typedef enum +{ + BT_PARAM_CTR_MAXELL = 0, + BT_PARAM_CTR_PANA, + BT_PARAM_SPFL_MAXELL, + BT_PARAM_SPFL_PANA, + BT_PARAM_SNAKE_MAXELL, + BT_PARAM_SNAKE_PANA, + BT_PARAM_FLOWER_MAXELL, + BT_PARAM_FLOWER_PANA, + BT_PARAM_CLOSER_MAXELL, + BT_PARAM_CLOSER_PANA, + _BT_PARAM_NUM_ +} BT_TYPE; + +typedef struct +{ + u8 rcomp; + s16 up,down; +} rcomp_; + +typedef struct +{ + u8 hi; + u8 low; +} verify_; + +typedef struct +{ + u8 mg_param[BATT_PARAM_SIZE]; + u8 v_scale; + rcomp_ rcomp; + u16 ocv; + verify_ verify; +} bt_param_; + + +#endif diff --git a/snake_branches/3.40_jane/bsr.hex b/snake_branches/3.40_jane/bsr.hex new file mode 100644 index 0000000..7cfef23 --- /dev/null +++ b/snake_branches/3.40_jane/bsr.hex @@ -0,0 +1,1021 @@ +:02000000680D89 +:04001000B548B748F0 +:02001C00634A35 +:020024000A4B85 +:02002A00554B34 +:08003400824C254C7E4CC34EAA +:02004A00B948B3 +:02005A00F34869 +:02006200814ECD +:06008000164D4F4D994D95 +:0400C0007EFBFF04C0 +:0A00C4001B339499E033F240BFAA09 +:1000CE00C7C1FBF8FFCEABACC736F00071F4C6610A +:1000DE00D8710006F98EA89C018C015C10D1DD0A46 +:1000EE007110A6FB710006F9EF0B8C015C80D161DB +:1000FE00E8710006F98F06F931030EF6B1BBF66111 +:10010E004900DD05618900EFF5FDFE01FD3101FDC0 +:10011E008901FD0F0AFD4609FD1E30FD452DEFA597 +:10012E00C0C6D7C7360000674C09DE3F318E04F6D5 +:10013E000FC1317B9EFDC411897267318E04F64F5B +:10014E0014896142DF03F6EF01E660610667318EC6 +:10015E00124900207267318E04F64F14896142DF16 +:10016E0003F6EF01E660610687EFBC40F84F3A6197 +:10017E00E88666D161E8FDB306C6D751065B0C3141 +:10018E001A9F08F94008F90161F8CF08F904D5085B +:10019E00F9DF06710009F9EF04710809F98F09F901 +:1001AE00310505CD3707EF03CD3705D908F9FDC465 +:1001BE00298F06F95CE39F06F951035B04318EE744 +:1001CE00240000DD1023DD0823DF0E712006F9D791 +:1001DE00713006F9D7714006F9D7717BFACEA010AF +:1001EE00CEA180E5F300000000CEA408F5AAFFD74B +:1001FE008F06F9310508CD0003CD030FEF08CD03AF +:10020E000EF690BFB401CD0408CD0508F521FFCE42 +:10021E0022E9CE23F8CE24F3CE25FACE26FCCE2725 +:10022E005FCE2EFCCF1105F8CF120511CF3500028F +:10023E00CF370019CF530006CBEEFEFFCE3831CEAE +:10024E003970CF38050A308700BF1801BF1A01BFB9 +:10025E001C01BF1E01D7D7C7F616FD9804717BFA95 +:10026E0031329708713297717AFAEF0C717AFAA7D8 +:10027E00F647DFE95203EF01F2C6D7C7C1C1FBF85B +:10028E00FF17A1C1E0C18C0A70C18C0270FDB102D2 +:10029E001006629D54D45461E8CC01FF8C0172109B +:1002AE0004C6D7C7C1FBF8FFFD6502D2DD045203B9 +:1002BE00EF698B70FDE503D2DD077133975202EFC4 +:1002CE005A8C0870FD0104FD4C048B6C0170FD010D +:1002DE0004300400BF2401301740BF1C013004005D +:1002EE00BF22018C0A91DF04F6BF2A01710BE2CE08 +:1002FE0044FF3182E202EFFAAC0C148E449961791C +:10030E000C61690A8C0AD1DFDA8B4CA461F8FDA36B +:10031E0048FD7504710BE2713397F2C0C6D7C7C1A1 +:10032E00FBF8FFFD6502D2DD045203EF25710AE6EC +:10033E008B70FDE503D2DD077133975202EF138CFC +:10034E000870FD01048C0A70FD0104FD7504713303 +:10035E0097F2C0C6D7C7C1FBF8FFFD6502D2DD0418 +:10036E005203EF70710AE6710BE28B70FDE503D25A +:10037E00DD077133975202EF5B710BE23122974426 +:10038E00C73422FBAC0C1652048B99A5A792DFF949 +:10039E00C68B9D518C089D528C0A9D533184BD0293 +:1003AE00EFFA717ABDCEB144CBB422FB8C0A318EFA +:1003BE00BEB8CEBB48714BE1714BE5710ABD8C08DE +:1003CE009E44EF0F710BE68C089E448C0A9D50AC38 +:1003DE000CBD4EF2C0C6D7C716FD2404AF0401BF34 +:1003EE000C0117FD0104D2DD07FD75045202EF0169 +:1003FE00F2C6D7C716710AE6710BE2669E443182C9 +:10040E00E202EFFAF6420401DD09AF0401BF0C016E +:10041E00E2EF01F2C6D7AF2801085CFB08BF280146 +:10042E00FD6402AF28015CFBBF2801300400BF2A27 +:10043E0001301780BF1C01300400BF2201D7AF244A +:10044E0001086C0408BF2401AF28016C0F086C0B67 +:10045E0008BF2801FD6402AF2A01085CFB08BF2A11 +:10046E0001FD6402ED2404300400BF2401F6BF2A0E +:10047E0001300B0BBF2801FD6402300B0FBF2801AA +:10048E00FD6402300F0FBF2801D731449701D77199 +:10049E0032976A0E03713B25713B23E0FD220A71F0 +:1004AE0020F000FD6402F6BF26015024BF1401CBDC +:1004BE00440014300F0FBF2801712397710BE271A6 +:1004CE000AE6FD2404CE44FF3182E202EFFAFD7506 +:1004DE0004AF0401BF0C01713397714297D73134C9 +:1004EE009702EFFAFD4C04713A25713A235A0EFC2D +:1004FE007128F000714397D77140F0007178300287 +:10050E00713AE6713BE2713BEA713BEE5A06FCCF63 +:10051E0034024AE552FF711A52710A527148300282 +:10052E007130300271203002CF330209CF32020B0C +:10053E007130310271203102713BE6717030028EE2 +:10054E00265CFC9E2671603002D7717830027148AD +:10055E00F000D7C72008FBF8FFFDAE085014C150BD +:10056E0008FDE007C0CC07048C074C14DE0C8C078A +:10057E00318EFD4A0A615907EFEECC07048C074C09 +:10058E001461C8ED4F06CC06008C064C0461C8ED14 +:10059E002E06300AF9BC02F6BBCEABAC31B2D10995 +:1005AE00C73641057184C6DEF3F1C7364105718445 +:1005BE00C661DC9C05713BD1AC02148F400599716C +:1005CE00505005617902617900F0E1614900DD0961 +:1005DE00C73641057184C6DEC3F1C7364105718445 +:1005EE00C661DC0E059C055040C18C07318E31ADC5 +:1005FE00128C06318E318D03BDD831FFBDDADADAB9 +:10060E00ADD8FD160DC0D2DD0C5008C15014FDE062 +:10061E0007C0FDD30B8C05D1DF06615906ED97059A +:10062E008C07318EFD4E0AD2DD0C5008C15014FDE0 +:10063E00E007C0FDD30B8C05D1DF06615907ED8BAA +:10064E000571605005CC0400CC05008C054C09DE0C +:10065E002B8C05318E04F61FC1317B9EFDC4118992 +:10066E00728C05318E04F64F14896142DF03F6EF6A +:10067E0001E6600E049C04615905EFCF4100114064 +:10068E00F81F3A61E86159048C04D1DF08FDD40BE0 +:10069E00FDE60CEF0C5008C15014FDE007C0FDD371 +:1006AE000B1008C6D7C72004FBF8FF712B24CC0112 +:1006BE0000F6BC02AC02440900DE3EAC0204F60FAA +:1006CE00144100118972AC020C5014896142DF038F +:1006DE00F6EF01E6600E019C01AC02124900507269 +:1006EE00AC0204F67F14896142DF03F6EF01E66087 +:1006FE000E019C01617902EFBB40F67FFF61F8614C +:10070E0059018C01D161F8EDAC07CC0100717AFA78 +:10071E00FD9804711300711B20710303710205E033 +:10072E00C15003FDC52BC05013FD220A500FC1E06E +:10073E00FDC52BC0CEABAC6159018C0191DD068C91 +:10074E00014C03DF03E6EF01F66061FB7121048CBF +:10075E00014C0861F8CC010031320705A024FCEFF2 +:10076E0003F524FC4024FC11DC22F524FCF0C150DE +:10077E0003FDC52BC0CE3708CBE4FFFFCBE6FFF75A +:10078E00CED4FFCF370008F5120561FDE6BC02F6A8 +:10079E00614902DD9F00000000617902EFF1FDAEBC +:1007AE0008D2DFFA5008C15014FDE007C0D2FDD3C5 +:1007BE000B1004C6D73184BD02EFFA717BBDCBE4BA +:1007CE00FFFFCBE6FFFFCBD4FFFF717ABED7717B65 +:1007DE00BED7C7C1200CFBF8FF8C0C318E31ADC1DA +:1007EE00317B9DD4C0BC068DD49C088C149C0B8C84 +:1007FE0014318E040C00128C0B318EBDD813FDA556 +:10080E000F61C8EDA908CEABACCC05068C0B318EB2 +:10081E00FD460AD2DD158C0B318EFD4A0A61690543 +:10082E008C05D1DFE7FDDC07E2EF71CC0A008C0A04 +:10083E004C04DE54F6BC02300AF9BBAC06148C082C +:10084E009EFD118972AB146299AC06A1BC0661794A +:10085E0000617902F0E1614902DFE05040C18C0B8A +:10086E00318E31AD128C0A318E318D03BDD831FFF0 +:10087E00BDDADADAADD8FD160DC0D2DD06FDDC0725 +:10088E00E2EF1961590AEFA68C0B318EFD4E0AD29A +:10089E00DD03E2EF0761590BEDFD07F2100EC6D72F +:1008AE00C7717B9D717BFAFDC307300AF9FDF90A0A +:1008BE00FD840AC6D7FDAE08FDD30BFDDC07F5ABF4 +:1008CE00FFF2D7C731049B067110B3FBEF0471180A +:1008DE00B3FB8FB3FB7B8E76D1DD5B8FB3FB9D8E2F +:1008EE004004F903DF22665C10D1DD1C8FB3FB5C84 +:1008FE0010D1DD0B5080C15011FD4E35C0EF0950A7 +:10090E0040C15011FD4E35C04004F903DD064004D0 +:10091E00F904DF22665C02D1DD1C8FB3FB5C02D1D1 +:10092E00DD0B5040C15010FD4E35C0EF095020C1B7 +:10093E005010FD4E35C0C6D7C7360000665C80D15C +:10094E00DD10675C80D1DF0571339AEF0B71329A3F +:10095E00EF0671040771319A665C40D1DD10675C59 +:10096E0040D1DF0571439AEF0B71429AEF06711475 +:10097E000571419A665C01D1DD10675C01D1DF051E +:10098E0071539AEF0B71529AEF0671340771519AA7 +:10099E00665C02D1DD10675C02D1DF0571639AEFF0 +:1009AE001D71629AEF184007F901DF087104027198 +:1009BE00619AEF0AC736100571C4C671619A665CFA +:1009CE0004D1DD10675C04D1DF0571739AEF0B71F2 +:1009DE00729AEF0671440771719A665C08D1DD1048 +:1009EE00675C08D1DF0571039BEF0B71029BEF066D +:1009FE0071140771019B665C10D161E8715AD1C602 +:100A0E00D7F5F6FBF5F8FBCFFEFBFFCFFAFBFFCFDA +:100A1E00FBFBFFD7C7C1C1FBF8FFCEABAC8C02D13D +:100A2E00DD12616902305C03BBF6614900DDEE61E7 +:080A3E008900EFF51004C6D792 +:100A46005208EF065203EF025206FEE600FE1B00B6 +:100A5600DC16089F03088F0408089F040862FE241A +:100A660000089F0408EEBF00EEBA00C1C514410E8F +:100A760011D9D0FF118FD1FF312E45C4C0D7F23125 +:100A8600A2C401E2D79DE261DD4C09DF12717BFA57 +:100A9600C18F06089F25FDC0CF060800EE2700314E +:100AA600F2FA04CF0608004C00DF05D50008DD1673 +:100AB60061DD717BFAD50608DD0ACDE31F61CD61E4 +:100AC600CDEE160061CDFED40061FFFE9A00FCF863 +:100AD600FF0EFEB20061CDFED5004C09DF0EC18FC0 +:100AE60006086F25FD9F0608C0EE0400CF06080025 +:100AF600F8E3D75200EF025202FE3700CF24FD0082 +:100B0600CF060800BF0408C716629F0008410011FF +:100B16008F1A209B4100118F1B209F0108C6510090 +:100B2600FE62FFEF025205CF060800C1510CFE0A15 +:100B360000C0D7C1511DFE0200C0D761DD717BFA2E +:100B460070CEC0A59EC47CFF9EC4609EC461CDD7F6 +:100B560061DD717BFAC18EC45C1BFED6FFCF060831 +:100B660001FED7FFC061CDD731F2FA1AC1AEE4BF9C +:100B760016FDAEE6BF18FDAED4BF1AFD30FFFFBEB0 +:100B8600E4BEE6BED4C0D731F2FA11C1AF16FDBE3F +:100B9600E4AF18FDBEE6AF1AFDBED4C0D7C1BF1C78 +:100BA600FD13BF1EFD15BF20FD17BF22FDC0D7AF29 +:100BB6001CFDDB1EFDEB20FDFB22FDD7534B305207 +:100BC6005430324E323030475631323000FFC15049 +:100BD600FEFEAB0061DD717BFACF060800FE0A005F +:100BE600FEA4FF61CDF8E3EECF00C7FB0408BF16F5 +:100BF600FD8FC0009C05C5C337040600BF18FD3530 +:100C060036380C300000522BFE6600C2C4C630E6F1 +:100C16000BB800300000B8022004AF18FDB8003051 +:100C26000F00B802AF16FD61FF520AFE3AFFECF85C +:100C3600FF0E717BFAC1C7FB04088C05C65C80FEFB +:100C46000200C0D761DD717BFA70CFC0FFA59FC0DF +:100C5600007CFF9FC000609FC00061CDD7618BFE06 +:100C6600E2FF717BBE410011FB000017CEFC006164 +:100C7600CB089EFDF31161C999A58392DFF7D7FED4 +:100C8600B1FED524FDDF23C1CF0308035109FEF4CD +:100C9600FDC0D2DF37FE3800A20408CF0308075193 +:100CA60009FEE1FDD2B20408DF22C7FB0408318346 +:100CB60002C6D7C6510AFECCFD624C1FDF06CF2402 +:100CC600FD01EF04CF24FD00C0EE5BFEC0EE55FE35 +:100CD600C7C1FB04088B31196C0161589BC0C6D78C +:100CE600717BFAFE4DFEAF0408040600C114364AB5 +:100CF6000C300000522DF3FE77FF8FC000FE2BFE56 +:100D060061CF5C807C8073C0041900CEFC0F61CB80 +:100D1600C55404EF03C55417FE18FEC7360008BBBA +:100D2600629C0288089C03D1DD334C41DE2F70F1B2 +:100D3600312DB161090033081C000851FF612A41B9 +:100D46000E118FD0FF613B118FD1FF6138DC0E8B06 +:100D56005C03DF0964C6C4FE2BFDEECAFDC6C4EE05 +:020D6600C3FDCB +:100D680061CF5100718C7109FECBF800FEFCE801DF +:100D780000F6BF00F953C0F693935820FEDFF941FF +:100D88000036D44E34CCFCEF05118B99A7A5174437 +:100D98001E4FDFF53602F930CCFCEF04CC0000A77B +:100DA80047DFF94100361E4F3420FEEF05118B99BD +:100DB800A7A517442E4FDFF53630FE3096FEEF0418 +:100DC800CC0000A747DFF9FCCE0000EFFE61DD7123 +:100DD8007BFABEF0ADD8BEF200AEF661CDD7C361E6 +:100DE800DD717BFABEF0ADD8BEF200DBF6FFADDCFC +:100DF800BEF000AEF6BDD8AEF40312ADDABEF20016 +:100E0800AEF661CD03BDDAC2D7C3F33174D9088316 +:100E1800C1F626D8BDD8C031750683C312F623C2E1 +:100E2800FD330E93DF0312F623C2D7440000DD26FC +:100E380061DD717BFACFE80080BEF6F6BEF4BEF243 +:100E4800ADD8BEF0CFE800818FE8003103FAAEF0EC +:100E5800F5E80061CDD7B1D7C3F33174D90883C1A0 +:100E6800F626D8BDD8C0317505C312F623C2FD8158 +:100E78000E93DF0312F623C2D7440000DD2761DD9D +:100E8800717BFACFE80080BEF6F6BEF4BEF2ADD8AC +:100E9800BEF0CFE800818FE8003103FAAFE000F53B +:100EA800E80061CDD7ADD8D7C3F33174DB0F83C168 +:100EB800F626D8BDD861317026DABDDAC031750D95 +:100EC80083C312F626DCBDDC61317023C2FDE90E56 +:100ED80093DF0CF626D8BDD861317026DABDDAC2A8 +:100EE800D7C161686BDC6BDDC0DD2F61DD717BFA1A +:100EF800CFE80080BEF4ADDCBEF6ADD8BEF0ADDA0A +:100F0800BEF2CFE800818FE8003103FAAEF0BDD819 +:100F1800AEF2BDDAF5E80061CDD7F6BDD8BDDAD7B7 +:100F28008292DD2B61DD717BFACFE80080BEF0F69E +:100F3800BEF2BEF46208BEF6CFE800818FE8003149 +:100F480003FAAFE0006072AEF0F5E80061CDD7605B +:100F580072F6B1D706DABDDAADDC06D8BDD861D8ED +:100F6800A6DAD7D1DD17C1C3DAD89DD8ADDA311CDE +:100F780061EEB4D8DFF8BDDA13BDD8C2C0D7D1DD71 +:100F88001BC1C3DADA9DDAADD8311E33311E337195 +:100F9800F9B4DADFF4BDD813BDDAC2C0D746D8DD5C +:100FA8000771FF7177D971C0D75BDB9DDB605BDAB6 +:100FB8009DDAADDC5BD9085BD808BDD8D7C3C7F3C9 +:100FC800728EFDC162314C410036CA4E1161A07269 +:070FD800C09EFD62C6C2D7F6 +:0A0FF60030393A30363A3236000046 +:0A20000030393A30363A323600002B +:10200A0005214F7B9EC5E9000104080D12171C1F0C +:10201A00080100001F003B005A0078009700B50035 +:10202A00D400F300110130014E01192634445362E1 +:10203A006E777D80807D776E625344342619100A4C +:10204A0008080808080808080A10AEF0B430B740B3 +:10205A00BA30BB50BBB0BC50BD10BD60BDB0BFE014 +:10206A00C2B0C420C7B0CAE0CE1001F014101420C8 +:10207A000630639049006E0077707B0019001900E2 +:10208A0017F01C6012001200120002005C003600F9 +:10209A00A70000D8EAE88C309C10A5E0B040B1C097 +:1020AA00B200B250B310B490B620B860BA50BFA014 +:1020BA00C6B0CE90D02000200020002000207B3027 +:1020CA00686020001700173012F00DE007F00700D3 +:1020DA00093001C001C00100AB000000670020DA2E +:1020EA006967A120B750B9D0BB00BC30BC60BCA0A6 +:1020FA00BD10BDC0BE70BFD0C2A0C400C850CC8045 +:10210A00D0B001A0251018B017C095206FE07C60F0 +:10211A003510350037F016F01CA0173011D011F029 +:10212A0011F002005E00A7FF27FCB0DAF5F39CF07D +:10213A00AD50AFB0B300B3E0B560B670B7A0BA00A7 +:10214A00BC00BE90C160C400C700CCA0D0A00200F1 +:10215A00191012004810251041F02FA013F01CD0BE +:10216A0010D00FA0110010E00C100C000C0002009F +:10217A007100B4FFC0FDA0DAE7E59D80B7B0B8A052 +:10218A00B9A0BB40BC50BCA0BD00BD90BF30C0E0F0 +:10219A00C330C540C750CD40D0A0019035102F3074 +:1021AA0011002940885071A05FE032D01CF014F071 +:1021BA001A801A801110120012000200560067FFDE +:1021CA0054FCA0DAF5F39DD0A620ACE0AE20B040D6 +:1021DA00B210B3C0B500B670B7D0B920BC00BED03B +:1021EA00C470CA40D0A002000200240014001600E5 +:1021FA001A0038C02DE029C027E00FE011E00FE0F7 +:10220A000F400C000C0002005F0027FF1AFEA0DA44 +:10221A00E6E47F7E7D7C7A79787776757472717060 +:10222A006F6E6D6C6A6968676665646261605F5E3D +:10223A005D5C5A5958575655535251504F4E4D4B53 +:10224A004A494948474645434241403F3E3D3B3A59 +:10225A00393801020203030200FEFBF7F3F0F0F340 +:10226A00FA041225384D5F6E777A776E5F4D3825FE +:10227A001204FAF3F0F0F3F7FBFE00020303020282 +:02228A00010051 +:10228C008D3DB43DD1DF26CD3D1EFD4423FDE52221 +:10229C003132960D3104960931329A05713304EFBF +:1022AC0003713204FD1823FDBA22FD7E26D771532B +:1022BC0096D432DD05B43271529631229607313202 +:1022CC009A03715296715496714102314402057110 +:1022DC0040B3FBD77148B3FBD78D304B3BDC114A75 +:1022EC0030B9DE0C4A3E28DE03A43ED7713396D7B4 +:1022FC008D3C4B30DE054A30BDDC0C4A3F28DE03FA +:10230C00A43FD7713296D7F43EF43FD731429A0CA2 +:10231C004A4002DE03A440D7712396D7313204120F +:10232C0040AFFB3CDE0C8FB2FB5C01D1DF047123B0 +:10233C0096D7712296F440D7C7C1FBF8FF31329A79 +:10234C00067130B3FBEF047138B3FB7144967137EF +:10235C009ADE4F71349A71419631329A0E5002C105 +:10236C005011FD4E35C0CD3229EF37E0C15011FD73 +:10237C004E35C0F43217C15002FDAD2BC0D2DF0D6B +:10238C008B318E318D080E01081C00BD34AD3444E8 +:10239C00009BDC05D5AFFBDF095020C15011FD4E71 +:1023AC0035C0C0C6D78D209D41FDF323FDE12BD553 +:1023BC0007F9DD04710396D78D414B2061F8316428 +:1023CC00961C716396FD98044A4107DD054A41FF4E +:1023DC00DF098F06F9310303FD8224FD9624710277 +:1023EC009630DC256194D7C771620171720150037C +:1023FC00FD220A5008FDCB37629D305009FDCB37CA +:10240C006276716301711806F94A30F1DC0BE5074D +:10241C00F9F508F9CD3707EF0E4A3004DE06CF0781 +:10242C00F902EF03F507F95008C1506CFD8902C0A1 +:10243C0092DF08D45461F8711006F94007F901DFF6 +:10244C0005710A22EF06710B22710302CD2007578A +:10245C0000674C08DE1073090A20614EDC05679D8D +:10246C0020EF0387EFEB4A2007DF09D507F961F866 +:10247C00CF07F903C6D7500AFD220A304000C150DD +:10248C0006FD902BC05096ED220AC72008FBF8FFE2 +:10249C00D507F961E8EDD825304A57C1503EFD907B +:1024AC002BC0D2DD077100B2FBEDD8257108B2FB51 +:1024BC0017040400C15002C1500CC1506CFDB10294 +:1024CC00100617040600C15002C1500EC1506CFD1D +:1024DC00B1021006EA38AA48318D12AA48318E6131 +:1024EC006B08616A08C1500EFD902BC0F690C1506C +:1024FC000CFD902BC0CC03008C034C40DE30EA3832 +:10250C008C03318E05148A01318E318D12EA388C90 +:10251C0003318E051489616213BBC18C03318E04A7 +:10252C004000FD902BC08C030C029C03EFCACC0323 +:10253C00008C034C20DE17300080C18C03318E04DC +:10254C008000FD902BC08C030C029C03EFE350A584 +:10255C00FD220AEA38AA48318D12AA48318E616BE5 +:10256C0008616A08C1500EFD902BC0F6C1503EFDAB +:10257C00902BC050A5FD220A5004C1506CFD89025D +:10258C00C0629C03EA388A4B4E0361C3048A4A4EEC +:10259C0003304A57C1503EFD902BC017040400C1B4 +:1025AC005002C1500CC1506CFD6303100617040699 +:1025BC0000C15002C1500EC1506CFD63031006F6F1 +:1025CC00C1503EFD902BC050A5FD220A1008C6D765 +:1025DC00C78D424B3061F8ED7B264A4428DE05A4BA +:1025EC0044ED7B26F4448D309D428D305070D612D4 +:1025FC00307351230480001231FF318E039D439FB1 +:10260C00AEFBF68D437C804C95DC1B8D43318F24C7 +:10261C001400EA38BDD8AA44FDD50D1231FF318E15 +:10262C0003318F16EF198D43318F241400EA38BD16 +:10263C00D8AA46FDD50D1231FF318E03318F16EA23 +:10264C00388A427217F3031644000171FE61C836D2 +:10265C00FF001701DE02F61617BD7CC7500CFD906B +:10266C002BC0D2DF068D309D42EF047100B2FBF21D +:10267C00C6D7C72008FBF8FF4007F901DD06400765 +:10268C00F902DF1C17040600FDB32CD2DF0A8C06FE +:10269C009C058C079C04EF4ECC0563CC0400EF46E4 +:1026AC0017040600FDB32CD2DD0F7100B2FB7103D1 +:1026BC0096CC0500711297EF2D7108B2FB8C063188 +:1026CC008E318D080E07081C00BBEA388A4072ABAD +:1026DC00FD280FBB8C019C05D1DF08CC0501CC0477 +:1026EC0000EF038B9C0417040600FDBE2CD2DD0604 +:1026FC00CC06C8CC07008C069FB1FB8C06318E3102 +:10270C008D080E07081C00BD34AD344401A5DC084F +:10271C00CC0364F6BD46EF48AD3426464401A0DC3C +:10272C0008CC031EF6BD46EF37AD3444819DDC0961 +:10273C00CC030AC946F401EF27AD3444019BDC09F4 +:10274C00CC0305C946F401EF17AD34440191DC0903 +:10275C00CC0300C946F401EF07711297C946F40186 +:10276C003132040C31249608CC0564CC0400EF0DF6 +:10277C008C034E05DE078C039C05CC04008C059F56 +:10278C00AFFB8C049FB0FBFD402C8D484E05DD2823 +:10279C0040AFFB0BDE054A480BDE1440AFFB06DEF8 +:1027AC00054A4806DE09D5AFFBDF0DD448DD0950DC +:1027BC0020C15011FD4E35C08FAFFB9D48FD7D2CC7 +:1027CC001008C6D7C75601D837C15002FDC52BC05B +:1027DC008F09F93105075012FD220AEF0E500AFD40 +:1027EC00220A712010055008FD220A8D376C0870E2 +:1027FC00C15002FDC52BC05003FD220A8D376C1849 +:10280C0070C15002FDC52BC05016FD220A5003FDAD +:10281C00D62B625C01D1DD0F7170B3FB5002C1503D +:10282C0013FD4E35C056006672C6D7C75004FDD690 +:10283C002B625C03D1DD405014FDCE2834B3FB89F0 +:10284C005C9F998A0C7CFF50FF5C14D1DD228A0CB2 +:10285C007CFF5C147234B7FB89616A99716207560C +:10286C0000316207058666D1DFF7716307716B274C +:10287C0034C6FB895CEB995002FDD62BD2DD398D29 +:10288C00376C1070C15002FDC52BC0E0FD220AD878 +:10289C0037C15002FDC52BC05033FD220A8F09F9F8 +:1028AC0031030971281005500AFD220AF0C15002AB +:1028BC00FDC52BC07178B3FBE0C15013FD4E35C084 +:1028CC00C6D7C7C12004FBF8FFCC02005004FDD6CC +:1028DC002B629C038C045C20D1DD0E8C036C019C60 +:1028EC00038C026C209C02EF138C045C10D1DD0C69 +:1028FC008C035CFE9C038C026C109C028C045C08A8 +:10290C00D1DD0E8C036C029C038C026C089C02EFD4 +:10291C00138C045C04D1DD0C8C035CFD9C038C02D9 +:10292C006C049C024008F903DF088C03D161E8CCED +:10293C0003028C03D1DD05501AFD220A8C0370C1F1 +:10294C005004FDC52BC08FB3FB5C9F728C03318E82 +:10295C00316D148C03318E314D616D08616C5C608E +:10296C006162629FB3FB8FBFFB7CFF50FF5E02D1A5 +:10297C00DD278FBFFB7CFF5E027234B7FB89616A77 +:10298C0099716207CC0100316207086159018C0111 +:10299C00D1DFF4716307716B27F21006C6D7D9A784 +:1029AC00FBC15006FDC52BC0D9A8FBC15007FDC506 +:1029BC002BC0D7FDAA29F2D7C716664C02DD044CF2 +:1029CC0004DF05CD3A08EF02F43AC6D7C7711300FD +:1029DC00711B20710303710205E0C15003FDC52B6F +:1029EC00C05013FD220AD83AC15005FDC52BC0506A +:1029FC000FC1E0FDC52BC0500AFD220A7103055022 +:102A0C0008FD220A501FC1E0FDC52BC05012FD224B +:102A1C000A5003FDD62B625C01D1DF03E2EF12F00A +:102A2C00FDD62B629D363602F9C75008FDAD2BC082 +:102A3C00F2C6D75003C1FDC52BC0710203711A2019 +:102A4C00FD6D2BF431D75014FDCE28FD37285014D2 +:102A5C00FD220AFDD32C711300711B20710303504E +:102A6C0014FD220AF0C1E0FDC52BC0F0C15003FDDE +:102A7C00C52BC0D7C72004FBF8FFCC02008D319CBE +:102A8C00035010C150A4FD8902C0629D31D454DDA5 +:102A9C0004F2ED4A2B8C037B315C08D1DD0F8D31B8 +:102AAC005C08D1DF05CC0210EF03CC02208C037B39 +:102ABC00315C04D1DD158D315C04D1DF088C026CE6 +:102ACC00049C02EF068C026C089C028FB2FB5CF338 +:102ADC00728D315C0C6162629FB2FB8FBEFB7CFF1E +:102AEC0050FF5E029C02D1DD1F34B6FB896E029949 +:102AFC00716207CC0100316207086159018C01D168 +:102B0C00DFF4716307716B278D315C40D1DD0950A7 +:102B1C0002C15012FD4E35C08D315C01D1DD08E093 +:102B2C00C15012FD4E35C0717AFA8D315C41D1DD48 +:102B3C000C5A31BED831C15010FD0048C0F21004FF +:102B4C00C6D7FDD027F2D7FD3728F2D7C78FC6FBE3 +:102B5C007617FDCE28664FC6FBDFF2F5C6FBF2C634 +:102B6C00D75064FD220AFDC92C6261FB711196F1EC +:102B7C0071149661DC70C15012FD0048C0FDFC362A +:102B8C00CD6303D7C7C1C1FBF8FFAC0ABB17C1505B +:102B9C0002C18C0270C1506CFD630310061004C698 +:102BAC00D7C7C1FBF8FFAC08C15002C18B70C15034 +:102BBC006CFDB1021006C0C6D7C78806166770C177 +:102BCC00C75084FD2C031004C6D7C716C75084FD0C +:102BDC008902C0C6D7C74A2004DE045600EF02564D +:102BEC00018F08F9318FE7240000DD1A23DD0B2358 +:102BFC00DD0C23DD1123DD0CEF0C8686EF08510470 +:102C0C006106EF02868666318F12504CD633514CDA +:102C1C00D6610A045420BD384008F902DD0640088C +:102C2C00F904DF08CD3B54CD3C44EF06CD3B4BCDF6 +:102C3C003C3DC6D740AFFB3DDC05CF04FC0FD74075 +:102C4C00AFFB1FDC05CF04FC0BD740AFFB0BDC0547 +:102C5C00CF04FC07D740AFFB0661D831320405CF57 +:102C6C0004FC03D7D5AFFBDD04E504FCD7F504FC6D +:102C7C00D7D504F9DF04717396D7FDC92C6261FBBB +:102C8C0071019771149671079761C831729617711B +:102C9C007296710497711196F171049761DC70C191 +:102CAC005012FD0048C0D7C716C75004FDAD2BC04D +:102CBC00C6D7C716C75002FDAD2BC0C6D740AFFB59 +:102CCC000BDE02E2D7F2D7C75003FDD62B62318F51 +:102CDC00085CFD70C15003FDC52BC0C6D771000147 +:102CEC000571785005713AD5713BD18F10055CFC9C +:102CFC009F1005CF54054AE542057110420571003D +:102D0C004205714850057130500571205005CF5364 +:102D1C000509CF52050B7130510571205105713BDE +:102D2C00D5717050058F11055CFC9F1105F422D7ED +:102D3C007178500571080105D7FDF638FD980471BE +:102D4C007AFAFDB123F504F98F06F931051B50030E +:102D5C00FDD62B625C01D161E8CF04F902CFAFFB49 +:102D6C0064710407714196EF10F67104076110123B +:102D7C00F6B1236061FB714196FDFE30FDA44371F9 +:102D8C002299712BE7618461A461EDEFF8D7C788B4 +:102D9C00061666614FDD0967614EDE0396EF01860C +:102DAC006672C6D7C7161714AA0412A943DD29AA3E +:102DBC000412A923FD2E4FC3AC02FD2E4F13C2BD2E +:102DCC00D813FDA50FDE0C1714AA0212AA0403BA1D +:102DDC0004EF051714A9BA04AC041231FF319E0399 +:102DEC00317F087208C6D77100F200304400BFB6BC +:102DFC0001300188BF9001300984BF9E01BF9C0146 +:102E0C00BF9A01BF9801BF9601BF9401BF9201F513 +:102E1C003CFF30FE00BFBE01F6BFBC01BFB8015085 +:102E2C00EEBFBA01A1BFB201C918FE008F06F9317D +:102E3C000507F5CDFBCB6CFF00717397716297D7CB +:102E4C00C72004FBF8FF3026FBBC02F6BBAB446486 +:102E5C0000DE0EAC0214CA0000617902617900EF49 +:102E6C00EC1004C6D730EF00BFB401F6BFBA017145 +:102E7C0008F200712304715307BE6EBE64BE6A7102 +:102E8C002304715307715BD1F457F456716397D7D0 +:102E9C008D58B458D1DF6931D4D105715BD1E45769 +:102EAC00D457DD2E7140B2FBD856F1E73402002323 +:102EBC00DD0625DD0325DF05F6BE66EF06D9CCFB66 +:102ECC00F1BE66A4564A5620DF04F456F457CD588A +:102EDC0019D7CD581E7148B2FBD5CEFBDF04F6BE18 +:102EEC0066D7D9CCFBF14266FFDD15D9CCFBF112CC +:102EFC00AE6643DE05A266FFEF03B266FFCD580354 +:102F0C00D7C7161714F6B9AA0412F6231231FF31DB +:102F1C00AE03316FBA02AA046168DD0AAA026168C5 +:102F2C00DF04F6B1BA02C6D7C7C1FBF8FF8C085054 +:102F3C0080D612AB1413B9AB14AA0412A92312D95C +:102F4C0027FBF133BDD813FD110EBA02C0C6D73121 +:102F5C00049801D74004F902DF10F6BE64BE6EBEC1 +:102F6C006ABF8EFBBF94FBBF9AFB31749714308AF7 +:102F7C00FBFD0D2F3090FBFD0D2F3096FBFD0D2F23 +:102F8C00EF713114980D7113987108D2FBF45AF447 +:102F9C0059EF60D459DF5A8F26FB9D594A5A1FDCD2 +:102FAC00177100D2FB4028FBFFDD1CA45B8F28FBB4 +:102FBC004B5BDE13F45AEF0FD85AF1A1605C1F9DE6 +:102FCC005A7108D2FBF45BE85A092AFB70C1308AAB +:102FDC00FBFD342FC0E85A094AFB70C13090FBFD51 +:102FEC00342FC0E85A096AFB70C13096FBFD342FB0 +:102FFC00C0B459308AFBFDB02DF313BE6E3090FB7C +:10300C00FDB02DF313BE6A3096FBFDB02DF313BE4D +:10301C0064D7C736F00071F4DC297170F000CE9DD6 +:10302C0008CE9EC0CE9F80F594FFF593FFF592FFDE +:10303C00E597FFE596FFE595FFE598FFCE9C7F7140 +:10304C0000A6FB711BE3712BE3711AE7712BE7717F +:10305C007A9D710A9E31929E02EFFA710B9E71233A +:10306C0098713398714398C6D7C73122981E712234 +:10307C0098710A9E31929E02EFFA34D4FB3692FF7D +:10308C0052078B99A5A792DFF9710B9EC6D7C788FB +:10309C00061631329815713298C7349CFB3092FF6A +:1030AC001652078B99A5A792DFF9C6667367189C11 +:1030BC00FBC6D7C77123983134981E713398710AA7 +:1030CC009E31929E02EFFA3492FF369CFB52078B94 +:1030DC0099A5A792DFF9710B9E314498137143980F +:1030EC00717B9E8FDCFB9E9A8FDDFB9E9B717A9E83 +:1030FC00C6D7CFA7FB5CCFA8FB5FCFC8FB5DCFFCCF +:10310C00FB36CFFDFBC9D7C7CFA4FB13CFA5FB382C +:10311C00CFCCFBFFF5CDFBF5CEFBF5CFFBF5D0FB14 +:10312C005600664C64DE08723826FB0086EFF3F519 +:10313C00E3FB714A9D712B21710A20711A207102D7 +:10314C0003C6D7C788061617F1E73403002361E3DB +:10315C00ED7B342361F8ED5233B12361E3ED5C3345 +:10316C002561F8ED6A33B1240D0061D8ED7B342470 +:10317C000B0061F8ED44322361F8ED87322361F8DE +:10318C00ED57322361F8ED743424060061F8ED0636 +:10319C0033B12561D8ED223324000061F8ED2F33D3 +:1031AC002361F8ED7B342361F8ED7934B12361E3CD +:1031BC00ED8A332361F8ED9B332361F8EDAC3323B7 +:1031CC0061F8ED9B332361F8EDBD332361F8EDCE4F +:1031DC00332361F8EDDD332361F8EDFF332361F820 +:1031EC00ED0A342361F8ED15342361F8ED1D342418 +:1031FC0002002361E3ED7B342361F8ED513423614C +:10320C00F8ED25342361F8ED30342561F8ED3B34CD +:10321C00B124060061D8ED7B3424000061F8ED7D0B +:10322C00342561F8ED463424120061F8ED003323A7 +:10323C0061F8EDF032ED7D3467D1DD0C30293C6165 +:10324C009434C4FB89616F99ED8734675C02D1DDDE +:10325C0007304E2B6194EF0B675C01D1DD053053C9 +:10326C002B6194675C3CD1DD0F30582B6194675C0B +:10327C003C7266736218A4FBED873467D1DD625C27 +:10328C0001D1DD05300800EF01F6609F01FC675CA1 +:10329C0002D1DD03E6EF01F63401FC896168996720 +:1032AC005C04D1DD04E6A1EF01F63401FC89616810 +:1032BC0099675C08D1DD05302000EF01F63401FC84 +:1032CC0089616899675C10D1DD05301000EF01F65B +:1032DC003401FC89616899675C20D161E8716001F7 +:1032EC00FCED87344A5CC8DE08E85C67185AFAA41F +:1032FC005CED8734679D5CED8734D44ADF08679FAB +:10330C00CDFBA44AEF0D4A4A05DE08E84A671811BE +:10331C00FDA44AED8734675C0F7266736218A4FBD8 +:10332C00ED87344A4A64DE1B4A4A01DF0667D161E5 +:10333C00F85701E84A671826FBA44A4A4A0561C8AF +:10334C00711298ED873434A6FB89615F99ED87344F +:10335C0030BF29619466736718A4FBED873440A9CC +:10336C00FB6ADF1340AAFB68DF0D674C6CDF08308B +:10337C00E1406194713AD5679FABFBED8734675C94 +:10338C007F70C117F1243000FD9A30C0ED8734678F +:10339C005C3F70C117F1243000FD9A30C0ED8734CA +:1033AC00675C0770C117F1243000FD9A30C0ED87BF +:1033BC0034675C1F70C117F1243000FD9A30C0EDEA +:1033CC0087346770C117F1243000FD9A30C0ED8747 +:1033DC0034CEABAC710A9E31929E02EFFAD592FFBD +:1033EC00DF05710B9EEFED679E99710B9E9FDBFBCA +:1033FC00ED8734714298675C7F9FDCFBEF7D7142F7 +:10340C0098675C3F9FDDFBEF72675C3F9FDEFBEFD5 +:10341C006A675C1F9FDFFBEF6230DA396194679F4C +:10342C00E4FBEF5730A7396194679FE5FBEF4C3015 +:10343C00C0396194679FE8FBEF41675C01D1DD3BCC +:10344C00FDA443EF36675C02D1DD05712A21EF063E +:10345C00714A9D712B21675C01D1DD0671030071EE +:10346C000B20679FE3FBEF1367318EEF0EEF0CEF32 +:10347C000A664C5BDE05736718A4FBC6D7C71666D5 +:10348C004C30DC094C37DE05FD7530EF76664C02AE +:10349C00DF1F8FA6FB5C03728F03FC5C03318E3144 +:1034AC006D08616A08128F03FC5C80312A6162EF3F +:1034BC0061664C3DDF08AE90BD5EF85EEF54664C25 +:1034CC003EDF04F85FEF4B664C4FDF05FDCC43EF5E +:1034DC0041664C61DF134A5CC8DC045700EF06E818 +:1034EC005C095AFA776772EF29664C7FDF05FD9A03 +:1034FC003CEF1F664C4EDF0B31049A045210EF1256 +:10350C00F2EF0F664C5BDC0452FFEF06667309A406 +:10351C00FB72C6D7C788061617F1241000240500C5 +:10352C00DC07244C00DD17EF17717BFA17F104A4AC +:10353C00FB1489617F99717AFA715298EF02A45C3D +:10354C00C6D7C7C1C1FBF8FF4004F903DD06400430 +:10355C00F904DF38717BFA8C027309ACFB5E0AD17B +:10356C00DF278C02318E04A4FB14896E0A997162D8 +:10357C0007717AFACC0100316207086159018C019C +:10358C00D1DFF4716307716B27717AFA1004C6D717 +:10359C00CF03FC03F501FCF505FCF507FCD7C78848 +:1035AC00061617F1E734020025DD3D23DD1725DD76 +:1035BC001C23DD0523DD2BEF3B710299679F06FC75 +:1035CC00CD6303EF2F675C839F03FCEF27675C03DE +:1035DC009F05FC675C034C0261F871229AFDBA45A9 +:1035EC00EF12679F07FCEF0C6791DF08E0C15012E8 +:1035FC00FD4E35C0C6D7C71617F1E7240000DD2AEB +:10360C0023DD1E240300DD0724FB00DD24EF253120 +:10361C00329A05308000EF01F6086F04FC7208EF57 +:10362C00198F01FCF501FC72EF107152995235EFB4 +:10363C0009F2EF0666730900FC72C6D7C71617F1BC +:10364C00E7240000DD38241000DD1C23DD1C23DD05 +:10365C0030240E00DD18241100DD1B240F00DD12B8 +:10366C00243000DD15EF1EE2EF1D5202EF1952045B +:10367C00EF155206EF115205EF0D5207EF09F2EF5D +:10368C00065203EF0252FFC6D7C7316498377163F5 +:10369C00988D629FACFB8D619FCBFB36D2FCC7D85B +:1036AC0061FDFC37618A70618AFD4138C0D866F1D2 +:1036BC00312F609D658D604B65DD0A7172988D654B +:1036CC009D60CD63034A6305DE083006376194CDF7 +:1036DC00636BB4637150F000CE300BCF170006CE85 +:1036EC003106FD6402717A30710BE3710BE7C6D7BA +:1036FC008D659D608D659FADFBD74004F903DF069A +:10370C004004F904DF02F2D73174980C717398718C +:10371C0013998D659D67EF313104991F7103997170 +:10372C001299D506FCDF04F468EF0A8F06FC5002F0 +:10373C00D6A1609D688D689D67EF0E311499068D3A +:10374C00689D67EF048D659D678D679FADFBD8679E +:10375C00FD6E37E867091C2270C15013FD0048C08C +:10376C00F2D7C7C1C1FBF8FF8C02D1DF05F506FC0F +:10377C00EF1A8C024C05DE06CF06FC02EF0E8C0213 +:10378C00318E1231FE03311F609F06FC8D694F068E +:10379C00FCDD28CC011F8F06FC9D69CC00008B4CF6 +:1037AC0008DE148B730912204F06FCDC058B9C0180 +:1037BC00EF05615900EFE78C019D641004C6D7C773 +:1037CC0016710AE7710BE37150F000CE300BCF1776 +:1037DC000006669E31FD6402717A30710BE3318212 +:1037EC00E302EFFA8D1F7158F000710BE772C6D728 +:1037FC00C7C1C1FBF8FF8FFCFB4E02DC03F2EF31BB +:10380C008C024FFDFBDC0452FFEF268C022FFCFBDD +:10381C00706131318D128FFDFB2FFCFB70613133E8 +:10382C00BDD813FD330EBB440001DC03F690BB8BFB +:10383C00721004C6D7C7C1FBF8FFAC0814A91489D1 +:10384C00708B6128706131FD2E4F1344030071FEA3 +:10385C00DC23AC08148A04819A04AC08148A044C46 +:10386C0011DC10A9148B99AC0814CA0200AC081412 +:10387C00CA0310EF72AC0814CA0400AC0814A914E3 +:10388C00894DDE0AAC08148A02819A02EF12AC0848 +:10389C0014A914894D61D308AC08148A02919A02B8 +:1038AC00AC08148A03919A03D1DF3CAC08148A0249 +:1038BC004C10DF10A91489318EA112AC0814A91474 +:1038CC006299EF17AC08148A024CF0DF0EA9148928 +:1038DC00318EB112AC0814A9146299AC0814CA0246 +:1038EC0000AC0814CA0310C0C6D7EDF938C756008F +:1038FC00664C0ADE0BF0317E12F67810FC86EFF087 +:10390C00C6D7C7200CFBF8FF17040600C15006C130 +:10391C0050A8C15030FDB1021006D2DD1B4A6C0418 +:10392C00DE05A46CE2EF7034E4FB895CFC99FDDAF3 +:10393C00397110B2FBF2EF5F717BFA300600C117E0 +:10394C00040600C130E9FBFD364F1004717AFAF41D +:10395C006C8FE4FB5C01D1DD264004F903DF2050C1 +:10396C0010C180FD4E35C0C736100571D4C6DE0FB0 +:10397C0017C15006C150A8C15030FDB1021006400D +:10398C0004F903DD064004F904DF0B8FE4FB5C0251 +:10399C00D161E8FDE640F2100CC6D7D9E5FBC15069 +:1039AC0030FD8902C0629FE8FB5008C15011FD4EEA +:1039BC0035C0F2D7D9E8FBC1D9E7FBC15030FD2C9B +:1039CC000310045008C15011FD4E35C0F2D7C7206A +:1039DC000CFBF8FFCC09004007F901DF05CC0A020B +:1039EC00EF03CC0A10CC0B808FE4FB5C039C07D15B +:1039FC00DF08717AD5CC0807EF06717BD5CC082F80 +:103A0C0017040800C15004C150A0C15030FD63031D +:103A1C001006624C02DF077110B2FBF2EF35711821 +:103A2C00B2FBF46CC736100571D4C6DE164004F92F +:103A3C0003DF1017A1C15006C150A8C15030FDB111 +:103A4C00021006717BFA8FE4FB5C034E07DD03E288 +:103A5C00EF01F2100CC6D7D504F9DF03F6BD6E40AA +:103A6C0004F901DD0AD478DD03B478D7CD78038F5F +:103A7C0004F9318FE723DD0B24020024030061C815 +:103A8C00ED973B8F06F931234D301B00466EDF1945 +:103A9C008FE3FB5C01D161E8F504F931049B27E06D +:103AAC00C15010FD4E35C0EF1D307701466EDF164C +:103ABC005002C15010FD4E35C0F64674DF088FC859 +:103ACC00FB5010D6BD74F64674DD36B6744674DF02 +:103ADC0030711297EF2B301B00466EDF13F64676D3 +:103AEC00DF18E0C15010FD4E35C0C9765307EF0A00 +:103AFC00307701466E61F8711297F6467661E8B63A +:103B0C007631549A08714399F6BD6EEF143144998D +:103B1C0005F6BD6EEF0BA66EF6466E61F8C96EFF2C +:103B2C00FF31629A194A7005DE16A4704A7005DFDF +:103B3C000FA4705004C15010FD4E35C0EF02F4704C +:103B4C0031649A194A7205DE16A4724A7205DF0FA7 +:103B5C00A4725008C15010FD4E35C0EF02F472D45F +:103B6C0073DD03B473D731729A174A7105DE14A44E +:103B7C00714A7105DF0DA4715010C1FD4E35C0EFB7 +:103B8C0002F4714A710661F8CD7325D7C73610055A +:103B9C0071D4DE0E8FB2FB5C02D1DF06300E3961C0 +:103BAC0094D24004F903DF1C3122070530802A61CE +:103BBC00943154990C7153995080C15012FD4E356B +:103BCC00C0FDD53BFDFB3BC6D78F03FC5C01D1DDB3 +:103BDC001DD47BDD03B47BD7CD7B098D644B7ADDA3 +:103BEC000D8D649D7A5040C15012FD4E35C0D740AA +:103BFC0004F903DD04F6BD1AD7D5D0FBDF08F64671 +:103C0C001ADD19B61AD7D9CCFBF1461ADD0ED9CC70 +:103C1C00FB12AD1A43DE03A61AD7B61AD7717BFA7C +:103C2C00C78FC4FB76F5C4FB717AFA5C10D161E8DE +:103C3C00716299665C0FD1DD52665C01D1DD05F5D0 +:103C4C0004F9EF47665C02D1DD0CFDD32C71130037 +:103C5C00711B20710303665C04D1DD1171130071BB +:103C6C001B20D503FC61F8710303FD9C35665C08D1 +:103C7C00D161E87103035005FD220A710203500360 +:103C8C00C1FDC52BC0711A20FD6D2BF2C6D7C756CE +:103C9C00FF4A4A1361C8ED583D8F06F931150D31B5 +:103CAC004505300600EF14300400EF0F8F06F93194 +:103CBC004505300500EF04D907F9F1609F28FC8D0C +:103CCC007C9F29FC713496E661301271049661DC9C +:103CDC0031196162629F2AFCE52BFC31449A053054 +:103CEC004000EF01F6C131340405302000EF01F63D +:103CFC00C2616B08616A08C131749A05300400EF27 +:103D0C0001F6C2616B08616A08C131649A04E6A1CC +:103D1C00EF01F6C2616B08616A08C131549A03E67F +:103D2C00EF01F6C2616B08616A9F2CFCF1712404EF +:103D3C0061DC9F26FCF171540761DC9F27FCD84A9B +:103D4C00F10104ECFC14A9148976A44A6672C6D756 +:103D5C00C7FD46098F04F9318FE724000061F8EDA7 +:103D6C00373F23DD1B2361F8ED433E2361F8EDBCA7 +:103D7C003E2361F8ED053F2361F8EDD73FED343F6D +:103D8C00F6BD747113974005F901DF2C31349A1B81 +:103D9C00466EDD04F424EF02A4244A2465DC0FF6FD +:103DAC00BD6EF504F9712299ED5C40FDB123AD6E49 +:103DBC00440A0061D8ED5C40714299FD980471632E +:103DCC0096FDB1234007F903DF09712299F504F937 +:103DDC00ED5C40FD7E2640B1FB9BDE09712299F51E +:103DEC0004F9ED5C40714A277140110571301105E1 +:103DFC00713A22715A2271501105FDD829D2DD0970 +:103E0C00712299F504F9ED5C4071103500CF370043 +:103E1C001D71401205FD3F2A4005F901DD064005E4 +:103E2C00F903DF05F5CDFBEF04CFCDFB03CF04F990 +:103E3C0002FDAA29ED5C4071103500CF37001D71D1 +:103E4C00401205FDE92CFD0605FD9C35FD1331F5F1 +:103E5C0037FF712BE0F505F9712299CBE43FEFCBDD +:103E6C00E6F6F0FD9804713BD48F06F9310522502B +:103E7C0002FDD62BD261E87170B3FB5004FDD62B3A +:103E8C00625C03318E315D34B3FB89616899FDB19D +:103E9C0023FDF32D710806F9CF04F9038FA6FB5C03 +:103EAC0002D1DD095080C15010FD4E35C0ED5C4093 +:103EBC00FD5E403164992FA47ED47EDD0831A4E0F0 +:103ECC000A31020C06712BE0FDD24031A4E017310F +:103EDC00040C13712BE05027C15005FDC52BC0CF2E +:103EEC0004F904712299FDC7408F06F93125073179 +:103EFC00349A03F504F9ED5C40FD5E4031020C157B +:103F0C00D83AC15005FDC52BC05005FD220AFDD283 +:103F1C0040CF04F903FDC7408F06F9312507313432 +:103F2C009A03F504F9ED5C40F504F9CFCDFB03F5EC +:103F3C00CEFBF5D0FB717297F6426CFF61E8ED5C3D +:103F4C0040F6BD74711397F5E4FBFDDA39717AFA1A +:103F5C00FD712EFD3C2DFD5805712B21714B9D31B2 +:103F6C00349702EFFACE3708CBE4BFFFCBE6FFF372 +:103F7C00CED4FFF5B4FBF5B5FBF5B6FBF5B7FBCF2F +:103F8C0037000971481205F6BEE0BEE2BED0716A78 +:103F9C0027FD522A714307714B2771481005714850 +:103FAC0011057138100571381105713302713B22FE +:103FBC00715302715B227158100571581105CF04B1 +:103FCC00F905714299F6BD6EFD0F0AF505F9F42459 +:103FDC007128100531349A04D432DD20E505F9E559 +:103FEC0004F98F06F9312568F5F8FBF5F6FB502E30 +:103FFC00FD220ACF05F903E504F9EF54FDEC04FDAD +:10400C00442371730171320471430271039671621E +:10401C009631949E02EFFA712AE7CEA409F5F300CB +:10402C003104070261FDE5F300F46AFD4609CEA4F4 +:10403C000831329A06CF04F905EF09714399E50569 +:10404C00F9E504F9712BE78F06F9312503F504F92D +:10405C00C6D78FE3FB5C01D1DF60D47FDF1931025F +:10406C0000585003FDD62B625C01D1DF07F504F933 +:10407C00712299D7E47FD74A7FF0DF073104003AE9 +:10408C00F47FD74A7FC8DF0AF504F9712299CD7FF6 +:10409C00F0D7310200084A7FFFDD1FA47FD7F0C1A3 +:1040AC005004FDC52BC08FB3FB5C9F9FB3FB7110FD +:1040BC00C4FB30293C6194CD7FF0D731149706F5C1 +:1040CC0004F9712299D7716399F47E717207FD64BA +:1040DC0002717307D7FD6105F2D7717BFAC7200C0B +:1040EC00FBF8FF8FEAFBF0F9E9FBF303FD2E4F130E +:1040FC00BC048FECFBF0F9EBFBF303FD2E4F13BC70 +:10410C00028FEEFBF0F9EDFBF303FD2E4F13BB71A9 +:10411C007AFAAC04BDD8F6BDDAAC04311EBDDCF6BF +:10412C00BDDEFDE60DADD8BDDCADDABDDEAC02BD4D +:10413C00D8F6BDDAAC02311EDADCC3DADEC3BDDC84 +:10414C00F6BDDEFDE60DC0BDDEC0BDDCADDEFD5C4A +:10415C000FADD8BDDCADDABDDEABBDD8F6BDDAAB8C +:10416C00311EDADCC3DADEC3BDDCF6BDDEFDE60DE6 +:10417C00C0BDDEC0BDDCADDEFD5C0FDADAADD8FD56 +:10418C00B544C3C58D8C5C3FF0317E0440FC14C239 +:10419C00C0B9A48CF6BC08BC0A9C078C074C2EDD5D +:1041AC003D8D8C0E0770F161DC605C3FF0317E124E +:1041BC007940FCBDD8F6BDDA8C0773095C22318FCF +:1041CC00BDDC70BDDEFDE60DAC08BDDCAC0AFD5CF3 +:1041DC000FADDABC0AADD8BC08615907EFBDAC080D +:1041EC00BDD8AC0ABDDAC9DC0004F6FDB00EC9DCE2 +:1041FC00FFFFF6FDB10FADD8BD86AF3AFC4686DDAC +:10420C0011AF3CFCBF3EFCAF3AFCBF3CFCAD86BFE3 +:10421C003AFCAF3CFC423EFCDC46AF3AFC423CFC78 +:10422C00DE3EAD26423AFCDE374A2A16DC1A4A2A12 +:10423C00A0DE138D884B2ADE0DAF3AFC268A44692A +:10424C001061C8FD9E42F42AAF3AFC445146DC0A88 +:10425C00AF3AFC241027BD28EF0DC928F82AEF0728 +:10426C004A2AFF61E8A42AAF3EFC423CFCDC18AFB2 +:10427C003CFC423AFCDE10AF3AFC4628DE09F488DE +:10428C00AF3AFCBD8AEF074A88FF61E8A488100C9E +:10429C00C6D7717BFAC7710A9E31929E02EFFA8ED5 +:1042AC00949F34FC8E969F35FC8E979F36FC8E988F +:1042BC009F37FC8E939F38FC8E929F39FC710B9E1E +:1042CC00717AFA8F37FCFDC50F76FD334413BD842C +:1042DC00D5EFFBDF0AD5F0FBDF05D5F1FBDD25F6CD +:1042EC00B14684DF11C9843722665C0391DF060A6C +:1042FC0084181A85009617FD564513FD7643310434 +:10430C009A02EF61520692926934FC682EFCDFF639 +:10431C00AD84BD82F880F3311C790AF944FEFFDDCF +:10432C0044D880F101040AF914A944FFFFDF04E624 +:10433C00B9EF0BD880F101040AF914A9A1B9717B6A +:10434C00FAA0EFFBD5EFFBDF1CA0F0FBD5F0FBDFF9 +:10435C0014A0F1FBD5F1FBDF0CCFEFFBFFCFF0FB93 +:10436C00FFCFF1FBFFC6717AFAD7C716D880F107D9 +:10437C0044A800DC0571029AEF1CF647DD18A480F6 +:10438C004A80A8DC0571029AEF0CF880F3311CF618 +:10439C00780AF9B7EFE4C6D7C756A89666F0317E0F +:1043AC0012F6B1780AF966D1DFF1717BFAF5EFFB01 +:1043BC00F5F0FBF5F1FBF48071039AC6717AFAD72C +:1043CC00C72004FBF8FFD44ADF168D809D8D717BCE +:1043DC00FA52069292692EFC68C0FCDFF6717AFAEA +:1043EC004A4A06DE0EE84A09C0FC9C03A44A8C0328 +:1043FC0072EF30F88DF3311C790AF9BB31129A0542 +:10440C008B9C03EF0F8C019C03D48DDF05CD8DA706 +:10441C00EF02B48D718071179A61DC61FB71119A96 +:10442C008C03721004C6D7C72008FBF8FF8F37FC2B +:10443C00FDC50F9C078F36FCFDC50F9C068F35FC08 +:10444C00FDC50F9C058F34FCFDC50F9C048F38FCFB +:10445C009C038F39FC9C028C06318E0112791A2038 +:10446C00BB8C075C03D1DF098C064C0361C86179F6 +:10447C00008C05318EB1610900BB313D120103BBCB +:10448C008B0E04708C011C00BB8FF4FB4E03DC0EF6 +:10449C008C034FF4FBDC0B8C024FF5FBDC04AB12F2 +:1044AC00EF03ABB1121008C6D7C7C3C12008FBF885 +:1044BC00FFF661490A61F8614908DF07F73400002B +:1044CC00ED5245E6BC04F6BC06AC0ABC02AC08BB1B +:1044DC00AC06614902AC0461F8614900DE28AC0409 +:1044EC00BDD8AC06BDDAE1FD6B0FADDABC06ADD8BC +:1044FC00BC04ABBDD8AC02BDDAE1FD860FADDABCB5 +:10450C0002ADD8BBEFCAAC06BC02AC04BBAC08BD58 +:10451C00D8AC0ABDDAAC04BDDCAC06FDE90EAC04CB +:10452C00BDDCAC06FD5C0FE1FD860FADDABC06AD63 +:10453C00D8BC04AC06614902AC0461F8614900DCEA +:10454C00C5AC0214AB12100CC6D7C7C12004FBF8C3 +:10455C00FF8F31FCFDC50F9C034E04DF1CAD824662 +:10456C0084DE07AD84268212EF40F64684DF0746D0 +:10457C0082DD03E7EF34F7EF318C04318EB1128C0E +:10458C0003318E43DF1830382226820684BB8C041C +:10459C005C0391DF05AB041800BBAB12EF0C8C0372 +:1045AC004E04DE0532A900EF01F71006C6D7717B69 +:1045BC00FA31229A0CF64690DD07B690717AFAEF32 +:1045CC007C71239A717AFA4004F904DF077153075E +:1045DC00F42CEF69D9CFFBF1E7240000DD0F23DDCC +:1045EC001A23DD1023DD5323DD2723DD3871530718 +:1045FC00F42CEF49715207F42CEF42D42CDF0771E5 +:10460C005207E42CEF05715307F42CC990FA00EF14 +:10461C002CD42CDF0B715207E42CC990FA00EF1D3F +:10462C00F5CFFBEF18D42CDF0B715307E42CC9909A +:10463C00FA00EF09CFCFFB02EF03FD4A46D7D905AD +:10464C00FCF1E7240000DD0923DD2123DD0923EF44 +:10465C001B715307F42CD7D42CDF07715207E42CB1 +:10466C00EF05715307F42CC9902D01D7715207E453 +:10467C002CD731629701D7710398D9CDFBF1E72480 +:10468C000000DD1223DD1923DD1123DD2623DD34AB +:10469C0023DD3923DD3FFD0A47EF3DFD2B47EF3886 +:1046AC00D9CCFBC1AE6CFD9A2DC0F313BE6C71233B +:1046BC0004EF25F0C1AE6CFD9A2DC0F313BE6C71E6 +:1046CC002304EF14F6BE6C712204EF0CCB6CFF00CC +:1046DC00712304EF03FD9F474004F905DD064004F8 +:1046EC00F901DF067123047103983104980FF6BEAB +:1046FC0064BE6A31220402EF02F690BE6ED7CD2E54 +:10470C0047F492AE6C317DBFCAFCFD7447D2DF0E0C +:10471C00D9CCFBC1AE6CFD9A2DC0F313BE6CD7FD8A +:10472C007447D2DD0DCD2E47F492AE6C317DBFCAED +:10473C00FCD7E8920934205080D6BFC6FC22CAFCB4 +:10474C00BDD8304700FD110EBFC8FC30C6FCFDB013 +:10475C002DF313BE6CB42ED42EDF0CCD2E47A492A9 +:10476C004A921F61C8F492D740AFFB0BDC05712352 +:10477C0004F2D740AFFB0661D831229611F0C1AEDE +:10478C006CFD9A2DC0F313BE6C712204EF03FD9FD8 +:10479C0047E2D7710298F0C1AE6CFD9A2DC0F313AD +:1047AC00BE6CA4934A9340DC37F493D894F1313F18 +:1047BC000412FD14D894F1BDD85008FD600E087297 +:1047CC0008E6D2DD040192DFFC896158D1DD057168 +:1047DC002204EF03712304A4944A942061C8F49436 +:1047EC00D7C73026FDC6D77180717DFADE03520122 +:1047FC00D75200D7C7C12004FBF8FF17040300C130 +:10480C00E0C15010C150A4FDB1021006629C02D14F +:10481C00DD058C0272EF518C0C70C18C0470FD782C +:10482C0048C0629C02D1DD058C0272EF3B8C035CAC +:10483C007DD1DF03F2EF3117A1C1E0C15010C1509F +:10484C00A4FDB1021006629C02D1DD058C0272EF50 +:10485C00178C015C7DD1DD03F2EF0D8C0370C15020 +:10486C0010FD7848C0629C021006C6D7C788061691 +:10487C00710AE650A4FDE503D2DD077133975202AD +:10488C00EF1317FD01046770FD0104FDA348FD75CE +:10489C0004713397F2C6D7FD4C0450A4FD010450AB +:0948AC0020FD010450AAED0104F5 +:1048B50061FC61FCC1C3C5C7520C929269D4FEC1AB +:1048C500DFF88EFD708EFCC1717AFA4004F903DFC2 +:1048D5000530802A6194C09EFC609EFD34D4FE5252 +:1048E50006C0B9A5A592DFF9C6C4C2C061FC61DFE7 +:1048F500520C929269D4FEC1DFF88EFD708EFCC118 +:104905008F4105775C04D1DD06675C01D1DD50314F +:104915005498367162077153988FB4FB5FBCFBD115 +:10492500DF1B8FB5FB5FBDFBD1DF128FB6FB5FBE13 +:10493500FBD1DF098FB7FB5FBFFBD1DD0C31620710 +:1049450002EFFA716307716B2771139AFDBF30F49B +:10495500227148500571605005717AFAED4F4A672A +:104965005C02D1DD16D422DD124A2202DD0DF422CD +:104975007148500571605005717AFA717AFA8D2285 +:10498500318FE7240000DD0823DD1423DD2CEF4AF9 +:10499500F44A7140500571505005E422ED4F4A8F9D +:1049A50040059D4B715050058D4B9D4DD84BFD8954 +:1049B50034629D4CCD2202ED4F4A675C02D1DD1772 +:1049C500675C10D1DD05CD2203EF0F7148500571ED +:1049D500605005F422EF73CD22044A2203DF108DC7 +:1049E5004C9F4005D84CC1D84BFD2035C0EF1F8FDB +:1049F50040057671744BDC054A4B02DE067160504A +:104A050005EF47C7D84BFD4F31C071505005D84D04 +:104A1500F1242900DD27240400DD22242200DD1DE8 +:104A2500241100DD0C240100DD13241E00DD0EEF32 +:104A35000A4A4B60DF07CD4B61EF02A44B4A2203C4 +:104A4500DF08D84BFD8934629D4CC09EFC609EFDFD +:104A550034D4FE5206C0B9A5A592DFF961FCC1C3E5 +:104A6500C5C7520C929269D4FEC1DFF88EFD708ED7 +:104A7500FCC1717AFA51405F0401D1DD06F616A733 +:104A850047DFF2300400BF2401F6BF2A01300B0BCB +:104A9500BF2801FD6402300B0FBF2801FD64023001 +:104AA5000F0FBF2801710AE6F6420C01DD33AF0492 +:104AB50001BF0C0131529729715297710BE2D85100 +:104AC500FDE5033184BD02EFFACBB422FBD853F1E7 +:104AD500BEB8714BE1714BE5710ABD8D529E44EF35 +:104AE5000C715397714AE5717BBD713397C09EFC7C +:104AF500609EFD34D4FE5206C0B9A5A592DFF9C665 +:104B0500C4C2C061FCC1C5717AFAD450DD0BEA4E4E +:104B1500899E44A64EB450EF33710AE6300400BFB7 +:104B25002401F6BF2A01300B0BBF2801000000004D +:104B350000000000510FBF28010000000000000028 +:104B450000500FBF2801712397713397C4C061FCD2 +:104B550061EF520C929269D4FEC1DFF88EFD708E22 +:104B6500FCC12006FBF8FF71503002CEABACCC0483 +:104B750000F6BB31B2E210617900F6614900DFF35E +:104B850071603002ED0F4C8E519C03713BE28C033A +:104B95005C02D1DD1E8C035C08D1DF097150300247 +:104BA500CC0400EFCC8C0570FD0236629E50CC041F +:104BB50002EFBE8C035C03D1DF408E509C02715026 +:104BC50030028C04D1DF0E8C0270FD4836629C05E4 +:104BD500CC0401EF328C044C02DF0671603002EF29 +:104BE50029CF34025A716030028C0270C18C057075 +:104BF500FDAA35C0CF34024AEF108C035C01D1DD2C +:104C05000671603002EF03ED764B1006C09EFC6026 +:104C15009EFD34D4FE5206C0B9A5A592DFF961FC0C +:104C2500C1C3C5C7520C929269D4FEC1DFF88EFD8F +:104C3500708EFCC1710A9E31929E02EFFA8FDEFBE7 +:104C45004F96FFDF198FDFFB4F97FFDF118FE0FBDB +:104C55004F98FFDF095004C15011FD4E35C0710B4F +:104C65009EC09EFC609EFD34D4FE5206C0B9A5A52B +:104C750092DFF9C6C4C2C061FCE46A61FCC1C3C568 +:104C8500C7520C929269D4FEC1DFF88EFD708EFC7E +:104C9500C1C1FBF8FF8D1F9C018E31318EE72406C3 +:104CA50000DD0823DD0E23DD22EF38717AFA8C0151 +:104CB5009D62EF2F717AFA4007F901DF068C019D9D +:104CC50061EF2051FF2E019D61EF18717AFA8C0179 +:104CD5009D304004F903DD064004F904DF0530DCAE +:104CE5002561944031FF09DE05A031FFEF077158BA +:104CF500F000716298710BE3C0C09EFC609EFD34AC +:104D0500D4FE5206C0B9A5A592DFF9C6C4C2C061DA +:104D1500FC717BFAC7D46A61F8312499277123990C +:104D2500D46ADD05B46ACEABAC717AFA5600664C2E +:104D35000ADD1172F3311C79D8FCCEFC0061CA6121 +:104D4500A486EFEA717AFAF2C6D7C7C1C1FBF8FFAC +:104D5500CC01008C014C0ADE36717BFA8C01F031F6 +:104D65007E0410FC14A96168DF09AC02B9717AFAF6 +:104D7500F2EF1D8C01F0317E127910FC614902DFE2 +:104D850006717AFAE2EF09717AFA615901EFC4E224 +:104D95001004C6D7C72004FBF8FFF64210FC61F8E3 +:104DA500ED7B4E717BFA9C038C034C0ADE3C8C0335 +:104DB500F0317E0410FC14A96168DF05717AFAEF01 +:104DC50029717AFA8C0372F3311C7910FCCEFC0040 +:104DD50061CA629C02D1DF0A8C03F0317E12E6784B +:104DE50010FC717BFA615903EFBECC0200CC0101C6 +:104DF5008C02F0317E0410FC14A96168DD788C0208 +:104E0500F0317E127910FCE743DF658C014C0ADE38 +:104E15005F8C01F0317E127910FCE743DD4D717B2B +:104E2500FA8C01F0317E0410FC14A96168DF186169 +:104E350069018C01F0317E12F67810FC8C024E016E +:104E4500DCED717AFAEF2F8C01F0317E0410FC1441 +:104E5500A9128C02F0317E337810FC8C01F0317E82 +:104E650012E67810FC615902717AFA615901EF9BDB +:104E7500615902EDF54D00F21004C6D761FF520CE1 +:104E8500929269D4FEC1DFF88EFD708EFCC1717AF5 +:104E9500FA8FE4FB5C03D1DD114004F903DD064024 +:104EA50004F904DF05300E396194C09EFC609EFD57 +:104EB50034D4FE5206C0B9A5A592DFF961FC61FCA8 +:044EC50061FC61FC2F +:0A4ECA0000060C12181E242A3036D0 +:104ED400ACFB0000000066FE00000000633A95365B +:104EE4008C227E469C2E5B2FBA45983BD1085C3DB4 +:104EF40028FC36FE20FE02F903F929FC30FE2AFCC8 +:104F04002BFC08F926FC6CFF1AFF6EFF6AFF64FF96 +:0A4F140027FC66FF2CFC555555558F +:104F1E00FF0000000000983AF82AFF00000047004A +:104F2E00317503F7332312D714AEF8C716AC061239 +:104F3E00C5AC0416F643DD078B99A7A5B3EFF5C2F2 +:024F4E00C6D7C4 +:024FF400336820 +:0A4FF60030393A30363A3236000006 +:00000001FF + \ No newline at end of file diff --git a/snake_branches/3.40_jane/bsr.lmf b/snake_branches/3.40_jane/bsr.lmf new file mode 100644 index 0000000000000000000000000000000000000000..ec108512ac2a3137cd15a09de2f4be57b7bc19cf GIT binary patch literal 183864 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 vvVr!&SiPv4oe|KiLIw4X7KFY@i=a0@tmV> chip erase command disabled, otherwise enabled */ +/* bit_1 = 0 -> block erase command disabled, otherwise enabled */ +/* bit_2 = 0 -> write command disabled, otherwise enabled */ +/* bit_4 = 0 -> boot-area re-programming disabled, otherwise enabled */ +/* bit_8...bit_15 = 03H -> last block of the boot-area */ +/* other bits = 1 */ +/* Output: - */ +/* Changed: content of the data_buffer */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetSecurityFlags( fsl_u16 * destination_pu16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: read the boot flag i */ +/* Input: destination_pu08 - destination address of the bootflag info */ +/* The format of the boot-flag info is: "unsigned char" */ +/* The value of the boot info is 0x00 for cluster 0 and 0x01 for cluster 1. */ +/* Output: - */ +/* Changed: content of the data_buffer */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetActiveBootCluster( fsl_u08 * destination_pu08 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: puts the last address of the specified block into *destination_pu32 */ +/* Input: *destination_pu32 - destination where the last-block-address */ +/* should be stored */ +/* block_u16 - block number of the last address is needed */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetBlockEndAddr( fsl_u32 * destination_pu32, + fsl_u16 block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: puts the information about the protected flash area into the function parameter */ +/* Input: *start_block_pu16 - destination where the FSW start block should be stored */ +/* *end_block_pu16 - destination where the FSW end block should be stored */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetFlashShieldWindow( fsl_u16 * start_block_pu16, + fsl_u16 * end_block_pu16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: defines a new Flash-Shield-Window area inside the flash memory */ +/* Input: start_block_u16 - starting block of the Flash-Shield-Window (FSW) */ +/* end_block_u16 - ending block of the flash-Shield-Window (FSW) */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1A(FSL_ERR_ERASE), erase error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_SetFlashShieldWindow( fsl_u16 start_block_u16, + fsl_u16 end_block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: Swapping of bootcluster 0 and 1 */ +/* */ +/* CAUTION !!!! */ +/* After this function the boot cluster are immediately swapped */ +/* Input: - */ +/* Output: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1A(FSL_ERR_ERASE), erase error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_SwapBootCluster( void ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: sets specified security flag by dedicated command-function. */ +/* */ +/* There are following security levels: */ +/* a) chip-erase protection (cannot be reset by programmer !!!) */ +/* b) block-erase protection (can be reset by chip-erase on programmer) */ +/* c) write protection (can be reset by chip-erase on programmer) */ +/* d) boot-cluster protection (cannot be reset by programmer !!!) */ +/* */ +/* CAUTION !!!! */ +/* Each security flag can be written by the application only once */ +/* */ +/* Input: - */ +/* Output: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1A(FSL_ERR_ERASE), erase error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_SetChipEraseProtectFlag( void ); +extern fsl_u08 FSL_SetBlockEraseProtectFlag( void ); +extern fsl_u08 FSL_SetWriteProtectFlag( void ); +extern fsl_u08 FSL_SetBootClusterProtectFlag( void ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: defines the firmware operation method after interrupt service (ISR) execution. */ +/* Input: mode_u08 = 0x00, after RETI the firmware is continuing the interrupted command.*/ +/* = other, after RETI the firmware is interrupted with status 0x1F. */ +/* Changed: - */ +/* Returned: - */ +/*----------------------------------------------------------------------------------------------*/ +extern void FSL_SetInterruptMode( fsl_u08 mode_u08 ); + +#endif diff --git a/snake_branches/3.40_jane/fsl_user.h b/snake_branches/3.40_jane/fsl_user.h new file mode 100644 index 0000000..1018689 --- /dev/null +++ b/snake_branches/3.40_jane/fsl_user.h @@ -0,0 +1,113 @@ +/*==============================================================================================*/ +/* Project = Selfprogramming library for 78K0R/Ix3/Kx3-L Single Voltage SST (MF2) Flash */ +/* Module = fsl_user.h */ +/* Version = V1.01 */ +/* Date = 28.03.2008 11:45:55 */ +/*==============================================================================================*/ +/* COPYRIGHT */ +/*==============================================================================================*/ +/* Copyright (c) 2007 by NEC Electronics (Europe) GmbH, */ +/* a company of the NEC Electronics Corporation */ +/*==============================================================================================*/ +/* Purpose: */ +/* user configurable constant/macros of the selfprogramming library */ +/* */ +/*==============================================================================================*/ +/* */ +/* Warranty Disclaimer */ +/* */ +/* Because the Product(s) is licensed free of charge, there is no warranty of any kind */ +/* whatsoever and expressly disclaimed and excluded by NEC, either expressed or implied, */ +/* including but not limited to those for non-infringement of intellectual property, */ +/* merchantability and/or fitness for the particular purpose. NEC shall not have any obligation */ +/* to maintain, service or provide bug fixes for the supplied Product(s) and/or the Application.*/ +/* */ +/* Each User is solely responsible for determining the appropriateness of using the Product(s) */ +/* and assumes all risks associated with its exercise of rights under this Agreement, */ +/* including, but not limited to the risks and costs of program errors, compliance with */ +/* applicable laws, damage to or loss of data, programs or equipment, and unavailability or */ +/* interruption of operations. */ +/* */ +/* Limitation of Liability */ +/* */ +/* In no event shall NEC be liable to the User for any incidental, consequential, indirect, */ +/* or punitive damage (including but not limited to lost profits) regardless of whether */ +/* such liability is based on breach of contract, tort, strict liability, breach of warranties, */ +/* failure of essential purpose or otherwise and even if advised of the possibility of */ +/* such damages. NEC shall not be liable for any services or products provided by third party */ +/* vendors, developers or consultants identified or referred to the User by NEC in connection */ +/* with the Product(s) and/or the Application. */ +/* */ +/*==============================================================================================*/ +/* Environment: PM plus (V6.30) */ +/* RA78K0(V1.20) */ +/* CC78K0(V2.00) */ +/*==============================================================================================*/ + + +#ifndef __FSL_USER_H_INCLUDED +#define __FSL_USER_H_INCLUDED + + +/*==============================================================================================*/ +/* constant definitions */ +/*==============================================================================================*/ + + +/* specify the CPU frequency in [Hz], only 2MHz....20MHz allowed */ +#define FSL_SYSTEM_FREQUENCY 8000000 + +/* define whether low-voltage mode is used or not */ +/* #define FSL_LOW_VOLTAGE_MODE */ + +/* size of the common data buffer expressed in [bytes] */ +/* the data buffer is used for data-exchange between the firmware and the selflib. */ +//#define FSL_DATA_BUFFER_SIZE 256 +#define FSL_DATA_BUFFER_SIZE 0 + + +/* customizable interrupt controller configuration during selfprogramming period */ +/* Bit --7-------6-------5-------4-------3-------2-------1-------0---------------------- */ +/* MK0L: PMK5 PMK4 PMK3 PMK2 PMK1 PMK0 LVIMK WDTIMK */ +/* MK0H: SREMK0 SRMK0* STMK0* DMAMK1 DMAMK0 SREMK3 SRMK3 STMK3 */ +/* MK1L: TMMK03 TMMK02 TMMK01 TMMK00 IICMK0 SREMK1 SRMK1 STMK1* */ +/* MK1H: TMMK04 SREMK2 SRMK2 STMK2* KRMK RTCIMK RTCMK ADMK */ +/* MK2L: PMK10 PMK9 PMK8 PMK7 PMK6 TMMK07 TMMK06 TMMK05 */ +/* MK2H: 1 1 1 1 1 1 1 PMK11 */ +/*------------------------------------------------------------------------------------------ */ +/* */ +/* Examples: */ +/* ========= */ +/*#define FSL_MK0L_MASK 0xF7 -> allow INTP1 interrupt during selfprogramming */ +/*#define FSL_MK0H_MASK 0xEF -> allow DMA1 interrupt during selfprogramming */ +/*#define FSL_MK1L_MASK 0xBF -> allow TM02 interrupt during selfprogramming */ +/*#define FSL_MK1H_MASK 0xFF -> all interrupts disabled during selfprogramming */ +/*#define FSL_MK2L_MASK 0xF7 -> allow INTP6 interrupt during selfprogramming */ +/*#define FSL_MK2H_MASK 0xFF -> all interrupts disabled during selfprogramming */ +/*------------------------------------------------------------------------------------------ */ +#define FSL_MK0L_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK0H_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK1L_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK1H_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK2L_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK2H_MASK 0xFF /* all interrupts disabled during selfprogramming */ + + +/* FLMD0 control bit */ +#ifndef _WIN32 +#define FSL_FLMD0_HIGH {BECTL.7 = 1;} +#define FSL_FLMD0_LOW {BECTL.7 = 0;} +#else +#define FSL_FLMD0_HIGH {BECTL_7 = 1;} +#define FSL_FLMD0_LOW {BECTL_7 = 0;} +#endif + + +/*----------------------------------------------------------------------------------------------*/ +/* switch interrupt backu functionality ON/OFF using #define/#undef */ +/*----------------------------------------------------------------------------------------------*/ +/* #define FSL_INT_BACKUP */ +#undef FSL_INT_BACKUP + + +#endif diff --git a/snake_branches/3.40_jane/get_ei.asm b/snake_branches/3.40_jane/get_ei.asm new file mode 100644 index 0000000..29f4a6e --- /dev/null +++ b/snake_branches/3.40_jane/get_ei.asm @@ -0,0 +1,26 @@ +$PROCESSOR ( 9F0104 ) + +PUBLIC _get_ei +; +; PSWEIǂݏo܂B +; + + + +ROM_CODE CSEG BASE + +_get_ei: + set1 CY + and1 CY,PSW.7 ; check IE bit. if 0, all interrupts are disabled. + bnc $ie_dis + mov C,#01h + ret + +ie_dis: + mov C,#00h + ret + + + end + + diff --git a/snake_branches/3.40_jane/hal.c b/snake_branches/3.40_jane/hal.c new file mode 100644 index 0000000..e2e72ec --- /dev/null +++ b/snake_branches/3.40_jane/hal.c @@ -0,0 +1,182 @@ +/* ======================================================== + ȈՃeXĝ߂HALC + + $Id: asdf$ + ======================================================== */ +#ifndef _WIN32 +#pragma SFR +#endif + +#include "incs_loader.h" + + +#define WIFI_txLatch PIF21 // dgMpX { led.h Œ` + + +// HALłԂ //////////////////////////////////////// +// ȎȂ琳_ɂr...≽łȂ +bit PM_EXTDC_n; +bit BT_IN_CHG_n; +bit SW_POW_n; +bit SW_HOME_n; +bit SW_WIFI_n; +bit SHELL_OPEN; + +/* +#define REG_BIT_HAL0_PM_EXTDC_n ( 1 << 7 ) +#define REG_BIT_HAL0_BT_IN_CHG_n ( 1 << 6 ) +//#define REG_BIT_HAL0_PM_IRQ_n ( 1 << 5 ) // gȂ +#define REG_BIT_HAL0_WL_TX ( 1 << 4 ) +#define REG_BIT_HAL0_SHELL_OPEN ( 1 << 3 ) +#define REG_BIT_HAL0_SW_WIFI_n ( 1 << 2 ) +#define REG_BIT_HAL0_SW_HOME_n ( 1 << 1 ) +#define REG_BIT_HAL0_SW_POW_n ( 1 << 0 ) + +#define REG_BIT_HAL1_DIPSW_1 ( 1 << 3 ) +#define REG_BIT_HAL1_DIPSW_0 ( 1 << 2 ) +#define REG_BIT_HAL1_HW_DET_1 ( 1 << 1 ) +#define REG_BIT_HAL1_HW_DET_0 ( 1 << 0 ) +*/ + + +// ڂւ +// `^OȂ炱ł(ԃJEg͕) +void hal_update() +{ +#ifdef _ENABLE_HAL_ + u8 temp_conf = vreg_ctr[ VREG_C_HAL_OVW_CONT0 ]; + u8 temp_dat = vreg_ctr[ VREG_C_HAL_OVW_DAT0 ]; +#else + u8 temp_conf = 0x00; + u8 temp_dat = 0; // łǂ +#endif + + // A_v^L + if( temp_conf & REG_BIT_HAL0_PM_EXTDC_n ) + { + // O͂Ȃ񂾂傫Ȃ肪 + if(( temp_dat & REG_BIT_HAL0_PM_EXTDC_n ) == 0 ) + { + PM_EXTDC_n = 0; + } + else + { + PM_EXTDC_n = 1; + } + } + else + { + PM_EXTDC_n = PM_EXTDC_n_RAW; + } + + // [dH + if( temp_conf & REG_BIT_HAL0_BT_IN_CHG_n ) + { + if(( temp_dat & REG_BIT_HAL0_BT_IN_CHG_n ) == 0 ) + { + BT_IN_CHG_n = 0; + } + else + { + BT_IN_CHG_n = 1; + } + } + else + { + BT_IN_CHG_n = BT_IN_CHG_n_RAW; + } + + // dt + if( temp_conf & REG_BIT_HAL0_SW_POW_n ) + { + if(( temp_dat & REG_BIT_HAL0_SW_POW_n ) == 0 ) + { + SW_POW_n = 0 ; + } + else + { + SW_POW_n = 1; + } + } + else + { + SW_POW_n = SW_POW_n_RAW; + } + + // Ɩt + if( temp_conf & REG_BIT_HAL0_SW_HOME_n ) + { + if(( temp_dat & REG_BIT_HAL0_SW_HOME_n ) == 0 ) + { + SW_HOME_n = 0; + } + else + { + SW_HOME_n = 1; + } + } + else + { + if( system_status.model == MODEL_TS_BOARD )// ڑ̃|[gႤ + { + SW_HOME_n = SW_HOME_n_TSBOARD_RAW; + } + else + { + SW_HOME_n = SW_HOME_n_JIKKI_RAW; + } + } + + // J + if( temp_conf & REG_BIT_HAL0_SW_WIFI_n ) + { + if(( temp_dat & REG_BIT_HAL0_SW_WIFI_n ) == 0 ) + { + SW_WIFI_n = 0; + } + else + { + SW_WIFI_n = 1; + } + } + else + { + SW_WIFI_n = SW_WIFI_n_RAW; + } + + // + if( temp_conf & REG_BIT_HAL0_SHELL_OPEN ) + { + if(( temp_dat & REG_BIT_HAL0_SHELL_OPEN ) == 0 ) + { + SHELL_OPEN = 0; + } + else + { + SHELL_OPEN = 1; + } + } + else + { + SHELL_OPEN = SHELL_OPEN_RAW; + } + + // dg + if( temp_conf & REG_BIT_HAL0_WL_TX ) + { + WIFI_txLatch = 1; + } + +} + + + +void hal_reset() +{ + vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = 0; + vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0; + vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] = 0xFF; + vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] = 0xFF; + vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] = 0xFF; +} + diff --git a/snake_branches/3.40_jane/hal.h b/snake_branches/3.40_jane/hal.h new file mode 100644 index 0000000..245be75 --- /dev/null +++ b/snake_branches/3.40_jane/hal.h @@ -0,0 +1,16 @@ +#ifndef _hal_h_ +#define _hal_h_ + + +extern bit PM_EXTDC_n; +extern bit BT_IN_CHG_n; +extern bit SW_POW_n; +extern bit SW_HOME_n; +extern bit SW_WIFI_n; +extern bit SHELL_OPEN; + +// ======================================================== +void hal_update(); +void hal_reset(); + +#endif diff --git a/snake_branches/3.40_jane/hoge.bin b/snake_branches/3.40_jane/hoge.bin new file mode 100644 index 0000000000000000000000000000000000000000..5180de90edc4d3ec04cd46bcd37962b426884525 GIT binary patch literal 16387 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 DQ6%wm literal 0 HcmV?d00001 diff --git a/snake_branches/3.40_jane/i2c_ctr.c b/snake_branches/3.40_jane/i2c_ctr.c new file mode 100644 index 0000000..4bd238e --- /dev/null +++ b/snake_branches/3.40_jane/i2c_ctr.c @@ -0,0 +1,312 @@ +/* ======================================================== + SoC VK`l I2CʐM + cJZ.nintendo + '09 Apr + $Id: i2c_ctr.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 +#pragma interrupt INTIICA1 int_iic_ctr RB1 +#endif + + +#include "incs.h" +#include "rtc.h" +#include "pedometer.h" + + +#ifdef _MCU_BSR_ +// #ifdef _MODEL_TS0_ || _MODEL_WM0_ + +// [LOfI2Ct +// TEG͉H}ŃeR +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR0 IICAPR11 +#define IICAPR1 IICAPR01 +#define IICCTL0 IICCTL10 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#define TRC TRC1 +#define SMC SMC1 +#define DFC DFC1 +#define PortMode PM20 +#define Port P20 + +#endif + + + +// ============================================== +enum en_IIC_STATE +{ + IIC_IDLE = 0, + IIC_RCV_REG_ADRS, + IIC_TX_OR_RX, + IIC_TX, + IIC_RX +}; + + + +// ============================================== +extern bit irq_readed; // ꂩIRQWX^ǂ܂ꂽ + +u8 iic_burst_state; +static enum en_IIC_STATE state = IIC_IDLE; + +#define bit_iics_spd (i2c_stat & (1<<0)) +#define bit_iics_std (i2c_stat & (1<<1)) +#define bit_iics_ackd (i2c_stat & (1<<2)) +#define bit_iics_trc (i2c_stat & (1<<3)) +#define bit_iics_coi (i2c_stat & (1<<4)) + + + +/********************************************//** + isr + + Xe[gɊ荞݂菈i߂ + ***********************************************/ +__interrupt void int_iic_ctr( ) +{ + static u8 reg_adrs; + static u8 tx_buf; + u8 rx_buf; + static u8 adrs_access_from; // o[XgANZX̎Ɏg + + u8 i2c_stat = IICS; // volatilê + + // ǂݏoI + if( !bit_iics_ackd // 荞ݗvNAKif[^M̍Ōj + || bit_iics_spd ) // XgbvRfBV(!ACKD ɗƂ͊荞ݗȂ (SPIE = 0)) + { + /* + I2C̔xẴtOOSTDĂ܂Ƃ + ǁAȂ삷‚ + */ + + // WX^[hŁA荞݃slQ[g + // ܂ǂ܂ĂȂ荞݂΁AēxAT[g + if( irq_readed ) + { + IRQ0_neg; + irq_readed = false; + if( !( (( vreg_ctr[VREG_C_IRQ0] & vreg_ctr[VREG_C_IRQ_MASK0 ] ) == 0 ) + && (( vreg_ctr[VREG_C_IRQ1] & vreg_ctr[VREG_C_IRQ_MASK1 ] ) == 0 ) + && (( vreg_ctr[VREG_C_IRQ2] & vreg_ctr[VREG_C_IRQ_MASK2 ] ) == 0 ) + && (( vreg_ctr[VREG_C_IRQ3] & vreg_ctr[VREG_C_IRQ_MASK3 ] ) == 0 ) )) + { + while( !IRQ0 ){;} // ԉ҂sv + IRQ0_ast; + } + } + + // I2CIɉ镨 // + hosu_read_end( ); // vǂݏoI + rtc_unlock( ); + + state = IIC_IDLE; + SPIE = 0; + LREL = 1; + EI(); + return; + } + + if( bit_iics_std ) // 荞ݗvFX^[gRfBV + { + if( !( state == IIC_IDLE || state == IIC_TX_OR_RX )) + { + // sp/nack 葹˂ +// dbg_nop(); // Ȃ͂... +/* + // pPbg̐擪stƌȂB + // ʂɑs + state = IIC_IDLE; +/*/ + // gCĂ炤 + state = IIC_IDLE; + SPIE = 0; + LREL = 1; + EI(); +//*/ + } + // ʏ + } + + EI(); + + switch ( state ) + { + case ( IIC_IDLE ): + // njĂяoɉB + // Ȃ + iic_burst_state = 0; + SPIE = 1; + WREL = 1; // EFCg + state = IIC_RCV_REG_ADRS; + return; + + case ( IIC_RCV_REG_ADRS ): // QoCgځiWX^AhXjMɗ + // WX^AhXM + reg_adrs = IICA; + + WREL = 1; + adrs_access_from = reg_adrs; + tx_buf = vreg_ctr_read( reg_adrs ); // f[^̏Ă + state = IIC_TX_OR_RX; + return; + + case ( IIC_TX_OR_RX ): // ̎ɗ銄荞݁BSTȂ瑗MAf[^珑܂ + // if( TRC ) // MtO ŋʂ̂́A荞ݒxɕsN肦 + if( bit_iics_std ) + { // X^[gRfBVotO + // [h + if( bit_iics_coi ) + { // AhXvtO + state = IIC_TX; + // no break, no return // + } + else + { + // X^[gňႤfoCXĂ΂ꂽI + SPIE = 0; + LREL = 1; // EFCg? + state = IIC_IDLE; // I + return; + } + } + else + { + state = IIC_RX; // f[^1oCgM̊荞݂ + // no break, no return // + } + /* FALLTHROUGH */ + + default: // o[Xg R/W łĂ΂邱ƂɂȂ + if( state == IIC_TX ) + { // M + IICA = tx_buf; + vreg_ctr_after_read( reg_adrs, tx_buf ); // ǂ񂾂NAȂǂ̏ + } + else + { // M + rx_buf = IICA; + +#ifdef _I2C_ERR_ABORT_ + if( reg_adrs >= 0x80 || reg_adrs <= 1 ) + { + LREL = 1; // Ȃ񂩃f[^̂ŒʐMI nakԂ̂Ȃc + return; + } +#endif + vreg_ctr_write( reg_adrs, rx_buf ); + WREL = 1; + } + + // WX^AhX̃CNg + /// ANZX|C^i߂ȂȃWX^ + switch( adrs_access_from ) + { + case( VREG_C_ACC_HOSU_HIST ): + case( VREG_C_LED_NOTIFY_DATA ): + case( VREG_C_LED_POW ): + case( VREG_CX_INFO ): + case( VREG_CX_FREE_DATA ): + break; + case( VREG_CX_FREE_ADRS ): + if( reg_adrs == VREG_CX_FREE_ADRS ) + { + reg_adrs = VREG_CX_FREE_DATA; + } + break; + default: + reg_adrs ++; + } + + if( state == IIC_TX ) + { // ɂ‚ɑf[^̏VeINBSPĎgȂȂ + tx_buf = vreg_ctr_read( reg_adrs ); + } + break; + } +} + + + +/********************************************//** +@W[ +@ +@todo twl init Ɠ? +@ +@rbg삪̂łĕsoςȂ + ***********************************************/ +void IIC_ctr_Init( void ) +{ + + IICAEN = 1; + + IICE = 0; /* IICA disable */ + + IICAMK = 1; /* INTIICA disable */ + IICAIF = 0; /* clear INTIICA interrupt flag */ + +// IICAPR0 = 1; /* set INTIICA high priority */ +// IICAPR1 = 0; /* set INTIICA high priority */ X^bNs + + Port &= ~0x03; + + SVA = IIC_C_SLAVEADDRESS; + IICF = 0x01; + + STCEN = 1; // X^[g̋ + IICRSV = 1; // ʐM\Ȃ:X[uɓO + + SPIE = 0; // XgbvRfBVł̊荞݂֎~ + WTIM = 1; // ACKԂclkLɌŒ肷 + ACKE = 1; + + IICWH = 9; + IICWL = 11; // LԂ̒ + + SMC = 1; // [h + DFC = 1; // fW^tB^on (@fast mode) + + IICAMK = 0; // 荞݂ + + IICE = 1; + + PortMode &= ~0x03; + + state = IIC_IDLE; +} + + + +/********************************************//** + + ***********************************************/ +void IIC_ctr_Stop( void ) +{ + IICE = 0; /* IICA disable */ + IICAEN = 0; +} + + + diff --git a/snake_branches/3.40_jane/i2c_ctr.h b/snake_branches/3.40_jane/i2c_ctr.h new file mode 100644 index 0000000..16234ff --- /dev/null +++ b/snake_branches/3.40_jane/i2c_ctr.h @@ -0,0 +1,210 @@ +#ifndef _MDSERIAL_A_ +#define _MDSERIAL_A_ + + +/* IIC operation enable (IICE0) */ +#define IIC0_OPERATION 0x80 +#define IIC0_OPERATION_DISABLE 0x00 /* stop operation */ +#define IIC0_OPERATION_ENABLE 0x80 /* enable operation */ + +/* Exit from communications (LREL0) */ +#define IIC0_COMMUNICATION 0x40 +#define IIC0_COMMUNICATION_NORMAL 0x00 /* normal operation */ +#define IIC0_COMMUNICATION_EXIT 0x40 /* exit from current communication */ + +/* Wait cancellation (WREL0) */ +#define IIC0_WAITCANCEL 0x20 +#define IIC0_WAIT_NOTCANCEL 0x00 /* do not cancel wait */ +#define IIC0_WAIT_CANCEL 0x20 /* cancel wait */ + +/* Generation of interrupt when stop condition (SPIE0) */ +#define IIC0_STOPINT 0x10 +#define IIC0_STOPINT_DISABLE 0x00 /* disable */ +#define IIC0_STOPINT_ENABLE 0x10 /* enable */ + +/* Wait and interrupt generation (WTIM0) */ +#define IIC0_WAITINT 0x08 +#define IIC0_WAITINT_CLK8FALLING 0x00 /* generate at the eighth clocks falling edge */ +#define IIC0_WAITINT_CLK9FALLING 0x08 /* generated at the ninth clocks falling edge */ + +/* Acknowledgement control (ACKE0) */ +#define IIC0_ACK 0x04 +#define IIC0_ACK_DISABLE 0x00 /* enable acknowledgement */ +#define IIC0_ACK_ENABLE 0x04 /* disable acknowledgement */ + +/* Start condition trigger (STT0) */ +#define IIC0_STARTCONDITION 0x02 +#define IIC0_START_NOTGENERATE 0x00 /* do not generate start condition */ +#define IIC0_START_GENERATE 0x02 /* generate start condition */ + +/* Stop condition trigger (SPT0) */ +#define IIC0_STOPCONDITION 0x01 +#define IIC0_STOP_NOTGENERATE 0x00 /* do not generate stop condition */ +#define IIC0_STOP_GENERATE 0x01 /* generate stop condition */ + +/* + IIC Status Register 0 (IICS0) +*/ +/* Master device status (MSTS0) */ +#define IIC0_MASTERSTATUS 0x80 +#define IIC0_STATUS_NOTMASTER 0x00 /* slave device status or communication standby status */ +#define IIC0_STATUS_MASTER 0x80 /* master device communication status */ + +/* Detection of arbitration loss (ALD0) */ +#define IIC0_ARBITRATION 0x40 +#define IIC0_ARBITRATION_NO 0x00 /* arbitration win or no arbitration */ +#define IIC0_ARBITRATION_LOSS 0x40 /* arbitration loss */ + +/* Detection of extension code reception (EXC0) */ +#define IIC0_EXTENSIONCODE 0x20 +#define IIC0_EXTCODE_NOT 0x00 /* extension code not received */ +#define IIC0_EXTCODE_RECEIVED 0x20 /* extension code received */ + +/* Detection of matching addresses (COI0) */ +#define IIC0_ADDRESSMATCH 0x10 +#define IIC0_ADDRESS_NOTMATCH 0x00 /* addresses do not match */ +#define IIC0_ADDRESS_MATCH 0x10 /* addresses match */ + +/* Detection of transmit/receive status (TRC0) */ +#define IIC0_STATUS 0x08 +#define IIC0_STATUS_RECEIVE 0x00 /* receive status */ +#define IIC0_STATUS_TRANSMIT 0x08 /* transmit status */ + +/* Detection of acknowledge signal (ACKD0) */ +#define IIC0_ACKDETECTION 0x04 +#define IIC0_ACK_NOTDETECTED 0x00 /* ACK signal was not detected */ +#define IIC0_ACK_DETECTED 0x04 /* ACK signal was detected */ + +/* Detection of start condition (STD0) */ +#define IIC0_STARTDETECTION 0x02 +#define IIC0_START_NOTDETECTED 0x00 /* start condition not detected */ +#define IIC0_START_DETECTED 0x02 /* start condition detected */ + +/* Detection of stop condition (SPD0) */ +#define IIC0_STOPDETECTION 0x01 +#define IIC0_STOP_NOTDETECTED 0x00 /* stop condition not detected */ +#define IIC0_STOP_DETECTED 0x01 /* stop condition detected */ + +/* + IIC Flag Register 0 (IICF0) +*/ +/* STT0 clear flag (STCF) */ +#define IIC0_STARTFLAG 0x80 +#define IIC0_STARTFLAG_GENERATE 0x00 /* generate start condition */ +#define IIC0_STARTFLAG_UNSUCCESSFUL 0x80 /* start condition generation unsuccessful */ + +/* IIC bus status flag (IICBSY) */ +#define IIC0_BUSSTATUS 0x40 +#define IIC0_BUS_RELEASE 0x00 /* bus release status */ +#define IIC0_BUS_COMMUNICATION 0x40 /* bus communication status */ + +/* Initial start enable trigger (STCEN) */ +#define IIC0_STARTWITHSTOP 0x02 +#define IIC0_START_WITHSTOP 0x00 /* generation of a start condition without detecting a stop condition */ +#define IIC0_START_WITHOUTSTOP 0x02 /* generation of a start condition upon detection of a stop condition */ + +/* Communication reservation function disable bit (IICRSV) */ +#define IIC0_RESERVATION 0x01 +#define IIC0_RESERVATION_ENABLE 0x00 /* enable communication reservation */ +#define IIC0_RESERVATION_DISABLE 0x01 /* disable communication reservation */ + +/* + IIC clock selection register 0 (IICCL0) +*/ +#define IICCL0_INITIALVALUE 0x00 +/* Detection of SCL0 pin level (CLD0) */ +#define IIC0_SCLLEVEL 0x20 +#define IIC0_SCL_LOW 0x00 /* clock line at low level */ +#define IIC0_SCL_HIGH 0x20 /* clock line at high level */ + +/* Detection of SDA0 pin level (DAD0) */ +#define IIC0_SDALEVEL 0x10 +#define IIC0_SDA_LOW 0x00 /* data line at low level */ +#define IIC0_SDA_HIGH 0x10 /* data line at high level */ + +/* Operation mode switching (SMC0) */ +#define IIC0_OPERATIONMODE 0x08 +#define IIC0_MODE_STANDARD 0x00 /* operates in standard mode */ +#define IIC0_MODE_HIGHSPEED 0x08 /* operates in high-speed mode */ + +/* Digital filter operation control (DFC0) */ +#define IIC0_DIGITALFILTER 0x04 +#define IIC0_FILTER_OFF 0x00 /* digital filter off */ +#define IIC0_FILTER_ON 0x04 /* digital filter on */ + +/* Operation mode switching (CL01, CL00) */ +#define IIC0_CLOCKSELECTION 0x03 + +/* Combine of (SMC0, CL01, CL00)*/ +#define IIC0_CLOCK0 0x00 +#define IIC0_CLOCK1 0x01 +#define IIC0_CLOCK2 0x02 +#define IIC0_CLOCK3 0x03 +#define IIC0_CLOCK4 0x08 +#define IIC0_CLOCK5 0x09 +#define IIC0_CLOCK6 0x0a +#define IIC0_CLOCK7 0x0b + +/* + IIC function expansion register 0 (IICX0) +*/ +/* IIC clock expension (CLX0) */ +#define IIC0_CLOCKEXPENSION 0x01 +#define IIC0_EXPENSION0 0x00 +#define IIC0_EXPENSION1 0x01 + +/* Operation clock (CLX0, SMC0, CL01, CL00) + | IIC0_EXPENSION0 | IIC0_EXPENSION1 | +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK0 | fprs/2 | prohibited | selection clock(fw) + | fprs/88 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK1 | fprs/2 | prohibited | selection clock(fw) + | fprs/172 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK2 | fprs/2 | prohibited | selection clock(fw) + | fprs/344 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK3 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/66 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK4 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK5 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK6 | fprs/4 | fprs/4 | selection clock(fw) + | fprs/96 | fprs/48 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK7 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/18 | | transfer clock + | high speed | | mode +------------|-------------------|-------------------|---------------------- +*/ + +#define ADDRESS_COMPLETE 0x80 +#define IIC_MASTER_FLAG_CLEAR 0x00 + +/****************************************************************************** + * Macro define + ******************************************************************************/ + + + +/****************************************************************************** + * Function define + ******************************************************************************/ + +void IIC_ctr_Init( void ); +void IIC_ctr_Stop( void ); + + +#endif diff --git a/snake_branches/3.40_jane/i2c_mcu-sub.c b/snake_branches/3.40_jane/i2c_mcu-sub.c new file mode 100644 index 0000000..b1b468c --- /dev/null +++ b/snake_branches/3.40_jane/i2c_mcu-sub.c @@ -0,0 +1,124 @@ +/* ======================================================== + ȈI2CiytFgpjʐM + de JHL cJZ + '09 Feb - + $Id: $ + ======================================================== */ +#ifndef _WIN32 +#pragma sfr +#pragma di +#pragma ei +#pragma nop +#pragma inline // memcpy()CCWJ(̕I) +#endif + +#include "incs.h" +#include "i2c_mcu.h" +#include "loader.h" +#include "util_funcs.h" + +#include "i2c_mcu_sub.h" +#include "pm.h" /// 肽ȂcCODEC̃WX^Ђ + + +// ======================================================== +// [NAEhp +static void iic_mcu_simple_dummy_write(); +static i2c_err iic_mcu_codec_write_low( u8 adrs, u8 dat ); + +// i2c_mcu.c ɂ +extern void iic_mcu_send_re_st( ); +extern void iic_mcu_send_sp( ); +extern i2c_err iic_mcu_send_a_byte( u8 ); +extern i2c_err iic_mcu_call_slave( u8 slave ); + + +/* + yamaha codecspӂɊ荞݂邱Ƃ邪A^XNo^ + ۂɓǂݏoƂɂ͏߂Ȃ̂ʼnȂ悤ɓ͂ +*/ + +/********************************************//** + R[fbN wPoCgx Cg + + iic_mcu_write_a_byte CODECs[NAEh + ***********************************************/ +#define YAMAHA_CODEC_ERRATA_CHECK_MASK ( 0x7D ) +i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ) +{ + u8 pm_reg_original; + i2c_err rv; + + // }ncodec[NAEh SPIƂ̋pWX^̒g擾 + if(( rv = iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 1, &pm_reg_original )) != I2C_ERR_OK ) + { + return( rv ); + } + // phase1 ܂ + + // ݁I + if( ( rv = iic_mcu_codec_write_low( adrs, dat ) ) != I2C_ERR_OK ) + { + return( rv ); + } + + // }ncodec[NAEh + if( ( pm_reg_original & YAMAHA_CODEC_ERRATA_CHECK_MASK ) == 0 ) // ͂߂狤LWX^0eXgȂ + // (& ZbgvĂǂZbĝ) + { + return( I2C_ERR_OK ); + } + + { + // LWX^ 0x00 ɏĂ(Gb^I)悤Ȃ珑߂ + u8 pm_reg_after; + + if(( rv = iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 1, &pm_reg_after )) != I2C_ERR_OK ) + { + return( rv ); + } + + if( ( pm_reg_after & YAMAHA_CODEC_ERRATA_CHECK_MASK ) != 0x00 ) + { + // RtNg͂Ȃ or ZbgvȂ + return( I2C_ERR_OK ); + } + + // else { + rv = iic_mcu_codec_write_low( CODEC_REG_PM, pm_reg_original ); // ߂Aă`FbN͂Ȃ + return ( rv ); // G[Ԃ邱Ƃ邩 + // gCȂǂ͖ + } + return( rv ); // no reach // +} + + +static i2c_err iic_mcu_codec_write_low( u8 adrs, u8 dat ) +{ + IICMK10 = 1; // DMApISRɔ΂Ȃ߂Ƀ}XN + if( iic_mcu_call_slave( IIC_SLA_CODEC ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + iic_mcu_send_a_byte( adrs ); + iic_mcu_send_a_byte( dat ); + + // TI[NAEh + codec_dummy_write(); + + iic_mcu_send_sp( ); + iic_mcu_busy = false; + return( I2C_ERR_OK ); +} + + +// re-stŃ_~[Cg +void codec_dummy_write() +{ + iic_mcu_send_re_st( ); + iic_mcu_send_a_byte( IIC_SLA_CODEC ); // _~[Cg + iic_mcu_send_a_byte( 0x20 ); // S~ĂȂAhX + iic_mcu_send_a_byte( 0xAA ); // ł悢 +} + diff --git a/snake_branches/3.40_jane/i2c_mcu.c b/snake_branches/3.40_jane/i2c_mcu.c new file mode 100644 index 0000000..a417289 --- /dev/null +++ b/snake_branches/3.40_jane/i2c_mcu.c @@ -0,0 +1,660 @@ +/* ======================================================== + ȈI2CiytFgpjʐM + de JHL cJZ + '09 Feb - + + $Id: $ + ======================================================== */ +#ifndef _WIN32 +#pragma sfr +#pragma di +#pragma ei +#pragma nop +#pragma inline // memcpy()CCWJ(̕I) +#endif + +#include "incs_loader.h" +#include "i2c_mcu.h" +#include "loader.h" +#include "util_funcs.h" + +#include "i2c_mcu_sub.h" + + + +// ======================================================== +// WX^̃rbg +// vtBbNXbAꕔ̃rbgWX^ɂԂ邽... +// SMR0n +#define bCKS0 ( 1 << 15 ) +#define bCCS0 ( 1 << 14 ) +#define bSTS0 ( 1 << 8 ) +#define bSIS0 ( 1 << 6 ) +#define bMD0n2 ( 1 << 2 ) +#define bMD0n1 ( 1 << 1 ) +#define bMD0n0 ( 1 << 0 ) +#define bSMR0n_FIXEDBIT ( 1 << 5 ) + +// SSR0n +#define bit_TSF0 6 +#define PEF0 ( 1 << 1 ) + +// SIR0n +#define PECT0 ( 1 << 1 ) + +// SCR0n +#define TXE0 ( 1 << 15 ) +#define RXE0 ( 1 << 14 ) +#define SLC02 4 +#define DLS02 0 +#define TSF0 ( 1 << 6 ) + +// SOn +#define TAUS_MASK 0x0B0B; + +// DMCn +#define DRS ( 1 << 6 ) + + + + +// ======================================================== +static void iic_mcu_send_st( ); + +// *sub炵Ă΂Ȃ +void iic_mcu_send_re_st( ); +void iic_mcu_send_sp( ); +i2c_err iic_mcu_send_a_byte( u8 ); +i2c_err iic_mcu_call_slave( u8 slave ); + + +// ======================================================== +bit iic_mcu_wo_dma; +volatile bit iic_mcu_busy; +static volatile bit iic_mcu_initialized; + + +static u8 iic_send_work[4]; +static u8 *p_iic_send_wo_dma_dat; +static u8 iic_send_wo_dma_len; + +// f[^G[iROHMxZTjgĈ +/// Ƃ肠ADMAgp}`oCgCg ̎ɂ@\Ȃ +static u8 last_slave, last_reg_adrs, last_size; + +i2c_err iic_mcu_result; // ꕶ[h̎̓f[^ԂB + +#ifdef i2c_timeout_test +extern bit i2c_mcu_time_out_error; +#endif + + + +/********************************************//** + + ***********************************************/ +void nop8() +{ + // ɗ call 3clk, return 6clk +} + + +/********************************************//** + ̒ʐMÎ҂B + + ^CAEgL + ***********************************************/ +static i2c_err iic_mcu_wait_free() +{ + u16 tot = 0; + + iic_mcu_start( ); + while( 1 ) + { + DI_wt_chk(); + if( !iic_mcu_busy ) + { + iic_mcu_busy = true; + EI(); + break; + } + EI(); + if( ++tot == 0 ) + { +#ifdef i2c_timeout_test + i2c_mcu_time_out_error = true; +#endif + return( I2C_ERR_TIMEOUT ); + } + } + return( I2C_ERR_OK ); +} + + + +/********************************************//** + X[u w1x [h + + Ԓlf[^̂̂łB + + G[R[h iic_mcu_result ɓĂ܂ + ***********************************************/ +u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ) +{ + u8 dat; + + iic_mcu_result = iic_mcu_read( SLA, adrs, 1, &dat ); + if( iic_mcu_result != I2C_ERR_OK ) + { + dat = 0xff; + } + + return ( dat ); +} + + + +/********************************************//** + X[ũ[h + + yz + + X[uEFCgRfBVoƂ͋֎~łB + + ̏ꍇłG[oȂǂł܂ + ***********************************************/ +i2c_err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8 * dest ) +{ + +#if 1 + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + // (^CAEg) + return( I2C_ERR_TIMEOUT ); + } +#else + // gpȂA +#endif + + // X^[gRfBVƃX[ǔĂяoAWX^AhX̑M + if( iic_mcu_call_slave( slave ) != 0 ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + + // WX^AhX̑M + iic_mcu_send_a_byte( adrs ); // I܂ŋAĂȂ + + // ΂NAKAĂȂO + + // f[^M // + iic_mcu_send_re_st( ); // X^[gRfBV + iic_mcu_send_a_byte( slave | 0x01 ); // M܂Ŗ߂Ă܂B + + // f[^M + ST0 = 0x0004; // M[hɐݒς̂ŃWbN~ + SCR02 = RXE0 | 1 << SLC02 | 7 << DLS02; // Mݒ + SS0 = 0x0004; // ʐMҋ@ + + do + { + if( len == 1 ) + { + SOE0 = 0x0000; // ŌNAK + } + IICIF10 = 0; + SIO10 = 0xFF; // _~[f[^ƎMJn + while( IICIF10 == 0 ) + {;} // M҂ + + *dest = SIO10; + dest++; + len--; + } + while( len != 0 ); + + if( slave == IIC_SLA_CODEC ) + { + codec_dummy_write(); + } + + iic_mcu_send_sp( ); + + IICIF10 = 0; + iic_mcu_busy = false; + return ( I2C_ERR_OK ); +} + + + + +/********************************************//** + X[u wPoCgx Cg + + O̓]Î҂āACg܂B + + Ԓl@iic_mcu_write@ɓ + ***********************************************/ +i2c_err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ) +{ + // P̎DMAƂNȂłƏI点 + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + return( I2C_ERR_TIMEOUT ); + } + + // X^[gRfBVƃX[ǔĂяo... + IICMK10 = 1; + if( iic_mcu_call_slave( SLA ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return( I2C_ERR_NOSLAVE ); + } + iic_mcu_send_a_byte( adrs ); + iic_mcu_send_a_byte( dat ); + iic_mcu_send_sp( ); + iic_mcu_busy = false; + return ( I2C_ERR_OK ); +} + + + +/********************************************//** + X[uփCg + + WX^ adrs 擪ɁA + *str + len܂B + + yz + 1) X[uEFCgRfBVoƂ͋֎~łB + ̏ꍇłG[oȂǂł܂ + 2) len < sizeof(iic_send_work) łȂDMA g܂BiRAMsjւڂB + + ylz + DMA1gp܂B + ***********************************************/ +i2c_err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src ) +{ + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + return( I2C_ERR_TIMEOUT ); + } +#if 0 // renge^̃}`^XNɂȂłɂ + // gpȂA +#endif + + // X^[gRfBVƃX[ǔĂяo... + IICMK10 = 1; + IICIF10 = 0; + if( iic_mcu_call_slave( slave ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + + IICIF10 = 0; + if( ! iic_mcu_wo_dma /* || len <= iic_send_work */ ) + { + // DMAgpiʏj// + + // WX^AhX𑗂Af[^̏ + memcpy( iic_send_work, src, 4 ); //obt@Ƃ4oCgpӂĖ߁B + + // gĈ + last_slave = slave; + last_reg_adrs = adrs; + last_size = len; + + // DMAZbg + while( DST1 ) + {;} + + DEN1 = 1; + DSA1 = (u8)( &SIO10 ); + DRA1 = (u16)( &iic_send_work[0] ); + DBC1 = len; + DMC1 = DRS | 8; // RAM -> SFR, 8bit, IRQ, IIC10 + + DMAIF1 = 0; + DMAMK1 = 0; + DST1 = 1; // DEN1 = 12clkȏJ + + SIO10 = adrs; // ςȂI 荞݂DMAX^[g + // c͊荞݃[` + } + else + { + // DMAgpȂ // + + // WX^AhX̑M + IICMK10 = 0; + SIO10 = adrs; + + iic_send_wo_dma_len = len; + p_iic_send_wo_dma_dat = (u8*)src; + // c͊荞݃[` + } + + return ( I2C_ERR_OK ); +} + + + + +/********************************************//** + DMAP]I荞 + + IIC_mcu ̑MR[obN֐̂悤Ȃ + + FDMA]IŁAI2C̓]͏IĂ܂ + +@ 荞ݒȂǂŁADMA1̏xꍇA + IIC10̊荞݂̏łɁA荞݂𔭐ȂȂ + ꂪ܂B܂A@ɂ܂B + + @̂߁ADMAdl̍ق́AŌ̃oCg͑M + tÕ|[OŊmF܂B + ***********************************************/ +__interrupt void int_dma1( ) +{ + static bit in_retry; + + EI(); + + // Ō̃oCg̑M҂ + while( ( SSR02L & TSF0 ) != 0 ) + { + u16 i = 0; + if( ++i == 0 ) // ^CAEgH + { + break; + } + } + + // XgbvRfBVs +// iic_mcu_send_sp(); // ISRŊO̊֐ĂԂ͓̂siėpWX^ҔĵœWJ + { + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // SCL + nop8(); //. |ȂBO̊֐Ă +/* + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); +*/ + SO0 = 0x0400 | TAUS_MASK; // SCL + nop8(); +/* + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); +*/ + SO0 = 0x0404 | TAUS_MASK; + } + + IICMK10 = 1; + + // f[^̓r NAK AxgCB + /// 蔲 + if( SIR02 != 0 ) + { + SIR02 = SSR02; + + if( !in_retry ) + { + in_retry = true; + + IICIF10 = 0; + iic_mcu_call_slave( last_slave ); // NAK͍mPA + + while( DST1 ){;} + DRA1 = (u16)( &iic_send_work[0] ); // CNgĂ܂Ă̂ōăZbg + DBC1 = last_size; // fNgĂ܂Ă̂ōăZbg + // ق̐ݒ͑Ô܂ + + DMAIF1 = 0; + DMAMK1 = 0; + DST1 = 1; + + SIO10 = last_reg_adrs; // ςȂI 荞݂DMAX^[g + return; + // ܂ + } + else + { + // G[xځBmȂ + dbg_nop(); + // ̂܂܏I + } + } + + // I + in_retry = false; + DMAMK1 = 1; + DEN1 = 0; + iic_mcu_busy = false; +} + + + +/********************************************//** + IIC MCŨoCgo荞 + + DMAgp͎gp܂B + + @̊荞ݏDMÅ荞݂ɂ΂ȂꍇA + @IIC荞݂̃ZbgԂɍ킸邱Ƃ܂B + ***********************************************/ +__interrupt void int_iic10( ) +{ + EI(); + if( iic_send_wo_dma_len != 0 ) // ܂MĂȂH + { + SIO10 = *p_iic_send_wo_dma_dat; + p_iic_send_wo_dma_dat ++; + iic_send_wo_dma_len --; + return; + // ܂ // + } + + // Ō̃oCgMAXgbvRfBVs + IICMK10 = 1; +// iic_mcu_send_sp(); // ISRŊO̊֐ĂԂ͓̂siėpWX^ҔĵœWJ + { + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // clear SCL + NOP(); NOP(); NOP(); NOP(); // NOP8Ăł͂ + NOP(); NOP(); NOP(); NOP(); + SO0 = 0x0400 | TAUS_MASK; // set SCL + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); + SO0 = 0x0404 | TAUS_MASK; // set CSL adn SDA + } + + iic_mcu_wo_dma = false; + iic_mcu_busy = false; +} + + + +/********************************************//** + X[ǔĂяo + +@X[uAhXĂŁAACK̊mFB + + ACK@@@@@@@@@@@@@@@@@@ԁFI2C_ERR_OK + +@NACK @XgbvRfBVoB@ԁFI2C_ERR_NOSLAVE + ***********************************************/ +i2c_err iic_mcu_call_slave( u8 slave ) +{ + iic_mcu_send_st( ); + +/* +// dbg + if( SSR02 != 0 ) + { + P1.5 = P1.0 = P1.3 = 1; + } +*/ + + SIR02 = SSR02; // NAKG[̃tONA + if( iic_mcu_send_a_byte( slave ) != I2C_ERR_OK ) + { + iic_mcu_send_sp( ); + return ( I2C_ERR_NOSLAVE ); // w̃X[uȂ + } + + return ( I2C_ERR_OK ); +} + + + +/********************************************//** + قƂɂPoCĝ + + I܂ŋA܂ + ***********************************************/ +i2c_err iic_mcu_send_a_byte( u8 dat ) +{ + IICMK10 = 1; + IICIF10 = 0; + SIO10 = dat; + while( IICIF10 == 0 ) + { +// NOP( ); + } // ʐM + + if( SSR02 != 0 ) // 炩G[? + { + SIR02 = SSR02; // G[NA + return( I2C_ERR_NAK ); + } + return( I2C_ERR_OK ); +} + + + +/********************************************//** + X^[gRfBV𔭍s + + \tgEFA + ***********************************************/ +static void iic_mcu_send_st( ) +{ + SO0 &= ~0x0004; // SDA + nop8(); + + SO0 &= ~0x0400; // SCL + SOE0 = 0x0004; // n[h + + SCR02 = TXE0 | 1 << SLC02 | 7 << DLS02; // MAf[^͂WrbgP + SS0 = 0x0004; // ʐMҋ@ +} + + + +/********************************************//** + X^[gs + ***********************************************/ +void iic_mcu_send_re_st( ) +{ + ST0 |= 0x0004; + SO0 |= 0x0400 | TAUS_MASK; // ( SDA = H ), SCL -> H + nop8(); + + SOE0 &= ~0x0004; // ( SCL = H ), SDA -> L + nop8(); + + iic_mcu_send_st( ); +} + + + +/********************************************//** + XgbvRfBVs + + ̑OɁAuŌ̃oCg̑Mv̎ɑOKvłB + ***********************************************/ +void iic_mcu_send_sp( ) +{ + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // SCL + nop8(); + + SO0 = 0x0400 | TAUS_MASK; // SCL + nop8(); + + SO0 = 0x0404 | TAUS_MASK; +} + + + + +/********************************************//** + ytFW[̏ + ***********************************************/ +void iic_mcu_start( ) +{ + if( iic_mcu_initialized ) + { + return; + } + + iic_mcu_busy = true; +// DST1 = 0; + + I2C_PU_on(); +// DEN1 = 0; // DST1 = 0 2clḱADSTn==0|[OĂ + + wait_ms( 1 ); // オ̂50usʂ + + SAU0EN = 1; + nop8(); + + SPS0 = 0x0000; // VAjbg̃NbNOB(8M/2)/1 + SMR02 = bSMR0n_FIXEDBIT | bMD0n2; // ȈI2Cɐݒ + SDR02 = 10 << 9; // {[[gݒ 8M/1/(x+1)/2 + + SO0 = 0x0404 | TAUS_MASK; // ŏHH + iic_mcu_wo_dma = false; + + + // oX̃Zbg + { + IICIF10 = 0; + IICMK10 = 1; + + iic_mcu_send_st(); + + SIO10 = 0xFF; + while( IICIF10 == 0 ){;} // ʐM + iic_mcu_send_sp(); + + SIR02 = SSR02; + } + + iic_mcu_busy = false; + iic_mcu_initialized = true; +} + + + +/********************************************//** + W[̒~ + + ēxgƂ͏Kv + ***********************************************/ +void iic_mcu_stop( ) +{ + while( iic_mcu_busy ) + {;} // DMA쒆͂҂ + iic_mcu_send_re_st( ); // SCL,SDALLɂ + I2C_PU_off(); + SAU0EN = 0; + iic_mcu_initialized = false; +} + diff --git a/snake_branches/3.40_jane/i2c_mcu.h b/snake_branches/3.40_jane/i2c_mcu.h new file mode 100644 index 0000000..16eeba8 --- /dev/null +++ b/snake_branches/3.40_jane/i2c_mcu.h @@ -0,0 +1,40 @@ +#ifndef __ic2_mcu__ +#define __ic2_mcu__ + + +// ======================================================== +typedef enum{ + I2C_ERR_OK = 0, + I2C_ERR_NAK, + I2C_ERR_NOSLAVE, + I2C_ERR_TIMEOUT, + I2C_ERR_UNDEF = 0xFF +}i2c_err; + + + +// ======================================================== +extern volatile bit iic_mcu_busy; +extern bit iic_mcu_wo_dma; + +extern i2c_err iic_mcu_result; + + +// ======================================================== +i2c_err iic_mcu_read( u8 SLA, u8 adrs, u8 len, u8 * dest ); +u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ); + +i2c_err iic_mcu_write( u8 SLA, u8 adrs, u8 len, void * src ); +i2c_err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ); + +i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ); // codecoO@\t + + +// ̒ʐM܂B +#define iic_mcu_set_wo_dma() { while( iic_mcu_busy ){;} iic_mcu_wo_dma = true; } + +void iic_mcu_start( ); +void iic_mcu_stop( ); + + +#endif diff --git a/snake_branches/3.40_jane/i2c_mcu_sub.h b/snake_branches/3.40_jane/i2c_mcu_sub.h new file mode 100644 index 0000000..a2c192e --- /dev/null +++ b/snake_branches/3.40_jane/i2c_mcu_sub.h @@ -0,0 +1,9 @@ +#ifndef __ic2_mcu_sub__ +#define __ic2_mcu_sub__ + +// $Id: asdf$ + +i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ); +void codec_dummy_write( void ); + +#endif diff --git a/snake_branches/3.40_jane/i2c_twl.c b/snake_branches/3.40_jane/i2c_twl.c new file mode 100644 index 0000000..3c91ce8 --- /dev/null +++ b/snake_branches/3.40_jane/i2c_twl.c @@ -0,0 +1,246 @@ +/* ======================================================== + TWL ݊I2C + + $Id: i2c_twl.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr /* @\WX^gp */ + +#endif + + +/*============================================================================*/ +#ifndef _WIN32 +# pragma interrupt INTIICA0 int_iic_twl RB2 +#endif + +#include "incs_loader.h" +#include "i2c_twl_defs.h" +#include "i2c_twl.h" +#include "vreg_twl.h" +#include "WDT.h" + + +#ifdef _MCU_BSR_ +//#ifdef _MODEL_TS0_ || _MODEL_WM0_ + +// [LOfI2Ct +#define ACKD ACKD0 +#define ACKE ACKE0 +#define COI COI0 +#define IICAEN IICA0EN +#define IICRSV IICRSV0 +#define IICA IICA0 +#define IICAIF IICAIF0 +#define IICAMK IICAMK0 +#define IICAPR0 IICAPR00 +#define IICAPR1 IICAPR10 +#define IICCTL0 IICCTL00 +#define IICE IICE0 +#define IICF IICF0 +#define IICS IICS0 +#define IICWH IICWH0 +#define IICWL IICWL0 +#define LREL LREL0 +#define SPD SPD0 +#define SPIE SPIE0 +#define STCEN STCEN0 +#define STD STD0 +#define SVA SVA0 +#define WREL WREL0 +#define WTIM WTIM0 +#define SMC SMC0 +#define TRC TRC0 +#define DFC DFC0 +#define PortMode PM6 +#define Port P6 + +#endif // _MCU_BSR_ + +#ifndef _MCU_BSR_ + +// ke3̎̓_~[֐ +void IIC_twl_Stop( void ) +{ +} +void IIC_twl_Init( void ) +{ +} +#else // _MCU_BSR_ + + + +enum IIC_TWL_STATE{ + WAIT_ADRS = 0, + WAIT_DATA, + DATA_READED +}; + + + + +/*============================================================================*/ + +// I@̓}NȂ̂ŁAreturn̓C[vɖ߂܂B +#define wait_next { \ + tot = 0; \ + while( IICAIF != 1 ){ \ + tot ++; \ + if( tot == 0 ){ \ + LREL = 1; \ + return; \ + } \ + } \ +} + + +/********************************************//** + isr + + TWL̓EFCg𗝉ĂꂸA܂Ao[XgR/W + ȂłĂ̂ŁAXgbvRfBV܂ňCɂĂ܂B + ***********************************************/ +__interrupt void int_iic_twl( ) +{ + u8 vreg_adrs; + u8 state; + + // @ + WREL = 1; // EFCgĎ̃oCg҂ + WDT_Restart(); + state = WAIT_ADRS; + + while( 1 ) + { + u8 my_iics; + + { + u16 tot; + wait_next; // PoCgM҂ + } + + my_iics = IICS; + IICAIF = 0; + + if( my_iics & 0x02 ) // ( STD && !SPD ) + { + // X^[gRfBV + if( ( my_iics & 0x08 ) == 0 ) // ( TRC ) MtO 0:}CRM + { + // @f}CRłATWLgCƂƂ + // ɗ̂̓X[uĂяo̎ // + WREL = 1; + state = WAIT_ADRS; + /// WX^AhX̂҂ + } + else + { + // BR Rł̃X[uĂяo(X^[gRfBV) // + IICA = vreg_twl_read( vreg_adrs ); // f[^M + // Xgbv҂ALREL = 1 ɂȂƁAMobt@j󂳂邱Ƃ + state = DATA_READED; + } + } + else if( ( my_iics & 0x03 ) == 0 ) // ( !STD && !SPD ) + { + u8 rcvd; + + // 炩M + rcvd = IICA; + WREL = 1; + + if( state == WAIT_ADRS ) + { + // A + vreg_adrs = adrs_table_twl_ext2int( rcvd ); + /// f[^邩AX^[gœǂݏô҂ + state = WAIT_DATA; + } + else if( state == DATA_READED ) + { + // f[^1oCgM㔭 + LREL = 1; + return; + } + else + { + // BW + // f[^܂ + SVA = 0x5A; // _~[ + LREL = 1; // X^[gRfBV҂(AݖΉ̂) + vreg_twl_write( vreg_adrs, rcvd ); + SVA = IIC_T_SLAVEADDRESS; + return; // M܂ // + } + } + else if( my_iics & 0x01 ) // SPD + { + // I + LREL = 1; + return; + } + else + { + // NOP(); + } + } +} + + + +/********************************************//** + W[ + ***********************************************/ +void IIC_twl_Init( void ) +{ + + IICAEN = 1; + + IICE = 0; /* IICA disable */ + + IICAMK = 1; /* INTIICA disable */ + IICAIF = 0; /* clear INTIICA interrupt flag */ + + IICAPR0 = 0; /* set INTIICA high priority */ + IICAPR1 = 0; /* set INTIICA high priority */ + Port &= ~0x03; + + SVA = IIC_T_SLAVEADDRESS; + IICF = 0x01; + + STCEN = 1; // X^[g̋ + IICRSV = 1; // ʐM\Ȃ:X[uɓO + + SPIE = 0; // XgbvRfBVł̊荞݂֎~ + WTIM = 1; // ACKԂclkLɌŒ肷 + ACKE = 1; // _CPU͖Ď̒ʐM͂߂邩ȂőclkJȂƂȂ + + IICWH = 9; + IICWL = 11; // LԂ̒iHj + + SMC = 1; + DFC = 1; // fW^tB^on (@fast mode) + + IICAMK = 0; // 荞݂ + + IICE = 1; + + PortMode &= ~0x03; + + LREL = 1; +} + + + +/********************************************//** + W[~ + ***********************************************/ +void IIC_twl_Stop( void ) +{ + IICE = 0; /* IICA disable */ + IICAEN = 0; +} + + +#endif diff --git a/snake_branches/3.40_jane/i2c_twl.h b/snake_branches/3.40_jane/i2c_twl.h new file mode 100644 index 0000000..0f608b0 --- /dev/null +++ b/snake_branches/3.40_jane/i2c_twl.h @@ -0,0 +1,7 @@ +#ifndef _iic_twl_ +#define _iic_twl_ + +void IIC_twl_Init( void ); +void IIC_twl_Stop( void ); + +#endif diff --git a/snake_branches/3.40_jane/i2c_twl_defs.h b/snake_branches/3.40_jane/i2c_twl_defs.h new file mode 100644 index 0000000..be5d566 --- /dev/null +++ b/snake_branches/3.40_jane/i2c_twl_defs.h @@ -0,0 +1,196 @@ +#ifndef _MDSERIAL_ +#define _MDSERIAL_ + + +/* IIC operation enable (IICE0) */ +#define IIC0_OPERATION 0x80 +#define IIC0_OPERATION_DISABLE 0x00 /* stop operation */ +#define IIC0_OPERATION_ENABLE 0x80 /* enable operation */ + +/* Exit from communications (LREL0) */ +#define IIC0_COMMUNICATION 0x40 +#define IIC0_COMMUNICATION_NORMAL 0x00 /* normal operation */ +#define IIC0_COMMUNICATION_EXIT 0x40 /* exit from current communication */ + +/* Wait cancellation (WREL0) */ +#define IIC0_WAITCANCEL 0x20 +#define IIC0_WAIT_NOTCANCEL 0x00 /* do not cancel wait */ +#define IIC0_WAIT_CANCEL 0x20 /* cancel wait */ + +/* Generation of interrupt when stop condition (SPIE0) */ +#define IIC0_STOPINT 0x10 +#define IIC0_STOPINT_DISABLE 0x00 /* disable */ +#define IIC0_STOPINT_ENABLE 0x10 /* enable */ + +/* Wait and interrupt generation (WTIM0) */ +#define IIC0_WAITINT 0x08 +#define IIC0_WAITINT_CLK8FALLING 0x00 /* generate at the eighth clocks falling edge */ +#define IIC0_WAITINT_CLK9FALLING 0x08 /* generated at the ninth clocks falling edge */ + +/* Acknowledgement control (ACKE0) */ +#define IIC0_ACK 0x04 +#define IIC0_ACK_DISABLE 0x00 /* enable acknowledgement */ +#define IIC0_ACK_ENABLE 0x04 /* disable acknowledgement */ + +/* Start condition trigger (STT0) */ +#define IIC0_STARTCONDITION 0x02 +#define IIC0_START_NOTGENERATE 0x00 /* do not generate start condition */ +#define IIC0_START_GENERATE 0x02 /* generate start condition */ + +/* Stop condition trigger (SPT0) */ +#define IIC0_STOPCONDITION 0x01 +#define IIC0_STOP_NOTGENERATE 0x00 /* do not generate stop condition */ +#define IIC0_STOP_GENERATE 0x01 /* generate stop condition */ + +/* + IIC Status Register 0 (IICS0) +*/ +/* Master device status (MSTS0) */ +#define IIC0_MASTERSTATUS 0x80 +#define IIC0_STATUS_NOTMASTER 0x00 /* slave device status or communication standby status */ +#define IIC0_STATUS_MASTER 0x80 /* master device communication status */ + +/* Detection of arbitration loss (ALD0) */ +#define IIC0_ARBITRATION 0x40 +#define IIC0_ARBITRATION_NO 0x00 /* arbitration win or no arbitration */ +#define IIC0_ARBITRATION_LOSS 0x40 /* arbitration loss */ + +/* Detection of extension code reception (EXC0) */ +#define IIC0_EXTENSIONCODE 0x20 +#define IIC0_EXTCODE_NOT 0x00 /* extension code not received */ +#define IIC0_EXTCODE_RECEIVED 0x20 /* extension code received */ + +/* Detection of matching addresses (COI0) */ +#define IIC0_ADDRESSMATCH 0x10 +#define IIC0_ADDRESS_NOTMATCH 0x00 /* addresses do not match */ +#define IIC0_ADDRESS_MATCH 0x10 /* addresses match */ + +/* Detection of transmit/receive status (TRC0) */ +#define IIC0_STATUS 0x08 +#define IIC0_STATUS_RECEIVE 0x00 /* receive status */ +#define IIC0_STATUS_TRANSMIT 0x08 /* transmit status */ + +/* Detection of acknowledge signal (ACKD0) */ +#define IIC0_ACKDETECTION 0x04 +#define IIC0_ACK_NOTDETECTED 0x00 /* ACK signal was not detected */ +#define IIC0_ACK_DETECTED 0x04 /* ACK signal was detected */ + +/* Detection of start condition (STD0) */ +#define IIC0_STARTDETECTION 0x02 +#define IIC0_START_NOTDETECTED 0x00 /* start condition not detected */ +#define IIC0_START_DETECTED 0x02 /* start condition detected */ + +/* Detection of stop condition (SPD0) */ +#define IIC0_STOPDETECTION 0x01 +#define IIC0_STOP_NOTDETECTED 0x00 /* stop condition not detected */ +#define IIC0_STOP_DETECTED 0x01 /* stop condition detected */ + +/* + IIC Flag Register 0 (IICF0) +*/ +/* STT0 clear flag (STCF) */ +#define IIC0_STARTFLAG 0x80 +#define IIC0_STARTFLAG_GENERATE 0x00 /* generate start condition */ +#define IIC0_STARTFLAG_UNSUCCESSFUL 0x80 /* start condition generation unsuccessful */ + +/* IIC bus status flag (IICBSY) */ +#define IIC0_BUSSTATUS 0x40 +#define IIC0_BUS_RELEASE 0x00 /* bus release status */ +#define IIC0_BUS_COMMUNICATION 0x40 /* bus communication status */ + +/* Initial start enable trigger (STCEN) */ +#define IIC0_STARTWITHSTOP 0x02 +#define IIC0_START_WITHSTOP 0x00 /* generation of a start condition without detecting a stop condition */ +#define IIC0_START_WITHOUTSTOP 0x02 /* generation of a start condition upon detection of a stop condition */ + +/* Communication reservation function disable bit (IICRSV) */ +#define IIC0_RESERVATION 0x01 +#define IIC0_RESERVATION_ENABLE 0x00 /* enable communication reservation */ +#define IIC0_RESERVATION_DISABLE 0x01 /* disable communication reservation */ + +/* + IIC clock selection register 0 (IICCL0) +*/ +#define IICCL0_INITIALVALUE 0x00 +/* Detection of SCL0 pin level (CLD0) */ +#define IIC0_SCLLEVEL 0x20 +#define IIC0_SCL_LOW 0x00 /* clock line at low level */ +#define IIC0_SCL_HIGH 0x20 /* clock line at high level */ + +/* Detection of SDA0 pin level (DAD0) */ +#define IIC0_SDALEVEL 0x10 +#define IIC0_SDA_LOW 0x00 /* data line at low level */ +#define IIC0_SDA_HIGH 0x10 /* data line at high level */ + +/* Operation mode switching (SMC0) */ +#define IIC0_OPERATIONMODE 0x08 +#define IIC0_MODE_STANDARD 0x00 /* operates in standard mode */ +#define IIC0_MODE_HIGHSPEED 0x08 /* operates in high-speed mode */ + +/* Digital filter operation control (DFC0) */ +#define IIC0_DIGITALFILTER 0x04 +#define IIC0_FILTER_OFF 0x00 /* digital filter off */ +#define IIC0_FILTER_ON 0x04 /* digital filter on */ + +/* Operation mode switching (CL01, CL00) */ +#define IIC0_CLOCKSELECTION 0x03 + +/* Combine of (SMC0, CL01, CL00)*/ +#define IIC0_CLOCK0 0x00 +#define IIC0_CLOCK1 0x01 +#define IIC0_CLOCK2 0x02 +#define IIC0_CLOCK3 0x03 +#define IIC0_CLOCK4 0x08 +#define IIC0_CLOCK5 0x09 +#define IIC0_CLOCK6 0x0a +#define IIC0_CLOCK7 0x0b + +/* + IIC function expansion register 0 (IICX0) +*/ +/* IIC clock expension (CLX0) */ +#define IIC0_CLOCKEXPENSION 0x01 +#define IIC0_EXPENSION0 0x00 +#define IIC0_EXPENSION1 0x01 + +/* Operation clock (CLX0, SMC0, CL01, CL00) + | IIC0_EXPENSION0 | IIC0_EXPENSION1 | +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK0 | fprs/2 | prohibited | selection clock(fw) + | fprs/88 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK1 | fprs/2 | prohibited | selection clock(fw) + | fprs/172 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK2 | fprs/2 | prohibited | selection clock(fw) + | fprs/344 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK3 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/66 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK4 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK5 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK6 | fprs/4 | fprs/4 | selection clock(fw) + | fprs/96 | fprs/48 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK7 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/18 | | transfer clock + | high speed | | mode +------------|-------------------|-------------------|---------------------- +*/ + +#define ADDRESS_COMPLETE 0x80 +#define IIC_MASTER_FLAG_CLEAR 0x00 + +#endif diff --git a/snake_branches/3.40_jane/incs.h b/snake_branches/3.40_jane/incs.h new file mode 100644 index 0000000..f9c1c4a --- /dev/null +++ b/snake_branches/3.40_jane/incs.h @@ -0,0 +1,44 @@ +#ifndef _WIN32 +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#endif + +#ifndef _WIN32 +#pragma section @@CODE ROM_CODE +//#pragma section @@CNST ROM_CNST +#endif + +#ifdef _WIN32 +// VC̐Ԑǂɂ +#include "sim/simOnWin.h" +# endif + + + +//========================================================= +#ifndef _incs_h_ +#define _incs_h_ + +// v_pc_ƂŐ؂ւĂ܂ +#define _mcu_ + +#include "jhl_defs.h" +#include "config.h" +#include "user_define.h" + +#include "hal.h" + +#include "bsr_system.h" +#include "renge\renge.h" + +#include "vreg_ctr.h" + +#include "util_funcs.h" + +//========================================================= + +#endif diff --git a/snake_branches/3.40_jane/incs_loader.h b/snake_branches/3.40_jane/incs_loader.h new file mode 100644 index 0000000..0569b9f --- /dev/null +++ b/snake_branches/3.40_jane/incs_loader.h @@ -0,0 +1,49 @@ +/* ======================================================== + @sԂvolatileȂ̂Ń^C~OˑŊ҂ȂɂȂ̂@ + + Hardware abstruct layer + + $Id: asdf$ + ======================================================== */ +#ifndef _WIN32 +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt + + +#pragma section @@CODE LDR_CODE +#pragma section @@CODEL LDR_CODL + +//#pragma section @@R_INIT FSL_RINT // ƃX^[gAbv[`l +//#pragma section @@CNST FSL_CNST // ZbgĂȂ +#pragma section @@CNSTL LDR_CNSL + +#endif + +# ifdef _WIN32 +// VC̐Ԑǂɂ +#include "sim/simOnWin.h" +# endif + + +//========================================================= +#include "jhl_defs.h" +#include "config.h" + +#include "user_define.h" + +#include "hal.h" + +#include "bsr_system.h" +#include "renge\renge.h" + +#include "vreg_ctr.h" +#include "vreg_twl.h" + + +//========================================================= +void firm_update( ); +void firm_restore( ); diff --git a/snake_branches/3.40_jane/ini_VECT.c b/snake_branches/3.40_jane/ini_VECT.c new file mode 100644 index 0000000..84da25c --- /dev/null +++ b/snake_branches/3.40_jane/ini_VECT.c @@ -0,0 +1,347 @@ +/* ======================================================== + 荞݃xN^e[u + $Id$ + ======================================================== */ + +#ifndef _WIN32 + +#pragma nop + +#endif + +#include "config.h" + +#ifndef _WIN32 + +#ifdef _WDT_CHECK_ +#pragma interrupt INTWDTI fn_intwdti // wdt debug +#endif + +//#pragma interrupt INTLVI fn_intlvi // gp + +//#pragma interrupt INTP0 intp0_slp // SLP (CPUAv) |[O +//#pragma interrupt INTP1 fn_intp1 // (I2C) +//#pragma interrupt INTP2 fn_intp2 // (I2C) +//#pragma interrupt INTP3 fn_intp3 // +#pragma interrupt INTP4 intp4_extdc // EXTDC, doffN̂݁Bʏ̓|[O +#pragma interrupt INTP5 intp5_shell // SHELL_CLOSE, doffN̂݁Bʏ̓|[O +#pragma interrupt INTP6 intp6_PM_irq // CODECoRŋPMICւ̃R}h + +//#ifdef _MCU_BSR_ // 荞݂͎̂̂g܂ +//#pragma interrupt INTP21 intp21_RFTx // dgMpX +//#else +//#pragma interrupt INTP7 intp21_RFTx +//#endif + + +/* + + accero +#ifdef _MCU_BSR_ +#pragma interrupt INTP23 intp23_ACC_ready RB3 // xZTAf[^ +#endif +*/ + +//#pragma interrupt INTCMP0 fn_intcmp0 +//#pragma interrupt INTCMP1 fn_intcmp1 +//#pragma interrupt INTDMA0 fn_intdma0 +#pragma interrupt INTDMA1 int_dma1 + +//#pragma interrupt INTST0 fn_intst0 +/* #pragma interrupt INTCSI00 fn_intcsi00 */ +//#pragma interrupt INTSR0 fn_intsr0 +/* #pragma interrupt INTCSI01 fn_intcsi01 */ +//#pragma interrupt INTSRE0 fn_intsre0 + +//#pragma interrupt INTST1 fn_intst1 +/* #pragma interrupt INTCSI10 fn_intcsi10 */ +#pragma interrupt INTIIC10 int_iic10 +//#pragma interrupt INTSR1 fn_intsr1 +//#pragma interrupt INTSRE1 fn_intsre1 + + +/* +// TS̓}U{ŃeRAWM͉H}eRŌLjvc +#pragma interrupt INTIICA1 int_iic_ctr RB1 + +#pragma interrupt INTIICA0 int_iic_twl RB2 +*/ + +//#pragma interrupt INTTM00 fn_inttm00 +//#pragma interrupt INTTM01 fn_inttm01 +//#pragma interrupt INTTM02 fn_inttm02 +//#pragma interrupt INTTM03 fn_inttm03 + +#pragma interrupt INTAD int_adc +#pragma interrupt INTRTC int_rtc +#pragma interrupt INTRTCI int_rtc_int +#pragma interrupt INTKR int_kr +//#pragma interrupt INTMD fn_intmd + +//#pragma interrupt INTTM04 fn_inttm04 +//#pragma interrupt INTTM05 fn_inttm05 +//#pragma interrupt INTTM06 fn_inttm06 +//#pragma interrupt INTTM07 fn_inttm07 + + +//#define _irq_debug_ +/****************************************************/ +/* gp̃_~[֐` */ +/****************************************************/ +#ifdef _WDT_CHECK_ +__interrupt void fn_intwdti( ) +{ + while( 1 ) + { + NOP(); + } +} +#endif + +#ifdef _irq_debug_ +__interrupt void fn_intlvi( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intp0(){ +while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intp1( ) +{ + while( 1 ) + { + NOP(); + } +} // +__interrupt void fn_intp2( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intp3( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void intp21_RFTx( ) +{ + while( 1 ) + { + NOP(); + } +} + + +//__interrupt void fn_intp4(){ while(1){} } // pm.c +//__interrupt void fn_intp5(){ while(1){} } // pm.c +//__interrupt void fn_intp6(){ while(1){} } // pm.c +//__interrupt void fn_intp7(){ while(1){} } // led.c +//__interrupt void fn_intp21(){ while(1){} } // led.c + +__interrupt void fn_intcmp0( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intcmp1( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intdma0( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void fn_intdma1(){} // i2c_mcu.cɂ + +__interrupt void fn_intst0( ) +{ + while( 1 ) + { + NOP(); + } +} + +/* __interrupt void fn_intcsi00(){} */ +__interrupt void fn_intsr0( ) +{ + while( 1 ) + { + NOP(); + } +} + +/* __interrupt void fn_intcsi01(){} */ +__interrupt void fn_intsre0( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intst1( ) +{ + while( 1 ) + { + NOP(); + } +} + +/* __interrupt void fn_intcsi10(){} */ +//__interrupt void fn_intiic10(){ while(1){} } +__interrupt void fn_intsr1( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intsre1( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void fn_intiica(){} // i2c.cɂ +/* __interrupt void fn_inttm00(){} *//* sub.cɂĒ` */ +__interrupt void fn_inttm01( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm02( ) +{ + while( 1 ) + { + NOP(); + } +} +__interrupt void fn_inttm03( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void fn_intad(){ while(1){} } // adc.c +__interrupt void fn_intrtc( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void int_rtcint(){} // rtc.cɂ +//__interrupt void fn_intkr(){} // main.c +__interrupt void fn_intmd( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm04( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm05( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm06( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm07( ) +{ + while( 1 ) + { + NOP(); + } +} + +#endif + + + +/* ======================================================== + L[^[荞 + ======================================================== */ +__interrupt void int_kr( ) +{ + // N邾 +} + + + +/* ======================================================== + ext dc + ======================================================== */ +__interrupt void intp4( ) +{ + // N邾 +} + + + +/* ======================================================== + shell close + ======================================================== */ +__interrupt void intp5( ) +{ + // N邾 +} + + +#else + +#include "sim/sim_interrupt_decrare.c" + +#endif + diff --git a/snake_branches/3.40_jane/jhl_defs.h b/snake_branches/3.40_jane/jhl_defs.h new file mode 100644 index 0000000..2750983 --- /dev/null +++ b/snake_branches/3.40_jane/jhl_defs.h @@ -0,0 +1,25 @@ +#ifndef __jhl_defs_h__ +#define __jhl_defs_h__ + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef signed short s16; + +typedef unsigned short ux16; +typedef signed short sx16; + +#define true 1 +#define false 0 + + +#define set_bit_if( cond, reg, pos ) \ +{ \ + if( cond ){ \ + reg |= pos; \ + }else{ \ + reg &= ~pos; \ + } \ +} + +#endif diff --git a/snake_branches/3.40_jane/kanaria.asm b/snake_branches/3.40_jane/kanaria.asm new file mode 100644 index 0000000..9deaddb --- /dev/null +++ b/snake_branches/3.40_jane/kanaria.asm @@ -0,0 +1,12 @@ +PUBLIC _END_1,_END_2,_END_3,_END_4 + +@@DATA DSEG BASEP +_END_1: +@@INIT DSEG BASEP +_END_2: +@@INITL DSEG UNIT64KP +_END_3: +@@DATAL DSEG UNIT64KP +_END_4: +; +END diff --git a/snake_branches/3.40_jane/kanaria_c.c b/snake_branches/3.40_jane/kanaria_c.c new file mode 100644 index 0000000..bbb5ec7 --- /dev/null +++ b/snake_branches/3.40_jane/kanaria_c.c @@ -0,0 +1,18 @@ +/********************************************//** + X^bN̍Ō̒lǂ + + X^bNj󌟍̂ + + $Id$ + ***********************************************/ +#include "incs.h" + +extern unsigned char END_4; + +void f() +{ + unsigned char *tp; + + tp = &END_4; +} + diff --git a/snake_branches/3.40_jane/led.c b/snake_branches/3.40_jane/led.c new file mode 100644 index 0000000..bf62e07 --- /dev/null +++ b/snake_branches/3.40_jane/led.c @@ -0,0 +1,399 @@ +/* ======================================================== + LED.c + + $Id: LED.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr + +#endif + +#include "incs.h" +#include "led.h" + + +// ======================================================== +static void LED_oshirase_init(); + + + +// ======================================================== +// TPS0 +#define BIT_PRS012 ( 1 << 2 ) +#define BIT_PRS002 ( 1 << 6 ) + +// TMR0 +#define BIT_CKS0 15 +#define BIT_CCS0 12 +#define BIT_MASTER0 11 +#define BIT_STS0 8 +#define BIT_CIS0 6 +#define BIT_MD123 1 +#define BIT_MD0 0 + + + +// ======================================================== +bit ledInitialized; + + +// m点LED +uni_info_LED info_LED; // p^[f[^ +bit info_led_off; // doffȂǁAtO +bit info_led_override; // drcʋ͏_ŏ㏑rbg + +// wifi led Xe[g +static u8 state_wifi_tx; +static u8 flag_wifi_TX; + + +// ======================================================== +#define led_fade_to( now, goal ) now = fade_to( now, goal ) + + +/********************************************//** + now goal ɂȂ܂ inc / dec BxĂԂƃOf[V + + Ƃ肠AXebvŒ + ***********************************************/ +u8 fade_to( u8 now, u8 goal ) +{ + if( now != goal ) + { + if( now > goal ) + { + now --; + } + else + { + now ++; + } + } + return( now ); +} + + + + +/********************************************//** + XlăOf[V + ***********************************************/ +#define led_fade_to2( led, status ) \ + led = fade_to2( status ) + + +u8 fade_to2( st_LED_dim_status* status ) +{ + if( status->now != status->to ) + { + if( abs(( status->to - status->now )) > abs(status->delta) ) + { + status->now += status->delta; + } + else + { + // delta Ƃ to ̒lɂԂ‚Ă܂ + status->now = status->to; + } + } + return( status->now / 128 ); +} + + + + +/********************************************//** + LED̏ + + HW^C}[ĝł̏s + ***********************************************/ +void LED_init( ) +{ +/** + PWM̃ZbgAƂ肠S + + }X^`lFO@(P01:/reset2)@}X^[͋`lłȂ + X[u@@@@P@rksnB(Rc kdcH) + @@@@@@@@Q@J + @@@@@@@@R@WiFi + @@@@@@@@S@(s͂qsb32kHz out Ɏgp) + @@@@@@@@T@[d + @@@@@@@@U@d k + @@@@@@@@V@d g + */ +// LED_oshirase_init(); // m点p^[ + + /// ytF /// + TAU0EN = 1; + TPS0 = BIT_PRS012 | BIT_PRS002; // }X^[NbNCK01,8M/2 /2^4 = 250kHz + + TMR00 = + 1 << BIT_CKS0 | 0 << BIT_CCS0 | 1 << BIT_MASTER0 | 0 << BIT_STS0 | 0 + << BIT_CIS0 | 0 << BIT_MD123 | 1 << BIT_MD0; + TMR01 = TMR02 = TMR03 = TMR04 = TMR05 = TMR06 = TMR07 = + 1 << BIT_CKS0 | 0 << BIT_CCS0 | 0 << BIT_MASTER0 | 4 << BIT_STS0 | 0 + << BIT_CIS0 | 4 << BIT_MD123 | 1 << BIT_MD0; + ISC = 0; + TOM0 = 0x00FE; // o̓[hB4PWMo͂Ȃ1ɂȂTO5ȍ~ɃNbN͂Ȃ + + TOL0 = 0x0000; // o͂𔽓]邩tO + + TO0 = 0x0000; // ^C}[쒆ŁA^C}[o͂ɂĂȂƂ̃s̃b`B^C}[o͂gȂȂO + TOE0 = 0x00EE; // TOx^C}[W[H + + TS0 = 0x00EF; // Jn + + TDR00 = LED_BRIGHT_MAX - 1; // 10bit + + // Abvf[gȂǂŃ}CR̂݃u[gƂ + if( system_status.reboot ) + { + // SoC ̃R}h҂Aœd LED ‚ + vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO; + LED_duty_pow_blu = LED_BRIGHT_MAX; + } + info_led_off = false; // + ledInitialized = true; +} + + +static void LED_oshirase_init() +{ + char* p_tgt = &info_LED; + int i; + + for( i = 0; i < sizeof(info_LED); i++ ) + { + *p_tgt = 0; + p_tgt++; + } +} + + + + + +/********************************************//** + LED̒~B + + HW^C}[̒~ + ***********************************************/ + +void LED_stop( ) +{ + TT0 = 0x00EF; // Ē~iȂƂ߁j + TOE0 = 0x0000; // TOx^C}[W[H(GPIOɂȂ) + TAU0EN = 0; + LED_pow_red = 0; + LED_CAM = 0; + + LED_duty_notify_red = 0; + LED_duty_notify_blu = 0; + LED_duty_notify_grn = 0; + LED_pow_red = 0; + LED_CAM = 0; + + WIFI_txLatch = 0; + flag_wifi_TX = 0; + state_wifi_tx = 0; + + ledInitialized = false; +} + + + + +/********************************************//** + WiFi LED ̍XV + + - WX^̐ݒ on / off + - off łĂW[̑MpX -_-_-_--------_-_-_-------̃p^[_ + ***********************************************/ +void tsk_led_wifi( ) +{ + static u8 task_interval; + + if( task_interval-- != 0 ) + { + return; + } + + // MpX̃b` + if( WIFI_txLatch ) // 荞݃tÔ̂gĂ܂ + { + WIFI_txLatch = 0; + flag_wifi_TX = 1; + } + + if( flag_wifi_TX != 0 ) + { + vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_WIFI_TX; + // Mp^[ + switch ( state_wifi_tx ) + { + case ( 1 ): + case ( 3 ): + case ( 5 ): + LED_duty_WiFi = 0; + break; + default: + LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT]; + } + state_wifi_tx ++; + if( state_wifi_tx == 32 ) // _ŌA_ĂԂ̒ + { + state_wifi_tx = 0; + flag_wifi_TX = 0; + } + task_interval = 25; + return; + } + else + { + task_interval = 30; + // MtO҂ + vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_WIFI_TX; + + if( vreg_ctr[VREG_C_LED_WIFI] == WIFI_LED_OFF ) + { + LED_duty_WiFi = 0; + return; + } + else + { + if( LED_duty_WiFi == vreg_ctr[VREG_C_LED_BRIGHT] ) + { + return; + } + else if( LED_duty_WiFi < vreg_ctr[VREG_C_LED_BRIGHT] ) + { + LED_duty_WiFi ++; + } + else + { + LED_duty_WiFi --; + } + } + task_interval = 3; + return; + } +} + + + + +bit info_led_pattern_updated; +/********************************************//** + m点LED + + tF[hAEgvZ + ***********************************************/ +static void calc_info_led_fade_out( st_LED_dim_status* tgt_led ) +{ + tgt_led -> to = 0; + tgt_led -> delta = ( 0 - tgt_led -> now ) / 64; + // tF[hAEg([ɌĂB̌z肵Ă܂B) + if(( tgt_led -> now != 0 ) && ( tgt_led -> delta == 0 )) + { + tgt_led -> delta = (sx16)-1; + } +} + + +/********************************************//** + m点LED + + Of[VvZ + ***********************************************/ +static void calc_info_led_next_frame( st_LED_dim_status* tgt_led, u8 color ) +{ + tgt_led -> to = color * 128; + // Of[Ṽf^vZ + tgt_led -> delta = (( tgt_led -> to - tgt_led -> now ) ) / info_LED.info_LED.fade_time; +} + + +/********************************************//** + m点LED + ***********************************************/ +void tsk_led_notify( ) +{ + static u8 time_to_next_frame; + static u8 frame; + static u8 loops; + static st_LED_dim_status LED_dim_status_info_R, LED_dim_status_info_G, LED_dim_status_info_B; + + if( info_led_override ) + { + // dr؂ꂪD悷 + return; + } + + if( system_status.pwr_state == ON_TRIG ) + { + LED_duty_notify_blu = 0; + LED_duty_notify_red = 0; + LED_duty_notify_grn = 0; + LED_dim_status_info_R.now = 0; + LED_dim_status_info_G.now = 0; + LED_dim_status_info_B.now = 0; + } + + if( info_led_off ) // doffȂNjoff + { + // tF[hAEg + calc_info_led_fade_out( &LED_dim_status_info_R ); + calc_info_led_fade_out( &LED_dim_status_info_G ); + calc_info_led_fade_out( &LED_dim_status_info_B ); + } + else + { + // ʏ^] + if( info_led_pattern_updated ) + { + info_led_pattern_updated = false; + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP; + frame = 0; // Ə + time_to_next_frame = 0; + } + else + { + // ̃t[ɐi߂H + if( time_to_next_frame == 0 ) + { + time_to_next_frame = info_LED.info_LED.term; + + if( frame >= NOTIFY_LED_TERM -1 ) + { + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] |= REG_BIT_IN_LOOP; + if( info_LED.info_LED.last_loop != 255 ) // 255:[v + { + loops ++; + if( loops > info_LED.info_LED.last_loop ) + { + frame = 0; + } + } + } + else + { + frame = (( frame + 1 ) & 0x1F ); // Ń}XNĂȂƍŏIt[`擪Ԃ̃OfȂ + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP; + loops = 0; + } + + // Of[VvZ + calc_info_led_next_frame( &LED_dim_status_info_R, info_LED.info_LED.red[frame] ); + calc_info_led_next_frame( &LED_dim_status_info_G, info_LED.info_LED.grn[frame] ); + calc_info_led_next_frame( &LED_dim_status_info_B, info_LED.info_LED.blu[frame] ); + + } + time_to_next_frame --; + } + } + + led_fade_to2( LED_duty_notify_red, &LED_dim_status_info_R ); + led_fade_to2( LED_duty_notify_grn, &LED_dim_status_info_G ); + led_fade_to2( LED_duty_notify_blu, &LED_dim_status_info_B ); +} diff --git a/snake_branches/3.40_jane/led.h b/snake_branches/3.40_jane/led.h new file mode 100644 index 0000000..ce8541f --- /dev/null +++ b/snake_branches/3.40_jane/led.h @@ -0,0 +1,142 @@ +#ifndef __led__ +#define __led__ + + + +// ==================================== + +//#define LED_CHARGE P2.4 // PMŒ` + +// LED_DUTY +#define LED_duty_pow_blu TDR06 +#define LED_duty_WiFi TDR03 + +#define LED_duty_3d TDR01 +#define LED_duty_notify_red TDR07 +#define LED_duty_notify_grn TDR05 +#define LED_duty_notify_blu TDR02 + +// dutyς܂ +#ifndef _WIN32 +#define LED_pow_red P4.2 +#define LED_CAM P7.5 +#else +#define LED_pow_red mcuRegP[ _P4_2 ] +#define LED_CAM mcuRegP[ _P7_5 ] +#endif + +#define NOTIFY_LED_TERM 32 + + +#define LED_BRIGHT_MAX 0x00FF + +// ==================================== +#define WIFI_txLatch PIF21 // dgMpX + + + +// ==================================== +enum LED_ILUM_MODE +{ + LED_POW_ILM_AUTO = 0, + LED_POW_ILM_ON, + LED_POW_ILM_SLEEP, + LED_POW_ILM_OFF, + LED_POW_ILM_ONLY_RED, + LED_POW_ILM_ONLY_BLUE, + LED_POW_ILM_FORCE_BT_EMPTY +}; + + +enum LED_MODE_3D +{ + LED_3D_ILM_OFF = 0, + LED_3D_ILM_ON +}; + + +// VREG_C_WIFI_LED +enum WIFI_LED_MODE +{ + WIFI_LED_OFF = 0, + WIFI_LED_ON +}; + + +// VREG_C_WIFI_NOTIFY +enum NOTIFY_LED_MODE +{ + NOTIFY_LED_OFF = 0, + NOTIFY_LED_ON, + NOTIFY_LED_PTN0, + NOTIFY_LED_PTN1, + NOTIFY_LED_PTN2 +}; + + +// VREG_C_CAM_LED +enum CAM_LED_MODE +{ + CAM_LED_OFF = 0, + CAM_LED_BLINK, + CAM_LED_ON, + CAM_LED_BY_TWL, + CAM_LED_ON_PLUSE, + CAM_LED_OFF_PLUSE +}; + + + +// m点LED֌W // +typedef struct _st_info_LED +{ + u8 term; // 1t[`bNH + u8 fade_time; // `bNŎ̃t[̐FɒB邩 + u8 last_loop; // ŏIt[JԂH + u8 resv1; + u8 red[32]; + u8 grn[32]; + u8 blu[32]; +}st_info_LED; + +typedef union _uni_info_LED +{ + st_info_LED info_LED; + u8 bindata[ sizeof( st_info_LED ) ]; +}uni_info_LED; + +extern uni_info_LED info_LED; + + +// LED _Ō // +typedef struct _st_led_red_batt_empty +{ + u8 dats[4]; +}st_led_red_batt_empty; + +extern st_led_red_batt_empty led_red_batt_empty; + + +/* + m点LED +*/ +typedef struct _st_LED_dim_status +{ + sx16 to; + sx16 delta; + sx16 now; // _ȉoĂȂĂ͂ȂȂ +}st_LED_dim_status; + + + +// ==================================== +void LED_init( ); +void LED_stop( ); + + +// ==================================== +extern bit ledInitialized; +extern bit info_led_override; + + +#endif diff --git a/snake_branches/3.40_jane/led_cam.c b/snake_branches/3.40_jane/led_cam.c new file mode 100644 index 0000000..7d4a1eb --- /dev/null +++ b/snake_branches/3.40_jane/led_cam.c @@ -0,0 +1,156 @@ +/******************************************************//** + LED_Cam TO02 + + BLINK,*_PLUSE ̎́A1͕K̏ԂɂȂ܂B + + ̊Ԃ OFFBLINK ȂǂƁAOFF܂B + + $Id$ + *********************************************************/ +#ifndef _WIN32 + +#pragma sfr + +#endif + +#include "incs.h" +#include "led.h" +#include "vreg_twl.h" + + +// ======================================================== +static u8 state_led_cam = 0; +static u16 task_interval; + +bit cam_led_update; + + + +// ======================================================== +static void cam_led_twl(); + + + + +/********************************************//** + C^[os^XNƁAtwlWX^ւ݂̏̂QJĂ΂܂B + ***********************************************/ +void tsk_led_cam( ) +{ + DI_wt_chk(); // WX^ւ݂̏ŋN邱Ƃ邽 + if( !cam_led_update ) + { + if( task_interval != 0 ) + { + task_interval --; + EI(); + return; + } + } + + cam_led_update = false; // TWL ̃uNݒiꔭ_ĵ + EI(); + + if( system_status.pwr_state == SLEEP ) // sleepA + { + LED_CAM = 0; + state_led_cam = 0; + } + else + { + // uN̂悤ɑ҂ƂȊO͖TN + // (WX^̕ύXɂɔ) + switch ( vreg_ctr[VREG_C_LED_CAM] ) + { + case ( CAM_LED_OFF ): + default: + LED_CAM = 0; + state_led_cam = 0; + break; + + case ( CAM_LED_ON ): + LED_CAM = 1; + state_led_cam = 0; + break; + + case ( CAM_LED_BLINK ): + if( state_led_cam == 0 ) + { + LED_CAM = 1; + state_led_cam = 1; + } + else + { + LED_CAM = 0; + state_led_cam = 0; + } + task_interval = 250; + break; + + case ( CAM_LED_ON_PLUSE ): + if( state_led_cam == 0 ) + { + LED_CAM = 1; + state_led_cam = 1; + task_interval = 250; + } + else + { + vreg_ctr[VREG_C_LED_CAM] = CAM_LED_OFF; + } + break; + + case ( CAM_LED_OFF_PLUSE ): + if( state_led_cam == 0 ) + { + LED_CAM = 0; + state_led_cam = 1; + task_interval = 250; + } + else + { + vreg_ctr[VREG_C_LED_CAM] = CAM_LED_ON; + } + break; + + case( CAM_LED_BY_TWL ): + cam_led_twl(); + } + } // if( system_status.pwr_state == sleep ) ... else ... +} + + +/********************************************//** + TWLJLED𑀍삳 + ***********************************************/ +static void cam_led_twl() +{ + // TWL݊ // + switch ( vreg_twl[ REG_TWL_INT_ADRS_CAM ] ){ + case( TWL_CAMLED_OFF ): + LED_CAM = 0; + state_led_cam = 0; + break; + + case( TWL_CAMLED_BLINK ): + if( state_led_cam == 0 ) + { + LED_CAM = 1; + state_led_cam = 1; + } + else + { + LED_CAM = 0; + state_led_cam = 0; + } + task_interval = (u8)( 600 / SYS_INTERVAL_TICK ) + 250; + break; + + case( TWL_CAMLED_ON ): + case( TWL_CAMLED_DEF_ON ): + default: + LED_CAM = 1; + state_led_cam = 1; + break; + } +} diff --git a/snake_branches/3.40_jane/led_pow.c b/snake_branches/3.40_jane/led_pow.c new file mode 100644 index 0000000..6773d4e --- /dev/null +++ b/snake_branches/3.40_jane/led_pow.c @@ -0,0 +1,296 @@ +/* ======================================================== + dLED + LED_POW_B,R 6,7 + + TDR00@(0x03FFBTPS0250kHzŃJEgAbvB10bitȂ250HzʂɂȂ) + TDR0x@Duty 0ŏATDR00( =0x03FFȏ)œ_łB + + $Id: asdf$ + ======================================================== */ + +/* ======================================================== + enum pwr_state_{ + OFF_TRIG = 0, + ON_CHECK, + ON_TRIG, + ON, + SLEEP +}; + +enum LED_ILUM_MODE{ + LED_POW_ILM_AUTO, + LED_POW_ILM_ON, + LED_POW_ILM_SLEEP, + LED_POW_ILM_CEOFF +}; + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr + +#endif + +#include "incs.h" +#include "led.h" +#include "pm.h" + +// ======================================================== +// X[vł̃e[uB}WB +const u8 LED_PTN_SLEEP[] = { + 25, 38, 52, 68, 83, 98, 110, 119, + 125, 128, 128, 125, 119, 110, 98, 83, + 68, 52, 38, 25, 16, 10, 8, 8, + 8, 8, 8, 8, 8, 8, 10, 16 + }; + + +// LED̓drcLED̓_Ńp^[ +st_led_red_batt_empty led_red_batt_empty = { 0x55, 0x55, 0x55, 0x55 }; +#define LED_SLEEP_FRAME_LEN 71 +#define LED_SLEEP_DIM_LEN 71 +#define LED_SLEEP_FRAME_NUM 32 + + + +// ======================================================== +static void led_pow_normal( ); +static void led_pow_sleep( ); +static void led_pow_bt_empty(); +static u8 led_pow_batt_low(); + +#define led_fade_to( now, goal ) now = fade_to( now, goal ) +extern u8 fade_to( u8 now, u8 goal ); + +#define led_fade_to2( led, status ) led = fade_to2( status ) +extern u8 fade_to2( st_LED_dim_status* status ); + + + +// ======================================================== +// dLED̃X[vp^[̃Xe[^X +static u8 time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; +static u8 frame_sleep; +static st_LED_dim_status LED_dim_status_sleep; + +extern bit ledInitialized; +extern bit BT_IN_CHG_delayed_n; + + + +/********************************************//** + dLED + + {Iɂ́A + + 쎞A + - drc > 10% “_imaster_brightness̖邳j + - 5% ԓ_ (100%_AHWŒs) + - ȉ ԓ_Am点LEDԂBAA_v^h5%`̓ + + X[v + - drc > 10% “_imaster_brightness̖邳j + - 쎞Ɠ + + X[vɂ͎Ő؂ւȂ̂ŁAWX^삪Kvłi̕s悢ł傤Hj + + ̃p^[͐Ŷ߁B + ***********************************************/ +void tsk_led_pow( ) +{ + if( ! ledInitialized ) + { + return; + // ܂ + } + + info_led_override = false; + + switch ( vreg_ctr[VREG_C_LED_POW] ) + { + case ( LED_POW_ILM_AUTO ): + default: + led_pow_normal( ); + break; + + case ( LED_POW_ILM_SLEEP ): + led_pow_sleep( ); + break; + + case ( LED_POW_ILM_ON ): + led_fade_to( LED_duty_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] ); + LED_pow_red = 0; + break; + + case ( LED_POW_ILM_OFF ): + led_fade_to( LED_duty_pow_blu, 0 ); + LED_pow_red = 0; + break; + + case ( LED_POW_ILM_ONLY_RED ): + LED_duty_pow_blu = 0; + LED_pow_red = 1; + break; + + case ( LED_POW_ILM_ONLY_BLUE ): + LED_duty_pow_blu = LED_BRIGHT_MAX; + LED_pow_red = 0; + break; + + case ( LED_POW_ILM_FORCE_BT_EMPTY ): + led_pow_bt_empty(); + break; + } + + if( system_status.pwr_state == OFF || system_status.pwr_state == ON_CHECK ) + { + LED_pow_red = 0; + info_led_override = false; + } + + if( info_led_override ) + { + LED_duty_notify_blu = 0; + LED_duty_notify_grn = 0; + LED_duty_notify_red = ( LED_pow_red == 0 )? 0 : 255; + } +} + + + +/********************************************//** + ʏ퓮쎞 + + drcʂŁA@ԁԓ_ + ***********************************************/ +static void led_pow_normal( ) +{ + time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; + frame_sleep = 0; + LED_dim_status_sleep.now = (sx16)LED_duty_pow_blu * 128; + + if( led_pow_batt_low() != 0 ) // Ԃ̓_łĂ܂ + { + return; + // ܂ + } + + // “_ + led_fade_to( LED_duty_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] ); +} + + + +/********************************************//** + X[vz^p^[ + + drcʂŐԁԓ_łɂ + ***********************************************/ +static void led_pow_sleep( ) +{ + if( led_pow_batt_low() != 0 ) // Ԃ̓_łĂ܂ + { + time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; + frame_sleep = 0; + LED_dim_status_sleep.now = (sx16)LED_duty_pow_blu * 128; + return; + // ܂ + } + + LED_dim_status_sleep.to = LED_PTN_SLEEP[frame_sleep] * 128; + + // Of[Ṽf^vZ + LED_dim_status_sleep.delta = (( LED_dim_status_sleep.to - LED_dim_status_sleep.now ) ) / LED_SLEEP_DIM_LEN; + led_fade_to2( LED_duty_pow_blu, &LED_dim_status_sleep ); + + // ̃t[ɐi߂H + time_to_next_frame_sleep --; + if( time_to_next_frame_sleep == 0 ) + { + time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; + + frame_sleep ++; + if( frame_sleep >= LED_SLEEP_FRAME_NUM -1 ) + { + frame_sleep = 0; + } + } +} + + + +/********************************************//** + drȂƂ̋ + +@ԒlF@0@drȂȂ +@@@@@1@Ȃ̂ŋʃp^[ɂ + ***********************************************/ +static u8 led_pow_batt_low() +{ + if( vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_LO ) + { + LED_pow_red = 0; + return 0; + // ܂ + } + + if(( vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_EMPTY ) || !BT_IN_CHG_delayed_n ) + // drcʂ5%i`10%j@܂́Aꖢł[d + { + // ԓ_ + led_fade_to( LED_duty_pow_blu, 0 ); + { + LED_pow_red = 1; + } + + } + else // dr5%@@A_v^Ȃ + { + led_pow_bt_empty(); + } + return 1; +} + + + + +/********************************************//** +@drȂp^[ + +@@wp^[𗬂 + +@@m点㏑ + ***********************************************/ +static void led_pow_bt_empty() +{ + static u8 delay; + static u8 red_blink_poi; + + info_led_override = true; + + // ԓ_ + led_fade_to( LED_duty_pow_blu, 0 ); + + // Ԃ̓_Ńp^[wł + delay ++; + if( delay < 64 ) // t[̕ێԉ҂ + { + return; + } + delay = 0; + + if( led_red_batt_empty.dats[ red_blink_poi / 8 ] & ( 1 << ( red_blink_poi % 8 )) ) + { + LED_pow_red = 1; + } + else + { + LED_pow_red = 0; + } + red_blink_poi ++; + if( red_blink_poi >= 32 ) + { + red_blink_poi = 0; + } +} + + diff --git a/snake_branches/3.40_jane/loader.c b/snake_branches/3.40_jane/loader.c new file mode 100644 index 0000000..2b0393f --- /dev/null +++ b/snake_branches/3.40_jane/loader.c @@ -0,0 +1,420 @@ +/* ======================================================== + MCU CTR BSR + 2009/03/30 - + JZp c + + u[g[_[ + zXg̒ʐMƁAȏAt@[̃`FbNsB + + $Id: loader.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#pragma opc + +#endif +#include "incs_loader.h" + +#include +#include "fsl_user.h" + +#include "i2c_ctr.h" +#include "i2c_mcu.h" +#include "pm.h" +#include "rtc.h" + +#include "reboot.h" + +#include "wdt.h" +#include "magic.h" + + + +#define REG_BIT_RESF_WDT (1<<4) +#define REG_BIT_RESF_TRAP (1<<7) +#define REG_BIT_RESF_LVI (1<<0) + + + +// ======================================================== +#if (FSL_DATA_BUFFER_SIZE>0) +fsl_u08 fsl_data_buffer[FSL_DATA_BUFFER_SIZE]; +#endif + + + +#ifdef FSL_INT_BACKUP +static fsl_u08 fsl_MK0L_bak_u08; /* if (interrupt backup required) */ +static fsl_u08 fsl_MK0H_bak_u08; /* { */ +static fsl_u08 fsl_MK1L_bak_u08; /* reserve space for backup information */ +static fsl_u08 fsl_MK1H_bak_u08; /* of interrupt mask flags */ +static fsl_u08 fsl_MK2L_bak_u08; /* */ +static fsl_u08 fsl_MK2H_bak_u08; /* } */ +#endif + + + +// ======================================================== +void hdwinit(); // static ɂcrt0猩ȂȂ܂BӁI +static void hdwinit2(); +static void chk_platform_type(); +static void chk_firm_broke(); + + +extern void main_loop(); + + +/********************************************//** + * - t@[Abvf[gAWDT̃ZbgA + * - t@[̔jA + * - {̎ނ̎ʁA + * - |[gA + * - ჌xȃytF̏A + * + * main_loop()ĂԁB + ***********************************************/ +void main( ) +{ + while( 1 ) + { + WDT_Restart( ); + + if( RTCEN ) // TRAP(update)ɂgȂBWDTł͗Ȃ + { + system_status.reboot = true; + } + + { + volatile u8 my_resf = RESF; // ǂނƏ + if( ( my_resf & REG_BIT_RESF_WDT ) != 0 ) + { + vreg_ctr[ VREG_C_MCU_STATUS ] |= REG_BIT_STATUS_WDT_RESET; + // set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET ); + // I2C̏ɍs + system_status.reboot = true; + } + else if( ( my_resf & REG_BIT_RESF_TRAP ) != 0 ) // ( FSL_ForceReset, 'r' ) + { + system_status.reboot = true; + } +/* LVIgp + else if(( my_resf & REG_BIT_RESF_LVI ) != 0 ) + { + vreg_ctr[ VREG_C_MCU_STATUS ] |= ( 1 << 2 ); + } +*/ + } +//* ROMǂɂȂȂA]̏RgAEg + if( !system_status.reboot ) + { + // ʏ̓d + // drڑAƑ҂Ă݂(`^O΍) + u16 pwup_delay0; + for( pwup_delay0 = 0xFFFF; pwup_delay0 != 0; pwup_delay0 -- ){;}; + } +//*/ + hdwinit2( ); + +#ifndef _WIN32 + // t@[̐`FbN // + chk_firm_broke(); // ĂAĂȂ +#endif + + // @픻 + chk_platform_type(); + + // HALfobOZbg + hal_reset(); + hal_update(); + + // RTC + RTC_init( ); // Ńu[g肵ď邩f܂ + + // ʏ^] + main_loop( ); + } +} + + + +/********************************************//** + * }WbNio[`FbNāA삳悤ƂĂt@[jĂȂ`FbN܂B + * + * Ăꍇ̓XgA݁AMCU̓Zbg܂B + ***********************************************/ +static void chk_firm_broke() +{ + u8 i; + u8 comp = 0; + + // [_[Ɩ{͓̂o[WH + /// ւ̃Abvf[g̓rŏIĂȂH + for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 炵 + { + comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; + comp += ( *( u8 * )( MGC_HEAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; + } + + if( *( u8 * )( MGC_FOOT +2 ) != ':' ) // ς̂܂ + { + comp ++; + } + + if( comp != 0 ) + { + // t@[XgA݂ + firm_restore( ); + // AĂȂBZbgB + } +} + + +/********************************************//** +vbgtH[̔sAsystem_statusɃZbg܂B + + fobK‚ȂłƏɔłȂƂ܂B + +CTRt@~ + + DEV_DET(P12.[2:1]) + + +CTR̊J@ + + P40,41 !! fobOLP40LMCUN܂I + + - HH @ + - HL NBDV + - LH X^hAV + - LL ISfobK + + ***********************************************/ +void chk_platform_type() +{ + // CTRt@~ // + system_status.family = (enum family_)( DEV_DET >> 1 ); /// ... + +#ifdef _DBG_FORCE_FLOWER + // Iɋ@ݒăfobOƂ +// system_status.family = FAMILY_FLOWER; +#endif + +#ifdef _MCU_ARR + if( system_status.family == FAMILY_SPFL ) + { + system_status.family = FAMILY_CLOSER; + } +#endif + + if( system_status.family == FAMILY_CTR ) + { + system_status.LCD_is_CGS = true; + } + else + { + // FAMILY_SPFL or FAMILY_SNAKE or FAMILY_FLOWER // At@XYȂ + system_status.LCD_is_CGS = false; + } + + if( system_status.LCD_is_CGS == true ) + { + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_CGS; + } + else + { + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_AMO; + } + set_vdd_voltages( system_status.family ); + + // CTR̊J@ // + // ꉞ + system_status.is_dev = false; + system_status.taikendai = false; + system_status.taikendai_nbd = false; + + switch( DIPSW ) + { + case DIPSW_TAIKENDAI: + system_status.taikendai = true; + break; + + case DIPSW_TAIKENDAI_NBD: + system_status.taikendai_nbd = true; + break; + + case DIPSW_ISDEV: + system_status.is_dev = true; + break; + } +#ifdef _FORCE_TAIKENDAI_ + system_status.taikendai = true; +#endif + +#ifdef _FORCE_TAIKENDAI_NBD_ + system_status.taikendai_nbd = true; +#endif +} + + + + +/********************************************//** + ŏ̃WX^s܂B + + gݍ݃X^[gAbv[`Ă΂܂B + ***********************************************/ +void hdwinit( void ) +{ // X^[gAbv[`ɌĂт܂ + DI( ); /* }X^荞݋֎~ */ + + CMC = bits8(0,0,0,1, 0,0,0,0); /* X1U(̓|[g)AXT1gpAd͔U͕sɕtʏ */ + CSC = bits8(1,0,0,0, 0,0,0,0); /* X1UȂAXT1UAU */ + OSMC = bits8(0,0,0,0, 0,0,0,1); /* BWX^ */ + NOP();NOP();NOP(); // 3clkJ + CKC = bits8(0,0,0,0, 1,0,0,0); /* CPU/ӃNbN=fMAINAfMAIN=fMXAfCLK=fMX */ + + /*--- doH̐ݒ ---*/ + /* Zbg̃ftHǵAIvVEoCgɂĎw肳 */ + LVIS = 0x00; /* VLVI = 4.22}0.1V */ +// LVIM = 0x00; /* LVI֎~ */ + /* dd(VDD)od(VLVI)Ɋ */ + /* dd(VDD)od tempA[0][1], "offset" => tempA[0][2], "type" => tempA[0][3], "data" => tempA[0][4], "CRC" => tempA[0][5] } + + break if src_in["type"].hex == 01 + break if src_in["len"].hex == 00 + # next if src_in["type"].hex != 00 + if( src_in["type"].hex != 00 ) +# p dat + next + end + + offset = src_in["offset"].hex + next if(( 0x1000 <= offset ) && ( offset < 0x2000 )) + + dataTemp = src_in["data"].scan(/\w\w/) + + ( 0...(src_in["len"].to_s.hex) ).each{|i| + bindata[ offset + i ] = ( dataTemp[ i ] ).to_s.hex + } +end + +### debug enable bit check ############# +# fobO‚ɂȂĂISfobKŋNȂiMCU삵Ȃj +p bindata[0xC3] +if( bindata[0xC3] != 0x04 ) + print( "!E debug enable!!" ) + exit( 1 ) +end + + +### format data and output ############# +4096.times{ + bindata.delete_at(4096) +} +dest.write( bindata[0..(0x4FFF - 0x1000)].pack("c*") ) +dest.close + +printf( "intel-HEX to bsr bin converter\n file converted!\n\n" ) diff --git a/snake_branches/3.40_jane/pedo_alg_thre_det2.c b/snake_branches/3.40_jane/pedo_alg_thre_det2.c new file mode 100644 index 0000000..4e69a04 --- /dev/null +++ b/snake_branches/3.40_jane/pedo_alg_thre_det2.c @@ -0,0 +1,567 @@ +/* ******************************************************** + v + + 3x̃A^Cf[^AxNg̃moA + 臒l𒴂鎞ԁAԊuAm̑傫臒l؂ւȂ + + $Id$ +********************************************************* */ +#ifndef _WIN32 + +#pragma mul +#pragma div +#pragma bcd + +#endif + +#include "incs.h" + +#ifndef _WIN32 +#include +#endif + +#include "accero.h" +#include "pedometer.h" + +#include "pool.h" + +// ======================================================== +// ̍ŏIL^ +// ̏Ԃ̓OǂݏȍԂł̂łȂł +// ԂɃAhX̎Ⴂ̂mۂ̂҂Ă܂... +typedef struct{ + u8 hour_bcd; + u8 day_bcd; + u8 month_bcd; + u8 year_bcd; + u8 min_bcd; + u8 sec_bcd; +}st_calender; + + + +// ======================================================== +static u16 get_long_hour(); +static u16 calc_hours_spend( u8 ); + + + +// ======================================================== +bit pedolog_overflow; // 192ԋL^ς݃tO(i2cœǂ߂) +extern uni_pool pool; // O͂̍\̂̒ +static u8 p_record; // Ȍ݈ʒu +static st_calender cal_log_latest; // ŌɕXV +static u16 last_hour_fny; // fny:from new year +static st_calender cal_temp; +static u16 now_longhour; + + + + + + +// ======================================================== +#define _use_my_sqrt_ +#ifdef _use_my_sqrt_ +static unsigned long my_sqrt( unsigned long ); +#endif + +// N͉[NH +#define is_leapyear( y ) (( y & 0x03 ) == 0 ) +// uNv͉[NH +#define is_firstyear( y ) (( y & 0x03 ) == 1 ) + + +// xZTlFIR-LPFɒʂB̌W +extern const s8 lpf_coeff[]; +#define TAP 64 +#define FIL_COEFF_QUANT 10 + + +/********************************************//** +@v + ***********************************************/ +void pedometer() +{ + static s16 th_H = 15000; // 臒lBIύX܂ + static s16 th_L = 11000; + static u16 acc_norm[3]; // x̑傫̃qXgB傫 + static u16 acc_norm_temp; + static u8 interval_hh = 0xFF; // R-RԂ̎ԁBZ߂͂B + static u8 time_l; // Őɏ̌oߎ + static u16 peak_l; // J̐[ + static u16 norm_hist[TAP]; + + static u8 hist_indx; + + signed long filterd; + + u8 i; + + u16 sx16,sy16,sz16; + + DI_wt_chk(); + sx16 = abs( (u16)vreg_ctr[VREG_C_ACC_XH] * 256 + vreg_ctr[VREG_C_ACC_XL] ); + sy16 = abs( (u16)vreg_ctr[VREG_C_ACC_YH] * 256 + vreg_ctr[VREG_C_ACC_YL] ); + sz16 = abs( (u16)vreg_ctr[VREG_C_ACC_ZH] * 256 + vreg_ctr[VREG_C_ACC_ZL] ); + EI(); + + // xNg̃m +#ifdef _mcu_ +# ifndef _use_my_sqrt_ + norm_hist[ hist_indx & TAP-1 ] = sqrt( (long)sx16 * ( sx16 / 2 ) + + (long)sy16 * ( sy16 / 2 ) + + (long)sz16 * ( sz16 / 2 ) + ); +# else + norm_hist[ hist_indx & TAP-1 ] = my_sqrt( (long)sx16 * ( sx16 / 2 ) + + (long)sy16 * ( sy16 / 2 ) + + (long)sz16 * ( sz16 / 2 ) + ); +# endif +#endif + +#ifdef _pc_ + norm_hist[ hist_indx & TAP-1 ] = normh * 256 + norml; +#endif + + hist_indx ++; + + // qXgɃtB^(fir)|āA̒l߂ // + filterd = 0; +// for( i = 8; i != 55; i++ ) // WO΂̂ + for( i = 0; i != 46; i++ ) // We[u܂Bp[^ + { + filterd += (signed long)norm_hist[ ( hist_indx + i ) & TAP-1 ] * lpf_coeff[ i ]; + } + + filterd += (4096)*512; // DCZ...Ǝv + acc_norm_temp = (s16)( filterd /1024 & 0xFFFF ); // FIL_COEFF_QUANT琳K +/* + if( acc_norm[0] < acc_norm_temp ) + { + t_rise ++; + if( t_rise == 0 ) + t_rise == 254; + } + else + { + t_rise = 0; + } +*/ + if( acc_norm[0] != acc_norm_temp ) + { + acc_norm[2] = acc_norm[1]; // qXg + acc_norm[1] = acc_norm[0]; + acc_norm[0] = acc_norm_temp; + } + + if( acc_norm[2] <= acc_norm[1] && acc_norm[1] > acc_norm[0] + && acc_norm[0] > th_H ) + // ɑŁA臒l𒴂Ă + { + if( 21 < interval_hh ) + // Őɑ傩̊Ԋuقǂ悢 + { + if(( interval_hh < 160 ) && ( time_l < interval_hh )) + // Jł + { + if( acc_norm[0] - peak_l > 4200 ){ + // ܂ + hosu_increment_if_necessary(); + } + } + interval_hh = 0; + } + // Ȃ񂿂臒l̓IύX + if( acc_norm[0] > 18000 ) + { + th_L = acc_norm[0] - 10000; + } + else + { + th_L = 11000; + } + } + else + { + if( interval_hh != 255 ) // OaZĊyɏ炢̂ + { + interval_hh ++; + } + } + + // (2) ߂̋ɏ̎ + if( acc_norm[2] >= acc_norm[1] && acc_norm[1] < acc_norm[0] + && acc_norm[0] < th_L ) + { + // ɏo + time_l = 0; + peak_l = acc_norm[0]; + } + else + { + if( time_l != 255 ) + { + time_l ++; + } + } +} + + +/********************************************//** +@{P + + - ݐςCNg + - XV + + *2011/01/20 + + dlύX@OςɂȂ炻Ŏ~߂ + ***********************************************/ +#define HOSU_NODATA 0xFFFF +#define HOSU_MAX 0xFFFE + +void hosu_increment_if_necessary() +{ + u8 year_compd; // hourE␳ς݌ݔNBcomp(ensation -ed) + + // ݎ擾 + DI_wt_chk(); + RWAIT = 1; + while( !RWST ){;} + + cal_temp.hour_bcd = HOUR; + cal_temp.day_bcd = DAY; + cal_temp.month_bcd = MONTH; + cal_temp.year_bcd = YEAR; + cal_temp.min_bcd = MIN; + cal_temp.sec_bcd = SEC; + + RWAIT = 0; + EI(); + + year_compd = bcdtob( cal_temp.year_bcd ); + + now_longhour = get_long_hour(); + + // ݃|C^̍XV + if( ! ( vreg_ctr[ VREG_C_ACC_HOSU_L ] == 0 && // vonAŏ̈܂ł͑O񂩂̌oߎԂvZȂ + vreg_ctr[ VREG_C_ACC_HOSU_M ] == 0 && + vreg_ctr[ VREG_C_ACC_HOSU_H ] == 0 )) //. SrbgORŃ[肷̂̓fW^H݂̕ + { + // v~܂ĂԂlĕKvȂi߂ + // ␳vZ@U뎞ōɂȂꍇAA23ɏ㏑ + if( now_longhour == (u16)-1 ) // NA23䈵̂ƂAvZʂ -1 ɂȂĂ + { + now_longhour = 365 * 24 -1; + if( is_firstyear(year_compd) ) + { + now_longhour += 24; + } + year_compd --; + } + fill_hosu_hist_hours( calc_hours_spend( year_compd ) ); // ݃|C^̍XVs + + // OӂŋL^~H + if( pedolog_overflow ) + { + return; + // ܂BO̍XVȂB + } + } + + // CNgėǂ + cal_log_latest = cal_temp; // OXV + last_hour_fny = now_longhour; + + // O@CNg + if( pool.vreg_c_ext.pedo_log[ p_record ] == HOSU_MAX ) + { + // Ȃł܂ + //. v̍vƗ݌vȂȂ̂邽߂낤ǁAǂȂ́H + return; + } + else if( pool.vreg_c_ext.pedo_log[ p_record ] == HOSU_NODATA ) // ̎ԑэŏ̃JEg̎ + { // ꂵȂ1Ȃ + pool.vreg_c_ext.pedo_log[ p_record ] = 1; + } + else + { + // ʏpX + pool.vreg_c_ext.pedo_log[ p_record ] ++; + } + + // ݐς̍XV // + DI_wt_chk(); + if( ++vreg_ctr[ VREG_C_ACC_HOSU_L ] == 0 ) // JXg`FbN + { + if( ++vreg_ctr[ VREG_C_ACC_HOSU_M ] == 0 ) + { + if( ++vreg_ctr[ VREG_C_ACC_HOSU_H ] == 0 ){ + vreg_ctr[ VREG_C_ACC_HOSU_L ] = 255; //. 낢뎸s... + vreg_ctr[ VREG_C_ACC_HOSU_M ] = 255; + vreg_ctr[ VREG_C_ACC_HOSU_H ] = 255; + } + } + } + EI(); +} + + +/********************************************//** +󔒂̎ԂK؂0ɂāA +܂ނPԂ̃f[^ʒuɃ|C^Hi߂ + ***********************************************/ +static void fill_hosu_hist_hours( u16 hours ) +{ + // OӂH + if( (u16)p_record + hours >= PEDOMETER_LOG_SIZE ) + { + pedolog_overflow = true; + return; + } + + // 󔒂̐Ԃ̐ݒ + while( hours != 0 ) + { + // Vdl@ςŒ~ + p_record ++; +#if 1 // debug + if( p_record >= PEDOMETER_LOG_SIZE ) + { + pedolog_overflow = true; +// dbg_nop(); // ɗ悤ƃoO + break; + } + else +#endif + { + pool.vreg_c_ext.pedo_log[ p_record ] = 0; + } + hours --; + } + + return; +} + + + +/********************************************//** +NAAuf[^vɏ + ***********************************************/ +void clear_hosu_hist() +{ + u8 hours = PEDOMETER_LOG_SIZE; + do + { + hours --; + pool.vreg_c_ext.pedo_log[ hours ] = 0xFFFF; + } + while( hours != 0 ); + + DI_wt_chk(); + vreg_ctr[ VREG_C_ACC_HOSU_L ] = 0; + vreg_ctr[ VREG_C_ACC_HOSU_M ] = 0; + vreg_ctr[ VREG_C_ACC_HOSU_H ] = 0; + p_record = 0; + pedolog_overflow = false; + EI(); +} + + +extern u8 iic_burst_state; +bit pedolog_read_msb; +/********************************************//** + ṽqXgԂB + + PĂԓxɁAqXg̉ʁAʁAꎞԑkĉʏ... + ***********************************************/ +u8 hosu_read( ) +{ + u8 rv; + static u8 p_record_buffer; + static st_calender cal_buff; // ꉞAAg~bN + + if( iic_burst_state == 0 ) + { + p_record_buffer = p_record; + DI_wt_chk(); + cal_buff = cal_log_latest; + EI(); + } + + if( iic_burst_state <= 5 ) + { + rv = *( (u8*)&cal_buff + iic_burst_state ); // + iic_burst_state ++; + return( rv ); + } + else + { + u16 temp; + // 16rbgŋL^Ă̂ł΂炵đ /// Ɗy@񂶂 + temp = pool.vreg_c_ext.pedo_log[ p_record_buffer ]; + if( !pedolog_read_msb ) + { + rv = (u8)( temp & 0x00FF ); + } + else + { + rv = (u8)(( temp >> 8 ) & 0x00FF ); + if( p_record_buffer == 0 ) + { + p_record_buffer = PEDOMETER_LOG_SIZE-1; + } + else + { + p_record_buffer --; + } + } + pedolog_read_msb ^= 1; + return( rv ); + } + +} + + + +/********************************************//** + ŇǓoߎ(hour)ԂB + + + + Ԓl u16 long_hour + ***********************************************/ +const u16 DAYS_FROM_HNY[] = { + 0, + 31, + 31+28, // =59B@cRO͂PTX + 31+28+31, + 31+28+31+30, + 31+28+31+30+31, + 31+28+31+30+31+30, + 31+28+31+30+31+30+31, + 31+28+31+30+31+30+31+31, + 31+28+31+30+31+30+31+31+30, + 31+28+31+30+31+30+31+31+30+31, + 31+28+31+30+31+30+31+31+30+31+30 + }; + +static u16 get_long_hour() +{ + u8 year = bcdtob( cal_temp.year_bcd ); + u8 month = bcdtob( cal_temp.month_bcd ); + u8 day = bcdtob( cal_temp.day_bcd ); + u8 hour = bcdtob( cal_temp.hour_bcd ); + u8 min_bcd = cal_temp.min_bcd; // 召rȂ̂bcd̂܂܂ł悢 + u8 sec_bcd = cal_temp.sec_bcd; + u16 long_hour; + + // ܂̕ + long_hour = DAYS_FROM_HNY[ month -1 ]; // -1̓CfbNX킹 + if( is_leapyear(year) && ( 3 <= month )) + { + // [NŁA[ + long_hour ++; + } + long_hour += day - 1; + long_hour *= 24; // + + long_hour += hour; + + // EȆOHH + if( ( min_bcd > vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] ) + || ( ( min_bcd >= vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] ) + && ( sec_bcd >= vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC ] )) + ) + { + return( long_hour ); + } + else + { + return( long_hour -1 ); // 1ԑOɊ܂߂ ӁFUōNɂƂB-1 ɂȂ + } +} + + + +/********************************************//** +@yʕB + +@Kv\Ȑxőł؂ + + pcŃV~[Vđv + ***********************************************/ +static unsigned long my_sqrt(unsigned long x) +{ + unsigned long s, t; + + if (x <= 0) return 0; + + s = 1; + t = x; + while (s < t) + { + s <<= 1; + t >>= 1; + } + do + { + t = s; + s = (x / s + s) >> 1; + } while (s < t); + + return t; +} + + + + +/********************************************//** +@‚ OĂ΂ꂽƁAݎ̍߂BԂ̂fill_hosu_hist_hours ɂ̂܂ܓn + //. year_bcd Ȃ̂Ƃ₾... + ***********************************************/ +static u16 calc_hours_spend( u8 year ) +{ + u8 cal_log_latest_year = bcdtob( cal_log_latest.year_bcd ); + + // N̓ + if( cal_log_latest_year == year ) + { + if( now_longhour > last_hour_fny ) + { + return( now_longhour - last_hour_fny ); + } + else if( now_longhour == 0 && last_hour_fny != 0 ) + { + // N΂ŁAEzځBȂƍNŌɉZĂ܂B + return( 1 ); + } + else + { + return( 0 ); // ԑ(ƁA߂B@ǂȂĂmȂ) + } + } + else if( cal_log_latest_year == ( year -1 ) ) + { + // N܂łƂ + u16 temp = 365 * 24 - last_hour_fny + now_longhour; + if( is_firstyear(year) ) + { + temp += 24; + } + return( temp ); + } + else if( cal_log_latest_year < year ) + { + // Nu + return( PEDOMETER_LOG_SIZE +1 ); + } + else + { + // J_[߂Ȃ + // m[PAł悢cAslƂ킯ɂȂ + return( 0 ); + } +} diff --git a/snake_branches/3.40_jane/pedo_lpf_coeff.c b/snake_branches/3.40_jane/pedo_lpf_coeff.c new file mode 100644 index 0000000..877ef98 --- /dev/null +++ b/snake_branches/3.40_jane/pedo_lpf_coeff.c @@ -0,0 +1,87 @@ +/********************************************//** + vŎgpALPF̃tB^W + $Id$ + ***********************************************/ + +#include "incs.h" + +// ========================================================= +#define TAP 64 +#define FIL_COEFF_QUANT 10 +const s8 lpf_coeff[]={ +/* +Window Function Algorithm LPF +Sampling Frequency = 100.0 +cutoff1 = 6.0000000 +Tap Count =64 +Kaiser Constant = 7.000000 +Quantized by 11 [bits] + */ +/* 0,// [0] + 0, + 0, + 0, + 0, + 0, + 0, + 0, +*/ + 1,// 8 + 2, + 2, + 3, + 3, + 2, + 0, + -2, + -5,// 16 + -9, + -13, + -16, + -16, + -13, + -6, + 4, + 18,// 24 + 37, + 56, + 77, + 95, + 110, + 119, + 122, + 119,// 32 + 110, + 95, + 77, + 56, + 37, + 18, + 4, + -6,// 40 + -13, + -16, + -16, + -13, + -9, + -5, + -2, + 0,// 48 + 2, + 3, + 3, + 2, + 2, + 1, +/* + 0, + 0,// 56 + 0, + 0, + 0, + 0, + 0, + 0, + 0 +*/ +}; diff --git a/snake_branches/3.40_jane/pedo_lpf_coeff.h b/snake_branches/3.40_jane/pedo_lpf_coeff.h new file mode 100644 index 0000000..f81d6c2 --- /dev/null +++ b/snake_branches/3.40_jane/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/3.40_jane/pedometer.h b/snake_branches/3.40_jane/pedometer.h new file mode 100644 index 0000000..8760308 --- /dev/null +++ b/snake_branches/3.40_jane/pedometer.h @@ -0,0 +1,36 @@ +#ifndef _pedo_ +#define _pedo_ + +#ifdef WIN32 +typedef unsigned char bit; +typedef unsigned char u8; +typedef unsigned short u16; + + +#endif + + +// ========================================================= +extern bit pedolog_read_msb; + + + +// ========================================================= +//void hosu_read_end( ); }N +#define hosu_read_end() pedolog_read_msb = 0 + +u8 hosu_read( ); +void hosu_increment_if_necessary(); +void fill_hosu_hist_hours( u16 ); +void clear_hosu_hist(); +void pedometer(); + + + +// ========================================================= +#define PEDOMETER_LOG_SIZE ( 24 * 7 ) + + + +// ========================================================= +#endif diff --git a/snake_branches/3.40_jane/pm.c b/snake_branches/3.40_jane/pm.c new file mode 100644 index 0000000..247ba90 --- /dev/null +++ b/snake_branches/3.40_jane/pm.c @@ -0,0 +1,1539 @@ +/* ======================================================== + PMIC + cJZ + nintendo + '08 Dec + + $Id: pm.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma nop + +#endif + +#include "incs.h" +#include "adc.h" +#include "led.h" +#include "pm.h" +#include "renge\renge.h" + +#include "batt_params.h" + +#include +#include "fsl_user.h" + +#include "vreg_twl.h" +#include "i2c_mcu.h" + +// ======================================================== +u8 raw_adc_temperature; +BT_VENDER battery_manufacturer = BT_VENDER_NOT_CHECKED; +static u8 ntr_pm_reg_shadow; // NTR PMIC WX^~[ +bit bt_authorized; // obep[^MρB[dJn +u8 chg_led_override; // A_v^ƂA[d邵ȂɊւ炸΂炭_ + +static u16 bt_volt16; + +static bit ntr_pm_bt_low_old; + +bit BT_IN_CHG_delayed_n; +bit temp_zone_charge_disable; // xŏ[d~鎞ɃqXeVXt邽 + +u8 pmic_version; +u8 mgic_version[2]; + +u8 pm_reg_bit_vddlcd; + +static bt_param_* p_bt_param; +extern const bt_param_ bt_param[]; + +bit pm_extdc_old; // OA_v^`FbNƂhĂH + +u8 pmreg_v_core; // SoC̃RAdݒBSNAKE(LAGER)ŕύX邽߁B + +#define K_RCOMP_SEG 0x0080 + +// [d~x֌W +static u8 raw_temp_lh; +static u8 raw_temp_ll; +#define RAW_TEMP_HL 184 // 1 +#define RAW_TEMP_HH 189 // -1 +#define RAW_TEMP_LH_CTR 75 // 50 [degC] +#define RAW_TEMP_LL_CTR 61 // 59 +#define RAW_TEMP_LH_SNAKE 84 // 45 +#define RAW_TEMP_LL_SNAKE 68 // 54 + + +// ======================================================== +static void BT_model_detect(); +static void BT_mgic_quick_start(); +static void BT_mgic_init(); +static void bt_chk_temparature(); +static void bt_get_charge_status(); +static void bt_param_select(); +static void bt_batt_update_twl(); +static void bt_batt_update_ntr(); +static void update_chg_led(); + + +// bp[ +static err send_cmd_mgic_2B( u8 reg, u16 dat ); +static err read_mgic_2B( u8 reg, u8* dat ); +static err read_BT_SOC( u8* dest ); +static err read_BT_voltage( u8* dest ); +static u8 conv_ctr_bt_to_twl_bt(); + + + +// ======================================================== +#define swap_endian_16( x ) (unsigned int)(( x << 8 ) | ( x >> 8 )) + + + +// ======================================================== +const u8 BT_MANUF_BORDER[] = { + 5, 33, 79, 123, 158, 197, 233 + }; + + + +/********************************************//** + dr̊Ǘ + + ȉ̃s͎ɂőEĎ܂B + - PM_BT_AUTH AGPI in + - PM_CHARGE_n CCIC /CHG in + - PM_EXTDC_n /DOK INTP4 in + - PM_CHARGE_EN_n /CEN out + + ȉ͊̕֌W肻łʂ̂ƂŊĎĂ܂B + - LED Charge tsk_LED + - BT_TEMP,_P tsk_ADC + + PM_EXTDC͊荞݃Cɂ邩 + ***********************************************/ +#define INTERVAL_TSK_BATT 60 +// 100Ə[dG[ɂ܂_łȂ̂ + +/********************************************//** + d̊Ď + - A_v^̊Ď + - [dALEDXV + - cʎ擾ALEDXV + ***********************************************/ +void tsk_batt( ) +{ + static u8 task_interval; + + if( task_interval -- != 0 ) + { + return; + } + else + { + task_interval = (u8)( INTERVAL_TSK_BATT / SYS_INTERVAL_TICK ); + } + + // A_v^Xe[^XXV // + pm_chk_adapter(); + + // [d // + bt_chk_temparature(); // x`FbN + if( !temp_zone_charge_disable && bt_authorized && !PM_EXTDC_n ) + { + BT_CHG_ENABLE(); // x͈OKŏ[dĊJ + } + else + { + BT_CHG_DISABLE(); // x댯I@[d~ + } + + bt_get_charge_status(); // [d󋵃`FbN + update_chg_led(); // chg ledXV + + // drc // + BT_get_left(); +} + + +/********************************************//** + [dLEDXV + + - CCIC[dƂΓ_B + - łȂĂAA_v^h΂Ȃ5b_ + - Aw^drΉʼnR[d̎Aq[Y؂iMGICNAKjȂ + ***********************************************/ +static void update_chg_led() +{ + static bit temp_led_chg; // static ‚ȂƃRpCʂ炸 + + temp_led_chg = false; + + // A_v^‚ȂuԁA[dłb킴Ɠ_BdĂ邱Ƃ킩点邽߁B + if( chg_led_override != 0 ) + { + chg_led_override --; + temp_led_chg = true; + } + + // CCIC ͏[dƌĂ邩H + if( ! BT_IN_CHG_delayed_n // bt_get_charge_status()ōXV܂B + && ! PM_EXTDC_n ) + { + temp_led_chg = true; + } + + LED_CHARGE = temp_led_chg; + + // WX^̏[drbgLEDɓ + set_bit_if( LED_CHARGE, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE ); // set_bit_if̂݁B + /// 荞݂task_status()ōs +} + + + +/********************************************//** + x`FbN + xtqXeVXL + ***********************************************/ +#define AVG_COUNT 40 +void bt_chk_temparature() +{ + static u8 heikinka_h,heikinka_l; + + if(( raw_temp_lh <= raw_adc_temperature ) + && ( raw_adc_temperature <= RAW_TEMP_HL )) + { + if( heikinka_h < AVG_COUNT ) + { + heikinka_h++; + } + else + { + temp_zone_charge_disable = false; // [d + } + } + else if(( raw_adc_temperature <= raw_temp_ll ) + || ( RAW_TEMP_HH <= raw_adc_temperature )) + { + if( heikinka_l < AVG_COUNT ) + { + heikinka_l++; + } + else + { + temp_zone_charge_disable = true; // [d֎~ + } + } + else + { + // temp_zone_charge_disable ̂܂ + heikinka_h = 0; + heikinka_l = 0; + } +} + + + +/********************************************//** + [d̃`FbN + + [dIC̃oO΍sB + ***********************************************/ +#define TIME_DENOIZE (u8)( 1000 / INTERVAL_TSK_BATT ) +void bt_get_charge_status() +{ + // CCIC̕s̂߁A/CHG̃lQ[gƒJɒx + static u8 anti_chatter; + + if( !BT_IN_CHG_n ) + { + // Ƀ`^O + if( anti_chatter < 2 ) // drŃA_v^āAdɂ킳 + { // Ə[dLED̂ + anti_chatter++; + } + else + + { + BT_IN_CHG_delayed_n = 0; // [d + } + } + else + { + if( !BT_CHG_Ena_n + && ( vreg_ctr[ VREG_C_BT_REMAIN ] < 60 ) + && !( is_mgic_error ) + ) + { + BT_IN_CHG_delayed_n = 0; // [dƈB[dIĂ͂Ȃ + } + else + { + BT_IN_CHG_delayed_n = 1; + anti_chatter = 0; + } + } +} + + + +/********************************************//** + A_v^̗L`FbN + ***********************************************/ +void pm_chk_adapter() +{ + set_bit_if( !PM_EXTDC_n, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY ); + + if( pm_extdc_old != PM_EXTDC_n ) // HAL ʂ߁A PM_EXTDC_n volatile ɂSzȂ + { + pm_extdc_old = PM_EXTDC_n; + if( !PM_EXTDC_n ) + { + // h + set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_CONNECT ); + chg_led_override = (u8)( 2500 / INTERVAL_TSK_BATT ); // bt_chckwait_ms(5)̂ŐL΂B + } + else + { + u8 temp_v[2]; + + // + set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_DISC ); + chg_led_override = 0; + + // drcʂ1%ŁAA_v^L̎ɂ͖{̂NAQ[ + // 1%ɉ񕜂OɃA_v^ƂA荞݂ȂƊҒʂ + // łȂBʑΉ̂߂őΉ + if( read_mgic_2B( BT_GAUGE_REG_VCELL, temp_v ) == ERR_SUCCESS ) + { + bt_volt16 = ( temp_v[0] * 256 + temp_v[1] ); + } + + if(( bt_volt16 < V_TH_ZERO ) || ( vreg_ctr[ VREG_C_BT_REMAIN ] == 0 )) + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN ); + } + } + } +} + + + +/******************************************************** +dr֌W̏ + +@@@Q[W@@b@L@@@@@b@ +@@[[[[[[[[[[[[[[[[[[[[[[[ +@@@dr@Lb@@@@@@@b@H +@@[[[[[[[[[[[[[[[[[[[[[[[ +@@@@@@b@@@@@@b@sr +@@@@@@@@b@@dr@b +@@[[[[[[[[[[[[[[[[[[[[[[[ + +@@Q[WLAdr@̔^@ʂ́A +@drxŔ肷 + + ԒlF@dr 0xFF + drςĂȂ 0 + drς 1 + +***********************************************************/ +bit bt_force_update; + + + +/********************************************//** + obẽ`FbNAƁA{̎ʎʁisp̂߁j + ***********************************************/ +void BT_chk() +{ + static BT_VENDER battery_manufacturer_old; + + battery_manufacturer_old = battery_manufacturer; + + BT_model_detect(); + bt_param_select(); // obecʕ␳p[^ȂǃZbg @łAƂ肠̒l(pi)wɂĂB + + if( system_status.model != MODEL_JIKKI ) + { + bt_authorized = false; + return; + // ܂ + } + + if(( battery_manufacturer_old != battery_manufacturer ) || + bt_force_update ) + { + bt_force_update = false; + iic_mcu_start( ); // ŏtOĂ̂ŌĂт܂ėǂ@ȂƂɁcorz + if( (( battery_manufacturer_old == BT_VENDER_OPEN ) || + ( battery_manufacturer_old == BT_VENDER_NOT_CHECKED )) && + !system_status.reboot ) + { + BT_mgic_quick_start(); + } + BT_mgic_init(); // @픻s܂ + } + bt_authorized = true; + renge_task_immed_add( tski_BT_temp_update ); // drxĎ +} + + + +/********************************************//** + {̎ʎ + ***********************************************/ +void BT_model_detect() +{ + u8 temp; + + BT_DET_P = 1; + BT_TEMP_P = 1; + wait_ms( 3 ); // dオ̂ɎԂ| + + raw_adc_temperature = get_adc( ADC_SEL_BATT_TEMP ); + temp = get_adc( ADC_SEL_BATT_DET ); + BT_DET_P = 0; + + system_status.captureBox = false; + // vbgtH[ // + if( raw_adc_temperature > 0xF0 ) + { + // TS // + system_status.model = MODEL_TS_BOARD; + system_status.family = FAMILY_CTR; // Hł̌딻㏑ + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_CGS; +// set_voltages( system_status.family ); svH + } + else if( raw_adc_temperature < 4 ) + { + // (KuC) // + system_status.model = MODEL_KUC_DEBUGGER; + } + else + { + // @AcIC NACK( obe܂͎cIC̏ ) + system_status.model = MODEL_JIKKI; // obe̎́ŏ㏑ + } + + // Lv`H // + if( iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VERSION ) == 0x01 ) + { + if( iic_mcu_result == I2C_ERR_OK ) // oɏȂƕ]nˑ + { + system_status.captureBox = true; + } + } + + // TShome{^A@͖ڑȂ̂ŗv[q /// gndɂƂ΂悩c + if( system_status.model == MODEL_TS_BOARD ) + { + PM_SW_HOME_n_TSBOARD = 1; + } + else + { + PM_SW_HOME_n_TSBOARD = 0; + SW_HOME_n_TSBOARD_RAW = 0; /// @open ǂł񂾂 + } + + // dr[J[̎ // + { + u8 i; + + battery_manufacturer = BT_VENDER_OPEN; // ftHgl + for(i=0; i<=7; i++) + { + if( temp <= BT_MANUF_BORDER[ i ] ) + { + battery_manufacturer = (BT_VENDER)i; + break; + /* + BT_VENDER_MAXELL; // = 0 + BT_VENDER_1; + BT_VENDER_2; + BT_VENDER_3; + BT_VENDER_4; + BT_VENDER_PANA; + BT_VENDER_6; + + BT_VENDER_OPEN; + */ + } + } + } + + + if( ( battery_manufacturer == BT_VENDER_OPEN ) && + ( system_status.model == MODEL_JIKKI ) ) + { + system_status.model = MODEL_JIKKI_NOBATT; + } +} + + + +#define MGIC_CMD_QUICKSTART 0x4000 +/********************************************//** + MGICNCbNX^[giɃoO΍j + ***********************************************/ +static void BT_mgic_quick_start() +{ + wait_ms( 10 ); // MGIC̋NɊ| + + // 0. obecIC NCbNX^[g + send_cmd_mgic_2B( BT_GAUGE_REG_MODE, swap_endian_16( MGIC_CMD_QUICKSTART ) ); + + wait_ms( 150 ); +} + + +/********************************************//** + drcʑ菉 + + drp[^Ȃǂ] + ***********************************************/ + +#define MGIC_CMD_UNLOCK_KEY 0x4A57 +#define MGIC_CMD_RESET 0x5400 +#define RCOMP_SIZE 16 +static void BT_mgic_init() +{ + u8 origParam[4]; + + if( system_status.model != MODEL_JIKKI ) + { + return; + // ܂ + } + + // 1. bN + if( send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( MGIC_CMD_UNLOCK_KEY ) ) != ERR_SUCCESS ) + { + // cIC NACK + vreg_set_mgic_error; + return; + // ܂ + } + + vreg_clear_mgic_error; + + // wait_ms( 5 + 1 ); OɃEFCgĂ̂ŕsv + + // 2. p[^ꎞۑ + //. o[Xg[hAQoCg܂ł݂Biǂݏoȑh~̂߂Hj + iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &origParam[0] ); + iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP+2, 2, &origParam[2] ); + + // 3. ꎞIOCVύX + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( p_bt_param->ocv )); // }WbNio[IȂ́B[J[w + + // 4. ꎞIRCOMPύX + send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, swap_endian_16( 0xFF00 ) ); + + // 5.[J[ʃp[^̃[h + { + u8 loop; + u16 temp; + + // -16oCgƂɋ؂Ƃ̂Ɓ@imCY΍Ƃ񂾂ǁAӖ񂩁Hj- + // 2oCgPʂőƂ̂ƁB + for( loop = 0; loop < BATT_PARAM_SIZE; loop +=2 ) + { + // ň + temp = *(p_bt_param->mg_param + loop) | (*(p_bt_param->mg_param + loop+1)) << 8 ; + send_cmd_mgic_2B( BT_GAUGE_REG_BT_PARAM + loop, temp ); + } + } + + { + // 5.1 g RCOMP XV + // {gȂAsӂɏĂ܂Ƃ̂߁AKlB + // 17048 ŕKvB17040iCTR) ɏĂ܂ĂsȂ + u8 loop; + + for( loop=0; loop < RCOMP_SIZE*2; loop+=2 ) + { + send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP_EXT + loop, swap_endian_16(K_RCOMP_SEG) ); + } + } + + // 6. 150msȏ҂ + wait_ms( 150 + 15 ); + + // 7. OCVɁuƂlv + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( p_bt_param->ocv ) ); // }WbNio[IȂ́B[J[w + + + // 7.1 bN + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( 0x0000 ) ); // lock key + + + // 8. 150`600ms҂B600ms͌ + wait_ms( 150 + 15 ); + + // 9. SOCǂށBxt@Ĉ߁B + { + u8 temp; + temp = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC ); + + if(( p_bt_param->verify.low <= temp ) && ( temp <= p_bt_param->verify.hi )) + { + // JX^fOKI + }else{ + // s烊gĈH + // dbg_nop(); // ͖ + } + } + + // 9.1 ēxfăbN + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( MGIC_CMD_UNLOCK_KEY ) ); + + // 10.RCOMPOCV߂ + // 2B x 2times write + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &origParam[0] ); + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP+2, 2, &origParam[2] ); + + // 11. bN + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( 0x0000 ) ); // lock key + + // 12. MAX17048AEFCgKvB + wait_ms( 150 + 15 ); +} + + + +extern u16 _dbg_rcomp; +/********************************************//** + raw_adc_temperatureɓĂlɕϊƂƂɁA + - WX^ɃZbg + - cICɃZbg + ***********************************************/ +task_status_immed tski_BT_temp_update( ) +{ + static u8 rawdat_old; + static s8 temperature; + s16 newrcomp; + static u8 heikinka; + +/* + T[~X^ - 10k_̎A + pxł͕̃J[uقڃjAŁA + c T[] = 81.48 - 111.97 x ratio + TDK T = 81.406 - 111.81 x ratio +*/ + + if( rawdat_old != raw_adc_temperature ) + { + if( heikinka < 40 ) + { + heikinka ++; + } + else + { + heikinka = 0; + rawdat_old = raw_adc_temperature; + // temperature = 81.45 - 111.9 * raw_adc_temperature/256.0; + // ꂼ256{Ă + temperature = (u8)(( 20851 - 112 * raw_adc_temperature + (256/2) ) /256); + vreg_ctr[VREG_C_BT_TEMP] = temperature; + + newrcomp = 0; + if( temperature > 20 ) + { + newrcomp = ( ( temperature - 20 ) * p_bt_param->rcomp.up )/256; + } + else + { + newrcomp = ( ( temperature - 20 ) * p_bt_param->rcomp.down )/256; + } + newrcomp = p_bt_param->rcomp.rcomp + newrcomp; + + if( newrcomp > 255 ) + { + newrcomp = 255; + } + if( newrcomp < 0 ) + { + newrcomp = 0; + } + _dbg_rcomp = newrcomp; + + if( send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, newrcomp ) == ERR_SUCCESS ) // swapsv + { + rawdat_old = raw_adc_temperature; + } + else + { + vreg_set_mgic_error; + } + } + } + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + drcICcʂ擾AWX^ɏށB + + @drcICȄȂǂ̎͂Ƃ肠c99%ƂB + + @@@@@@@@ status_1ŊmF”\BdɃ`FbNĂ܂B + + @BT_chk()sĂKv܂B + ***********************************************/ +void BT_get_left(){ + u8 temp[2]; + u8 reg_volatile_temp_bt_remain,reg_volatile_temp_bt_remain_fine; // I2C̔񓯊ǂݍ݂ł̂‚h~ Lbv̏ + u8 fuel_cap_by_voltage; // dŃLbvɎg + + // drc + if( system_status.model == MODEL_TS_BOARD + || system_status.model == MODEL_KUC_DEBUGGER ) + { + // TS & // + if( read_BT_SOC( temp ) == ERR_SUCCESS ) + { + reg_volatile_temp_bt_remain = temp[0]; + reg_volatile_temp_bt_remain_fine = temp[1]; + } + else + { + // G~[V@\ + // @œdf͕sւ邾낤 + reg_volatile_temp_bt_remain = 99; + reg_volatile_temp_bt_remain_fine = 0; + } + } + else + { + // @ // + // cʃ[h + if( read_BT_SOC( temp ) != ERR_SUCCESS ) + { + // cICNACK cobe͂ꂽ + vreg_set_mgic_error; + bt_authorized = false; + reg_volatile_temp_bt_remain = 0; + force_off = true; + } + else + { + u16 temp_u16; + + vreg_clear_mgic_error; + // obep[^̊֌WŃrbgVtgKv + temp_u16 = temp[0] * 256 + temp[1]; + temp_u16 /= p_bt_param->v_scale; + reg_volatile_temp_bt_remain = (u8)(( temp_u16 >> 8 ) & 0xFF ); + if( reg_volatile_temp_bt_remain == 0 ) + { + // 0%̎1.00%ɏグ + // [dJn΂炭͓drcʂ̂ + // 0%ɓBĂ܂Ƃ̂ + reg_volatile_temp_bt_remain = 1; + reg_volatile_temp_bt_remain_fine = 0; + } + else + { + reg_volatile_temp_bt_remain_fine = (u8)(temp_u16 & 0xFF); + } +#ifdef _DBG_BT_FULL_ + reg_volatile_temp_bt_remain = 100; + reg_volatile_temp_bt_remain_fine = 0; +#endif + } + } + + // drd + { + if( read_BT_voltage( temp ) != ERR_SUCCESS ) // 2byte read + { + temp[0] = (u8)( V_BT_4000MV / 256 ); // drdǂ߂Ȃ4000mVƂɂĂB + temp[1] = 0; + } + vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp[0]; + bt_volt16 = ( temp[0] * 256 + temp[1] ); + } + + + // dŃLbv...̏ + { + static u16 hysteresis; + + if( bt_volt16 > V_TH_30 ) + { + fuel_cap_by_voltage = 100; + hysteresis = 0; + } + else if( bt_volt16 - hysteresis > V_TH_LO ) // lqXeVXĂBǂނƂӁB + { + fuel_cap_by_voltage = 30; + hysteresis = 0; + } + else if( bt_volt16 > V_TH_EMPTY ) + { + fuel_cap_by_voltage = BATT_TH_LO; // + hysteresis = 500; + } + else if( bt_volt16 > V_TH_ZERO ) + { + fuel_cap_by_voltage = BATT_TH_EMPTY; + hysteresis = 500; + } + else if( bt_volt16 > V_TH_FORCE_OFF ) + { + fuel_cap_by_voltage = 0; + hysteresis = 500; + } + else + { + force_off = true; + hysteresis = 500; + } + } + + + // [diA_v^hĂĵɏ[dĂȂ + // AiȂƂjf̓drcʂ60%ȏiCCICoOABT_IN_CHG_delayed_nɐD荞ݍς݁j + // = [dBdrւĂMGIC100%ԂȂ + if( !BT_CHG_Ena_n && BT_IN_CHG_delayed_n ){ + reg_volatile_temp_bt_remain = 100; + reg_volatile_temp_bt_remain_fine = 0; + } + else + { // dł̃Lbv|邩H + if( fuel_cap_by_voltage < reg_volatile_temp_bt_remain ) + { + reg_volatile_temp_bt_remain = fuel_cap_by_voltage; + reg_volatile_temp_bt_remain_fine = 0; + } + } + + /* + \ɖȂdĂ炵̂ŃPAł悵 + if( system_status.taikendai_nbd && system_status.model != MODEL_TS_BOARD ) // dr[qɓd‚ȂĂĒlsȂߏ㏑B + { + reg_volatile_temp_bt_remain = 100; + } + */ + + vreg_ctr[ VREG_C_BT_REMAIN ] = reg_volatile_temp_bt_remain; + vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = reg_volatile_temp_bt_remain_fine; + + // twl̃WX^XV@(CTRɊ荞ݓOɍXVȂƊ荞݂̃^C~O܂Ȃ) + bt_batt_update_twl(); + + // cʂŊ荞݁B}ɌƔԂƂ // + { + static u8 bt_remain_old_ctr; + + if( bt_remain_old_ctr != reg_volatile_temp_bt_remain ) + // CTRɒʒm + { + if( (( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO ) && ( BATT_TH_LO < bt_remain_old_ctr ))|| + (( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_EMPTY ) && ( BATT_TH_EMPTY < bt_remain_old_ctr ))|| + (( vreg_ctr[ VREG_C_BT_REMAIN ] == 0 ) && ( bt_remain_old_ctr != 0 )) ) + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN ); + } + } + bt_remain_old_ctr = vreg_ctr[ VREG_C_BT_REMAIN ]; + } + + // PMIC-NTRɓdrcʂĂ + bt_batt_update_ntr(); +} + + + +/********************************************//** + tn̓d + + @Xe[^XtO͂ɗĂĂ܂B + + @sԂ邵A + + NsłΓd + + ʂ̃^XNœd͊ĎĂāAXe[^XNA + ***********************************************/ +err PM_LCD_on( ) +{ + err rv = ERR_ERR; + + PM_VDDLCD_on( ); // CGS AMO ؂ւĂ܂ + + if( system_status.LCD_is_CGS == true ) + { + // CTR + wait_ms( DELAY_PM_TSS_50B_AND_TCOM ); + } + else + { + // SPFL/SNAKE ȂAt@XHV on Ԃɋ + wait_ms( 10 ); + LCD_AMOL_HV_CTRL = 1; + wait_ms( DELAY_PM_TSS_50B_AND_TCOM - 10 ); + } + + PM_TCOM_on( ); + + wait_ms( DELAY_PM_TCOM_TO_VCS ); + + PM_VCS_on( ); + + wait_ms( DELAY_PM_VCS_TO_BL ); + + if( PM_chk_LDSW() != 0 ) // pX + { + // dNG[Ȃd؂Ă܂Bł̓PAȂ + vreg_ctr[VREG_C_STATUS] |= REG_BIT_LCD_POW; + set_irq( VREG_C_IRQ3, REG_BIT_LCD_ON ); + rv = ERR_SUCCESS; + } + + return rv; +} + + +void PM_LCD_off() +{ + // BL‚ĂB + // `FbN̂͊荞݂̊֌W + if( ( read_pmic( PM_REG_ADRS_BL ) & 0x03 ) != 0 ) + { + u8 tot; + + PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + vreg_ctr[VREG_C_STATUS] &= bits8(1,0,0,1, 1,1,1,1); + + if( (( REG_BIT_BL_U_OFF | REG_BIT_BL_L_OFF ) & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ) != 0 ) + { + vreg_ctr[ VREG_C_IRQ3 ] |= ( ( REG_BIT_BL_U_OFF | REG_BIT_BL_L_OFF ) & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ); + IRQ0_neg; + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} + IRQ0_ast; + } + vreg_ctr[VREG_C_COMMAND2] &= ~( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + } + + + // LCD dƂ + // 50ms wait ̂œ_Ă邩mF + if( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ) + { + PM_TCOM_off(); + wait_ms( 1 ); + PM_TCOM_VCS_off( ); + wait_ms( DELAY_PM_LCD_OFF ); + + if( system_status.LCD_is_CGS == false ) + { + // At@XȂ|[g + LCD_AMOL_HV_CTRL = 0; // ̃t@~łLȂ̂ŕQȂB + wait_ms( 10 ); // At@X15V؂Ƃ̃EFCgB + } + + PM_VDDLCD_off( ); // cĂ̑S~߂܂B + vreg_ctr[VREG_C_STATUS] &= ~REG_BIT_LCD_POW; + } + + set_irq( VREG_C_IRQ3, REG_BIT_LCD_OFF ); // ɔBi}XN͗Lj +} + + + +/********************************************//** +@obNCǧ•on/off + +@󂩂@on/off/ێ@̃tOȂ̂Ŗʓ| + +@BL on/on ̏ԂŁAon/onɂƌĂAon/on荞݂܂B + ***********************************************/ +err PM_BL_set( u8 dat ) +{ + u8 blset; // PMIC WX^ɏޒl + u8 intset = 0; // 荞݃WX^ɔfl + // RMWs + + // Read + blset = read_pmic( PM_REG_ADRS_BL ); + + // Modify + // + if(( dat & REG_BIT_CMD_BL_U_ON ) != 0 ) + { + blset |= PM_REG_BIT_BL_U; + intset |= REG_BIT_BL_U_ON; + } + else if(( dat & REG_BIT_CMD_BL_U_OFF ) != 0 ) + { + blset &= ~PM_REG_BIT_BL_U; + intset |= REG_BIT_BL_U_OFF; + } + + // + if(( dat & REG_BIT_CMD_BL_L_ON ) != 0 ) + { + blset |= PM_REG_BIT_BL_L; + intset |= REG_BIT_BL_L_ON; + } + else if(( dat & REG_BIT_CMD_BL_L_OFF ) != 0 ) + { + blset &= ~PM_REG_BIT_BL_L; + intset |= REG_BIT_BL_L_OFF; + } + + if( system_status.family == FAMILY_FLOWER ) + { + // plꖇȂ̂ŁAoff/off łȂΓ_ALX1iڑj𗧂グȂ + // A荞݂͉R‚ SoC ݒ肵Ǝv񂾒lɂB + // todo: vmB + if( blset != 0 ) + { + blset = PM_REG_BIT_BL_L; + } + } + + // write + if( blset != 0 ) // BLtꍇ̓EFCg܂ȂPWMĂ炸 + // Vbg_E邱Ƃ + { + wait_ms( 16 + 10 ); + } + send_cmd_pmic( PM_REG_ADRS_BL, blset ); + + // SoCPWMo悤WX^ZbgĂxL邽߁AXe[^X + // XVĂ܂BĂقƂ̗vB + + // PMICBL̃rbgƁAMCUSTATUSWX^̃rbgʒutȂߓւ + vreg_ctr[VREG_C_STATUS] = (( vreg_ctr[VREG_C_STATUS] & bits8(1,0,0,1, 1,1,1,1) ) + | ( (( blset << 6 ) | ( blset << 4 )) & bits8(0,1,1,0, 0,0,0,0) )); + + // 荞 + /// rbg܂Ƃ߂čŝŁAset_irq()gȂ + { + u8 tot; + + if( ( intset & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ) != 0 ) + { + vreg_ctr[ VREG_C_IRQ3 ] |= ( intset & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ); + IRQ0_neg; + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} + IRQ0_ast; + } + } + + return( ERR_SUCCESS ); // łُ͈`FbNsv +} + + + +/********************************************//** + t̑Όd̐ݒs܂B + + zWX^̓e𑗂邾 + ***********************************************/ +void PM_LCD_vcom_set( ) +{ + send_cmd_pmic( PM_REG_ADRS_POW_DAC1, vreg_ctr[VREG_C_VCOM_T] ); // ȂƂɁAPMIC̓o[Xgݕs + send_cmd_pmic( PM_REG_ADRS_POW_DAC2, vreg_ctr[VREG_C_VCOM_B] ); + return; +} + + + +/********************************************//** + ŁAWX^݂Ăяo鎞̂ + + @I2C̎荇̊֌WłĂ + ***********************************************/ +task_status_immed tski_vcom_set( ) +{ + PM_LCD_vcom_set( ); + return ( TSKI_FINISHED ); +} + + +void set_vdd_voltages( enum family_ family ) +{ + if(( family == FAMILY_SNAKE ) || ( family == FAMILY_CLOSER )) + { + // SNAKE + pmreg_v_core = PM_REG_BIT_VDD1P_1R05; + } + else + { + // NORMAL + pmreg_v_core = PM_REG_BIT_VDD1P_1R15; + } +} + +/********************************************//** + V[PX̒ʂd𗧂グĂ䂫܂B + + - Ԓl 0 Ō܂ŐɊB + - 1 V[gȂǂœd肫Ȃ + ***********************************************/ +err PM_sys_pow_on( ) +{ + // dグ +// PM_reset_ast( ); sv PM_LDSW_on܂ + RESET2_ast; + FCRAM_RST_ast; + GYRO_DISABLE(); + + PM_LDSW_on( ); + + wait_ms( 1 + DELAY_PM_TW_PWUP ); + + PM_VDD_normMode(); + PM_VDD_on( ); +// wait_ms( DELAY_PM_TW_PWUP ); // GYROނ + wait_ms( 10 ); + GYRO_ENABLE(); + wait_ms( DELAY_PM_TW_PWUP - 10 ); + + PM_VDD50A_on( ); // tdł͂ȂAledɎg + + wait_ms( DELAY_PM_TW_PWUP ); + + // dN`FbNB + if( !PM_chk_LDSW() ) + { + return ( ERR_ERR ); // reset1͂قƂėǂ + } + + // dIC + pmic_version = read_pmic( PM_REG_ADRS_VER ); + read_mgic_2B( BT_GAUGE_REG_VERSION, mgic_version ); + + return ( ERR_SUCCESS ); +} + + + +void reset_release() +{ + // ZbgȂǁBVXeNI + PM_reset_neg(); + FCRAM_RST_neg; + RESET2_neg; + + codec_reg_init(); // CODEC s背WX^(reset2̌łȂƂȂ̂) + ntr_pm_reg_shadow = 0; // @V@ȂƂ... +} + + + + +/********************************************//** + dOFFV[PX + ***********************************************/ +void PM_sys_pow_off( ) +{ + // ꉞ LCD ֌Ŵ݂B + PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + PM_LCD_off(); // ĂΉȂ + wait_ms( 20 ); + + PM_reset_ast(); + + RESET2_ast; + FCRAM_RST_ast; + + wait_ms( 20 ); + + PM_off( ); + PM_LDSW_off( ); +} + + + +/********************************************//** + extDC荞 + + dOFFNi[d̉xĎ̂߁ĵ + + i̓|[O(pm) + ***********************************************/ +__interrupt void intp4_extdc( ) +{ +} + + + +/********************************************//** + t^J‚ߊ荞 + + i̓|[O(misc) + ***********************************************/ +__interrupt void intp5_shell( ) +{ + ; +} + + +/********************************************//** + PMICւ̃R}h + ***********************************************/ +__interrupt void intp6_PM_irq( ) +{ + EI(); + if( system_status.pwr_state == ON ) + { + renge_task_immed_add( tski_ntr_pmic_comm ); + } +} + + +/********************************************//** + CODEC̊荞݂󂯂āANTR PMIC݊WX^烊[h + ***********************************************/ +task_status_immed tski_ntr_pmic_comm( ) +{ + u8 reg1_old; + u8 irq_work = 0; + + reg1_old = ntr_pm_reg_shadow; + ntr_pm_reg_shadow = iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_PM ); + if( iic_mcu_result != ERR_SUCCESS ) + { + return ( TSKI_FINISHED ); + } + +// DI( ); + + // obNCg //////////////////////////////////// + if( ( ( reg1_old ^ ntr_pm_reg_shadow ) & REG_BIT_TWL_REQ_BL_U ) != 0 ) + { + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_BL_U ) == 0 ) // + { + irq_work = REG_BIT_TWL_BL_U_OFF; + } + else + { + irq_work = REG_BIT_TWL_BL_U_ON; + } + } + + // obNCg + if( ( ( reg1_old ^ ntr_pm_reg_shadow ) & REG_BIT_TWL_REQ_BL_L ) != 0 ) + { + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_BL_L ) == 0 ) // + { + irq_work |= REG_BIT_TWL_BL_L_OFF; + } + else + { + irq_work |= REG_BIT_TWL_BL_L_ON; + } + } + +// EI(); + + vreg_ctr[ VREG_C_STATUS_1 ] = ( vreg_ctr[ VREG_C_STATUS_1 ] & ~REG_BIT_MASK_STATUS1_NTR_PM_REG ) + | ( ntr_pm_reg_shadow & REG_BIT_MASK_STATUS1_NTR_PM_REG ); // TWLobNCg̃~[ + + irq_work &= ~vreg_ctr[ VREG_C_IRQ_MASK2 ]; + // set_irq i + if( irq_work != 0 ) + { + u8 tot; + + vreg_ctr[ VREG_C_IRQ2 ] |= irq_work; + IRQ0_neg; // uグăpX𑗂蒼 + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} // O.DȂ̂łƂ̂҂ IRQ_mcu LɔĂƍ(•s) + IRQ0_ast; + } + + /// obNCgAC𗘂ď肵܂B + + // offNGXg ////////////////////////////////////// + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_OFF_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_OFF_REQ ); + } + + // ZbgNGXg ///////////////////////////////// + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_RST_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); + } + + // obNCg}XNď߂ + EI( ); + if( ( ntr_pm_reg_shadow & ( REG_BIT_TWL_REQ_OFF_REQ | REG_BIT_TWL_REQ_RST_REQ )) != 0 ) + { + ntr_pm_reg_shadow &= ~( REG_BIT_TWL_REQ_OFF_REQ | REG_BIT_TWL_REQ_RST_REQ ); + iic_mcu_write_a_byte_codec( CODEC_REG_PM, ntr_pm_reg_shadow ); + } + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + command2 tn + +@ bp[IȕBERR_SUCCESSԂȂc + ***********************************************/ +task_status_immed tski_PM_LCD_on() +{ + PM_LCD_on(); + return( TSKI_FINISHED ); +} + +task_status_immed tski_PM_LCD_off() +{ + PM_LCD_off(); + return( TSKI_FINISHED ); +} + +task_status_immed tski_PM_BL_set() +{ + u8 cmd_BL; // volatileƂtȂĂv݂ + + do + { + cmd_BL = vreg_ctr[VREG_C_COMMAND2]; + PM_BL_set( cmd_BL ); // }XNς + } + while( cmd_BL != vreg_ctr[VREG_C_COMMAND2] ); // <- PM_BL_setXV + vreg_ctr[VREG_C_COMMAND2] = 0; + + return( TSKI_FINISHED ); +} + + + +/********************************************//** +@reset2 CODEC ɃZbgAWX^sɂȂ邽 + ***********************************************/ +void codec_reg_init() +{ + wait_ms( 100 ); + + ntr_pm_bt_low_old = conv_ctr_bt_to_twl_bt(); + + iic_mcu_write_a_byte_codec( CODEC_REG_BT, (u8)ntr_pm_bt_low_old ); // SoC 珑 + + vol_reset(); +// renge_task_immed_add( tski_vol_update ); |[ÔŁB + vol_polling = 3; +} + + +/********************************************//** + wp[Ƃbp[ƂH + + ROMߖ̂ + ***********************************************/ +err send_cmd_mgic_2B( u8 reg, u16 dat ) +{ + u16 temp = dat; // Mobt@ + return iic_mcu_write( IIC_SLA_BT_GAUGE, reg, 2, &temp ); // DMA]̂őMf[^obt@̃|C^ǂKv +} + +err read_mgic_2B( u8 reg, u8* dat ) // Mobt@͌Œ +{ + return iic_mcu_read( IIC_SLA_BT_GAUGE, reg, 2, dat ); +} + +err send_cmd_pmic( u8 reg, u8 dat ) +{ + return iic_mcu_write_a_byte( IIC_SLA_PMIC, reg, dat ); +} + +u8 read_pmic( u8 reg ) +{ + return iic_mcu_read_a_byte( IIC_SLA_PMIC, reg ); +} + +/********************************************//** + dr[J[ƃfAgdrp[^̌ + ***********************************************/ +void bt_param_select() +{ + BT_TYPE bt_type_temp; + + // obe[J[ + if( battery_manufacturer <= BT_VENDER_3 ) // ]TĒԂ臒lƂ + { + bt_type_temp = BT_PARAM_CTR_MAXELL; + } + else + { + bt_type_temp = BT_PARAM_CTR_PANA; + } + + // f + switch( system_status.family ) + { + case( FAMILY_SPFL ): bt_type_temp += BT_PARAM_SPFL_MAXELL; break; // ItZbg cOȎŁcB + case( FAMILY_SNAKE ): bt_type_temp += BT_PARAM_SNAKE_MAXELL; break; + case( FAMILY_CLOSER ): bt_type_temp += BT_PARAM_SPFL_MAXELL; break; + case( FAMILY_CTR ): + case( FAMILY_FLOWER ): // CTR Ɠ + default: /* bt_type_temp ̂܂ */ break; + } + + p_bt_param = &bt_param[ bt_type_temp ]; + + // [d~x̐ݒ + /// tȂ̂ƁA򂪏Ȃ̂ł + if(( system_status.family == FAMILY_SNAKE ) || + ( system_status.family == FAMILY_CLOSER )) + { + raw_temp_lh = RAW_TEMP_LH_SNAKE; + raw_temp_ll = RAW_TEMP_LL_SNAKE; + } + else + { + raw_temp_lh = RAW_TEMP_LH_CTR; + raw_temp_ll = RAW_TEMP_LL_CTR; + } +} + + + + +#define TWL_BT_LEVEL_THREASH_F 60 +#define TWL_BT_LEVEL_THREASH_B 30 +#define TWL_BT_LEVEL_THREASH_1 0 + +/********************************************//** + TWLɓdrcʂĂ + ***********************************************/ +static void bt_batt_update_twl() +{ + if (vreg_ctr[VREG_C_BT_REMAIN] > TWL_BT_LEVEL_THREASH_F ) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x0F; + } + else if (vreg_ctr[VREG_C_BT_REMAIN] > TWL_BT_LEVEL_THREASH_B ) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x0B; + } + else if (vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_LO) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x07; + } + else if (( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_EMPTY )|| + !BT_CHG_Ena_n ) + { // A_v^̗LŒグ + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x03; + } + else if (vreg_ctr[VREG_C_BT_REMAIN] > TWL_BT_LEVEL_THREASH_1 ) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x01; + } + else + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x00; + } +} + + +/********************************************//** + NTRɓdrcʂĂ + ***********************************************/ +static void bt_batt_update_ntr() +{ + static bit initialized; + static bit flag; // HstaticłȂƃRpCɓ{ + + if( system_status.pwr_state == OFF_TRIG ) + { + initialized = false; + } + else + { + + flag = conv_ctr_bt_to_twl_bt(); + + if(( ntr_pm_bt_low_old != flag ) || !initialized ) + { + initialized = true; + ntr_pm_bt_low_old = flag; + iic_mcu_write_a_byte_codec( CODEC_REG_BT, (u8)flag ); + } + } +} + + +/********************************************//** + drcʂǂł + ***********************************************/ +static err read_BT_SOC( u8* dest ) +{ +#ifdef _ENABLE_HAL_ + if( vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] != 0xFF ) // trueȂHALL +#else + if( 0 ) +#endif + { + *dest = vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ]; + *(dest+1) = 0x00; + return ERR_SUCCESS; + } + else + { + return( read_mgic_2B( BT_GAUGE_REG_SOC, dest ) ); + } +} + + +/********************************************//** + drdǂł + ***********************************************/ +static err read_BT_voltage( u8* dest ) +{ +#ifdef _ENABLE_HAL_ + if( vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] != 0xFF ) // trueȂHALL +#else + if( 0 ) +#endif + { + *dest = vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ]; +// *(dest+1) = 0x00; // gȂ@ǂQoCg[h֐pӂĂȂ̂ł + return ERR_SUCCESS; + } + else + { + return( read_mgic_2B( BT_GAUGE_REG_VCELL, dest ) ); + } +} + + +/********************************************//** + drcʂtwlɃtOɕϊ + ***********************************************/ +static u8 conv_ctr_bt_to_twl_bt() +{ +// ntr_pm_bt_low_old = ( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )? NTR_PM_BT_EMPTY: NTR_PM_BT_ENOUGH; // 1œdr؂ + if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO ) + { + return NTR_PM_BT_EMPTY; + } + else + { + return NTR_PM_BT_ENOUGH; + } +} + + + +void PM_reset_ast() +{ + char temp; + temp = read_pmic( PM_REG_ADRS_CONT ); + send_cmd_pmic( PM_REG_ADRS_CONT, temp & ~(PM_REG_BIT_nRST1)); +} + diff --git a/snake_branches/3.40_jane/pm.h b/snake_branches/3.40_jane/pm.h new file mode 100644 index 0000000..a0d27ed --- /dev/null +++ b/snake_branches/3.40_jane/pm.h @@ -0,0 +1,222 @@ +#ifndef __PM__ +#define __PM__ +/* + $Id$ +*/ + +#define IIC_SLA_PMIC 0x84 +#define IIC_SLA_BT_GAUGE 0x6C + +#define VCOM_DEFAULT_T 92 +#define VCOM_DEFAULT_B 95 + + + +#define BATT_TH_LO 10 +#define BATT_TH_EMPTY 5 + +// dWX^ƒڔrłpɃItZbg +#define V_BT_4000MV (u16)( 4000 * 12.8 ) // dǂݏosp 4000mVݒ +#define V_TH_30 (u16)( 3300 * 12.8 ) // 30% +#define V_TH_LO (u16)( 3200 * 12.8 ) // 10% +#define V_TH_EMPTY (u16)( 3150 * 12.8 ) // 5% +#define V_TH_ZERO (u16)( 3100 * 12.8 ) // 0% +#define V_TH_FORCE_OFF (u16)( 2900 * 12.8 ) // 2.9V ŏIf + + +//========================================================= +#ifdef _WIN32 +#define LED_CHARGE mcuRegP[ _P2_4 ] +#else +#define LED_CHARGE P2.4 +#endif + + +//========================================================= +enum PMIC_REG_ADRS +{ + PM_REG_ADRS_VER = 0x00, // verinfo Ȃ + PM_REG_ADRS_VDD_SYS, // VXegpd + PM_REG_ADRS_VDD_LCD, // td + PM_REG_ADRS_CONT, // /RESET1, LoadSwitch + PM_REG_ADRS_BL, // obNCg on/off + PM_REG_ADRS_POW_SAVE, // ȓd͐ݒ + PM_REG_ADRS_POW_DAC1, + PM_REG_ADRS_POW_DAC2 +}; + +enum BT_GAUGE_REG_ADRS +{ + BT_GAUGE_REG_VCELL = 0x02, // ꂼ16rbĝ + BT_GAUGE_REG_SOC = 0x04, + BT_GAUGE_REG_MODE = 0x06, + BT_GAUGE_REG_VERSION = 0x08, + BT_GAUGE_REG_OCV = 0x0E, + BT_GAUGE_REG_RCOMP = 0x0C, + BT_GAUGE_REG_LOCK = 0x3E, + BT_GAUGE_REG_BT_PARAM = 0x40, + BT_GAUGE_REG_COMMAND = 0xFE, + BT_GAUGE_REG_RCOMP_EXT = 0x80, +}; + + +typedef enum BT_VENDER +{ + BT_VENDER_MAXELL = 0, // V[g + BT_VENDER_1, // 120 + BT_VENDER_2, // 360 + BT_VENDER_3, // 750 + BT_VENDER_4, // 1.3k + BT_VENDER_PANA = 5, // 2.7k + BT_VENDER_6, // 8.2k + BT_VENDER_OPEN = 7, // open + BT_VENDER_NOT_CHECKED = 0xFF, +}BT_VENDER; + + + +enum NTR_PM_BT_STATUS{ + NTR_PM_BT_ENOUGH, + NTR_PM_BT_EMPTY, + NTR_PM_BT_NOT_INITIALIZED = 0xFF +}; + + + +//========================================================= +// CODECPMIC݊WX^ +#define CODEC_REG_PM 0x10 +#define CODEC_REG_BL 0x11 +#define CODEC_REG_BT 0x12 +//#define CODEC_REG_VOL 0x13 // ...sɂAadc.hŒ` + +// TWLSPIPMICɓR}h +#define REG_BIT_TWL_REQ_OFF_REQ ( 1 << 6 ) +#define REG_BIT_TWL_REQ_RST_REQ ( 1 << 0 ) +#define REG_BIT_TWL_REQ_BL ( 3 << 2 ) + + + +// 0x03 pw cnt3 +#define PM_REG_BIT_LDSW ( 1 << 0 ) +#define PM_REG_BIT_nRST1 ( 1 << 1 ) + +// 0x01 pw cnt1 +#define PM_REG_BIT_VDD_CTR 0x0F +#define PM_REG_BIT_VDD50A ( 1 << 4 ) + +// 0x02 pw cnt2 +#define PM_REG_BIT_VDDLCD_CGS 0x07 +#define PM_REG_BIT_VDDLCD_AMO 0x05 +#define PM_REG_BIT_LCD_VCS ( 0x01 << 4 ) +#define PM_REG_BIT_LCD_TCOM ( 0x01 << 3 ) + +// 0x04 bl cnt +#define PM_REG_BIT_BL_U 0x01 +#define PM_REG_BIT_BL_L 0x02 + + +// 0x05 pow save +#define PM_REG_BIT_VDD1P_1R15 bits8(0,0,0,0, 0,0,0,0) +#define PM_REG_BIT_VDD1P_1R05 bits8(0,0,0,0, 1,0,0,0) +#define PM_REG_BIT_VDD1P_1R00 bits8(0,0,0,1, 0,0,0,0) +#define PM_REG_BIT_VDD1P_0R95 bits8(0,0,0,1, 1,0,0,0) +#define PM_REG_BIT_VDD1P_0R90 bits8(0,0,1,0, 0,0,0,0) +#define PM_REG_BIT_VDD_AUTO bits8(0,0,0,0, 0,1,1,1) +#define PM_REG_BIT_VDD_PWM bits8(0,0,0,0, 0,0,0,0) + + +#define DELAY_PM_TW_PWUP 16 + 2 +#define DELAY_PM_TSS_50B_AND_TCOM 17 + 1 +#define DELAY_PM_5V_TO_TCOM 17 + 1 +#define DELAY_PM_TCOM_TO_VCS 3 +#define DELAY_PM_VCS_TO_BL ( 17 + 5 ) +#define DELAY_PM_LCD_OFF ( 50 + 1 ) + + +//========================================================= +extern u8 raw_adc_temperature; +extern BT_VENDER battery_manufacturer; +extern bit bt_force_update; + +extern u8 pmic_version; +extern u8 mgic_version[]; + +extern u8 pm_reg_bit_vddlcd; // At@XΉ(dV[PXႤ) + +extern u8 pmreg_v_core; // SoC̃RAdݒBSNAKE(LAGER)ŕύX邽߁B + +//========================================================= +err PM_sys_pow_on( ); +void PM_sys_pow_off( ); +//err PM_bt_auth( ); +void PM_LCD_vcom_set( ); + +err PM_LCD_on( ); +void PM_LCD_off( ); +err PM_BL_set( u8 ); + +void BT_chk(); +void BT_get_left(); +void pm_chk_adapter(); + +void codec_reg_init(); + +void set_vdd_voltages( enum family_ family ); + +void reset_release(); + +task_status_immed tski_BT_temp_update( ); +task_status_immed tski_vcom_set( ); +task_status_immed tski_PM_LCD_on(); +task_status_immed tski_PM_LCD_off(); +task_status_immed tski_PM_BL_set(); + + +err send_cmd_pmic( u8 reg, u8 dat ); +u8 read_pmic( u8 reg ); + + +#define PM_Chg_Stop() { BT_TEMP_P = 0; BT_CHG_DISABLE(); LED_CHARGE = 0; bt_authorized = false; } +// @ĂԑOɁA݉xĂKv܂B +#define PM_reset() ( send_cmd_pmic( PM_REG_ADRS_CONT, 0x00 ) ) + + +//========================================================= + + +// // +#define PM_LDSW_on() ( send_cmd_pmic( PM_REG_ADRS_CONT, PM_REG_BIT_LDSW )) +#define PM_LDSW_off() ( send_cmd_pmic( PM_REG_ADRS_CONT, 0 )) + + +// VXed // +#define PM_VDD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, PM_REG_BIT_VDD_CTR )) +#define PM_VDD50A_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, ( PM_REG_BIT_VDD_CTR | PM_REG_BIT_VDD50A ))) +#define PM_VDD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, 0 )) +#define PM_off() PM_VDD_off() + +// CPUd +#define PM_VDD_normMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, pmreg_v_core | PM_REG_BIT_VDD_PWM )) +#define PM_VDD_ecoMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_0R90 | PM_REG_BIT_VDD_AUTO )) + +// ق // +#define PM_reset_neg() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW | PM_REG_BIT_nRST1 ))) +// #define PM_reset_ast() // read modify write 悤ɂ܂ +void PM_reset_ast(); +#define PM_chk_LDSW() ( read_pmic( PM_REG_ADRS_CONT ) & PM_REG_BIT_LDSW ) // 1̂ƂAdon + +// tnd // +#define PM_VDDLCD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, pm_reg_bit_vddlcd )) +#define PM_TCOM_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_TCOM ))) +#define PM_VCS_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_VCS | PM_REG_BIT_LCD_TCOM ))) +#define PM_TCOM_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_VCS ))) +#define PM_TCOM_VCS_off() PM_VDDLCD_on() +#define PM_VDDLCD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, 0 ) ) + +#define PM_set_BL( dat ) ( send_cmd_pmic( PM_REG_ADRS_BL, dat ) ) +#define PM_set_adc1( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC1, dat ) ) +#define PM_set_adc2( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC2, dat ) ) + + +#endif // __PM__ diff --git a/snake_branches/3.40_jane/pool.h b/snake_branches/3.40_jane/pool.h new file mode 100644 index 0000000..81c8091 --- /dev/null +++ b/snake_branches/3.40_jane/pool.h @@ -0,0 +1,24 @@ +#ifndef _pool_h_ +#define _pool_h_ + + +#include "pedometer.h" + +#define VREG_C_FREE_SIZE 200 + +// 󂢂Ă郁 +typedef struct _st_vreg_c_ext{ + unsigned short pedo_log[ PEDOMETER_LOG_SIZE ]; + unsigned char vreg_c_free[ VREG_C_FREE_SIZE ]; +}st_vreg_c_ext; + +typedef union _uni_pool +{ + st_vreg_c_ext vreg_c_ext; + u8 self_update_work[ 256 ]; // 256ȏ͂܂ƂߏłȂ +}uni_pool; + +extern uni_pool pool; + + +#endif diff --git a/snake_branches/3.40_jane/reboot.c b/snake_branches/3.40_jane/reboot.c new file mode 100644 index 0000000..53912a5 --- /dev/null +++ b/snake_branches/3.40_jane/reboot.c @@ -0,0 +1,23 @@ +/********************************************************//* + ނ胊u[g + + t@CɃCCAZuƁA + ̃W[SœKȂȂ邽ߒǂo + $Id$ + **********************************************************/ +#pragma SFR + +#include "incs_loader.h" + + +void my_reboot(){ +#asm + + MOV PSW,#06H ; _~[PSWZbg + MOVW AX,#000d0h ; Zbg̃xN^l荞ł܂B + PUSH PSW + PUSH AX ; RETÎ߂̃X^bN + RETI ; ŃZbgExN^ɕ + +#endasm +} diff --git a/snake_branches/3.40_jane/reboot.h b/snake_branches/3.40_jane/reboot.h new file mode 100644 index 0000000..c20e11e --- /dev/null +++ b/snake_branches/3.40_jane/reboot.h @@ -0,0 +1,6 @@ +#ifndef __MYREBOOT__ +#define __MYREBOOT__ + +void my_reboot(); + +#endif diff --git a/snake_branches/3.40_jane/renge/renge.c b/snake_branches/3.40_jane/renge/renge.c new file mode 100644 index 0000000..19bee20 --- /dev/null +++ b/snake_branches/3.40_jane/renge/renge.c @@ -0,0 +1,313 @@ +#ifndef _WIN32 + +#pragma section @@CODE ROM_CODE +#pragma nop +#pragma ei +#pragma di +#pragma sfr + +#endif + + +#ifdef _WIN32 +typedef unsigned char bit; +typedef unsigned char u8; +#endif + +/****************************************************************************** + ^XNVXeH + ȂقǁAiTRONɂ̓RtBM[^͂B + ܂ + ctr_mcu_config.rb QƁB task_config.h쐬܂B + *****************************************************************************/ +#include "renge.h" +#include "renge_task_intval.h" +#include "renge_task_immediate.h" +#include "..\WDT.h" +#include "..\config.h" +#include "..\user_define.h" +#include "..\util_funcs.h" + + +#ifdef _WIN32 +#include "../sim/simOnWin.h" +#endif +//#define _renge_test_ + +#define true 1 +#define false 0 + +//****************************************************************************** +u8 renge_flg_interval; +bit renge_task_interval_run_force; +bit renge_task_immediate_not_empty; + + +#include "..\bsr_system.h" +extern system_status_ system_status; + + +//****************************************************************************** +static void renge_task_immed_init(); +static void renge_task_immed_del(); + + + +//****************************************************************************** +task_status_immed ( *tasks_immed[ TASK_IMMED_RUN_LIST_MAX ] )(); + + + +/****************************************************************************** + +E^XNVXe̓Ȉ +EC^[o^C} + *****************************************************************************/ +void renge_init(){ + renge_task_immed_init(); + /* + Cxg^C}̃ZbgȂ + RTC𗬗pĂ̂ŃRgAEg + #define renge_tick 19xxxxxxx [ms] + renge_interval_init(); RTC_init(); + */ +} + + + +/****************************************************************************** + VXe`bNi߂ + *****************************************************************************/ +/* +void renge_interval(){ +// RTCĂ +__interrupt void int_rtc_int(); +} +*/ + + + +/****************************************************************************** + RpCɌ܂ĂAC^[oÑ^XN + ̂ANƍ邩ȂB + *****************************************************************************/ +__callt err renge_task_interval_run(){ + u8 i; + + // C^[oN + DI_wt_chk(); + if(( renge_flg_interval != 0 ) || + ( renge_task_interval_run_force )) /// ȁc + { + renge_task_interval_run_force = false; // N^XNA荞ރ^XNŃtO‚Ȃ̂ + if( renge_flg_interval != 0 ) + { + renge_flg_interval --; + WDT_Restart( ); + } + EI(); + for( i = 0; i != TSK_LAST; i ++ ) + { + tasks[ i ](); + // N^XNԂɋ + renge_task_immed_run(); + } + } + EI(); + return( ERR_SUCCESS ); +} + + + +/***************************************************************************** + N^XN + + task_immed Ԃ֐B + VXetickA炩̊荞݁iI2CʐMȂǁj + X[v畜A^C~OŎs܂B + +Ԓl@TSKI_FINISHED@^XN폜 +@@@@ȊO ̃^C~Oł܂s + + *****************************************************************************/ + + +/************************************** + **************************************/ +void renge_task_immed_init(){ + u8 i; + + for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i++ ){ + tasks_immed[ i ] = TSK_IMM_EMPTY_; + } +} + + + +/************************************** + s^XN̓o^ + 荞݋֎~ 36us + **************************************/ +__callt err renge_task_immed_add( task_status_immed (*new_task)() ){ + u8 i; + + // Xg̋󂫂̐擪ɓo^ + // 폜΂̃^XŃA폜}[N(TSK_IMM_DELETED_)ƂȂA󂫂Ƃ͖Iɋʂ + // do^ + for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i ++ ) + { + DI_wt_chk(); + if( tasks_immed[ i ] == TSK_IMM_EMPTY_ ) + { + // 󂫂‚ + tasks_immed[ i ] = new_task; + EI(); + return( ERR_SUCCESS ); + } + else + { + // do^`FbN + /// ɂȂĂȂAOl߂ĂO + if( tasks_immed[ i ] == new_task ) + { + // do^͂Ȃ + EI(); + return( ERR_ERR ); + } + } + EI(); + } + // ^XNo^(͂ + return( ERR_ERR ); +} + + + +/************************************** + s^XN̎s + **************************************/ +__callt err renge_task_immed_run(){ + u8 list_id; + +// while( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ ) + if( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ ) + { + DI_wt_chk(); + for( list_id = 0; list_id < TASK_IMMED_RUN_LIST_MAX; list_id ++ ){ + if( tasks_immed[ list_id ] == TSK_IMM_EMPTY_ ){ + // Xg + EI(); + break; + } +#ifdef _renge_test_ + else if( tasks_immed[ list_id ] == TSK_IMM_DELETED_ ) + { + EI(); + NOP(); + // ^XNǗ̕s + // ݂Ȃ^XNs悤Ƃ + // ^XN̍폜̏܂ + // \Ȃ^C~O immed_run Ă΂ꂽ + } +#endif + else + { + u8 rv; + + EI(); + rv = tasks_immed[ list_id ](); // ^XNs + if( rv == ERR_SUCCESS ) + { + tasks_immed[ list_id ] = TSK_IMM_DELETED_; + } + // ǂ^C~Oœ^XN̓o^ƍ̂DIԂłė鎖 + } + DI_wt_chk(); + } + // Xg̃^XNʂs + + // ^XN폜 // + { + u8 i = 0; // Xg̕בւ + u8 j = 1; + + // K i < jAj < TASK_IMMED_RUN_LIST_MAX (łȂƃ^XNӂ) + while( 1 ) + { + if( tasks_immed[ i ] == TSK_IMM_EMPTY_ ) + { + // Olߊ && Xg + // break; + goto imm_list_sort_fin; + } + else if( tasks_immed[ i ] == TSK_IMM_DELETED_ ) + { + for( ; j < TASK_IMMED_RUN_LIST_MAX; j++ ) + { + if( tasks_immed[ j ] == TSK_IMM_DELETED_ ) + { + // ׁiHj폜Ώۂ + // next j + } + else + { + DI_wt_chk(); + if( tasks_immed[ j ] == TSK_IMM_EMPTY_ ) + { + do{ + j --; + tasks_immed[ j ] = TSK_IMM_EMPTY_; + // XgOlߊ + }while( i < j ); + EI(); + goto imm_list_sort_fin; + } + else + { + // Ol߂ׂ^XN‚ + tasks_immed[ i ] = tasks_immed[ j ]; + tasks_immed[ j ] = TSK_IMM_DELETED_; + i ++; + EI(); + } + } + } + } + else + { + // ̃^XNAؗ + } + i ++; + } + } + } + +imm_list_sort_fin: + // ܂łŊSɑOl߂Ă +#ifdef _renge_test_ + /// ق? + { + u8 a,b; + + a = 0; + for( b = 0 ; b < TASK_IMMED_RUN_LIST_MAX; b++ ) + { + if( tasks_immed[ b ] == TSK_IMM_EMPTY_ ) + { + a = 1; + } + else + { + if( a != 0 ) + { + NOP(); // EMPTYɃ^XNdeletedL + } + } + } + } +#else + NOP(); // Ȃ񂩖ƃJ{ +#endif +// } + return( ERR_SUCCESS ); +} diff --git a/snake_branches/3.40_jane/renge/renge.h b/snake_branches/3.40_jane/renge/renge.h new file mode 100644 index 0000000..9c7b2e4 --- /dev/null +++ b/snake_branches/3.40_jane/renge/renge.h @@ -0,0 +1,26 @@ +#ifndef __renge__ +#define __renge__ + +//****************************************************************************** + + + +//****************************************************************************** +#include "renge_defs.h" +#include "renge_task_immediate.h" +// #include "renge_task_interval_run.h" // O狭N֎~I + +//****************************************************************************** +void renge_init(); +void renge_task_immed_init(); +__callt err renge_task_immed_run(); +__callt err renge_task_immed_add( task_status_immed (*p_task_func)() ); +// static err renge_task_immed_del( u8 ); + + +//****************************************************************************** +__callt err renge_task_interval_run(); +extern u8 renge_flg_interval; +extern bit renge_task_interval_run_force; // ^XNstO + +#endif diff --git a/snake_branches/3.40_jane/renge/renge_defs.h b/snake_branches/3.40_jane/renge/renge_defs.h new file mode 100644 index 0000000..03c98a6 --- /dev/null +++ b/snake_branches/3.40_jane/renge/renge_defs.h @@ -0,0 +1,55 @@ +#ifndef __renge_defs__ +#define __renge_defs__ +/****************************************************************************** + Renge Ver.0 (2009/04/09) + 2009- 7k4jhl R.Fujita @ RED.nintendo + + OSɂ͂قljAȈՓIȃ^XNVXeB + Range Typo ł͂ȂłBQłB + + Ȃ Q ͑̂œ{ QQ + ǖɗ–𑐂łB + 傫ĂˁI + ******************************************************************************/ + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef signed short s16; + + +// ************************************ +#define SYS_INTERVAL_TICK 1.953 + + + +// ************************************ +typedef enum _ERR +{ + ERR_SUCCESS = 0, + ERR_ERR +}err; + + +typedef enum _IMMED_TASK_ERR +{ + TSKI_FINISHED = 0, + TSKI_CONTINUE +}IMMED_TASK_ERR; + + + +/************************************** + C^[oN + *************************************/ +typedef void task_status; + + +/************************************** + Ñ^XNXg + p~ɂȂ邩Ȃ + *************************************/ +typedef IMMED_TASK_ERR task_status_immed; + + +#endif diff --git a/snake_branches/3.40_jane/renge/renge_task_config.rb b/snake_branches/3.40_jane/renge/renge_task_config.rb new file mode 100644 index 0000000..c2de509 --- /dev/null +++ b/snake_branches/3.40_jane/renge/renge_task_config.rb @@ -0,0 +1,59 @@ +#!/usr/bin/ruby -Ks + +tasklist = Array.new + + +if( ARGV[0] == nil ) + printf( "t@C renge_tasks.txt gp܂" ) + datfile = "renge_tasks.txt" +else + datfile = ARGV[0] +end + +if( !File.exist?( datfile ) ) + printf("ݒt@C‚܂B") + exit( 1 ) +end + + +setting = File.open( datfile ) + +setting.each{|dat| + dat.chomp! + if( dat != nil ) + tasklist << dat + end +} + +tasklist.each{|dat| + printf( "\n%s" , dat ) +} +printf( "\n----------\n^XN %d \n", tasklist.size ) + + +#----- ÓI^XN̗ ------------------------------------------------------- +conf = File.new( "renge_task_intval.h", "w+" ) + +conf << "/*XNvgɂ鎩łB蓮ŏȂ悢ł*/\n\n" +conf << "#ifndef __renge_task__\n#define __renge_task__\n\n" +conf << "#include \"renge_defs.h\"\n\n" + +conf << "enum {\n " +tasklist.each{|dat| + conf << "TSK_" << dat.upcase << ", " +} +conf << "TSK_LAST \n };\n\n" + + +tasklist.each{|dat| + conf << "extern void tsk_" << dat << "();\n" +} +conf << "\n" + +conf << "const void ( *tasks[ TSK_LAST ] )() = {\n" +tasklist.each{|dat| + conf << " tsk_" << dat << ",\n" +} +conf << " };\n" + +conf << "\n#endif\n" diff --git a/snake_branches/3.40_jane/renge/renge_task_immediate.h b/snake_branches/3.40_jane/renge/renge_task_immediate.h new file mode 100644 index 0000000..9ac3bd2 --- /dev/null +++ b/snake_branches/3.40_jane/renge/renge_task_immediate.h @@ -0,0 +1,25 @@ +#ifndef __tasks__ +#define __tasks__ + +#include "renge_defs.h" + +// ************************************* +#define TASK_IMMED_RUN_LIST_MAX 10 + + +extern task_status_immed tski_do_command0( ); +extern task_status_immed tski_ntr_pmic_comm(); +extern task_status_immed tski_acc_read(); +extern task_status_immed tski_acc_write(); +//extern task_status_immed tski_acc_setup(); // accero.h +extern task_status_immed tski_mcu_reset(); +extern task_status_immed tski_vol_update(); + + +// ************************************* +#define TSK_IMM_EMPTY_ ( void * )( 0x0000 ) +#define TSK_IMM_DELETED_ ( void * )( 0x0001 ) + + + +#endif diff --git a/snake_branches/3.40_jane/renge/renge_task_intval.h b/snake_branches/3.40_jane/renge/renge_task_intval.h new file mode 100644 index 0000000..9b0d9ea --- /dev/null +++ b/snake_branches/3.40_jane/renge/renge_task_intval.h @@ -0,0 +1,37 @@ +/*XNvgɂ鎩łB蓮ŏȂ悢ł*/ + +#ifndef __renge_task__ +#define __renge_task__ + +#include "renge_defs.h" + +enum TSK +{ + TSK_SW, TSK_ADC, TSK_BATT, TSK_LED_POW, TSK_LED_WIFI, TSK_LED_NOTIFY, TSK_LED_CAM, TSK_MISC, TSK_STATUS, TSK_SYS, TSK_LAST + }; + +extern void tsk_sw(); +extern void tsk_adc(); +extern void tsk_batt(); +extern void tsk_led_pow(); +extern void tsk_led_wifi(); +extern void tsk_led_notify(); +extern void tsk_led_cam(); +extern void tsk_misc(); +extern void tsk_status(); +extern void tsk_sys(); + +const void ( *tasks[ TSK_LAST ] )() = { + tsk_sw, + tsk_adc, + tsk_batt, + tsk_led_pow, + tsk_led_wifi, + tsk_led_notify, + tsk_led_cam, + tsk_misc, + tsk_status, + tsk_sys, + }; + +#endif diff --git a/snake_branches/3.40_jane/renge/renge_tasks.txt b/snake_branches/3.40_jane/renge/renge_tasks.txt new file mode 100644 index 0000000..73af545 --- /dev/null +++ b/snake_branches/3.40_jane/renge/renge_tasks.txt @@ -0,0 +1,11 @@ +sw +adc +batt +led_pow +led_wifi +led_notify +led_cam +misc +status +debug +sys diff --git a/snake_branches/3.40_jane/rtc.c b/snake_branches/3.40_jane/rtc.c new file mode 100644 index 0000000..dd2d1a9 --- /dev/null +++ b/snake_branches/3.40_jane/rtc.c @@ -0,0 +1,182 @@ +/* ======================================================== + RTC + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr +#pragma inline + +#endif + +#include "incs.h" + + +#define RTC_DATA_SIZE 7 +// ======================================================== +static u8 rtc_work[RTC_DATA_SIZE]; +static bit rtc_lock; +static bit rtc_dirty; +bit rtc_alarm_dirty; + + +/********************************************//** + ytF̏ + + WX^̓drrbg̃Zbg + ***********************************************/ +void RTC_init( void ) +{ + + if( !RTCEN ) // rbgĂ烊u[g + { + RTCEN = 1; // W[ON + + // RTCݒ + RTCC0 = bits8(0,0,0,0, 1,0,0,0); /* ~A24ԐA32kóu܂ȂvA荞݂Ȃ */ + // (RTCE 0 RCLOE1 RCLOE0 AMPM CT2 CT1 CT0) + RTCC1 = bits8(1,1,0,0, 0,0,0,0); /* A[荞ݗLJn */ + // (WALE WALIE 0 WAFG RIFG 0 RWST RWAIT) + RTCC2 = bits8(1,0,0,0, 0,0,0,0); /* C^[o:32k/2^6=2msARTCDIVo͂Ȃ */ + // (RINTE RCLOE2 RCKDIV 0 0 ICT2 ICT1 ICT0) + + HOUR = 0x00; + MIN = 0x00; + SEC = 0x00; + MONTH = 0x01; + DAY = 0x01; + WEEK = 0x01; // Mon + YEAR = 0x01; + + ALARMWW = 0x7F; + + vreg_ctr[VREG_C_MCU_STATUS] |= REG_BIT_RTC_BLACKOUT; + } + // 荞ݐݒ + RTCIF = 0; + RTCIIF = 0; + RTCMK = 1; /* 荞()֎~ */ + RTCIMK = 0; /* 荞(A[&C^[o) */ + + RTCE = 1; /* Jn */ + + RWAIT = 1; + while( !RWST ) + {;} + RWAIT = 0; + + rtc_lock = false; + rtc_dirty = false; + rtc_alarm_dirty = false; +} + + + +/********************************************//** + RTC A[荞 + ***********************************************/ +__interrupt void int_rtc( ) +{ + RWAIT = 1; + while( !RWST ) + {;} + // tw + if( ( vreg_ctr[VREG_C_RTC_ALARM_DAY] == DAY ) + && ( vreg_ctr[VREG_C_RTC_ALARM_MONTH] == MONTH ) + && ( vreg_ctr[VREG_C_RTC_ALARM_YEAR] == YEAR ) ) + { + set_irq( VREG_C_IRQ1, REG_BIT_RTC_ALARM ); + } + RWAIT = 0; +} + + + +/********************************************//** + RTC ̃[h + + WX^́Asec,min,hour,week,day,month,year ̏ + ***********************************************/ +void rtc_buf_refresh( ) +{ + if( !rtc_lock ) + { + rtc_lock = true; + RWAIT = 1; + while( !RWST ) + {;} + + memcpy( &vreg_ctr[VREG_C_RTC_SEC], &SEC, RTC_DATA_SIZE ); + RWAIT = 0; +// renge_task_immed_add( tski_rtc_close ); + } +} + + + +/********************************************//** + RTC ̃Cg + + set_rtc_close Ƒ΂ŎgĉB + + ‚̓obt@ɃRs[邾ŁA + ۂRTCɃZbĝset_rtc_close()łB + ***********************************************/ +void set_rtc( u8 adrs, u8 data ) +{ + if( !rtc_dirty ) + { + rtc_dirty = true; + memcpy( rtc_work, &SEC, RTC_DATA_SIZE ); +// renge_task_immed_add( tski_rtc_close ); // I2CIɍs + } + rtc_work[adrs] = data; +} + + + +/********************************************//** + KvȂ΁ARTCWX^̍XV + ***********************************************/ +// task_status_immed tski_rtc_close(){ +void rtc_unlock( ) +{ + // [hbN + rtc_lock = false; + + // CgbN + if( rtc_dirty ) + { + rtc_dirty = false; + RWAIT = 1; + while( !RWST ) + {;} + memcpy( &SEC, rtc_work, RTC_DATA_SIZE ); + RWAIT = 0; + } + + // A[Zbg + if( rtc_alarm_dirty ) + { + rtc_alarm_dirty = false; + WALE = 0; + ALARMWM = vreg_ctr[VREG_C_RTC_ALARM_MIN]; + ALARMWH = vreg_ctr[VREG_C_RTC_ALARM_HOUR]; + WALE = 1; + } +} + + + + +/********************************************//** + RTC VXe`bN^C}荞݃xN^ + + 2^6/fXTi1.953125 msj + ***********************************************/ +__interrupt void int_rtc_int( ) +{ +// renge_flg_interval ++; // CNg/fNg߂ĝ DI()sv + renge_flg_interval = 1; // set1߂ĝ DI()sv +} + diff --git a/snake_branches/3.40_jane/rtc.h b/snake_branches/3.40_jane/rtc.h new file mode 100644 index 0000000..a203e83 --- /dev/null +++ b/snake_branches/3.40_jane/rtc.h @@ -0,0 +1,24 @@ +#ifndef __rtc_h__ +#define __rtc_h__ + +// $Id: asdf$ + + +void RTC_init( void ); +void rtc_buf_refresh( ); +void set_rtc( u8 adrs, u8 data ); + +//task_status_immed tski_rtc_close(); +void rtc_unlock( ); + +// ------------------------------------ +#define RTC_32k_on() { /*RCLOE2 = 0;*/ RCLOE0 = 1; /*P1.2 = 0;*/ PM1.2 = 0; } +#define RTC_32k_off() { PM1.2 = 0; RCLOE0 = 0; } +#define RTC_32k_HI_Z() { PM1.2 = 1; } + + +// ------------------------------------ +extern bit rtc_alarm_dirty; + + +#endif diff --git a/snake_branches/3.40_jane/self_flash.c b/snake_branches/3.40_jane/self_flash.c new file mode 100644 index 0000000..a662d07 --- /dev/null +++ b/snake_branches/3.40_jane/self_flash.c @@ -0,0 +1,635 @@ +/* ======================================================== + ȃAbvf[^ + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt + +#endif + +#include "incs_loader.h" + +#include +#include "fsl_user.h" +#include "i2c_ctr.h" +#include "i2c_mcu.h" + +#include "pool.h" +#include "magic.h" + +#include "pm.h" +#include "WDT.h" +#include "util_funcs.h" + + +// ======================================================== +const u8 fsl_fx_MHz_u08 = 8; +const u8 fsl_low_voltage_u08 = 1; + + +// ȃtbVp[^ +#define SAM_BLOCK_SIZE 1024 + // 256oCgȏ͂܂Ƃ߂Ă܂B +#define SELF_UPDATE_BUFF_SIZE 256 +#define SELF_UPDATE_SPLIT_WRITE_NUM ( SAM_BLOCK_SIZE / SELF_UPDATE_BUFF_SIZE ) +#define SAM_WORD_SIZE 4 + +// ubNԍi1ubN1kBj +#define INACTIVE_BOOTSECT_TOP 4 +#define FIRM_TOP 8 +#define FIRM_SIZE 12 +#define ALTERNATE_FIRMTOP 20 + + +#ifdef _MCU_BSR_ +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICAPR0 IICAPR10 +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR1 IICAPR11 +#define IICCTL0 IICCTL01 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#endif + +#ifndef _WIN32 +#define LED_POW1 P4.2 +#define LED_PM_POW1 PM4.2 +#else +#define LED_POW1 mcuRegP[ _P4_2 ] +#define LED_PM_POW1 mcuRegPM[ _P4_2 ] +#endif + +// ======================================================== +static void FSL_Open( void ); +static void FSL_Close( void ); +void firm_restore( ); + +static err my_FSL_Init(); +static err firm_duplicate( u8 block_src, u8 block_dest ); + +#ifdef _DBG_LED_PRINT_ +void alert( u8 ); +void led_print( u8 ); +#else +# define alert( x ) ; +# define led_print( x ) ; +#endif + + +// ======================================================== +extern uni_pool pool; + + +// 0.Dȍ~ VAbvf[^ +// Vt@[͑vH +#define N_MGC_L 0x1FF6 +#define N_MGC_T 0x4FF6 + + + +/********************************************//** + I2CŎMāA + + ݁A + + `FbNOK@@Vt@[ɐ؂ւčċN + + @@@@NG@@ijt@[ɖ߂čċN + + i̊֐͖߂܂j + ***********************************************/ +void firm_update( ) +{ + u8 target_block; + u8 split_write_count; // ubNւ܂܏ރJE^ + + // ւO ///////////////////////////////////// + my_FSL_Init(); + + /* t@[̃obNAbv + JnAhXAݐ̐擪hubNԍh (TCY FIRM_SIZE) + 0x2000 - 0x4FFF + 0x5000 - 0x7FFF (ubN 20 - 31) ɃRs[ + */ + firm_duplicate( FIRM_TOP, + ALTERNATE_FIRMTOP ); + + // SubN폜 ///////////////////////////////////// + // df𔻒肷邽߁AŏɑSNX^ + //iVt@[ƂɎcĂAȑÕt@[̃tb^j + for( target_block = INACTIVE_BOOTSECT_TOP; + target_block < ALTERNATE_FIRMTOP; + target_block ++ ) + { + FSL_Erase( target_block ); + } + + + // ւ /////////////////////////////////////////// + // XgbvRfBV܂ő + // IAX^[gAbv[`ɔ + for( target_block = INACTIVE_BOOTSECT_TOP; + target_block < ALTERNATE_FIRMTOP; + target_block ++ ) + { + u8 my_spd; + +/* łɏĂBłȂƒfꂽƂIĂ邩ʏoȂ +// // Vt@[̈폜 +// FSL_Erase( target_block ); +*/ + // + for( split_write_count = 0; + split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; + split_write_count ++ ) + { + u8* p_buffer = &pool.self_update_work[0]; + u16 buff_written_size = 0; + + WDT_Restart( ); + + // I2C珑݃f[^obt@ɂ߂ + do + { + while( !IICAIF && !SPD ) + {;} + my_spd = SPD; + IICAIF = 0; + *p_buffer = IICA; + WREL = 1; + p_buffer ++; + buff_written_size ++; + } + while( ( buff_written_size != SELF_UPDATE_BUFF_SIZE ) + && !SPD ); + + my_spd += SPD; + + // + // ŌゾƁAS~pfBO邪ʂɂ܂Ȃ + if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE + + split_write_count * SELF_UPDATE_BUFF_SIZE ), + ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ) + + != FSL_OK ) + { + alert(1); + // ݌̃`FbNG[ + // XgA + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // Zbg + // FSL_SwapBootCluster( ); // u[gXbvuɁvċNďoȂ炵 + // ߂ĂȂ // + } + + if( my_spd != 0 ) + { + break; + } + } + + // 1ubN݊Bxt@Cs + if( FSL_IVerify( target_block ) != FSL_OK ){ + alert(2); + // ēx xt@CJԂ_ł... /// ďׂ݂H + // XgA + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // Zbg + // FSL_SwapBootCluster( ); // u[gXbvuɁvċNďoȂ炵 + // ߂ĂȂ // + } + + if( my_spd != 0 ) + { + break; + } + } + + LREL = 1; + + // 񂾃t@[̃`FbN // + { + u8 i; + u8 comp = 0; + + // [_[̃}WbNƁA{̖̃}WbN͓mF + for( i = 0; i < sizeof( __TIME__ ); i++ ) + { + comp += (u8)(( (*( __far u8 * ) ( N_MGC_L + i )) == (*( u8 * ) ( N_MGC_T + i ) )) ? 0 : 1); + } + if( *( __far u8 * )( N_MGC_L +2 ) != ':' ) // ς̂܂ + { + comp ++; + } + + if( comp == 0 ) + { + // OK! + FSL_InvertBootFlag( ); + FSL_SwapBootCluster( ); // ZbgɓBFSL_Close͕sv + } + else + { + // f[^(}WbNio[ĂȂ)G[ + // XgA + alert(3); + + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // Zbg + // FSL_SwapBootCluster( ); // u[gXbvuɁvċNďoȂ炵 + } + // ߂ĂȂ // + } +} + + + + +/********************************************//** +t@[obNAbv̈悩烊XgA܂B + +`FbNAŌ̍ŌŃu[gXbv̂ŁA +ł̓u[gXbv͕svłB + ***********************************************/ +void firm_restore( ) +{ + DBG_LED_on; + LED_PM_POW1 = 0; + + // obNAbv͐H // + { + u16 i; + u8 comp = 0; + + for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 炵 + { + comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_HEAD_BKUP + i ) ) ? 0 : 1; + comp += ( *( u8 * )( MGC_HEAD_BKUP + i ) == *( u8 * )( MGC_FOOT_BKUP + i ) ) ? 0 : 1; + } + if( *( u8 * )( MGC_FOOT_BKUP ) == 0xFF ) + { + comp ++; + } + + if( comp != 0 ) + { + // obNAbv̈ꂽ... + comp = 0; + + // 3.3VオȂƍ + EI( ); + iic_mcu_start( ); + RESET2_ast; + FCRAM_RST_ast; + GYRO_DISABLE(); + PM_LDSW_on(); + wait_ms( 1 + DELAY_PM_TW_PWUP ); + PM_VDD_on( ); + + while(1) + { + WDT_Restart(); + + { + // LED sRsR + comp++; + LED_POW1 = ( comp == 1 || comp == 3 )? 1: 0; + if( comp == 8 ) + { + comp = 0; + } + } + + { + // d{^œdoff + static u8 sw_hold_count; + + if( !SW_POW_n_RAW ) + { + sw_hold_count++; + } + else + { + sw_hold_count = 0; + } + + if( sw_hold_count > 16 ) + { + sw_hold_count = 0; + // doff + PM_LDSW_off( ); + + // pwsw҂ŐQ + KRM = ( KR_SW_POW ); // Mask ł͂ȂAMode + MK0 = 0xFFFF; + MK1 = ~( INT_MSK1_KR ); + MK2L = 0xFF; + + // PU5 ̂܂ + PU7 = bits8(0,0,0,0, 1,0,0,0); // PWSWI + PU20 = bits8(0,0,0,0, 0,0,0,0); // SW_HOME ~ + + STOP( ); + +// mcu_wdt_reset; // [v̂͂悭ȂƎv + +// while(1){ +// NOP(); // Ȃ +// } + } + } + + // EFCg + for( i = 1; i != 0; i++ ) + { + NOP(); + NOP(); + NOP(); + NOP(); + } + } + } + } + + // else{ // obNAbv͐Ă + + while( my_FSL_Init() != ERR_SUCCESS ){ // FSLs悤Ȃ~Ȃ... + // todo gC񐔏H + alert(1); + } + + /* t@[̃XgA + 0x4800 - 0x7FFF (ubN 18 - 27) + 0x2000 - 0x47FF (ubN 8 - 17) փRs[ + */ + if( firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ) != ERR_SUCCESS ) + { + alert(2); + } + DBG_LED_off; + + // todo XgAsALEDƂāAT[rXɂĂ炤H + + FSL_ForceReset(); // ZbgA߂ĂȂ +} + + + +/********************************************//** +tbV̏̂߂̑O + ***********************************************/ +static void FSL_Open( void ) +{ + /* save the configuration of the interrupt controller and set */ +#ifdef FSL_INT_BACKUP + fsl_MK0L_bak_u08 = MK0L; /* if (interrupt backup required) */ + fsl_MK0H_bak_u08 = MK0H; /* { */ + fsl_MK1L_bak_u08 = MK1L; /* */ + fsl_MK1H_bak_u08 = MK1H; /* save interrupt controller */ + fsl_MK2L_bak_u08 = MK2L; /* configuration */ + fsl_MK2H_bak_u08 = MK2H; /* */ + MK0L = FSL_MK0L_MASK; /* */ + MK0H = FSL_MK0H_MASK; /* */ + MK1L = FSL_MK1L_MASK; /* prepare interrupt controller */ + MK1H = FSL_MK1H_MASK; /* for selfprogramming */ + MK2L = FSL_MK2L_MASK; /* */ + MK2H = FSL_MK2H_MASK; /* } */ +#endif + + while( DST1 ){;} // DMA~ + DEN1 = 0; + + MK0 = 0xFFFF; + MK1 = 0xFFFF; + MK2 = 0xFFFF; +/* + LVIM = bits8(0,0,0,0, 0,0,1,0); + LVIS = bits8(0,0,0,0, 1,0,0,0); + LVIM = bits8(1,0,0,0, 0,0,1,0); +*/ + FSL_FLMD0_HIGH; // tbVւ +} + + + +/********************************************//** +tbV̏I + ***********************************************/ +static void FSL_Close( void ) +{ + // nH + + FSL_FLMD0_LOW; // tbVCgveNg + +#ifdef FSL_INT_BACKUP + MK0L = fsl_MK0L_bak_u08; /* do{ */ + MK0H = fsl_MK0H_bak_u08; /* restore interrupt controller */ + MK1L = fsl_MK1L_bak_u08; /* configuration */ + MK1H = fsl_MK1H_bak_u08; /* */ + MK2L = fsl_MK2L_bak_u08; /* */ + MK2H = fsl_MK2H_bak_u08; /* } */ +#endif +} + + + +/********************************************//** +@}CRŃt@[Rs[܂B + + __far u8 * p_rom Rs[̐擪AhX + + block_dest Rs[̐擪ubN + + Rs[ɏ悤my_FSL_Init炩ߎsKv܂B + ***********************************************/ +static err firm_duplicate( u8 block_src, + u8 block_dest ) +{ + u8 target_block; + u8 split_write_count; // ubNւ܂܏ރJE^ + __far u8* p_src = ( __far u8* )( block_src * 0x400 ); + u8 retry_error; + + led_print(1); + + // ݐubN̐JԂ + for( target_block = block_dest; + target_block < ( block_dest + FIRM_SIZE ); + target_block ++ ) + { + led_print(2); + WDT_Restart( ); + // ubN + retry_error = 5 + 1; + while( FSL_BlankCheck( target_block ) != FSL_OK ) + { + led_print(3); + FSL_Erase( target_block ); + if( -- retry_error == 0 ) + { + // tbVH + FSL_Close( ); + return ( ERR_ERR ); // ZbgA݂@ǂȂ邩m + } + } + + led_print(4); + // ݕJԂ + for( split_write_count = 0; + split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; + split_write_count ++ ) + { + u16 buff_written_size; + u8* p_buff; + + // ݃f[^obt@ɂ߂ + buff_written_size = 0; + p_buff = &pool.self_update_work[0]; + do + { + *p_buff = *p_src; + p_src ++; + p_buff ++; + buff_written_size ++; + } + while( buff_written_size != SELF_UPDATE_BUFF_SIZE ); + + // + if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE + + split_write_count * SELF_UPDATE_BUFF_SIZE ), + ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ) + != FSL_OK ) + { + // Jo̓u[g // + FSL_Close( ); + led_print(5); +// while(1){} + return ( ERR_ERR ); + } + } + led_print(6); + + // 1ubN݊Bd`FbNs + while( FSL_IVerify( target_block ) != FSL_OK ) + { + // Jo̓u[g // + led_print(7); + return ( ERR_ERR ); + } + } + return( ERR_SUCCESS ); + +} + + + +/********************************************//** +ƔœtbV̏ + ***********************************************/ +static err my_FSL_Init() +{ + u8 rv; + + RTCE = 0; + + // ւO // + DI( ); + FSL_Open( ); // 荞݋֎~Ȃ + + FSL_Init( &pool.self_update_work[0] ); // CuB荞ݒfl + rv = FSL_ModeCheck( ); // CgveNg`FbNBs邱Ƃl + + return( (err)rv ); +} + + +/********************************************//** +MCUZbg + +system_status.reboot ܂B + ***********************************************/ +task_status_immed tski_mcu_reset() +{ + // ʂɍċN + my_FSL_Init(); + + FSL_ForceReset(); // Zbg + FSL_Close( ); + + // یH // + mcu_wdt_reset; + return( ERR_SUCCESS ); // no reach +} + + + +/********************************************//** +ɃG[ۂLED_łăG[ʒm + +l悤ł͂ȂAIVȂǂŃpX`FbN + +fobKgȂԂȂ̂ LEDprintf fobÔ߁B + ***********************************************/ +#ifdef _DBG_LED_PRINT_ +// P1.5 = led_pow_red_old +void alert( u8 num ) +{ + u8 i; + + while(1) + { + WDT_Restart(); + LED_POW1 = 1; + for( i = 0; i < num; i++ ) + { + DBG_LED_on; + DBG_LED_off; + } + LED_POW1 = 0; + } +} + + +/********************************************//** +ɃG[ۂLED_łăG[ʒmiQj + +l悤ł͂ȂAIVȂǂŃpX`FbN + +fobKgȂԂȂ̂ LEDprintf fobÔ߁B + ***********************************************/ +void led_print( u8 num ) +{ + u8 i; + + DBG_LED_on; + for( i = 0; i < num; i++ ) + { + LED_POW1 = 1; + LED_POW1 = 0; + } + DBG_LED_off; +} +#endif diff --git a/snake_branches/3.40_jane/self_flash.h b/snake_branches/3.40_jane/self_flash.h new file mode 100644 index 0000000..768565e --- /dev/null +++ b/snake_branches/3.40_jane/self_flash.h @@ -0,0 +1,9 @@ +#ifndef _self_flash_h_ +#define _self_flash_h_ + + +void firm_update(); + + +#endif + diff --git a/snake_branches/3.40_jane/sw.c b/snake_branches/3.40_jane/sw.c new file mode 100644 index 0000000..19561a8 --- /dev/null +++ b/snake_branches/3.40_jane/sw.c @@ -0,0 +1,215 @@ +/* ======================================================== +XCb` +EHOME +EPOWER +EWiFi +̊Ď^XN + + $Id$ +======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" + +#include "i2c_twl.h" +#include "i2c_ctr.h" +#include "led.h" +#include "pm.h" +#include "rtc.h" +#include "sw.h" + + +//========================================================= +/* + vreg_ctrǂ݂̂Ńwb_ +#define INTERVAL_TSK_SW +#define CLICK_THRESHOLD + +#define HOLD_THREASHOLD +#define FORCEOFF_THREASHOLD +*/ +#define TIME_MUKAN ( u8)( 300 / INTERVAL_TSK_SW ) +#define TIME_MUKAN_PWSW_RED_TRIAL (u16)( 15000 / INTERVAL_TSK_SW ) // VAhome}XN + +//========================================================= +u16 SW_pow_count; +bit SW_pow_mask; + +static u8 SW_home_count, SW_wifi_count, SW_home_count_rel; +static u8 sw_wifi_mukan_time; + +u16 off_timeout_timer; + +static u16 sw_pwsw_mukan_time; + + + +/********************************************//** + Ԃ𐔂BςȂł0ɖ߂Ȃ + + mask0̎́Ax܂Ŗ + ***********************************************/ +#define count_sw_n( sw, counter, mask ) \ + { \ + if( sw ){ \ + mask = 0; \ + counter = 0; \ + }else{ \ + if( mask != 0 ){ \ + counter = 0; \ + }else{ \ + counter ++; \ + if( counter == 0 ) counter = -1; \ + } \ + } \ + } + + +/********************************************//** + NbN(`^O)BKvɉĊ荞 + ***********************************************/ +#define chk_clicked( button, count, irq_bit_name ) \ + if( !button ) \ + { \ + if( count < CLICK_THRESHOLD ) \ + { \ + count ++; \ + if( count == CLICK_THRESHOLD ) \ + { \ + count ++; \ + set_irq( VREG_C_IRQ0, irq_bit_name ); \ + } \ + } \ + } \ + else \ + { \ + count = 0; \ + } + + + +/********************************************//** + XCb`̊Ď + + @`^O͂˂AAgKȂǂ̌os + ***********************************************/ +void tsk_sw( ) +{ + static u8 task_interval; + + if( system_status.pwr_state == OFF_TRIG ) + { + SW_pow_count = 0; // dɔăNA +// task_interval = 0; + } + + if( system_status.pwr_state != ON_CHECK ) // 莞(PWSW_POWON_TIME)ẐŃvXP[@łȂƃ`^܂肫Ȃ + { + if( task_interval != 0 ) + { + task_interval--; + return; + // ܂ + } + + task_interval = (u8)( INTERVAL_TSK_SW / SYS_INTERVAL_TICK ) -1; // vXP[ɎgĂ܂ˁc + // -1̓|XgfNĝ߂̒ + } + + // 8ms ɂ܂ + switch ( system_status.pwr_state ) + { + case ( ON ): + case ( SLEEP ): + case ( OFF ): + case ( ON_CHECK ): + // @̏ꍇ + if( ! system_status.taikendai ) + { + // dXCb`̊Ď // + if( SW_pow_count == ( TIME_PWSW_CLICK ) ) // NbNԂɓB + { + if( is_wifi_calib_resets_ast ) // wifi Lu[VȂASoCɒʒmoffɑJ + { + system_status.pwr_state = OFF_TRIG; + } + if( SHELL_OPEN ) // PWSW IoĂ֌WŁAuW‚v ANbN͖ + { + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_CLICK ); + } + } + else if( SW_pow_count == ( HOLD_THREASHOLD ) ) // ɓB + { + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_HOLD ); + if( off_timeout_timer == 0 ) // dfJEg_EJnAxȂ悤ɁB + { + off_timeout_timer = vreg_ctr[ VREG_C_OFF_DELAY ] * 16; + } + } + + if( off_timeout_timer != 0 ) // 荞݌A^CAEgŋItB + { + off_timeout_timer --; + if( off_timeout_timer == 0 ) + { + force_off = true; + } + } + + }else{ + // X^hAV + // dXCb`̊Ď // + if( SW_pow_count == ( TIME_PWSW_CLICK ) ) + { + if( sw_pwsw_mukan_time == 0 ) + { + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_CLICK ); + // ȃ^C~OPWSWHOMEj[ɓĂ܂̂邽߂̃}XN^C}[ + sw_pwsw_mukan_time = TIME_MUKAN_PWSW_RED_TRIAL; + } + } + else if( SW_pow_count == ( HOLD_THREASHOLD ) ) + { + force_off = true; + } + + if( sw_pwsw_mukan_time != 0 ) + { + sw_pwsw_mukan_time--; + } + } + + // @Ě䋤 + count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // {^Ԃ̃JEg + + // HOME sw // + chk_clicked( SW_HOME_n, SW_home_count, REG_BIT_SW_HOME_CLICK ); + chk_clicked( !SW_HOME_n, SW_home_count_rel, REG_BIT_SW_HOME_RELEASE ); + + // wifi sw // + /// ňȎȂ̂͂킩Ă邪AsɏoĂ܂sǃXCb`~ + if( sw_wifi_mukan_time != 0 ) + { + sw_wifi_mukan_time--; + } + else + { + chk_clicked( SW_WIFI_n, SW_wifi_count, REG_BIT_SW_WIFI_CLICK ); + if( SW_wifi_count == CLICK_THRESHOLD +1 ) // 蔭I + { + sw_wifi_mukan_time = TIME_MUKAN; + } + } + break; + default: + break; + }// switch() +} + diff --git a/snake_branches/3.40_jane/sw.h b/snake_branches/3.40_jane/sw.h new file mode 100644 index 0000000..abe9715 --- /dev/null +++ b/snake_branches/3.40_jane/sw.h @@ -0,0 +1,20 @@ +#ifndef _sw_ +#define _sw_ + +#include "config.h" + +extern u16 SW_pow_count; +extern bit SW_pow_mask; + +#define INTERVAL_TSK_SW 8 +#define CLICK_THRESHOLD 5 + +#define HOLD_THREASHOLD (u16)( 3000 /INTERVAL_TSK_SW ) +#define TIME_PWSW_CLICK (u8)( 220 /INTERVAL_TSK_SW ) +#define FORCEOFF_THREASHOLD (u8)( 12000 /INTERVAL_TSK_SW /16 ) + + +extern u16 off_timeout_timer; +#define clear_pow_off_countdown(){ off_timeout_timer = 0; force_off = false; } + +#endif diff --git a/snake_branches/3.40_jane/task_debug.c b/snake_branches/3.40_jane/task_debug.c new file mode 100644 index 0000000..e5b502c --- /dev/null +++ b/snake_branches/3.40_jane/task_debug.c @@ -0,0 +1,122 @@ +/* ======================================================== + fobO^XN + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs_loader.h" +//#include "incs.h" +#include "renge\renge.h" +#include "pm.h" +#include "accero.h" + + +// ======================================================== +// 7ZO 4oCg +#define IIC_SLA_DBG_MONITOR 0x44 + + + +#if 0 // fobOj^p^XN + +ӁI@^XNXgOĂ܂̂ŁAgȂ畜ĉI + +/********************************************//** + fobOp^XN + ***********************************************/ +void tsk_debug( ) +{ +// u8 temp; + + /* + if( system_status.pwr_state == ON_TRIG ){ + { + static u8 count = 0; + // fobOLEDi8bitj̏ + temp = iic_mcu_read_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO ); + count ++; + iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, count ); + iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, count ); + } + } + */ + +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_IRQ1 ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, boot_ura ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_SND_VOL ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_3D ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, vreg_ctr[ VREG_C_3D ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_SND_VOL ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_STATUS ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] ); + + /* + { + u8 str[4]; + + if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) ) + { + str[3] = vreg_ctr[ VREG_C_FREE0 ]; + str[2] = vreg_ctr[ VREG_C_FREE1 ]; + str[1] = vreg_ctr[ VREG_C_STATUS ]; + str[0] = vreg_ctr[ VREG_C_RTC_SEC ]; + + str[3] = vreg_ctr[ VREG_C_SND_VOL ]; + str[2] = vreg_ctr[ VREG_C_3D ]; + str[1] = vreg_ctr[ VREG_C_ACC_CONFIG ]; + str[0] = SEC; + iic_mcu_write( IIC_SLA_DBG_MONITOR, 0x03, 4, &str ); + } + } + */ +} + +#endif + + +#if 0 // ^XNЂȌ` +/********************************************//** +^XNЂȌ` + ***********************************************/ +task_interval tsk_hina( ) +{ + switch ( system_status.pwr_state ) + { + case ON_CHECK: + case ON_TRIG: + case ON: + case SLEEP: + case OFF_TRIG: + default: + } + + return; // tic Ă΂邱ƂɂȂ܂ +} + + +// |C^ʼn炤̂͊댯ȋCĂ +/* ̂悤Ɏg + renge_task_immed_add( ^XN֐ւ̃|C^ ); +*/ + +/********************************************//** +^XNЂȌ`(s) + ***********************************************/ +task_status_immed tski_hina( u8 * arg ) +{ + return ( TSKI_FINISHED ); + // TSKI_FINISHED ^XN폜 + // TSKI_CONTINUE ɂȂ񂩊荞݂ȂA[U[ȂAVXe`bN + // Ƃɍēxs +} + + +#endif diff --git a/snake_branches/3.40_jane/task_misc.c b/snake_branches/3.40_jane/task_misc.c new file mode 100644 index 0000000..edbecca --- /dev/null +++ b/snake_branches/3.40_jane/task_misc.c @@ -0,0 +1,429 @@ +/* ======================================================== + ̑Gȃ^XN + ^XN𕪂₷ȂC邪A\[X̖ŕȂ + + $Id: task_misc.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ + +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" +#include "renge\renge.h" +#include "pm.h" + +#include "accero.h" +#include "adc.h" +#include "i2c_mcu.h" +#include "led.h" +#include "vreg_twl.h" + + + +#ifdef _MCU_BSR_ +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR0 IICAPR11 +#define IICAPR1 IICAPR01 +#define IICCTL0 IICCTL10 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#define TRC TRC1 +#define SMC SMC1 +#define DFC DFC1 +#endif + +// ======================================================== +extern void f(); // X^bN̍Ō𓾂 + + +// ======================================================== +bit twl_ver_read; // twl home menuverǂ񂾂݊J[lɊ荞݂邽 +bit going_to_sleep; // SoCAsleepɓʒm炤Bslp_i HԂ0ɂȂ + // X[v畜AłȂȂ̂h + + +// eXgp +bit reserve_pedo_increnent; + + +// ======================================================== +static void update_LED_3D(); +static void check_twl_vol_irq(); + + + +/********************************************//** + PiŃ^XNɂȂGȏ + - xZT荞݂̎肱ڂmF(Ö) + - TWL PM݊WX^ւ݂̏Γǂ݂ɍs + - ݊J[lTWL`[̋Nʒm + - TWL̉ʕω荞݂`FbN + - 3Dv̍XV + - (HAL) vA₷ + - (fobO) SELWDTZbg𔭐 + ***********************************************/ +void tsk_misc( ) +{ + // 荞݂̎肱ڂH + if( ACC_VALID && ( ( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_ACCERO_ERR ) == 0 )) + { + if( renge_task_immed_add( tski_cbk_accero ) == ERR_SUCCESS ){ + // dbg_nop(); + } + } + + if( system_status.pwr_state == ON ) + { + /* ======================================================== + PM݊WX^ւ̏ + |[OőΉ + ======================================================== */ + if( !PM_IRQ_n ) + { + renge_task_immed_add( tski_ntr_pmic_comm ); + // dbg_nop(); + } + + /* ======================================================== + TWL`[NƂCTRm肽炵 + ======================================================== */ + if( twl_ver_read ) + { + twl_ver_read = false; + set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); + } + + // TWL ̉ʕω荞݃`FbN // + check_twl_vol_irq(); + } + + // 3D vXV // + update_LED_3D(); + +#ifdef _ENABLE_HAL_ + // fobOHAL ₷ // + if( reserve_pedo_increnent ) + { + reserve_pedo_increnent = 0; + hosu_increment_if_necessary(); + } +#endif + +#ifdef _ENABLE_PRESS_SEL_TO_WDT_ + if(( system_status.pwr_state == ON ) + || ( system_status.pwr_state == SLEEP )) + { + static u16 timer; + if( !SW_SEL_n ) + { + timer += 1; + if( timer == 2000 ) + { + DI(); + timer = 0; + while(1) + { + NOP(); // ̂WDT + } + } + } + } +#endif + + //. X^bNeXg +// f(); +} + + + +/********************************************//** +TWLVol̂ƁAXC_̑삪obeBO +sN鎖Ah + + TWLł͒ʏ펞A{^8iKBɍ킹Ċ荞݂B + ***********************************************/ +void check_twl_vol_irq() +{ + static u8 vol_level_twl_sent; + static u8 mabiki; + + if( !is_TWL ) + { + return; + // ܂ + } + + if( mabiki != 0 ) + { + mabiki--; + return; + // ܂ + } + + mabiki = 9; // 1t[͊J + if( vol_level_twl != vol_level_twl_sent ) + { + vol_level_twl_sent = vol_level_twl; + set_irq( VREG_C_IRQ2, REG_BIT_SLIDE_VOL_ACROSS_TWL_BOUNDARY ); + } +} + + +/********************************************//** +3DvXV + ***********************************************/ +void update_LED_3D() +{ + if( system_status.pwr_state != ON ) + { + LED_duty_3d = 0; + return; + // ܂ // + } + + if( vreg_ctr[VREG_C_LED_3D] == LED_3D_ILM_OFF ) + { + if( LED_duty_3d != 0 ) + { + LED_duty_3d --; + } + } + else + { + if( LED_duty_3d != vreg_ctr[VREG_C_LED_BRIGHT] ) + { + if( LED_duty_3d < vreg_ctr[VREG_C_LED_BRIGHT] ) + { + LED_duty_3d ++; + } + else + { + LED_duty_3d --; + } + } + } +} + + + + +/********************************************//** + COMMANDWX^ւ̏ + + 0ȂĂ΂܂BPAsv + + - sleep ʒm() + - ZbgnR}h + ***********************************************/ +task_status_immed tski_do_command0( ) +{ + u8 temp_command; + + // command0 {̓dȂ + DI_wt_chk(); + temp_command = vreg_ctr[VREG_C_COMMAND0]; + vreg_ctr[VREG_C_COMMAND0] = 0; + EI(); + + // SLPO(SoC->mcu) 񓯊̂߁ApX[ɂȂĂ܂Amcu SoC̈u + // X[vooASLPIgOoȂB炩ߒʒmĂ炢A + // ^CAEgsB + if( temp_command & REG_BIT_GOING_TO_SLEEP ) + { + going_to_sleep = true; + } + + // ZbgñR}h // + if( ( temp_command & ( REG_BIT_OFF_REQ | REG_BIT_RESET1_REQ | REG_BIT_FCRAM_RESET_REQ | REG_BIT_RESET2_REQ )) != 0x00 ) + { + if( temp_command & REG_BIT_OFF_REQ ) + { + system_status.pwr_state = OFF_TRIG; + } + else + { + if( temp_command & REG_BIT_RESET1_REQ ) + { + PM_reset_ast( ); + RESET2_ast; + FCRAM_RST_ast; + } + if( temp_command & REG_BIT_RESET2_REQ ) + { + RESET2_ast; + if( vreg_twl[ REG_TWL_INT_ADRS_MODE ] == 0 ) + { + FCRAM_RST_ast; // twlntr[hœ삵Ă + } + // TWL[hDS[hւ̐؂ւɃZbg + // IRQǂ܂Ȃꍇ̂TWLWX^ + vreg_twl_init(); + } + if( temp_command & REG_BIT_FCRAM_RESET_REQ ) + { + FCRAM_RST_ast; + } + wait_ms( 5 ); // ԉ҂ + FCRAM_RST_neg; + PM_reset_neg(); + RESET2_neg; + + // CODEC s背WX^ // + codec_reg_init(); + } + } +/* + X[vvɓdOFFEZbgR}h͗܂ + if( vreg_ctr[VREG_C_COMMAND0] != 0 ) + { + return ( TSKI_CONTINUE ); + } +*/ + return ( TSKI_FINISHED ); +} + + + +/* fobOEeXgp ============================== */ +u16 _dbg_rcomp; +extern u8 raw_adc_temperature; + +extern u8 iic_burst_state; +extern bit temp_zone_charge_disable; +extern bit bt_authorized; + + + + +#define KOUMOKU 19 + +static u8 infos_bits[2]; +static u8 infos_temp[5]; + +static const u8 *infos_table[ KOUMOKU ] = { + &infos_temp[0], /* 0 */ + &pmic_version, + (u8*)&battery_manufacturer, + &mgic_version[0], + &mgic_version[1], + &infos_temp[1], /* 5 */ + &raw_adc_temperature, + &infos_temp[2], + &infos_temp[3], + (u8*)&system_status.family, /* 9 */ + &infos_bits[0], /* 10 */ + (u8*)&LED_duty_pow_blu, + (u8*)&LED_duty_3d, + (u8*)&LED_duty_notify_red, + (u8*)&LED_duty_notify_grn, + (u8*)&LED_duty_notify_blu, /* 15 */ + &infos_bits[1], + (u8*)&LED_duty_WiFi, + &infos_temp[4] /* 18 */ + /* ڑƂ KOUMOKU ɒ */ +}; + +/********************************************//** +@fobOpɃXe[^XԂBigXe[^X 0x7Fj + +@Ԓl̓f[^̂ + + oĂ鏇́A + + - 1) vbgtH[ + - 2) PMIC o[W + - 3) dr[J[ + - 4) KXQ[Wo[W + - 5) V + - 6) ( rcomp & 0xFF ) + - 7) raw_adc_temperature + - 8) ( !temp_zone_charge_disable | ( bt_authorized << 1 ) ) + - 9) m点LED̓tJ[H + - 10) system_status.family + ***********************************************/ +u8 extinfo_read(void) +{ + u8 ret = 0xFF; + + /* + * temp͌vZKvȃf[^Bɗ]TȂ̂ŌvZKv + * ϐ́Av/svɊւ炸vZ|V[ + */ + + if( iic_burst_state < KOUMOKU ) + { + infos_temp[0] = system_status.captureBox? ( system_status.is_dev? MODEL_IS_CAPTURE :MODEL_KUC_CAPTURE ) + : ( system_status.is_dev? MODEL_IS_DEBUGGER: (u8)system_status.model ); + infos_temp[1] = (u8)( _dbg_rcomp & 0xFF ); + infos_temp[2] = ( !temp_zone_charge_disable | ( bt_authorized << 1 ) ); + infos_temp[3] = 1; /* dlύXɂ1ŒɂȂ */ + infos_temp[4] = 0 +// | ( PM_EXTDC_n ? REG_BIT_HAL0_PM_EXTDC_n : 0 ) // status0ɂ + | ( BT_IN_CHG_n ? REG_BIT_HAL0_BT_IN_CHG_n : 0 ) + | ( BT_CHG_Ena_n ? REG_BIT_HAL0_RSV_5 : 0 ) // 󂫃rbggp,out pin + | 0 // WL_TX gȂ +// | ( SHELL_OPEN ? REG_BIT_HAL0_SHELL_OPEN : 0 ) // status0ɂ + | ( SW_WIFI_n ? REG_BIT_HAL0_SW_WIFI_n : 0 ) + | ( SW_HOME_n ? REG_BIT_HAL0_SW_HOME_n : 0 ) + | ( SW_POW_n ? REG_BIT_HAL0_SW_POW_n : 0 ); + + infos_bits[0] = (u8)LED_pow_red; + infos_bits[1] = (u8)LED_CAM; + + ret = *infos_table[iic_burst_state]; + +#if 0 +// debug // + /// VXeɋ@펯ʂʼnR‚ + if( iic_burst_state == 9 ) + { + ret = (u8)FAMILY_FLOWER; + } +#endif + iic_burst_state ++; + } + + return ret; +} + + +#ifdef i2c_timeout_test +/********************************************//** +ifobOpjI2C_mcu ɃvgRᔽ(g`)oꂽSLED_Ēʒm + ***********************************************/ +void i2c_mcu_error_monitor() +{ + LED_duty_pow_blu = 0xff; + LED_duty_3d = 0xff; + LED_duty_notify_red = 0xff; + LED_duty_notify_grn = 0xff; + LED_duty_notify_blu = 0xff; + LED_pow_red = 1; + LED_CAM = 1; +} +#endif + diff --git a/snake_branches/3.40_jane/task_status.c b/snake_branches/3.40_jane/task_status.c new file mode 100644 index 0000000..0de3bf4 --- /dev/null +++ b/snake_branches/3.40_jane/task_status.c @@ -0,0 +1,89 @@ +/* ******************************************************** + ꕔ̃Xe[^XWX^XVAKvɉĊ荞݂܂B + + $Id$ +********************************************************* */ + +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs_loader.h" +#include "renge\renge.h" + +#include "pm.h" + +#include "accero.h" +#include "adc.h" +#include "i2c_mcu.h" +#include "led.h" + + +/********************************************//** + Xe[^XWX^́A + - WJ + + Ŋ荞݂KvłΔ܂B + todo: H + ***********************************************/ +void tsk_status( ) +{ + static u8 state_old; // Xe[^Xωo荞 ̈ + u8 diff; + + // WJ`FbN + set_bit_if( SHELL_OPEN, vreg_ctr[VREG_C_STATUS], REG_BIT_ST_SHELL_OPEN ); + + // Xe[^XWX^֌W 荞 // + // pm.c ŁȀōs܂B + // REG_BIT_LCD_ON/OFF + // REG_BIT_BL_ON/OFF + // REG_BIT_BT_DC_CONNECT/DISC + // REG_BIT_BT_CHG_START/STOP + + diff = (u8)( vreg_ctr[VREG_C_STATUS] ^ state_old ); + if( diff != 0 ) + { + state_old = vreg_ctr[VREG_C_STATUS]; + + if( system_status.pwr_state == ON ) + { + if( diff & REG_BIT_BATT_CHARGE ) + { + // [dԔf + if( is_bt_charging ) // set_irqʁXɌĂԕRpNg + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_START ); + } + else + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_STOP ); + } + } + } + + if(( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP ) + ) + { + if( diff & REG_BIT_ST_SHELL_OPEN ) + { + // W̊J‚ + if( is_shell_open ) + { + set_irq( VREG_C_IRQ0, REG_BIT_SHELL_OPEN ); + } + else + { + set_irq( VREG_C_IRQ0, REG_BIT_SHELL_CLOSE ); + } + } + } + } +} + diff --git a/snake_branches/3.40_jane/task_sys.c b/snake_branches/3.40_jane/task_sys.c new file mode 100644 index 0000000..ba7733d --- /dev/null +++ b/snake_branches/3.40_jane/task_sys.c @@ -0,0 +1,685 @@ +/* ======================================================== + task_sys + dĩ^XN + + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" + +#include "i2c_twl.h" +#include "i2c_ctr.h" +#include "led.h" +#include "accero.h" +#include "pm.h" +#include "rtc.h" +#include "sw.h" +#include "adc.h" +#include "self_flash.h" +#include "i2c_mcu.h" +#include "vreg_twl.h" + + +//========================================================= +#define WAIT_SHIROBAKO_POW_CONTROL 240 + + +//========================================================= +extern void nop8(); + + +static void chk_emergencyExit(); +static void force_off_check(); +static void send_getup_to_soc(); +#ifdef _DBG_CHK_OFF_LEAK_ +static void leak_check(); +#endif + + + +//========================================================= +extern bit info_led_off; +extern bit going_to_sleep; +extern bit bt_authorized; + +static u8 timeout_sleep; +extern u8 chg_led_override; + +#ifdef i2c_timeout_test +extern bit i2c_mcu_time_out_error; +#endif + + +//========================================================= +#define PWSW_POWON_TIME (u8)( 20 / SYS_INTERVAL_TICK ) // [ms] // INTERVAL_TSK_SW ŊȂBl珬̂ +#define PWSW_ON_CHECK_TIMEOUT 100 // K donׂ̈ɓdXCb`삳ꂽƂA̎Ԍo߂mcuȓd͂ɖ߂ + + + +/********************************************//** + d̗グX[vȂǂǗ + ***********************************************/ +void tsk_sys( ) +{ + static u8 pwsw_timeout = 0; // d{^`^OB@^CAEg܂łɓdm肵Ȃoffɖ߂ + + hal_update(); + + switch ( system_status.pwr_state ) + { + case ON_CHECK: //------------------------------------------------------- + // dfJEg_E^C}NA + clear_pow_off_countdown(); + + // ̊荞݂HALT(X[v) ^@A_v^L + + // dXCb`HALT // + if( system_status.poweron_reason == RSN_PWSW ) + { + if( PM_EXTDC_n ) + { + // A_v^Ȃ + if( SW_pow_count != 0 ) + { + pwsw_timeout = 0; + } + else + { + pwsw_timeout ++; + } + + if( pwsw_timeout > PWSW_ON_CHECK_TIMEOUT ) + { + SW_pow_count = 0; + system_status.pwr_state = OFF_TRIG; // XCb`̓mCYBQB + renge_task_interval_run_force = true; + return; + } + } + else + { + BT_chk(); + } + + + if( SW_pow_count < PWSW_POWON_TIME ) + { + // ԂZēdonɓBĂȂ + return; + } + } + // else { if( system_status.poweron_reason == RSN_TRIALAc ) d } + + SW_pow_mask = true; // pwswςȂœd/ JԂȂ悤 + + // d // + iic_mcu_start( ); + + bt_force_update = false; + BT_chk(); // @obe̔AdrcIC̐ݒ + +#ifndef _ALLOW_NOBATT_ + if( system_status.model == MODEL_JIKKI_NOBATT ) + { + renge_task_interval_run_force = true; + system_status.pwr_state = OFF_TRIG; + return; + } +#endif + + // cʃ`FbN + BT_get_left(); // ɁABT_chk()sĂKv܂B + if( +// ( vreg_ctr[VREG_C_BT_REMAIN] < 1 ) // Ŕ肷ƓdrقƂǖƂ +// // A_v^ĂNłȂȂႤ + ( vreg_ctr[VREG_C_BT_VOLTAGE] < ( V_TH_ZERO / 256 ) ) // dr + ) + { + // drȂ̂ŋNȂ(d`FbNĂ) + renge_task_interval_run_force = true; + system_status.pwr_state = OFF_TRIG; + return; + } + + // |[g̕ݒ@dOɁB + PM_SW_WIFI_n = 1; + PM_SW_HOME_n_JIKKI = 1; + PM_WL_TX = 1; + PM_SW_SEL_n = 1; + PM_ACCEL_INT1 = 1; + PM_ACC_VALID = 1; + + if( PM_sys_pow_on( ) != ERR_SUCCESS ) + { // dNsƒG[ + renge_task_interval_run_force = true; + system_status.pwr_state = OFF_TRIG; + return; + } + + // ܂ŗƁAdm // + // vAbvon + PU_BT_IN_CHG_n = 1; + PU7 = bits8(0,0,0,1, 1,1,0,1); // 4:SW_WIFI 3:SW_PWSW 2:PM_IRQ 0:PM_EXTDC_n + PU_SW_HOME_n_JIKKI = 1; // SW_HOME + + reset_release(); + + if( system_status.poweron_reason == RSN_PWSW || + system_status.poweron_reason == RSN_TRIAL ) + { + // d{^łon̎́ALED_ + vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO; + } + else + { + // Ƃ肠ALEDԂŋN + vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_OFF; + } + + system_status.pwr_state = ON_TRIG; + + PM_LCD_vcom_set( ); // LCD̑ΌdlȂǏ + + break; + + case ON_TRIG: //------------------------------------------------------- +#ifdef i2c_timeout_test + LED_duty_pow_blu = 0; // debug + LED_duty_3d = 0; + LED_duty_notify_red = 0; + LED_duty_notify_grn = 0; + LED_duty_notify_blu = 0; + LED_pow_red = 0; + LED_CAM = 0; + i2c_mcu_time_out_error = false; +#endif + + /// łׂł́H + // vAbvon + PU_BT_IN_CHG_n = 1; + PU7 = bits8(0,0,0,1, 1,1,0,1); // 4:SW_WIFI 3:SW_PWSW 2:PM_IRQ 0:PM_EXTDC_n + PU_SW_HOME_n_JIKKI = 1; // SW_HOME + + IIC_ctr_Init( ); + IIC_twl_Init( ); + + vreg_twl_init( ); + vreg_ctr_reset( ); + + KRM = bits8(0,0,0,0, 0,0,0,0); + PIF0 = 0; + + system_status.poweron_reason = NONE; + renge_task_interval_run_force = true; + + MK0 = INT_MSK0_RSV; + MK1 = INT_MSK1_RSV; + + iic_mcu_start(); + +// MK2 = ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ ); +// PMK21 = 0; // wifi gȂ + PMK6 = 0; // pm_irq + + // u[gAXe[^X덇킹 + if( system_status.reboot ) + { + u8 bl_status_temp; + + // LCD donH Xe[^X̍XVB + /// t@[XVAKtoffH + if( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ) + { + vreg_ctr[ VREG_C_STATUS ] |= REG_BIT_LCD_POW; + // LCD_AMOL_HV_CTRL = 1; svBt@[XVAsԂ͕ێ̂߁B + } + + // obNCg_ĂH@Xe[^X̍XVB + bl_status_temp = read_pmic( PM_REG_ADRS_BL ); + vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 ); + + // obe{̎ + BT_chk(); + } + + LED_init( ); // reboot́BT_Chk,BT_chkɍs + + system_status.reboot = 0; + system_status.pwr_state = ON; + + // WDTZbgAI2C̏܂Ŋ荞ݕۗ + // قƂ͂ɂׂȂ... + if( ( vreg_ctr[ VREG_C_MCU_STATUS ] & REG_BIT_STATUS_WDT_RESET ) != 0 ) + { + set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET ); + } + + break; + + case ON: //--------------------------------------------- + // PMICɂ鋭df`FbN + // fobKreset1AT[g邱ƂB̂Ƃ͑SZbg + chk_emergencyExit(); + + // SLPĎ + if( going_to_sleep ) // ΂ SLP_REQ ̑Oɗ\ + { + timeout_sleep ++; + if( timeout_sleep == 0 || // I[o[t[ҁBsleepČLjuŋNċC‚Ȃ + ( PIF0 && !SLP_REQ )) // slp荞݂CANĂ܂ + { + PIF0 = 0; + send_getup_to_soc(); + } + if( PIF0 && SLP_REQ ){ + PIF0 = 0; + PM_VDD_ecoMode(); + system_status.pwr_state = SLEEP; + renge_task_interval_run_force = true; + } + } + + // offJEg + force_off_check(); + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) // A_v^玩œdoff + { + if( PM_EXTDC_n ) + { + system_status.pwr_state = OFF_TRIG; + } + } +#endif + + break; + + case SLEEP: //------------------------------------------ + chk_emergencyExit(); + // X[v畜A + if( !SLP_REQ ){ + PM_VDD_normMode(); + wait_ms( 5 ); // tdly_sw + send_getup_to_soc(); + system_status.pwr_state = ON; + } + + force_off_check(); +// leak_check(); + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) // A_v^玩œdoff + { + if( PM_EXTDC_n ) + { + system_status.pwr_state = OFF_TRIG; + } + } + break; // ł悢B +#else + /* FALLTHROUGH */ +#endif + + default: //--------------------------------------- + system_status.pwr_state = OFF_TRIG; // 蓾ȂXe[gBfobOp +// dbg_nop(); + /* FALLTHROUGH */ + + case OFF_TRIG: //--------------------------------------- + // LED҂ + vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ILM_OFF; + vreg_ctr[ VREG_C_LED_WIFI ] = WIFI_LED_OFF; + vreg_ctr[ VREG_C_LED_3D ] = LED_3D_ILM_OFF; + info_led_off = true; + if( LED_duty_pow_blu != 0 ) + { + return; + } + + // dfJEg_E^C}NA + clear_pow_off_countdown(); + + // xZT~ + vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x00; + tski_acc_setup(); + EI(); // DIԂłė̂ŁAI2C_mcu ̂ɕKv + + // ̑ytF~ + LED_stop( ); + IIC_ctr_Stop( ); + IIC_twl_Stop( ); + RTC_32k_off(); + +// dI̊荞݃Zbg +// PWSW KR3 L +// BG24 KR4 +// ӂJ INTP5 ‚L +// ACA_v^ INTP4 A_v^L +// RTC + while( iic_mcu_busy ) + {;} + + // irq}XNݒ + KRM = ( KR_SW_POW ); // Mask ł͂ȂAModeȂ̂B킵 + MK0 = ~( INT_MSK0_EXTDC | INT_MSK0_WDTI ); + MK1 = ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL ); // INT_MSK1_RTCALARM | RTCA[ + MK2L = 0xFF; + + // irqtONA + vreg_ctr[VREG_C_IRQ0] = 0; + vreg_ctr[VREG_C_IRQ1] = 0; + vreg_ctr[VREG_C_IRQ2] = 0; + vreg_ctr[VREG_C_IRQ3] = 0; + + // PU5 ̂܂ + PU7 = bits8(0,0,0,0, 1,0,0,1); // PWSWI,PM_EXTTDC,( IRQ0_deactive(), PM_IRQ_deactive ) + PU_SW_HOME_n_JIKKI = 0; // SW_HOME ~ + + IF0 = 0; + IF1 = 0; + IF2 = 0; + + IRQ0_disable; + + PM_sys_pow_off( ); // dJbgIt + + // |[gނ~[hɁBHłALo͂ɂȂႾ߂ȁB + SW_WIFI_n_RAW = 0; + PM_SW_WIFI_n = 0; + + SW_HOME_n_JIKKI_RAW = 0; + PM_SW_HOME_n_JIKKI = 0; + + WL_TX = 0; + PM_WL_TX = 0; + + SW_SEL_n = 0; + PM_SW_SEL_n = 0; + + ACCEL_INT1 = 0; + PM_ACCEL_INT1 = 0; + ACC_VALID = 0; + PM_ACC_VALID = 0; + + system_status.pwr_state = OFF; + SW_pow_mask = true; + SW_pow_count = 0; + + // HALfobOZbg@YƓdonoȂȂ邱Ƃc + hal_reset(); + /* FALLTHROUGH */ + + case OFF: + // Fł͓d{^d͂܂B + + system_status.poweron_reason = NONE; + pwsw_timeout = 0; + LCD_AMOL_HV_CTRL = 0; // ُIAAt@XLCDpd؂YĂ܂ + + + if( !PM_EXTDC_n + || chg_led_override != 0 ) // ꂪ[ɂȂ܂ő҂ + { + // A_v^L /////////////////////////////// ܂́AA_v^ĂRb͏[dLED_Ă + + // d{^`FbN + system_status.poweron_reason = RSN_PWSW; + system_status.pwr_state = ON_CHECK; + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + // VȂ玩œdē + if( system_status.taikendai ) + { + vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0; + wait_ms(46); // pmic̓dēdl̂ + system_status.poweron_reason = RSN_TRIAL; + system_status.pwr_state = ON_CHECK; + } +#endif + } + else + { + // A_v^Ȃ /////////////////////////////// + + // ȓd͂ֈڍs + iic_mcu_stop( ); + pm_chk_adapter(); + PM_Chg_Stop(); + + bt_force_update = true; + + while( RWST ) + {;} + + // 荞ݑ҂ŐQ // + RTCIMK = 1; // systickpC^[o^C}[荞݃}XN + +#ifdef _DBG_CHK_OFF_LEAK_ + leak_check(); +#endif + CKC = bits8(0,0,0,0, 1,0,0,1); // 4MHzɗƂ(bit0)STOPȂĂ͂ȂȂ + OSMC = bits8(0,0,0,0, 0,0,0,0); // 5MHzȉ[hցB + + if( PM_EXTDC_n_RAW ) // ǂ^C~Oő}N邱ƂBHALʂȂׂioffłj + { + STOP(); + } + + // N // + // N + // EKeyReturn荞݁id{^j + // ERTCA[iݕj + + // NbNA + OSMC = bits8(0,0,0,0, 0,0,0,1); // 8MHz쏀 + renge_flg_interval = 0; + hal_update(); + + CKC = bits8(0,0,0,0, 1,0,0,0); // OSMC.FSEL = 1 3clkȏJ + + // NŔH + if( !PM_EXTDC_n ){ + system_status.pwr_state = OFF; // ĂāAON_CHECKɍs + } +/* // RTCA[B + else if( vreg_ctr[ VREG_C_IRQ1 ] & REG_BIT_RTC_ALARM ) + { + system_status.poweron_reason = RSN_RTC_ALARM; + system_status.pwr_state = ON_CHECK; + } + // else if( ̊荞݂œdon ){ + // 󑼂̗vł͋NȂ + // } +*/ + else // if( !SW_POW_n ) // iȊOȂjd{^ŋN + { + SW_pow_mask = false; + system_status.poweron_reason = RSN_PWSW; + system_status.pwr_state = ON_CHECK; + } + + RTCIMK = 0; // sys tick ^C}[L + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) + { + system_status.pwr_state = OFF_TRIG; + } +#endif + } + } +} + + + +/********************************************//** + PMICdُŎ~߂mF + + ***********************************************/ +static void chk_emergencyExit(){ + static u8 shirobako_power_control_count; + + // wifi W[Lu[V[hreset1牺ĂƂ̓`FbNpX + if( is_wifi_calib_resets_ast ) + { + return; + } + + if( shirobako_power_control_count == 0 ) + { + if( !RESET1_n ) // PM_chk_LDSW() I2C_mgpARXg + { + if( !PM_chk_LDSW() ) + { + // ZbgĂ + /// PMICُIf + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + } + else + { + // ̎d + shirobako_power_control_count = 1; + } + } + } + else + { + if( shirobako_power_control_count == WAIT_SHIROBAKO_POW_CONTROL ) // }WbNio[ + // fobKBreset1܂ł͖ + { + if( RESET1_n ) // ZbglQ[g҂ + { + shirobako_power_control_count = 0; + } + else + { + // nothing to do + } + } + else if( shirobako_power_control_count == 200 ) // * (sys_tick)[ms] + // fobK炵 + { +#ifndef _RVD_ + // ͓d؂肽炵 + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + shirobako_power_control_count = WAIT_SHIROBAKO_POW_CONTROL; +#endif + } + else + { + if( !RESET1_n ) + { + if( shirobako_power_control_count != 255 ) + shirobako_power_control_count ++; + } + else + { + // (TS{[hŎ蓮/fobK)Zbg炵 + send_cmd_pmic( PM_REG_ADRS_BL, 0 ); + vreg_ctr[VREG_C_STATUS] = ( vreg_ctr[VREG_C_STATUS] & bits8(1,0,0,1, 1,1,1,1) ); + vreg_ctr[VREG_C_COMMAND0] |= REG_BIT_RESET1_REQ; + renge_task_immed_add( tski_do_command0 ); + shirobako_power_control_count = WAIT_SHIROBAKO_POW_CONTROL; + } + } + } +} + + + +/********************************************//** + - d{^ + - dr؂ + - dr + + ł̋OFFBƉs\ + ***********************************************/ +static void force_off_check() +{ + if( force_off ) + { + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + } +} + + + +/********************************************//** + SoCN + +@@dʏɖ߂ĂĂʼnB + ***********************************************/ +void send_getup_to_soc() +{ + going_to_sleep = false; + timeout_sleep = 0; +#ifdef _MODEL_CTR_ + SLP_ACK = 1; + nop8(); + SLP_ACK = 0; +#endif +} + + + + +/********************************************//** + ȃAbvf[g firm_update() ĂԁiisrsłȂ̂Łj + + task_status_immed^ Ԃ悤ɂ΂̂ł... + ***********************************************/ +task_status_immed tski_firm_update(){ + firm_update(); + return( ERR_SUCCESS ); +} + + + +#ifdef _DBG_CHK_OFF_LEAK_ +/********************************************//** + pinݒ~X`FbN + ***********************************************/ +static void leak_check() +{ + volatile u8 ports_i[12]; + volatile u8 ports_o[12]; + + ports_i[0] = ( PM0 & PU0 & ~P0 ); // vAbv؂YH + ports_i[1] = ( PM1 & PU1 & ~P1 ); + ports_i[2] = 0; + ports_i[3] = ( PM3 & PU3 & ~P3 ); + ports_i[4] = ( PM4 & PU4 & ~P4 ); + ports_i[5] = ( PM5 & PU5 & ~P5 ); + ports_i[6] = 0; + ports_i[7] = ( PM7 & PU7 & ~P7 ); + ports_i[8] = ( PM12 & PU12 & ~P12 ); + ports_i[9] = ( PM14 & PU14 & ~P14 ); + ports_i[10] = 0; + ports_i[11] = ( PM20 & PU20 & ~P20 ); + + ports_o[0] = ( ~PM0 & P0 ); // H o͂Ă邩 + ports_o[1] = ( ~PM1 & P1 ); + ports_o[2] = ( ~PM2 & P2 ); + ports_o[3] = ( ~PM3 & P3 & ~POM3 ); + ports_o[4] = ( ~PM4 & P4 ); // bit3chg_enȂ̂1ł悢 + ports_o[5] = ( ~PM5 & P5 ); + ports_o[6] = ( ~PM6 & P6 ); + ports_o[7] = ( ~PM7 & P7 ); + ports_o[8] = ( ~PM12 & P12 ); + ports_o[9] = ( ~PM14 & P14 ); + ports_o[10] = ( ~PM15 & P15 ); + ports_o[11] = ( ~PM20 & P20 ); + NOP(); // u[Nu +} +#endif _DBG_CHK_OFF_LEAK_ diff --git a/snake_branches/3.40_jane/user_define.h b/snake_branches/3.40_jane/user_define.h new file mode 100644 index 0000000..413773b --- /dev/null +++ b/snake_branches/3.40_jane/user_define.h @@ -0,0 +1,214 @@ +#ifndef _USER_DEF_ +#define _USER_DEF_ + +// $Id: asdf$ + +#define IIC_T_SLAVEADDRESS 0x4A +#define IIC_C_SLAVEADDRESS 0x4A +#define IIC_C_SLAVEADDRESS_DMY 0x4C + +//#define IIC_SLA_DCP 0x50 + +#define bits8(a,b,c,d,e,f,g,h) ( a<<7 | b<<6 | c<<5 | d<<4 | e<<3 | f<<2 | g<<1 | h ) + +#ifndef _WIN32 +// @‹ + +#ifdef _debug_led_ +/*spflΉȍ~AncłȂȂ̂Ŏg܂ +# define DBG_LED_on { PM2.1 = 0; P2.1 = 1; } +# define DBG_LED_off { P2.1 = 0; } +# define DBG_LED_toggle ( P2.1 ^= 1 ) +# define DBG_LED2_on { PM2.2 = 0; P2.2 = 1; } +# define DBG_LED2_off { P2.2 = 0; } +# define DBG_LED2_toggle ( P2.2 ^= 1 ) +*/ +#else +# define DBG_LED_on ; +# define DBG_LED_off ; +# define DBG_LED_toggle ; +# define DBG_LED2_on ; +# define DBG_LED2_off ; +# define DBG_LED2_toggle ; +#endif // _debug_led_ + +#define IIC_SLA_CODEC 0xA4 +#define IIC_SLA_ACCEL 0x30 // ST LIS331DLH + + +#define SLP_ACK P7.7 + + +// PMx0ŏo̓[h + +// SoC +#define IRQ0_ast { P7.6 = 0; PM7.6 = 0; } // B4 +#define IRQ0_neg { P7.6 = 1; } +#define IRQ0_enable { PM7.6 = 0; } +#define IRQ0_disable { PM7.6 = 1; } +#define IRQ0 ( P7.6 ) + + +// h~ +#define RESET1_n ( P0.0 ) // G7 + +#if 1 // iPM_RESET1gAWiFiW[̃eXg̎͒ +# define RESET1_ast { P0.0 = 0; PM0.0 = 0; } +# define RESET1_neg { PM0.0 = 1; } +#endif + +#define RESET2_ast { P0.1 = 0; PM0.1 = 0; } // F7 +#define RESET2_neg { PM0.1 = 1; } + +#define SLP_REQ P12.0 // H8 + +// CTR,SPFL,SNAKE,܂ʔh@ +#define DEV_DET ( P12 & 0b00000110 ) // [2:1] = D8,C8 +#define DEV_CTR ( 0b00 << 1 ) +#define DEV_SPFL ( 0b01 << 1 ) +#define DEV_SNAKE ( 0b10 << 1 ) +#define DEV_RSV2 ( 0b11 << 1 ) + +// FCRAM +#define FCRAM_RST P3.0 // B6 +#define FCRAM_RST_ast { P3.0 = 0; } +#define FCRAM_RST_neg { P3.0 = 1; } + +// CODEC +#define PM_IRQ_n P7.2 // A3 +// INTP6 + +// PM +#define PM_EXTDC_n_RAW P7.0 // B2 +// INTP7 +//#define BT_TEMP P15.0 // G3(a) +// ANI8 +//#define BT_DET P15.1 // H2(a) +// ANI9 +#define BT_DET_P P1.6 // D4 +#define BT_TEMP_P P1.7 // C4 + + +// SPFL̃At@XLCDŕKvȁ}15V̓dB +#define LCD_AMOL_HV_CTRL P20.2 // F2 + + +// [d(out) +// _łBӁB +#define BT_CHG_ENABLE() ( P4.3 = 0 ) // F6 +#define BT_CHG_DISABLE() ( P4.3 = 1 ) +#define BT_CHG_Ena_n ( P4.3 ) + +// [d(in) +#define BT_IN_CHG_n_RAW P5.1 // B1 +#define PM_BT_IN_CHG_n PM5.1 +#define PU_BT_IN_CHG_n PU5.1 + +#define SW_WIFI_n_RAW P7.4 // C3 +#define PM_SW_WIFI_n PM7.4 +// KR4 +#define SW_POW_n_RAW P7.3 // B3 +// KR3 +#define SW_SEL_n P2.3 // G5 +#define PM_SW_SEL_n PM2.3 +//#define VOL P2.7 // H4(a) +// ANI7 + +#define SW_HOME_n_JIKKI_RAW P20.4 // G2 +#define PM_SW_HOME_n_JIKKI PM20.4 +#define PU_SW_HOME_n_JIKKI PU20.4 + +// INTP22 +#define SW_HOME_n_TSBOARD_RAW P2.0 // TS}U[pull up(P2͓p.u.) // G6 +#define PM_SW_HOME_n_TSBOARD PM2.0 + +// WiFi +#define WL_TX P20.3 // INTP21 // F3 +#define PM_WL_TX PM20.3 // INTP21 + +//#define VOL_P P2.1 // E5 open +//#define VOL_N P2.2 // F5 V + +//#define LED_CAM P1.0 // TO02 // E4 +//#define LED_WIFI P1.1 // TO03 // E3 +//#define LED_NOTIFY P1.3 // TO05 // D3 +//#define LED_3D P5.2 // SLTO TO01 // A2 +//#define LED_POW2 P1.4 // TO06 ( ) // D2 +//#define LED_POW1 P1.5 // TO07 ( ) // D1 +//#define LED_CHARGE P2.4 // H5 + +// P5.3 ɉAP5.5, P140 P141 +// P140o͐pȂ̂... +#define I2C_PU_on() { P14 |= 0x03; PM5.3 = 0; PM3.3 = 0; } // P14[1:0] H6,H7 P5.3,3.3 A1,C5 +#define I2C_PU_off() { PM5.3 = 1; PM3.3 = 1; P14 &= ~0x03; } + +#define GYRO_ENABLE() P5.0 = 0 // C1 +#define GYRO_DISABLE() P5.0 = 1 + +//#define I2C_M_SDA P3.1 // SDA10 // C6 +//#define I2C_M_SCL P3.2 // SCL10 // B5 + +//#define I2C_0_SCL P6.0 // IIC_TWL SCL0 // A7 +//#define I2C_0_SDA P6.1 // SDA0 // A6 + +//#define I2C_1_SCL P20.0 // IIC CTR SCL1 // E1 +//#define I2C_1_SDA P20.1 // SDA1 // F1 + +//#define 32kHz_O P1.2 // RTCCL // E2 +//#define 32k_I1 P12.3 // XT1 // F8 +//#define 32k_I2 P12.4 // XT2 // G8 + +// @AJ@AV䔻ʁB +#define DIPSW ( P4 & 0b00000011 ) // mini cube & \tgEFAfBbvXCb` TOOL0,1B P4.0 L ӁI +#define DIPSW_CTR 0b11 // gp +#define DIPSW_ISDEV 0b00 // KuCBattGaugeŔ +#define DIPSW_TAIKENDAI 0b10 +#define DIPSW_TAIKENDAI_NBD 0b01 + + +#define SHELL_OPEN_RAW P7.1 // INTP5 ӂJ (‚L) // C2 + +#define ACC_VALID P20.5 // H3 +#define PM_ACC_VALID PM20.5 +#define ACCEL_INT1 P2.5 // F4 +#define PM_ACCEL_INT1 PM2.5 + + +#endif // _WIN32 + +// win32 sim‹Ƌ + +#define KR_SW_POW ( 1 << 3 ) +#define KR_SW_WIFI ( 1 << 4 ) + +/////////////////////////////////////////////////////////// +#ifdef _WDT_CHECK_ +# define INT_MSK0_WDTI 1<<15 +#else +# define INT_MSK0_WDTI 0 +#endif + +#define INT_MSK0_IIC_M_DMA 1<<12 +#define INT_MSK0_SHELL 1<<7 +#define INT_MSK0_EXTDC 1<<6 +//#define INT_MSK0_SLP 1<<2 +#define INT_MSK0_RSV ~( INT_MSK0_IIC_M_DMA | INT_MSK0_SHELL | INT_MSK0_EXTDC | INT_MSK0_WDTI ) + +#define INT_MSK1_KR 1<<11 +#define INT_MSK1_RTCINTVAL 1<<10 +#define INT_MSK1_RTCALARM 1<<9 +#define INT_MSK1_ADC 1<<8 +#define INT_MSK1_IIC_CTR 1<<3 +#define INT_MSK1_IIC_MCU 1<<0 +#define INT_MSK1_RSV ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL | INT_MSK1_RTCALARM | INT_MSK1_ADC \ + | INT_MSK1_IIC_CTR | INT_MSK1_IIC_MCU ) + +#define INT_MSK2_WIFI_TX_KE3 1<<4 +#define INT_MSK2L_RSV ~( INT_MSK2_WIFI_TX_KE3 ) + +#define INT_MSK2_IIC_TWL 1<<8 +#define INT_MSK2_WIFI_TX_BSR 1<<10 +#define INT_MSK2_CODEC_PMIRQ 1<<3 +#define INT_MSK2_RSV ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ ) + +#endif // dupe include guard diff --git a/snake_branches/3.40_jane/util_funcs.c b/snake_branches/3.40_jane/util_funcs.c new file mode 100644 index 0000000..2edea63 --- /dev/null +++ b/snake_branches/3.40_jane/util_funcs.c @@ -0,0 +1,65 @@ +/* ======================================================== + util_funcs + + Gȃ[eBeB֐ + + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#pragma opc + +#endif +#include "incs_loader.h" +#include "wdt.h" + + + +/********************************************//** + Pʂ ms + + NOP񂷂Aw莞CPU *L܂* B + + 荞݂ƂƂ̕x܂B + + 덷܂B + ***********************************************/ +void wait_ms( u8 ms ){ + u16 fine; + + WDT_Restart(); + while( ms != 0 ){ + ms--; + fine = 860; + while( fine != 0 ){ + fine --; + } + } +} + + + + +extern unsigned char get_ei(); + +#ifdef _DI_WITH_CHECK_ +/********************************************//** + ł 荞݋֎~ԉ`FbNĂ犄荞݋֎~ɂ + + ]̌ʁAA#ifdef Ń`FbN DI + ***********************************************/ +void DI_wt_chk() +{ + if( !get_ei() ) + { + dbg_nop(); + } + DI(); +} +#endif // _DI_WITH_CHECK_ diff --git a/snake_branches/3.40_jane/util_funcs.h b/snake_branches/3.40_jane/util_funcs.h new file mode 100644 index 0000000..4229413 --- /dev/null +++ b/snake_branches/3.40_jane/util_funcs.h @@ -0,0 +1,16 @@ +#ifndef _util_funcs_h_ +#define _util_funcs_h_ + + +void wait_ms( u8 ); + + +# ifdef _DI_WITH_CHECK_ +void DI_wt_chk(); +# else +# define DI_wt_chk() DI() +# endif /* _DI_WITH_CHECK_ */ + + +#endif + diff --git a/snake_branches/3.40_jane/voltable.c b/snake_branches/3.40_jane/voltable.c new file mode 100644 index 0000000..4d2e14a --- /dev/null +++ b/snake_branches/3.40_jane/voltable.c @@ -0,0 +1,64 @@ +/* ======================================================== + voltable.c + + $Id$ + ======================================================== */ +#include "incs.h" + +#define _10db_ + + + +/********************************************//** + XC_l CODEC ɃZbgہAőVol̊֌W + KɃXP[OKv + + yȂ̂Ńe[u + ***********************************************/ + + + +#ifdef _10db_ +// max -10db +const u8 slider_to_codec[64] = +{ + 127, 126, 125, 124, 122, 121, 120, 119, + 118, 117, 116, 114, 113, 112, 111, 110, + 109, 108, 106, 105, 104, 103, 102, 101, + 100, 98, 97, 96, 95, 94, 93, 92, + 90, 89, 88, 87, 86, 85, 83, 82, + 81, 80, 79, 78, 77, 75, 74, 73, + 73, 72, 71, 70, 69, 67, 66, 65, + 64, 63, 62, 61, 59, 58, 57, 56 + }; +#endif + +#ifdef _15db_ +// max -15db +const u8 slider_to_codec[64] = +{ + 127, 127, 127, 127, 127, 126, 125, 123, + 122, 121, 120, 119, 118, 117, 116, 115, + 114, 113, 112, 110, 109, 108, 107, 106, + 105, 104, 103, 102, 101, 100, 99, 97, + 96, 95, 94, 93, 92, 91, 90, 89, + 88, 87, 86, 85, 84, 83, 82, 81, + 80, 79, 78, 77, 76, 75, 74, 73, + 71, 70, 69, 68, 67, 66, 66, 66 +}; +#endif + +#ifdef _4db_ +// max -4db +const u8 slider_to_codec[64] = +{ + 127, 127, 126, 125, 123, 122, 121, 119, + 118, 117, 115, 114, 112, 111, 110, 108, + 107, 106, 104, 103, 101, 100, 99, 97, + 96, 94, 93, 92, 90, 89, 88, 86, + 85, 83, 82, 81, 79, 78, 77, 75, + 74, 72, 71, 70, 68, 67, 66, 64, + 64, 63, 61, 60, 59, 57, 56, 54, + 53, 52, 50, 49, 48, 46, 44, 44 +}; +#endif diff --git a/snake_branches/3.40_jane/voltable.h b/snake_branches/3.40_jane/voltable.h new file mode 100644 index 0000000..6ff34ab --- /dev/null +++ b/snake_branches/3.40_jane/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/3.40_jane/vreg_ctr.c b/snake_branches/3.40_jane/vreg_ctr.c new file mode 100644 index 0000000..aae1669 --- /dev/null +++ b/snake_branches/3.40_jane/vreg_ctr.c @@ -0,0 +1,638 @@ +/* ======================================================== + + CTR MCU I2CWX^ + + $Id$ + ====================================================== */ +#include "incs.h" +#include "vreg_ctr.h" +#include "rtc.h" +#include "led.h" +#include "accero.h" +#include "pm.h" +#include "pool.h" +#include "vreg_twl.h" +#include "sw.h" +#include "WDT.h" + +#include +#include "fsl_user.h" + + + + +extern u8 extinfo_read(); // task_misc.c + +extern u8 iic_burst_state; // o[XgANZX鎞̃JE^ +extern bit info_led_pattern_updated; // m点LED̃p^[擪ɖ߂ + +extern bit pedolog_overflow; +extern bit reserve_pedo_increnent; + + + +// ******************************************************** +u8 vreg_ctr[VREG_C_ENDMARK_]; + +static u8 vreg_free_adrs; // AhXł̂ł΂炭͂ +bit irq_readed; // AAA^̂߁B + + + +// ******************************************************** +extern task_status_immed tski_firm_update(); +extern task_status_immed tski_mcu_reset(); +extern unsigned char get_ei(); + + + +// ******************************************************** +#ifdef _MCU_BSR_ +#define IICAMK IICAMK1 +#endif + + +/********************************************//** + + + [̏l̎w肪KvȃAhX + + }CRZbgɌĂ΂܂ + ***********************************************/ +void vreg_ctr_init( ) +{ + vreg_ctr[ VREG_C_VCOM_T ] = VCOM_DEFAULT_T; + vreg_ctr[ VREG_C_VCOM_B ] = VCOM_DEFAULT_B; + + vreg_ctr[ VREG_C_OFF_DELAY ] = FORCEOFF_THREASHOLD; + + vreg_ctr[ VREG_C_VOL_CAL_MIN ] = 0x36; + vreg_ctr[ VREG_C_VOL_CAL_MAX ] = 0xFF - 0x36; +} + + +/********************************************//** + lZbg + + VXeZbgɌĂ΂܂ + ***********************************************/ +void vreg_ctr_reset( ) +{ + vreg_ctr[ VREG_C_MCU_VER_MAJOR ] = MCU_VER_MAJOR | 0x10; + vreg_ctr[ VREG_C_MCU_VER_MINOR ] = MCU_VER_MINOR; + +// vreg_ctr[ VREG_C_STATUS ] &= bits8(0,0,0,1, 1,1,1,1); + vreg_ctr[ VREG_C_LED_BRIGHT ] = 0xFF; + vreg_ctr[ VREG_C_LED_POW ] = 0; + vreg_ctr[ VREG_C_LED_WIFI ] = 0; + vreg_ctr[ VREG_C_LED_CAM ] = 0; + vreg_ctr[ VREG_C_LED_3D ] = 0; + { + u8 i; + for( i = 0; i < sizeof( uni_info_LED ); i++ ) + { + info_LED.bindata[ i ] = 0; + } + } + + vreg_ctr[ VREG_C_WIFI_CALIB ] = 0; + // ł̂͋Cc + RTC_32k_on(); + RESET1_neg; + RESET2_neg; + FCRAM_RST_neg; +} + + + +/********************************************//** + I2CzWX^ɏ܂B + + @ adrs ͓AhX + + @ȂAhXɃANZXꍇA܂B + + 񂾌ʁAI2C_mcuʐMꍇArenge_task_immed_add() + gpȂƁAI2C_mcugpŃG[IꍇɃgC܂B + ***********************************************/ +void vreg_ctr_write( u8 adrs, u8 data ) +{ + switch ( adrs ) + { + + case VREG_C_COMMAND0: + if( data != 0 ) + { + renge_task_immed_add( tski_do_command0 ); + vreg_ctr[ VREG_C_COMMAND0 ] |= data; + } + break; + + case VREG_C_COMMAND2: + // 炩̊荞݂҂ĂȂłB #--) ̂߂̊荞݂ + // td + if(( data & REG_BIT_CMD_LCD_ON ) != 0 ) + { + renge_task_immed_add( tski_PM_LCD_on ); + } + else if(( data & REG_BIT_CMD_LCD_OFF ) != 0 ) + { + renge_task_immed_add( tski_PM_LCD_off ); + } + + // obNCgݒ + /// ̂Ƃ낳ɍׂ͕Ȃǁc + if(( data & REG_BITS_CMD_BL ) != 0 ) + { + renge_task_immed_add( tski_PM_BL_set ); + vreg_ctr[adrs] = (u8)( data & REG_BITS_CMD_BL ); + } + break; + + case VREG_C_COMMAND1: + if( data != 0 ) + { + // u8 temp; ԕϐg΂łȂ... + // TWLɊ荞݂ + /// ۂɊ荞݂̂SoC + /// rbg̕тႤʓ| + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] = ( ( data & REG_BIT_SEND_TWL_PWSW_DET ) != 0 ) ? REG_BIT_TWL_IRQ_PWSW_DET : 0x00; //pwsw_det + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_RESET_DET ) != 0 ) ? REG_BIT_TWL_IRQ_RESET : 0x00; //reset_req + + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_OFF_DET ) != 0 ) ? REG_BIT_TWL_IRQ_OFF : 0x00; //off_req + + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_BATT_LOW ) != 0 ) ? REG_BIT_TWL_IRQ_BT_LOW : 0x00; //batt_low + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_BATT_EMPTY ) != 0 ) ? REG_BIT_TWL_IRQ_BT_EMPTY : 0x00; //batt_empty + + if(( data & REG_BIT_SEND_TWL_VOL_CLICK ) != 0 ) + { + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= REG_BIT_TWL_IRQ_VOL_CHANGE; //vol_changed + } + } + break; + + case VREG_CX_FREE_DATA: + if( vreg_free_adrs < VREG_C_FREE_SIZE ) + { + pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ] = data; + vreg_free_adrs ++; + } + else + { + dbg_nop(); + } + break; + + case VREG_CX_FREE_ADRS: + vreg_free_adrs = data; + break; + + case VREG_C_LED_POW: + if( iic_burst_state == 0 ) + { + vreg_ctr[ VREG_C_LED_POW ] = data; + iic_burst_state ++; + } + else if( iic_burst_state < 5 ) + { + led_red_batt_empty.dats[ iic_burst_state -1 ] = data; + iic_burst_state ++; + } + break; + + case VREG_C_LED_WIFI: + case VREG_C_LED_CAM: + case VREG_C_LED_3D: + vreg_ctr[adrs] = (u8)( data & 0x0F ); + break; + + case VREG_C_LED_NOTIFY_DATA: + if( iic_burst_state < sizeof( uni_info_LED ) ) + { + if(( iic_burst_state == 1 ) && ( data == 0 )) // fade_time == 0 ֎~ + { + data = 1; + } + info_LED.bindata[ iic_burst_state ] = data; + iic_burst_state ++; + if( iic_burst_state > 4 ) // p^[1ł + { + info_led_pattern_updated = true; + } + } + break; + + case VREG_C_MCU_STATUS: +// vreg_twl[ REG_TWL_INT_ADRS_MODE ] = (u8)( ( data >> 6 ) & 0x03 ); Rł悢B̑胊ZbgŃNA + vreg_ctr[ VREG_C_MCU_STATUS ] &= data; // bitNA͂邪Zbg͂ȂB + // ̕twlWX^~[͓ǂݏoꎞɍ + break; + + case VREG_C_VCOM_T: + case VREG_C_VCOM_B: + renge_task_immed_add( tski_vcom_set ); + vreg_ctr[adrs] = data; + break; + + case VREG_C_DBG03: + if( ( vreg_ctr[VREG_C_DBG01] == 'j' ) + && ( vreg_ctr[VREG_C_DBG02] == 'h' ) + && ( data == 'l' ) ) + { + renge_task_immed_add( tski_firm_update ); + IICAMK = 1; + } + vreg_ctr[ VREG_C_DBG03 ] = data; + break; + + /// 񓯊œĂ邽߂ł͏ȂB + // \񂷂邾stopŏ + case VREG_C_RTC_SEC: + case VREG_C_RTC_MIN: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x7F ); + break; + + case VREG_C_RTC_DAY: + case VREG_C_RTC_HOUR: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x3F ); + break; + + case VREG_C_RTC_YOBI: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x07 ); + break; + + case VREG_C_RTC_MONTH: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x1F ); + break; + + case VREG_C_RTC_YEAR: + set_rtc( adrs - VREG_C_RTC_SEC, data ); + break; + + case VREG_C_RTC_COMP: + WDT_Restart(); + while(1) + { + RWAIT = 1; + while( !RWST ){} + if( SEC != 0 ) + { + break; + } + RWAIT = 0; + } + SUBCUD = data; + RWAIT = 0; + vreg_ctr[ VREG_C_RTC_COMP ] = data; + break; + + case VREG_C_RTC_ALARM_MIN: + rtc_alarm_dirty = true; + vreg_ctr[ VREG_C_RTC_ALARM_MIN ] = (u8)( data & 0x7F ); + break; + + case VREG_C_RTC_ALARM_HOUR: + rtc_alarm_dirty = true; + vreg_ctr[ VREG_C_RTC_ALARM_HOUR ] = (u8)( data & 0x3F ); + break; + + // ł悢 + case VREG_C_RTC_ALARM_DAY: + vreg_ctr[ VREG_C_RTC_ALARM_DAY ] = (u8)( data & 0x3F ); + break; + + case VREG_C_RTC_ALARM_MONTH: + vreg_ctr[ VREG_C_RTC_ALARM_MONTH ] = (u8)( data & 0x1F ); + break; + + case VREG_C_ACC_CONFIG: + renge_task_immed_add( tski_acc_setup ); + vreg_ctr[ VREG_C_ACC_CONFIG ] = data; + break; + + case VREG_C_ACC_R_ADRS: + renge_task_immed_add( tski_acc_read ); + vreg_ctr[ VREG_C_ACC_R_ADRS ] = data; + break; + + case VREG_C_ACC_W_BUF: + renge_task_immed_add( tski_acc_write ); + vreg_ctr[ VREG_C_ACC_W_BUF ] = data; + break; + + case VREG_C_ACC_HOSU_SETTING: + if( ( data & 0x01 ) != 0 ) + { + clear_hosu_hist(); // NA + } + break; + + case VREG_C_WIFI_CALIB: + if( data & REG_BIT_WIFI_CALIB_32K_HI_Z ) + { + RTC_32k_HI_Z(); + } + else{ + RTC_32k_on(); + } + if( data & REG_BIT_WIFI_CALIB_RSTS_AST ) + { + RESET1_ast; + // RESET2_ast; RESET1̂݁B + // FCRAM_RST_ast; + } + else{ +/* + SoC ~܂Ă܂̂łɗȂ + RESET1_neg; + RESET2_neg; + FCRAM_RST_neg; +*/ + } + vreg_ctr[ VREG_C_WIFI_CALIB ] = data; + break; + + case VREG_C_COMMAND3: + switch ( data ) + { +#ifdef _ENABLE_COMMAND3_ + case 'r': + // 荞݃[`FSLCuĂԂ̂͋֎~ + // }CRċNB@WX^ނB + renge_task_immed_add( tski_mcu_reset ); + break; + + case 'w': + // WDTōċNieXgj +// mcu_wdt_reset; // ̃R}hgӖȂłI + while(1) + { + dbg_nop(); + } + break; +#endif //_ENABLE_COMMAND3_ + +#ifdef _ENABLE_HAL_ + case 'p': + reserve_pedo_increnent = 1; + // ő₷ɂ̓X^bNȂBŗ\̂݁Atask_miscŏ +// hosu_increment_if_necessary(); // A + break; +#endif //_ENABLE_HAL_ + + } +// vreg_ctr[ VREG_C_COMMAND3 ] = data; // KvȂ + break; + + case VREG_C_RBR_CONTROL: +// vreg_ctr[ VREG_C_RBR_CONTROL ] = data; // todo debug u[N|Cgu߁BAt[WX^ + break; + + + // read only ////////////////////////////////////////// + case VREG_C_MCU_VER_MAJOR: + case VREG_C_MCU_VER_MINOR: + case VREG_C_3D: // ɃtbV + case VREG_C_SND_VOL: // ɃtbV + case VREG_C_BT_TEMP: // ɃtbV + case VREG_C_BT_REMAIN: // ɃtbV + case VREG_C_BT_REMAIN_FINE: // ɃtbV + case VREG_C_BT_VOLTAGE: // ɃtbV + case VREG_C_STATUS_1: // KɃtbV + case VREG_C_STATUS: // KɃtbV + case VREG_C_IRQ0: // ̂‚łɊ荞݋NĂقȂ... + case VREG_C_IRQ1: + case VREG_C_IRQ2: + case VREG_C_IRQ3: + case VREG_C_IRQ4: + case VREG_C_LED_NOTIFY_FLAG: // tbV + case VREG_C_RTC_SEC_FINE_L: // tbV + case VREG_C_RTC_SEC_FINE_H: // tbV + // VREG_C_ACC_RESERVE, // NȂ + // VREG_C_ACC_HOSU_HIST = 0x4F, + case VREG_C_ACC_XH: // tbV + case VREG_C_ACC_XL: + case VREG_C_ACC_YH: + case VREG_C_ACC_YL: + case VREG_C_ACC_ZH: + case VREG_C_ACC_ZL: +// dbg_nop(); + // return( ERROR ) + break; + + case VREG_C_ACC_HOSU_L: // ĂǁAfobOpB(AhX0x4B == mcu sla(r)) +// dbg_nop(); + /* FALLTHROUGH */ + + // ʂɏ邾 ///////////////////////////////// + default: + /* + case VREG_C_IRQ_MASK0: + case VREG_C_IRQ_MASK1: + case VREG_C_IRQ_MASK2: + case VREG_C_IRQ_MASK3: + case VREG_C_IRQ_MASK4: + case VREG_C_DBG01: + case VREG_C_DBG02: + case VREG_C_LED_BRIGHT: + case VREG_C_ACC_HOSU_L: + case VREG_C_ACC_HOSU_M: + case VREG_C_ACC_HOSU_H: + case VREG_C_ACC_HOSU_HOUR_BOUNDARY: + case VREG_C_FREE_ADRS: + case VREG_C_RTC_ALARM_YEAR: + case VREG_C_ACC_W_ADRS: + case VREG_C_OFF_DELAY: + case VREG_C_HAL_OVW_CONT0: + case VREG_C_HAL_OVW_DAT0: + case VREG_C_HAL_OVW_CONT1: + case VREG_C_HAL_OVW_DAT1: + */ + if( adrs < VREG_C_ENDMARK_ ) + { + vreg_ctr[adrs] = data; + break; + } + else + { +// dbg_nop(); // `AhXɏ@Ȃ񂩃oOĂȂH + // return( ERROR ) + break; + } + } +// return( SUCCESS ) + return; +} + + + +/********************************************//** + I2CzWX^ǂ݂܂B + + ߂F xx f[^ + + ӁF̃AhX̏ŌĂ΂ ̂ŁA + [hꂽNAȂǂ͋C‚ + + ( vreg_ctr_after_read( u8 adrs ) ) + ***********************************************/ +u8 vreg_ctr_read( u8 adrs ) +{ + static u16 rsub_temp; + u8 temp; + + // RTC͓ǂݏorɌJオ̂邽 + if( ( VREG_C_RTC_SEC <= adrs ) && ( adrs <= VREG_C_RTC_YEAR ) ) + { + rtc_buf_refresh( ); + } + else if( adrs == VREG_C_MCU_STATUS ) + { + return( ( vreg_ctr[ VREG_C_MCU_STATUS ] & 0x03 ) | + ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x03 ) << 6 ) | // sys_mode + ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 ) >> 2 )); // vol32 + } + else if( adrs == VREG_C_RTC_SEC_FINE_L ) + { + rsub_temp = RSUBC; + return( (u8)( rsub_temp & 0xFF ) ); + } + else if( adrs == VREG_C_RTC_SEC_FINE_H ) + { + return( (u8)( ( rsub_temp >> 8 ) & 0xFF ) ); + } +/* + // debug I + else if( adrs == VREG_C_IRQ_MASK0 ) + { + return( vreg_ctr[ VREG_C_IRQ_MASK0 ] & 0x7F ); // `MSB0B1ȂʐMG[ + } +*/ + else if( adrs == VREG_C_ACC_HOSU_HIST ) + { + return( hosu_read() ); + } + else if( adrs == VREG_CX_FREE_DATA ) + { + if( vreg_free_adrs >= VREG_C_FREE_SIZE ) + { + temp = 0x00; + } + else + { + temp = pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ]; + // vreg_free_adrs ++; // ʼnZĂ܂ƃCfbNX + } + return( temp ); + } + else if( adrs == VREG_CX_INFO ) + { + return( extinfo_read() ); + } + else if( adrs == VREG_C_ACC_HOSU_SETTING ) + { + if( pedolog_overflow ) + { + return( 0x10 ); + } + else + { + return( 0 ); + } + } + + if( adrs >= VREG_C_ENDMARK_ ) + { + // VREG_C_INFO > VREG_C_ENDMARK_ Ȃ̂łƂ + return( 0xFF ); + } + return ( vreg_ctr[adrs] ); +} + + +/********************************************//** + I2CzWX^ǂ܂ĉ郌WX^ + ***********************************************/ +void vreg_ctr_after_read( u8 adrs, u8 data ) +{ + // 荞݃tO̓[hŃNA + switch( adrs ) + { + case VREG_C_IRQ0: + case VREG_C_IRQ1: + case VREG_C_IRQ2: + case VREG_C_IRQ3: + case VREG_C_IRQ4: + DI_wt_chk(); + vreg_ctr[ adrs ] ^= data; + EI(); + irq_readed = true; + break; + + case VREG_CX_FREE_DATA: + vreg_free_adrs ++; + break; + + default: + break; + } +} + + + + + + +/********************************************//** + 荞݂ + + - @}XNĂAtOuĂȂvA荞ݓȂB + + - @荞݂AǂݏoOɃ}XNƂ́ASoC̏L[ɂ + IRQǂރ^XNςł̂ŁAǂ݂ɂ͗B + + @ƁAÔ߁A}XNƂ͋ǂ݂Ă炤B + + łDĨ`FbNsvB + + @DIɗ̂I2C_twlARTC_A[B̒ŖڒEIĎgpȂ + ***********************************************/ +void set_irq( u8 irqreg, u8 irq_flg ) +{ + u8 tot; +//0 u8 ei_orig; // EItOۑ + + if(( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP )) + { +/*0 łDIԂȂPAKvȂ + ei_orig = get_ei(); + + //. debug + if( !ei_orig ) + { + dbg_nop(); + } + + DI_wt_chk(); +*/ + DI(); + if( ( vreg_ctr[ irqreg + 8 ] & irq_flg ) == 0 ) + { + vreg_ctr[ irqreg ] |= irq_flg; + IRQ0_neg; // uグ... +//0 if( ei_orig ) + { + EI(); + } + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} // O.D.Ȃ̂łƂ̂҂ IRQ_mcu LɔĂƍ(•s) + IRQ0_ast; // ƂBiGbW荞ׁ݂̈j + } +//0 if( ei_orig ) + { + EI(); + } + } +} + diff --git a/snake_branches/3.40_jane/vreg_ctr.h b/snake_branches/3.40_jane/vreg_ctr.h new file mode 100644 index 0000000..00c2140 --- /dev/null +++ b/snake_branches/3.40_jane/vreg_ctr.h @@ -0,0 +1,327 @@ +#ifndef __vreg_ctr__ +#define __vreg_ctr__ +/* + + + $Id$ +*/ + +#include "config.h" + +// VREG_C_MCU_STATUS +// bit[7.6] twl.sys_mode[1.0] ctr珑ȂAfcr_resetɓKɃZbg +// bit[5] V [7] ctr珑ȂAfcr_resetɓKɃZbg +#define REG_BIT_STATUS_WDT_RESET ( 1 << 1 ) +#define REG_BIT_RTC_BLACKOUT ( 1 << 0 ) + + +// VREG_C_STATUS, +#define REG_BIT_LCD_POW ( 1 << 7 ) +#define REG_BIT_BL_U ( 1 << 6 ) +#define REG_BIT_BL_L ( 1 << 5 ) +#define REG_BIT_BATT_CHARGE ( 1 << 4 ) +#define REG_BIT_POW_SUPPLY ( 1 << 3 ) +// gp ( 1 << 2 ) +#define REG_BIT_ST_SHELL_OPEN ( 1 << 1 ) +// gp ( 1 << 0 ) + + +// VREG_C_STATUS_X +// gp ( 1 << 6 ) +// gp ( 1 << 5 ) +#define REG_BIT_WIFI_TX ( 1 << 4 ) +// twl bl ̃~[[1: ( 1 << 3 ) +// 0]( 1 << 2 ) +#define REG_BIT_ACCERO_ERR ( 1 << 1 ) +#define REG_BIT_MGIC_ERR ( 1 << 0 ) + +#define REG_BIT_MASK_STATUS1_NTR_PM_REG 0x0C + + +// VREG_C_IRQ0 +#define REG_BIT_IRQ_WDT_RESET ( 1 << 7 ) +#define REG_BIT_SHELL_OPEN ( 1 << 6 ) +#define REG_BIT_SHELL_CLOSE ( 1 << 5 ) +#define REG_BIT_SW_WIFI_CLICK ( 1 << 4 ) +#define REG_BIT_SW_HOME_RELEASE ( 1 << 3 ) +#define REG_BIT_SW_HOME_CLICK ( 1 << 2 ) +#define REG_BIT_SW_POW_HOLD ( 1 << 1 ) +#define REG_BIT_SW_POW_CLICK ( 1 << 0 ) + +// VREG_C_IRQ1 +#define REG_BIT_BT_CHG_START ( 1 << 7 ) +#define REG_BIT_BT_CHG_STOP ( 1 << 6 ) +#define REG_BIT_BT_REMAIN ( 1 << 5 ) +#define REG_BIT_ACC_DAT_RDY ( 1 << 4 ) +#define REG_BIT_ACC_ACK ( 1 << 3 ) +#define REG_BIT_RTC_ALARM ( 1 << 2 ) +#define REG_BIT_BT_DC_CONNECT ( 1 << 1 ) +#define REG_BIT_BT_DC_DISC ( 1 << 0 ) + +// VREG_C_IRQ2 +#define REG_BIT_TWL_VER_READ ( 1 << 7 ) +//#define REG_BIT_TWL_SNDVOL_CHANGE ( 1 << 6 ) p~ +#define REG_BIT_SLIDE_VOL_ACROSS_TWL_BOUNDARY ( 1 << 6 ) +#define REG_BIT_TWL_BL_U_ON ( 1 << 5 ) +#define REG_BIT_TWL_BL_U_OFF ( 1 << 4 ) +#define REG_BIT_TWL_BL_L_ON ( 1 << 3 ) +#define REG_BIT_TWL_BL_L_OFF ( 1 << 2 ) +#define REG_BIT_TWL_OFF_REQ ( 1 << 1 ) +#define REG_BIT_TWL_RESET_REQ ( 1 << 0 ) + +// VREG_C_IRQ3 +#define REG_BIT_BL_U_ON ( 1 << 5 ) +#define REG_BIT_BL_U_OFF ( 1 << 4 ) +#define REG_BIT_BL_L_ON ( 1 << 3 ) +#define REG_BIT_BL_L_OFF ( 1 << 2 ) +#define REG_BIT_LCD_ON ( 1 << 1 ) +#define REG_BIT_LCD_OFF ( 1 << 0 ) + + +// ̂ǂ... +//#define REG_BIT_VR_3D_CHANGE ( 1 << 7 ) + + + +// VREG_C_COMMAND0 +//#define REG_BIT_CMD_LCD_ON ( 1 << 7 ) +//#define REG_BIT_CMD_LCD_OFF ( 1 << 6 ) +//#define REG_BIT_CMD_BL_ON ( 1 << 5 ) +//#define REG_BIT_CMD_BL_OFF ( 1 << 4 ) +#define REG_BIT_GOING_TO_SLEEP ( 1 << 4 ) +#define REG_BIT_FCRAM_RESET_REQ ( 1 << 3 ) +#define REG_BIT_RESET2_REQ ( 1 << 2 ) +#define REG_BIT_RESET1_REQ ( 1 << 1 ) +#define REG_BIT_OFF_REQ ( 1 << 0 ) + +// VREG_C_COMMAND1 (TWLɊ荞݂) +// gp ( 1 << 7 ) +// gp ( 1 << 6 ) +#define REG_BIT_SEND_TWL_VOL_CLICK ( 1 << 5 ) +#define REG_BIT_SEND_TWL_BATT_EMPTY ( 1 << 4 ) +#define REG_BIT_SEND_TWL_BATT_LOW ( 1 << 3 ) +#define REG_BIT_SEND_TWL_OFF_DET ( 1 << 2 ) +#define REG_BIT_SEND_TWL_RESET_DET ( 1 << 1 ) +#define REG_BIT_SEND_TWL_PWSW_DET ( 1 << 0 ) + +// VREG_C_COMMAND2 t֌W +#define REG_BIT_CMD_BL_U_ON ( 1 << 5 ) +#define REG_BIT_CMD_BL_U_OFF ( 1 << 4 ) +#define REG_BIT_CMD_BL_L_ON ( 1 << 3 ) +#define REG_BIT_CMD_BL_L_OFF ( 1 << 2 ) +#define REG_BIT_CMD_LCD_ON ( 1 << 1 ) +#define REG_BIT_CMD_LCD_OFF ( 1 << 0 ) +#define REG_BITS_CMD_BL ( REG_BIT_CMD_BL_U_ON | REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_ON | REG_BIT_CMD_BL_L_OFF ) + + +// TWLɒʒmIRQWX^ +#define REG_BIT_TWL_IRQ_PWSW_DET 0x08 +#define REG_BIT_TWL_IRQ_RESET 0x01 +#define REG_BIT_TWL_IRQ_OFF 0x02 +#define REG_BIT_TWL_IRQ_BT_LOW 0x20 +#define REG_BIT_TWL_IRQ_BT_EMPTY 0x10 +#define REG_BIT_TWL_IRQ_VOL_CHANGE 0x40 + + +// CODECPMIC NTR ̑㗝WX^ +#define REG_BIT_TWL_REQ_OFF ( 1 << 6 ) +#define REG_BIT_TWL_REQ_BL_U ( 1 << 3 ) +#define REG_BIT_TWL_REQ_BL_L ( 1 << 2 ) +#define REG_BIT_TWL_REQ_RESET ( 1 << 0 ) + + +// VREG_C_LED_NOTIFY_FLAG +#define REG_BIT_IN_LOOP ( 1 << 0 ) + +// RBR control (0x57) +#define REG_BIT_FLIGHT ( 1 << 1 ) +#define REG_BIT_RESET_n ( 1 << 0 ) + + +// HAL bitfields 0 +#define REG_BIT_HAL0_PM_EXTDC_n ( 1 << 7 ) +#define REG_BIT_HAL0_BT_IN_CHG_n ( 1 << 6 ) +//#define REG_BIT_HAL0_PM_IRQ_n // gȂ +#define REG_BIT_HAL0_RSV_5 ( 1 << 5 ) +#define REG_BIT_HAL0_WL_TX ( 1 << 4 ) +#define REG_BIT_HAL0_SHELL_OPEN ( 1 << 3 ) // statusɂ܂ +#define REG_BIT_HAL0_SW_WIFI_n ( 1 << 2 ) +#define REG_BIT_HAL0_SW_HOME_n ( 1 << 1 ) +#define REG_BIT_HAL0_SW_POW_n ( 1 << 0 ) + + +// HAL bitfields 1 +#define REG_BIT_HAL1_DIPSW_1 ( 1 << 3 ) +#define REG_BIT_HAL1_DIPSW_0 ( 1 << 2 ) +#define REG_BIT_HAL1_HW_DET_1 ( 1 << 1 ) +#define REG_BIT_HAL1_HW_DET_0 ( 1 << 0 ) + + +// VREG_C_WIFI_CALIB +#define REG_BIT_WIFI_CALIB_32K_HI_Z ( 1 << 1 ) +#define REG_BIT_WIFI_CALIB_RSTS_AST ( 1 << 0 ) + + +/* + ev +#define REG_BIT_ ( 1 << 7 ) +#define REG_BIT_ ( 1 << 6 ) +#define REG_BIT_ ( 1 << 5 ) +#define REG_BIT_ ( 1 << 4 ) +#define REG_BIT_ ( 1 << 3 ) +#define REG_BIT_ ( 1 << 2 ) +#define REG_BIT_ ( 1 << 1 ) +#define REG_BIT_ ( 1 << 0 ) +*/ + + + +/*============================================================================*/ +extern u8 vreg_ctr[]; + +/*============================================================================*/ +enum VREG_C_ADRS +{ // `AhX֏񂾍ۂ͕̓s + VREG_C_MCU_VER_MAJOR = 0x00, + VREG_C_MCU_VER_MINOR, + VREG_C_MCU_STATUS, + + VREG_C_VCOM_T = 0x03, + VREG_C_VCOM_B, + + VREG_C_DBG01 = 0x05, + VREG_C_DBG02, + VREG_C_DBG03, + + VREG_C_3D = 0x08, + VREG_C_SND_VOL, + VREG_C_BT_TEMP, + VREG_C_BT_REMAIN, + VREG_C_BT_REMAIN_FINE, + VREG_C_BT_VOLTAGE, + + VREG_C_STATUS_1 = 0x0E, + VREG_C_STATUS = 0x0F, + + VREG_C_IRQ0 = 0x10, + VREG_C_IRQ1, + VREG_C_IRQ2, + VREG_C_IRQ3, + VREG_C_IRQ4, + + VREG_C_IRQ_MASK0 = 0x18, + VREG_C_IRQ_MASK1, + VREG_C_IRQ_MASK2, + VREG_C_IRQ_MASK3, + VREG_C_IRQ_MASK4, + + VREG_C_COMMAND0 = 0x20, + VREG_C_COMMAND1, + VREG_C_COMMAND2, + VREG_C_COMMAND3, // 'r' Ń}CRZbgA 'w' WDTZbg + + VREG_C_OFF_DELAY = 0x24, +// VREG_C_VOL_DIGITAL = 0x25, // todo +// VREG_C_VOL_OPTION, + VREG_C_VOL_ADC_RAW = 0x27, + + VREG_C_LED_BRIGHT = 0x28, + VREG_C_LED_POW, + VREG_C_LED_WIFI, + VREG_C_LED_CAM, + VREG_C_LED_3D, + VREG_C_LED_NOTIFY_DATA, + VREG_C_LED_NOTIFY_FLAG, + + VREG_C_RBR_CONTROL = 0x2F, // p~ + + VREG_C_RTC_SEC = 0x30, + VREG_C_RTC_MIN, + VREG_C_RTC_HOUR, + VREG_C_RTC_YOBI, + VREG_C_RTC_DAY, + VREG_C_RTC_MONTH, + VREG_C_RTC_YEAR, + + VREG_C_RTC_COMP, + + VREG_C_RTC_ALARM_MIN = 0x38, + VREG_C_RTC_ALARM_HOUR, + VREG_C_RTC_ALARM_DAY, + VREG_C_RTC_ALARM_MONTH, + VREG_C_RTC_ALARM_YEAR, + + VREG_C_RTC_SEC_FINE_L, + VREG_C_RTC_SEC_FINE_H, + + VREG_C_WIFI_CALIB = 0x3F, + + VREG_C_ACC_CONFIG = 0x40, + VREG_C_ACC_R_ADRS, + VREG_C_ACC_RESERVE, + VREG_C_ACC_W_ADRS, + VREG_C_ACC_W_BUF, // r,w p + + VREG_C_ACC_XL = 0x45, + VREG_C_ACC_XH, + VREG_C_ACC_YL, + VREG_C_ACC_YH, + VREG_C_ACC_ZL, + VREG_C_ACC_ZH, + + VREG_C_ACC_HOSU_L = 0x4B, + VREG_C_ACC_HOSU_M, + VREG_C_ACC_HOSU_H, + VREG_C_ACC_HOSU_SETTING, + VREG_C_ACC_HOSU_HIST = 0x4F, + + VREG_C_ACC_HOSU_HOUR_BOUNDARY = 0x50, + VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC, + + VREG_C_HAL_OVW_CONT0 = 0x52, + VREG_C_HAL_OVW_DAT0, + VREG_C_HAL_OVW_CONT1, // reserved + VREG_C_HAL_OVW_DAT1, // reserved + + VREG_C_HAL_OVW_BT_FUEL = 0x56, + VREG_C_HAL_OVW_BT_VOLTAGE, + + VREG_C_VOL_CAL_MIN = 0x58, + VREG_C_VOL_CAL_MAX, + + VREG_C_HAL_OVW_TEMPERATURE = 0x5A, + + VREG_C_ENDMARK_ +}; + +// Ԃ͔ɂāAmۂȂ߂ ʂ define Ă +#define VREG_CX_INFO 0x7F +#define VREG_CX_FREE_ADRS 0x60 +#define VREG_CX_FREE_DATA 0x61 +// VREG_C_AMBIENT_BRIGHTNESS = 0xXX, + + + + +/*============================================================================*/ +void vreg_ctr_init( ); +void vreg_ctr_reset( ); +void vreg_ctr_write( u8 adrs, u8 data ); +u8 vreg_ctr_read( u8 phy_adrs ); +void vreg_ctr_after_read( u8 adrs, u8 data ); +void set_irq( u8 irqreg, u8 irq_flg ); + + +#define is_wifi_calib_resets_ast ( vreg_ctr[ VREG_C_WIFI_CALIB ] & REG_BIT_WIFI_CALIB_RSTS_AST ) +#define vreg_stop_acc ( vreg_ctr[ VREG_C_ACC_CONFIG ] &= ~( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ) ) +#define vreg_set_acc_error ( vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_ACCERO_ERR ) +#define is_acc_on ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_ACQ ) +#define is_pedo_on ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_HOSU ) +#define is_mgic_error ( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR ) +#define vreg_set_mgic_error ( vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_MGIC_ERR ) +#define vreg_clear_mgic_error ( vreg_ctr[ VREG_C_STATUS_1 ] &= ~(REG_BIT_MGIC_ERR) ) +#define is_bt_charging ( vreg_ctr[VREG_C_STATUS] & REG_BIT_BATT_CHARGE ) +#define is_shell_open ( vreg_ctr[VREG_C_STATUS] & REG_BIT_ST_SHELL_OPEN ) + + +#endif diff --git a/snake_branches/3.40_jane/vreg_twl.c b/snake_branches/3.40_jane/vreg_twl.c new file mode 100644 index 0000000..1cb1225 --- /dev/null +++ b/snake_branches/3.40_jane/vreg_twl.c @@ -0,0 +1,169 @@ +/* ======================================================== + TWL݊I2CWX^ + + $Id$ + ======================================================== */ +#include "incs.h" +#include "jhl_defs.h" +#include "led.h" + +#include "vreg_twl.h" +//#include "vreg_ctr.h" +#include "adc.h" + + +// ======================================================== +#define TWL_REG_VER_INFO 0x35 +#define NON_EXIST_REG 0xFF + +// ======================================================== +u8 vreg_twl[_REG_TWL_INT_ADRS_ENDMARK]; + + +extern bit twl_ver_read; +extern bit cam_led_update; +extern bit vol_changed_by_twl; + + +// ======================================================== +extern void tsk_led_cam(); + + + + +/********************************************//** + zWX^̏ + ***********************************************/ +void vreg_twl_init( ) +{ + vreg_twl[ REG_TWL_INT_ADRS_MODE ] = 0x03; + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] = 0; + vreg_twl[ REG_TWL_INT_ADRS_CAM ] = 0; + vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = 0; +} + + + +/********************************************//** + I2CzWX^ɏEANV + + @ adrs ͓AhX + + @݂ȂAhXɃANZXꍇA܂B + ***********************************************/ +void vreg_twl_write( u8 adrs, u8 data ) +{ + switch ( adrs ) + { + case ( REG_TWL_INT_ADRS_VOL ): + { + vol_changed_by_twl = true; + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = data; + //renge_task_immed_add( tski_vol_update ); + vol_polling = 3; + break; + } + + case ( REG_TWL_INT_ADRS_MODE ): + vreg_twl[ REG_TWL_INT_ADRS_MODE ] = ( data & 0x83 ); // [8]vol32 [1:0]nand + break; + + case ( REG_TWL_INT_ADRS_CAM ): + vreg_twl[ REG_TWL_INT_ADRS_CAM ] = ( data & 0x03 ); + if( ( data & 0x03 ) == TWL_CAMLED_BLINK ) + { + cam_led_update = true; // łȂƈꔭɕs邽 + } + tsk_led_cam(); // uN̓sŋN + break; + + case ( REG_TWL_INT_ADRS_TEMP0 ): + vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = data; + break; + + case ( REG_TWL_INT_ADRS_COMMAND ): +/* + if( data <= 2 ){ + if( ( data & REG_BIT_TWL_OFF_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_OFF_REQ ); // OFFĂ炵B + break; + } + else if( ( data & REG_BIT_TWL_RESET_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); //ZbgȂB̂́ASPI痈܂B + break; + } + } +*/ + if( data == REG_BIT_TWL_RESET_REQ ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); //ZbgȂB̂́ASPI痈܂B + break; + } + } + return; +} + + + +/********************************************//** + I2CzWX^ǂ݂܂B + + @ adrs O猩Ƃ́AAhX + + @߂ xx f[^ + + @݂ȂAhXɃANZXꍇA߂l0x5A + ***********************************************/ +u8 vreg_twl_read( u8 phy_adrs ) +{ + u8 temp; + + switch( phy_adrs ){ + // 10%ȉŐԂɂȂ + case( REG_TWL_INT_ADRS_POWER_INFO ): + // x̃Zbg get_batt_left()ixĖłj + return( vreg_twl[ REG_TWL_INT_ADRS_POWER_INFO ] | ( !PM_EXTDC_n ? 0x80: 0x00 ) ); // A_v^bit(A_v^L) + + case( REG_TWL_INT_ADRS_IRQ ): + temp = vreg_twl[ REG_TWL_INT_ADRS_IRQ ]; + vreg_twl[ REG_TWL_INT_ADRS_IRQ ]= 0; + return( temp ); + + case( REG_TWL_INT_ADRS_VER_INFO ): +// set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); // xIɖȂ̂ + twl_ver_read = true; + return( TWL_REG_VER_INFO ); + + case( REG_TWL_ADRS_NON_EXIST ): + return( 0x00 ); + + default: + return( vreg_twl[ phy_adrs ] ); + } +} + + + +/********************************************//** + O猩钎HAhXA̘AAhXɓǂݑւ + + 0xFF݂͑ȂAhXB + ***********************************************/ +u8 adrs_table_twl_ext2int( u8 img ) +{ + switch( img ){ + case( REG_TWL_ADRS_IRQ ): return( REG_TWL_INT_ADRS_IRQ ); + case( REG_TWL_ADRS_COMMAND ): return( REG_TWL_INT_ADRS_COMMAND ); + case( REG_TWL_ADRS_POWER_INFO ): return( REG_TWL_INT_ADRS_POWER_INFO ); + case( REG_TWL_ADRS_VOL ): return( REG_TWL_INT_ADRS_VOL ); + case( REG_TWL_ADRS_CAM ): return( REG_TWL_INT_ADRS_CAM ); + case( REG_TWL_ADRS_TEMP0 ): return( REG_TWL_INT_ADRS_TEMP0 ); + case( REG_TWL_ADRS_VER_INFO ): return( REG_TWL_INT_ADRS_VER_INFO ); + case( REG_TWL_ADRS_MODE ): return( REG_TWL_INT_ADRS_MODE ); + default: return( REG_TWL_ADRS_NON_EXIST ); +// 0ǂ߂΂悢AȂėǂ +// case( REG_TWL_ADRS_WIFI ): return( REG_TWL_INT_ADRS_WIFI ); + } +} diff --git a/snake_branches/3.40_jane/vreg_twl.h b/snake_branches/3.40_jane/vreg_twl.h new file mode 100644 index 0000000..63cdd94 --- /dev/null +++ b/snake_branches/3.40_jane/vreg_twl.h @@ -0,0 +1,127 @@ +#ifndef __vreg_twl__ +#define __vreg_twl__ +/* ========================================================================= */ +extern u8 vreg_twl[]; + + +/* + * O猩Ƃ̃}CRWX^AhXB + * gȂǂlĔєтɂĂB + */ +/* + * 荞ݗvtO + * MSB:OdL/Ȃω ij + * 6:VolL[iύXɌ炸BMAXɁ{łBj + * 5:drd o + * 4: + * 3:dXCb` ꌟo + * 2:iݒj + * 1:dXCb` OFF ԉꌟo + * LSB: Zbg + */ +enum REG_TWL_ADRS +{ // `AhX֏񂾍ۂ͖ + REG_TWL_ADRS_VER_INFO = 0x00, + REG_TWL_ADRS_PMIC_INFO, + REG_TWL_ADRS_BATT_INFO, + REG_TWL_ADRS_IRQ = 0x10, + REG_TWL_ADRS_COMMAND, + REG_TWL_ADRS_MODE, + REG_TWL_ADRS_POWER_INFO = 0x20, + REG_TWL_ADRS_POWER_SAVE, + REG_TWL_ADRS_WIFI = 0x30, + REG_TWL_ADRS_CAM, + REG_TWL_ADRS_VOL = 0x40, + REG_TWL_ADRS_BL, + REG_TWL_ADRS_CODEC_MIC_GAIN = 0x50, + REG_TWL_ADRS_ADC_CALIB = 0x60, + REG_TWL_ADRS_ADC_CALIB_STATUS, + REG_TWL_ADRS_ADC_CALIB_VALUE, + REG_TWL_ADRS_POWER_LED, + REG_TWL_ADRS_TEMP0 = 0x70, + REG_TWL_ADRS_TEMP1, + REG_TWL_ADRS_TEMP2, + REG_TWL_ADRS_TEMP3, + REG_TWL_ADRS_TEMP4, + REG_TWL_ADRS_TEMP5, + REG_TWL_ADRS_TEMP6, + REG_TWL_ADRS_TEMP7, + REG_TWL_ADRS_TIME_PWSW_DELAY = 0x80, + REG_TWL_ADRS_TIME_PWSW_THRESHOLD +}; + +#define REG_TWL_ADRS_NON_EXIST 0xFF + +/* + * }CRł̃WX^̎ + * ‚߂Ă + */ +enum REG_TWL_ADRS_INT +{ + REG_TWL_INT_ADRS_VER_INFO = 0x00, +// REG_TWL_INT_ADRS_PMIC_INFO, +// REG_TWL_INT_ADRS_BATT_INFO, + REG_TWL_INT_ADRS_IRQ, // 0x10, + REG_TWL_INT_ADRS_COMMAND, + REG_TWL_INT_ADRS_MODE, + REG_TWL_INT_ADRS_POWER_INFO, // 0x20, +// REG_TWL_INT_ADRS_POWER_SAVE, +// REG_TWL_INT_ADRS_WIFI, // 0x30, + REG_TWL_INT_ADRS_CAM, + REG_TWL_INT_ADRS_VOL, // 0x40, +// REG_TWL_INT_ADRS_BL, +// REG_TWL_INT_ADRS_CODEC_MIC_GAIN, // 0x50, +// REG_TWL_INT_ADRS_CODEC_MIC_GAIN_RELOAD, +// REG_TWL_INT_ADRS_ADC_CALIB, // 0x60, +// REG_TWL_INT_ADRS_ADC_CALIB_STATUS, +// REG_TWL_INT_ADRS_ADC_CALIB_VALUE, +// REG_TWL_INT_ADRS_POWER_LED, + REG_TWL_INT_ADRS_TEMP0, // 0x70 - 0x77 + REG_TWL_INT_ADRS_TEMP1, + REG_TWL_INT_ADRS_TEMP2, + REG_TWL_INT_ADRS_TEMP3, + REG_TWL_INT_ADRS_TEMP4, + REG_TWL_INT_ADRS_TEMP5, + REG_TWL_INT_ADRS_TEMP6, + REG_TWL_INT_ADRS_TEMP7, +// REG_TWL_INT_ADRS_TIME_PWSW_DELAY, +// REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD + _REG_TWL_INT_ADRS_ENDMARK, +}; + + + +/* ========================================================================= */ +#define is_TWL ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x01 ) +#define with_NAND ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x02 ) +#define volSteps32 ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 ) + +#define reg_wifi_led ( vreg_twl[ REG_TWL_INT_ADRS_WIFI ] & 0x01 ) +#define reg_wifi_led_blink ( vreg_twl[ REG_TWL_INT_ADRS_WIFI ] & 0x02 ) + +#define REG_TWL_ADRS_MODE__VOL32 ( 1 << 7 ) + +typedef enum CAM_LED_TWL_MODE +{ + TWL_CAMLED_OFF, + TWL_CAMLED_ON, + TWL_CAMLED_BLINK, + TWL_CAMLED_DEF_ON +}twl_camLed_mode; + + +/* ========================================================================= */ +void vreg_twl_init( ); +void vreg_twl_write( u8 adrs, u8 data ); +u8 adrs_table_twl_ext2int( u8 img ); +u8 vreg_twl_read( u8 phy_adrs ); + + +// ǂ񂾂NAȂǂ̏ +#define vreg_twl_after_read( reg_adrs ); \ + if( reg_adrs == REG_TWL_INT_ADRS_IRQ ) \ + { \ + vreg_twl[ REG_TWL_INT_ADRS_IRQ ]= 0;\ + } + +#endif diff --git a/snake_branches/3.40_jane/yav_mcu_bsr.plg b/snake_branches/3.40_jane/yav_mcu_bsr.plg new file mode 100644 index 0000000..949aef8 --- /dev/null +++ b/snake_branches/3.40_jane/yav_mcu_bsr.plg @@ -0,0 +1,209 @@ +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(546) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(558) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(882) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(886) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(915) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(929) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1015) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1024) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1095) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1241) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1243) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1537) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 12 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(193) : 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(247) : CC78K0R warning W0401: Conversion may lose significant digits +task_sys.c(309) : CC78K0R warning W0401: Conversion may lose significant digits +task_sys.c(589) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 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) : 70 diff --git a/snake_branches/3.40_jane/yav_mcu_bsr.pri b/snake_branches/3.40_jane/yav_mcu_bsr.pri new file mode 100644 index 0000000..b018509 --- /dev/null +++ b/snake_branches/3.40_jane/yav_mcu_bsr.pri @@ -0,0 +1,1031 @@ +[Project.ID] +Ver=200 +Target=IDK0R32G +[Configuration] +Chip=uPD79F0104 +Internal Rom=32KB +Internal Ram=1536B +Clock=Target +Sub Clock=Target +Peripheral Break=0x3 +Firm Clock=System +Flash Programming=Permit +Low-voltage Flash Rewriting=On +Fail Safe Break=0x2000 +Port=1 +NMI=OFF +TRESET=OFF +IRESET=OFF +WAIT=OFF +SysClock=None +SubClock=None +[Mapping] +Count=0 +[Main] +Geometry=154, 154, 1188, 812 +Window=Max +MDI_MAX=OFF +Button=ON +Mode=Auto +Trace=Uncond ON +Trace2=Non Stop +Coverage=OFF +Timer=OFF +Tracer=OFF +[Load File] +Dir=\\tsclient\C\78k_data\yav-mcu-basara\trunk\ +SaveFilter=0 +Start=0 +End=0 +LoadFilter=5 +Offset=0 +Object=ON +Symbol=ON +Erase=OFF +HighSpeed=OFF +Symbol Reset=ON +CPU Reset=ON +File1=\\tsclient\C\78k_data\yav-mcu-basara\trunk\bsr.lmf +LoadFilter1=5 +Offset1=0 +Object1=ON +Symbol1=ON +Erase1=OFF +HighSpeed1=OFF +CPU Reset1=ON +Symbol Reset1=ON +[View File] +Dir=\\tsclient\C\78k_data\yav-mcu-basara\trunk\ +Filter=Source +[Debugger Option] +Source Path="\\tsclient\C\78k_data\yav-mcu-basara\trunk\renge" +Symbol Size=Byte +Symbol Format=Hex +Register Name=Func +Offset Label=OFF +Offset Mnemonic=ON +Tab Count=4 +Tab Size1=*.*, 8 +Tab Size2=*.c, 8 +Tab Size3=*.s, 8 +Tab Size4=*.asm, 8 +Default Source=*.c;*.s;*.asm +Default Module=*.lnk;*.lmf +Startup Start=_@cstart +Startup End=_@cend +Main Symbol=_main +Symbol Type=OFF +Language=C +Kanji=SJIS +[Source] +Geometry=762, 184, 689, 822 +Window=Normal +DispStart=82 +CaretPos=83,0 +Mode=Normal +DispFile= +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Data1= +Data2= +Data3= +Data4= +Data5= +Data6= +Data7= +Data8= +Data9= +Data10= +Data11= +Data12= +Data13= +Data14= +Data15= +Data16= +Option=0 +Case=ON +Direction=Down +File1= +File2= +File3= +File4= +File5= +File6= +File7= +File8= +File9= +File10= +File11= +File12= +File13= +File14= +File15= +File16= +SaveRange=Screen +SaveStart= +SaveEnd= +Accumulative=ON +[Source1] +Geometry=100, 100, 689, 822 +Window=Normal +DispStart=55 +CaretPos=1,0 +Mode=Normal +DispFile=\\tsclient\C\78k_data\yav-mcu-basara\trunk\hal.c +Accumulative=ON +[Assemble] +Geometry=0, 0, 0, 0 +Window=Hide +DispStart=847627264 +CaretPos=0,0 +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Data1= +Data2= +Data3= +Data4= +Data5= +Data6= +Data7= +Data8= +Data9= +Data10= +Data11= +Data12= +Data13= +Data14= +Data15= +Data16= +Case=ON +Scan=OFF +Direction=Down +FindStart= +FindEnd= +SaveRange=Screen +SaveStart= +SaveEnd= +[Memory] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Format=Hex +Mode=Byte +Endian= +Ascii=OFF +Idtag=OFF +Address= +DispStart=FFFFFFFF +CaretPosData=0, 0 +CaretPosAscii=0, 0 +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Data1= +Data2= +Data3= +Data4= +Data5= +Data6= +Data7= +Data8= +Data9= +Data10= +Data11= +Data12= +Data13= +Data14= +Data15= +Data16= +Binary=ON +Scan=OFF +Direction=DOWN +FindStart= +FindEnd= +Unit=Byte +SaveRange=Screen +SaveStart= +SaveEnd= +Accumulative=ON +[Memory fill] +Scope=0, 0 +Code=0 +[Memory copy] +Scope=0, 0 +To=0 +[Memory compare] +Source=0, 0 +Destination=0 +[I/O Port] +Line=0 +[Stack] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Mode=Proper +[Sfr] +Geometry=0, 0, 0, 0 +Window=Hide +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Boundary=0, 0 +Mode=Hex +Attribute=Show +Sort=Address +Pickup=OFF +SelectSort=Address +Last Name= +Line=531 +L1=P0 +L2=P1 +L3=P2 +L4=P3 +L5=P4 +L6=P5 +L7=P6 +L8=P7 +L9=P12 +L10=P14 +L11=P15 +L12=SDR00 +L13=SIO00 +L14=TXD0 +L15=SDR01 +L16=RXD0 +L17=SIO01 +L18=TDR00 +L19=TDR01 +L20=ADCRH +L21=PM0 +L22=PM1 +L23=PM2 +L24=PM3 +L25=PM4 +L26=PM5 +L27=PM6 +L28=PM7 +L29=PM12 +L30=PM14 +L31=PM15 +L32=ADM +L33=ADCE +L34=ADCS +L35=ADS +L36=KRM +L37=EGP0 +L38=EGN0 +L39=ISC +L40=TIS0 +L41=SDR02 +L42=SIO10 +L43=TXD1 +L44=SDR03 +L45=RXD1 +L46=IICA0 +L47=IICS0 +L48=SPD0 +L49=STD0 +L50=ACKD0 +L51=TRC0 +L52=COI0 +L53=EXC0 +L54=ALD0 +L55=MSTS0 +L56=IICF0 +L57=IICRSV0 +L58=STCEN0 +L59=IICBSY0 +L60=STCF0 +L61=TDR02 +L62=TDR03 +L63=TDR04 +L64=TDR05 +L65=TDR06 +L66=TDR07 +L67=RSUBC +L68=SEC +L69=MIN +L70=HOUR +L71=WEEK +L72=DAY +L73=MONTH +L74=YEAR +L75=SUBCUD +L76=ALARMWM +L77=ALARMWH +L78=ALARMWW +L79=RTCC0 +L80=RCLOE0 +L81=RCLOE1 +L82=RTCE +L83=RTCC1 +L84=RWAIT +L85=RWST +L86=RIFG +L87=WAFG +L88=WALIE +L89=WALE +L90=RTCC2 +L91=RCKDIV +L92=RCLOE2 +L93=RINTE +L94=CMC +L95=CSC +L96=HIOSTOP +L97=XTSTOP +L98=MSTOP +L99=OSTC +L100=OSTS +L101=CKC +L102=MCM0 +L103=MCS +L104=CSS +L105=CLS +L106=CKS0 +L107=PCLOE0 +L108=CKS1 +L109=PCLOE1 +L110=RESF +L111=LVIM +L112=LVIF +L113=LVIMD +L114=LVISEL +L115=LVION +L116=LVIS +L117=WDTE +L118=DSA0 +L119=DSA1 +L120=DRA0 +L121=DRA0L +L122=DRA0H +L123=DRA1 +L124=DRA1L +L125=DRA1H +L126=DBC0 +L127=DBC0L +L128=DBC0H +L129=DBC1 +L130=DBC1L +L131=DBC1H +L132=DMC0 +L133=DWAIT0 +L134=DS0 +L135=DRS0 +L136=STG0 +L137=DMC1 +L138=DWAIT1 +L139=DS1 +L140=DRS1 +L141=STG1 +L142=DRC0 +L143=DST0 +L144=DEN0 +L145=DRC1 +L146=DST1 +L147=DEN1 +L148=BECTL +L149=FLMDPUP +L150=PFCMD +L151=PFS +L152=FPRERR +L153=FLPMC +L154=BFAEN +L155=FWEPR +L156=BRAMEN +L157=IF2 +L158=IF2L +L159=TMIF05 +L160=TMIF06 +L161=TMIF07 +L162=PIF6 +L163=IF2H +L164=IICAIF1 +L165=PIF20 +L166=PIF21 +L167=PIF22 +L168=PIF23 +L169=MK2 +L170=MK2L +L171=TMMK05 +L172=TMMK06 +L173=TMMK07 +L174=PMK6 +L175=MK2H +L176=IICAMK1 +L177=PMK20 +L178=PMK21 +L179=PMK22 +L180=PMK23 +L181=PR02 +L182=PR02L +L183=TMPR005 +L184=TMPR006 +L185=TMPR007 +L186=PPR06 +L187=PR02H +L188=IICAPR01 +L189=PPR020 +L190=PPR021 +L191=PPR022 +L192=PPR023 +L193=PR12 +L194=PR12L +L195=TMPR105 +L196=TMPR106 +L197=TMPR107 +L198=PPR16 +L199=PR12H +L200=IICAPR11 +L201=PPR120 +L202=PPR121 +L203=PPR122 +L204=PPR123 +L205=IF0 +L206=IF0L +L207=WDTIIF +L208=LVIIF +L209=PIF0 +L210=PIF1 +L211=PIF2 +L212=PIF4 +L213=PIF5 +L214=IF0H +L215=DMAIF0 +L216=DMAIF1 +L217=CSIIF00 +L218=STIF0 +L219=CSIIF01 +L220=SRIF0 +L221=SREIF0 +L222=IF1 +L223=IF1L +L224=CSIIF10 +L225=IICIF10 +L226=STIF1 +L227=SRIF1 +L228=SREIF1 +L229=IICAIF0 +L230=TMIF00 +L231=TMIF01 +L232=TMIF02 +L233=TMIF03 +L234=IF1H +L235=ADIF +L236=RTCIF +L237=RTCIIF +L238=KRIF +L239=MDIF +L240=TMIF04 +L241=MK0 +L242=MK0L +L243=WDTIMK +L244=LVIMK +L245=PMK0 +L246=PMK1 +L247=PMK2 +L248=PMK4 +L249=PMK5 +L250=MK0H +L251=DMAMK0 +L252=DMAMK1 +L253=CSIMK00 +L254=STMK0 +L255=CSIMK01 +L256=SRMK0 +L257=SREMK0 +L258=MK1 +L259=MK1L +L260=CSIMK10 +L261=IICMK10 +L262=STMK1 +L263=SRMK1 +L264=SREMK1 +L265=IICAMK0 +L266=TMMK00 +L267=TMMK01 +L268=TMMK02 +L269=TMMK03 +L270=MK1H +L271=ADMK +L272=RTCMK +L273=RTCIMK +L274=KRMK +L275=MDMK +L276=TMMK04 +L277=PR00 +L278=PR00L +L279=WDTIPR0 +L280=LVIPR0 +L281=PPR00 +L282=PPR01 +L283=PPR02 +L284=PPR04 +L285=PPR05 +L286=PR00H +L287=DMAPR00 +L288=DMAPR01 +L289=CSIPR000 +L290=STPR00 +L291=CSIPR001 +L292=SRPR00 +L293=SREPR00 +L294=PR01 +L295=PR01L +L296=CSIPR010 +L297=IICPR010 +L298=STPR01 +L299=SRPR01 +L300=SREPR01 +L301=IICAPR00 +L302=TMPR000 +L303=TMPR001 +L304=TMPR002 +L305=TMPR003 +L306=PR01H +L307=ADPR0 +L308=RTCPR0 +L309=RTCIPR0 +L310=KRPR0 +L311=MDPR0 +L312=TMPR004 +L313=PR10 +L314=PR10L +L315=WDTIPR1 +L316=LVIPR1 +L317=PPR10 +L318=PPR11 +L319=PPR12 +L320=PPR14 +L321=PPR15 +L322=PR10H +L323=DMAPR10 +L324=DMAPR11 +L325=CSIPR100 +L326=STPR10 +L327=CSIPR101 +L328=SRPR10 +L329=SREPR10 +L330=PR11 +L331=PR11L +L332=CSIPR110 +L333=IICPR110 +L334=STPR11 +L335=SRPR11 +L336=SREPR11 +L337=IICAPR10 +L338=TMPR100 +L339=TMPR101 +L340=TMPR102 +L341=TMPR103 +L342=PR11H +L343=ADPR1 +L344=RTCPR1 +L345=RTCIPR1 +L346=KRPR1 +L347=MDPR1 +L348=TMPR104 +L349=MDAL +L350=MULA +L351=MDAH +L352=MULB +L353=MDBH +L354=MULOH +L355=MDBL +L356=MULOL +L357=PMC +L358=MAA +L359=ADPC +L360=PU0 +L361=PU1 +L362=PU3 +L363=PU4 +L364=PU5 +L365=PU7 +L366=PU12 +L367=PU14 +L368=PIM3 +L369=PIM7 +L370=POM3 +L371=POM7 +L372=NFEN0 +L373=NFEN1 +L374=NFEN2 +L375=MDCL +L376=MDCH +L377=MDUC +L378=DIVST +L379=DIVMODE +L380=PER0 +L381=SAU0EN +L382=IICA0EN +L383=ADCEN +L384=RTCEN +L385=PER2 +L386=TAU0EN +L387=OSMC +L388=BCDADJ +L389=SSR00 +L390=SSR00L +L391=SSR01 +L392=SSR01L +L393=SSR02 +L394=SSR02L +L395=SSR03 +L396=SSR03L +L397=SIR00 +L398=SIR00L +L399=SIR01 +L400=SIR01L +L401=SIR02 +L402=SIR02L +L403=SIR03 +L404=SIR03L +L405=SMR00 +L406=SMR01 +L407=SMR02 +L408=SMR03 +L409=SCR00 +L410=SCR01 +L411=SCR02 +L412=SCR03 +L413=SE0 +L414=SE0L +L415=SS0 +L416=SS0L +L417=ST0 +L418=ST0L +L419=SPS0 +L420=SPS0L +L421=SO0 +L422=SOE0 +L423=SOE0L +L424=SOL0 +L425=SOL0L +L426=TCR00 +L427=TCR01 +L428=TCR02 +L429=TCR03 +L430=TCR04 +L431=TCR05 +L432=TCR06 +L433=TCR07 +L434=TMR00 +L435=TMR01 +L436=TMR02 +L437=TMR03 +L438=TMR04 +L439=TMR05 +L440=TMR06 +L441=TMR07 +L442=TSR00 +L443=TSR00L +L444=TSR01 +L445=TSR01L +L446=TSR02 +L447=TSR02L +L448=TSR03 +L449=TSR03L +L450=TSR04 +L451=TSR04L +L452=TSR05 +L453=TSR05L +L454=TSR06 +L455=TSR06L +L456=TSR07 +L457=TSR07L +L458=TE0 +L459=TE0L +L460=TS0 +L461=TS0L +L462=TT0 +L463=TT0L +L464=TPS0 +L465=TPS0L +L466=TO0 +L467=TO0L +L468=TOE0 +L469=TOE0L +L470=TOL0 +L471=TOL0L +L472=TOM0 +L473=TOM0L +L474=IICCTL00 +L475=SPT0 +L476=STT0 +L477=ACKE0 +L478=WTIM0 +L479=SPIE0 +L480=WREL0 +L481=LREL0 +L482=IICE0 +L483=IICCTL10 +L484=DFC0 +L485=SMC0 +L486=DAD0 +L487=CLD0 +L488=WUP0 +L489=IICWL0 +L490=IICWH0 +L491=SVA0 +L492=PER3 +L493=IICA1EN +L494=P20 +L495=PM20 +L496=PU20 +L497=EGP2 +L498=EGN2 +L499=IICA1 +L500=IICS1 +L501=SPD1 +L502=STD1 +L503=ACKD1 +L504=TRC1 +L505=COI1 +L506=EXC1 +L507=ALD1 +L508=MSTS1 +L509=IICF1 +L510=IICRSV1 +L511=STCEN1 +L512=IICBSY1 +L513=STCF1 +L514=IICCTL01 +L515=SPT1 +L516=STT1 +L517=ACKE1 +L518=WTIM1 +L519=SPIE1 +L520=WREL1 +L521=LREL1 +L522=IICE1 +L523=IICCTL11 +L524=DFC1 +L525=SMC1 +L526=DAD1 +L527=CLD1 +L528=WUP1 +L529=IICWL1 +L530=IICWH1 +L531=SVA1 +[Local Variable] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Mode=Proper +[Trace View] +Geometry=0, 0, 0, 0 +Window=Hide +Mode=Normal +Frame=Show +Timetag=Clock +Address=Show +Data=Hex +Status=Show +Address2=Show +Data2=Hex +Status2=Show +Disasm=Show +Pick Up=Off +Synchronize=0 0 0 0 +Frameno= +Frameno1= +Frameno2= +Frameno3= +Frameno4= +Frameno5= +Frameno6= +Frameno7= +Frameno8= +Frameno9= +Frameno10= +Frameno11= +Frameno12= +Frameno13= +Frameno14= +Frameno15= +Frameno16= +ScanStatus=ALL +Access Size=B +ScanAddress=<>-<> +Mask Address= +ScanData= +Mask Data= +ScanExternal= +Mask External= +Scan=OFF +Direction=Down +FindStart= +FindEnd= +SaveRange=Screen +SaveStart= +SaveEnd= +[Register] +Geometry=0, 0, 0, 0 +Window=Hide +Mode=Hex +Boundary=0 +Pickup=OFF +Name=Functional +Register Bank=0 +RP0=3 +RP1=3 +RP2=3 +RP3=3 +PC=3 +SP=3 +PSW=3 +ES=3 +CS=3 +[Event Manager] +Geometry=0, 0, 0, 0 +Window=Hide +Sort by=Unsort +Detail=OFF +[Event Set] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Event Link] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Break] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Trace] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Delay Count0=2 +Count=0 +[Snap] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Stub] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Timer] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +TimerRateRunBreak=0011 +TimerBreakOutRunBreak=OFF +Count=0 +[Timer Monitor] +Count=0 +[Dmm] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Variable] +Geometry=1153, 8, 440, 300 +Window=Normal +Boundary=13762700 +0=.BT_IN_CHG_n,P,N,A,+,1 +Line=1 +[Quick Watch] +0=BT_IN_CHG_n,P,A,1 +1= +2= +3= +4= +5= +6= +7= +8= +9= +10= +11= +12= +13= +14= +15= +[Software Break] +Geometry=0, 0, 0, 0 +Window=Hide +Width=150 30 200 100 +Name0=Swb00002 +Address0=pm.c#_tsk_batt+0x27 +Window0=ASM +Status0=ON +Name1=Swb00001 +Address1=pm.c#_tsk_batt+0x24 +Window1=ASM +Status1=ON +Count=2 +[Reset] +Debugger=ON +Symbol=OFF +Target CPU=OFF +[Extended Option] +OnClick Software Break=ON +TraceTimetag=x1 +Redraw=500 +Break When Access Function=OFF +Break When Access Whole=Select +Verify=ON +Break Sound=ON +TraceAutoClear=OFF +RRM Clock=Internal +CKC Register Value=0x09 +RRM Internal Clock Frequency=8.000 +[About] +Version=Program +[Pseudo Emulation] +Geometry=0, 0, 0, 0 +Window=Hide +[Data Flash Option] +Data Flash Emulation=OFF +[List] +Geometry=0, 0, 0, 0 +Window=Hide +[Console] +Geometry=0, 0, 0, 0 +Window=Hide diff --git a/snake_branches/3.40_jane/yav_mcu_bsr.prj b/snake_branches/3.40_jane/yav_mcu_bsr.prj new file mode 100644 index 0000000..4292dd6 --- /dev/null +++ b/snake_branches/3.40_jane/yav_mcu_bsr.prj @@ -0,0 +1,1408 @@ +[ProjectManager] +Version=6.00 +Path=C:\78k_data\yav-mcu-basara\snake_trunk\ +Title=yav-mcu +Series=78K0R.PM +Device=uPD79F0104 +DeviceVer=E1.00b +DebugMode=1 +Target=bsr.lmf +[BuildMode0] +BuildModeName=Debug Build +TargetFile=0 +[BuildMode1] +BuildModeName=Release Build +TargetFile=0 +[Tools] +MakeFile=yav_mcu_bsr.mak +Debugger=C:\Program Files (x86)\NEC Electronics Tools\ID78K0R-QB\V3.61\BIN\IDK0R32G.EXE +DebOption= +DebCpuReset=1 +DebSymReset=1 +MuitiLoad=0 +LoadPrjNum=0 +CheckVersion=CC78K0R|W2.13;RA78K0R|W1.33 +[Option.IDK0R32G] +File=\\tsclient\C\78k_data\yav-mcu-basara\trunk\yav_mcu_bsr.pri +[BuildMode2] +BuildModeName=K0R_dbg +TargetFile=0 +[BuildMode3] +BuildModeName=BSR_dbg +TargetFile=0 +[BuildMode4] +BuildModeName=BSR_rel +TargetFile=0 +[BuildMode5] +BuildModeName=BSR_WM0 +TargetFile=0 +[Options.OC78K0R 0] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 1] +Version=100 +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 2] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=0 +UN=FF +UST= +USZ= +K=0 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 3] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 4] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 5] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[BuildBefore-AfterCmd] +Before1=c:\cygwin\bin\touch magic.c +After1=ruby nec_s_2_bsrbin2.rb bsr.hex +[ToolSet] +ToolSetName=(ύX)78K0R Software Package V1.10 +Tool1=CC78K0R|W2.13 +Tool2=RA78K0R|W1.33 +Tool3=SK78K0R|V3.10 +Tool4=ID78K0R-QB|V3.61 +[Options.RA78K0R 0] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 1] +Version=100 +G=0 +GA=0 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 2] +Version=100 +O0= +O1=obj +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +P0=inter_asm +KA=1 +KS=1 +KX=1 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT=-pinter_asm -ks -kx +[Options.RA78K0R 3] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 4] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 5] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[SrcFile] +Source1=loader.c +Source2=pm.c +Source3=i2c_ctr.c +Source4=main.c +Source5=magic.c +Source6=WDT.c +Source7=i2c_mcu.c +Source8=i2c_twl.c +Source9=led.c +Source10=rtc.c +Source11=vreg_ctr.c +Source12=vreg_twl.c +Source13=adc.c +Source14=renge\renge.c +Source15=accero.c +Source16=self_flash.c +Source17=sw.c +Source18=task_debug.c +Source19=task_misc.c +Source20=task_sys.c +Source21=pedo_alg_thre_det2.c +Source22=ini_VECT.c +Source23=task_status.c +Source24=led_cam.c +Source25=led_pow.c +Source26=hal.c +Source27=batt_params.c +Source28=voltable.c +Source29=pedo_lpf_coeff.c +Source30=kanaria.asm +Source31=kanaria_c.c +Source32=get_ei.asm +Source33=util_funcs.c +Source34=i2c_mcu-sub.c +[Options.CC78K0R 0] +Version=210 +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 1] +Version=210 +Memorymodel=2 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1128 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=0 +Outdebug=1153 +Outasmsrcchk=0 +Outasmsrc=1157 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1173 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=0 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=1 +FarROMization=1 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rll.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Define3=_TEG_,proc_is_ke3 +Define4=proc_is_ke3 +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include2=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1069 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 vreg_ctr.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 vreg_twl.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 renge.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 self_flash.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 3] +Version=210 +Define0=_debug_,proc_is_bsr,_TEG_ +Define1=_debug_,proc_is_bsr +Define2=proc_is_bsr +Define3=_TEG_,proc_is_ke3 +Define4=proc_is_ke3 +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 4] +Version=210 +Define0=proc_is_bsr +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 5] +Version=210 +Define0= +Define1=_debug_,proc_is_bsr,_TEG_,_WM0_ +Define2=_debug_,proc_is_bsr,_TEG_,_WM0 +Define3=_debug_,proc_is_bsr,_TEG_ +Define4=_debug_,proc_is_bsr +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[IncFile] +Include1=incs_loader.h +Include2=config.h +Include3=jhl_defs.h +Include4=user_define.h +Include5=hal.h +Include6=bsr_system.h +Include7=renge\renge.h +Include8=renge\renge_defs.h +Include9=renge\renge_task_immediate.h +Include10=vreg_ctr.h +Include11=vreg_twl.h +Include12=loader.h +Include13=i2c_mcu.h +Include14=WDT.h +Include15=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +Include16=fsl_user.h +Include17=i2c_ctr.h +Include18=pm.h +Include19=rtc.h +Include20=reboot.h +Include21=magic.h +Include22=incs.h +Include23=i2c_twl.h +Include24=accero.h +Include25=pedometer.h +Include26=sw.h +Include27=adc.h +Include28=led.h +Include29=batt_params.h +Include30=pool.h +Include31=i2c_twl_defs.h +Include32=renge\renge_task_intval.h +Include33=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h +Include34=self_flash.h +Include35=util_funcs.h +Include36=i2c_mcu_sub.h +[Options.LK78K0R 0] +Version=100 +O0=bsr_k0r.lmf +O1=bsr.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=1 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 1] +Version=100 +O0=a.lmf +G=0 +E=0 +E0=a.elk +GO=0 +GOValue= +GOStart=FC00 +GOSizeValue=1024 +GI=0 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=1 +MemInfoCheck=0 +P=1 +P0=a.map +MI=0 +GB=0 +GBValue= +KM=1 +KD=1 +KP=0 +KL=0 +LF=0 +LL=0 +S=0 +W=1 +SELFCheck=0 +SELF=0 +ZB= +CommandFile=0 +[Options.LK78K0R 2] +Version=100 +O0=bsr.lmf +O1=bsr_k0r.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=0 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=1B339499E033F240BFAA +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=7EFBFF +KM=1 +KD=0 +KP=0 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib +B1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +OFILE=C:\78k_data\yav-mcu-basara\snake_trunk\bsr.lmf +[Options.LK78K0R 3] +Version=100 +O0=bsr_bsr.lmf +O1=bsr_k0r.lmf +O2=bsr.lmf +O3=flash.lmf +O4=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_bsr.map +P1=bsr_k0r.map +P2=bsr.map +P3=flash.map +P4=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 4] +Version=100 +O0=bsr_k0r.lmf +O1=bsr.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=1 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 5] +Version=100 +O0=bsr_bsr.lmf +O1=bsr_k0r.lmf +O2=bsr.lmf +O3=flash.lmf +O4=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_bsr.map +P1=bsr_k0r.map +P2=bsr.map +P3=flash.map +P4=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LCNV78K0R 0] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 1] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 2] +Version=100 +LCNV_GO=0 +O0=inter_asm +E=0 +CommandFile=0 +[Options.LCNV78K0R 3] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 4] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 5] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.78K0R] +BuildMode=2 +BuildMode2=K0R_dbg +BuildMode3=BSR_dbg +BuildMode4=BSR_rel +BuildMode5=BSR_WM0 +DefaultMode2=1 +DefaultMode3=1 +DefaultMode4=1 +DefaultMode5=1 diff --git a/snake_branches/3.40_jane/yav_mcu_bsr.prk b/snake_branches/3.40_jane/yav_mcu_bsr.prk new file mode 100644 index 0000000..d4ea9f8 --- /dev/null +++ b/snake_branches/3.40_jane/yav_mcu_bsr.prk @@ -0,0 +1,15 @@ +[ProjectManager] +FrameMax=0 +FrameX=2 +FrameY=0 +FrameCX=1363 +FrameCY=1108 +OpenFile1=pm.c,0,45,36,1021,638,65,546,65,0 +OpenFile2=ProjectWindow +PrjPos=0,0,706,0,291 +OpenFile3=OutputWindow +OutputPos=0,354,837,394,1112 +OpenFile4=config.h,0,100,100,984,672,2,11,2,0 +ActivePRJ=yav_mcu_bsr.prj +[ProjectWindow] +ProjectWindowDispType=0 diff --git a/snake_branches/3.40_jane/yav_mcu_bsr.prw b/snake_branches/3.40_jane/yav_mcu_bsr.prw new file mode 100644 index 0000000..7c0bbd6 --- /dev/null +++ b/snake_branches/3.40_jane/yav_mcu_bsr.prw @@ -0,0 +1,8 @@ +[System] +System1=default +[default] +Project1=yav_mcu_bsr.prj +[BATCH_BUILD] +Build1=yav_mcu_bsr.prj,Debug Build,1 +Build2=yav_mcu_bsr.prj,Release Build,0 +Build3=yav_mcu_bsr.prj,BSR_WM0,0 diff --git a/snake_branches/3.40_jane/yav_mcu_bsr.sdb b/snake_branches/3.40_jane/yav_mcu_bsr.sdb new file mode 100644 index 0000000..a70bdb2 --- /dev/null +++ b/snake_branches/3.40_jane/yav_mcu_bsr.sdb @@ -0,0 +1,325 @@ +[SdbInfo] +Ver=5 +[loader.c] +T=52b3fb69 +1=incs_loader.h +2=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +3=fsl_user.h +4=i2c_ctr.h +5=i2c_mcu.h +6=pm.h +7=rtc.h +8=reboot.h +9=WDT.h +10=magic.h +[pm.c] +T=5320f646 +1=incs.h +2=adc.h +3=led.h +4=pm.h +5=renge\renge.h +6=batt_params.h +7=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +8=fsl_user.h +9=vreg_twl.h +10=i2c_mcu.h +[i2c_ctr.c] +T=51c8f7f4 +1=incs.h +2=rtc.h +3=pedometer.h +[main.c] +T=51c8f7f4 +1=incs.h +2=rtc.h +3=pm.h +4=accero.h +5=led.h +6=adc.h +7=i2c_mcu.h +8=pool.h +[magic.c] +T=531d683e +1=magic.h +2=config.h +[WDT.c] +T=51c8f7fd +1=incs_loader.h +[i2c_mcu.c] +T=52e9bc95 +1=incs_loader.h +2=i2c_mcu.h +3=loader.h +4=util_funcs.h +5=i2c_mcu_sub.h +[i2c_twl.c] +T=51c8f7f9 +1=incs_loader.h +2=i2c_twl_defs.h +3=i2c_twl.h +4=vreg_twl.h +5=WDT.h +[led.c] +T=52296ef8 +1=incs.h +2=led.h +[rtc.c] +T=51c8f7f4 +1=incs.h +[vreg_ctr.c] +T=522d6d56 +1=incs.h +2=vreg_ctr.h +3=rtc.h +4=led.h +5=accero.h +6=pm.h +7=pool.h +8=vreg_twl.h +9=sw.h +10=WDT.h +11=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +12=fsl_user.h +[vreg_twl.c] +T=51c8f7f9 +1=incs.h +2=jhl_defs.h +3=led.h +4=vreg_twl.h +5=adc.h +[adc.c] +T=51c8f7fd +1=incs.h +2=adc.h +3=pm.h +4=led.h +5=vreg_twl.h +6=i2c_mcu.h +[renge\renge.c] +T=511c3fe3 +1=renge\renge.h +2=renge\renge_task_intval.h +3=renge\renge_task_immediate.h +4=WDT.h +5=config.h +6=user_define.h +7=util_funcs.h +8=bsr_system.h +[accero.c] +T=51c8f7f5 +1=incs.h +2=accero.h +3=i2c_mcu.h +4=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h +[self_flash.c] +T=51c8f7fa +1=incs_loader.h +2=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +3=fsl_user.h +4=i2c_ctr.h +5=i2c_mcu.h +6=pool.h +7=magic.h +8=pm.h +9=WDT.h +10=util_funcs.h +[sw.c] +T=531d6619 +1=incs.h +2=i2c_twl.h +3=i2c_ctr.h +4=led.h +5=pm.h +6=rtc.h +7=sw.h +[task_debug.c] +T=51c8f7f9 +1=incs_loader.h +2=renge\renge.h +3=pm.h +4=accero.h +[task_misc.c] +T=5320f661 +1=incs.h +2=renge\renge.h +3=pm.h +4=accero.h +5=adc.h +6=i2c_mcu.h +7=led.h +8=vreg_twl.h +[task_sys.c] +T=52e9b9fb +1=incs.h +2=i2c_twl.h +3=i2c_ctr.h +4=led.h +5=accero.h +6=pm.h +7=rtc.h +8=sw.h +9=adc.h +10=self_flash.h +11=i2c_mcu.h +12=vreg_twl.h +[pedo_alg_thre_det2.c] +T=51c8f7f9 +1=incs.h +2=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h +3=accero.h +4=pedometer.h +5=pool.h +[ini_VECT.c] +T=51c8f7fa +1=config.h +[task_status.c] +T=52a9795d +1=incs_loader.h +2=renge\renge.h +3=pm.h +4=accero.h +5=adc.h +6=i2c_mcu.h +7=led.h +[led_cam.c] +T=51c8f7f9 +1=incs.h +2=led.h +3=vreg_twl.h +[led_pow.c] +T=51c8f7f5 +1=incs.h +2=led.h +3=pm.h +[hal.c] +T=51c8f7f9 +1=incs_loader.h +[batt_params.c] +T=522d7dd3 +1=jhl_defs.h +2=batt_params.h +[voltable.c] +T=51c8f7fa +1=incs.h +[pedo_lpf_coeff.c] +T=51c8f7f9 +1=incs.h +[kanaria.asm] +T=511c3fe7 +[kanaria_c.c] +T=51c8f7f9 +1=incs.h +[get_ei.asm] +T=511c3fe3 +[util_funcs.c] +T=51c8f7fd +1=incs_loader.h +2=WDT.h +[i2c_mcu-sub.c] +T=51c8f7fa +1=incs.h +2=i2c_mcu.h +3=loader.h +4=util_funcs.h +5=i2c_mcu_sub.h +6=pm.h +[incs_loader.h] +T=51c8f7f9 +1=jhl_defs.h +2=config.h +3=user_define.h +4=hal.h +5=bsr_system.h +6=renge\renge.h +7=vreg_ctr.h +8=vreg_twl.h +[config.h] +T=5320f66a +[jhl_defs.h] +T=52a97827 +[user_define.h] +T=52a97392 +[hal.h] +T=51c8f7f9 +[bsr_system.h] +T=522d6d56 +[renge\renge.h] +T=511c3fe3 +1=renge\renge_defs.h +2=renge\renge_task_immediate.h +[renge\renge_defs.h] +T=511c3fe3 +[renge\renge_task_immediate.h] +T=511c3fe3 +1=renge\renge_defs.h +[vreg_ctr.h] +T=52004274 +1=config.h +[vreg_twl.h] +T=51c8f7f9 +[loader.h] +T=51c8f7fa +[i2c_mcu.h] +T=51c8f7fd +[WDT.h] +T=51c8f7fd +[..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h] +T=49a3bd4e +[fsl_user.h] +T=51c8f7fa +[i2c_ctr.h] +T=51c8f7f5 +[pm.h] +T=5306cd98 +[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=52eb3448 +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/3.40_jane/ベースからの変更.xls b/snake_branches/3.40_jane/ベースからの変更.xls new file mode 100644 index 0000000000000000000000000000000000000000..5212dac6485080dca2bfd246e855585895ff82af GIT binary patch literal 26624 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 literal 0 HcmV?d00001 diff --git a/snake_branches/3.40_jane/覚え書き.txt b/snake_branches/3.40_jane/覚え書き.txt new file mode 100644 index 0000000..28269c4 --- /dev/null +++ b/snake_branches/3.40_jane/覚え書き.txt @@ -0,0 +1,9 @@ +A܂Ƃ wiki ɏȂƂȂǁB + +2.2C +SNAKE Ή (vCg) + +2.2D +SNAKE system updater mcu vZX쐬Ɍ߁A +o[Wԍ̂݁A2.2D ɂȂĂ +

!x3nh0itvEU@MSR|^Z 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 u#N%`M6v%(sL>Q7l%B&jq-nW$Ty!y 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