From 65cc80852f266ebf94832a38d2d5f5d16f523b3e Mon Sep 17 00:00:00 2001 From: n2232 Date: Fri, 24 May 2013 04:29:52 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=BF=E3=82=B0=20SDK6=205th=20NUP=E3=80=82?= 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@541 013db118-44a6-b54f-8bf7-843cb86687b1 --- tags/2.25_SDK6.0/OMakefile | 159 ++ tags/2.25_SDK6.0/OMakeroot | 4 + tags/2.25_SDK6.0/VCProj/Debug/BuildLog.htm | Bin 0 -> 3992 bytes .../VCProj/Debug/bsr_trunk.lastbuildstate | 2 + tags/2.25_SDK6.0/VCProj/Debug/bsr_trunk.log | 57 + .../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 tags/2.25_SDK6.0/VCProj/bsr_trunk.ncb | Bin 0 -> 912384 bytes tags/2.25_SDK6.0/VCProj/bsr_trunk.opensdf | Bin 0 -> 30 bytes tags/2.25_SDK6.0/VCProj/bsr_trunk.sdf | Bin 0 -> 1069056 bytes tags/2.25_SDK6.0/VCProj/bsr_trunk.sln | 20 + tags/2.25_SDK6.0/VCProj/bsr_trunk.sln.old | 20 + tags/2.25_SDK6.0/VCProj/bsr_trunk.suo | Bin 0 -> 74752 bytes tags/2.25_SDK6.0/VCProj/bsr_trunk.suo.old | Bin 0 -> 45056 bytes tags/2.25_SDK6.0/VCProj/bsr_trunk.vcproj | 594 +++++++ .../VCProj/bsr_trunk.vcproj.NCL.N2232.user | 65 + tags/2.25_SDK6.0/VCProj/bsr_trunk.vcxproj | 161 ++ .../VCProj/bsr_trunk.vcxproj.filters | 258 +++ .../2.25_SDK6.0/VCProj/bsr_trunk.vcxproj.user | 3 + tags/2.25_SDK6.0/WDT.c | 12 + tags/2.25_SDK6.0/WDT.h | 20 + tags/2.25_SDK6.0/accero.c | 274 +++ tags/2.25_SDK6.0/accero.h | 14 + tags/2.25_SDK6.0/adc.c | 475 ++++++ tags/2.25_SDK6.0/adc.h | 48 + tags/2.25_SDK6.0/batt_params.c | 130 ++ tags/2.25_SDK6.0/batt_params.h | 56 + tags/2.25_SDK6.0/bsr.hex | 1021 +++++++++++ tags/2.25_SDK6.0/bsr.lmf | Bin 0 -> 186396 bytes tags/2.25_SDK6.0/bsr_k0r.map | 897 ++++++++++ tags/2.25_SDK6.0/bsr_mcu.dr | 46 + tags/2.25_SDK6.0/bsr_system.h | 74 + tags/2.25_SDK6.0/config.h | 111 ++ tags/2.25_SDK6.0/fsl.h | 362 ++++ tags/2.25_SDK6.0/fsl_user.h | 113 ++ tags/2.25_SDK6.0/get_ei.asm | 26 + tags/2.25_SDK6.0/hal.c | 187 ++ tags/2.25_SDK6.0/hal.h | 16 + tags/2.25_SDK6.0/hoge.bin | Bin 0 -> 16387 bytes tags/2.25_SDK6.0/i2c_ctr.c | 312 ++++ tags/2.25_SDK6.0/i2c_ctr.h | 210 +++ tags/2.25_SDK6.0/i2c_mcu-sub.c | 124 ++ tags/2.25_SDK6.0/i2c_mcu.c | 657 +++++++ tags/2.25_SDK6.0/i2c_mcu.h | 40 + tags/2.25_SDK6.0/i2c_mcu_sub.h | 9 + tags/2.25_SDK6.0/i2c_twl.c | 246 +++ tags/2.25_SDK6.0/i2c_twl.h | 7 + tags/2.25_SDK6.0/i2c_twl_defs.h | 196 +++ tags/2.25_SDK6.0/incs.h | 44 + tags/2.25_SDK6.0/incs_loader.h | 49 + tags/2.25_SDK6.0/ini_VECT.c | 347 ++++ tags/2.25_SDK6.0/jhl_defs.h | 25 + tags/2.25_SDK6.0/kanaria.asm | 12 + tags/2.25_SDK6.0/kanaria_c.c | 18 + tags/2.25_SDK6.0/led.c | 399 +++++ tags/2.25_SDK6.0/led.h | 142 ++ tags/2.25_SDK6.0/led_cam.c | 156 ++ tags/2.25_SDK6.0/led_pow.c | 296 ++++ tags/2.25_SDK6.0/loader.c | 416 +++++ tags/2.25_SDK6.0/loader.h | 6 + tags/2.25_SDK6.0/magic.c | 33 + tags/2.25_SDK6.0/magic.h | 24 + tags/2.25_SDK6.0/main.c | 100 ++ tags/2.25_SDK6.0/nec_s_2_bsrbin2.rb | 82 + tags/2.25_SDK6.0/pedo_alg_thre_det2.c | 567 +++++++ tags/2.25_SDK6.0/pedo_lpf_coeff.c | 87 + tags/2.25_SDK6.0/pedo_lpf_coeff.h | 84 + tags/2.25_SDK6.0/pedometer.h | 36 + tags/2.25_SDK6.0/pm.c | 1509 +++++++++++++++++ tags/2.25_SDK6.0/pm.h | 222 +++ tags/2.25_SDK6.0/pool.h | 24 + tags/2.25_SDK6.0/reboot.c | 23 + tags/2.25_SDK6.0/reboot.h | 6 + tags/2.25_SDK6.0/renge/renge.c | 313 ++++ tags/2.25_SDK6.0/renge/renge.h | 26 + tags/2.25_SDK6.0/renge/renge_defs.h | 56 + tags/2.25_SDK6.0/renge/renge_task_config.rb | 59 + tags/2.25_SDK6.0/renge/renge_task_immediate.h | 25 + tags/2.25_SDK6.0/renge/renge_task_intval.h | 37 + tags/2.25_SDK6.0/renge/renge_tasks.txt | 11 + tags/2.25_SDK6.0/rtc.c | 182 ++ tags/2.25_SDK6.0/rtc.h | 24 + tags/2.25_SDK6.0/self_flash.c | 635 +++++++ tags/2.25_SDK6.0/self_flash.h | 9 + tags/2.25_SDK6.0/sw.c | 246 +++ tags/2.25_SDK6.0/sw.h | 20 + tags/2.25_SDK6.0/task_debug.c | 122 ++ tags/2.25_SDK6.0/task_misc.c | 420 +++++ tags/2.25_SDK6.0/task_status.c | 89 + tags/2.25_SDK6.0/task_sys.c | 821 +++++++++ tags/2.25_SDK6.0/user_define.h | 214 +++ tags/2.25_SDK6.0/util_funcs.c | 65 + tags/2.25_SDK6.0/util_funcs.h | 16 + tags/2.25_SDK6.0/voltable.c | 64 + tags/2.25_SDK6.0/voltable.h | 57 + tags/2.25_SDK6.0/vreg_ctr.c | 627 +++++++ tags/2.25_SDK6.0/vreg_ctr.h | 327 ++++ tags/2.25_SDK6.0/vreg_twl.c | 169 ++ tags/2.25_SDK6.0/vreg_twl.h | 127 ++ tags/2.25_SDK6.0/yav_mcu_bsr.plg | 40 + tags/2.25_SDK6.0/yav_mcu_bsr.pri | 1028 +++++++++++ tags/2.25_SDK6.0/yav_mcu_bsr.prj | 1408 +++++++++++++++ tags/2.25_SDK6.0/yav_mcu_bsr.prk | 17 + tags/2.25_SDK6.0/yav_mcu_bsr.prw | 8 + tags/2.25_SDK6.0/yav_mcu_bsr.sdb | 325 ++++ tags/2.25_SDK6.0/ベースからの変更.xls | Bin 0 -> 26624 bytes tags/2.25_SDK6.0/覚え書き.txt | 9 + 110 files changed, 19768 insertions(+) create mode 100644 tags/2.25_SDK6.0/OMakefile create mode 100644 tags/2.25_SDK6.0/OMakeroot create mode 100644 tags/2.25_SDK6.0/VCProj/Debug/BuildLog.htm create mode 100644 tags/2.25_SDK6.0/VCProj/Debug/bsr_trunk.lastbuildstate create mode 100644 tags/2.25_SDK6.0/VCProj/Debug/bsr_trunk.log create mode 100644 tags/2.25_SDK6.0/VCProj/Debug/bsr_trunk.unsuccessfulbuild create mode 100644 tags/2.25_SDK6.0/VCProj/_UpgradeReport_Files/UpgradeReport.css create mode 100644 tags/2.25_SDK6.0/VCProj/_UpgradeReport_Files/UpgradeReport.xslt create mode 100644 tags/2.25_SDK6.0/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif create mode 100644 tags/2.25_SDK6.0/VCProj/_UpgradeReport_Files/UpgradeReport_Plus.gif create mode 100644 tags/2.25_SDK6.0/VCProj/bsr_trunk.ncb create mode 100644 tags/2.25_SDK6.0/VCProj/bsr_trunk.opensdf create mode 100644 tags/2.25_SDK6.0/VCProj/bsr_trunk.sdf create mode 100644 tags/2.25_SDK6.0/VCProj/bsr_trunk.sln create mode 100644 tags/2.25_SDK6.0/VCProj/bsr_trunk.sln.old create mode 100644 tags/2.25_SDK6.0/VCProj/bsr_trunk.suo create mode 100644 tags/2.25_SDK6.0/VCProj/bsr_trunk.suo.old create mode 100644 tags/2.25_SDK6.0/VCProj/bsr_trunk.vcproj create mode 100644 tags/2.25_SDK6.0/VCProj/bsr_trunk.vcproj.NCL.N2232.user create mode 100644 tags/2.25_SDK6.0/VCProj/bsr_trunk.vcxproj create mode 100644 tags/2.25_SDK6.0/VCProj/bsr_trunk.vcxproj.filters create mode 100644 tags/2.25_SDK6.0/VCProj/bsr_trunk.vcxproj.user create mode 100644 tags/2.25_SDK6.0/WDT.c create mode 100644 tags/2.25_SDK6.0/WDT.h create mode 100644 tags/2.25_SDK6.0/accero.c create mode 100644 tags/2.25_SDK6.0/accero.h create mode 100644 tags/2.25_SDK6.0/adc.c create mode 100644 tags/2.25_SDK6.0/adc.h create mode 100644 tags/2.25_SDK6.0/batt_params.c create mode 100644 tags/2.25_SDK6.0/batt_params.h create mode 100644 tags/2.25_SDK6.0/bsr.hex create mode 100644 tags/2.25_SDK6.0/bsr.lmf create mode 100644 tags/2.25_SDK6.0/bsr_k0r.map create mode 100644 tags/2.25_SDK6.0/bsr_mcu.dr create mode 100644 tags/2.25_SDK6.0/bsr_system.h create mode 100644 tags/2.25_SDK6.0/config.h create mode 100644 tags/2.25_SDK6.0/fsl.h create mode 100644 tags/2.25_SDK6.0/fsl_user.h create mode 100644 tags/2.25_SDK6.0/get_ei.asm create mode 100644 tags/2.25_SDK6.0/hal.c create mode 100644 tags/2.25_SDK6.0/hal.h create mode 100644 tags/2.25_SDK6.0/hoge.bin create mode 100644 tags/2.25_SDK6.0/i2c_ctr.c create mode 100644 tags/2.25_SDK6.0/i2c_ctr.h create mode 100644 tags/2.25_SDK6.0/i2c_mcu-sub.c create mode 100644 tags/2.25_SDK6.0/i2c_mcu.c create mode 100644 tags/2.25_SDK6.0/i2c_mcu.h create mode 100644 tags/2.25_SDK6.0/i2c_mcu_sub.h create mode 100644 tags/2.25_SDK6.0/i2c_twl.c create mode 100644 tags/2.25_SDK6.0/i2c_twl.h create mode 100644 tags/2.25_SDK6.0/i2c_twl_defs.h create mode 100644 tags/2.25_SDK6.0/incs.h create mode 100644 tags/2.25_SDK6.0/incs_loader.h create mode 100644 tags/2.25_SDK6.0/ini_VECT.c create mode 100644 tags/2.25_SDK6.0/jhl_defs.h create mode 100644 tags/2.25_SDK6.0/kanaria.asm create mode 100644 tags/2.25_SDK6.0/kanaria_c.c create mode 100644 tags/2.25_SDK6.0/led.c create mode 100644 tags/2.25_SDK6.0/led.h create mode 100644 tags/2.25_SDK6.0/led_cam.c create mode 100644 tags/2.25_SDK6.0/led_pow.c create mode 100644 tags/2.25_SDK6.0/loader.c create mode 100644 tags/2.25_SDK6.0/loader.h create mode 100644 tags/2.25_SDK6.0/magic.c create mode 100644 tags/2.25_SDK6.0/magic.h create mode 100644 tags/2.25_SDK6.0/main.c create mode 100755 tags/2.25_SDK6.0/nec_s_2_bsrbin2.rb create mode 100644 tags/2.25_SDK6.0/pedo_alg_thre_det2.c create mode 100644 tags/2.25_SDK6.0/pedo_lpf_coeff.c create mode 100644 tags/2.25_SDK6.0/pedo_lpf_coeff.h create mode 100644 tags/2.25_SDK6.0/pedometer.h create mode 100644 tags/2.25_SDK6.0/pm.c create mode 100644 tags/2.25_SDK6.0/pm.h create mode 100644 tags/2.25_SDK6.0/pool.h create mode 100644 tags/2.25_SDK6.0/reboot.c create mode 100644 tags/2.25_SDK6.0/reboot.h create mode 100644 tags/2.25_SDK6.0/renge/renge.c create mode 100644 tags/2.25_SDK6.0/renge/renge.h create mode 100644 tags/2.25_SDK6.0/renge/renge_defs.h create mode 100644 tags/2.25_SDK6.0/renge/renge_task_config.rb create mode 100644 tags/2.25_SDK6.0/renge/renge_task_immediate.h create mode 100644 tags/2.25_SDK6.0/renge/renge_task_intval.h create mode 100644 tags/2.25_SDK6.0/renge/renge_tasks.txt create mode 100644 tags/2.25_SDK6.0/rtc.c create mode 100644 tags/2.25_SDK6.0/rtc.h create mode 100644 tags/2.25_SDK6.0/self_flash.c create mode 100644 tags/2.25_SDK6.0/self_flash.h create mode 100644 tags/2.25_SDK6.0/sw.c create mode 100644 tags/2.25_SDK6.0/sw.h create mode 100644 tags/2.25_SDK6.0/task_debug.c create mode 100644 tags/2.25_SDK6.0/task_misc.c create mode 100644 tags/2.25_SDK6.0/task_status.c create mode 100644 tags/2.25_SDK6.0/task_sys.c create mode 100644 tags/2.25_SDK6.0/user_define.h create mode 100644 tags/2.25_SDK6.0/util_funcs.c create mode 100644 tags/2.25_SDK6.0/util_funcs.h create mode 100644 tags/2.25_SDK6.0/voltable.c create mode 100644 tags/2.25_SDK6.0/voltable.h create mode 100644 tags/2.25_SDK6.0/vreg_ctr.c create mode 100644 tags/2.25_SDK6.0/vreg_ctr.h create mode 100644 tags/2.25_SDK6.0/vreg_twl.c create mode 100644 tags/2.25_SDK6.0/vreg_twl.h create mode 100644 tags/2.25_SDK6.0/yav_mcu_bsr.plg create mode 100644 tags/2.25_SDK6.0/yav_mcu_bsr.pri create mode 100644 tags/2.25_SDK6.0/yav_mcu_bsr.prj create mode 100644 tags/2.25_SDK6.0/yav_mcu_bsr.prk create mode 100644 tags/2.25_SDK6.0/yav_mcu_bsr.prw create mode 100644 tags/2.25_SDK6.0/yav_mcu_bsr.sdb create mode 100644 tags/2.25_SDK6.0/ベースからの変更.xls create mode 100644 tags/2.25_SDK6.0/覚え書き.txt diff --git a/tags/2.25_SDK6.0/OMakefile b/tags/2.25_SDK6.0/OMakefile new file mode 100644 index 0000000..42baad6 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/OMakeroot b/tags/2.25_SDK6.0/OMakeroot new file mode 100644 index 0000000..16f4b11 --- /dev/null +++ b/tags/2.25_SDK6.0/OMakeroot @@ -0,0 +1,4 @@ +# +# Include the OMakefile in this directory. +# +.SUBDIRS: . diff --git a/tags/2.25_SDK6.0/VCProj/Debug/BuildLog.htm b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/VCProj/Debug/bsr_trunk.lastbuildstate b/tags/2.25_SDK6.0/VCProj/Debug/bsr_trunk.lastbuildstate new file mode 100644 index 0000000..ed27c09 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/VCProj/Debug/bsr_trunk.log b/tags/2.25_SDK6.0/VCProj/Debug/bsr_trunk.log new file mode 100644 index 0000000..ed3e340 --- /dev/null +++ b/tags/2.25_SDK6.0/VCProj/Debug/bsr_trunk.log @@ -0,0 +1,57 @@ +2012/10/26 18:10:44 にビルドを開始しました。 + 1>ノード 2 上のプロジェクト "C:\78k_data\yav-mcu-basara\trunk\VCProj\bsr_trunk.vcxproj" (build ターゲット)。 + 1>InitializeBuildStatus: + "Debug\bsr_trunk.unsuccessfulbuild" のタッチ タスクを実行しています。 + ClCompile: + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /Zi /nologo /W1 /WX- /O2 /Oy- /D _MBCS /D _MBCS /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TC /analyze- /errorReport:prompt ..\accero.c ..\adc.c ..\batt_params.c ..\hal.c ..\i2c_ctr.c "..\i2c_mcu-sub.c" ..\i2c_mcu.c ..\i2c_twl.c ..\ini_VECT.c ..\kanaria_c.c ..\led.c ..\led_cam.c ..\led_pow.c ..\loader.c ..\magic.c ..\main.c ..\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\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + adc.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + batt_params.c + hal.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + i2c_ctr.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + i2c_mcu-sub.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + i2c_mcu.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + i2c_twl.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + 1>..\i2c_twl.c(223): error C2065: 'DFC0' : 定義されていない識別子です。 + ini_VECT.c + kanaria_c.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + led.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + led_cam.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + led_pow.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + loader.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + 1>..\loader.c(201): error C2059: 構文エラー : 'サフィックスが無効です。' + 1>..\loader.c(201): error C2146: 構文エラー : ')' が、識別子 'b00000110' の前に必要です。 + magic.c + main.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + my_led.c + pedo_alg_thre_det2.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + pedo_lpf_coeff.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + pm.c + 1>c:\78k_data\yav-mcu-basara\trunk\sim/simOnWin.h(14): warning C4391: 'void memcpy(void *,void *,unsigned int)' : 組み込み関数に対して戻り値の型が無効です。'void' であるべきです。 + 1>..\pm.c(1340): warning C4090: '=' : 異なる 'const' 修飾子です。 + コードを生成中... + 1>c:\78k_data\yav-mcu-basara\trunk\i2c_mcu.c(300): fatal error C1001: コンパイラで内部エラーが発生しました。 + (コンパイラ ファイル 'f:\dd\vctools\compiler\utc\src\p2\main.c[0x77D9372A:0x00000000]'、行 183) + この問題を回避するには、上記の場所付近のプログラムを単純化するか変更してください。 + 詳細については、Visual C++ ヘルプ メニューのサポート情報コマンドを + 選択してください。またはサポート情報 ヘルプ ファイルを参照してください。 + 1>プロジェクト "C:\78k_data\yav-mcu-basara\trunk\VCProj\bsr_trunk.vcxproj" (build ターゲット) のビルドが終了しました -- 失敗。 + +ビルドに失敗しました。 + +経過時間 00:00:15.85 diff --git a/tags/2.25_SDK6.0/VCProj/Debug/bsr_trunk.unsuccessfulbuild b/tags/2.25_SDK6.0/VCProj/Debug/bsr_trunk.unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/tags/2.25_SDK6.0/VCProj/_UpgradeReport_Files/UpgradeReport.css b/tags/2.25_SDK6.0/VCProj/_UpgradeReport_Files/UpgradeReport.css new file mode 100644 index 0000000..3411f63 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/VCProj/_UpgradeReport_Files/UpgradeReport.xslt b/tags/2.25_SDK6.0/VCProj/_UpgradeReport_Files/UpgradeReport.xslt new file mode 100644 index 0000000..8277446 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/VCProj/bsr_trunk.ncb b/tags/2.25_SDK6.0/VCProj/bsr_trunk.ncb new file mode 100644 index 0000000000000000000000000000000000000000..c3df73580a39448b36d235699ff9a4453c3fcdab GIT binary patch literal 912384 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℞nLY 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
wTg`ZFRO^ELFVrKO7g{37O%!P~hTrty{vBwlY!! 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 z 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 z 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%0D(6gCyK>?5sueXqnc&nY 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 BV|V}n literal 0 HcmV?d00001 diff --git a/tags/2.25_SDK6.0/VCProj/bsr_trunk.opensdf b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/VCProj/bsr_trunk.sdf b/tags/2.25_SDK6.0/VCProj/bsr_trunk.sdf new file mode 100644 index 0000000000000000000000000000000000000000..1fb9ba5d668ac9534457c4c0b46c5898a89b1e96 GIT binary patch literal 1069056 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 G^Zz#&JPt(w literal 0 HcmV?d00001 diff --git a/tags/2.25_SDK6.0/VCProj/bsr_trunk.sln b/tags/2.25_SDK6.0/VCProj/bsr_trunk.sln new file mode 100644 index 0000000..520f84d --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/VCProj/bsr_trunk.sln.old b/tags/2.25_SDK6.0/VCProj/bsr_trunk.sln.old new file mode 100644 index 0000000..2881d87 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/VCProj/bsr_trunk.suo b/tags/2.25_SDK6.0/VCProj/bsr_trunk.suo new file mode 100644 index 0000000000000000000000000000000000000000..04b2cb8237e0a94fd83994b069d36bf60ffda0ee GIT binary patch literal 74752 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 literal 0 HcmV?d00001 diff --git a/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcproj b/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcproj new file mode 100644 index 0000000..1a6531b --- /dev/null +++ b/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcproj @@ -0,0 +1,594 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcproj.NCL.N2232.user b/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcproj.NCL.N2232.user new file mode 100644 index 0000000..257e4e7 --- /dev/null +++ b/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcproj.NCL.N2232.user @@ -0,0 +1,65 @@ + + + + + + + + + + + diff --git a/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcxproj b/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcxproj new file mode 100644 index 0000000..3fe99ad --- /dev/null +++ b/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcxproj @@ -0,0 +1,161 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2} + bsr_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/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcxproj.filters b/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcxproj.filters new file mode 100644 index 0000000..d168232 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcxproj.user b/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcxproj.user new file mode 100644 index 0000000..695b5c7 --- /dev/null +++ b/tags/2.25_SDK6.0/VCProj/bsr_trunk.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/tags/2.25_SDK6.0/WDT.c b/tags/2.25_SDK6.0/WDT.c new file mode 100644 index 0000000..ed3daf3 --- /dev/null +++ b/tags/2.25_SDK6.0/WDT.c @@ -0,0 +1,12 @@ +/* ======================================================== + wdt + + $Id$ + ======================================================== */ +#include "incs_loader.h" + +/* + + gAwb_Ƀ}N̂݁B + +*/ diff --git a/tags/2.25_SDK6.0/WDT.h b/tags/2.25_SDK6.0/WDT.h new file mode 100644 index 0000000..2e28e9d --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/accero.c b/tags/2.25_SDK6.0/accero.c new file mode 100644 index 0000000..aa584ec --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/accero.h b/tags/2.25_SDK6.0/accero.h new file mode 100644 index 0000000..fbf80d6 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/adc.c b/tags/2.25_SDK6.0/adc.c new file mode 100644 index 0000000..94920c7 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/adc.h b/tags/2.25_SDK6.0/adc.h new file mode 100644 index 0000000..6f4ad04 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/batt_params.c b/tags/2.25_SDK6.0/batt_params.c new file mode 100644 index 0000000..a863711 --- /dev/null +++ b/tags/2.25_SDK6.0/batt_params.c @@ -0,0 +1,130 @@ +/* ======================================================== + eЃobe[p[^ + $Id: asdf$ + ======================================================== */ +#include "jhl_defs.h" + +#include "batt_params.h" + + +const bt_param_ bt_param[ /*_BT_PARAM_NUM_*/ ] = // drg񂷂̂ f~drp[^ +{ + // ctr //////////////////////////////////////////////// + // BT_PARAM_CTR_MAXELL + { + { + 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, + 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10, + 0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0, + 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10, + 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30, + 0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70, + 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0, + 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00 + }, + 2, // 2 = 19 bit mode + { 92, (u8)(-256* 0.79), (u8)(-256* 4.35) }, // @(u8)LXǧp[^̂܂܂̕ + 0xD800, // VXeƂĂ͗ǍDȓ + { 0xEA, 0xE8 } + }, + + // BT_PARAM_CTR_PANA + { + { + 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, + 0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10, + 0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50, + 0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00, + 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, + 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 + }, + 1, + { 171, (u8)(-256* 1.00), (u8)(-256* 2.60) }, // @(u8)LXǧp[^̂܂܂̕ + 0xDA20, // VXeƂĂ͗ǍDȓ + { 0x69, 0x67 }, + }, + + // SPFL /////////////////////////////////////////////// + // BT_PARAM_SPFL_MAXELL + { + { + 0xA1, 0x20, 0xB7, 0x50, 0xB9, 0xD0, 0xBB, 0x00, + 0xBC, 0x30, 0xBC, 0x60, 0xBC, 0xA0, 0xBD, 0x10, + 0xBD, 0xC0, 0xBE, 0x70, 0xBF, 0xD0, 0xC2, 0xA0, + 0xC4, 0x00, 0xC8, 0x50, 0xCC, 0x80, 0xD0, 0xB0, + 0x01, 0xA0, 0x25, 0x10, 0x18, 0xB0, 0x17, 0xC0, + 0x95, 0x20, 0x6F, 0xE0, 0x7C, 0x60, 0x35, 0x10, + 0x35, 0x00, 0x37, 0xF0, 0x16, 0xF0, 0x1C, 0xA0, + 0x17, 0x30, 0x11, 0xD0, 0x11, 0xF0, 0x11, 0xF0 + }, + 2, + { 94, (-256* 0.35), (-256* 3.85) }, + 0xDAB0, + { 0xF5, 0xF3 } + }, + + // BT_PARAM_SPFL_PANA + { + { + 0x9C, 0xF0, 0xAD, 0x50, 0xAF, 0xB0, 0xB3, 0x00, + 0xB3, 0xE0, 0XB5, 0x60, 0XB6, 0x70, 0xB7, 0xA0, + 0xBA, 0x00, 0xBC, 0x00, 0xBE, 0x90, 0xC1, 0x60, + 0xC4, 0x00, 0xC7, 0x00, 0xCC, 0xA0, 0xD0, 0xA0, + 0x02, 0x00, 0x19, 0x10, 0x12, 0x00, 0x48, 0x10, + 0x25, 0x10, 0x41, 0xF0, 0x2F, 0xA0, 0x13, 0xF0, + 0x1C, 0xD0, 0x10, 0xD0, 0x0F, 0xA0, 0x11, 0x00, + 0x10, 0xE0, 0x0C, 0x10, 0x0C, 0x00, 0x0C, 0x00 + }, + 2, + { 113, (-256* 0.30), (-256* 2.25) }, + 0xDAA0, + { 0xE7, 0xE5 }, + }, + + // SNAKE ///////////////////////////////////////////// + // BT_PARAM_SNAKE_MAXELL + { + { + 0x9D, 0x80, 0xB7, 0xB0, 0xB8, 0xA0, 0xB9, 0xA0, + 0xBB, 0x40, 0xBC, 0x50, 0xBC, 0xA0, 0xBD, 0x00, + 0xBD, 0x90, 0xBF, 0x30, 0xC0, 0xE0, 0xC3, 0x30, + 0xC5, 0x40, 0xC7, 0x50, 0xCD, 0x40, 0xD0, 0xA0, + 0x01, 0x90, 0x35, 0x10, 0x2F, 0x30, 0x11, 0x00, + 0x29, 0x40, 0x88, 0x50, 0x71, 0xA0, 0x5F, 0xE0, + 0x32, 0xD0, 0x1C, 0xF0, 0x14, 0xF0, 0x1A, 0x80, + 0x1A, 0x80, 0x11, 0x10, 0x12, 0x00, 0x12, 0x00 + }, + 2, + { 86, (-256* 0.6), (-256* 3.675) }, // rcomp, r-hot, r-cold + 0xDAA0, // ocv + { 0xF5, 0xF3 } // compare max, min + }, + + // bt_PARAM_SNAKE_PANA + { + { + 0x9D, 0xA0, 0xA8, 0xF0, 0xAD, 0x90, 0xAF, 0x00, + 0xB3, 0x00, 0xB3, 0xE0, 0xB4, 0xA0, 0xB5, 0x40, + 0xB6, 0x30, 0xB7, 0xE0, 0xB8, 0xC0, 0xBE, 0x70, + 0xC1, 0x40, 0xC4, 0x20, 0xC9, 0xA0, 0xD0, 0x30, + 0x01, 0x10, 0x06, 0x00, 0x2C, 0x20, 0x0D, 0xA0, + 0x37, 0x00, 0x37, 0x30, 0x47, 0xF0, 0x28, 0xF0, + 0x25, 0xF0, 0x37, 0x30, 0x10, 0xF0, 0x14, 0xF0, + 0x0F, 0x70, 0x0D, 0x00, 0x0D, 0x00, 0x0D, 0x00, + }, + 2, + { 106, (-256* 0.925), (-256* 2.3) }, + 0xDA30, // = 55856 + { 0xE9, 0xE7 }, + } + + + // FLOWER ///////////////////////////////////////////// + // BCTR̃obe[gB + + // CLOSER ///////////////////////////////////////////// + // BSPFL̃obe[gB +}; + diff --git a/tags/2.25_SDK6.0/batt_params.h b/tags/2.25_SDK6.0/batt_params.h new file mode 100644 index 0000000..264bcb7 --- /dev/null +++ b/tags/2.25_SDK6.0/batt_params.h @@ -0,0 +1,56 @@ +#ifndef _bt_params_h_ +#define _bt_params_h_ + +// $Id: asdf$ + +#include "jhl_defs.h" +/* + dr CTR | SPFL | YBS + 0 ID = 0 maxell + 120 1 + 360 2 + 750 @ 3 + 1.3k@ 4 + 2.7k 5 pana + 8.2k@ 6 +*/ + + +typedef enum +{ + BT_PARAM_CTR_MAXELL = 0, + BT_PARAM_CTR_PANA, + BT_PARAM_SPFL_MAXELL, + BT_PARAM_SPFL_PANA, + BT_PARAM_SNAKE_MAXELL, + BT_PARAM_SNAKE_PANA, + BT_PARAM_FLOWER_MAXELL, + BT_PARAM_FLOWER_PANA, + BT_PARAM_CLOSER_MAXELL, + BT_PARAM_CLOSER_PANA, + _BT_PARAM_NUM_ +} BT_TYPE; + +typedef struct +{ + u8 rcomp; + s16 up,down; +} rcomp_; + +typedef struct +{ + u8 hi; + u8 low; +} verify_; + +typedef struct +{ + u8 mg_param[64]; + u8 v_scale; + rcomp_ rcomp; + u16 ocv; + verify_ verify; +} bt_param_; + + +#endif diff --git a/tags/2.25_SDK6.0/bsr.hex b/tags/2.25_SDK6.0/bsr.hex new file mode 100644 index 0000000..f4befda --- /dev/null +++ b/tags/2.25_SDK6.0/bsr.hex @@ -0,0 +1,1021 @@ +:02000000570D9A +:04001000C148C348D8 +:02001C006F4A29 +:02002400164B79 +:02002A00614B28 +:080034008E4C314C8A4CCF4E7A +:02004A00C548A7 +:02005A00FF485D +:020062008D4EC1 +:06008000224D5B4DA54D71 +:0400C0007EFBFF04C0 +:0A00C4001B339499E033F240BFAA09 +:1000CE00C7C1FBF8FFCEABACC736F00071F4C6610A +:1000DE00D8710006F98EA89C018C015C10D1DD0A46 +:1000EE007110A6FB710006F9EF0B8C015C80D161DB +:1000FE00E8710006F98F06F931030EF6B1BBF66111 +:10010E004900DD05618900EFF5FDF401FD3101FDCA +:10011E008901FDFE09FD3509FDB52FFDDC2CEFA58E +:10012E00C0C6D7C7360000674C09DE3F318E04F6D5 +:10013E000FC1317B9EFDC411897267318E04F64F5B +:10014E0014896142DF03F6EF01E660610667318EC6 +:10015E00124900207267318E04F64F14896142DF16 +:10016E0003F6EF01E660610687EFBC40F84F3A6197 +:10017E00E88666D161E8FDA206C6D751065B0C3152 +:10018E001A9F08F9D508F9DF06710009F9EF047115 +:10019E000809F98F09F9310505CD3707EF03CD377A +:1001AE0005D908F9FD61298F06F95CE39F06F9511F +:1001BE00035B04318EE7240000DD1023DD0823DF0E +:1001CE000E712006F9D7713006F9D7714006F9D7AE +:1001DE00717BFACEA010CEA180E5F300000000CE18 +:1001EE00A408F5AAFFD78F06F9310508CD0003CD77 +:1001FE00030FEF08CD030EF690BFB401CD0408CD6A +:10020E000508F521FFCE22E9CE23F8CE24F3CE2524 +:10021E00FACE26FCCE275FCE2EFCCF1105F8CF12DC +:10022E000511CF350002CF370019CF530006CBEEA4 +:10023E00FEFFCE3831CE3970CF38050A308700BF79 +:10024E001801BF1A01BF1C01BF1E01D7D7C7F61672 +:10025E00FD8704717BFA31329B0871329B717AFAF9 +:10026E00EF0C717AFAA7F647DFE95203EF01F2C6F7 +:10027E00D7C7C1C1FBF8FF17A1C1E0C18C0A70C17D +:10028E008C0270FDA0021006629D548C0172100447 +:10029E00C6D7C7C1FBF8FFFD5B02D2DD045203EFE8 +:1002AE00698B70FDD403D2DD0771339B5202EF5A76 +:1002BE008C0870FDF003FD3B048B6C0170FDF003A8 +:1002CE00300400BF2401301740BF1C01300400BFB2 +:1002DE0022018C0A91DF04F6BF2A01710BE2CE4493 +:1002EE00FF3182E202EFFAAC0C148E449961790C64 +:1002FE0061690A8C0AD1DFDA8B4CA461F8FDAF4834 +:10030E00FD6404710BE271339BF2C0C6D7C7C1FB0B +:10031E00F8FFFD5B02D2DD045203EF25710AE68B76 +:10032E0070FDD403D2DD0771339B5202EF138C089C +:10033E0070FDF0038C0A70FDF003FD640471339BB5 +:10034E00F2C0C6D7C7C1FBF8FFFD5B02D2DD045277 +:10035E0003EF70710AE6710BE28B70FDD403D2DDF0 +:10036E000771339B5202EF5B710BE231229B44C744 +:10037E003422FBAC0C1652048B99A5A792DFF9C65A +:10038E008B9D518C089D528C0A9D533184BD02EF7A +:10039E00FA717ABDCEB144CBB422FB8C0A318EBE3B +:1003AE00B8CEBB48714BE1714BE5710ABD8C089E0E +:1003BE0044EF0F710BE68C089E448C0A9D50AC0CDA +:1003CE00BD4EF2C0C6D7C716FD1304AF0401BF0C55 +:1003DE000117FDF003D2DD07FD64045202EF01F2B6 +:1003EE00C6D7C716710AE6710BE2669E443182E2E9 +:1003FE0002EFFAF6420401DD09AF0401BF0C01E27F +:10040E00EF01F2C6D7AF2801085CFB08BF2801FD3B +:10041E005A02AF28015CFBBF2801300400BF2A013D +:10042E00301780BF1C01300400BF2201D7AF24015A +:10043E00086C0408BF2401AF28016C0F086C0B0870 +:10044E00BF2801FD5A02AF2A01085CFB08BF2A0132 +:10045E00FD5A02ED1304300400BF2401F6BF2A0139 +:10046E00300B0BBF2801FD5A02300B0FBF2801FDC8 +:10047E005A02300F0FBF2801D731449B01D771327A +:10048E009B6A0E03713B25713B23E0FD110A71201F +:10049E00F000FD5A02F6BF26015024BF1401CB44D2 +:1004AE000014300F0FBF280171239B710BE2710AEC +:1004BE00E6FD1304CE44FF3182E202EFFAFD64043E +:1004CE00AF0401BF0C0171339B71429BD731349B3A +:1004DE0002EFFAFD3B04713A25713A235A0EFC7174 +:1004EE0028F00071439BD77140F000717830027193 +:1004FE003AE6713BE2713BEA713BEE5A06FCCF34B1 +:10050E00024AE552FF711A52710A52714830027155 +:10051E0030300271203002CF330209CF32020B711C +:10052E0030310271203102713BE6717030028E263D +:10053E005CFC9E2671603002D7717830027148F0F3 +:10054E0000D7C72008FBF8FFFD9D085014C15008C6 +:10055E00FDCF07C0CC07048C074C14DE0C8C073182 +:10056E008EFD390A615907EFEECC07048C074C1447 +:10057E0061C8ED3E06CC06008C064C0461C8ED1D2C +:10058E0006300AF9BC02F6BBCEABAC31B2D109C70C +:10059E003641057184C6DEF3F1C73641057184C656 +:1005AE0061DC9C05713BD1AC02148F4005997150F2 +:1005BE005005617902617900F0E1614900DD09C7FA +:1005CE003641057184C6DEC3F1C73641057184C656 +:1005DE0061DC0E059C055040C18C07318E31AD1289 +:1005EE008C06318E318D03BDD831FFBDDADADAAD2E +:1005FE00D8FD050DC0D2DD0C5008C15014FDCF073B +:10060E00C0FDC20B8C05D1DF06615906ED86058C47 +:10061E0007318EFD3D0AD2DD0C5008C15014FDCFBE +:10062E0007C0FDC20B8C05D1DF06615907ED7A05B7 +:10063E0071605005CC0400CC05008C054C09DE2BF6 +:10064E008C05318E04F61FC1317B9EFDC41189725B +:10065E008C05318E04F64F14896142DF03F6EF01EB +:10066E00E6600E049C04615905EFCF41001140F87D +:10067E001F3A61E86159048C04D1DF08FDC30BFDFC +:10068E00D50CEF0C5008C15014FDCF07C0FDC20BA6 +:10069E001008C6D7C72004FBF8FF712B24CC01002D +:1006AE00F6BC02AC02440900DE3EAC0204F60F14A6 +:1006BE004100118972AC020C5014896142DF03F6BD +:1006CE00EF01E6600E019C01AC021249005072ACC3 +:1006DE000204F67F14896142DF03F6EF01E6600E35 +:1006EE00019C01617902EFBB40F67FFF61F8615911 +:1006FE00018C01D161F8ED9B07CC0100717AFAFDF6 +:10070E008704711300711B20710303710205E0C190 +:10071E005003FD722BC05013FD110A500FC1E0FDA6 +:10072E00722BC0CEABAC6159018C0191DD068C01F0 +:10073E004C03DF03E6EF01F66061FB7121048C01CF +:10074E004C0861F8CC010031320705A024FCEF0300 +:10075E00F524FC4024FC11DC22F524FCF0C15003EE +:10076E00FD722BC0CE3708CBE4FFFFCBE6FFF7CEF2 +:10077E00D4FFCF370008F5120561FDE6BC02F66125 +:10078E004902DD9F00000000617902EFF1FD9D0836 +:10079E00D2DFFA5008C15014FDCF07C0D2FDC20BF4 +:1007AE001004C6D73184BD02EFFA717BBDCBE4FFD6 +:1007BE00FFCBE6FFFFCBD4FFFF717ABED7717BBEB6 +:1007CE00D7C7C1200CFBF8FF8C0C318E31ADC13177 +:1007DE007B9DD4C0BC068DD49C088C149C0B8C14B1 +:1007EE00318E040C00128C0B318EBDD813FD940F7C +:1007FE0061C8ED9808CEABACCC05068C0B318EFDE6 +:10080E00350AD2DD158C0B318EFD390A6169058CE6 +:10081E0005D1DFE7FDCB07E2EF71CC0A008C0A4C65 +:10082E0004DE54F6BC02300AF9BBAC06148C089EEA +:10083E00FD118972AB146299AC06A1BC06617900F8 +:10084E00617902F0E1614902DFE05040C18C0B3169 +:10085E008E31AD128C0A318E318D03BDD831FFBD74 +:10086E00DADADAADD8FD050DC0D2DD06FDCB07E232 +:10087E00EF1961590AEFA68C0B318EFD3D0AD2DDC0 +:10088E0003E2EF0761590BEDEC07F2100EC6D7C766 +:10089E00717B9D717BFAFDB207300AF9FDE80AFD06 +:1008AE00730AC6D7FD9D08FDC20BFDCB07F5ABFF46 +:1008BE00F2D7C731049F067110B3FBEF047118B362 +:1008CE00FB8FB3FB7B9276D1DD5B8FB3FB9D9240AA +:1008DE0004F903DF22665C10D1DD1C8FB3FB5C10C4 +:1008EE00D1DD0B5080C15011FDDA34C0EF095040FC +:1008FE00C15011FDDA34C04004F903DD064004F99D +:10090E0004DF22665C02D1DD1C8FB3FB5C02D1DDFD +:10091E000B5040C15010FDDA34C0EF095020C150C9 +:10092E0010FDDA34C0C6D7C7360000665C80D1DD54 +:10093E0010675C80D1DF0571339EEF0B71329EEF35 +:10094E000671040771319E665C40D1DD10675C4014 +:10095E00D1DF0571439EEF0B71429EEF06711405B8 +:10096E0071419E665C01D1DD10675C01D1DF0571BE +:10097E00539EEF0B71529EEF0671340771519E66B6 +:10098E005C02D1DD10675C02D1DF0571639EEF1D45 +:10099E0071629EEF184007F901DF08710402716160 +:1009AE009EEF0AC736100571C4C671619E665C045F +:1009BE00D1DD10675C04D1DF0571739EEF0B717290 +:1009CE009EEF0671440771719E665C08D1DD10675B +:1009DE005C08D1DF0571039FEF0B71029FEF06716B +:1009EE00140771019F665C10D161E8715AD1C6D7A8 +:1009FE00F5F6FBF5F8FBCFFEFBFFCFFAFBFFCFFBC7 +:100A0E00FBFFD7C7C1C1FBF8FFCEABAC8C02D1DD6B +:100A1E0012616902305C03BBF6614900DDEE61894B +:070A2E0000EFF51004C6D72C +:100A35005208EF065203EF025206FEE600FE1B00C7 +:100A4500DC16089F03088F0408089F040862FE242B +:100A550000089F0408EEBF00EEBA00C1C514410EA0 +:100A650011D9D0FF118FD1FF312E45C4C0D7F23136 +:100A7500A2C401E2D79DE261DD4C09DF12717BFA68 +:100A8500C18F06089F25FDC0CF060800EE2700315F +:100A9500F2FA04CF0608004C00DF05D50008DD1684 +:100AA50061DD717BFAD50608DD0ACDE31F61CD61F5 +:100AB500CDEE160061CDFED40061FFFE9A00FCF874 +:100AC500FF0EFEB20061CDFED5004C09DF0EC18FD1 +:100AD50006086F25FD9F0608C0EE0400CF06080036 +:100AE500F8E3D75200EF025202FE3700CF24FD0093 +:100AF500CF060800BF0408C716629F000841001111 +:100B05008F1A209B4100118F1B209F0108C65100A1 +:100B1500FE62FFEF025205CF060800C1510CFE0A26 +:100B250000C0D7C1511DFE0200C0D761DD717BFA3F +:100B350070CEC0A59EC47CFF9EC4609EC461CDD707 +:100B450061DD717BFAC18EC45C1BFED6FFCF060842 +:100B550001FED7FFC061CDD731F2FA1AC1AEE4BFAD +:100B650016FDAEE6BF18FDAED4BF1AFD30FFFFBEC1 +:100B7500E4BEE6BED4C0D731F2FA11C1AF16FDBE50 +:100B8500E4AF18FDBEE6AF1AFDBED4C0D7C1BF1C89 +:100B9500FD13BF1EFD15BF20FD17BF22FDC0D7AF3A +:100BA5001CFDDB1EFDEB20FDFB22FDD7534B305218 +:100BB5005430324E323030475631323000FFC1505A +:100BC500FEFEAB0061DD717BFACF060800FE0A0070 +:100BD500FEA4FF61CDF8E3EECF00C7FB0408BF1606 +:100BE500FD8FC0009C05C5C337040600BF18FD3541 +:100BF50036270C300000522BFE6600C2C4C630D525 +:100C05000BB800300000B8022004AF18FDB8003062 +:100C15000F00B802AF16FD61FF520AFE3AFFECF86D +:100C2500FF0E717BFAC1C7FB04088C05C65C80FE0C +:100C35000200C0D761DD717BFA70CFC0FFA59FC0F0 +:100C4500007CFF9FC000609FC00061CDD7618BFE17 +:100C5500E2FF717BBE410011FB000017CEFC006175 +:100C6500CB089EFDF31161C999A58392DFF7D7FEE5 +:100C7500B1FED524FDDF23C1CF0308035109FEF4DE +:100C8500FDC0D2DF37FE3800A20408CF03080751A4 +:100C950009FEE1FDD2B20408DF22C7FB0408318357 +:100CA50002C6D7C6510AFECCFD624C1FDF06CF2413 +:100CB500FD01EF04CF24FD00C0EE5BFEC0EE55FE46 +:100CC500C7C1FB04088B31196C0161589BC0C6D79D +:100CD500717BFAFE4DFEAF0408040600C1143639D7 +:100CE5000C300000522DF3FE77FF8FC000FE2BFE67 +:100CF50061CF5C807C8073C0041900CEFC0F61CB92 +:100D0500C55404EF03C55417FE18FEC7360008BBCB +:100D1500629C0288089C03D1DD334C41DE2F70F1C3 +:100D2500312DB161090033081C000851FF612A41CA +:100D35000E118FD0FF613B118FD1FF6138DC0E8B17 +:100D45005C03DF0964C6C4FE2BFDEECAFDC6C4EE16 +:020D5500C3FDDC +:100D570061CF5100718C7109FECBF800FEFCDE01FA +:100D670000F6BF00F953C0F693935820FEDFF94110 +:100D77000036E04E34CCFCEF05118B99A7A517443C +:100D87002A4FDFF53602F930CCFCEF04CC0000A780 +:100D970047DFF94100362A4F3420FEEF05118B99C2 +:100DA700A7A517443A4FDFF53630FE309AFEEF0419 +:100DB700CC0000A747DFF9FCCE0000EFFE61DD7134 +:100DC7007BFABEF0ADD8BEF200AEF661CDD7C361F7 +:100DD700DD717BFABEF0ADD8BEF200DBF6FFADDC0D +:100DE700BEF000AEF6BDD8AEF40312ADDABEF20027 +:100DF700AEF661CD03BDDAC2D7C3F33174D9088328 +:100E0700C1F626D8BDD8C031750683C312F623C2F2 +:100E1700FD220E93DF0312F623C2D7440000DD261E +:100E270061DD717BFACFE80080BEF6F6BEF4BEF254 +:100E3700ADD8BEF0CFE800818FE8003103FAAEF0FD +:100E4700F5E80061CDD7B1D7C3F33174D90883C1B1 +:100E5700F626D8BDD8C0317505C312F623C2FD707A +:100E67000E93DF0312F623C2D7440000DD2761DDAE +:100E7700717BFACFE80080BEF6F6BEF4BEF2ADD8BD +:100E8700BEF0CFE800818FE8003103FAAFE000F54C +:100E9700E80061CDD7ADD8D7C3F33174DB0F83C179 +:100EA700F626D8BDD861317026DABDDAC031750DA6 +:100EB70083C312F626DCBDDC61317023C2FDD80E78 +:100EC70093DF0CF626D8BDD861317026DABDDAC2B9 +:100ED700D7C161686BDC6BDDC0DD2F61DD717BFA2B +:100EE700CFE80080BEF4ADDCBEF6ADD8BEF0ADDA1B +:100EF700BEF2CFE800818FE8003103FAAEF0BDD82B +:100F0700AEF2BDDAF5E80061CDD7F6BDD8BDDAD7C8 +:100F17008292DD2B61DD717BFACFE80080BEF0F6AF +:100F2700BEF2BEF46208BEF6CFE800818FE800315A +:100F370003FAAFE0006072AEF0F5E80061CDD7606C +:100F470072F6B1D706DABDDAADDC06D8BDD861D8FE +:100F5700A6DAD7D1DD17C1C3DAD89DD8ADDA311CEF +:100F670061EEB4D8DFF8BDDA13BDD8C2C0D7D1DD82 +:100F77001BC1C3DADA9DDAADD8311E33311E3371A6 +:100F8700F9B4DADFF4BDD813BDDAC2C0D746D8DD6D +:100F97000771FF7177D971C0D75BDB9DDB605BDAC7 +:100FA7009DDAADDC5BD9085BD808BDD8D7C3C7F3DA +:100FB700728EFDC162314C410036D64E1161A0726E +:070FC700C09EFD62C6C2D707 +:0A0FF60031303A31373A303900004B +:0A20000031303A31373A3039000030 +:10200A0005214F7B9EC5E9000104080D12171C1F0C +:10201A00080100001F003B005A0078009700B50035 +:10202A00D400F300110130014E01192634445362E1 +:10203A006E777D80807D776E625344342619100A4C +:10204A0008080808080808080A10AEF0B430B740B3 +:10205A00BA30BB50BBB0BC50BD10BD60BDB0BFE014 +:10206A00C2B0C420C7B0CAE0CE1001F014101420C8 +:10207A000630639049006E0077707B0019001900E2 +:10208A0017F01C6012001200120002005C003600F9 +:10209A00A70000D8EAE88C309C10A5E0B040B1C097 +:1020AA00B200B250B310B490B620B860BA50BFA014 +:1020BA00C6B0CE90D02000200020002000207B3027 +:1020CA00686020001700173012F00DE007F00700D3 +:1020DA00093001C001C00100AB000000670020DA2E +:1020EA006967A120B750B9D0BB00BC30BC60BCA0A6 +:1020FA00BD10BDC0BE70BFD0C2A0C400C850CC8045 +:10210A00D0B001A0251018B017C095206FE07C60F0 +:10211A003510350037F016F01CA0173011D011F029 +:10212A0011F002005E00A7FF27FCB0DAF5F39CF07D +:10213A00AD50AFB0B300B3E0B560B670B7A0BA00A7 +:10214A00BC00BE90C160C400C700CCA0D0A00200F1 +:10215A00191012004810251041F02FA013F01CD0BE +:10216A0010D00FA0110010E00C100C000C0002009F +:10217A007100B4FFC0FDA0DAE7E59D80B7B0B8A052 +:10218A00B9A0BB40BC50BCA0BD00BD90BF30C0E0F0 +:10219A00C330C540C750CD40D0A0019035102F3074 +:1021AA0011002940885071A05FE032D01CF014F071 +:1021BA001A801A801110120012000200560067FFDE +:1021CA0054FCA0DAF5F39DA0A8F0AD90AF00B300DF +:1021DA00B3E0B4A0B540B630B7E0B8C0BE70C140F5 +:1021EA00C420C9A0D030011006002C200DA0370051 +:1021FA00373047F028F025F0373010F014F00F7020 +:10220A000D000D000D0002006A0014FFB4FD30DA63 +:10221A00E9E77F7E7D7C7A7978777675747271705A +:10222A006F6E6D6C6A6968676665646261605F5E3D +:10223A005D5C5A5958575655535251504F4E4D4B53 +:10224A004A494948474645434241403F3E3D3B3A59 +:10225A00393801020203030200FEFBF7F3F0F0F340 +:10226A00FA041225384D5F6E777A776E5F4D3825FE +:10227A001204FAF3F0F0F3F7FBFE00020303020282 +:02228A00010051 +:10228C008D3DB43DD1DF26CD3D1EFD4423FDE52221 +:10229C0031329A0D31049A0931329E05713304EFB3 +:1022AC0003713204FD1823FDBA22FD1B26D771538E +:1022BC009AD432DD05B43271529A31229A073132F6 +:1022CC009E0371529A71549A714102314402057104 +:1022DC0040B3FBD77148B3FBD78D304B3BDC114A75 +:1022EC0030B9DE0C4A3E28DE03A43ED771339AD7B0 +:1022FC008D3C4B30DE054A30BDDC0C4A3F28DE03FA +:10230C00A43FD771329AD7F43EF43FD731429E0C9A +:10231C004A4002DE03A440D771239AD7313204120B +:10232C0040AFFB3CDE0C8FB2FB5C01D1DF047123B0 +:10233C009AD771229AF440D7C7C1FBF8FF31329E6D +:10234C00067130B3FBEF047138B3FB71449A7137EB +:10235C009EDE4F71349E71419A31329E0E5002C1F5 +:10236C005011FDDA34C0CD3229EF37E0C15011FDE8 +:10237C00DA34C0F43217C15002FD5A2BC0D2DF0D33 +:10238C008B318E318D080E01081C00BD34AD3444E8 +:10239C00009BDC05D5AFFBDF095020C15011FDDAE5 +:1023AC0034C0C0C6D78D209D41FDF323FD8E2BD5A7 +:1023BC0007F9DD0471039AD78D414B2061F8316424 +:1023CC009A1C71639AFD87044A4107DD054A41FF57 +:1023DC00DF098F06F9310303FD8224FD9624710277 +:1023EC009A3079256194D7C77162017172015003DB +:1023FC00FD110A5008FD5737629D305009FD5737C3 +:10240C006276716301711806F94A30F1DC0BE5074D +:10241C00F9F508F9CD3707EF224A3004DE1ACF0759 +:10242C00F9025008C1506CFD7F02C092DF0DD454EC +:10243C00DF09711006F9EF03F507F94007F901DF21 +:10244C0005710A22EF06710B22710302CD2007578A +:10245C0000674C08DE1073090A20614EDC05679D8D +:10246C0020EF0387EFEB4A2007DF09D507F961F866 +:10247C00CF07F903C6D7500AFD110A304000C150EE +:10248C0006FD3D2BC05096ED110AC72006FBF8FF48 +:10249C00D507F961E8ED7525304A57C1503EFD3D31 +:1024AC002BC0D2DD077100B2FBED75257108B2FBB4 +:1024BC0017040200C15004C1500CC1506CFDA002A5 +:1024CC001006EA38AA48318D12AA48318E616B0881 +:1024DC00616A08C1500EFD3D2BC0F690C1500CFD39 +:1024EC003D2BC0CC01008C014C04DE2831349B0206 +:1024FC00EFFA71229BEA388C015010D605C15010AE +:10250C00C18C01D6044000C1506CFD520310066111 +:10251C005901EFD250A5FD110AEA38AA48318D12A3 +:10252C00AA48318E616B08616A08C1500EFD3D2BC3 +:10253C00C050A5FD110A5004C1506CFD7F02C06251 +:10254C009C01EA388A4B4E0161C3048A4A4E01173A +:10255C00040200C15004C1500CC1506CFD52031058 +:10256C0006F6C1503EFD3D2BC01006C6D7C78D42A6 +:10257C004B3061F8ED18264A4428DE05A444ED18CA +:10258C0026F4448D309D428D305070D612307351EC +:10259C00230480001231FF318E039D439FAEFBF666 +:1025AC008D437C804C95DC1B8D43318F241400EAC9 +:1025BC0038BDD8AA44FDC40D1231FF318E03318FC2 +:1025CC0016EF198D43318F241400EA38BDD8AA4672 +:1025DC00FDC40D1231FF318E03318F16EA388A4259 +:1025EC007217F3031644000171FE61C836FF001721 +:1025FC0001DE02F61617BD7CC7500CFD3D2BC0D278 +:10260C00DF068D309D42EF047100B2FBF2C6D7C7D6 +:10261C002008FBF8FF4007F901DD064007F902DF4F +:10262C001C17040600FD602CD2DF0A8C069C058C5E +:10263C00079C04EF4ECC0563CC0400EF4617040650 +:10264C0000FD602CD2DD0F7100B2FB71039ACC053A +:10265C000071129BEF2D7108B2FB8C06318E318DFF +:10266C00080E07081C00BBEA388A4072ABFD170F36 +:10267C00BB8C019C05D1DF08CC0501CC0400EF0319 +:10268C008B9C0417040600FD6B2CD2DD06CC06C80F +:10269C00CC07008C069FB1FB8C06318E318D080E59 +:1026AC0007081C00BD34AD344401A5DC08CC036420 +:1026BC00F6BD46EF48AD3426464401A0DC08CC03F9 +:1026CC001EF6BD46EF37AD3444819DDC09CC030AC0 +:1026DC00C946F401EF27AD3444019BDC09CC03055A +:1026EC00C946F401EF17AD34440191DC09CC030069 +:1026FC00C946F401EF0771129BC946F4013132044B +:10270C000C31249A08CC0564CC0400EF0D8C034EDC +:10271C0005DE078C039C05CC04008C059FAFFB8C5D +:10272C00049FB0FBFDED2B8D484E05DD2840AFFB23 +:10273C000BDE054A480BDE1440AFFB06DE054A48AB +:10274C0006DE09D5AFFBDF0DD448DD095020C150A2 +:10275C0011FDDA34C08FAFFB9D48FD2A2C1008C642 +:10276C00D7C75601D837C15002FD722BC08F09F95B +:10277C003105075012FD110AEF0E500AFD110A71B6 +:10278C002010055008FD110A8D376C0870C15002DD +:10279C00FD722BC05003FD110A8D376C1870C1509F +:1027AC0002FD722BC05016FD110A5003FD832B62E3 +:1027BC005C01D1DD0F7170B3FB5002C15013FDDA17 +:1027CC0034C056006672C6D7C75004FD832B625CBA +:1027DC0003D1DD405014FD6B2834B3FB895C9F9909 +:1027EC008A0C7CFF50FF5C14D1DD228A0C7CFF5CD0 +:1027FC00147234B7FB89616A9971620756003162B1 +:10280C0007058666D1DFF7716307716B2734C6FB4A +:10281C00895CEB995002FD832BD2DD398D376C101E +:10282C0070C15002FD722BC0E0FD110AD837C150A7 +:10283C0002FD722BC05033FD110A8F09F9310309C7 +:10284C0071281005500AFD110AF0C15002FD722BBF +:10285C00C07178B3FBE0C15013FDDA34C0C6D7C7E2 +:10286C00C12004FBF8FFCC02005004FD832B629CBA +:10287C00038C045C20D1DD0E8C036C019C038C0258 +:10288C006C209C02EF138C045C10D1DD0C8C035C6F +:10289C00FE9C038C026C109C028C045C08D1DD0E37 +:1028AC008C036C029C038C026C089C02EF138C044E +:1028BC005C04D1DD0C8C035CFD9C038C026C049CD1 +:1028CC00024008F903DF088C03D161E8CC03028CC9 +:1028DC0003D1DD05501AFD110A8C0370C15004FDA3 +:1028EC00722BC08FB3FB5C9F728C03318E316D14D5 +:1028FC008C03318E314D616D08616C5C606162627C +:10290C009FB3FB8FBFFB7CFF50FF5E02D1DD278F97 +:10291C00BFFB7CFF5E027234B7FB89616A997162FE +:10292C0007CC0100316207086159018C01D1DFF439 +:10293C00716307716B27F21006C6D7D9A7FBC1507C +:10294C0006FD722BC0D9A8FBC15007FD722BC0D756 +:10295C00FD4729F2D7C716664C02DD044C04DF058F +:10296C00CD3A10EF02F43AC6D7C7711300711B2091 +:10297C00710303710205E0C15003FD722BC05013AB +:10298C00FD110AD83AC15005FD722BC0500FC1E0A1 +:10299C00FD722BC0500AFD110A7103055008FD1180 +:1029AC000A501FC1E0FD722BC05012FD110A5003DA +:1029BC00FD832B625C01D1DF03E2EF12F0FD832B70 +:1029CC00629D363602F9C75008FD5A2BC0F2C6D7A5 +:1029DC005003C1FD722BC0710203711A20FD1A2B1A +:1029EC00F431D75003FD832B625C01D1DD155014FB +:1029FC00FD6B28FDD4275014FD110AE0C15003FDD6 +:102A0C00722BC0711300711B207103035014FD1144 +:102A1C000AF0C1E0FD722BC0F0C15003FD722BC057 +:102A2C00D7C72004FBF8FFCC02008D319C0350105B +:102A3C00C150A4FD7F02C0629D31D454DD04F2ED7F +:102A4C00F72A8C037B315C08D1DD0F8D315C08D10A +:102A5C00DF05CC0210EF03CC02208C037B315C042D +:102A6C00D1DD158D315C04D1DF088C026C049C0225 +:102A7C00EF068C026C089C028FB2FB5CF3728D31FA +:102A8C005C0C6162629FB2FB8FBEFB7CFF50FF5EF1 +:102A9C00029C02D1DD1F34B6FB896E02997162076C +:102AAC00CC0100316207086159018C01D1DFF4714E +:102ABC006307716B278D315C40D1DD095002C15029 +:102ACC0012FDDA34C08D315C01D1DD08E0C1501249 +:102ADC00FDDA34C0717AFA8D315C41D1DD0C5A319A +:102AEC00BED831C15010FD0C48C0F21004C6D7FD41 +:102AFC006D27F2D7FDD427F2D7C78FC6FB7617FD0B +:102B0C006B28664FC6FBDFF2F5C6FBF2C6D75064E6 +:102B1C00FD110AFD762C6261FB71119AF171149A08 +:102B2C0061DC70C15012FD0C48C0FD8836CD6303CA +:102B3C00D7C7C1C1FBF8FFAC0ABB17C15002C18C8F +:102B4C000270C1506CFD520310061004C6D7C7C1E9 +:102B5C00FBF8FFAC08C15002C18B70C1506CFDA0DA +:102B6C00021006C0C6D7C78806166770C1C7508446 +:102B7C00FD1B031004C6D7C716C75084FD7F02C0C7 +:102B8C00C6D7C74A2004DE045600EF0256018F0850 +:102B9C00F9318FE7240000DD1A23DD0B23DD0C2334 +:102BAC00DD1123DD0CEF0C8686EF0851046106EF76 +:102BBC0002868666318F12504CD633514CD6610A40 +:102BCC00045420BD384008F902DD064008F904DF42 +:102BDC0008CD3B54CD3C44EF06CD3B4BCD3C3DC6E4 +:102BEC00D740AFFB3DDC05CF04FC0FD740AFFB1F3C +:102BFC00DC05CF04FC0BD740AFFB0BDC05CF04FC92 +:102C0C0007D740AFFB0661D831320405CF04FC0373 +:102C1C00D7D5AFFBDD04E504FCD7F504FCD7D50410 +:102C2C00F9DF0471739AD7FD762C6261FB71019BFD +:102C3C0071149A71079B61C831729A1771729A71EB +:102C4C00049B71119AF171049B61DC70C15012FDEF +:102C5C000C48C0D7C716C75004FD5A2BC0C6D7C7DF +:102C6C0016C75002FD5A2BC0C6D740AFFB0BDE0275 +:102C7C00E2D7F2D77100010571785005713AD57120 +:102C8C003BD18F10055CFC9F1005CF54054AE542E3 +:102C9C0005711042057100420571485005713050A4 +:102CAC000571205005CF530509CF52050B713051DA +:102CBC000571205105713BD5717050058F11055C64 +:102CCC00FC9F1105F422D77178500571080105D7C6 +:102CDC00FD8238FD8704717AFAFDB123F504F98F72 +:102CEC0006F931051B5003FD832B625C01D161E8B1 +:102CFC00CF04F902CFAFFB6471040771419AEF1056 +:102D0C00F6710407611012F6B1236061FB71419AF0 +:102D1C00FD9530FDB04371229D712BE7618461A458 +:102D2C0061EDEFF8D7C788061666614FDD0967615C +:102D3C004EDE0396EF01866672C6D7C7161714AA25 +:102D4C000412A943DD29AA0412A923FD3A4FC3ACEE +:102D5C0002FD3A4F13C2BDD813FD940FDE0C1714AD +:102D6C00AA0212AA0403BA04EF051714A9BA04ACF8 +:102D7C00041231FF319E03317F087208C6D77100EF +:102D8C00F200304400BFB601300188BF9001300919 +:102D9C0084BF9E01BF9C01BF9A01BF9801BF9601E1 +:102DAC00BF9401BF9201F53CFF30FE00BFBE01F69F +:102DBC00BFBC01BFB80150EEBFBA01A1BFB201C97F +:102DCC0018FE008F06F9310507F5CDFBCB6CFF0023 +:102DDC0071739B71629BD7C72004FBF8FF3026FBF5 +:102DEC00BC02F6BBAB446400DE0EAC0214CA00009D +:102DFC00617902617900EFEC1004C6D730EF00BFA7 +:102E0C00B401F6BFBA017108F200712304715307C3 +:102E1C00BE6EBE64BE6A712304715307715BD1F43C +:102E2C0057F45671639BD78D58B458D1DF6931D4A0 +:102E3C00D105715BD1E457D457DD2E7140B2FBD86C +:102E4C0056F1E734020023DD0625DD0325DF05F608 +:102E5C00BE66EF06D9CCFBF1BE66A4564A5620DFFF +:102E6C0004F456F457CD5819D7CD581E7148B2FBFF +:102E7C00D5CEFBDF04F6BE66D7D9CCFBF14266FF9C +:102E8C00DD15D9CCFBF112AE6643DE05A266FFEF71 +:102E9C0003B266FFCD5803D7C7161714F6B9AA04A8 +:102EAC0012F6231231FF31AE03316FBA02AA04615C +:102EBC0068DD0AAA026168DF04F6B1BA02C6D7C798 +:102ECC00C1FBF8FF8C085080D612AB1413B9AB14AD +:102EDC00AA0412A92312D927FBF133BDD813FD0084 +:102EEC000EBA02C0C6D731049C01D74004F902DFE8 +:102EFC0010F6BE64BE6EBE6ABF8EFBBF94FBBF9A5B +:102F0C00FB31749B14308AFBFDA42E3090FBFDA486 +:102F1C002E3096FBFDA42EEF7131149C0D71139C79 +:102F2C007108D2FBF45AF459EF60D459DF5A8F264A +:102F3C00FB9D594A5A1FDC177100D2FB4028FBFF3E +:102F4C00DD1CA45B8F28FB4B5BDE13F45AEF0FD810 +:102F5C005AF1A1605C1F9D5A7108D2FBF45BE85AD0 +:102F6C00092AFB70C1308AFBFDCB2EC0E85A094AF6 +:102F7C00FB70C13090FBFDCB2EC0E85A096AFB7088 +:102F8C00C13096FBFDCB2EC0B459308AFBFD472DCA +:102F9C00F313BE6E3090FBFD472DF313BE6A3096D3 +:102FAC00FBFD472DF313BE64D7C736F00071F4DC7C +:102FBC00297170F000CE9D08CE9EC0CE9F80F594F6 +:102FCC00FFF593FFF592FFE597FFE596FFE595FF7B +:102FDC00E598FFCE9C7F7100A6FB711BE3712BE380 +:102FEC00711AE7712BE7717A9D710A9E31929E02DC +:102FFC00EFFA710B9E71239C71339C71439CC6D765 +:10300C00C731229C1E71229C710A9E31929E02EF46 +:10301C00FA34D4FB3692FF52078B99A5A792DFF9AD +:10302C00710B9EC6D7C788061631329C1571329C1F +:10303C00C7349CFB3092FF1652078B99A5A792DFE1 +:10304C00F9C6667367189CFBC6D7C771239C3134CD +:10305C009C1E71339C710A9E31929E02EFFA34923F +:10306C00FF369CFB52078B99A5A792DFF9710B9E3B +:10307C0031449C1371439C717B9E8FDCFB9E9A8F19 +:10308C00DDFB9E9B717A9EC6D7CFA7FB5CCFA8FBBE +:10309C005FCFC8FB5DCFFCFB36CFFDFBC9D7C7CFDD +:1030AC00A4FB12CFA5FB25CFCCFBFFF5CDFBF5CEBA +:1030BC00FBF5CFFBF5D0FB5600664C64DE0872388E +:1030CC0026FB0086EFF3F5E3FB714A9D712B217112 +:1030DC000A20711A20710203C6D7C788061617F189 +:1030EC00E73403002361E3ED12342361F8EDE93298 +:1030FC00B12361E3EDF3322561F8ED0133B1240D19 +:10310C000061D8ED1234240B0061F8EDDB31236142 +:10311C00F8ED1E322361F8EDEE312361F8ED0B343E +:10312C0024060061F8ED9D32B12561D8EDB9322449 +:10313C00000061F8EDC6322361F8ED12342361F81A +:10314C00ED1034B12361E3ED21332361F8ED32331B +:10315C002361F8ED43332361F8ED32332361F8ED4D +:10316C0054332361F8ED65332361F8ED7433236137 +:10317C00F8ED96332361F8EDA1332361F8EDAC3310 +:10318C002361F8EDB4332402002361E3ED12342300 +:10319C0061F8EDE8332361F8EDBC332361F8EDC73A +:1031AC00332561F8EDD233B124060061D8ED123429 +:1031BC0024000061F8ED14342561F8EDDD332412A0 +:1031CC000061F8ED97322361F8ED8732ED14346726 +:1031DC00D1DD0C30BC3B619434C4FB89616F99ED3B +:1031EC001E34675C02D1DD0730FB2A6194EF0B675C +:1031FC005C01D1DD0530002B6194675C3CD1DD0FA7 +:10320C0030052B6194675C3C7266736218A4FBED0D +:10321C001E3467D1DD625C01D1DD05300800EF01A1 +:10322C00F6609F01FC675C02D1DD03E6EF01F6342A +:10323C0001FC89616899675C04D1DD04E6A1EF01AA +:10324C00F63401FC89616899675C08D1DD05302092 +:10325C0000EF01F63401FC89616899675C10D1DDDF +:10326C0005301000EF01F63401FC89616899675C48 +:10327C0020D161E8716001FCED1E344A5CC8DE08A7 +:10328C00E85C67185AFAA45CED1E34679D5CED1E71 +:10329C0034D44ADF08679FCDFBA44AEF0D4A4A0598 +:1032AC00DE08E84A671811FDA44AED1E34675C0F6E +:1032BC007266736218A4FBED1E344A4A64DE1B4A24 +:1032CC004A01DF0667D161F85701E84A671826FB07 +:1032DC00A44A4A4A0561C871129CED1E3434A6FBFF +:1032EC0089615F99ED1E34305C29619466736718AF +:1032FC00A4FBED1E3440A9FB6ADF1340AAFB68DF78 +:10330C000D674C6CDF0830ED406194713AD5679FC6 +:10331C00ABFBED1E34675C7F70C117F1243000FDF0 +:10332C003130C0ED1E34675C3F70C117F1243000A2 +:10333C00FD3130C0ED1E34675C0770C117F12430CD +:10334C0000FD3130C0ED1E34675C1F70C117F124D5 +:10335C003000FD3130C0ED1E346770C117F12430E0 +:10336C0000FD3130C0ED1E34CEABAC710A9E3192F3 +:10337C009E02EFFAD592FFDF05710B9EEFED679E73 +:10338C0099710B9E9FDBFBED1E3471429C675C7F39 +:10339C009FDCFBEF7D71429C675C3F9FDDFBEF7216 +:1033AC00675C3F9FDEFBEF6A675C1F9FDFFBEF6292 +:1033BC003066396194679FE4FBEF57303339619481 +:1033CC00679FE5FBEF4C304C396194679FE8FBEF4E +:1033DC0041675C01D1DD3BFDB043EF36675C02D148 +:1033EC00DD05712A21EF06714A9D712B21675C0165 +:1033FC00D1DD06710300710B20679FE3FBEF1367B0 +:10340C00318EEF0EEF0CEF0A664C5BDE057367181E +:10341C00A4FBC6D7C716664C30DC094C37DE05FD5D +:10342C000C30EF6B664C02DF1F8FA6FB5C03728FB8 +:10343C0003FC5C03318E316D08616A08128F03FC4A +:10344C005C80312A6162EF56664C3DDF08AE90BD60 +:10345C005EF85EEF49664C3EDF04F85FEF40664C69 +:10346C004FDF05FDD843EF36664C61DF08E85C0999 +:10347C005AFA72EF29664C7FDF05FD323CEF1F666E +:10348C004C4EDF0B31049E045210EF12F2EF0F661C +:10349C004C5BDC0452FFEF06667309A4FB72C6D7C3 +:1034AC00C788061617F1241000240500DC07244CED +:1034BC0000DD17EF17717BFA17F104A4FB14896177 +:1034CC007F99717AFA71529CEF02A45CC6D7C7C17E +:1034DC00C1FBF8FF4004F903DD064004F904DF38B2 +:1034EC00717BFA8C027309ACFB5E0AD1DF278C026C +:1034FC00318E04A4FB14896E0A99716207717AFAF1 +:10350C00CC0100316207086159018C01D1DFF471E3 +:10351C006307716B27717AFA1004C6D7CF03FC03CB +:10352C00F501FCF505FCF507FCD7C788061617F165 +:10353C00E734020025DD3D23DD1725DD1C23DD05E9 +:10354C0023DD2BEF3B71029D679F06FCCD6303EFE0 +:10355C002F675C839F03FCEF27675C039F05FC6769 +:10356C005C034C0261F871229EFDC645EF12679F09 +:10357C0007FCEF0C6791DF08E0C15012FDDA34C094 +:10358C00C6D7C71617F1E7240000DD2A23DD1E2459 +:10359C000300DD0724FB00DD24EF2531329E0530CE +:1035AC008000EF01F6086F04FC7208EF198F01FC24 +:1035BC00F501FC72EF1071529D5235EF09F2EF06D6 +:1035CC0066730900FC72C6D7C71617F1E724000012 +:1035DC00DD38241000DD1C23DD1C23DD30240E001F +:1035EC00DD18241100DD1B240F00DD12243000DD5A +:1035FC0015EF1EE2EF1D5202EF195204EF155206A1 +:10360C00EF115205EF0D5207EF09F2EF065203EFDF +:10361C000252FFC6D7C731649C3771639C8D629F81 +:10362C00ACFB8D619FCBFB36D2FCC7D861FD8837D4 +:10363C00618A70618AFDCD37C0D866F1312F609DEB +:10364C00658D604B65DD0A71729C8D659D60CD63E7 +:10365C00034A6305DE083092366194CD636BB46324 +:10366C007150F000CE300BCF170006CE3106FD5A4C +:10367C0002717A30710BE3710BE7C6D78D659D60D3 +:10368C008D659FADFBD74004F903DF064004F904B8 +:10369C00DF02F2D731749C0C71739C71139D8D6594 +:1036AC009D67EF3131049D1F71039D71129DD506ED +:1036BC00FCDF04F468EF0A8F06FC5002D6A1609D73 +:1036CC00688D689D67EF0E31149D068D689D67EFC0 +:1036DC00048D659D678D679FADFBD867FDFA36E855 +:1036EC0067091C2270C15013FD0C48C0F2D7C7C12A +:1036FC00C1FBF8FF8C02D1DF05F506FCEF1A8C023A +:10370C004C05DE06CF06FC02EF0E8C02318E123118 +:10371C00FE03311F609F06FC8D694F06FCDD28CC33 +:10372C00011F8F06FC9D69CC00008B4C08DE148BAE +:10373C00730912204F06FCDC058B9C01EF056159C7 +:10374C0000EFE78C019D641004C6D7C716710AE719 +:10375C00710BE37150F000CE300BCF170006669E54 +:10376C0031FD5A02717A30710BE33182E302EFFAC8 +:10377C008D1F7158F000710BE772C6D7C7C1C1FB22 +:10378C00F8FF8FFCFB4E02DC03F2EF318C024FFD95 +:10379C00FBDC0452FFEF268C022FFCFB70613131F5 +:1037AC008D128FFDFB2FFCFB70613133BDD813FDE7 +:1037BC00220EBB440001DC03F690BB8B721004C6D6 +:1037CC00D7C7C1FBF8FFAC0814A91489708B61280A +:1037DC00706131FD3A4F1344030071FEDC23AC08D9 +:1037EC00148A04819A04AC08148A044C11DC10A9C4 +:1037FC00148B99AC0814CA0200AC0814CA0310EF5D +:10380C0072AC0814CA0400AC0814A914894DDE0A61 +:10381C00AC08148A02819A02EF12AC0814A914891C +:10382C004D61D308AC08148A02919A02AC08148A30 +:10383C0003919A03D1DF3CAC08148A024C10DF10C0 +:10384C00A91489318EA112AC0814A9146299EF172E +:10385C00AC08148A024CF0DF0EA91489318EB11217 +:10386C00AC0814A9146299AC0814CA0200AC081470 +:10387C00CA0310C0C6D7ED8538C75600664C0ADEA1 +:10388C000BF0317E12F67810FC86EFF0C6D7C7200D +:10389C000CFBF8FF17040600C15006C150A8C1501C +:1038AC0030FDA0021006D2DD1B4A6C04DE05A46CB0 +:1038BC00E2EF7034E4FB895CFC99FD66397110B25F +:1038CC00FBF2EF5F717BFA300600C117040600C1F2 +:1038DC0030E9FBFD424F1004717AFAF46C8FE4FB73 +:1038EC005C01D1DD264004F903DF205010C180FDBE +:1038FC00DA34C0C736100571D4C6DE0F17C15006B6 +:10390C00C150A8C15030FDA00210064004F903DDDF +:10391C00064004F904DF0B8FE4FB5C02D161E8FD87 +:10392C00F240F2100CC6D7D9E5FBC15030FD7F0236 +:10393C00C0629FE8FB5008C15011FDDA34C0F2D7C9 +:10394C00D9E8FBC1D9E7FBC15030FD1B0310045073 +:10395C0008C15011FDDA34C0F2D7C7200CFBF8FFB8 +:10396C00CC09004007F901DF05CC0A02EF03CC0AB1 +:10397C0010CC0B808FE4FB5C039C07D1DF08717AC1 +:10398C00D5CC0807EF06717BD5CC082F170408009F +:10399C00C15004C150A0C15030FD52031006624CFE +:1039AC0002DF077110B2FBF2EF357118B2FBF46C49 +:1039BC00C736100571D4C6DE164004F903DF1017A4 +:1039CC00A1C15006C150A8C15030FDA00210067113 +:1039DC007BFA8FE4FB5C034E07DD03E2EF01F21090 +:1039EC000CC6D7D504F9DF03F6BD6E4004F901DD32 +:1039FC000AD478DD03B478D7CD78038F04F9318FEE +:103A0C00E723DD512402002361D30423DD47D7FDD6 +:103A1C00FE3A31029F01D731629E194A7005DE16BB +:103A2C00A4704A7005DF0FA4705004C15010FDDA69 +:103A3C0034C0EF02F47031649E194A7205DE16A48C +:103A4C00724A7205DF0FA4725008C15010FDDA34AF +:103A5C00C0EF02F472FD653AD78F06F93123493075 +:103A6C001B00466EDF158FE3FB5C01D161E8F504AA +:103A7C00F9E0C15010FDDA34C0EF1D307701466E0D +:103A8C00DF165002C15010FDDA34C0F64674DF0860 +:103A9C008FC8FB5010D6BD74F64674DD36B674462E +:103AAC0074DF3071129BEF2B301B00466EDF13F668 +:103ABC004676DF18E0C15010FDDA34C0C9765307E2 +:103ACC00EF0A307701466E61F871129BF64676610B +:103ADC00E8B67631549E0771439DF6BD6ED73144DE +:103AEC009D04F6BD6ED7A66EF6466E61F8C96EFFE4 +:103AFC00FFD7D473DD03B473D731729E174A7105A7 +:103B0C00DE14A4714A7105DF0DA4715010C1FDDAE9 +:103B1C0034C0EF02F4714A710661F8CD7325D7C732 +:103B2C0036100571D4DE0E8FB2FB5C02D1DF06308D +:103B3C009A386194D24004F903DF1C312207053016 +:103B4C002D2A619431549D0C71539D5080C150129B +:103B5C00FDDA34C0FD683BFD8E3BC6D78F03FC5CA1 +:103B6C0001D1DD1DD47BDD03B47BD7CD7B098D6406 +:103B7C004B7ADD0D8D649D7A5040C15012FDDA34C4 +:103B8C00C0D74004F903DD04F6BD1AD7D5D0FBDF4E +:103B9C0008F6461ADD19B61AD7D9CCFBF1461ADD50 +:103BAC000ED9CCFB12AD1A43DE03A61AD7B61AD720 +:103BBC00717BFAC78FC4FB76F5C4FB717AFA5C1083 +:103BCC00D161E871629D665C0FD1DD57665C01D1F5 +:103BDC00DD05F504F9EF4C665C02D1DD11E0C15056 +:103BEC0003FD722BC0711300711B20710303665C03 +:103BFC0004D1DD11711300711B20D503FC61F87128 +:103C0C000303FD2835665C08D161E8710303500598 +:103C1C00FD110A7102035003C1FD722BC0711A20F1 +:103C2C00FD1A2BF2C6D7C756FF4A4A1361C8EDE8F6 +:103C3C003C8F06F9311505300400EF0F8F06F93172 +:103C4C004505300500EF04D907F9F1609F28FC8D7C +:103C5C007C9F29FC71349AE661301271049A61DC04 +:103C6C0031196162629F2AFCE52BFC31449E0530C0 +:103C7C004000EF01F6C131340405302000EF01F6AD +:103C8C00C2616B08616A08C131749E05300400EF93 +:103C9C0001F6C2616B08616A08C131649E04E6A139 +:103CAC00EF01F6C2616B08616A08C131549E03E6EC +:103CBC00EF01F6C2616B08616A9F2CFCF171240460 +:103CCC0061DC9F26FCF171540761DC9F27FCD84A0C +:103CDC00F10104ECFC14A9148976A44A6672C6D7C7 +:103CEC00FD35098F04F9318FE724000061F8ED5D93 +:103CFC003E23DD212361F8EDC13D2361F8ED2C3E1F +:103D0C002361F8ED433E2361F8EDA33E2361F8ED0A +:103D1C00A63DED5A3EF6BD7471139B4005F901DFCB +:103D2C001831349E07FD0A3F92DF04D7FDB123AD55 +:103D3C006E440A0061D8ED093F71429DFD87047104 +:103D4C00639AFDB1234007F903DF0771229DF50447 +:103D5C00F9D7FD1B2640B1FB9BDE0771229DF504B4 +:103D6C00F9D7714A277140110571301105713A224A +:103D7C00715A2271501105FD7529D2DD0771229DF2 +:103D8C00F504F9D771103500CF37001D71401205BD +:103D9C005032FD110ACF04F906D7FD943F62318FE2 +:103DAC00E7240000DD0B23DD0323EF04F504F9D732 +:103DBC00D7CF04F902FDDC294005F901DD064005E9 +:103DCC00F903DF05F5CDFBEF04CFCDFB03CF04F9F1 +:103DDC0002FD4729FD802CFDF504FD2835FDAA3098 +:103DEC00F505F971229DF537FF712BE0CBE43FEF20 +:103DFC00CBE6F6F0FD8704713BD48F06F931050351 +:103E0C00FDA840FD8A2D710806F9CF04F9038FA691 +:103E1C00FB5C02D1DD095080C15010FDDA34C0D7F3 +:103E2C00FD3F40FD273FFDD3408F06F9312507317B +:103E3C00349E03F504F9D7FD3F40FD5B3FFDD340B5 +:103E4C008F06F931250731349E03F504F9D7F504B3 +:103E5C00F9FD1040D261E8ED093FF6BD7471139B7A +:103E6C00F5E4FBFD6639717AFAFD082EFDD32CFDC5 +:103E7C004705712B21714B9D31349B02EFFAFDEEFE +:103E8C003F716A27FDEF29FDBB3FCF04F905714255 +:103E9C009DF6BD6EFDFE09F505F931349E04D43254 +:103EAC00DD1FE505F9E504F98F06F931254FF5F825 +:103EBC00FBF5F6FB502EFD110ACF05F903E504F9CD +:103ECC00D7FDDB04FD44237173017132047143028D +:103EDC0071039AFD753FFD3509F46A71629A3132AE +:103EEC009E06CF04F905EF0971439DE505F9E5043C +:103EFC00F9712BE78F06F9312503F504F9D7F6464E +:103F0C006EDD04F424EF02A4244A2465DC0BF6BD18 +:103F1C006EF504F971229DE2D7F2D731649D2FA47E +:103F2C007ED47EDD0831A4E00A31020C06712BE050 +:103F3C00FDDE4031A4E01731040C13712BE0502747 +:103F4C00C15005FD722BC0CF04F90471229DD731ED +:103F5C00020C15D83AC15005FD722BC05005FD114D +:103F6C000AFDDE40CF04F903D731949E02EFFA71BB +:103F7C002AE7CEA409F5F3003104070261FDE5F34D +:103F8C0000FD5A02CEA408D731049F05F6BD80F27D +:103F9C00D73132020431549E05F6BD80E2D7A6809B +:103FAC00AD80440002DE035202D7F6BD80F2D77119 +:103FBC004307714B27714810057148110571381072 +:103FCC000571381105713302713B22715302715B1B +:103FDC00227158100571581105CF3700097148121C +:103FEC0005D7CE3708CBE4BFFFCBE6FFF3CED4FF2B +:103FFC00F5B4FBF5B5FBF5B6FBF5B7FBF6BEE0BECD +:10400C00E2BED0D7CFCDFB03F5CEFBF5D0FB717262 +:10401C009BF6426CFFDF184266FFDF13461ADF0F78 +:10402C00426EFFDF0A426AFFDF054264FFDD02E2F7 +:10403C00D7F2D78FE3FB5C01D1DF60D482DF19317B +:10404C000200585003FD832B625C01D1DF07F5049D +:10405C00F971229DD7E482D74A82F0DF0731040040 +:10406C003AF482D74A82C8DF0AF504F971229DCD51 +:10407C0082F0D7310200084A82FFDD1FA482D7F0FC +:10408C00C15004FD722BC08FB3FB5C9F9FB3FB71BF +:10409C0010C4FB30BC3B6194CD82F0D7C75004FDFB +:1040AC00832B625C03318E315D34B3FB896168997B +:1040BC005002FD832BD2DD067170B3FBEF047178D7 +:1040CC00B3FBFDB123C6D731149B06F504F971225D +:1040DC009DD771639DF47E717207FD5A027173074F +:1040EC00D7FD5005F2D7717BFAC7200CFBF8FF8F78 +:1040FC00EAFBF0F9E9FBF303FD3A4F13BC048FEC38 +:10410C00FBF0F9EBFBF303FD3A4F13BC028FEEFB14 +:10411C00F0F9EDFBF303FD3A4F13BB717AFAAC04E3 +:10412C00BDD8F6BDDAAC04311EBDDCF6BDDEFDD566 +:10413C000DADD8BDDCADDABDDEAC02BDD8F6BDDA56 +:10414C00AC02311EDADCC3DADEC3BDDCF6BDDEFD4B +:10415C00D50DC0BDDEC0BDDCADDEFD4B0FADD8BD99 +:10416C00DCADDABDDEABBDD8F6BDDAAB311EDADCC8 +:10417C00C3DADEC3BDDCF6BDDEFDD50DC0BDDEC0D1 +:10418C00BDDCADDEFD4B0FDADAADD8FDC144C3C5E5 +:10419C008D905C3FF0317E0440FC14C2C0B9A490F9 +:1041AC00F6BC08BC0A9C078C074C2EDD3D8D900E8E +:1041BC000770F161DC605C3FF0317E127940FCBD30 +:1041CC00D8F6BDDA8C0773095C22318FBDDC70BD6B +:1041DC00DEFDD50DAC08BDDCAC0AFD4B0FADDABC79 +:1041EC000AADD8BC08615907EFBDAC08BDD8AC0A04 +:1041FC00BDDAC9DC0004F6FD9F0EC9DCFFFFF6FD3D +:10420C00A00FADD8BD8AAF3AFC468ADD11AF3CFC9D +:10421C00BF3EFCAF3AFCBF3CFCAD8ABF3AFCAF3CA6 +:10422C00FC423EFCDC46AF3AFC423CFCDE3EAD269A +:10423C00423AFCDE374A2A16DC1A4A2AA0DE138DD3 +:10424C008C4B2ADE0DAF3AFC268E44691061C8FDFA +:10425C00AA42F42AAF3AFC445146DC0AAF3AFC2499 +:10426C001027BD28EF0DC928F82AEF074A2AFF614D +:10427C00E8A42AAF3EFC423CFCDC18AF3CFC423AC2 +:10428C00FCDE10AF3AFC4628DE09F48CAF3AFCBDDC +:10429C008EEF074A8CFF61E8A48C100CC6D7717B9B +:1042AC00FAC7710A9E31929E02EFFA8E949F34FCEB +:1042BC008E969F35FC8E979F36FC8E989F37FC8E82 +:1042CC00939F38FC8E929F39FC710B9E717AFA8FFA +:1042DC0037FCFDB40F76FD3F4413BD88D5EFFBDFF3 +:1042EC000AD5F0FBDF05D5F1FBDD25F6B14688DFFD +:1042FC0011C9883722665C0391DF060A88181A896F +:10430C00009617FD624513FD824331049E02EF6156 +:10431C00520692926934FC682EFCDFF6AD88BD869D +:10432C00F884F3311C790AF944FEFFDD44D884F19A +:10433C0001040AF914A944FFFFDF04E6B9EF0BD816 +:10434C0084F101040AF914A9A1B9717BFAA0EFFB5D +:10435C00D5EFFBDF1CA0F0FBD5F0FBDF14A0F1FBCD +:10436C00D5F1FBDF0CCFEFFBFFCFF0FBFFCFF1FB69 +:10437C00FFC6717AFAD7C716D884F10744A800DCB7 +:10438C000571029EEF1CF647DD18A4844A84A8DC54 +:10439C000571029EEF0CF884F3311CF6780AF9B71C +:1043AC00EFE4C6D7C756A89666F0317E12F6B17800 +:1043BC000AF966D1DFF1717BFAF5EFFBF5F0FBF54D +:1043CC00F1FBF48471039EC6717AFAD7C72004FB03 +:1043DC00F8FFD44ADF168D849D91717BFA520692B8 +:1043EC0092692EFC68C0FCDFF6717AFA4A4A06DE46 +:1043FC000EE84A09C0FC9C03A44A8C0372EF30F807 +:10440C0091F3311C790AF9BB31129E058B9C03EF99 +:10441C000F8C019C03D491DF05CD91A7EF02B491D1 +:10442C00718071179E61DC61FB71119E8C0372109F +:10443C0004C6D7C72008FBF8FF8F37FCFDB40F9CD0 +:10444C00078F36FCFDB40F9C068F35FCFDB40F9C1A +:10445C00058F34FCFDB40F9C048F38FC9C038F3902 +:10446C00FC9C028C06318E0112791A20BB8C075CE5 +:10447C0003D1DF098C064C0361C86179008C0531CE +:10448C008EB1610900BB313D120103BB8B0E047070 +:10449C008C011C00BB8FF4FB4E03DC0E8C034FF421 +:1044AC00FBDC0B8C024FF5FBDC04AB12EF03ABB166 +:1044BC00121008C6D7C7C3C12008FBF8FFF6614924 +:1044CC000A61F8614908DF07F7340000ED5E45E644 +:1044DC00BC04F6BC06AC0ABC02AC08BBAC06614919 +:1044EC0002AC0461F8614900DE28AC04BDD8AC060E +:1044FC00BDDAE1FD5A0FADDABC06ADD8BC04ABBDDC +:10450C00D8AC02BDDAE1FD750FADDABC02ADD8BB9B +:10451C00EFCAAC06BC02AC04BBAC08BDD8AC0ABD3F +:10452C00DAAC04BDDCAC06FDD80EAC04BDDCAC06CC +:10453C00FD4B0FE1FD750FADDABC06ADD8BC04AC7C +:10454C0006614902AC0461F8614900DCC5AC021497 +:10455C00AB12100CC6D7C7C12004FBF8FF8F31FC7F +:10456C00FDB40F9C034E04DF1CAD864688DE07AD00 +:10457C0088268612EF40F64688DF074686DD03E77D +:10458C00EF34F7EF318C04318EB1128C03318E4342 +:10459C00DF1830382226860688BB8C045C0391DF3A +:1045AC0005AB041800BBAB12EF0C8C034E04DE05FC +:1045BC0032A900EF01F71006C6D7717BFA31229EA3 +:1045CC000CF64694DD07B694717AFAEF7C71239E53 +:1045DC00717AFA4004F904DF07715307F42CEF6980 +:1045EC00D9CFFBF1E7240000DD0F23DD1A23DD100A +:1045FC0023DD5323DD2723DD38715307F42CEF49DA +:10460C00715207F42CEF42D42CDF07715207E42CC3 +:10461C00EF05715307F42CC994FA00EF2CD42CDF5E +:10462C000B715207E42CC994FA00EF1DF5CFFBEF88 +:10463C0018D42CDF0B715307E42CC994FA00EF0942 +:10464C00CFCFFB02EF03FD5646D7D905FCF1E7248B +:10465C000000DD0923DD2123DD0923EF1B71530746 +:10466C00F42CD7D42CDF07715207E42CEF057153CF +:10467C0007F42CC9942D01D7715207E42CD7316261 +:10468C009B01D771039CD9CDFBF1E7240000DD120F +:10469C0023DD1923DD1123DD2623DD3423DD39232E +:1046AC00DD3FFD1647EF3DFD3747EF38D9CCFBC159 +:1046BC00AE6CFD312DC0F313BE6C712304EF25F0ED +:1046CC00C1AE6CFD312DC0F313BE6C712304EF141D +:1046DC00F6BE6C712204EF0CCB6CFF00712304EF5F +:1046EC0003FDAB474004F905DD064004F901DF0684 +:1046FC0071230471039C31049C0FF6BE64BE6A31B5 +:10470C00220402EF02F690BE6ED7CD2E47F496AE81 +:10471C006C317DBFCAFCFD8047D2DF0ED9CCFBC10A +:10472C00AE6CFD312DC0F313BE6CD7FD8047D2DDCE +:10473C000DCD2E47F496AE6C317DBFCAFCD7E896F2 +:10474C000934205080D6BFC6FC22CAFCBDD83047E5 +:10475C0000FD000EBFC8FC30C6FCFD472DF313BE98 +:10476C006CB42ED42EDF0CCD2E47A4964A961F6126 +:10477C00C8F496D740AFFB0BDC05712304F2D7408D +:10478C00AFFB0661D831229A11F0C1AE6CFD312D10 +:10479C00C0F313BE6C712204EF03FDAB47E2D7717B +:1047AC00029CF0C1AE6CFD312DC0F313BE6CA4970E +:1047BC004A9740DC37F497D898F1313F0412FD1436 +:1047CC00D898F1BDD85008FD4F0E087208E6D2DD1E +:1047DC00040192DFFC896158D1DD05712204EF03DD +:1047EC00712304A4984A982061C8F498D7C730263E +:1047FC00FDC6D77180717DFADE035201D75200D706 +:10480C00C7C12004FBF8FF17040300C1E0C150101E +:10481C00C150A4FDA0021006629C02D1DD058C02E1 +:10482C0072EF518C0C70C18C0470FD8448C0629C7A +:10483C0002D1DD058C0272EF3B8C035C7DD1DF0372 +:10484C00F2EF3117A1C1E0C15010C150A4FDA0027C +:10485C001006629C02D1DD058C0272EF178C015C94 +:10486C007DD1DD03F2EF0D8C0370C15010FD844837 +:10487C00C0629C021006C6D7C7880616710AE6509D +:10488C00A4FDD403D2DD0771339B5202EF1317FD45 +:10489C00F0036770FDF003FDAF48FD640471339BBA +:1048AC00F2C6D7FD3B0450A4FDF0035020FDF003ED +:0548BC0050AAEDF0031D +:1048C10061FC61FCC1C3C5C7520C929269D4FEC19F +:1048D100DFF88EFD708EFCC1717AFA4004F903DFB6 +:1048E10005302D2A6194C09EFC609EFD34D4FE5299 +:1048F10006C0B9A5A592DFF9C6C4C2C061FC61DFDB +:10490100520C929269D4FEC1DFF88EFD708EFCC10B +:104911008F4105775C04D1DD06675C01D1DD503143 +:10492100549C3671620771539C8FB4FB5FBCFBD101 +:10493100DF1B8FB5FB5FBDFBD1DF128FB6FB5FBE07 +:10494100FBD1DF098FB7FB5FBFFBD1DD0C31620704 +:1049510002EFFA716307716B2771139EFD5630F4F4 +:10496100227148500571605005717AFAED5B4A6712 +:104971005C02D1DD16D422DD124A2202DD0DF422C1 +:104981007148500571605005717AFA717AFA8D2279 +:10499100318FE7240000DD0823DD1423DD2CEF4AED +:1049A100F44A7140500571505005E422ED5B4A8F85 +:1049B10040059D4B715050058D4B9D4DD84BFD20B1 +:1049C10034629D4CCD2202ED5B4A675C02D1DD175A +:1049D100675C10D1DD05CD2203EF0F7148500571E1 +:1049E100605005F422EF73CD22044A2203DF108DBB +:1049F1004C9F4005D84CC1D84BFDAC34C0EF1F8F44 +:104A010040057671744BDC054A4B02DE067160503D +:104A110005EF47C7D84BFDE630C071505005D84D62 +:104A2100F1242900DD27240400DD22242200DD1DDC +:104A3100241100DD0C240100DD13241E00DD0EEF26 +:104A41000A4A4B60DF07CD4B61EF02A44B4A2203B8 +:104A5100DF08D84BFD2034629D4CC09EFC609EFD5A +:104A610034D4FE5206C0B9A5A592DFF961FCC1C3D9 +:104A7100C5C7520C929269D4FEC1DFF88EFD708ECB +:104A8100FCC1717AFA51405F0401D1DD06F616A727 +:104A910047DFF2300400BF2401F6BF2A01300B0BBF +:104AA100BF2801FD5A02300B0FBF2801FD5A023009 +:104AB1000F0FBF2801710AE6F6420C01DD33AF0486 +:104AC10001BF0C0131529B2971529B710BE2D851EC +:104AD100FDD4033184BD02EFFACBB422FBD853F1EC +:104AE100BEB8714BE1714BE5710ABD8D529E44EF29 +:104AF1000C71539B714AE5717BBD71339BC09EFC68 +:104B0100609EFD34D4FE5206C0B9A5A592DFF9C658 +:104B1100C4C2C061FCC1C5717AFAD450DD0BEA4E42 +:104B2100899E44A64EB450EF33710AE6300400BFAB +:104B31002401F6BF2A01300B0BBF28010000000041 +:104B410000000000510FBF2801000000000000001C +:104B510000500FBF280171239B71339BC4C061FCBE +:104B610061EF520C929269D4FEC1DFF88EFD708E16 +:104B7100FCC12006FBF8FF71503002CEABACCC0477 +:104B810000F6BB31B2E210617900F6614900DFF352 +:104B910071603002ED1B4C8E519C03713BE28C0322 +:104BA1005C02D1DD1E8C035C08D1DF09715030023B +:104BB100CC0400EFCC8C0570FD8E35629E50CC0488 +:104BC10002EFBE8C035C03D1DF408E509C0271501A +:104BD10030028C04D1DF0E8C0270FDD435629C054D +:104BE100CC0401EF328C044C02DF0671603002EF1D +:104BF10029CF34025A716030028C0270C18C057069 +:104C0100FD3635C0CF34024AEF108C035C01D1DD93 +:104C11000671603002EF03ED824B1006C09EFC600E +:104C21009EFD34D4FE5206C0B9A5A592DFF961FC00 +:104C3100C1C3C5C7520C929269D4FEC1DFF88EFD83 +:104C4100708EFCC1710A9E31929E02EFFA8FDEFBDB +:104C51004F96FFDF198FDFFB4F97FFDF118FE0FBCF +:104C61004F98FFDF095004C15011FDDA34C0710BB8 +:104C71009EC09EFC609EFD34D4FE5206C0B9A5A51F +:104C810092DFF9C6C4C2C061FCE46A61FCC1C3C55C +:104C9100C7520C929269D4FEC1DFF88EFD708EFC72 +:104CA100C1C1FBF8FF8D1F9C018E31318EE72406B7 +:104CB10000DD0823DD0E23DD22EF38717AFA8C0145 +:104CC1009D62EF2F717AFA4007F901DF068C019D91 +:104CD10061EF2051FF2E019D61EF18717AFA8C016D +:104CE1009D304004F903DD064004F904DF05307905 +:104CF1002561944031FF09DE05A031FFEF077158AE +:104D0100F00071629C710BE3C0C09EFC609EFD349B +:104D1100D4FE5206C0B9A5A592DFF9C6C4C2C061CE +:104D2100FC717BFAC7D46A61F831249D2771239DF8 +:104D3100D46ADD05B46ACEABAC717AFA5600664C22 +:104D41000ADD1172F3311C79D8FCCEFC0061CA6115 +:104D5100A486EFEA717AFAF2C6D7C7C1C1FBF8FFA0 +:104D6100CC01008C014C0ADE36717BFA8C01F031EA +:104D71007E0410FC14A96168DF09AC02B9717AFAEA +:104D8100F2EF1D8C01F0317E127910FC614902DFD6 +:104D910006717AFAE2EF09717AFA615901EFC4E218 +:104DA1001004C6D7C72004FBF8FFF64210FC61F8D7 +:104DB100ED874E717BFA9C038C034C0ADE3C8C031D +:104DC100F0317E0410FC14A96168DF05717AFAEFF5 +:104DD10029717AFA8C0372F3311C7910FCCEFC0034 +:104DE10061CA629C02D1DF0A8C03F0317E12E6783F +:104DF10010FC717BFA615903EFBECC0200CC0101BA +:104E01008C02F0317E0410FC14A96168DD788C02FB +:104E1100F0317E127910FCE743DF658C014C0ADE2C +:104E21005F8C01F0317E127910FCE743DD4D717B1F +:104E3100FA8C01F0317E0410FC14A96168DF18615D +:104E410069018C01F0317E12F67810FC8C024E0162 +:104E5100DCED717AFAEF2F8C01F0317E0410FC1435 +:104E6100A9128C02F0317E337810FC8C01F0317E76 +:104E710012E67810FC615902717AFA615901EF9BCF +:104E8100615902ED014E00F21004C6D761FF520CC8 +:104E9100929269D4FEC1DFF88EFD708EFCC1717AE9 +:104EA100FA8FE4FB5C03D1DD114004F903DD064018 +:104EB10004F904DF05309A386194C09EFC609EFDC0 +:104EC10034D4FE5206C0B9A5A592DFF961FC61FC9C +:044ED10061FC61FC23 +:0A4ED60000060C12181E242A3036C4 +:104EE000ACFB0000000066FE00000000EF39213638 +:104EF0008C228A46332EF22EC6452B3BC008EC3C52 +:104F000028FC36FE20FE02F903F929FC30FE2AFCBB +:104F10002BFC08F926FC6CFF1AFF6EFF6AFF64FF8A +:0A4F200027FC66FF2CFC5555555583 +:104F2A00FF0000000000983AF82AFF00000047003E +:104F3A00317503F7332312D714AEF8C716AC06122D +:104F4A00C5AC0416F643DD078B99A7A5B3EFF5C2E6 +:024F5A00C6D7B8 +:024FF400325534 +:0A4FF60031303A31373A303900000B +:00000001FF + \ No newline at end of file diff --git a/tags/2.25_SDK6.0/bsr.lmf b/tags/2.25_SDK6.0/bsr.lmf new file mode 100644 index 0000000000000000000000000000000000000000..48fcaebcb221a5cb81b0e9b3e1b8fe816dc8ca6b GIT binary patch literal 186396 zcmeFZd3+RA+V@?(rV|1rArdwvCSgbHhOh`K0U}F?5SDQP6gna(GD?B_GBS?i8i)&{ z0$Ffw7&j0XTp=V;1Q#IUfQgt+GcJgZ*kOxcr<3>lt2Bt?==(hXynno(yGZr7&VF6j zxz4GoQ&o&j9A`XPUNY(XzZ=G)j)swKI1JAULz_)M9`>H>UiR7N&GGuYnf(S2xsH%w zw6hz=*|q^T!^Q!dex25lVPs`pa?z-%UKO)8rD^ZmmU?c7M2 z#lKr-;D~AD*M73hV#?h6yJZIT&nLh3lVu7h^T2PG88sqzDsqrtyF0o+MVW$Mmr)jD z_^2rtjhQ&oTfwn*XLMgpnPtB&W5r};jhdK!kzs5hulC>HQd5;~%?A^+bN_G3Sh7tS zcdDH@>e2oZvOV=1vPIjuXear!&y8)_H&JGFv`pWLE%RH9y+yXsQ*viYqk&YeJ~L)mJu#(Z5Y~bp@X#Vri}N@XaR6~nTyAanwdLsM0Nvtw4c;x zAIHyj{Z$!DT9vtY+{NRJRMOc`mieAC8-Ak<{WD<-eh{bp?Drs-_T!YP_;ne}Z6{B> z*s?)E8ot6luzSnyM2c*}+Gfve(dX)z)KrDDvPO=Wf*(|lZP}A?IPD3Pxsy0;1)Q^F zgLvD?GLkLV*fYVfb}Q3w{-iEeQj0$STjqc5_P@UKzhmM5%lTk(?zjo#rv6{fRh&uw zkLRk?)91HOnG?02oa4JNk3K^9Pl4R(db;(7Ojicn(ZYNHAE@iq9KDkBp zkr-B)sUybaHju9Uqzx`3HT5^jWMyTKm^y;OC)!&3cFx99^XSAU59DYwV1B4wCVav zbA&dP)!5gT!>%!{O*YV2)ut*m2DMS8HMVrDvXZBA?7L%cpm6)~hT&&ln(NDbD7R|D zd$iZgzJ&VIE}nkznu`tNPvK@~=K;%>?;CJ9tNeMx*j5=n-n{dLwc7^O8|Kli{uQ*2~lY~;0bBei`)Ybv%@ZyUtrdv0vqaNkmAL)%K<9VL-1i4QKEtKh`s2mK?1 zj)stJ|17_os3fkE|69`ip-oxGCl2)=xNisHT0O}J);)N^8w=S0wL8nGur zPSX>6qA>P^&*j=NI40!SG1&E)=S0Nc3yEiZS?WG9$uZsOTlx*26i7%9c+!Jy%vAS@ zYSXKqEdAW^)6P{1JD*{Ww}j#X0(_eVc8HSZka z+j-uCsv)j8@BK!32U~e3TX`2-`B}E=>TM0}BlkNI!PkGK$Lzn-y#1$8JU`Dgj0t`_ z*%7iG#+sGtv6QDP_f;0eEvPK8FNmzNC%E&Arxw^2CODOW^vHDkCjlo#u6=kxWVhp! zK#VzHEM+((L8_+v5G##udcv3hsS4ceVd`Wc}F4Y$y4s{IGiZ7fp9F!_- zBe!IrE zkF;~HciPJ1Z7GO`xsVQXSq5+4BG8=s)zjC9%pu`Rj3u(GW0Y4gkod&+y-BGc>y zW`sGEHG5;(#iuM=y*|U{neX&qa5Bwr>zUu`WSQPA74%jG2irMYdPSY!ZPlu!T5qei z(Sx=+sP<*Av{mCH^V&GfVcpDO>H8vyab{}0K@AP%-EDap<;k{>vW;Y~mETNXseX#v zkD{k~6(w8Lpd-wYE318(E3qKXVGiwP4o#odrqS%lv@mKVV*}pmwVOlto5Q{^hka)b z`(c{9u`1J^^Y!Frv(scVZn8O+bT50V*IqTi9$VGl-pcg)2(u5{Z!YlKmv*1gSkm2` z<+WE^wT-Pes<)+jVX1@2rY$7i~|aVIv}8#Xe9`Ci!-yKT@2mwE5jx+908NB-I(mpN?LT6=O~mTS40 zm*?`|X7}G_)c;FU*QxyP{+z#!tH_m?RjIap>yirGV2Puw#@Af7ckkYHH4#_qicbRZ zd7jF=WCz;O&Rs!IfXRM&h$-)KgRP7HUHMQdsPXm@k7 zdHZH2`_0T*sqt8=AYR=~Hx%!#*yLWayU0_JT-2%{ncj&vk_uY+mX_7Di!5u4&pqWq zqwOxYA|nIo>ocq){PbFvT;ZF@M=@W7% zz#Oh00ts{Z4Z6$$C81Vk|B{f~bjFyzk~uT7th6kpjZ)f3r6s$}5v19yG@H_D>sA3WiC=p z3sqBgjA@eQvC=$BbCi;1FO>u_rma-=;L2y(uC3L_8p6kphpU>x%~e0Khr`X$GcrC= zfGkP=Ywg|{j+QH?;h!t1v^lWRNUut-mL<&2lt`s__ zmfAd9CmBuo&E$5eXyv5%rZ}Ubx^mK)O?GIBvS4S$nvyMdHkWLfRkFpuqb0I(>6RIt zn?7x(l&z_{xq^5U=~VgRSLN*^FYYhz5P5NTd8dfCxq0(foA+2?+$jlxk!r)9MmJ; zYZ#OJG|e&I*|OEUr`4N!Z1<);)rlY+x8)eQ{LPc&nua!ikA2lis;j`Yb;jb;3{h3l zyr#6mxU-p`S?n^#!%bf_GZ|sfuwkU^Y&85IF;yH%^nb8?&0ii1{#f1ga?_rSNHD#! z%HeTLifuX?srV!~xM_&-cc+J_7^40a`Q#O+Czz%-eSfiUt=>8*u4#KDKeubpO%K{a zPW5BO57V0}e)vNZmugPW!@iF5ZT`zva_NS&O&2$mbT{{X}YBuLp1ei z@>k7ReCOgt70!;v&c?R>kKUW=3_0GLn$pyviLve3m|tXnz*FSd6&R2^qVC)UhkWO} z?2k1Dc)A##NzMM=ICSC1&HiC>Y5$PgHV@Bm1Y>7!-O|)2^23Lbty_M0H^LlVHOVjw z%-E)njvGylb)3A)jT2KU8XkZAvec&Fi4n%2eG@XbH-=n^4=;aaO-gp}iNRxo>?gcL zIky|eGh?hgy(ea-Hl4~dRC&Bj-W5%!@-%X97izLPe{=o1n$3re7aQn=cTbP`yrFqr z?dEz?%4%Lb>PT9*H=4~+w)dUtcaQjP{LJ&0%7*SWWi=JPo7{hSH>n~0ok&`n$AbI`i9MiHy_RSY;O3u6jIJwcvA6M z3maapb|c%mS~qs|*ZgB|^{zll<-2=pifh*G^>y+8u%RY+ylii~vYK})Na{?|-eRu7 zd}j^d&pfeVZ}2FmWxAxIdUOrpRtk&pXsNc&PV0T}PaL>^ghm9VPF5YuKEg)=4Q{x_Vgb z>S_#QUEx;aN#iwRw{gTsw0Uh4Y#qC2W>3k#{+7EIFTU%R>+`2%XLj$H5a)?*aS1Qh zZ}7g6^|p6o-o}?U<&`Cr%_@7TeBV1SZAsns(uezYCfMqe6OvQi-m4xNXIyXGvfvJ* zBmYwByUa>5^v`b0Fa{aV7)H%^2MWAJ32XMfl=X7OE5<8%uO@7Gtk$zL@$LBi3uH;GgjVdd@Xc_g*{q>C`v!-uif>vB|q> z)}~d+Rk3+N`N!|9+G4z)w|())FWFXgOX%=YO2yw&Z`gO|tbqvwjluQp>$|K<@g{zp zSf5yLH?B0EY3|YZ(%xf7it5+pt$*oN`+nHW`~AshqXN*k){B_3*(7@N>7VMP78tJ>9f`8eU@wyP42gnjV|@kTs4n#P9aipZ+H-+W!X_>Gs|T=mwf zjai%Wkjp50q}*Gv?_KYES=;h z(uVAHi7~f%YU3*8Dqi(${klii8&Qwe_mO z#$fN5`kwXO>IZuhsIBdS)`tGsSzAkP-VpKb{q~!?|8&=#x8HW_EjQnE<3e-64cGs1 z{=93inLFp|+4=riGq1d2#Z{mcD$LEY2H+IbEi$;wckv06n3x*9n zZ-~uqcR1`uQ~1Xt_4P-7awc^fa`DXTZ@K-J>t|j(q+62nCq@4lZZee3j=LF4F4%Cv zu3+~a7n~KzPLF(@=Ig(rwa>XC*4Mv;izwz`v%fRaAwBYTTBLLLYIDkp-Tecu4gJl@ zD|~4yV#wv-(44x$9AWom+g)bXtKn*MEI&)UEI=6K(#i_f{RXPsm9h1KSO71c}5 zAMdSm<#@|#<8y{9dN?tZFlTMYXTLGbw9*`24!~!dJpv zqy?RdHPcoc&1zW+pn13HwXQUWyc#yMSD1rK>L!|*CFY0~q_xSjM=vLL^zRiKye}F! z+CQZ-&mNi9hf`eZhjl6JX=CF=QkJ)NwE9E{E5;?lY*<>a*_wRlA2NP1*x zpFJ@r0#4I`9wWx5`j7i&ujpc4wSv2poDnerSI&s$V63%x<%ryq5qToRw6E~q*3G|+ z>*jo$xzNVl3->La$fbkxi@kZV;?3q&HnW5KM2`1RZL6?9t*bKJvA6>Ca_xOI2Lolx(aofacNvewn{S{_8qA)m$DM(sY_TC8<*;z zQ0tmooEmc6ANqGrYD_Q|+5N|<(Xq8UFAh1pSw>}^J8}WHQ%@XBjN6v#<~~K44jjCx zn>Xju%DfAesI?vAl`wIp=aq1Z(@rU8WnR3b(#p_xL!KY&Tav`jQvY=x|2)KPqjC+8 zkVyyJesLe>tn1lw`){VL{BB5rEid6y7nkpq1-4I}5@dd4vLk`JTwCaqyfsMoTh&^L z62P)aev$3FArFn8VDrE0d?;sv?U&-I#)haG39RUCTQYLIm%Gaj-E*>g*11+^b96L& ziMM#<5^vsuPm{chCZ#(U8%e%q-%>~MsL~h14NFGdxj6T4wVjuY@)c$z8{Z8nt9d>< zvZZxP9$#VmP{-4gMxUO9WFr@*9C5VIHf&~-|NTMDMvAS@-q1d!?9Od1w)rIJR`c8{ zVPdVmS&J3wS?+%5{9u<9E|?;-`hF6OD{vQa|6k+`P1x?bihKOf=#y!IwknQWa@%hv ztqh%`o@!ZH@U)4+wKpP4*1{JeDQ!0v*owG^^lW$8RE6W=BBxc$b$vexuDAE!}fva?VxWHNZQaEz3&yukd zT!EfU2CbMp#rbN<@cK5$(xA>|gri>t3;~x!~2X=9YH4552^g zvyhI|gqP5;zYL5>ASs)wff62sw%d&s`HCC`&Kaq@0&NN$^KAs|^HYoLp>{-aCmvtmn9*cKCKTC; z;)YfE>{gT~nvXkN<%?L6&LVr3hdX*tfrA^^?G8H(xbiw7Pk{r`otD+P&o5nA;9#cx zW3q*d{eSfM=g*ks&(AMqg`hkv8(qoWZ4c}CO8aR>(&9~ijHhK~D0sBRP=_^|KYJ#u z`HO!2>{*UtbW|M~(~BjD_H%OW0cWl==-M$fA!I)~6ifW(I#SKh$~>0}pIlIC@eD_c zW8`&hS!J@k=9CWvSrw_4|d{9@nksR8HVgFp5zaNOZj zSG8Rt1YO(h2_eUJd#V*rZ=FHBR`cjaB$bamFlfhBj_7L0 z+PIB6iR48LkL-F_B7xGMU`rRS>efQ1r6(;57emY=M?x+4Z z=hW1)A&db#^RN2Euh|HHL^%$vOC3v)R(19-st;G2hRtQ(n&&cy?qTV=Fu^sWu{6O|HPw~#^+=bQ zz;3XQC4-keHP2Nw#T8pM*~M!6B*N^&_LvLuT!o1$ndmy2#%en`JvLW$ z<@94t>q(xg^QjTwKTzd7VXs;ro~>oM5i3Fo4IKCrk{Vu4*NW|k6_LMrBQK3I(~8YL z-}vwKul64d9k;q~j(=hxcCLRyo#Tm+?LKSDZJ(0-yff*!QGs4UdSvLtch}naZTC*g zT54T98SF{VI~{L3L#~wM=iYX%b?U@j;_%(=S;$JZX&g4Z*+%*6++{sb{)o*RdvAG( zt-Q!qzQR`il&$;;Tlq3u`D3td6^>z>I*})6hvyHkoJRJ#%%GW?ursuF> zraR3kF`KX7JbUxJmSc1JuA`S8y~Mm~W%ZKFHe9wVc&%^uE*G(1UAp_yKtD6uHb4hB@dGwN_m+rW%WA%>9&N9co65g{j z%+t5cbE=hT&Yc&-;k=`-FZ&rZ2guwb`!7^n4ONI_>D? zp;@~x4^AuW9xlE-XIj_V6w~-5oYgbj9O$xodSTD-_~~`+j!p};t(kV{=~*+n7EiOv zO+PR#ws&|zrRx8vUj?BYg=nWGG*2PgBedaiWg2tNk#?J}R|e~7o)WF2*{m?@0d{RK zb3whav)HqtA$+*}rI8W>MJtSabVR8Me+@G`B-hm`v2_%cL@DKG|00W6gt#!l&|5nJ>Gj9Sxgz zloZy6OI8#H!X-Qgrj4p+!ZWI#4bQB4KYT@1V|Y+iB>X}3wyM?Pq^dRHZdKdE&3O2+ zo#A6u;bR|%x#-EAUFTUiq$Q_+C|8A%f7NlTpj`yWisoXbhiyJ?tzS>_h5@@`mu@T^QdJP5>i z!@d2>LapZNMCtMxef-Pj&N!cww%65ixNy#*{0^(b%D*dMU1hqw9zzeZN^Ol+71m>| zOk3lF{%e-c)q@7-{-;Sl6~iTf%bThqr=qx~bMYqr=~1bA&@ju^NJBX@-mmiJF^?dl6VC%WL^MfAm!7TqW zPDgV~U$9Ituo@ozpAj+t8PWAWB7Pa<@yV%CvFEX7p24_2kU zvK*Fvu13v~MRRA|U0NFs-DMpPFAao43+K)lURoCp&6_);YiTeX%JrOqw=G8}5h8!4eS zq4-eToZRVkF3UcQ94=qIwXwN_>s*m|Z|FKMW`kV|{}Gqa|Cp~b%5 z{`}A-b8;^TdR}~_?8@U;hQ`gwy)fuJJ~NaxCwF4d6{$g%Il2BIogF*vr-h+jb8_z{ zy8rp1u5)rH1Y7x>CCb=IpigL+X)m5z>Tcxn zFm&$R8Gk8tG=_T2o#7~TF>)NacK>lRtt7JbqEOP@(wN3j{M<)_r><3HZDuLGu+uv| za8`!H2*hNBjX*}Io0h=5i#2*YH#i#?dO{rw5ysZIFqB|UE}lFv6nogRlhG(UovdXD zwvuH0c{AD=fesmoMxb*>TO*K!KL^eTo%KcNOkVxyIN2FGW3oGxIN23yJvqjz%zA*= zOl7{=MT5<&ik9S;t_?5omwpr;^hx8k8h_-0!TyI9_#cYw7+g^^=aBE*S;bc`nKk}u zUZYxAwB+jISy&+FD#on$u|fW2JFdEJ!&PP;rz>x(suaV$)92>h4fA%d+3HKP)i*3_ zQDVu}rR%~vH9LYWk6Z1Bt9>^X#hZ(Y%yz}(m>cr>oW)&DN3oeyyvNfBZCMti7@d?U%%m;Z7j^i6@Scy`M*y&3n7bo*K5IVHYRD*NvFlC$rUuI6Q&$Xk7*KC`^FurWNr zUh6m<@)g)8M#7f+cQ3G?+ZbNp_pz{57zwu=TNgBGZ8ox+Q|oAWWaGm>zYew5ll)xr zg9{$^_oR%jK(iU+O||L7Kji%L3a7=~#M*@Ck{@19;6uBiUq?b{q3BeI3NEgTohRKP5HXn$UP(s2+=0?<#0Ph&$`byk{%(yw)1uCxOm6^PQ}i z&Ho~_AoD9$DH@kY=A36HuxJ&U$r$%i!YbzdHXIo_F+q0#N9PxQrDfYdcgwv}xp`fz zyG84H`R=WCZMlOxy^+(VjaDjY*Nb?EvkoW3bFcq3clciG&bRbHSWBYT+U()#&klqu zKl{c?)ScaFDJ{Bek2PA>Nw>$@xh;-M*xqWfDt8pca8GRBzGu59hUxhZcy5Z5hs#=8 zT&1?Oc$m-38`GlYK(oUu;iL0U3g6z+DS`LoexU=Vuxg(Wqc_->)W|O>7$qNC=3#ItUHb!3`JfrYSb%g%_cVyh8x8yt1 zdy9><_PUF=Vj4!@81xjrA7*8?>_!5CL9gFPlvgW?eOfAN*D(6#V26`cd~oxWm{6Qm z4O48=N)r7CUccElwIs$IRgA{GL{{t+|8af8=lJG~pf?$hYY=6sf=^I4@Y(;2;1d?&hQ@4JyiDz!D7ikV%~ za)o&+Vrq$X4cZbe?b~?B%y9Z^OS^M0HHL#8jWs!kY|if+HJ9DII!8C@ysF#c=Pg(6 zS6rALI9pfhl^5u@?}hpuW&Qq-_4|(t4o@YoURMFE6Jv!X1p$v|?;u&2y@(m%}UTPKM2#9%fb|YZ>fA)68jU zW?rHza#Jro*JvqW^4yWPzRonWl3aQH=>Zlg+|`j~!}FtyL97Hh(nC(wUabX;NNq0( z$C8hWhF#nk@$$otu)|6l(<`#LZ{(PhevLfuJ?1*0RtEFB+`f;#8Xo#+e?z_G9=6+B zHgH6q&5At4dcFGug&n%c<8C2Vu569T>d5e{NRQ!>e`YCrw-~J9u#_Zv`mdu&iX>!x z!V{d>;Vniy_ElIDHR~~+evyCnjf`>WE^T~q^i|9shMV(xL_)nH8;8@r3!^ezdBYm9 zY0AmNzOG-pPJG?6kkf4qqCA z`FaTFR=uHECWMxXxEr=qvD9Ez2sn>saPgRtlW}!zD;h@y45no&-|XUZSO01Ep8_7= z>V0uOd%PPPM(VN%rTCoj?Fi-dh%VjIh?8Q~L|p4Bt6dwX_V;dzTUWD*hZixSGGc4i z#+B{;pw@6UL`vIyP}|(x5LqQ5A6h@Oar8rh#P#PlmS5ONp#1#Cbq|#fZ6spkg^jhN zi5hu+W8H=8x{n;%ST{JQcl+8-IlWiawOdj!zIR<~lDjX>zBa-Ce&qR)M|%^@o;12P z4rV0uDC-$&{Xx&;y+biMy_@|9R`*_ip(?BGpvtK&fo!9D*2Nwz;Gk?N*$R}cK$l(W zw^O&xOP7^qHZFalbYSDsCrbx4E`6$WaO2X)ONTTreXR7nM((5Ou)@KOkqvEcjttLk zSN6c3P&gR3r#{RpgNMR_ZVfMweju3m!2^SNqto$d&>i)8*5o3|n*cWV@k$$r+Tb(!{(P?v@= zfex$h&AIp4mTsTm!tUi3~Q26M*rlX{# zR_j?C3n=ZE+*|x8c`Rl6HC|JJGBlf$vB1C=ae4eI{hz@Tj@iOeyi#>Ul^BC9L}#>lty2rHf(;2g%|^?!tiuNTJ zK3wajuyfFC`|&eAPF^E6BuruOsIfUz*b%vNt@k`TFV|{l*-9 z;>G#CyUIUoj4U4WNl=&Gr&V9A$Uy7UvsE8>A~rLXhY#gj8`C~yGWL!!c;rz2exrA5 zW6Q$*{0;qf_Y1~TYV{L2PjvOafAopy!#5;3eDdL2+KR+qXo3b3{EKSSUUYiG>L+ua z%&HxH^vRm14*7;VlOo9+l-2O`cVZhJDDCH)DBEK}mS`_yw0{x!_(x`zTRr5kCWzF zA5XP>dByirT*41?lC9p6m#UxV57z4wT7RRzvGU#bwoQ&_zTVwb89cr;vS4XrWsCoF zQEc6rRg^T&Dv4z7Zkp__cx%lXeNeUKoeIhZ|Fc}-2-huI)OK5Iqtx%Q#3Xd_6pKGY7GSZ-i%-hgosw1pz%+vEHFD+m%Ev@g7aHo?r4Y z3<4dTo?|V=w%?r=NXkjG2U`CknH)Z=U)pZpq}5Y(6ubveL}?+PtHT zZ^3>oVvAc;zDHl|&I`2qZo-2l+5ecZAulw5HvdyF+|Sx3=|i=XfjkBD721H6TjXJ( z|MW2H^)@rlYuDE`PNQL?@0BkSI0@<-)8G+(Gj_0Z?$Sv`eD3xIgNuQ77T}GFSQXOy zN!trt3nEJg=9lDcXV%(GDreKIrFlhm<Icqdu^5IS$@4o);E=HEMpN2TwlcE36Aoe4;tnu`n2(_+)c1 zv2b5_;#0hes5K*Nos5gKUsu{<^RMRp_saFD<&v&NwxvFO&+0b#m^IKQJ&+a}LLaf@ znjbos18Z%K&#sF7q0~vu{lpF}>0T|;ShGHF;aD$0X8D?9>s+gR&7l};4K}}s#oCJB zl8e*pw%zl1#WJI~hnZfydmgWy&eKzz+kdiFE(3`Rb?H>osIM75^sl}z^c_iBE3sB} zTV6Vhs~bc;1vXvLC$KERgX`F}_P3NVbfy)ZbX!8BK96z}_XW49xBsM95Vw5Ma-pT~ z+!{ub zRi5oOTY>%O8UnXkA&K(MsNmJSEE!if^OSVoj0#-*pGtJ_U(1Jbs##071@;NH+Jlnf z+@DoVvg#b5WGkaY@L$gIzopA`NAC>%i7Ppo$cLfrE(T!St`*nxuT%do3 zJ3gtySsA^(e2lf04^8+at4Y71^UfYrkoM5%0sRj5+j>!-VHKY5&+pkds42C{e!_90 zSEIM7cVnMM&x!7h^P4+0U*9~hc{cBS&uQ-4_y;z=F;^wVQ$vsU*3lTlca!7C0qIHA z$uAz?)_$!!>Akhi_6?%~JTiY~&8wkf@9;U4(VudsziU6+s>3k;37zbpvh$g|5oGtU zf5{%t{tdf6!T*6>pWh#5PhxLiPiB_{?b#hnJgG1ic7rLfC+r0K!ZRTs@EECZ08EGa ze+0V2!LSz`3j4xgupc}hKE$rAKVh9`2f`RQ6!KpM7}H@KycxEFw?WB!HUE1~iiL*;)Oc81SD{a01b!>({GJR7cu>F_n!1D3%) zunP8r|Agnl-LOBbfwIGA5ceM`)0iFZ({~}8M_E7S7gzCpG&5~SfPd7La_Jr!!zEB@}c;SVR$Cbu#I0WXv^Wh|z1uuc4;H7XhybR_*`Dz}#8cu<8 z;3aS_yd2&PC(1Z%(+I0S{}2t&Ak3d}B|oyKAIcuHq3m%Dl>b}@eGG0~bO0 z(XCMaekV+UcR~5ZHPLqdN?7$Thl(nKYR8PGuZgC=5RG3CRsS1M{qQ!F|80iyyDd=t zvJJ}bcEYpZZYaOo3sd1fm;t|r-Ql-T8lNdpxs))X8&^Q9U!nSMHdOs{q3XW@s{Vyg_1_Ft z-)&I!-32?srBMI($)ix?`)^S8UJf-LieVZog|heGVK=x2%I?p>9&kOB{a=By`)g2k ze-rkF8=>r84rT93sPVrAYP`G;HD2`p^2pvFLyenVP~+yusQ#Z4mj0hX=^KR7cR!TA z-$Lno5K7-4p!BuNDcKGaR{3L)KjSz*vSS#k-Hj}a{`w4*z1Kq7`z6>Oz792SyanZFo1pxx9BMqj1LbG$!8G_0Oouz6{A@Rr zUsXem>%FiyJTEHu=Y%D95K8}lLH>-d_>ukxq3m}Es>o3&J3JjNe~hrooq)<8iRM#4 z`5aLCyP@nA3*`^-Q1e&n@(G6<;>;*Oc&Viced{Fio z2sQqOz*KlXlwC%`3^*EggU>|eA46FBkB8D@B18pal!Rlugs}9#94aaws-LcglJ7dG z{#ghm*DX-(-wxG3e}S_5eNc8Ugy+CzP~-Ut=!MIn=FNXVjptXO=Fiul#`Pwsaa{p5 zkG=~vk8Xt;-=D$}@GCeDx)FK;YzrsCBsdkOz{}v7a60S(XF^^)FlNC4@M<^&UJEaT z*TIo+0lWw$ zYCLs>>bEXX{gwe!VK1oh<%8W|CRBe8hU(8;sCjxaRKNZKsvj?h>c<&S{dXl)zxko& z<+(5m&VwW2LU<9p366%h!7=bII2JC3bm%%IG-{6(- z38;Qv3FknK-y7fyQ2q8IycK>Hwf`%GH4fi|^7oBU*KJVt`w+^0-$cuQ zL|Ef!Csfp-X#A(q_ybV=`90LU;GmP$e|+U{^w7=T-n$N zW8r3~^5szFtK{TtmC<}vP*v@LI=|FF*)af>^-Cx_ehX#CLr~-4C#ZgGgz|qEjb*@A zP=22Xd%_gh2X=+BXHO_Q_J*?K05}MisS&n8geCuZQ1T9k()S`L`Nl%Ymjfl=#ZZ1V z5lX&4K*=>7N-jTCKhK8ga1NAw*Fwp69qbKFsD8c$YJR;7_J@mMCcFnq&cDL*;QdhJ za|u*`KMqI0oHM|A};5_&xoDcWI>)`>o0R9_lK0XLFA0L5t!4vRq*a$V>`eanL zCc<`T!-?c)PAEV1K>1rdRDUHv`R#kraw*Y#ouc`=M)Rdb^L2-~j?ov=gmEt9&+zdR z4;R_^VblM!r}iF)N`C^%AC^PS+eJ|R@GO)+ya44&>!8lBFG2b1t5Eaz>rj627EFZ? zMca9su-Yku(xVbeu6Lo@-3m2Mc0#qg3#z?pD3!m0^1n6F`o1PC`_x0#cMPh&AEEsE zIMn$l4CU92Q1!;(q?$kDq2{qRQ1!Qksy_)zk9JUcoB>l|3Zx3-gJ}C52&?@rPJHD8Z{XTt;0cE%C56TTG6elwx`;c6(o zuZ3!NA(Y-XLFs)9RJ(UW>HBA>{wjc)rJ24NKdAm63MI#d zFcpr3{2AH&^nhbvA9yj;yqgC#?@oq3_y^b@UIx#D)1l5|`S5%=4_*lW2#3QPU@lw; zHDBEVC&4@66u21v0cxE@+dYJJct4aq9);?knbGtj!s?&ZQ2M?MH8*>A8dlM z^G=us_rq>51pC6{uphJ$Dg8P_FHD7+x4Xf?@B%3PMndT`0giyv;duB*I04=SC&I$0 zoVOEJ|NI5Ye;$C6_aP|1Spp?*A(Y=d4kh=qP=50Ql;5m{>aPtj74Cr2rwXEiaR7FQ zhhR^59QKA`C_S5@r6-xBpA)M8+Cb@<1P8%nI0SZp>c@`o0$3K+=WN3A$8(_UKNxB} z4ujHjIFz0vp!Caz>X$K4<8vI8|4o7FmrG$PoCeQ^S3v1C3reqiD1GKY>9YvRFYkiV z>(5aBc`uYc_rn43Avh2gK=ofC90`}hY*+*@f~9Z_Tn)#ccp!~BO%0EAZ zm%<(JGWao^20w!{U@g1??t?Sox6lv2hxxD`&W0!89M}lwLJhiWfgN54U2r~(g*U=P zcoR&9H^UToE9?kwhh5>FFdg0nyTb=zANUaT!Xoz!pM(?PQ}8ml0{USwoCBYR z*TTO;t&eHDp0FJ*fKGTDbi=!$=FNMd{Ng?+e|Q+`JW&Yc7t3HfxC+WI)rj4Q3FYtaL2LZNRKg!arbOctDF3)HD%T#uI@||i;MY)o`aRTq`6G;nE}TjJ>Vc9k z4obduQ1W$z8lS09{@N32JZ3`4H3Z6kN5C`TXejw|VH(VXlJ5_Yt~IWJG;R2y{P$WY z|ILrey^ydDZ-O!KE-3rm3nk}6P;x#3CEs!=`AVVexCY98YoYA-3Y5HWLdjVPWyft$ za_)eV^Pf<1)xcixbJ!2=gPPyJh67*-4ux&WGy-;pqhN2SadZyUIP${L@O(H1j)ddk zD3}YiE~#w{VfoJ_sHo}C1^*|SJ|mhwGnzgN%FncJsqLz0`h2KzH$d6VgzD!-Q2qQ? zH2=+nRsK$>{C7k7>pjo|AA%}Z2vzPWD7&wM@{2W4c7GP?{JIXx?yo`l@7qv*@*b4k z--ohy6_mX{gJ;9NP_D!dcQ9)E%v@Ls5Ku?(IAOX0cj?@)gD9MpMg zEgT5fL!GZS!ojc-UI5>R!{IJC3f91j;66AGehG8ncTj$L5MB%$;6(T%%!8w%_6QS} zzcxYHr5P$|Tr^!mE8PK=?u1I37)^H*mi^+O?AHd$e#tNnra<{!2dMs<7A@C_u&N!^ILN!LcxXGYU+h^8-$#@`%`|8q3{_GtWH zqwxjN_&-PE3kl0VmO<(D1e9J+!B%hulz+Sm5pOiz*SG%C*(P}9F2*6ah z4{F?e3De=%up2x8yTgCOp0GG7&q2b{`v_Fjk5Kk%g0h#rZ;QQRq3qonYFs2k$=Lx) z&Mr{$r9t^|Hz+^u4kd3dsPn+aXuG`$%MRy4*`Ys_9R|R7cs^7+W1+_1c&K(JLD^#_ zR6AAC`tk`Y|Fuy0wN9?>kJ0!Wqw%3={LO^b&v!z}@h7PE?}n}5B1N(-j^?{Jn(qN9 zc^`(d&r&G=djiTHE1=phhLZDXD7&nIlJ_~N>(+Hp_IVk~KCeN|gKt5N`!cBht%RBn zw?Osl`%wM*F;u^P0@bg#Mdke`VfAMsr>I~dTlg42&KmtPB8=>UaBqO<jl-%)9a(97}w=0yqX;AWZgOax=WGXOvLtM=03;V-x__zY!|S%}{#Z z0afk+sD2z5E&mW<`Q1{e{#*vte=DGM-2kQkYtZsfuR@FSQ3t6&ef z2g)8bQ1+;W{24)h`oS;Yxo}EUo^J_DpC6#Qv;nFg8=5qLP;8SoYTnW#I#qdJ73XXvP1GAylm9_nY zuEoD%SvIw;!SG6@jw5gqPjy zP=4x!vR@38{o|nQ*cxiwCPLXU1wYM^ehW1pd=F*c5R|_jhO+Z9C_5jAvU4MpotvQS zY{MyKXD5{Z#=zb%4$AIb3CoWXq5LQrO3xIiaoripkIsZD(ickabD{i6&jqv% zB&>SQgR19zsCp(q*=s6PRy{A!b}3=mbsAJVS4Q*sqxoh-wQ~*B{4o#8&bL9ednc5A z7em?gFHm;956Z3&L(R93K-u?kDEkJY?f;Fi!A+fe1opo&yL>G3X<+#kZWunH!?PoU)A110z8P;%En$^9>=^W|4i z@;g)++joQ|$L9);W113V5Fz$R!y8_M1cli;l|1>Ocb!8_nt@J@I( zya%2O{{s8N`(YM*0FHtW!%46JPKAXqA3g%FhL1xNE`vA1C*dt{1-u=ugo|Mj{3~1q zAAnE8hv47g68Jyx5x5#Y4%fgZ;InW!d=8ev=i$?E9b64xgwMnEa4mclz5+ME4e$;4 zHhdFqf*WBa+yvi)WpEp;fZJgu{20CiKY{PTYPc1C4!6Mo{1AQ#x5NE#Cp-Xm!5`p1 z;UTyO9)X|26R-w0!@bazNm&>Rzk#jbcQ66AveAFA4@`#RU`IF}o&_(3cf^sIEse0o zT_31%*AFUbAk;V?1KYra)+hBM2C)gAI z8TN+vL5;tMp~l}M&bL8l^jHYbfHy(ueJkt$Z-<@XpP=+u49|i0!gFB(M0F!cMrC`1 zu;hIP%75O1O4N?%*83@8>Ddfr7duX%cHB^Q ziG#9B8z}vgpxSQ_WrvPXb~qEN%C1m$cs^Qx8e!Gn9je}5Q1$eK$}#{-?u(%8crld! zPl1yE5-2-PgYt(fp!zultX-1xmjcq4e7T z&wy{h_V8^eKPiVge^)~J$-7W~z60vIZWol^|Ag}MYAAg_htf9yrRTq(^w|#wz<3M*ULGiY5}^7!87gagsD8_U>X$w+1@?pTuK`egJq)V9E`q6W zER@_iQ2jL#X22;>@(-6Yvt3SDcAfzx$4n?Wu7dKvIZ%E#4@#atLdmlL%Fc_R#=*@{ zcD@tJkNyND?>(?R{3}d>_d$)1@zM5|5?1?vgX-6(pxP~kYWIJj+AD|Z-z`x6x(%wG z51`ta8LjUV!t$fJigVLu9RQ(xHe&dBHa0ry$ zM?u*=7s^kjLD~CiC_68L8Xvbo+52v&aq(tWgjT}?10kaV<Xfb#PkDE-Dm>Gx4IUv4zt^k}}>(R^1& z^X-b}n@?EwxB*JzI*zk%8CJ2(#h8|J{jN?5iK zVcF#+6ITCR2h}eNq5SQ3C_CQ;W#_*_*?B2c(I=tCVG)$St%kDmb5L@<06W6?9@Y=;^rd!X!I1J8v4=z~F+2_ukGsSzh3*qR7S4?CS8J)BT_ zxS;e%gR*N6D7*HC(&NQw`M!izei&5w5m5QZKxG*ZrDq6_g*% zfurI3(fY3;ta=wf+4Dvyd)^Gyzqdfue>+tFE`}Pf_d?lq36x!HqxCH%tnsxB%731O zs{bh{eT$*m`G2T;4?rubt9$%DnsgM6prAfF0)k+}f>K5B2?{7;yFSWOlqOA7?AU9J z8tf&Os8M5Lj4d(N=x1-SM~%J2O6Q#Po23l zmjkKi3LsCt5=cGQ1KB=q0aE_0K+3-jxGwMxAjgv*OyA#d%=o+yNWcCa$o}+yfRz6@ zkp6rM$nrlAWcmLIWWV`3kbZju*a7$+kn#E{kb1rZGCsZmGCsHnWqdRN(w{AWjN{fo z#>W~!#z#9~U*NjHje#2g87G~A1ArR>*8}TY^w*QX4!{?IwCimk?RpnTd)^0j2L8$PeTZYm+s8oG zTc<%mZx0~#Yy_n1`vd9EEr6`2fk5in8c2VQ0J7ce0Hj}b1kx{KfExjK0n#rMf%L~7 zK>A~EAluPCKy)>QS|I)}?1w+}%K^Zlz?r~dz*)eNz=ME002cs90S^I=1}+Bf2s{#4 z13VTu26z&1XW*&8U4Ul*#{tg-P6VC}+#R?SI0<+ma1Y>Rz#{NU;AG%cz-ho+f%^mR z08R(q2|Nh+7vKWm-M~YE_W>6J{|9(D@Co2iz^8%70G|aO2Ydl|BJdU9$-viurvl#q zo(6mycn0u2;F-V=foB0f2L1~88Sq@-e}KOReg!-a_#N;Sw8*b#U$uo`$furu&)K>n8Xejpx4PR^g0yhEv3&`KJz6IPI_zrLj;QK)S#`PoM*1*qzI{=pf zM+3hEa=+pmU=8ql;8-9R{o{a5fD?etfRlh*w8eKw&2h~By$z84?;60Sz%_x*fxiH< ze_9vFerY}6>cDCsyP7UQis}Yrf7~6&eq^-C?}6h6IPMLko{fNwf&GEhwRS(e<_f9 zF96cci-44OC6IpnEs&>N3#9*k2jsZ+Mw7AY^)emU2{;qj1vnen3%CH-54Z@pG4L>8f8Y_oO@T)OHwPXI z90)uSxFzspAf_yZQ-EmFgT!omeW{9m{Pe}(|B01gFS4cs31yxDgRj_IEpfwc2Z zAnW5kAm>?+0T~xh0$D#F*m+Omn0|f^$n#$W^88nTJnuio`zMacdmYI7cmqh@+d%4h z4@mxpK+6Bt&iglxdEO^Lp7$w`dN!kzk-i-q;;lK1qrcYyGTwRs*)Dnky8^ET_5uD5 zNdMjhq+f3XZUX!iNdJBT+ydAZP8tqe2S`6{02~SI2HXMI3s?gj0vrq69ykuT3vgH9 zp1_H~eSmua_XX|^+#gs3&H>f}=K`ky7Xs^mi-7wB4+kCqJQ6qucrI`ra4B#;@FL(s z;3dFCz$<`<0;`NN>;YUG$hcn@ z$olCB902SIWWDqOGTyfYZUY<%WPFbT4hHTB#Q%le@Q3v?3CQ}X1&#(z2eO_H0`3G{ z02~861ju?j95?~^2lLkw95=-AX+Xy3nLzsQEFk@LE|C6N3Ty+s2uQzN3Z#h3fo$*B z0qKw50omW*0Hj|YGCeopxB-s;2&A5yfzz-nMOU}s=YU{_!-V0U02;D*3~z+S+ufg1t8v+|C>G5xUBAIkoFt^WE{^1viyet>6hby^utL&mj5gu%fA%37Vt74?YI$0J8l88KfWDU z4g3p`<^Bc9NDtw-5%47-^}Y_I-gklY=NCZwvH6Hlj*dW*;hL?fNBOSq=#@!zds6W415a6ay$d1z0Uzzo)>_Ozn6h5&#OS% z`4*7ndKXAL-v?6khd`FA@%EuSO@V9&&4DaeOCZbD2G|9-2Cyq|O<)gTJ0Rm`T_DTb z5!eT~KCmya6R;n!3$Q=12XFvzL*Qn>jezXWHwF#_4ghWm+#Ja9av*RJaBJXpz(K&F zz#%|XabY+RCKR>@;{U>E{Mi9m0~`(98CU}x2OJCB6*vxfrulU@9MiAUfsKJPfK7n2 zfb{QdAmeBrknyt+NdGPZGL8-fGJXyR(!WOn89K)TsbUF`{mcnK*8537`nM?uL8Oy$ z%=kJT*a&zAko9>Mka}+bvL0^&Qr{ne)N>1v^>{0gq8-XP4*6Sxg*5`M?je*O7tj`7`!?@f8$Z?<< zkoDOD$ol*Ra4X>YX7AcKroHO`>Guvm+T9u01lSWu|85SX-97EREpW{91_8+*3}k%` z1@gR6z}0}GfozYv0(t%vApJHINWaYn(r@#Cte=HI`fU-Aemfk<`Z^Lwe{E&@kHRta z9}lGdlYrEJ3XtvY93abm8Iby}08-CYK$NIlmAsb^=CdmWA`=LR6_{dOSBeTVkmVi= zWcj87S-$B&#^D@bH{d)V`<0`BjJvgIB+`jEW<8t&Wc>UJNIT92QvdnDrofAVte4*a z>Bp;pwCfrm%kw)R?YbUFyE>cv8*xnee*jYcpMmt(oj~gOfSE{l8}Cy)zSsC)+VKna z{mYjBFCfo<2e=xrBM*?)7!{6x0c5>b1L@zcK>Dc%kS^{8WWA07(r*)h>__$hb^-1U z>|SPfxiNd1fByN4g58*26!HD4DdqW zc;LmrJ%N`4?_+Qx9gE{ez~h08gVTY{fM)`m1J4GsotzJ399#@!JG%nNc(@wKIJh3j ze*O1A_T#qzy8>?mvcB&E_5$7y>;rrV$aeGykp1`LK=$9y05<`?2;3C-PvB<2H-H0y zZvz<@?*SPX9|9Qikb15Ht^>RtNO?B_ z***aAE+u_qd*30ui*2n9>&4F(MSsxz)w+4O!WIcQa zWV`$VI1Km=a5%6roIe8C47fe81(5aB7Kr}~YvT{=r9E&wumf-cur-4bX#|d0Pdflv zPc=Zs?HC~aQ3q@eoDFOVoC{<PKmVYOZ{qbEu`uAQS z>-T;j>+wM#{reb@_4gEzbq*58Xjjvp@ry8vGW_5!{E8~}U|$oT#kxCL+-F!2+R z{`np_61W^l|1^YC5VD0PKx7q~0r7v~hL-q))Ex(mk6u8=M_(XK?hm9tHUpBn1+W!x zD3>-{bu^*;)1 z0ek|;Q=S4+-m^f){o6pweGka^{~Xv2_yv&h|1GdL@CRTYVAYrq_icczr;b4OJDq`y z_kKXe`2Zm6Z!nN?Jq*bD+X=|}8xLgt?FK|sDC`d088`#D3veND9Pkhz<9;!4H{j90 zy?{%Adjn4Z9s)cOxEOd6@Ni&NYy3gF1jmfy%YlsZYk`c5TY#*WJAkc$`?Hdf9>+0x zv+VduJDzXHPup?dy6H2ffyX-hVL8UQDvW#c=GV@hKdW!;yqU-iX>iC)4#+zgp9T*e zK4iiWeE7OeVK87(lDFH4VG}mq7#|A|WqCEj#tt7*nAj@xg@HG&IBLwO39q3X^mmju zzSr2$*MvN>5SQPzN%kw#JUFxZhc-!@3VA3C@-{{u>nY?78&ZRFkHRs{w!AUpk=MLB z#7&l0Q+O6-VeEvwp`$48e8^*cGf%#H1fPGvhBSROV|MM-X>#1v8IR7AbKYvp10?-A@rUKj3vC!& zNeUk}(jk!j9@FyWjndET!^u=$aqO7lgmI%r(%vW!N5TFyZ+y*&5opjHQ_{S#T>Xds zN_jl)ihpdA%IiCA_B`eXy%@vrp))g*oa96LhkX!JCEN5}am?5;a7&V;g9mU^iEYed zpA*~0yjuKY-Nxt6z;SFF4wLz7=>F+3rE@KxGbk3 zFZe2}w~LVH?YIGX-i~{a=k0hFd9fWhOrA$vUmXR1JKO4NXHK7SNMc+i+iED>(lW!? zHX7z_<8@+h8?O<2+j=3-+qNb0V%sX!QSdj2F7bLV(+|s=CfBUP5xs)-aX3i+?q$5? zXm3sNxpR_RE|2{nbH%F|8*`^ko;`bh(jJ#DZ&_%Yib+4Dnh!=6=VbNqjs=f%oBDXC zgSTcqyyEnE#i`R4Cga44dDCw#-29Pk8|5NNiXj?iRE=N(oqrl8uP{S<*f?xOINF3(Ik)UF_za&1Vfc?WqIwKyzV*j z_?-4wFXw`B>N_pODerwDPjR|UOtR0nfYU$WRTUaq-0zO>oV|?%sD`|IOWNIyvHWCgKHP2vje1Yu+Z@o&qhn*l+T@yCpcbtoQC=kPxaAW3L|^~vQA3mW%aQuzVCzi)UC!-eFR=s zzkj#yFHd=)-}tpFANzl%s{*8czQFM~|BsXEjeT$IXRiI3t__gNyUg);PMjp~YRBtn zq#F#?j;?jQymrp_0>tI3HaUNA@@{mz&i1`P<$K)m`iS7<@jU{u-hpMj5C`HZ4hB13 zasR0YPoFh?{y!6W*?2@h--kH(tML^FubW=UTLZ^TDbMItN(i*l?MBmzYTASv@?)KmX+rnC{Vr=|~HSBJXw=!$k$>6Qb8g?dlt8xvy zf_N!e!{*h;VwCT{S;K~y(? z3G&Ei>bpsv-mr5tF>=`vGz=;6L6rqXVKDy7QgLB%-jv!I)0mg~%KSGp$!nVI6ISv; zarTsCD!N0$YZZLDaN6AIb%!L^&z55^l6#C5?XZ1xmU=mYftx+SXTc6+r|Cqqqf*@O z9oc(cYHt>6zeOG?igEclop zb>h5cXjl{(=T#%mw>Q2A$G5kgkmuXm6y&iD#PSY99@j5%-Y=2YJj$!&tKjd*c<`An z!@2#F>vSy}D$;I7-lj=jt2FN}Pa$t$!fV>FVO5pI0X?M@^!*dO zt(^`&n{XSK_Z9NOTs~Wy_JydaMeLPY(X~d@oL_4z?eQ&&Ol$xr4~leX-OcwKY(Tlj zh1w)7mJVCzc^>O0PI>aQzC6mw)rVJFB#{54km$+o*)nb}^LekC1Nmwcy0Y+Ii1`Ob-$r@ajBbur2J zd?!WB)81ELWxnS-D`K8}f1c!79leypyGT5<3f~LwvNYp1L7om zJ+DJd!e{B#yIRz@^S-1wNnSgrw^K~QXZ3aBDV|Y1Wob_Y5#Iq5_jP^1x^Q3IlPY^H zo&zt7=l__r$Bf6rgCK8kh1li$Wn!NycArRfOirYAay*Sk&xmJr*~Rhl`oyk|rO0NEwD0shuFd15y6oxXX&ii6dM$Rhay-S_YvP%`e9unozp_{}dD}Xkt{bR~ zilJeSN7-@8<5kBbd{(SUo?@+&llN7zFV_7QL%~{Hi+jT47we1pUaPo$>|^z+y>kjb z1MO`{(ib6I9}eGiSGc5m0o_^z{8;9}m6#uKQ1J+DRtL-F`7xmey# zo@epA*zvUYFS_I%<#-cBNcDy`EuQ)a-gDy9?P$=)B=WL8g6oftQ!pmVFV<%VUN)!U zJqk=I&#t|nYvq$(jopDA{yq-9ftTrh17B?ey=OSR7dm;%s@Mym9LD44SCGZSc| zF?%+5=IQ=mZz$1*Iql;sCokNWir;#we5Tj))E_KxyziVm@s1SF{Flc|{b#%?ba=77 zlIMAR=V8oKKjeAUj@MrVL&d>R$5VfBto+P5A<_b;;7`VGEY zGM2ZKO}c+=Jj(kX@`gt1Zss+^rth#MuR*#OzBckW7sR!v03tg8>T z-}BP)P3GyzyDsB;)0+4q@yvfGJ9%p7i4gpeUcM_cmZy2nC6Z_Djqk{edHl@u8}Upp z-=P`vIt5z#S9zurA9glm>agw~{j;DU; zMklYTd#T=ju`qm=yw;AV`NkieJiaqDwqvs#d3>j6%-h2AtUmb8(U`}3o#Lc%+Vi%G zN%)+{)BHtr?NO{_dett~Ux`QTg|^Tk;bm(u-UM*-)a+gn?NM}c^3H7#M(PL5e{Rm7 zu8BF)8YNY|1@tz?Q8FG`?gZpDa(N4p*D%UcU2f!js(rHuRhQOg_#W5T_Zqt&5zp#q zJI7Pox1yynG{o`L_MdX{Mmk>E-mB^LJgr^4-ce4T_79$sUbA<+<7tiaym+Q}U&mA1 z_j)Hg9-3s5UN(6=I0bdY6yGo3-PO42ZHbeovHLYwzLOnq)1V^#D|x3np4JBMI(d9g zZX5>#Q%T{2+Lq_}Hj~HO*2}Z{@bZQj?|qfec;~tD4Kv;+;#s|2;&|J8y~gAFeq(z_ zd7kO@JgqgBnO>fD4(fONWW2;RX7mkAV{+>EHm7%&Krejd?6}ME%GM-SzW;H&-Avwh zPTmuaH_3Pc#mfthx2Fi~WRO(9uQ}d6;p_CTK>llO_^O-Ut%50dw_<4rSO zQzwrP4TkWW=NV6+c&>H43q&x?<6W4;t8?-$F5}fDIn#}&ImqRX z$HSXf!*dc6URWFOe!~5j4-t9~w&oywPdDwAypg=|8fjzmOL6YPfuK#@Gyrd9A1fsYX1j z-=;adz|PhXe4lzOPxHi`oxD6=eezZ}!tPEU-`^hV6)%-%c6eS{Tp6$0$;(@t_H;bW zJNHoetR2-jUbPBlsQ!iTkB{x}@h4ubdCF5f`?VxbdU!Rw4FYwNBx>qd0lSylKcKMeCX3^jY(n$=*qM z8snFk4z&gK5xiHONj^B!@f2%;mBr+Fj;A_5$jQ6X@z#B_*04X$-yf)ZKiQA0U8Yh`N^_}c8&2a(G5h$Hr|OZ+j#B%E`;))hBPH2!^V+p-%70@^)BBd85jBp)VO`det}8I35rG zfxc;E!pp{5?*A>@ANzXpi;cB`m-TgD+xIEYuBYtj^m3oYr+1)tuY{NF$C9_!bUb^} z=?%P0?`k%9r##cUuhVO^64hToZ*9WM>}5Z+DfHgv^iFZ|S~p^Eif0cSuNZ!pWpjq+ zRs7BC@`PcNhvakCPtGuT>UT{{;g8a5@jTn{!U$l(0BV;9IbPF@l6+G9&2v1>RYccV zCZ6I&6N_B=D)wByf8NtPkvFo-7TK^WwEnE zJe5y=@jS)f{Z8JIPM&yP-u;fJIY`R0@;&HyW#f^>>5Ilo{USjTwu7HvPIy_Ia*p)f zbo@SAc9@?7FKZt=m}4GKdBM+bxbn$=Pm5=Eyq&{S@#JUEEAyYpd(X)$=Y{_2Bjd?0 z&7?5G?(oaU2`}>t$D>WLvG9THFuw#|=9fuk@GB`V_~jc{KKbQ!@yw1k7?|U6u&f=~ zxaE18^S|Zf{ldu;Pv*+cp4VCgL$&kvPF^`L__>eqQ>YbtYey5k$KYj4`Rd0OOFXf3> z*58{Q;z=)tva+;KQ#=DTso!i|eGII#55Toa^N;M<#Kpn+jRHaAD}~R6Jes971oIXn zk9DU!#p!61Cp$n(QVZ#|b~MKEnj23bc@rH^YtB}ZXYFkt$J4!UYlvrhYaK6d{V~Py zLha%?cTQfN<7u6e+F^PdV4!NewV{jG3A## z9B*?Y^mFp^c=gHC_1evxyt|!V@lttKzn)iiP09THpp&Qd+m=r6la4o73Jv9#=N)gj zeLu*_d(H8-&yn}OQji#d39otb zyG8Evv(KIYz0;lEVNPE6#(^Ln9)`zdR64G5?yJ4N=J?EO+ex0?<3(_=A+DWU73qcUZ2Kc#wMQ1OyQgh#ARlECV5qGN|M64;d515=Gjh% zO`+_Z0PjH9Tq`r@qVzNO7*9o+4|Qc;=;ZacGK;4&bB=}bRZ))o%=wh^_yh`Q! z0_8h4;k8VEN6-SYu0Z*YcI7+H$=lq@CtjuUsVt|ub1Rjl3YBnr!prVcEut)UqAVA= zvYg@MZD(aU!FV{W&=&H7ufnygO1}+P+dtdnsZH}drc`yzrirnwfYux$LlUFz~XzbDs5`m!-VWw}0-+r#QV* zJhS6V$158vZ2t0t<7wS)5bAA2OPz2hmaZgTQE zI-b@kDx>6ec08?9{^aC!b3Cn6yu9v?m$y#Y(DBxlAVc*-;wi5DJ{Rem!uh=td0AX> z{(K+e>T%g&aTR!3T%B!!aJTU&kME1XZ~9l$Z~BXMGio_tUV!@O=BWAC>lVc7^};P4s4S z6~_Hqv%)h=5_wi1ldXJ`ccYC9&zik>;PSlrI3e8Ej4?ECj5ohXp2h{W-xuURv)A*~ zE?G7v)vxE3wM&yX-TAq^K0-e!p6pfo4O+wB$?)HS75vu+{`**VnEz%v|J`r?d+WdS zpX7P}y(hh9ujl3Y&-3#9H-9DlC*F$uHxK?>n8<6H%$4a?wxi+j-}kb^{1S24i>xenV7E*lj zs*xkTx<{^`hl&hfOryNP(FH;)&zX8jf4?HB7^-w1=8Jihy{5-*i!dOc6;nfiE? z9VhJr&vANt$0U4~|M+gfY8=adeT}!B>@fcw>3AC(Z-jVe$El8|{Z6B&_cwXoU=a*e zKEA`S8hI+;2>X7d^ji7&F2b0%m+?k99^X|M^SC}|;&a`YJk#tZXt$$2(OLUZxjCDRi8T=j}MXftQV;e0K#?$}_z$ zIlUSq0~>y}d14g?QOy(ix|qIG#0Y4wkVy{yU(6HxR+uMt#TY*VB?@z{Fi#wljQh&t zoHfi7yQaKVGf#Zk{2a=XKTn)(@l0NQ&on;I>YPqr1F^xB&h>JhX}mso@tm;IT<@$z zt_4gGoBZu*Ix5XiuZYUBsVfUl-WGY3n3iu9yi08d=s=jJIx5)~d{%DTo-45J2D2^i zIrKA}ZM1hG@?t+T?>OXfKT#CE8kY@WE^^eJwlII|Xcc5a1vVuKa! zC+;+ISaGLOJB=z-hkG43M`GTDA){)(!2EAJ94l|P5#tKWkjM3Rm~;KOy~xhrwkZrQ zJ$L+nGsk54YQ_#3{zV(i(=&NL>pOD8z9X)0K|bR!*t>FbOwI3mMfEmu_ykvLc+bM{ z36LDpkF7VnPpQItoAcjK{B!v}em^nCZ;OMU)%SWo@gC@R*|w=;Meiq$=lAmcNNhZ+ z&2Ybc=9C2`{;|HAe*&d}*S)A22P@583Z!##g58lphfBYWg?c(wtL*6)-_X_gHM|s6rv*!$i%+Nlv@tl@@w@ab0 ztNB^ux!RG&nSH@yN_n<#;d!z;u*2VXQIX@7qXn)7!-VM{f;@O;Gj^niowDhm^E^<77 z?O0>{V#m|92?@;OmCtGFl2Z;hdGb|z35xJr_@2+WTc?oSm(~g2&xh~%+;Aq<`EgF( z>B+1;;}yr(3?U!1WDZQf6>F!?od?7cGt0BzCo{G<7bWUGg$tbyUhDB`bvXLcgct6Q zWxN~)(%C5U*{;l2I(e5{yc}x0;=CEP3#SDQEK6MGrpQk7W=zAbp|>O4;{X>1UQSz8 z9Pk-q9D5XhHf1avp)y-s@!4T9kL8GyA!I9}OY+3etR zXkvMrOOT;rx4rSy-gu9kPwOLgJ0!d;c6smqVr)!bDSK^Cy4uP6z+(3TT&`2Ye@A>;wBcknvaYHgh~%nr1wcw~gbqP8s2Yd^*;6 z@~PH&F@00`bX>yAe0mHBZ^Ebd$qw`BL@%!j!H0B%eEL)RgL!kOP*&&oKd3QOU_Df!nJd4SP z9B(5N^pfK}?|9l*d0jm7OCB#RpYc9(@_Y=*FP=9>iH^rHEKX|sdmB%F@%wc=XEOZqOwvbW;|%wT-o%zm1DmL7 zuKW+zm%L}=%y(w5=AAsm*q!{wM7F){`m3_GWxo2iaCxXw={=m>eD&gZH}kw3;iWe_mJlwJfmz68F@)@ zE9@aR8HsPg9_>%RkGuO%xOTEzvUeEmqmLP1!>VhNmhb1iKS%rbd`~XpfIe8!{(Y^D z=fPLJk9)un#wzCt%wzf|;xzEGdCn8apL%h44k|f{(?xE6Fuf2)(OQc?azB7P#u3-z zoQ~_hYZN)n)3|kv$y5KL{%@MeE6zNmIDPt*d5rT!p3U!rWMo>(lc(`*y5!ljD|uS{ z3~as&EKYgyG!7nU^29sQ*&*Ic$NOat?_lw)y)Dh*sf_B^RyD6|E@l1hRjz#c-RB{) z!+6&_9{WG0!^JauZ+5)ugq8h~pKo!z&PF-b$-Bq#dSs%KPx7DVasCn~>3!JAQ-6Pg z>BT$N7f!{AjG{PBdnYX*lPG!5J9%2OpW^Iz)A7olZ()A^(DAl3m1j74pE;i2n^XBb zPwO{6Uz|z)Yf;1XQMQ*ml3zwCkGDg_;YaCh>*S3#-g!=Md&e7-BhT}8_B@L}&l|Ur zJZ!C%B(0-5Sot&#a=zx%7w9KLKc3AGsCUzeg~HXc*XGaa?{T;^IpLg6JH+H8Y?~v%fQMivM=*YikqQAwT#`v~25LUVu z_F=1YI(~iQ#n*{@B9Fta@`|hAUf2Q9!8wz3RJz9ex1^jl0bpS*jaY$g&zfy{_rmVx zY@^71kr(>$?E3j^Mi&suRg9r z`8a1=ksYev5WC@il@N2G-f()F{tS6crS%)eq}8o{@$RI#GXpKrt7^X==Z3n(eXsWY z6Uft?ka>7!&Af&E6{mrRyhK5W)A*j*>O!^2Ar$wUJB!#A|7dS^Z>{4^p0R+u;q~z3 z7b@31xFLp_Q<`2%{Sx1U8+h$yEKYgfc*~cEdvGhsD^8w13zuSRseyK6_ux(~#F{IW zFVsQI3gujumal1{c^dAaemAi4;hva4PV_cR>Ilzgn8A{SIQ;F(}m=>f->%Q+*5( z&+22oUmK-H`ts z3b}7uz7VJHIeC{Sy%6r}GhT5{asGbu)n7Hhd;8Sc1-U_eRYBLqdCa*KS&FqUoNc}b zlMj|VUU_VUGB@fQ)+DOS=AjTJe{0}_rU@^r%idsYdJx8A=Yzn@>he~Tl=5uNIl$@V zJjJKopm!6e7b*)krKUS7N0 z*2z=S={WJs-s2pvzwrdp>v_75;snVvy{9{Q zo0*_f#528~m$(17)X7Wt|D3!F9B*qGU?@8-a=fyALMz{;j;DP>iB-LM-e3`=*W~@i z$>aDNC-uAHsm~c6lkD?6wACvTdD->p9{BFUxwywrezEc6D$^@@-K?L!#CYs=i`bkB z_Zihcp5O26$m?Stay(O)S|fYKQ~7*f%o9$5y$@Hg_Yv58gR}PuXYb}_uXwVTayggh zJ$#ksFU2XdXUv9tisxLO4Gt_r2q_4qq4Ub@Eza!m3G8(Z)219wBwC&JdF#_I^IOb+uY>6BA(eh$?*op#^ST;!}ByQh@QvW zN(4jsZ%?PU{2tOU&pyEM277sC$JvfIGKY7ruDUNHt8 znyy#Oo$r4gir+WQpOT*GuUB07Lz@P)hkNkh8Ugm)s{i}v&0U!EC6br?MscNoN=gs-+6|FHr4fe*r5nCKs1YYtjS8fR{Cv9X@5?Hi@M5aWL_p88Ji7cn&z&tm*- z$I~_Nz|Q*Y?;MY7#5k#~*3S#;vgYWF*sm(ax!#Hs-+Nd@00-Y^_kJX6>`Ut;J%+1P07#<|Xp zR;i@y!xo5_mWltecwv34g`L%2vcvq+%K3Sk#S5Po%_KY4FrNI*wUPlpsU(iQ=h#y;=DUp4t)OZ!^;?c}JLEHa4Dq6UVu+ z_9uDIY%Pvyv-0G>Eu9_mpP7-y!5GIY_g^UA1Xn&Qmc%8v1L9z}gqPX79lkjg_VPK) zOzJl#I(cW9y<4Tc&_4FbDc?4Zx4+{lo`;HO?I@2IN{8|pZ?Ti7Ibq7PxzACK*H#2W z$@`V#wJ+lZKZ~b0SjX{rI01e>Icb+!Kg9m@cj$*W1~bXeftU3|e+XY^JZtBtx^}Mq z+34xB!d}OQmB#pmc(;UqsI2mMUWGBf@y|KNU$F|t_#Pd0cxdPuH@7|HAdq;O|m9>boc5=%|if zfet3=;OF;|7uOND4Mtvlbrk&VY^&#GGM_$9AC zzCro87Fm%Us^1X1p$&$Z3-yN6)6|5`& zXF2{p(z}_{Tg-Wu<52M8_ED)U!Jg8x(DoYBQ5xe@`BmYsR+hZ`GWJM)klmLtEiFrW z561uM`!a&RgT0B-_GeD&m-72E9*FAbNaN|gj7su;%6%E34$8}SQd++Fz6|z$g~B7M zH_Z9xnLTVX*?ldg&xBFD@NC_$5^N0eOhf{gRn!}v-S$l6mzz?*toWIBcYycbJku`N zSpLko2h;M!^%i(9N9B7uEnm2wCQsh0DKEaC22DR|O7b7I$bZ2X<>mVn^1_}`b`MJx ze(DkCdf8ft`^7C6;`+9gS#xyF2{q^Enu#gp*&O{En>&gZnI2BS-_@b_+Ju+s<-X%^ z=;bqpnWXnRCvWGZ$0-!vNy|4m;ooaKt;Myr;&b(xbp1T^&v+KU`7!TzC;#K*X>IkX z^x7KiamQOds7wE9ZS|Dn+4L&o*;?&c$76jk@tMy|lJ`;$FR6N^LE&iGr@5kC0-qdD?Ea=fRE zw~OSN|2*$$<4qLL{P(GoC!W;HUe9|*1Vj1xb0_av`+k!2TKPQhAI2++XXX3a$rDfN zRX)#qP6R`hZ@H8Af_+~ry;eTYd(n9NiD%_&j1H82x8`f&89klnc-|`_7^-}p_fPx& zzo|F%jW^H9Ti@|^%8}=JV?EFO?0Mr?k~g7@ z7v@)zr}@xC$D_>~uT>~iCw64_U7w2l8gy>Im%Vnat+UxHc`sKrpoqdT#;Y{H;`iG@ z$3Dq5@K(t^`PeI%IS2WiCt=N5@_fwRrbDr&xzzD0i}|XrXM|o+|2Q`);QV8 zo8WkDB*@8|_Jq?6}m)E4zo(^j_h3+I9#9`vHKmviN*u$R{>nY8EenzMIIgHXbIWiMpm zvZn35+Ou7ehxY;}!z}mQ*mvof!R(@$M^vnR=xkG;cz;@!unzsk@wCqSyW=%Mu*T!L zeDJV%7DLT)cqm$uR6ftsI{tAducedML4usT4vx2;egCwRm&cP>mCy6mH^K`}UMHtl zyi}g~#q;vkwVtQG*vsqc^p^F-rq}bdPR`_oHZ7iFTzz)Rv*!S9h{3Sr+PixYP;%|v z9t2e3+WXJ?9H7E?|NT1@_RYD!j@N+};UC^9@UuS0U(W;RY4sL#uY-)R`gYX^nwzY|o`n9c` zye(`mtzf(#+mG*J^3;!OFRekUH}qki$Lq38O~kXdu(y+EUk5V&s_oBpJh&i9&7Hgj zj#oB**!a7|@i-2~N#oI}j;HyCxOqHmZImR9Tau^xMOR;zj(~BeCwjBF{Ptj-x)}Gp z%3h1BGp&4*x5(;O@57?-(;$y=#5p?WxhtBtU+wJ88>gRgJdG99$0U2jQ~A~nUzhy- zHOlvlvv(&j-h{pE+n5y3|8VwRVD@$~UUB-&{m75)RSYe6We%$zvO`i`Zm@ajxXLyi zC)p;RY%5!9SpR%t%dCH{omzhXGxAdLtGa()eHHZ2TqCT?{<)LY$B*rwZ$w-%Rl4Rs z(&B~R-(kG?n*aUC3v;+|-_okMH|lZd2yvQ!Z`3wPIa!j@^sg1zwu{=rn6YC<*lDqC zpF7(~`5t*}4>7OhFUs$`X@@-a2{Eq|^4PyCPuEC;|HAzd!QZ8J)OT;xUQr$Oh7Km_ z;OBwJi|dGaJ0Q>7F$sAbr{Z&GBG21#6!Ky_DDQOS)mKNs-_Evr?v1L8Y`X+HnBwwX zhdgiFt;qAXJ%BuK+q1~?w!MkG*tSY_6#QLk2g~&Z&SfgSZ-ibc6po1OSj`4o-5Zq` zyKTV>wuO6uD#pf-xHqaZr1aHlHct7Rds1?LZ$-Pl|^|1rW z_ut$b6=E*b8_Y{mefKCG7uD|s=w(uz=G~)I3tk+jm0~T#O?j*xXgVtO*?i}v(qdN@ z=AVMRxXo138|*37+qa(gLY*DyJ->q9tDIhz<&VgVeZai?kXP1Lk+&S*$)}ad9PBPF zGv&RBbD1i&%Zs8ie`-9okEVIgI+!}Wu5O;n+#o#H<-q9&*3MFyLmu^g4|$<~3HN=e z%%PtQ{eAFRX{_#6W z73a@85Noa}VNR2+8#!qmet4nqH>)?zcROz$=AxQo?wLdtev6#)CMR;c8_%!He(!jF z9nY4j1-`G9Npt1#j>rC$>2~q7esjFF11Ct2g?u(Gi8h1M-Wl%K|U^eZ^TOE#=vI|CdfL+m%n3 zLho4#FFa45ec1jWb%oxKo!-F9^j>bl^nO|%-UNC3xfuTo^7eOmk0S4)AKFx@T`D#% zwlXW$)XJY!SLhPyKk1mdRV&@zl1G7fVsE#duf8E8Fw181g)|!A7ZI_^4f>FkO9#O%uB)^clP_iv+@0X zm*Coe>X*9YjH_x2g=&0~ymhKV@3~%7Z|$;rTb=bM-`{EHs?Bg+%CteMBl!L?$7>g8 zg)ZV*>^|jqWqXkpyU#eD<`zAiycZo$v0>^{J6?4>T`TYHfM7s)U|!?S;R^8Q9m!(d%P=OXsNNpLZK5fPc(b=e7zB% zdc z`OBa1P0dlLC)r`~_mq=&lf_@1@rtvi9b8>!ZL6<5vDPxnNIeSy-x*ac=Nmwm-yv za@kSXuT#6UK3jfPJP)M+q?BiC-Qxz9u1z(T1$Ov*F7$@_XnrQ2|HtxeiLaJiiuc|* zz1`j1XP?Ac>{lC4>nP1txSmzt)Ys0{{EA}-)1OiuVGP*J@zl59CZ4tZtsGB%c95Fs z9qxGL<7&`5&hfOCOy!y0T^&z-cE$_yrb)(A9r<+y`8UG%p^ma~ntB@@jXh}DYju9S ztILzj_YbUu?@zOH<$LWjWMvLMILGl=k8x6ey400L<8;h@pgo@NnD`)ztI;5QcWI&U zmb0za`RdoUhw`-XDEDQ^YXIc+!Ddy>3ZYFiM=5*eGFw-&jt46K4si9R_xz^d0d6^Ep@!I{X{FD=V>mWVrm_5fs^dj!FIMO8n_r4Erq7#SoIaI( zps&lD?OesP;`Br3)4Lo`b^ej#J?ePsCqEO zzniUiK;WnCmmiS&7D3#=4a2Fmj z^mWwnkj4E0+N*oY&qs%{L8>Ev9d(-3NAMNjExY*u&JuXdl6g$uwGUWnZMBQFBQl!W z1Xb%O=Cws$=!;j~eT*HUgX6dKR$9MppOn)E0~X9uKPz)3+x9fu@}BWF*x5#rqmdWJ zs9-PiCLu4(L9)E5$m1MZWhQSH^0@b?yh?Tif0x=(-+hdAQ5`LU4kqc~=i`tU*Aes1 zL7uncD&%=PZbzQC<5A?rc2M3+$g8i8g1?<@_1woeC$jBB=wOO%`wDs9w#JxDdE3@R zp0}+t^1N;Rkr&%msg8obOYLB}hT&YMO7}~h7}+twc)E`3@Xj1^eVl{x^{l6Ss^1X1VJ|4e z9CNZ%-(JueQT<*9y-bSJyuF|sz>DKlWeIg2$`azHG}h|7pKxhZmRns}Sg!k!7j$I( z)swC)r?Y$gh9WPFq2ZnPmlW1?`>QwLKxr?<1o`;+4}-LmxBPIu$|#dxLH0<-$);p@Zv*Urf+ zzeW)1!}GL;mD%!hZzr#>2!@(d_jNq2O-0Y+@j7vwwCC2(~-lL$m&gne~^12>_{=^!J+W8D8?+@0_pR@9@7-vEr_lT1HrnH^AXCPWUFEDv( z=W4$%$zF@UMUH1%HdL1+#nqvXr*{6TlXtk|shxXyM>(GEV|*jB_hQ(~{wdfSB&?P6 z#FCb^^OK!C^#|{`@}22;x{py3W$#&zr)!WOIC)DQubTuJO5Tl*r*{6alXr{bm9<~1 z-}@a8m!^~SspJ{&VaLN^lD;;c`YVoHaa?Vc(_g*hp5_BmTk~HoIqxt^-udy}o z#wl+yzQuDYji+|WH2~9Uj(3aWX`F6W53gAem;O~heutB%>jom`@yhxGs}C>F!b#!~ z2f@$c$uCy?jAwf?y>a7-u5HhoHlq&Do~WI-f9bx=J*W?+|IK?cv!Xqjn&IP$xVl}_ z0A*(VEyBN_<9GhYLyq=j5*>JJ&dwP4)-fHHS92eZ*$)Q2Lx+qke818X4?_SYl6?o7zNb$aiGalf2#GuPSR`r)m+DGZ*m2a zcdX-eGQutCN;=DOiZJ#E)Hr6=~ps0LjIC*_c-o(h>U&6Lf=ad)xyHS#((uKSW zz++18F$`ISz9qcOFXuVEn}$;hljIkhA6(^lx~5bV&-|CiGqLHo|A3R1H|{qv;&}k|e!7oZdZ+HPh+c#POz-NXzPN zpySmUZ=RFqdHZ{LW{2lZ_dJV(p-%5C;~ippb&V9&YxBfFnC;>o@B2)in-}&rv-UB^ z@#McTPVaovd$_ZAzT+)4o~1PIo_cXWGHzjJD#p79p~ho>3B!y$UDpN zj`cjNw~HO`l$GS2R>rGKawJdv?&*%l!yC}QT%PF7`f>ia;nYcm!V9w3?)Ukvl~3~4 zw)>=inexJX_c~_>4wLk2<0-B}|JN%04a{n;UsGJM+l$wOO>^SvR;O3<-3wGc^Yf>U zXJ1<>vv&EN<7r)ciIcb7@pM0p1S+mp!vGief4ZORGRd=cxw_-o5Ky>MJhNl%9G=(f zdFvVB8YgcZCr>;tufOAUHNth0XLfArcs-1Fz2l8@JdKxs6wmD4)$#hOV1`=HcwXM` zNjy*cTz@vb6niI}AFkK(os&V)COPpp$(2vz>K)FGy&P|#m0zHE*~js=GQwR>UajM8 zBSD6ex1ZzbUXA;myptSH;0@sa?fiV?!tZzT`(Yov(rdRU*Q57V97YY6Z^0*(w z@mKpy-y)BD5pmvXs3eZJTC3q>;TOo`9<=g`bBgokViMd$dHV5da&?twFf~a2_QbjA zyc0Q!jfU6^kH=8$LH%H57H>_*(_V8S^+Bkk&W@)&td{yrk97C!3Xq4y!Pwr=SXvklNZ#5_(=S0KJ8Y*%YOGX(CO`MdRKS$?&5f5 z*NSY6Kh*IwmaXmN9p!l2nqGnY=Xn~VQl9BO!^s;if}!M{<#;=+ByUt1FZlR8lczRQ z<9IyW0rhrK!pqtq=Xy1J6$;(t7wbzdcJelC5aM6FqTQEkZ6-XE-1b?2@6L^yZCa{b zQIHD?&pxV1ZCm=E0g+zz{~oz?Ltv9p6R{I>D4?tNP|4v-|d45bGpBKaOu7- zx$_Rz87sHH+p)U*w@WK~&t3PQaL--5zZ>rVt0_D?hW7w#pLNyTbNBIp_d?B0}nkk=63$p_>;iad_Xao%&t3u9Ei9l_tFcGP!&-9Awr zy$&5rvEGl67uONL{{ea4jy9O+cssfv&)cy%@?twEZ#eSmtE1p=XInk@*X3t%2 zHW~)G(2r;PYuv~D?wCU1Zx%xuf7Rb>ZZXq}dvX+OQ=nr}q*wFFWj0o5t-+XQI$b(! z9{Z)^VJI(2lJ~viX^cNp@@yVfg-r<*Dc#f8eEeMTOm8E{W8B6`^R?9+PkUtIs(c+B zZyh5nm0l}fXU9VbCFw%(tbAP@uiAJ5>Fwco-HdRtaE-~i zPkuIg4|L_@c+B*Giv|~+TyyF~?dmC|5J3rm= zxMpH{LVC^K3ms4W+CRiIy;nG1x*rk5rseZI?z6;6<-5ko)4s*?(re|r(ec(bVXuj2 z<@Uh4L%MQ=mBuB63=^lbF zq}S@>4X0PUZ^Sb{zn8<4din4D93GbKNfPg)99}{FmFfL7k7tS{@3Z=NChzw-!VC@Q{Lnxr@_{x^E&n8ZN)Rc zG;%!k<0_u~+}QEdkFO-`v!%NF&@_IO)=ItrZ?C9lqnzz@-(>R#%LYzvT;?$b0Xz8BdcCbr(g7a&!KAJjh z@`C+J_Xba~L7>7tpN&UCBCl)dceov^|KIEh9-6GdLRsQ_J{i}cd_V7=pzitn8x(M@ zLmex7&!_fd$6<0(;`^D?=lQp{ocn*w_wjx#`@B`*d;JEwx3w9IKiq*E_JOffHocYa zx4ks=Y4bvxbek!B*xTAUL==8!ym&wC7UYFJqp-)gD)wXl1|96TrB{0>L2uYY8JCnZ zEj){xq^DP4+kR$S-hS+x&Nd4C2zh?5?|bC=y}qW^<$HZ?kyqbdU+{OS9rf+U&W-Ab z{SA|R#m^g7m(~&UwnUz{V>I%-9s3}UV{0t$Amqh%;OoMX$g8i8g1?<@_3Xzkj%+&< zI+)_JTv%Oh+cn7Zw*47--nIvj=WTlyd9iJkVlDW))Q$quJ2;oA(thmOksV)ECp6d* z_7n4Bw_zvQ7I+n7<45ert_gWu|JAq8x&e4Avme_Fyj8g$yMlNr*^kYuk1bKYp7q$P z`VFxg`jQZH%qdMHAdjiib*uBE`rXZVahy&=UKP$&p7e&ipf|(_bFx(5{rs0jdgnt2 zlXT?$&iZKZ;`ULgEWw`AvQYLZrlXP%Zivcqt}6@A{Vnn+QRQRapO6=qg?aZN&$rdb zk>}g$%gBq{D$o58d2v6)yswdmTS-dvHtUSzD6f(af^VxRq9j%0+%VQ=d**|{ShA#0 zc+h;HeW^Y+CTrfgM`A6md8fR|iR`W2e3!N|-RyWn9FO)h-7cQZpFNNE$4TpM&%^Ys zBx!v#(&^Q_{Z8q%`TdTLr~RhCiD%{8+41uBktR6ax+SH{_RaQny!CQ;QydSWQIhl< zu{z_a-nK7cg@ay*gZ&d;wyy1tuiiu)yexZdT^o4Wy7pR=_n7f`I0*8>yggj+DbB2& zJpI7wg~KXbPnqNFP;d2=^qQYNPwQ1vpY9LMck;CF_zx%VV8@G!pNLev9OZar^=suj z&GEEPn3m7(=@3u#(O!fIcY*&-Pvm9w(HGxudK~&}*Z)S(&eQx7NLsbmUn+tht|CrZ> z`>)Jbk2@bIHdd1k^ZiqfXH}CHS#A1x$5WebCV8g!pN_Y-NopmY>3!Yte4CcuHylr6 zKpV+3z3(}m>T(Uo`_%DNN52ry%J*dsPmWRfJP*skBz17|zH#!zOXZnf&#M-}Pv*R?S*qI%k*G~jPm2U$l zufKi2h11(PhbOU;x1r;eU1Kpj`m7|cpW|&Ig|frsdEUS>Ug$eFHhJpnhBzJ%k3x`# zdnNgM7mdaZtXIrVI2F8}$vu@ZuW_-Y`S*}cOUlWTl%}^=VB4W;3pwx1{?ge-$yFGT8UST4^HxV5 zdx1Ew1M=8v*R#Qk+ef9c1ba%$LfbFKxnX>>{UN^F z7-Mo6d$PUA^`T(d@rA+`3?wA2B{fEAezi;Zx^SD>p?P8_Y-Vykp?h^z8+X*h)85iu z;@SMKhm$9ssZZAx8#$i#DDIX#n~(Q*Jo~zEuj6gucv`PMB%YOTpyQS8J>>A(%K$_9 z&&$(#^--sHYp1tkj=T|$S8cqfojlL8E-{s=xufS<=w>|g^F*h&zcHS3diQZWe-DuS zvY+E^XYyWh@@6^S@U&#%gXEp$c$i)$=~XB1Ovf8UeekUwdByCs$SF{jw64 z5EK=}AR)2_3`u8U6R1uvNhiJ0-C027QC(f#U8cIKQ%jOY5JW^oa2R9|#a+bh6OnP$ zL2yKI1jX%x47ebUxS*hZ$mpmn`TpmgbKbk}R8`VZ@(ujH-2Bq@-g*Cb&OPUD=iGbW zdjfdG@VnFCwkRX{Res+yxHro6Um1S)8Qhy1@Y`l^Zx-BRhTjhi4qZVaY5w**J=xB0 z6x8nxzc~hXQ-T}yFN2OU-{5W$+>?giaRzs51AeC(+*btmN98AS&oH>J3hpVzN&8)4 zaCcd`4RBw#IFZ|D_}wSCXH>4>)*0M3!A;ZtS>&E&a1U6y4R8-yoX8zE{C+98y^LIo zdvucg9uwTYhF{*uRh+Wb`tnAD`;!3X7=D*Fz*&Bm8{BpQ9BBA8!dZS-8Gch`NIuB$ zySf3+^1IpK4ibJZSAJ4%w;9~wf;&ucQV;GmxT6FY$!&l;#^OZow++7qf;(L03hq9G zTO_z66(@2ZZh(vOC;WbAaHj~rV-3GQ7~E?b=<#0$*CDu98-C9iTvr2rGci#4{!qWg ziN1Rq+}cUv)=v_*p$5kzl*(1V?ks~Ndw&{({5~#!{LDA`n1_Ns_wD$GgW5&ruNW7v zjom8zUL!c-_ix~L1m;@WWB({qdsD4wH~QW;{a7a5$+yfHc+Qw}sZ^&MLczn2=^ zzRE~`HGhW~oUVx|Tz#Y?4US?hKj}L0QG!$3>sp78{WffMw8O>gl1l-&0Jc9z^$^=L zF1G#m#P;10j>p>LO#Y^cz+Qtp+2GX91B#RKIK$v-<{hQ2t~9tBI}5+F4X$QQsR2%g z&d7XfXXU4Mmh4A3I(QIveyx)m+nIdtpTo|>s;}6Yaj~5r6+537;n>ch(PL^tVmu#P zF*voe!c`B&sUCK}ML1Fn%a!7I)#z~;7|p#h2r5zjxa~78*5l8j$Lk{;>oH;Sr}d?v zI4O@txJVDF2bUXu8mmP(;dh0>H7ehC3Qp}}Vz2A zw~6f|oXGvHkz23tJOpxoXXMU@+@Y(2;GIS;<6^nziQEV$a_6LYJXd{fog}r7h1>%i zF0N}QfPOFJzR$>ITr9UDa^Dr<28m^GYAWeR%y!iHkB&X38JyM^MQXX7F1Q`(u^f7w z;c#)e<-lm}JJ4T7`Qv)PxLA+3i5?#o9Lethze`-3;W;R6Gb^2p+Bu_}REE?^i?jWo z@>^s0={WOo$_A443y4XZg z`&rykg1T!b{AfQuk(}gyC{|9r*mK5RDNRT zHyhlE!t6VW6Z>6ZaHj}Pe^l<<4em7xkYBaS#|*AzlDO7M;@WC(+?S|a?VH*Sj!s99 z#Gc?3*)Q&!jsyK^^i7YcU1Uu8gu}&s(>8ez)kA{AZNY`$Hxs{hP5pMc*Uo1@9LeCe zbyox2BZ`wUy4&Dtd_5`iZ|)2y{J!&?;n?=y7k+B{y@T3x6>N2%!^O6zK6dFp1i>Fw zU$H&oV%z_6D)ak&gk$?X;P}O3fclt>j(z2a435goPddISPW7;MrhDEGJ${l()*5fbMNB3&gew1 z$DSQGSD-ZP^8oEq=SL_FU!@q}=haS#?%h3mHU5xdJ9GXTe=F3!x9qXVrnTRtm@8$D ztOrjCZfD=6m~qtK_FamXI9bW>K9JlOgCC`5x7U7`;s`H)hYD`{cK$9!BYww5xLx}$ z1=}K-zvMUieEZFGd0yz{?^I7N`G?_9dLkUmxbBTzBL5G7W*o`<7<8_b@lQw*uT{Ud&0H z-wfJPx94fc_g)3u<>uZSK;!xxum65=3Z5H5KXj4URQsW)Qpx^ht$fd`LvUebG+c%J za9f==jqFIYPW&F@+Aq^^8r%fAr?@=N_V(e;bhfAKnr;E^3X|u518srhr|a0cv22(R zu5>t|jc3yvL3@X}_g>tas*!tfkWzv2`v7oP`~2|E$4a&|M0IET_8D$JfWGIQ#ucg? zFk29ow=Q0eU#>5B_q(G_I2zYArJe6+xQu(5roP#~HnW}8-)JHbQkRy8jQdX*9L)*( zN%_5eMUr2efX+1h78qQI&kV=Pui4Yj7I`r$6f3THIL*kYB}}XZXF=;zZw3gF9Dn8I!+pgFCMQzmmZX3NB~(Z8o?e z%TMfLaaoHKJ+>NtBZAwgas_vx!Q}+ENpT|gB7@s#3aMYepRpaCG`J^jDvBa^rsdLD28N z8qW$wdN9A6C4b8AXKob4m?Svjw;lXu(yw_YQi5?GQ;R$mZYI9jZh%J6~V zxWF%&g0M8I8&??{kdH&@ODaR!)-?vFeFURpe%Bcs%^y&@L-|QrzR%zeU|4Xc;zaI; z4Gv*$B557BxPua?xGX?+8xIvR*&_&nC}WmYNlnzEF+hx<%ksNUGr1l=BVxcC{E z5rFQ6ZciKCeq#7tDBoiGvFax8jh}}5)%PZOr$NR)dVV|6xU-}+ z43K`R`IEZ#XM@|1VbNdZ_l&{K5ya08zkSi+(U_)k<#G)_i+iac9#y+kvSZ^y^S`U` zG8yBQq2}*kBUjfA9yj@Wg~82LM)Irt4mCKf$4j_qzd^Im7Xzn3((JOK|;y zcj8+k(wS*2-X?OD-(6EEGR1o;1Q$+Z(HZC$vg<AM#QK#uD#6IYBqt9_Ep`a%-?2k+TSxe9zQ;BaN6(A zG5l^bI9yTkC)x*OwotW}(r(R>BSulw%irc&ij$8Szl<{!fK{jSA4 zis~W#{XHUA`8_d(d!4z03u!_UiE6_3?Q`7sY{If5Nmt6!ezhHa)$lvE2FHDq;TG65i z_uQ@(;n`t4!y5#5fj`w@vB9LC>rJJ|%8M7#xJT`n?{%~ms+Tlw#kq_Q2e$xx39r^EtrE!t#+H>2E zcJ;lm^xdj?k{A30AB}8U`)<|4WVyVK zc$LeiR6xqCqz8AP+lNKBM(-y5wb6}OJ_#DNf6WWgrXHhyPW=6-*`TpM6w?j@ZH9Mm zJw4doNj-M(zsG;Kx3ftj7=K+*dp~FUj|eDLrM+{DiA^3&C{o3Gk zKKoY&_k_V|EcBS-M3283Tum$_`Fq;nG!}Z&@SCxB@|(8v)Nt~vv5UnWK1tksi+=GGqgcdGYL_Jj*W`n6 z+z7X1lDMUl#4W4A4LgeFPh$hx|Kcb0fj^82tUho)I}~QpV}2+Z2+iI4eD;B_Z4gT? zM$UJK53KKq`gg>WH0Q=L8t*%_K5+V2E{%HcJ~>i56+p%W=ldXAK=XZ&-Qfej2{L$G zX#9?-LtH*<{gP{UpxX(eTO%L%qeeHf(q}-k{?(U3v;NgRpjrRwKG1gNU$MQDdhE;x zKE*4ehaiKJUq-(H%`YRm{#Vef9{XaF$LetyXjYFV(0o0JUkbFHl@Z(9=(ZCdxYg6` zOvs?*>-IX(tZuId&FZ!lG^^WNL9@DD2b!;&`baE;eI&MbQV+`4$8j&EdOq+uo*w@y zIQ4-W)!n;*W4Y|>)vX)5-~-2++7Mj(z2;L4W#M>=~7MpuX}w(r4?~ zs6NPGgd23Szb!cRZK>W;8Zx;5ZE&i^>lG(H$PWx|A7&T*RiDA)_KgsHpuWm43_tZ* z3r6m53{G65h^z8@+~9Pce_Z*AZ#JVnxz40MYsugaGB~Oilr}3)>@wHjP?U+J`Fo|o z>3Z$?hTp3UuEvKGJzi~a>Lb0;@LO(hrzCP0$1W!s+-n4PiQ#vu!JXcKU$eor2<|e& zZ?(a#Y{0M6;5sZ$%A?od)-=GaHMrhM;?AtW4LgeR({|ZsaCEvDm1CWg8}F+kUwPoV zARu3slD2ck#WC?kd^xx_!f`v#89ivsqI8|Xl?_hY<$Dw-_SEDqdrQQFH))Y%pHjQWG11=5DJK8%(2mD1Py7 zS!X(_&N|b=I_pf=HHZx;X4{>y!4*;-yBZsuE*)UK*x)Nt*U0Fr1?T%_1EBf7+3tu9 z&V`Jbkgsy<`D_2;@>%PzZQ6lu-xS>%#Riuc-N*)4f@b~B8$h#u=S`qlzw;K*X6!@{ zws%sGoy7**yfV5CGAOC7==d9;`DH}32SBrWJPMlC<7v>W9&<41;p;*C4h3yzWyJP2 zy6q%3c-Yfzp-i^;x}5@=)omqcR=2gFS>1*}v$~Z*^L49N*Vx`kJ;(-c!M&8~#RmWF z>2aOlG&X2dcRvIi>&CG`-MX<0vB77-Z!)pL9l%W{Hn@ z#0FgFs5U3lBj86VS-$M0KcjugP`XlPn2SkfMemoN?(!^`Fke@6Fs^?bb8;PFeu|^t zr|Qb({7o09Ijj_;TefeX=JtQ#yQBF^THAuq3OsPx8gYJN@#LF{Hs@rZt7p@_@;hDMl{|p!m)q#j`n1{ zK<%E=0g4m9=^qTvYO8+J%?7tGvkP8g`28P)lVTHe?6*H{a3=`jV8f3#&iMQ5$bayY z=5MCKE%QM*R=@7026u7|ZrD*2r*^jS2Z7E)xxLKsi~ZumLBH!=XmhHE>>FWR>=)nU zqy)kI2*>4ijLF|#g3}+>!{Tb=TGnH^@KZgkUrc;+(Bnj-2gNB*LyuFU{4qbq#d_Q! z89P40u^y)xJ+%HUQk>Mk)dsh>@Y5eH-?G7JJl&-HB)+`R;2J%vaFN03p4mvQ-2 z)_}ynSDf0}#sS24E9`u+lS|*opwSuMaKZlzuE&1NNDsC%<6=Ai+@Z0iAK}=}ml-|O z&MOordc57>_7Z;jqjvr$gVT22s{F*xA2K+tSF05#a&I)aM)8)#(b(%J&EHLipVkA# zYWw(v!AZ6hhW>!<{7J!Sxg8uK;)5$tZl7|vxSe<7^8F|`iq|M<|IE0!+-8Z3v`%m| z9??$oce(f|9xL7p8P|I>)%Q-L$7~iCoUL-j&K5UEaQdVCer5P+TzjtJ_Zx%rTsOy3 z`8{rMy5>4)`2F7CYTBjLt3MfBZF}Q-|7U}%iKnG}6{qD(V~L+M?miJ2*SLE$olnHv zga<9UZ8CB9z`WZ1oeK~<)ANQLn_}1I0LG6x-)*_K&i>9*a4*emMfdgx!J;~G_j|m! z+uxT);{)Hjd-kO*L&r^JN-}ozy>h!I_bJqSO7-II%cKs`^)Cp{k9+O}jbj5|FWVh) z_qQNpCgiJJ^%Gex`-yLG`ILrEnU(aD9q4wo=+-Fi{=LzSSpEex8Z|U8M4Pp+Hl{le zH1=)deQAe+wzHUy?VZ$PXL0upUKt$?8I=6|Ed|XlBf8!Sn$=@1Xf$^D_vS#edRzdS zuLtqF0<@i#5!>77wv)K~qn>UzKn5j0e;)(Q>h?L%tZrWg&Fc1j(5!Ah1tDd)!qGpW8FCJu3I;DA?|)9_)RA6UI5%=;_hX@ z(b%=4HLt&CU)m1piBz~M{r7{A)!)K~eg;n!twHNJ|-wK&flPPEGHG5ijejNNDCt~EGa zle2of*5K4v*{1wN-?YKa6GlH!oaixRaPw85{Hh+q26u#9f7tNL8Qf8ppUAbiqb*MK z*l742E4W9D+)V~Yv5=osk1Ym=YU72sv z4ZpV-+=GKSw2`Se}ylLyU{(WIo52 zW1P$t9DpF1Vpx?+zL1}Et{?;cI#)25u2jPDbSXWSe1`1;8Kmr7!3Un5GX+x@5{uLG zm+;}{{m;)8_}_S?@sQ&9RO-2%E7;X%LH)Ucg^P#N8>Io)i*e4BG7n3cqQ3ZpVuM-G zBdm_&uf}D%E>zr70F7g?#%n;U9bfX4kf|LUA8*UEEnRGr&v?zaKzZH%)E1>zy zdNv4)8P^@qSWVBLJ3DXAmU6=r!D{c`x_ZdEALUy0Wt*`cAiJdPZ8P-J_O`i*<-Eas z)}NqL8r?LR_BMC^^Q*lrMZR}Od(-{$e?f<{tNZ2E_HXlSPxie=>J=Sp`p7Qyb>}?K zY)?M@^VRlOJKG-?jGzr}Oc&CnTzX-;9D5T&bHxzXd;a!!at^uPTr<%+gQGD2+!EP< z?qwSJ^kf&U2cPolfyfOrej^0-)?KIv^j&$1gT?mr4ugUJ*Yo54n72I6ODE-p#-5WR z+T?5ne$Aa2&o9G$FOhryo;Db=I}~vHjr|-NjauK0H7S${CG~UuD(zhTm)SD!qqwlb z;~>A&4s$$HXcVF}m4DpdDbd>4Gln0{P5Mde#;smG9m!V0Y%Wnv1E%qvT2B?RU1Us1 zR%Qcs4s^Q(JogC>3DkayqxzD|hC{h>5bTY?hx#?LhvsFQS5K>zTs|DG7BWfKEV%sz zR!{wP99oZ+HuId;Q+>a{i^K;e8IxVd3Adzkm2j-g_r~><=9}h*cplc&(}RqkeYo?& zg5X<%11sFA{u;k)C>+ieG=8)1(>hG}>HMVD({D#|2OYoT4UT*kKWW^3g2CZ5krcPs z;HYf;q-)HI({`!zr;63Od(6SHpOb6KgkzcNtIO5FL@)b|7g*i(``8nq@b0L)+DGgs z{Q=9E+;f4+_vzQZ8{-M7LsVAxiS7M0poc-DuFI!A4jT2SKJ6LM>>AMii-7TP8V4{x zUR!+B$=7}wU`dDKUe=etn?X3z`@QHpUxs=_Nymi)#V%U^7P%f1&&G*vVS0#ObtWonUY( zU*ORiLCWCv7r<1tfy_O$8QcNNNPabcod&0C2{R499)pwYM_iSk#nJo%rG11S9j}H> zxy)fxDe6}^3SH%-{DzEN@}Vg0Z}OKjxOom0|51M92KTBM;*PXD$_95-1Kh<1cYFF*~UdyWTx^35pLpmZtnV$*d(Qy;FqzcZv>b{WROLjc~2 z|H^NX;df&leqU_B@4PzvmU;Y!%lQzqJa~(zdXb#dyX)|yh=%sqtdRU^p38M)oNQ#2 zvgK?gDI&P9jtsKFS26fo8=PkNm2+Wka5%~Ep$7cER)=4+$B#6ARPJT%`R|__@H-kE zxy@gj;Wu3u%shrK6PhjaN*#V39zQCh@|N_tudULEz2^!U*ZgFE>`r8&*Mzh@!jZFO}+~;tlQsKiVU@75}x4ul4xl>+#E1BZijWwmSUI z^7!S-L%Gc+gDFSk3|fBl;yata*ZKUa_4pC7KEL^O_@#Y*)gLU|A^7z5<)h*V3j#xi`2hFK1 z->SzipB@@A?1B^#nO)T0v_7w?!*9apmoJaj@&mB}zq9M`yU^!{x9MAksXP(u>szhE z?@b=RTsbqA=v=@C?E}R6{I0FT?=2p`{9w9Z4VZGo`usjvhu_;ge&y^)DLaz1V5+}u zWnUX6Jdon{%f$P!ZxcgxqJO!{<5#MrOCyU6zrKOyzLnhJ$NZT1Aoz6{e%E;X@Y$|P zanSH%B4y9ZAHO5?Kf3WOfbi2g^tn1VxXzQ29xNvX;C|4Ey-RVPT_4*?dt6V$m96-% zee8QYeq-6O%=ko-CDXzJF|_ z#hhSrpKqi2M0^7vvG=!jK32a2xU;>#VJcHbm8qm?ZUL=JatTq=bs~5 ze-P-tW};DAh;e_q%k!+@DEO>jbCW(Z`J(stG~jN0igcrIEl}i2>9zQmOe=vq5&E_V z`%P0BXM;v|_Gv}X=7H80>@$tzF2;Y3-je*@0vzReWzae8Xt{JPXibLSO^m~1PBHFF zOvAI>F>M=Y%gw!yfHu|Hz}Ic6L_TqTo?w2{eSX_PJH_yu-GsPw9?i?|*BjevFSjQ! z=7#IQK{q^d73c2+&@KUp=DpQ^ZJ@pX**OV4&SY95FXw_b;PS#YJSQf$1Mx$Df5r}QVOPsqytupXzkoYEflIcTFhw?PN-uzDDiba93}m4GCF*?{ zw4+@A!nQhK7H$aC>!M>$7xKM(`L=&MXef_FAMt*s#pNLbrjCu27u09x=%`PlH0R8V z->G^2BJ)eMw|hW)y{Q`yf%am=$<0{Fr+%%`bGT0chx(Gp^R%U|d=s>TKm#sO=0`Iw zQU8{KHe~YB3L3A``~6VLjZbP%YSW~z#wnz4NH3HwB61wx6hfD?zIm+}WUEZ&acV z4TFX{lxT08n3kwRZ(v%YZCwT$nTk zeWtPFuKu{-suZnhT&6S%xHPs>8p+UjRcSWQT<_y|@e@vHO)thVH5HGRq38DCdU~|@ z{roX5em}oQTTW~72PE!Ya?(k)v^2#dN!-%(YS3OJ_u?nG8+Kkg&-yg;Xh?|?^`|t^ zpmP*1FKykeA$%nD$0HiXJoV)x8u~=tM-kD`wusg${$wbN;JS`YI7$y7f5*sNpVEE> zn$CeL?a!c{Z`$At80rvn@1da0HMA2!YcsSi&>lDZ&H-(n!R0|aLgr63FK+@(=Tw#U z4$uxZxEnw_#Lzwt+UtyrTS2?P&~689o1xtg+C7H$7-$b0+S8!v{G{e@zY~MtW>nHc zU~{F-2TkWim3AU%#{r`;4wcaw(1y*u=YV#yp^ep{y%n@q8-5=Itn`tnWWlzgDkrvi(|k2F1yyy*V1kh%Ly6%L~!^5eD)!y3&88x&Gy@5Y2INXNTI<)>EX&3No z?+udU2hkSSp*015{*awu0m|3+HxL^Ppv!W7j@F^2z=Y#lN+D(fD%mgyd)nK>fxeEF zIO+~tR<*UP3BuNnK73>)T+!1rpd`FsEL$oT!csO}#!nFT^>>H8>-*R9QQtsI*xcFN z*Ttt`h&^Kt)7QUlX>_zK2)pPrFX8HrHETNbWS}3Sn)_Pyynj_kU(br>H9bmjXgn3W zqIqCIX)VpY18e)*aOVakb@cl;^|kf4^{s1bT@r-t&0QUxXN4^TebI4$Z#yz57y7%K z@r^A#Ywzq?-xecVI(xt9I77mt**z)Yo$MfmRa1pf1 z#5hQ!LtF5{p-PjNjXlNd%Kdp+yls7bVgK5embQMBHJ$Xe4J;1Aj;0oO)`MoK$Ecm& zNl$-g^E%X4y*kj*)z-5X?LrA_yIb4ZgK)(F;#wS{>PClQSM!FpPE`Du0-5m%Do=cZ zh7+Hl4aXkw)AulbabzUwh-Ri+}GSijo8;BCPtZJ5;gEzprcwOwf;I#M>bgQ8*0Hq zH)!rUYSBVxbgWwU+Ag%%LZuXrkD;R-3CpADAv_uo4pu_i&%PLTmaCxPp@FcNN2f7P z*WKeLL0C#}abJN8^P~Pr9z9KYV@MCCa70X>n#z_o;{_IY5CU5svglDpLcC-im+_HQ zIwFb_O??j$@jwf8Vd!bHxsAEP#&if7(J?q78|2YuMzJiBm0mFj(}hZoXcY)VX2)>6 z5j!u?AJRExDO;Kd$I^xBa5_T*N~{)2e5{B!qo5D0VCuzHfw7TXCfrobWi}G~l1HSj zF9?gJ+(<7yc;ocVk!hVetfR9Clx6;OA*(7CvRn8ehe#nOkJQO$hryYO17(oL_R%c! zgtiC}(z(J8FY+Em>^OxY7z4t=30IWq5!jKlMx{DR0|~YkUg{qP zLlL6%5FZSo;}xAD_9H~(&Da9L1Qd5Jj86dyHxCV|Y>2_l7`|wn3W=}V*MPryjPJ;r zf0abJFO!AYt(Bn+pDaV=%;r((bY(f=bEQpUb*`f*DcX?Xth1O+4oJAASlTE!+(ZK& ziFeu6a}uZoRWO69kU{=NAdpJBi~%&vj18ejfuN=pBqr^hMc2p2a>%l~$cNfkz#{MJ z6$mtfy5ex=ch7H0v#4z0itW>&AL*T|vfy!7qlFL-jiuc_yc%LYi@qYChSueLdNVY0$8j6rOK6j*{36xu zLuWH6$+gxry5fq5BcgW~Z7T{b#%(s@28b-ebAq)>*-B}GY2d#YzPgIRV|3W>#Q9X3 z)6lYY#4?I6fhy4uYG`E?Oa$TqFg~SH)4suVTdodp=Ri%K`klA~pfm0O_O$fy`5z5Z zOV1UCi(w}@$HVC%j90laZ2{b5T{DkC@e$pO`|yN}2CEoAUHrc#H=GMAh)IX@>53Ilq_~YoTskV2M{^}O2p*~I1`+Zu$!8=E7`(COLRC>bOf-ZHXPzLAcd?49 zoun7gCt=`9lTymAP^{3yqfS*CI(vo+-{sgU(mFtHSx6N^S?DUY971R$eufo6W?d28p*CD zCON9vuv(@#E$?O~=yRJ0%Bs{`r-w4)0#oHJB1j)i7e=T_PH=!l0Gd_7HAd6PP!_%x zu}6Imm&l!%SxECe#7ED<3bvm{SjS~xeP_6?rxR1xn5t{;JBtNN`*VRWG0-^+c!xCf z4`ne*$H&x4#QnuA2?j~%i9nZeD^wd|_-1n+@Q8RcfG?d&OBpE1=R^bo^~0og=PjZiHXUUQV}f%2%1)ef2cE8 zd=m|b4o#;r0!HVUlEXV_Fxq1+jwZ8kH?zWp3L2kl>@K1kZ(0&Ix3su1b0Tn2JKS}0 zLZ542p@Hpp(PD0)O1m%GqmIePLH3l(<9R$5?o6TP#GEMX=H`O&>#kKWHCA>}ykmu) zu~MXo=kk_t)J=+V-%ZbL^^DV$fO~=~U!<8!cgIi_ax$3K#(W+L4$CD>0`lPyxKW6* zlWcL3V<&VGvuu<@le4i2C$+=PsJTL=IS%Q>_jEKbfR3hrJ!;b!RzA2k;nc;y@o9V& z<%%&9)z2Zus(9Opgx{czZ^0j*mKerltrpYlWvt}T+K1zT69*g04pv9_a11**_k@rC zABB%tFnIp0(4s2~xh7^tv*d$10n+3h7WTryVo?}@52`YSPxJt?cKGAPQUyz8 zxq@58Lk%o#@=q~0Qw}raRKSZPLD{h^e1<}1qHU{Nfy7j3aWK8H$a{Uj73+d%A2NQ3 z(*h3-tLA0Y$PZ0hRw*Fwcvs}c0;Cu_;rE-fr>HJ7o z8O0g_R>zz0HkexCbMGCF7OPmp%)lIY%)TkXCXCOvW9S!!o?p8vD3Bu?xVJV~-Q?f^Y(8q|^eVUo>R59cRyI z_52^LxV&ikJ>xbDB^RuyWTR^UxDz+EwkNQA0R(n5E7E9XCAkiW(G?Cya%E8+3bz!g zC&}BCs`Z3EzU(B@ZYmm-XkQ)WfX>A~(Nnk7LofV|0N52IOFwQY2otYxdWu*^-Ba0K z0F@0N0gI;UCDJL-EFc9vm=uKj002)5xuWOyf_pn*dC$%`tw>~tht-wKD?#7#8fJp{ z-Iam&D!|>bRfi|&c%KULg{^m}jl3t7Rs_gpjtFk`58kuvx8aR?%)nK1CJa@_Fk{AZ zp!Ciko{Pfzvc%4u4tQbo=ha8i-?QUuB-0Vp}hU=C^}r#hQn??9%%091Q}gDO$$f6L*tD&?ubSLr)PW?m3u@QclD+auT9eak~G#Y z$8>KBm&`EYK#hrbNU{3~)E-p1hFy!KSsZVf(>XTkihFPh@TFh@2<*oCGzyfy4vb$(b~bP}J_W_Dz&f_>3Uq#6A-+G@m; z`|D{x9v`+-%-lz>VdL|Tb^L~TnT|)MD=QHBw_`&S1E>!mN=v>-x4=j-yG~ZnFWBO_g-$F;xW^xG=c=BrHfkR@?Cn`E zN9#MC|uV%LJ3Tx)GUt3Pa~mzl2W#yW94D!2_zy#w80 ze`i};uPB`ZL#@8UTH?r9m2-I~o*$&TFhp1Hm3|_j)dn5)oe#0S@ 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/tags/2.25_SDK6.0/fsl_user.h b/tags/2.25_SDK6.0/fsl_user.h new file mode 100644 index 0000000..1018689 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/get_ei.asm b/tags/2.25_SDK6.0/get_ei.asm new file mode 100644 index 0000000..29f4a6e --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/hal.c b/tags/2.25_SDK6.0/hal.c new file mode 100644 index 0000000..9cfa47a --- /dev/null +++ b/tags/2.25_SDK6.0/hal.c @@ -0,0 +1,187 @@ +/* ======================================================== + ȈՃ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; +//bit SW_SEL_n; // Ƃ肠AWX^얢Ή + +/* +#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; + } + + // sel L[ + /// Ƃ肠AWX^̑삵Ȃ(rbgȂAvWX^ljȂ̂) + + + // 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/tags/2.25_SDK6.0/hal.h b/tags/2.25_SDK6.0/hal.h new file mode 100644 index 0000000..245be75 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/hoge.bin b/tags/2.25_SDK6.0/hoge.bin new file mode 100644 index 0000000000000000000000000000000000000000..2d23997280bfb9552d49f3e935cbe974cae1679f GIT binary patch literal 16387 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 literal 0 HcmV?d00001 diff --git a/tags/2.25_SDK6.0/i2c_ctr.c b/tags/2.25_SDK6.0/i2c_ctr.c new file mode 100644 index 0000000..4bd238e --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/i2c_ctr.h b/tags/2.25_SDK6.0/i2c_ctr.h new file mode 100644 index 0000000..16234ff --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/i2c_mcu-sub.c b/tags/2.25_SDK6.0/i2c_mcu-sub.c new file mode 100644 index 0000000..b1b468c --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/i2c_mcu.c b/tags/2.25_SDK6.0/i2c_mcu.c new file mode 100644 index 0000000..db007b3 --- /dev/null +++ b/tags/2.25_SDK6.0/i2c_mcu.c @@ -0,0 +1,657 @@ +/* ======================================================== + ȈI2CiytFgpjʐM + de JHL cJZ + '09 Feb - + $Id$ + ======================================================== */ +#ifndef _WIN32 +#pragma sfr +#pragma di +#pragma ei +#pragma nop +#pragma inline // memcpy()CCWJ(̕I) +#endif + +#include "incs_loader.h" +#include "i2c_mcu.h" +#include "loader.h" +#include "util_funcs.h" + +#include "i2c_mcu_sub.h" + + + +// ======================================================== +// WX^̃rbg +// vtBbNXbAꕔ̃rbgWX^ɂԂ邽... +// SMR0n +#define bCKS0 ( 1 << 15 ) +#define bCCS0 ( 1 << 14 ) +#define bSTS0 ( 1 << 8 ) +#define bSIS0 ( 1 << 6 ) +#define bMD0n2 ( 1 << 2 ) +#define bMD0n1 ( 1 << 1 ) +#define bMD0n0 ( 1 << 0 ) +#define bSMR0n_FIXEDBIT ( 1 << 5 ) + +// SSR0n +#define bit_TSF0 6 +#define PEF0 ( 1 << 1 ) + +// SIR0n +#define PECT0 ( 1 << 1 ) + +// SCR0n +#define TXE0 ( 1 << 15 ) +#define RXE0 ( 1 << 14 ) +#define SLC02 4 +#define DLS02 0 +#define TSF0 ( 1 << 6 ) + +// SOn +#define TAUS_MASK 0x0B0B; + +// DMCn +#define DRS ( 1 << 6 ) + + + + +// ======================================================== +static void iic_mcu_send_st( ); + +// *sub炵Ă΂Ȃ +void iic_mcu_send_re_st( ); +void iic_mcu_send_sp( ); +i2c_err iic_mcu_send_a_byte( u8 ); +i2c_err iic_mcu_call_slave( u8 slave ); + + +// ======================================================== +bit iic_mcu_wo_dma; +volatile bit iic_mcu_busy; +static volatile bit iic_mcu_initialized; + + +static u8 iic_send_work[4]; +static u8 *p_iic_send_wo_dma_dat; +static u8 iic_send_wo_dma_len; + +// f[^G[iROHMxZTjgĈ +/// Ƃ肠ADMAgp}`oCgCg ̎ɂ@\Ȃ +static u8 last_slave, last_reg_adrs, last_size; + +i2c_err iic_mcu_result; // ꕶ[h̎̓f[^ԂB + +#ifdef i2c_timeout_test +extern bit i2c_mcu_time_out_error; +#endif + + + +/********************************************//** + + ***********************************************/ +void nop8() +{ + // ɗ call 3clk, return 6clk +} + + +/********************************************//** + ̒ʐMÎ҂B + + ^CAEgL + ***********************************************/ +static i2c_err iic_mcu_wait_free() +{ + u16 tot = 0; + + iic_mcu_start( ); + while( 1 ) + { + DI_wt_chk(); + if( !iic_mcu_busy ) + { + iic_mcu_busy = true; + EI(); + break; + } + EI(); + if( ++tot == 0 ) + { +#ifdef i2c_timeout_test + i2c_mcu_time_out_error = true; +#endif + return( I2C_ERR_TIMEOUT ); + } + } + return( I2C_ERR_OK ); +} + + + +/********************************************//** + X[u w1x [h + + Ԓlf[^̂̂łB + + G[R[h iic_mcu_result ɓĂ܂ + ***********************************************/ +u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ) +{ + u8 dat; + + iic_mcu_result = iic_mcu_read( SLA, adrs, 1, &dat ); + + return ( dat ); +} + + + +/********************************************//** + X[ũ[h + + yz + + X[uEFCgRfBVoƂ͋֎~łB + + ̏ꍇłG[oȂǂł܂ + ***********************************************/ +i2c_err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8 * dest ) +{ + +#if 1 + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + // (^CAEg) + return( I2C_ERR_TIMEOUT ); + } +#else + // gpȂA +#endif + + // X^[gRfBVƃX[ǔĂяoAWX^AhX̑M + if( iic_mcu_call_slave( slave ) != 0 ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + + // WX^AhX̑M + iic_mcu_send_a_byte( adrs ); // I܂ŋAĂȂ + + // ΂NAKAĂȂO + + // f[^M // + iic_mcu_send_re_st( ); // X^[gRfBV + iic_mcu_send_a_byte( slave | 0x01 ); // M܂Ŗ߂Ă܂B + + // f[^M + ST0 = 0x0004; // M[hɐݒς̂ŃWbN~ + SCR02 = RXE0 | 1 << SLC02 | 7 << DLS02; // Mݒ + SS0 = 0x0004; // ʐMҋ@ + + do + { + if( len == 1 ) + { + SOE0 = 0x0000; // ŌNAK + } + IICIF10 = 0; + SIO10 = 0xFF; // _~[f[^ƎMJn + while( IICIF10 == 0 ) + {;} // M҂ + + *dest = SIO10; + dest++; + len--; + } + while( len != 0 ); + + if( slave == IIC_SLA_CODEC ) + { + codec_dummy_write(); + } + + iic_mcu_send_sp( ); + + IICIF10 = 0; + iic_mcu_busy = false; + return ( I2C_ERR_OK ); +} + + + + +/********************************************//** + X[u wPoCgx Cg + + O̓]Î҂āACg܂B + + Ԓl@iic_mcu_write@ɓ + ***********************************************/ +i2c_err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ) +{ + // P̎DMAƂNȂłƏI点 + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + return( I2C_ERR_TIMEOUT ); + } + + // X^[gRfBVƃX[ǔĂяo... + IICMK10 = 1; + if( iic_mcu_call_slave( SLA ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return( I2C_ERR_NOSLAVE ); + } + iic_mcu_send_a_byte( adrs ); + iic_mcu_send_a_byte( dat ); + iic_mcu_send_sp( ); + iic_mcu_busy = false; + return ( I2C_ERR_OK ); +} + + + +/********************************************//** + X[uփCg + + WX^ adrs 擪ɁA + + *str + + len܂B + + yz + + X[uEFCgRfBVoƂ͋֎~łB + + ̏ꍇłG[oȂǂł܂ + + DMA1gp܂B + ***********************************************/ +i2c_err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src ) +{ + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + return( I2C_ERR_TIMEOUT ); + } +#if 0 // renge^̃}`^XNɂȂłɂ + // gpȂA +#endif + + // X^[gRfBVƃX[ǔĂяo... + IICMK10 = 1; + IICIF10 = 0; + if( iic_mcu_call_slave( slave ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + + IICIF10 = 0; + if( !iic_mcu_wo_dma ) + { + // DMAgpiʏj// + + // WX^AhX𑗂Af[^̏ + memcpy( iic_send_work, src, 4 ); //obt@Ƃ4oCgpӂĖ߁B + + // gĈ + last_slave = slave; + last_reg_adrs = adrs; + last_size = len; + + // DMAZbg + while( DST1 ) + {;} + + DEN1 = 1; + DSA1 = (u8)( &SIO10 ); + DRA1 = (u16)( &iic_send_work[0] ); + DBC1 = len; + DMC1 = DRS | 8; // RAM -> SFR, 8bit, IRQ, IIC10 + + DMAIF1 = 0; + DMAMK1 = 0; + DST1 = 1; // DEN1 = 12clkȏJ + + SIO10 = adrs; // ςȂI 荞݂DMAX^[g + // c͊荞݃[` + } + else + { + // DMAgpȂ // + + // WX^AhX̑M + IICMK10 = 0; + SIO10 = adrs; + + iic_send_wo_dma_len = len; + p_iic_send_wo_dma_dat = (u8*)src; + // c͊荞݃[` + } + + return ( I2C_ERR_OK ); +} + + + + +/********************************************//** + DMAP]I荞 + + IIC_mcu ̑MR[obN֐̂悤Ȃ + + FDMA]IŁAI2C̓]͏IĂ܂ + +@ 荞ݒȂǂŁADMA1̏xꍇA + IIC10̊荞݂̏łɁA荞݂𔭐ȂȂ + ꂪ܂B܂A@ɂ܂B + + @̂߁ADMAdl̍ق́AŌ̃oCg͑M + tÕ|[OŊmF܂B + ***********************************************/ +__interrupt void int_dma1( ) +{ + static bit in_retry; + + EI(); + + // Ō̃oCg̑M҂ + while( ( SSR02L & TSF0 ) != 0 ) + { + u16 i = 0; + if( ++i == 0 ) // ^CAEgH + { + break; + } + } + + // XgbvRfBVs +// iic_mcu_send_sp(); // ISRŊO̊֐ĂԂ͓̂siėpWX^ҔĵœWJ + { + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // SCL + nop8(); //. |ȂBO̊֐Ă +/* + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); +*/ + SO0 = 0x0400 | TAUS_MASK; // SCL + nop8(); +/* + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); +*/ + SO0 = 0x0404 | TAUS_MASK; + } + + IICMK10 = 1; + + // f[^̓r NAK AxgCB + /// 蔲 + if( SIR02 != 0 ) + { + SIR02 = SSR02; + + if( !in_retry ) + { + in_retry = true; + + IICIF10 = 0; + iic_mcu_call_slave( last_slave ); // NAK͍mPA + + while( DST1 ){;} + DRA1 = (u16)( &iic_send_work[0] ); // CNgĂ܂Ă̂ōăZbg + DBC1 = last_size; // fNgĂ܂Ă̂ōăZbg + // ق̐ݒ͑Ô܂ + + DMAIF1 = 0; + DMAMK1 = 0; + DST1 = 1; + + SIO10 = last_reg_adrs; // ςȂI 荞݂DMAX^[g + return; + // ܂ + } + else + { + // G[xځBmȂ + dbg_nop(); + // ̂܂܏I + } + } + + // I + in_retry = false; + DMAMK1 = 1; + DEN1 = 0; + iic_mcu_busy = false; +} + + + +/********************************************//** + IIC MCŨoCgo荞 + + DMAgp͎gp܂B + + @̊荞ݏDMÅ荞݂ɂ΂ȂꍇA + @IIC荞݂̃ZbgԂɍ킸邱Ƃ܂B + ***********************************************/ +__interrupt void int_iic10( ) +{ + EI(); + if( iic_send_wo_dma_len != 0 ) // ܂MĂȂH + { + SIO10 = *p_iic_send_wo_dma_dat; + p_iic_send_wo_dma_dat ++; + iic_send_wo_dma_len --; + return; + // ܂ // + } + + // Ō̃oCgMAXgbvRfBVs + IICMK10 = 1; +// iic_mcu_send_sp(); // ISRŊO̊֐ĂԂ͓̂siėpWX^ҔĵœWJ + { + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // clear SCL + NOP(); NOP(); NOP(); NOP(); // NOP8Ăł͂ + NOP(); NOP(); NOP(); NOP(); + SO0 = 0x0400 | TAUS_MASK; // set SCL + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); + SO0 = 0x0404 | TAUS_MASK; // set CSL adn SDA + } + + iic_mcu_wo_dma = false; + iic_mcu_busy = false; +} + + + +/********************************************//** + X[ǔĂяo + +@X[uAhXĂŁAACK̊mFB + + ACK@@@@@@@@@@@@@@@@@@ԁFI2C_ERR_OK + +@NACK @XgbvRfBVoB@ԁFI2C_ERR_NOSLAVE + ***********************************************/ +i2c_err iic_mcu_call_slave( u8 slave ) +{ + iic_mcu_send_st( ); + +/* +// dbg + if( SSR02 != 0 ) + { + P1.5 = P1.0 = P1.3 = 1; + } +*/ + + SIR02 = SSR02; // NAKG[̃tONA + if( iic_mcu_send_a_byte( slave ) != I2C_ERR_OK ) + { + iic_mcu_send_sp( ); + return ( I2C_ERR_NOSLAVE ); // w̃X[uȂ + } + + return ( I2C_ERR_OK ); +} + + + +/********************************************//** + قƂɂPoCĝ + + I܂ŋA܂ + ***********************************************/ +i2c_err iic_mcu_send_a_byte( u8 dat ) +{ + IICMK10 = 1; + IICIF10 = 0; + SIO10 = dat; + while( IICIF10 == 0 ) + { +// NOP( ); + } // ʐM + + if( SSR02 != 0 ) // 炩G[? + { + SIR02 = SSR02; // G[NA + return( I2C_ERR_NAK ); + } + return( I2C_ERR_OK ); +} + + + +/********************************************//** + X^[gRfBV𔭍s + + \tgEFA + ***********************************************/ +static void iic_mcu_send_st( ) +{ + SO0 &= ~0x0004; // SDA + nop8(); + + SO0 &= ~0x0400; // SCL + SOE0 = 0x0004; // n[h + + SCR02 = TXE0 | 1 << SLC02 | 7 << DLS02; // MAf[^͂WrbgP + SS0 = 0x0004; // ʐMҋ@ +} + + + +/********************************************//** + X^[gs + ***********************************************/ +void iic_mcu_send_re_st( ) +{ + ST0 |= 0x0004; + SO0 |= 0x0400 | TAUS_MASK; // ( SDA = H ), SCL -> H + nop8(); + + SOE0 &= ~0x0004; // ( SCL = H ), SDA -> L + nop8(); + + iic_mcu_send_st( ); +} + + + +/********************************************//** + XgbvRfBVs + + ̑OɁAuŌ̃oCg̑Mv̎ɑOKvłB + ***********************************************/ +void iic_mcu_send_sp( ) +{ + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // SCL + nop8(); + + SO0 = 0x0400 | TAUS_MASK; // SCL + nop8(); + + SO0 = 0x0404 | TAUS_MASK; +} + + + + +/********************************************//** + ytFW[̏ + ***********************************************/ +void iic_mcu_start( ) +{ + if( iic_mcu_initialized ) + { + return; + } + + iic_mcu_busy = true; +// DST1 = 0; + + I2C_PU_on(); +// DEN1 = 0; // DST1 = 0 2clḱADSTn==0|[OĂ + + wait_ms( 1 ); // オ̂50usʂ + + SAU0EN = 1; + nop8(); + + SPS0 = 0x0000; // VAjbg̃NbNOB(8M/2)/1 + SMR02 = bSMR0n_FIXEDBIT | bMD0n2; // ȈI2Cɐݒ + SDR02 = 10 << 9; // {[[gݒ 8M/1/(x+1)/2 + + SO0 = 0x0404 | TAUS_MASK; // ŏHH + iic_mcu_wo_dma = false; + + + // oX̃Zbg + { + IICIF10 = 0; + IICMK10 = 1; + + iic_mcu_send_st(); + + SIO10 = 0xFF; + while( IICIF10 == 0 ){;} // ʐM + iic_mcu_send_sp(); + + SIR02 = SSR02; + } + + iic_mcu_busy = false; + iic_mcu_initialized = true; +} + + + +/********************************************//** + W[̒~ + + ēxgƂ͏Kv + ***********************************************/ +void iic_mcu_stop( ) +{ + while( iic_mcu_busy ) + {;} // DMA쒆͂҂ + iic_mcu_send_re_st( ); // SCL,SDALLɂ + I2C_PU_off(); + SAU0EN = 0; + iic_mcu_initialized = false; +} + diff --git a/tags/2.25_SDK6.0/i2c_mcu.h b/tags/2.25_SDK6.0/i2c_mcu.h new file mode 100644 index 0000000..16eeba8 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/i2c_mcu_sub.h b/tags/2.25_SDK6.0/i2c_mcu_sub.h new file mode 100644 index 0000000..a2c192e --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/i2c_twl.c b/tags/2.25_SDK6.0/i2c_twl.c new file mode 100644 index 0000000..3c91ce8 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/i2c_twl.h b/tags/2.25_SDK6.0/i2c_twl.h new file mode 100644 index 0000000..0f608b0 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/i2c_twl_defs.h b/tags/2.25_SDK6.0/i2c_twl_defs.h new file mode 100644 index 0000000..be5d566 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/incs.h b/tags/2.25_SDK6.0/incs.h new file mode 100644 index 0000000..f9c1c4a --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/incs_loader.h b/tags/2.25_SDK6.0/incs_loader.h new file mode 100644 index 0000000..0569b9f --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/ini_VECT.c b/tags/2.25_SDK6.0/ini_VECT.c new file mode 100644 index 0000000..84da25c --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/jhl_defs.h b/tags/2.25_SDK6.0/jhl_defs.h new file mode 100644 index 0000000..9a21ab3 --- /dev/null +++ b/tags/2.25_SDK6.0/jhl_defs.h @@ -0,0 +1,25 @@ +#ifndef __jhl_defs_h__ +#define __jhl_defs_h__ + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef signed short s16; + +typedef unsigned short ux16; +typedef signed short sx16; + +#define true 1 +#define false 0 + + +#define set_bit( cond, reg, pos ) \ +{ \ + if( cond ){ \ + reg |= pos; \ + }else{ \ + reg &= ~pos; \ + } \ +} + +#endif diff --git a/tags/2.25_SDK6.0/kanaria.asm b/tags/2.25_SDK6.0/kanaria.asm new file mode 100644 index 0000000..9deaddb --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/kanaria_c.c b/tags/2.25_SDK6.0/kanaria_c.c new file mode 100644 index 0000000..bbb5ec7 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/led.c b/tags/2.25_SDK6.0/led.c new file mode 100644 index 0000000..bf62e07 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/led.h b/tags/2.25_SDK6.0/led.h new file mode 100644 index 0000000..ce8541f --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/led_cam.c b/tags/2.25_SDK6.0/led_cam.c new file mode 100644 index 0000000..7d4a1eb --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/led_pow.c b/tags/2.25_SDK6.0/led_pow.c new file mode 100644 index 0000000..6773d4e --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/loader.c b/tags/2.25_SDK6.0/loader.c new file mode 100644 index 0000000..19059cb --- /dev/null +++ b/tags/2.25_SDK6.0/loader.c @@ -0,0 +1,416 @@ +/* ======================================================== + MCU CTR BSR + 2009/03/30 - + JZp c + + u[g[_[ + zXg̒ʐMƁAȏAt@[̃`FbNsB + + $Id: loader.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#pragma opc + +#endif +#include "incs_loader.h" + +#include +#include "fsl_user.h" + +#include "i2c_ctr.h" +#include "i2c_mcu.h" +#include "pm.h" +#include "rtc.h" + +#include "reboot.h" + +#include "wdt.h" +#include "magic.h" + + + +#define REG_BIT_RESF_WDT 0x10 +#define REG_BIT_RESF_TRAP 0x80 +#define REG_BIT_RESF_LVI 0x01 + + + +// ======================================================== +#if (FSL_DATA_BUFFER_SIZE>0) +fsl_u08 fsl_data_buffer[FSL_DATA_BUFFER_SIZE]; +#endif + + + +#ifdef FSL_INT_BACKUP +static fsl_u08 fsl_MK0L_bak_u08; /* if (interrupt backup required) */ +static fsl_u08 fsl_MK0H_bak_u08; /* { */ +static fsl_u08 fsl_MK1L_bak_u08; /* reserve space for backup information */ +static fsl_u08 fsl_MK1H_bak_u08; /* of interrupt mask flags */ +static fsl_u08 fsl_MK2L_bak_u08; /* */ +static fsl_u08 fsl_MK2H_bak_u08; /* } */ +#endif + + + +// ======================================================== +void hdwinit(); // static ɂcrt0猩ȂȂ܂BӁI +static void hdwinit2(); +static void chk_platform_type(); +static void chk_firm_broke(); + + +extern void main_loop(); + + +/********************************************//** + * - t@[Abvf[gAWDT̃ZbgA + * - t@[̔jA + * - {̎ނ̎ʁA + * - |[gA + * - ჌xȃytF̏A + * + * main_loop()ĂԁB + ***********************************************/ +void main( ) +{ + while( 1 ) + { + WDT_Restart( ); + + if( RTCEN ) // TRAP(update)ɂgȂBWDTł͗Ȃ + { + system_status.reboot = true; + } + + { + volatile u8 my_resf = RESF; // ǂނƏ + if( ( my_resf & REG_BIT_RESF_WDT ) != 0 ) + { + vreg_ctr[ VREG_C_MCU_STATUS ] |= REG_BIT_STATUS_WDT_RESET; + // set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET ); + // I2C̏ɍs + system_status.reboot = true; + } + else if( ( my_resf & REG_BIT_RESF_TRAP ) != 0 ) // ( FSL_ForceReset, 'r' ) + { + system_status.reboot = true; + } +/* LVIgp + else if(( my_resf & REG_BIT_RESF_LVI ) != 0 ) + { + vreg_ctr[ VREG_C_MCU_STATUS ] |= ( 1 << 2 ); + } +*/ + } +//* ROMǂɂȂȂA]̏RgAEg + if( !system_status.reboot ) + { + // ʏ̓d + // drڑAƑ҂Ă݂(`^O΍) + u16 pwup_delay0; + for( pwup_delay0 = 0xFFFF; pwup_delay0 != 0; pwup_delay0 -- ){;}; + } +//*/ + hdwinit2( ); + +#ifndef _WIN32 + // t@[̐`FbN // + chk_firm_broke(); // ĂAĂȂ +#endif + + // @픻 + chk_platform_type(); + + // HALfobOZbg + hal_reset(); + hal_update(); + + // RTC + RTC_init( ); // Ńu[g肵ď邩f܂ + + // ʏ^] + main_loop( ); + } +} + + + +/********************************************//** + * }WbNio[`FbNāA삳悤ƂĂt@[jĂȂ`FbN܂B + * + * Ăꍇ̓XgA݁AMCU̓Zbg܂B + ***********************************************/ +static void chk_firm_broke() +{ + u8 i; + u8 comp = 0; + + // [_[Ɩ{͓̂o[WH + /// ւ̃Abvf[g̓rŏIĂȂH + for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 炵 + { + comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; + comp += ( *( u8 * )( MGC_HEAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; + } + + if( *( u8 * )( MGC_FOOT +2 ) != ':' ) // ς̂܂ + { + comp ++; + } + + if( comp != 0 ) + { + // t@[XgA݂ + firm_restore( ); + // AĂȂBZbgB + } +} + + +/********************************************//** +vbgtH[̔sAsystem_statusɃZbg܂B + + fobK‚ȂłƏɔłȂƂ܂B + +CTRt@~ + + DEV_DET(P12.[2:1]) + + +CTR̊J@ + + P40,41 !! fobOLP40LMCUN܂I + + - HH @ + - HL NBDV + - LH X^hAV + - LL ISfobK + + ***********************************************/ +void chk_platform_type() +{ + // CTRt@~ // + system_status.family = (enum family_)( DEV_DET >> 1 ); /// ... + +#ifdef _DBG_FORCE_FLOWER + // Iɋ@ݒăfobOƂ + system_status.family = FAMILY_FLOWER; +#endif + +#ifdef _MCU_ARR + if( system_status.family == FAMILY_SPFL ) + { + system_status.family == FAMILY_CLOSER; + } +#endif + + if( system_status.family == FAMILY_CTR ) + { + system_status.LCD_is_CGS = true; + } + else + { + // FAMILY_SPFL or FAMILY_SNAKE or FAMILY_FLOWER // At@XYȂ + system_status.LCD_is_CGS = false; + } + + if( system_status.LCD_is_CGS == true ) + { + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_CGS; + } + else + { + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_AMO; + } + set_vdd_voltages( system_status.family ); + + // CTR̊J@ // + // ꉞ + system_status.is_dev = false; + system_status.taikendai = false; + system_status.taikendai_nbd = false; + + switch( DIPSW ) + { + case DIPSW_TAIKENDAI: + system_status.taikendai = true; + break; + + case DIPSW_TAIKENDAI_NBD: + system_status.taikendai_nbd = true; + break; + + case DIPSW_ISDEV: + system_status.is_dev = true; + break; + } +#ifdef _FORCE_TAIKENDAI_ + system_status.taikendai = true; +#endif + +#ifdef _FORCE_TAIKENDAI_NBD_ + system_status.taikendai_nbd = true; +#endif +} + + + + +/********************************************//** + ŏ̃WX^s܂B + + gݍ݃X^[gAbv[`Ă΂܂B + ***********************************************/ +void hdwinit( void ) +{ // X^[gAbv[`ɌĂт܂ + DI( ); /* }X^荞݋֎~ */ + + CMC = bits8(0,0,0,1, 0,0,0,0); /* X1U(̓|[g)AXT1gpAd͔U͕sɕtʏ */ + CSC = bits8(1,0,0,0, 0,0,0,0); /* X1UȂAXT1UAU */ + OSMC = bits8(0,0,0,0, 0,0,0,1); /* BWX^ */ + NOP();NOP();NOP(); // 3clkJ + CKC = bits8(0,0,0,0, 1,0,0,0); /* CPU/ӃNbN=fMAINAfMAIN=fMXAfCLK=fMX */ + + /*--- doH̐ݒ ---*/ + /* Zbg̃ftHǵAIvVEoCgɂĎw肳 */ + LVIS = 0x00; /* VLVI = 4.22}0.1V */ +// LVIM = 0x00; /* LVI֎~ */ + /* dd(VDD)od(VLVI)Ɋ */ + /* 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/tags/2.25_SDK6.0/pedo_alg_thre_det2.c b/tags/2.25_SDK6.0/pedo_alg_thre_det2.c new file mode 100644 index 0000000..4e69a04 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/pedo_lpf_coeff.c b/tags/2.25_SDK6.0/pedo_lpf_coeff.c new file mode 100644 index 0000000..877ef98 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/pedo_lpf_coeff.h b/tags/2.25_SDK6.0/pedo_lpf_coeff.h new file mode 100644 index 0000000..f81d6c2 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/pedometer.h b/tags/2.25_SDK6.0/pedometer.h new file mode 100644 index 0000000..8760308 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/pm.c b/tags/2.25_SDK6.0/pm.c new file mode 100644 index 0000000..27be4cf --- /dev/null +++ b/tags/2.25_SDK6.0/pm.c @@ -0,0 +1,1509 @@ +/* ======================================================== + PMIC + cJZ + nintendo + '08 Dec + + $Id: pm.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma nop + +#endif + +#include "incs.h" +#include "adc.h" +#include "led.h" +#include "pm.h" +#include "renge\renge.h" + +#include "batt_params.h" + +#include +#include "fsl_user.h" + +#include "vreg_twl.h" +#include "i2c_mcu.h" + +// ======================================================== +u8 raw_adc_temperature; +BT_VENDER battery_manufacturer = BT_VENDER_NOT_CHECKED; +static u8 ntr_pm_reg_shadow; // NTR PMIC WX^~[ +bit bt_authorized; // obep[^MρB[dJn +u8 chg_led_override; // A_v^ƂA[d邵ȂɊւ炸΂炭_ + +static u16 bt_volt16; + +static bit ntr_pm_bt_low_old; + +bit BT_IN_CHG_delayed_n; +bit temp_zone_charge_disable; // xŏ[d~鎞ɃqXeVXt邽 + +u8 pmic_version; +u8 mgic_version[2]; + +u8 pm_reg_bit_vddlcd; + +static bt_param_* p_bt_param; +extern const bt_param_ bt_param[]; + +bit pm_extdc_old; // OA_v^`FbNƂhĂH + +u8 pmreg_v_core; // SoC̃RAdݒBSNAKE(LAGER)ŕύX邽߁B + +// [d~x֌W +static u8 raw_temp_lh; +static u8 raw_temp_ll; +#define RAW_TEMP_HL 184 // 1 +#define RAW_TEMP_HH 189 // -1 +#define RAW_TEMP_LH_CTR 75 // 50 [degC] +#define RAW_TEMP_LL_CTR 61 // 59 +#define RAW_TEMP_LH_SNAKE 84 // 45 +#define RAW_TEMP_LL_SNAKE 68 // 54 + + +// ======================================================== +static void BT_model_detect(); +static void BT_mgic_quick_start(); +static void BT_mgic_init(); +static void bt_chk_temparature(); +static void bt_get_charge_status(); +static void bt_param_select(); +static void bt_batt_update_twl(); +static void bt_batt_update_ntr(); +static void update_chg_led(); + + +// bp[ +static err send_cmd_mgic_2B( u8 reg, u16 dat ); +static err read_mgic_2B( u8 reg, u8* dat ); +static err read_BT_SOC( u8* dest ); +static err read_BT_voltage( u8* dest ); +static u8 conv_ctr_bt_to_twl_bt(); + + + +// ======================================================== +#define swap_endian_16( x ) (unsigned int)(( x << 8 ) | ( x >> 8 )) + + + +// ======================================================== +const u8 BT_MANUF_BORDER[] = { + 5, 33, 79, 123, 158, 197, 233 + }; + + + +/********************************************//** + dr̊Ǘ + + ȉ̃s͎ɂőEĎ܂B + - PM_BT_AUTH AGPI in + - PM_CHARGE_n CCIC /CHG in + - PM_EXTDC_n /DOK INTP4 in + - PM_CHARGE_EN_n /CEN out + + ȉ͊̕֌W肻łʂ̂ƂŊĎĂ܂B + - LED Charge tsk_LED + - BT_TEMP,_P tsk_ADC + + PM_EXTDC͊荞݃Cɂ邩 + ***********************************************/ +#define INTERVAL_TSK_BATT 60 +// 100Ə[dG[ɂ܂_łȂ̂ + +/********************************************//** + d̊Ď + - A_v^̊Ď + - [dALEDXV + - cʎ擾ALEDXV + ***********************************************/ +void tsk_batt( ) +{ + static u8 task_interval; + + if( task_interval -- != 0 ) + { + return; + } + else + { + task_interval = (u8)( INTERVAL_TSK_BATT / SYS_INTERVAL_TICK ); + } + + // A_v^Xe[^XXV // + pm_chk_adapter(); + + // [d // + bt_chk_temparature(); // x`FbN + if( !temp_zone_charge_disable && bt_authorized && !PM_EXTDC_n ) + { + BT_CHG_ENABLE(); // x͈OKŏ[dĊJ + } + else + { + BT_CHG_DISABLE(); // x댯I@[d~ + } + + bt_get_charge_status(); // [d󋵃`FbN + update_chg_led(); // chg ledXV + + // drc // + BT_get_left(); +} + + +/********************************************//** + [dLEDXV + + - CCIC[dƂΓ_B + - łȂĂAA_v^h΂Ȃ5b_ + - Aw^drΉʼnR[d̎Aq[Y؂iMGICNAKjȂ + ***********************************************/ +static void update_chg_led() +{ + static bit temp_led_chg; // static ‚ȂƃRpCʂ炸 + + temp_led_chg = false; + + // A_v^‚ȂuԁA[dłb킴Ɠ_BdĂ邱Ƃ킩点邽߁B + if( chg_led_override != 0 ) + { + chg_led_override --; + temp_led_chg = true; + } + + // CCIC ͏[dƌĂ邩H + if( ! BT_IN_CHG_delayed_n // bt_get_charge_status()ōXV܂B + && ! PM_EXTDC_n ) + { + temp_led_chg = true; + } + + LED_CHARGE = temp_led_chg; + + // WX^̏[drbgLEDɓ + set_bit( LED_CHARGE, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE ); // set_bit̂݁B + /// 荞݂task_status()ōs +} + + + +/********************************************//** + x`FbN + xtqXeVXL + ***********************************************/ +#define AVG_COUNT 40 + +void bt_chk_temparature() +{ + static u8 heikinka_h,heikinka_l; + + if(( raw_temp_lh <= raw_adc_temperature ) + && ( raw_adc_temperature <= RAW_TEMP_HL )) + { + if( heikinka_h < AVG_COUNT ) + { + heikinka_h++; + } + else + { + temp_zone_charge_disable = false; // [d + } + } + else if(( raw_adc_temperature <= raw_temp_ll ) + || ( RAW_TEMP_HH <= raw_adc_temperature )) + { + if( heikinka_l < AVG_COUNT ) + { + heikinka_l++; + } + else + { + temp_zone_charge_disable = true; // [d֎~ + } + } + else + { + // temp_zone_charge_disable ̂܂ + heikinka_h = 0; + heikinka_l = 0; + } +} + + + +/********************************************//** + [d̃`FbN + + [dIC̃oO΍sB + ***********************************************/ +#define TIME_DENOIZE (u8)( 1000 / INTERVAL_TSK_BATT ) +void bt_get_charge_status() +{ + // CCIC̕s̂߁A/CHG̃lQ[gƒJɒx + static u8 anti_chatter; + + if( !BT_IN_CHG_n ) + { + // Ƀ`^O + if( anti_chatter < 2 ) // drŃA_v^āAdɂ킳 + { // Ə[dLED̂ + anti_chatter++; + } + else + + { + BT_IN_CHG_delayed_n = 0; // [d + } + } + else + { + if( !BT_CHG_Ena_n + && ( vreg_ctr[ VREG_C_BT_REMAIN ] < 60 ) + && !( is_mgic_error ) + ) + { + BT_IN_CHG_delayed_n = 0; // [dƈB[dIĂ͂Ȃ + } + else + { + BT_IN_CHG_delayed_n = 1; + anti_chatter = 0; + } + } +} + + + +/********************************************//** + A_v^̗L`FbN + ***********************************************/ +void pm_chk_adapter() +{ + set_bit( !PM_EXTDC_n, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY ); + + if( pm_extdc_old != PM_EXTDC_n ) // HAL ʂ߁A PM_EXTDC_n volatile ɂSzȂ + { + pm_extdc_old = PM_EXTDC_n; + if( !PM_EXTDC_n ) + { + // h + set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_CONNECT ); + chg_led_override = (u8)( 2500 / INTERVAL_TSK_BATT ); // bt_chckwait_ms(5)̂ŐL΂B + } + else + { + u8 temp_v[2]; + + // + set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_DISC ); + chg_led_override = 0; + + // drcʂ1%ŁAA_v^L̎ɂ͖{̂NAQ[ + // 1%ɉ񕜂OɃA_v^ƂA荞݂ȂƊҒʂ + // łȂBʑΉ̂߂őΉ + if( read_mgic_2B( BT_GAUGE_REG_VCELL, temp_v ) == ERR_SUCCESS ) + { + bt_volt16 = ( temp_v[0] * 256 + temp_v[1] ); + } + + if(( bt_volt16 < V_TH_ZERO ) || ( vreg_ctr[ VREG_C_BT_REMAIN ] == 0 )) + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN ); + } + } + } +} + + + +/******************************************************** +dr֌W̏ + +@@@Q[W@@b@L@@@@@b@ +@@[[[[[[[[[[[[[[[[[[[[[[[ +@@@dr@Lb@@@@@@@b@H +@@[[[[[[[[[[[[[[[[[[[[[[[ +@@@@@@b@@@@@@b@sr +@@@@@@@@b@@dr@b +@@[[[[[[[[[[[[[[[[[[[[[[[ + +@@Q[WLAdr@̔^@ʂ́A +@drxŔ肷 + + ԒlF@dr 0xFF + drςĂȂ 0 + drς 1 + +***********************************************************/ +bit bt_force_update; + + + +/********************************************//** + obẽ`FbNAƁA{̎ʎʁisp̂߁j + ***********************************************/ +void BT_chk() +{ + static BT_VENDER battery_manufacturer_old; + + battery_manufacturer_old = battery_manufacturer; + + BT_model_detect(); + bt_param_select(); // obecʕ␳p[^ȂǃZbg @łAƂ肠̒l(pi)wɂĂB + + if( system_status.model != MODEL_JIKKI ) + { + bt_authorized = false; + return; + // ܂ + } + + if(( battery_manufacturer_old != battery_manufacturer ) || + bt_force_update ) + { + bt_force_update = false; + iic_mcu_start( ); // ŏtOĂ̂ŌĂт܂ėǂ@ȂƂɁcorz + if( (( battery_manufacturer_old == BT_VENDER_OPEN ) || + ( battery_manufacturer_old == BT_VENDER_NOT_CHECKED )) && + !system_status.reboot ) + { + BT_mgic_quick_start(); + } + BT_mgic_init(); // @픻s܂ + } + bt_authorized = true; + renge_task_immed_add( tski_BT_temp_update ); // drxĎ +} + + + +/********************************************//** + {̎ʎ + ***********************************************/ +void BT_model_detect() +{ + u8 temp; + + BT_DET_P = 1; + BT_TEMP_P = 1; + wait_ms( 3 ); // dオ̂ɎԂ| + + raw_adc_temperature = get_adc( ADC_SEL_BATT_TEMP ); + temp = get_adc( ADC_SEL_BATT_DET ); + BT_DET_P = 0; + + system_status.captureBox = false; + // vbgtH[ // + if( raw_adc_temperature > 0xF0 ) + { + // TS // + system_status.model = MODEL_TS_BOARD; + system_status.family = FAMILY_CTR; // Hł̌딻㏑ + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_CGS; +// set_voltages( system_status.family ); svH + } + else if( raw_adc_temperature < 4 ) + { + // // + system_status.model = MODEL_SHIROBAKO; + + // āFLv`{[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; + } + } + } + else + { + // @AcIC NACK( obe܂͎cIC̏ ) + system_status.model = MODEL_JIKKI; // obe̎́ŏ㏑ + } + + // TShome{^A@͖ڑȂ̂ŗv[q /// gndɂƂ΂悩c + if( system_status.model == MODEL_TS_BOARD ) + { + PM_SW_HOME_n_TSBOARD = 1; + } + else + { + PM_SW_HOME_n_TSBOARD = 0; + SW_HOME_n_TSBOARD_RAW = 0; /// @open ǂł񂾂 + } + + // dr[J[̎ // + { + u8 i; + + battery_manufacturer = BT_VENDER_OPEN; // ftHgl + for(i=0; i<=7; i++) + { + if( temp <= BT_MANUF_BORDER[ i ] ) + { + battery_manufacturer = (BT_VENDER)i; + break; + /* + BT_VENDER_MAXELL; // = 0 + BT_VENDER_1; + BT_VENDER_2; + BT_VENDER_3; + BT_VENDER_4; + BT_VENDER_PANA; + BT_VENDER_6; + + BT_VENDER_OPEN; + */ + } + } + } + + + if( ( battery_manufacturer == BT_VENDER_OPEN ) && + ( system_status.model == MODEL_JIKKI ) ) + { + system_status.model = MODEL_JIKKI_NOBATT; + } +} + + + +#define MGIC_CMD_QUICKSTART 0x4000 +/********************************************//** + MGICNCbNX^[giɃoO΍j + ***********************************************/ +static void BT_mgic_quick_start() +{ + wait_ms( 10 ); // MGIC̋NɊ| + + // 0. obecIC NCbNX^[g + send_cmd_mgic_2B( BT_GAUGE_REG_MODE, swap_endian_16( MGIC_CMD_QUICKSTART ) ); + + wait_ms( 150 ); +} + + +/********************************************//** + drcʑ菉 + + drp[^Ȃǂ] + ***********************************************/ + +#define MGIC_CMD_UNLOCK_KEY 0x4A57 +#define MGIC_CMD_RESET 0x5400 +static void BT_mgic_init() +{ + u8 origParam[4]; + + /* + // -1. ZbgĂ݂ + Ⴞ! + i2c_send_buff_2B._u16 = swap_endian_16( MGIC_CMD_RESET ); + send_cmd_mgic_2B( BT_GAUGE_REG_COMMAND ); // ‚NACKԂ + */ + + if( system_status.model != MODEL_JIKKI ) + { + return; + // ܂ + } + + // 1. bN + if( send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( MGIC_CMD_UNLOCK_KEY ) ) != ERR_SUCCESS ) + { + // cIC NACK + vreg_set_mgic_error; + return; + // ܂ + } + + vreg_clear_mgic_error; + + // wait_ms( 5 + 1 ); OɃEFCgĂ̂ŕsv + + // 2. p[^ꎞۑ + iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam ); + + // 3. ꎞIOCVύX + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( p_bt_param->ocv )); // }WbNio[IȂ́B[J[w + + // 4. ꎞIRCOMPύX + send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, swap_endian_16( 0xFF00 ) ); + + // 5.[J[ʃp[^̃[h + { + u8 loop; + + // 16oCgƂɋ؂Ƃ̂Ɓ@imCY΍Ƃ񂾂ǁAӖ񂩁Hj + for( loop = 0; loop < 4; loop ++ ) + { + iic_mcu_set_wo_dma( ); + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_BT_PARAM + loop*16, 16, p_bt_param->mg_param + loop*16 ); + } + } + + // 6. 150msȏ҂ + wait_ms( 150 + 15 ); + + // 7. OCVɁuƂlv + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( p_bt_param->ocv ) ); // }WbNio[IȂ́B[J[w + + // 8. 150`600ms҂B600ms͌ + wait_ms( 150 + 15 ); + + // 9. SOCǂށBxt@Ĉ߁B + { + u8 temp; + temp = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC ); + + if(( p_bt_param->verify.low <= temp ) && ( temp <= p_bt_param->verify.hi )) + { + // JX^fOKI + }else{ + // s烊gĈH + // dbg_nop(); + } + } + + // 10.RCOMPOCV߂ + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam ); + + // 11. bN + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( 0x0000 ) ); // lock key +} + + + +extern u16 _dbg_rcomp; +/********************************************//** + raw_adc_temperatureɓĂlɕϊƂƂɁA + - WX^ɃZbg + - cICɃZbg + ***********************************************/ +task_status_immed tski_BT_temp_update( ) +{ + static u8 rawdat_old; + static s8 temperature; + s16 newrcomp; + static u8 heikinka; + +/* + T[~X^ - 10k_̎A + pxł͕̃J[uقڃjAŁA + c T[] = 81.48 - 111.97 x ratio + TDK T = 81.406 - 111.81 x ratio +*/ + + if( rawdat_old != raw_adc_temperature ) + { + if( heikinka < 40 ) + { + heikinka ++; + } + else + { + heikinka = 0; + rawdat_old = raw_adc_temperature; + // temperature = 81.45 - 111.9 * raw_adc_temperature/256.0; + // ꂼ256{Ă + temperature = (u8)(( 20851 - 112 * raw_adc_temperature + (256/2) ) /256); + vreg_ctr[VREG_C_BT_TEMP] = temperature; + + newrcomp = 0; + if( temperature > 20 ) + { + newrcomp = ( ( temperature - 20 ) * p_bt_param->rcomp.up )/256; + } + else + { + newrcomp = ( ( temperature - 20 ) * p_bt_param->rcomp.down )/256; + } + newrcomp = p_bt_param->rcomp.rcomp + newrcomp; + + if( newrcomp > 255 ) + { + newrcomp = 255; + } + if( newrcomp < 0 ) + { + newrcomp = 0; + } + _dbg_rcomp = newrcomp; + + if( send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, newrcomp ) == ERR_SUCCESS ) // swapsv + { + rawdat_old = raw_adc_temperature; + } + else + { + vreg_set_mgic_error; + } + } + } + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + drcICcʂ擾AWX^ɏށB + + @drcICȄȂǂ̎͂Ƃ肠c99%ƂB + + @@@@@@@@ status_1ŊmF”\BdɃ`FbNĂ܂B + + @BT_chk()sĂKv܂B + ***********************************************/ +void BT_get_left(){ + u8 temp[2]; + u8 reg_volatile_temp_bt_remain,reg_volatile_temp_bt_remain_fine; // I2C̔񓯊ǂݍ݂ł̂‚h~ Lbv̏ + u8 fuel_cap_by_voltage; // dŃLbvɎg + + // drc + if( system_status.model == MODEL_TS_BOARD + || system_status.model == MODEL_SHIROBAKO ) + { + // TS & // + if( read_BT_SOC( temp ) == ERR_SUCCESS ) + { + reg_volatile_temp_bt_remain = temp[0]; + reg_volatile_temp_bt_remain_fine = temp[1]; + } + else + { + // G~[V@\ + // @œdf͕sւ邾낤 + reg_volatile_temp_bt_remain = 99; + reg_volatile_temp_bt_remain_fine = 0; + } + } + else + { + // @ // + // cʃ[h + if( read_BT_SOC( temp ) != ERR_SUCCESS ) + { + // cICNACK cobe͂ꂽ + vreg_set_mgic_error; + bt_authorized = false; + reg_volatile_temp_bt_remain = 0; + force_off = true; + } + else + { + u16 temp_u16; + + vreg_clear_mgic_error; + // obep[^̊֌WŃrbgVtgKv + temp_u16 = temp[0] * 256 + temp[1]; + temp_u16 /= p_bt_param->v_scale; + reg_volatile_temp_bt_remain = (u8)(( temp_u16 >> 8 ) & 0xFF ); + if( reg_volatile_temp_bt_remain == 0 ) + { + // 0%̎1.00%ɏグ + // [dJn΂炭͓drcʂ̂ + // 0%ɓBĂ܂Ƃ̂ + reg_volatile_temp_bt_remain = 1; + reg_volatile_temp_bt_remain_fine = 0; + } + else + { + reg_volatile_temp_bt_remain_fine = (u8)(temp_u16 & 0xFF); + } +#ifdef _DBG_BT_FULL_ + reg_volatile_temp_bt_remain = 100; + reg_volatile_temp_bt_remain_fine = 0; +#endif + } + } + + // drd + { + if( read_BT_voltage( temp ) != ERR_SUCCESS ) // 2byte read + { + temp[0] = (u8)( V_BT_4000MV / 256 ); // drdǂ߂Ȃ4000mVƂɂĂB + temp[1] = 0; + } + vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp[0]; + bt_volt16 = ( temp[0] * 256 + temp[1] ); + } + + + // dŃLbv...̏ + { + static u16 hysteresis; + + if( bt_volt16 > V_TH_30 ) + { + fuel_cap_by_voltage = 100; + hysteresis = 0; + } + else if( bt_volt16 - hysteresis > V_TH_LO ) // lqXeVXĂBǂނƂӁB + { + fuel_cap_by_voltage = 30; + hysteresis = 0; + } + else if( bt_volt16 > V_TH_EMPTY ) + { + fuel_cap_by_voltage = BATT_TH_LO; // + hysteresis = 500; + } + else if( bt_volt16 > V_TH_ZERO ) + { + fuel_cap_by_voltage = BATT_TH_EMPTY; + hysteresis = 500; + } + else if( bt_volt16 > V_TH_FORCE_OFF ) + { + fuel_cap_by_voltage = 0; + hysteresis = 500; + } + else + { + force_off = true; + hysteresis = 500; + } + } + + + // [diA_v^hĂĵɏ[dĂȂ + // AiȂƂjf̓drcʂ60%ȏiCCICoOABT_IN_CHG_delayed_nɐD荞ݍς݁j + // = [dBdrւĂMGIC100%ԂȂ + if( !BT_CHG_Ena_n && BT_IN_CHG_delayed_n ){ + reg_volatile_temp_bt_remain = 100; + reg_volatile_temp_bt_remain_fine = 0; + } + else + { // dł̃Lbv|邩H + if( fuel_cap_by_voltage < reg_volatile_temp_bt_remain ) + { + reg_volatile_temp_bt_remain = fuel_cap_by_voltage; + reg_volatile_temp_bt_remain_fine = 0; + } + } + + /* + \ɖȂdĂ炵̂ŃPAł悵 + if( system_status.taikendai_nbd && system_status.model != MODEL_TS_BOARD ) // dr[qɓd‚ȂĂĒlsȂߏ㏑B + { + reg_volatile_temp_bt_remain = 100; + } + */ + + vreg_ctr[ VREG_C_BT_REMAIN ] = reg_volatile_temp_bt_remain; + vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = reg_volatile_temp_bt_remain_fine; + + // twl̃WX^XV@(CTRɊ荞ݓOɍXVȂƊ荞݂̃^C~O܂Ȃ) + bt_batt_update_twl(); + + // cʂŊ荞݁B}ɌƔԂƂ // + { + static u8 bt_remain_old_ctr; + + if( bt_remain_old_ctr != reg_volatile_temp_bt_remain ) + // CTRɒʒm + { + if( (( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO ) && ( BATT_TH_LO < bt_remain_old_ctr ))|| + (( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_EMPTY ) && ( BATT_TH_EMPTY < bt_remain_old_ctr ))|| + (( vreg_ctr[ VREG_C_BT_REMAIN ] == 0 ) && ( bt_remain_old_ctr != 0 )) ) + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN ); + } + } + bt_remain_old_ctr = vreg_ctr[ VREG_C_BT_REMAIN ]; + } + + // PMIC-NTRɓdrcʂĂ + bt_batt_update_ntr(); +} + + + +/********************************************//** + tn̓d + + @Xe[^XtO͂ɗĂĂ܂B + + @sԂ邵A + + NsłΓd + + ʂ̃^XNœd͊ĎĂāAXe[^XNA + ***********************************************/ +err PM_LCD_on( ) +{ + err rv = ERR_ERR; + + PM_VDDLCD_on( ); // CGS AMO ؂ւĂ܂ + + if( system_status.LCD_is_CGS == true ) + { + // CTR + wait_ms( DELAY_PM_TSS_50B_AND_TCOM ); + } + else + { + // SPFL/SNAKE ȂAt@XHV on Ԃɋ + wait_ms( 10 ); + SPFL_LCD_AMOL_HV_CONT = 1; + wait_ms( DELAY_PM_TSS_50B_AND_TCOM - 10 ); + } + + PM_TCOM_on( ); + + wait_ms( DELAY_PM_TCOM_TO_VCS ); + + PM_VCS_on( ); + + wait_ms( DELAY_PM_VCS_TO_BL ); + + if( PM_chk_LDSW() != 0 ) // pX + { + // dNG[Ȃd؂Ă܂Bł̓PAȂ + vreg_ctr[VREG_C_STATUS] |= REG_BIT_LCD_POW; + set_irq( VREG_C_IRQ3, REG_BIT_LCD_ON ); + rv = ERR_SUCCESS; + } + + return rv; +} + + +void PM_LCD_off() +{ + // BL‚ĂB// `FbN̂͊荞݂̊֌W + if( ( read_pmic( PM_REG_ADRS_BL ) & 0x03 ) != 0 ) + { + u8 tot; + + PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + vreg_ctr[VREG_C_STATUS] &= bits8(1,0,0,1, 1,1,1,1); + + if( (( REG_BIT_BL_U_OFF | REG_BIT_BL_L_OFF ) & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ) != 0 ) + { + vreg_ctr[ VREG_C_IRQ3 ] |= ( ( REG_BIT_BL_U_OFF | REG_BIT_BL_L_OFF ) & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ); + IRQ0_neg; + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} + IRQ0_ast; + } + vreg_ctr[VREG_C_COMMAND2] &= ~( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + } + + + + // 50msƂ҂‚AmF܂傤ˁc + if( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ) + { + PM_TCOM_off(); + wait_ms( 1 ); + PM_TCOM_VCS_off( ); + wait_ms( DELAY_PM_LCD_OFF ); + + if( system_status.LCD_is_CGS == false ) + { + // At@XȂ|[g + SPFL_LCD_AMOL_HV_CONT = 0; // ̃t@~łLȂ̂ŕQȂ + wait_ms( 10 ); // At@X15V؂Ƃ̃EFCgB + } + + PM_VDDLCD_off( ); // cĂ̑S~߂܂B + vreg_ctr[VREG_C_STATUS] &= ~REG_BIT_LCD_POW; + } + + set_irq( VREG_C_IRQ3, REG_BIT_LCD_OFF ); // ɔB}XN΁B +} + + + +/********************************************//** +@obNCǧ•on/off + +@󂩂@on/off/ێ@̃tOȂ̂Ŗʓ| + +@BL on/on ̏ԂŁAon/onɂƌĂAon/on荞݂܂B + ***********************************************/ +err PM_BL_set( u8 dat ) +{ + u8 blset; // PMIC WX^ɏޒl + u8 intset = 0; // 荞݃WX^ɔfl + // RMWs + + // Read + blset = read_pmic( PM_REG_ADRS_BL ); + + // Modify + // + if(( dat & REG_BIT_CMD_BL_U_ON ) != 0 ) + { + blset |= PM_REG_BIT_BL_U; + intset |= REG_BIT_BL_U_ON; + } + else if(( dat & REG_BIT_CMD_BL_U_OFF ) != 0 ) + { + blset &= ~PM_REG_BIT_BL_U; + intset |= REG_BIT_BL_U_OFF; + } + + // + if(( dat & REG_BIT_CMD_BL_L_ON ) != 0 ) + { + blset |= PM_REG_BIT_BL_L; + intset |= REG_BIT_BL_L_ON; + } + else if(( dat & REG_BIT_CMD_BL_L_OFF ) != 0 ) + { + blset &= ~PM_REG_BIT_BL_L; + intset |= REG_BIT_BL_L_OFF; + } + + if( system_status.family == FAMILY_FLOWER ) + { + // plꖇȂ̂ŁAoff/off łȂΓ_ALX1iڑj𗧂グȂ + // A荞݂͉R‚ SoC ݒ肵Ǝv񂾒lɂB + // todo: vmB + if( blset != 0 ) + { + blset = PM_REG_BIT_BL_L; + } + } + + // write + if( blset != 0 ) // BLtꍇ̓EFCg܂ȂPWMĂ炸 + // Vbg_E邱Ƃ + { + wait_ms( 16 + 10 ); + } + send_cmd_pmic( PM_REG_ADRS_BL, blset ); + + // SoCPWMo悤WX^ZbgĂxL邽߁AXe[^X + // XVĂ܂BĂقƂ̗vB + + // PMICBL̃rbgƁAMCUSTATUSWX^̃rbgʒutȂߓւ + vreg_ctr[VREG_C_STATUS] = (( vreg_ctr[VREG_C_STATUS] & bits8(1,0,0,1, 1,1,1,1) ) + | ( (( blset << 6 ) | ( blset << 4 )) & bits8(0,1,1,0, 0,0,0,0) )); + + // 荞 + /// rbg܂Ƃ߂čŝŁAset_irq()gȂ + { + u8 tot; + + if( ( intset & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ) != 0 ) + { + vreg_ctr[ VREG_C_IRQ3 ] |= ( intset & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ); + IRQ0_neg; + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} + IRQ0_ast; + } + } + + return( ERR_SUCCESS ); // łُ͈`FbNsv +} + + + +/********************************************//** + t̑Όd̐ݒs܂B + + zWX^̓e𑗂邾 + ***********************************************/ +void PM_LCD_vcom_set( ) +{ + send_cmd_pmic( PM_REG_ADRS_POW_DAC1, vreg_ctr[VREG_C_VCOM_T] ); // ȂƂɁAPMIC̓o[Xgݕs + send_cmd_pmic( PM_REG_ADRS_POW_DAC2, vreg_ctr[VREG_C_VCOM_B] ); + return; +} + + + +/********************************************//** + ŁAWX^݂Ăяo鎞̂ + + @I2C̎荇̊֌WłĂ + ***********************************************/ +task_status_immed tski_vcom_set( ) +{ + PM_LCD_vcom_set( ); + return ( TSKI_FINISHED ); +} + + +void set_vdd_voltages( enum family_ family ) +{ + if(( family == FAMILY_SNAKE ) || ( family == FAMILY_CLOSER )) + { + // SNAKE + pmreg_v_core = PM_REG_BIT_VDD1P_1R00; + } + else + { + // NORMAL + pmreg_v_core = PM_REG_BIT_VDD1P_1R15; + } +} + +/********************************************//** + V[PX̒ʂd𗧂グĂ䂫܂B + + - Ԓl 0 Ō܂ŐɊB + - 1 V[gȂǂœd肫Ȃ + ***********************************************/ +err PM_sys_pow_on( ) +{ + // dグ +// PM_reset_ast( ); sv PM_LDSW_on܂ + RESET2_ast; + FCRAM_RST_ast; + GYRO_DISABLE(); + + PM_LDSW_on( ); + + wait_ms( 1 + DELAY_PM_TW_PWUP ); + + PM_VDD_normMode(); + PM_VDD_on( ); +// wait_ms( DELAY_PM_TW_PWUP ); // GYROނ + wait_ms( 10 ); + GYRO_ENABLE(); + wait_ms( DELAY_PM_TW_PWUP - 10 ); + + PM_VDD50A_on( ); // tdł͂ȂAledɎg + + wait_ms( DELAY_PM_TW_PWUP ); + + // dN`FbNB + if( !PM_chk_LDSW() ) + { + return ( ERR_ERR ); // reset1͂قƂėǂ + } + + // dIC + pmic_version = read_pmic( PM_REG_ADRS_VER ); + read_mgic_2B( BT_GAUGE_REG_VERSION, mgic_version ); + + return ( ERR_SUCCESS ); +} + + + +void reset_release() +{ + // ZbgȂǁBVXeNI + PM_reset_neg(); + FCRAM_RST_neg; + RESET2_neg; + + codec_reg_init(); // CODEC s背WX^(reset2̌łȂƂȂ̂) + ntr_pm_reg_shadow = 0; // @V@ȂƂ... +} + + + + +/********************************************//** + dOFFV[PX + ***********************************************/ +void PM_sys_pow_off( ) +{ +// if( RESET1_n ) + if( PM_chk_LDSW() ) + { + // ُIłȂƂ + PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + PM_LCD_off(); // TCOM,VCS OFF Ă܂B + wait_ms( 20 ); + + PM_reset_ast(); + } + + RESET2_ast; + FCRAM_RST_ast; + + wait_ms( 20 ); + + PM_off( ); + PM_LDSW_off( ); + +} + + + +/********************************************//** + extDC荞 + + dOFFNi[d̉xĎ̂߁ĵ + + i̓|[O(pm) + ***********************************************/ +__interrupt void intp4_extdc( ) +{ +} + + + +/********************************************//** + t^J‚ߊ荞 + + i̓|[O(misc) + ***********************************************/ +__interrupt void intp5_shell( ) +{ + ; +} + + +/********************************************//** + PMICւ̃R}h + ***********************************************/ +__interrupt void intp6_PM_irq( ) +{ + EI(); + if( system_status.pwr_state == ON ) + { + renge_task_immed_add( tski_ntr_pmic_comm ); + } +} + + +/********************************************//** + CODEC̊荞݂󂯂āANTR PMIC݊WX^烊[h + ***********************************************/ +task_status_immed tski_ntr_pmic_comm( ) +{ + u8 reg1_old; + u8 irq_work = 0; + + reg1_old = ntr_pm_reg_shadow; + ntr_pm_reg_shadow = iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_PM ); + if( iic_mcu_result != ERR_SUCCESS ) + { + return ( TSKI_FINISHED ); + } + +// DI( ); + + // obNCg //////////////////////////////////// + if( ( ( reg1_old ^ ntr_pm_reg_shadow ) & REG_BIT_TWL_REQ_BL_U ) != 0 ) + { + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_BL_U ) == 0 ) // + { + irq_work = REG_BIT_TWL_BL_U_OFF; + } + else + { + irq_work = REG_BIT_TWL_BL_U_ON; + } + } + + // obNCg + if( ( ( reg1_old ^ ntr_pm_reg_shadow ) & REG_BIT_TWL_REQ_BL_L ) != 0 ) + { + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_BL_L ) == 0 ) // + { + irq_work |= REG_BIT_TWL_BL_L_OFF; + } + else + { + irq_work |= REG_BIT_TWL_BL_L_ON; + } + } + +// EI(); + + vreg_ctr[ VREG_C_STATUS_1 ] = ( vreg_ctr[ VREG_C_STATUS_1 ] & ~REG_BIT_MASK_STATUS1_NTR_PM_REG ) + | ( ntr_pm_reg_shadow & REG_BIT_MASK_STATUS1_NTR_PM_REG ); // TWLobNCg̃~[ + + irq_work &= ~vreg_ctr[ VREG_C_IRQ_MASK2 ]; + // set_irq i + if( irq_work != 0 ) + { + u8 tot; + + vreg_ctr[ VREG_C_IRQ2 ] |= irq_work; + IRQ0_neg; // uグăpX𑗂蒼 + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} // O.DȂ̂łƂ̂҂ IRQ_mcu LɔĂƍ(•s) + IRQ0_ast; + } + + /// obNCgAC𗘂ď肵܂B + + // offNGXg ////////////////////////////////////// + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_OFF_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_OFF_REQ ); + } + + // ZbgNGXg ///////////////////////////////// + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_RST_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); + } + + // obNCg}XNď߂ + EI( ); + if( ( ntr_pm_reg_shadow & ( REG_BIT_TWL_REQ_OFF_REQ | REG_BIT_TWL_REQ_RST_REQ )) != 0 ) + { + ntr_pm_reg_shadow &= ~( REG_BIT_TWL_REQ_OFF_REQ | REG_BIT_TWL_REQ_RST_REQ ); + iic_mcu_write_a_byte_codec( CODEC_REG_PM, ntr_pm_reg_shadow ); + } + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + command2 tn + +@ bp[IȕBERR_SUCCESSԂȂc + ***********************************************/ +task_status_immed tski_PM_LCD_on() +{ + PM_LCD_on(); + return( TSKI_FINISHED ); +} + +task_status_immed tski_PM_LCD_off() +{ + PM_LCD_off(); + return( TSKI_FINISHED ); +} + +task_status_immed tski_PM_BL_set() +{ + u8 cmd_BL; // volatileƂtȂĂv݂ + + do + { + cmd_BL = vreg_ctr[VREG_C_COMMAND2]; + PM_BL_set( cmd_BL ); // }XNς + } + while( cmd_BL != vreg_ctr[VREG_C_COMMAND2] ); // <- PM_BL_setXV + vreg_ctr[VREG_C_COMMAND2] = 0; + + return( TSKI_FINISHED ); +} + + + +/********************************************//** +@reset2 CODEC ɃZbgAWX^sɂȂ邽 + ***********************************************/ +void codec_reg_init() +{ + wait_ms( 100 ); + + ntr_pm_bt_low_old = conv_ctr_bt_to_twl_bt(); + + iic_mcu_write_a_byte_codec( CODEC_REG_BT, (u8)ntr_pm_bt_low_old ); // SoC 珑 + + vol_reset(); +// renge_task_immed_add( tski_vol_update ); |[ÔŁB + vol_polling = 3; +} + + +/********************************************//** + wp[Ƃbp[ƂH + + ROMߖ̂ + ***********************************************/ +err send_cmd_mgic_2B( u8 reg, u16 dat ) +{ + u16 temp = dat; // Mobt@ + return iic_mcu_write( IIC_SLA_BT_GAUGE, reg, 2, &temp ); // DMA]̂őMf[^obt@̃|C^ǂKv +} + +err read_mgic_2B( u8 reg, u8* dat ) // Mobt@͌Œ +{ + return iic_mcu_read( IIC_SLA_BT_GAUGE, reg, 2, dat ); +} + +err send_cmd_pmic( u8 reg, u8 dat ) +{ + return iic_mcu_write_a_byte( IIC_SLA_PMIC, reg, dat ); +} + +u8 read_pmic( u8 reg ) +{ + return iic_mcu_read_a_byte( IIC_SLA_PMIC, reg ); +} + + +/********************************************//** + dr[J[ƃfAgdrp[^̌ + ***********************************************/ +void bt_param_select() +{ + BT_TYPE bt_type_temp; + + // obe[J[ + if( battery_manufacturer <= BT_VENDER_3 ) // ]TĒԂ臒lƂ + { + bt_type_temp = BT_PARAM_CTR_MAXELL; + } + else + { + bt_type_temp = BT_PARAM_CTR_PANA; + } + + // f + switch( system_status.family ) + { + case( FAMILY_SPFL ): bt_type_temp += BT_PARAM_SPFL_MAXELL; break; // ItZbg cOȎŁcB + case( FAMILY_SNAKE ): bt_type_temp += BT_PARAM_SNAKE_MAXELL; break; + case( FAMILY_CLOSER ): bt_type_temp += BT_PARAM_SPFL_MAXELL; break; + case( FAMILY_CTR ): + case( FAMILY_FLOWER ): // CTR Ɠ + default: /* bt_type_temp ̂܂ */ break; + } + + p_bt_param = &bt_param[ bt_type_temp ]; + + // [d~x̐ݒ + /// tȂ̂ƁA򂪏Ȃ̂ł + if(( system_status.family == FAMILY_SNAKE ) || + ( system_status.family == FAMILY_CLOSER )) + { + raw_temp_lh = RAW_TEMP_LH_SNAKE; + raw_temp_ll = RAW_TEMP_LL_SNAKE; + } + else + { + raw_temp_lh = RAW_TEMP_LH_CTR; + raw_temp_ll = RAW_TEMP_LL_CTR; + } +} + + + + +#define TWL_BT_LEVEL_THREASH_F 60 +#define TWL_BT_LEVEL_THREASH_B 30 +#define TWL_BT_LEVEL_THREASH_1 0 + +/********************************************//** + TWLɓdrcʂĂ + ***********************************************/ +static void bt_batt_update_twl() +{ + if (vreg_ctr[VREG_C_BT_REMAIN] > TWL_BT_LEVEL_THREASH_F ) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x0F; + } + else if (vreg_ctr[VREG_C_BT_REMAIN] > TWL_BT_LEVEL_THREASH_B ) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x0B; + } + else if (vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_LO) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x07; + } + else if (( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_EMPTY )|| + !BT_CHG_Ena_n ) + { // A_v^̗LŒグ + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x03; + } + else if (vreg_ctr[VREG_C_BT_REMAIN] > TWL_BT_LEVEL_THREASH_1 ) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x01; + } + else + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x00; + } +} + + +/********************************************//** + NTRɓdrcʂĂ + ***********************************************/ +static void bt_batt_update_ntr() +{ + static bit initialized; + static bit flag; // HstaticłȂƃRpCɓ{ + + if( system_status.pwr_state == OFF_TRIG ) + { + initialized = false; + } + else + { + + flag = conv_ctr_bt_to_twl_bt(); + + if(( ntr_pm_bt_low_old != flag ) || !initialized ) + { + initialized = true; + ntr_pm_bt_low_old = flag; + iic_mcu_write_a_byte_codec( CODEC_REG_BT, (u8)flag ); + } + } +} + + +/********************************************//** + drcʂǂł + ***********************************************/ +static err read_BT_SOC( u8* dest ) +{ +#ifdef _ENABLE_HAL_ + if( vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] != 0xFF ) // trueȂHALL +#else + if( 0 ) +#endif + { + *dest = vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ]; + *(dest+1) = 0x00; + return ERR_SUCCESS; + } + else + { + return( read_mgic_2B( BT_GAUGE_REG_SOC, dest ) ); + } +} + + +/********************************************//** + drdǂł + ***********************************************/ +static err read_BT_voltage( u8* dest ) +{ +#ifdef _ENABLE_HAL_ + if( vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] != 0xFF ) // trueȂHALL +#else + if( 0 ) +#endif + { + *dest = vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ]; +// *(dest+1) = 0x00; // gȂ@ǂQoCg[h֐pӂĂȂ̂ł + return ERR_SUCCESS; + } + else + { + return( read_mgic_2B( BT_GAUGE_REG_VCELL, dest ) ); + } +} + + +/********************************************//** + drcʂtwlɃtOɕϊ + ***********************************************/ +static u8 conv_ctr_bt_to_twl_bt() +{ +// ntr_pm_bt_low_old = ( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )? NTR_PM_BT_EMPTY: NTR_PM_BT_ENOUGH; // 1œdr؂ + if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO ) + { + return NTR_PM_BT_EMPTY; + } + else + { + return NTR_PM_BT_ENOUGH; + } +} diff --git a/tags/2.25_SDK6.0/pm.h b/tags/2.25_SDK6.0/pm.h new file mode 100644 index 0000000..da842ad --- /dev/null +++ b/tags/2.25_SDK6.0/pm.h @@ -0,0 +1,222 @@ +#ifndef __PM__ +#define __PM__ + +// $Id: asdf$ + + +#define IIC_SLA_PMIC 0x84 +#define IIC_SLA_BT_GAUGE 0x6C + +#define VCOM_DEFAULT_T 92 +#define VCOM_DEFAULT_B 95 + + + +#define BATT_TH_LO 10 +#define BATT_TH_EMPTY 5 + +// dWX^ƒڔrłpɃItZbg +#define V_BT_4000MV (u16)( 4000 * 12.8 ) // dǂݏosp 4000mVݒ +#define V_TH_30 (u16)( 3300 * 12.8 ) // 30% +#define V_TH_LO (u16)( 3200 * 12.8 ) // 10% +#define V_TH_EMPTY (u16)( 3150 * 12.8 ) // 5% +#define V_TH_ZERO (u16)( 3100 * 12.8 ) // 0% +#define V_TH_FORCE_OFF (u16)( 2900 * 12.8 ) // 2.9V ŏIf + + +//========================================================= +#ifdef _WIN32 +#define LED_CHARGE mcuRegP[ _P2_4 ] +#else +#define LED_CHARGE P2.4 +#endif + + +//========================================================= +enum PMIC_REG_ADRS +{ + PM_REG_ADRS_VER = 0x00, // verinfo Ȃ + PM_REG_ADRS_VDD_SYS, // VXegpd + PM_REG_ADRS_VDD_LCD, // td + PM_REG_ADRS_CONT, // /RESET1, LoadSwitch + PM_REG_ADRS_BL, // obNCg on/off + PM_REG_ADRS_POW_SAVE, // ȓd͐ݒ + PM_REG_ADRS_POW_DAC1, + PM_REG_ADRS_POW_DAC2 +}; + +enum BT_GAUGE_REG_ADRS +{ + BT_GAUGE_REG_VCELL = 0x02, // ꂼ16rbĝ + BT_GAUGE_REG_SOC = 0x04, + BT_GAUGE_REG_MODE = 0x06, + BT_GAUGE_REG_VERSION = 0x08, + BT_GAUGE_REG_OCV = 0x0E, + BT_GAUGE_REG_RCOMP = 0x0C, + BT_GAUGE_REG_LOCK = 0x3E, + BT_GAUGE_REG_BT_PARAM = 0x40, + BT_GAUGE_REG_COMMAND = 0xFE +}; + + +typedef enum BT_VENDER +{ + BT_VENDER_MAXELL = 0, // V[g + BT_VENDER_1, // 120 + BT_VENDER_2, // 360 + BT_VENDER_3, // 750 + BT_VENDER_4, // 1.3k + BT_VENDER_PANA = 5, // 2.7k + BT_VENDER_6, // 8.2k + BT_VENDER_OPEN = 7, // open + BT_VENDER_NOT_CHECKED = 0xFF, +}BT_VENDER; + + + +enum NTR_PM_BT_STATUS{ + NTR_PM_BT_ENOUGH, + NTR_PM_BT_EMPTY, + NTR_PM_BT_NOT_INITIALIZED = 0xFF +}; + + + +//========================================================= +// CODECPMIC݊WX^ +#define CODEC_REG_PM 0x10 +#define CODEC_REG_BL 0x11 +#define CODEC_REG_BT 0x12 +//#define CODEC_REG_VOL 0x13 // ...sɂAadc.hŒ` + +// TWLSPIPMICɓR}h +#define REG_BIT_TWL_REQ_OFF_REQ ( 1 << 6 ) +#define REG_BIT_TWL_REQ_RST_REQ ( 1 << 0 ) +#define REG_BIT_TWL_REQ_BL ( 3 << 2 ) + + + + +// 0x03 pw cnt3 +#define PM_REG_BIT_LDSW ( 1 << 0 ) +#define PM_REG_BIT_nRST1 ( 1 << 1 ) + +// 0x01 pw cnt1 +#define PM_REG_BIT_VDD_CTR 0x0F +#define PM_REG_BIT_VDD_SNK 0x0B // 2.8Vsv +#define PM_REG_BIT_VDD50A ( 1 << 4 ) + +// 0x02 pw cnt2 +#define PM_REG_BIT_VDDLCD_CGS 0x07 +#define PM_REG_BIT_VDDLCD_AMO 0x05 +#define PM_REG_BIT_LCD_VCS ( 0x01 << 4 ) +#define PM_REG_BIT_LCD_TCOM ( 0x01 << 3 ) + +// 0x04 bl cnt +#define PM_REG_BIT_BL_U 0x01 +#define PM_REG_BIT_BL_L 0x02 + + +// 0x05 pow save +#define PM_REG_BIT_VDD1P_1R15 bits8(0,0,0,0, 0,0,0,0) +#define PM_REG_BIT_VDD1P_1R05 bits8(0,0,0,0, 1,0,0,0) +#define PM_REG_BIT_VDD1P_1R00 bits8(0,0,0,1, 0,0,0,0) +#define PM_REG_BIT_VDD1P_0R90 bits8(0,0,1,0, 0,0,0,0) +#define PM_REG_BIT_VDD_AUTO bits8(0,0,0,0, 0,1,1,1) +#define PM_REG_BIT_VDD_PWM bits8(0,0,0,0, 0,0,0,0) + + +#define DELAY_PM_TW_PWUP 16 + 2 +#define DELAY_PM_TSS_50B_AND_TCOM 17 + 1 +#define DELAY_PM_5V_TO_TCOM 17 + 1 +#define DELAY_PM_TCOM_TO_VCS 3 +#define DELAY_PM_VCS_TO_BL ( 17 + 5 ) +#define DELAY_PM_LCD_OFF ( 50 + 1 ) + + +//========================================================= +extern u8 raw_adc_temperature; +extern BT_VENDER battery_manufacturer; +extern bit bt_force_update; + +extern u8 pmic_version; +extern u8 mgic_version[]; + +extern u8 pm_reg_bit_vddlcd; // At@XΉ(dV[PXႤ) + +extern u8 pmreg_v_core; // SoC̃RAdݒBSNAKE(LAGER)ŕύX邽߁B + +//========================================================= +err PM_sys_pow_on( ); +void PM_sys_pow_off( ); +//err PM_bt_auth( ); +void reset_release( ); +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 ); + +task_status_immed tski_BT_temp_update( ); +task_status_immed tski_vcom_set( ); +task_status_immed tski_PM_LCD_on(); +task_status_immed tski_PM_LCD_off(); +task_status_immed tski_PM_BL_set(); + + +err send_cmd_pmic( u8 reg, u8 dat ); +u8 read_pmic( u8 reg ); + + +#define PM_Chg_Stop() { BT_TEMP_P = 0; BT_CHG_DISABLE(); LED_CHARGE = 0; bt_authorized = false; } +// @ĂԑOɁA݉xĂKv܂B +#define PM_reset() ( send_cmd_pmic( PM_REG_ADRS_CONT, 0x00 ) ) + + +//========================================================= + + +// // +#define PM_LDSW_on() ( send_cmd_pmic( PM_REG_ADRS_CONT, PM_REG_BIT_LDSW )) +#define PM_LDSW_off() ( send_cmd_pmic( PM_REG_ADRS_CONT, 0 )) + + +// VXed // +#define PM_VDD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, PM_REG_BIT_VDD_CTR )) +#define PM_VDD50A_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, ( PM_REG_BIT_VDD_CTR | PM_REG_BIT_VDD50A ))) +#define PM_VDD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, 0 )) +#define PM_off() PM_VDD_off() + +// CPUd +#define PM_VDD_normMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, pmreg_v_core | PM_REG_BIT_VDD_PWM )) +#define PM_VDD_ecoMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_0R90 | PM_REG_BIT_VDD_AUTO )) + +// ق // +#define PM_reset_neg() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW | PM_REG_BIT_nRST1 ))) +#define PM_reset_ast() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW ))) +#define PM_chk_LDSW() ( read_pmic( PM_REG_ADRS_CONT ) & PM_REG_BIT_LDSW ) +// 1̂ƂAdon + +// tnd // +#define PM_VDDLCD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, pm_reg_bit_vddlcd )) +#define PM_TCOM_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_TCOM ))) +#define PM_VCS_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_VCS | PM_REG_BIT_LCD_TCOM ))) +#define PM_TCOM_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_VCS ))) +#define PM_TCOM_VCS_off() PM_VDDLCD_on() +#define PM_VDDLCD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, 0 ) ) + +#define PM_set_BL( dat ) ( send_cmd_pmic( PM_REG_ADRS_BL, dat ) ) +#define PM_set_adc1( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC1, dat ) ) +#define PM_set_adc2( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC2, dat ) ) + + +#endif // __PM__ diff --git a/tags/2.25_SDK6.0/pool.h b/tags/2.25_SDK6.0/pool.h new file mode 100644 index 0000000..81c8091 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/reboot.c b/tags/2.25_SDK6.0/reboot.c new file mode 100644 index 0000000..53912a5 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/reboot.h b/tags/2.25_SDK6.0/reboot.h new file mode 100644 index 0000000..c20e11e --- /dev/null +++ b/tags/2.25_SDK6.0/reboot.h @@ -0,0 +1,6 @@ +#ifndef __MYREBOOT__ +#define __MYREBOOT__ + +void my_reboot(); + +#endif diff --git a/tags/2.25_SDK6.0/renge/renge.c b/tags/2.25_SDK6.0/renge/renge.c new file mode 100644 index 0000000..19bee20 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/renge/renge.h b/tags/2.25_SDK6.0/renge/renge.h new file mode 100644 index 0000000..9c7b2e4 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/renge/renge_defs.h b/tags/2.25_SDK6.0/renge/renge_defs.h new file mode 100644 index 0000000..641fd50 --- /dev/null +++ b/tags/2.25_SDK6.0/renge/renge_defs.h @@ -0,0 +1,56 @@ +#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_RET1 // ň +}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/tags/2.25_SDK6.0/renge/renge_task_config.rb b/tags/2.25_SDK6.0/renge/renge_task_config.rb new file mode 100644 index 0000000..c2de509 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/renge/renge_task_immediate.h b/tags/2.25_SDK6.0/renge/renge_task_immediate.h new file mode 100644 index 0000000..9ac3bd2 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/renge/renge_task_intval.h b/tags/2.25_SDK6.0/renge/renge_task_intval.h new file mode 100644 index 0000000..9b0d9ea --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/renge/renge_tasks.txt b/tags/2.25_SDK6.0/renge/renge_tasks.txt new file mode 100644 index 0000000..73af545 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/rtc.c b/tags/2.25_SDK6.0/rtc.c new file mode 100644 index 0000000..dd2d1a9 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/rtc.h b/tags/2.25_SDK6.0/rtc.h new file mode 100644 index 0000000..a203e83 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/self_flash.c b/tags/2.25_SDK6.0/self_flash.c new file mode 100644 index 0000000..a662d07 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/self_flash.h b/tags/2.25_SDK6.0/self_flash.h new file mode 100644 index 0000000..768565e --- /dev/null +++ b/tags/2.25_SDK6.0/self_flash.h @@ -0,0 +1,9 @@ +#ifndef _self_flash_h_ +#define _self_flash_h_ + + +void firm_update(); + + +#endif + diff --git a/tags/2.25_SDK6.0/sw.c b/tags/2.25_SDK6.0/sw.c new file mode 100644 index 0000000..ab9c5a8 --- /dev/null +++ b/tags/2.25_SDK6.0/sw.c @@ -0,0 +1,246 @@ +/* ======================================================== +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; + + +//========================================================= +static void chk_pow_sw(); +static void chk_wifi_sw(); + + + +/********************************************//** + Ԃ𐔂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 ): + chk_wifi_sw(); + if( !SHELL_OPEN ) + { + break; + } + // else ߂̎ fall through (W‚Ȃpwsw`FbNXLbv)B + // ǂȂC邪... + + // 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 ); + /* fall through */ + + case( OFF ): + case( ON_CHECK ): + chk_pow_sw(); + + break; + + default: + break; + } +} + + + +/********************************************//** + dXCb`̊Ď + VAz[j[ɂ͓Ȃ悤ɂāANɂĂ邻 + mmen ̕sŃz[j[ɂĂ܂isN[Lj + Ȃ̂Ń}CRł̑}XNB + ***********************************************/ +static void chk_pow_sw() +{ + // @̏ꍇ + if( ! system_status.taikendai ) + { + if( SW_pow_count == ( TIME_PWSW_CLICK ) ) // NbNԂɓB + { + if( is_wifi_calib_resets_ast ) // wifi Lu[VȂASoCɒʒmoffɑJ + { + system_status.pwr_state = OFF_TRIG; + } + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_CLICK ); + } + else if( SW_pow_count == ( HOLD_THREASHOLD ) ) // ɓB + { + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_HOLD ); + if( off_timeout_timer == 0 ) // dfJEg_EJnAxȂ悤ɁB + { + off_timeout_timer = vreg_ctr[ VREG_C_OFF_DELAY ] * 16; + } + } + + if( off_timeout_timer != 0 ) // 荞݌A^CAEgŋItB + { + off_timeout_timer --; + if( off_timeout_timer == 0 ) + { + force_off = true; + } + } + + }else{ + // X^hAV + 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 +} + + + +/********************************************//** + wifi XCb`̊Ď + ňȎȂ̂͂킩Ă邪AsɏoĂ܂sǃXCb`~ + c̃XCb`Ŝ񂾂낤 + ***********************************************/ +static void chk_wifi_sw() +{ + // wifi sw // + 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; + } + } +} + diff --git a/tags/2.25_SDK6.0/sw.h b/tags/2.25_SDK6.0/sw.h new file mode 100644 index 0000000..abe9715 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/task_debug.c b/tags/2.25_SDK6.0/task_debug.c new file mode 100644 index 0000000..e5b502c --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/task_misc.c b/tags/2.25_SDK6.0/task_misc.c new file mode 100644 index 0000000..b7de6da --- /dev/null +++ b/tags/2.25_SDK6.0/task_misc.c @@ -0,0 +1,420 @@ +/* ======================================================== + ̑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? MODEL_CAPTURE_BOX + : ( system_status.is_dev? MODEL_ISBAKO: (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]; + 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/tags/2.25_SDK6.0/task_status.c b/tags/2.25_SDK6.0/task_status.c new file mode 100644 index 0000000..361497b --- /dev/null +++ b/tags/2.25_SDK6.0/task_status.c @@ -0,0 +1,89 @@ +/* ******************************************************** + ꕔ̃Xe[^XWX^XVAKvɉĊ荞݂܂B + + $Id$ +********************************************************* */ + +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs_loader.h" +#include "renge\renge.h" + +#include "pm.h" + +#include "accero.h" +#include "adc.h" +#include "i2c_mcu.h" +#include "led.h" + + +/********************************************//** + Xe[^XWX^́A + - WJ + + Ŋ荞݂KvłΔ܂B + todo: H + ***********************************************/ +void tsk_status( ) +{ + static u8 state_old; // Xe[^Xωo荞 ̈ + u8 diff; + + // WJ`FbN + set_bit( SHELL_OPEN, vreg_ctr[VREG_C_STATUS], REG_BIT_ST_SHELL_OPEN ); + + // Xe[^XWX^֌W 荞 // + // pm.c ŁȀōs܂B + // REG_BIT_LCD_ON/OFF + // REG_BIT_BL_ON/OFF + // REG_BIT_BT_DC_CONNECT/DISC + // REG_BIT_BT_CHG_START/STOP + + diff = (u8)( vreg_ctr[VREG_C_STATUS] ^ state_old ); + if( diff != 0 ) + { + state_old = vreg_ctr[VREG_C_STATUS]; + + if( system_status.pwr_state == ON ) + { + if( diff & REG_BIT_BATT_CHARGE ) + { + // [dԔf + if( is_bt_charging ) // set_irqʁXɌĂԕRpNg + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_START ); + } + else + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_STOP ); + } + } + } + + if(( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP ) + ) + { + if( diff & REG_BIT_ST_SHELL_OPEN ) + { + // W̊J‚ + if( is_shell_open ) + { + set_irq( VREG_C_IRQ0, REG_BIT_SHELL_OPEN ); + } + else + { + set_irq( VREG_C_IRQ0, REG_BIT_SHELL_CLOSE ); + } + } + } + } +} + diff --git a/tags/2.25_SDK6.0/task_sys.c b/tags/2.25_SDK6.0/task_sys.c new file mode 100644 index 0000000..ebee896 --- /dev/null +++ b/tags/2.25_SDK6.0/task_sys.c @@ -0,0 +1,821 @@ +/* ======================================================== + 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(); +static void chk_sleep(); +static void chk_awake(); +static err direct_boot_sleep_check(); +static err chk_pwsw_timeout(); +static void go_stop(); +static void ports_finalize(); +static void irqs_finalize(); +static void restore_status_regs(); +static err leds_closed(); +#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͂ɖ߂ + +#define SELSW_DIRECT_BOOT_DELAY (u16)( 1000 / SYS_INTERVAL_TICK ) + + +/********************************************//** + d̗グX[vȂǂǗ + ***********************************************/ +void tsk_sys( ) +{ + + 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( chk_pwsw_timeout() == ERR_ERR ) + { + // ^CAEgBX[vɓ + return; + } + } + else + { + BT_chk(); // obeOꂽ[d~Ȃǂ邽 + } + + + 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 + wait_ms( 50 ); // vAbvdƏオ̂܂hal_update() ȂƊ҂̂Ȃ + /// 50ms ͎bl + + // W‚ȂAHOMEĂȂƓdȂBb + // (resetɓdfĂ܂B[U[ɂ͋CÂ܂B) + system_status.pwr_state = DIRECT_BOOT_CHECK; + +// system_status.pwr_state = ON_TRIG; + break; + + case DIRECT_BOOT_CHECK: //------------------------------------------------------- + switch( direct_boot_sleep_check() ) + { + case ERR_ERR: // X[vĂāAKvȃL[Ȃ̂ŋNȂ + system_status.pwr_state = OFF_TRIG; + return; + break; + + default: + dbg_nop(); + /* fall through */ + + case ERR_RET1: // 1b sel ȂĂ͂ȂȂBJEg̓r... + return; + break; + + case ERR_SUCCESS: // NB_CNgu[g͂B + system_status.pwr_state = ON_TRIG; + break; + } + + case ON_TRIG: //------------------------------------------------------- + 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ȂǏ + + IIC_ctr_Init( ); + IIC_twl_Init( ); + + vreg_twl_init( ); + vreg_ctr_reset( ); + + system_status.poweron_reason = NONE; + renge_task_interval_run_force = true; + + // 荞݊֌W + KRM = bits8(0,0,0,0, 0,0,0,0); + PIF0 = 0; + + MK0 = INT_MSK0_RSV; + MK1 = INT_MSK1_RSV; + + iic_mcu_start(); + +// MK2 = ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ ); +// PMK21 = 0; // wifi gȂ + PMK6 = 0; // pm_irq + + // u[gAXe[^XƂȂXV + if( system_status.reboot ) + { + restore_status_regs(); + } + + 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: //--------------------------------------------- + chk_emergencyExit(); // PMICɂ鋭df`FbN + // fobKreset1AT[g邱ƂB̂Ƃ͑SZbg + + chk_sleep(); // SLPĎBsystem_status.pwr_state ܂BsV + + force_off_check(); // offJEg + +#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(); + chk_awake(); // X[v畜A + + 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҂ + if( leds_closed() != ERR_SUCCESS ) + { + 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 ) + {;} + + irqs_finalize(); + IRQ0_disable; // SoC ̃s + + PM_sys_pow_off( ); // dJbgIt + + ports_finalize(); + + 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; + + 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(); + + + go_stop(); // 荞ݑ҂ stop [hցB + + hal_update(); + renge_flg_interval = 0; + bt_force_update = true; + + // 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 + } + } +} + + + +/********************************************//** + d{^`^OB + ^CAEg܂łɓdm肵Ȃoffɖ߂ + ***********************************************/ +static err chk_pwsw_timeout() +{ + static u8 pwsw_timeout = 0; + + 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 ERR_ERR; + } + + return ERR_SUCCESS; +} + + + +/********************************************//** + X[vɓ邩H + SoC ʒm + ***********************************************/ +static void chk_sleep() +{ + 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; + } + } +} + + +/********************************************//** + N邩H + ***********************************************/ +static void chk_awake() +{ + if( !SLP_REQ ){ + PM_VDD_normMode(); + wait_ms( 5 ); // tdly_sw + send_getup_to_soc(); + system_status.pwr_state = ON; + } +} + + + +/********************************************//** + STOP [hֈڍs + X̃WX^ݒ肪܂ + ***********************************************/ +static void go_stop() +{ + 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쏀 + nop8(); + CKC = bits8(0,0,0,0, 1,0,0,0); // OSMC.FSEL = 1 3clkȏJ +} + +/********************************************//** + FLOWER direct boot `FbN + sleep XChXCb`ɂȂsŃ`FbN(ȂĂ̂Ȃ) + MCU ł邱ƁB + Esleep ɂȂĂNȂ + EAhome ĂN + ***********************************************/ +static err direct_boot_sleep_check() +{ + static u16 sel_sw_count; + + // W󂫁H + if( SHELL_OPEN ) + { + // ʏN + sel_sw_count = 0; + return ERR_SUCCESS; + } + + // else W‚/X[vXCb`on + /// _CNgu[g`FbN + if( SW_SEL_n || SW_POW_n ) + { + // sel ĂȂ + sel_sw_count = 0; + return ERR_ERR; + } + + // else sel ĂBԑ肷B + sel_sw_count++; + if( sel_sw_count < SELSW_DIRECT_BOOT_DELAY ) + { + return ERR_RET1; // Ă邪܂Ȃ + } + + // else _CNgu[g + sel_sw_count = 0; + return ERR_SUCCESS; +} + + + + +/********************************************//** + |[gނ~[hɁB + HłALo͂ɂȂႾ߂ȁB + ***********************************************/ +static void ports_finalize() +{ + 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; + + // 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 ~ +} + +/********************************************//** + MCU IRQ ̒~ + ***********************************************/ +static void irqs_finalize() +{ + // 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; + + IF0 = 0; + IF1 = 0; + IF2 = 0; +} + + +static err leds_closed() +{ + 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 || + LED_duty_WiFi != 0 || + LED_duty_3d != 0 || + LED_duty_notify_red != 0 || + LED_duty_notify_grn != 0 || + LED_duty_notify_blu != 0 ) + { + return ERR_ERR; + } + return ERR_SUCCESS; +} +/********************************************//** + 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; + } + } + } +} + + +/********************************************//** +u[gAXe[^XƂȂXV + ***********************************************/ +static void restore_status_regs() +{ + u8 bl_status_temp; + + bl_status_temp = read_pmic( PM_REG_ADRS_BL ); + vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 ); + set_bit( ( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ), + vreg_ctr[ VREG_C_STATUS ], REG_BIT_LCD_POW ); + BT_chk(); +} +/********************************************//** + - 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]; + + // vAbv؂YH + ports_i[0] = ( PM0 & PU0 & ~P0 ); + 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 ); + + // H o͂Ă邩 + ports_o[0] = ( ~PM0 & P0 ); + 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/tags/2.25_SDK6.0/user_define.h b/tags/2.25_SDK6.0/user_define.h new file mode 100644 index 0000000..48e334c --- /dev/null +++ b/tags/2.25_SDK6.0/user_define.h @@ -0,0 +1,214 @@ +#ifndef _USER_DEF_ +#define _USER_DEF_ + +// $Id: asdf$ + +#define IIC_T_SLAVEADDRESS 0x4A +#define IIC_C_SLAVEADDRESS 0x4A +#define IIC_C_SLAVEADDRESS_DMY 0x4C + +//#define IIC_SLA_DCP 0x50 + +#define bits8(a,b,c,d,e,f,g,h) ( a<<7 | b<<6 | c<<5 | d<<4 | e<<3 | f<<2 | g<<1 | h ) + +#ifndef _WIN32 +// @‹ + +#ifdef _debug_led_ +/*spflΉȍ~AncłȂȂ̂Ŏg܂ +# define DBG_LED_on { PM2.1 = 0; P2.1 = 1; } +# define DBG_LED_off { P2.1 = 0; } +# define DBG_LED_toggle ( P2.1 ^= 1 ) +# define DBG_LED2_on { PM2.2 = 0; P2.2 = 1; } +# define DBG_LED2_off { P2.2 = 0; } +# define DBG_LED2_toggle ( P2.2 ^= 1 ) +*/ +#else +# define DBG_LED_on ; +# define DBG_LED_off ; +# define DBG_LED_toggle ; +# define DBG_LED2_on ; +# define DBG_LED2_off ; +# define DBG_LED2_toggle ; +#endif // _debug_led_ + +#define IIC_SLA_CODEC 0xA4 +#define IIC_SLA_ACCEL 0x30 // ST LIS331DLH + + +#define SLP_ACK P7.7 + + +// PMx0ŏo̓[h + +// SoC +#define IRQ0_ast { P7.6 = 0; PM7.6 = 0; } // B4 +#define IRQ0_neg { P7.6 = 1; } +#define IRQ0_enable { PM7.6 = 0; } +#define IRQ0_disable { PM7.6 = 1; } +#define IRQ0 ( P7.6 ) + + +// h~ +#define RESET1_n ( P0.0 ) // G7 + +#if 1 // iPM_RESET1gAWiFiW[̃eXg̎͒ +# define RESET1_ast { P0.0 = 0; PM0.0 = 0; } +# define RESET1_neg { PM0.0 = 1; } +#endif + +#define RESET2_ast { P0.1 = 0; PM0.1 = 0; } // F7 +#define RESET2_neg { PM0.1 = 1; } + +#define SLP_REQ P12.0 // H8 + +// CTR,SPFL,SNAKE,܂ʔh@ +#define DEV_DET ( P12 & 0b00000110 ) // [2:1] = D8,C8 +#define DEV_CTR ( 0b00 << 1 ) +#define DEV_SPFL ( 0b01 << 1 ) +#define DEV_SNAKE ( 0b10 << 1 ) +#define DEV_RSV2 ( 0b11 << 1 ) + +// FCRAM +#define FCRAM_RST P3.0 // B6 +#define FCRAM_RST_ast { P3.0 = 0; } +#define FCRAM_RST_neg { P3.0 = 1; } + +// CODEC +#define PM_IRQ_n P7.2 // A3 +// INTP6 + +// PM +#define PM_EXTDC_n_RAW P7.0 // B2 +// INTP7 +//#define BT_TEMP P15.0 // G3(a) +// ANI8 +//#define BT_DET P15.1 // H2(a) +// ANI9 +#define BT_DET_P P1.6 // D4 +#define BT_TEMP_P P1.7 // C4 + + +// SPFL̃At@XLCDŕKvȁ}15V̓dB +#define SPFL_LCD_AMOL_HV_CONT P20.2 // F2 + + +// [d(out) +// _łBӁB +#define BT_CHG_ENABLE() ( P4.3 = 0 ) // F6 +#define BT_CHG_DISABLE() ( P4.3 = 1 ) +#define BT_CHG_Ena_n ( P4.3 ) + +// [d(in) +#define BT_IN_CHG_n_RAW P5.1 // B1 +#define PM_BT_IN_CHG_n PM5.1 +#define PU_BT_IN_CHG_n PU5.1 + +#define SW_WIFI_n_RAW P7.4 // C3 +#define PM_SW_WIFI_n PM7.4 +// KR4 +#define SW_POW_n_RAW P7.3 // B3 +// KR3 +#define SW_SEL_n P2.3 // G5 +#define PM_SW_SEL_n PM2.3 +//#define VOL P2.7 // H4(a) +// ANI7 + +#define SW_HOME_n_JIKKI_RAW P20.4 // G2 +#define PM_SW_HOME_n_JIKKI PM20.4 +#define PU_SW_HOME_n_JIKKI PU20.4 + +// INTP22 +#define SW_HOME_n_TSBOARD_RAW P2.0 // TS}U[pull up(P2͓p.u.) // G6 +#define PM_SW_HOME_n_TSBOARD PM2.0 + +// WiFi +#define WL_TX P20.3 // INTP21 // F3 +#define PM_WL_TX PM20.3 // INTP21 + +//#define VOL_P P2.1 // E5 open +//#define VOL_N P2.2 // F5 V + +//#define LED_CAM P1.0 // TO02 // E4 +//#define LED_WIFI P1.1 // TO03 // E3 +//#define LED_NOTIFY P1.3 // TO05 // D3 +//#define LED_3D P5.2 // SLTO TO01 // A2 +//#define LED_POW2 P1.4 // TO06 ( ) // D2 +//#define LED_POW1 P1.5 // TO07 ( ) // D1 +//#define LED_CHARGE P2.4 // H5 + +// P5.3 ɉAP5.5, P140 P141 +// P140o͐pȂ̂... +#define I2C_PU_on() { P14 |= 0x03; PM5.3 = 0; PM3.3 = 0; } // P14[1:0] H6,H7 P5.3,3.3 A1,C5 +#define I2C_PU_off() { PM5.3 = 1; PM3.3 = 1; P14 &= ~0x03; } + +#define GYRO_ENABLE() P5.0 = 0 // C1 +#define GYRO_DISABLE() P5.0 = 1 + +//#define I2C_M_SDA P3.1 // SDA10 // C6 +//#define I2C_M_SCL P3.2 // SCL10 // B5 + +//#define I2C_0_SCL P6.0 // IIC_TWL SCL0 // A7 +//#define I2C_0_SDA P6.1 // SDA0 // A6 + +//#define I2C_1_SCL P20.0 // IIC CTR SCL1 // E1 +//#define I2C_1_SDA P20.1 // SDA1 // F1 + +//#define 32kHz_O P1.2 // RTCCL // E2 +//#define 32k_I1 P12.3 // XT1 // F8 +//#define 32k_I2 P12.4 // XT2 // G8 + +// @AJ@AV䔻ʁB +#define DIPSW ( P4 & 0b00000011 ) // mini cube & \tgEFAfBbvXCb` TOOL0,1B P4.0 L ӁI +#define DIPSW_CTR 0b11 // gp +#define DIPSW_ISDEV 0b00 // KuCBattGaugeŔ +#define DIPSW_TAIKENDAI 0b10 +#define DIPSW_TAIKENDAI_NBD 0b01 + + +#define SHELL_OPEN_RAW P7.1 // INTP5 ӂJ (‚L) // C2 + +#define ACC_VALID P20.5 // H3 +#define PM_ACC_VALID PM20.5 +#define ACCEL_INT1 P2.5 // F4 +#define PM_ACCEL_INT1 PM2.5 + + +#endif // _WIN32 + +// win32 sim‹Ƌ + +#define KR_SW_POW ( 1 << 3 ) +#define KR_SW_WIFI ( 1 << 4 ) + +/////////////////////////////////////////////////////////// +#ifdef _WDT_CHECK_ +# define INT_MSK0_WDTI 1<<15 +#else +# define INT_MSK0_WDTI 0 +#endif + +#define INT_MSK0_IIC_M_DMA 1<<12 +#define INT_MSK0_SHELL 1<<7 +#define INT_MSK0_EXTDC 1<<6 +//#define INT_MSK0_SLP 1<<2 +#define INT_MSK0_RSV ~( INT_MSK0_IIC_M_DMA | INT_MSK0_SHELL | INT_MSK0_EXTDC | INT_MSK0_WDTI ) + +#define INT_MSK1_KR 1<<11 +#define INT_MSK1_RTCINTVAL 1<<10 +#define INT_MSK1_RTCALARM 1<<9 +#define INT_MSK1_ADC 1<<8 +#define INT_MSK1_IIC_CTR 1<<3 +#define INT_MSK1_IIC_MCU 1<<0 +#define INT_MSK1_RSV ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL | INT_MSK1_RTCALARM | INT_MSK1_ADC \ + | INT_MSK1_IIC_CTR | INT_MSK1_IIC_MCU ) + +#define INT_MSK2_WIFI_TX_KE3 1<<4 +#define INT_MSK2L_RSV ~( INT_MSK2_WIFI_TX_KE3 ) + +#define INT_MSK2_IIC_TWL 1<<8 +#define INT_MSK2_WIFI_TX_BSR 1<<10 +#define INT_MSK2_CODEC_PMIRQ 1<<3 +#define INT_MSK2_RSV ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ ) + +#endif // dupe include guard diff --git a/tags/2.25_SDK6.0/util_funcs.c b/tags/2.25_SDK6.0/util_funcs.c new file mode 100644 index 0000000..2edea63 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/util_funcs.h b/tags/2.25_SDK6.0/util_funcs.h new file mode 100644 index 0000000..4229413 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/voltable.c b/tags/2.25_SDK6.0/voltable.c new file mode 100644 index 0000000..4d2e14a --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/voltable.h b/tags/2.25_SDK6.0/voltable.h new file mode 100644 index 0000000..6ff34ab --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/vreg_ctr.c b/tags/2.25_SDK6.0/vreg_ctr.c new file mode 100644 index 0000000..064f1ac --- /dev/null +++ b/tags/2.25_SDK6.0/vreg_ctr.c @@ -0,0 +1,627 @@ +/* ======================================================== + + 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 ++; + } + 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 ) + { + 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/tags/2.25_SDK6.0/vreg_ctr.h b/tags/2.25_SDK6.0/vreg_ctr.h new file mode 100644 index 0000000..00c2140 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/vreg_twl.c b/tags/2.25_SDK6.0/vreg_twl.c new file mode 100644 index 0000000..1cb1225 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/vreg_twl.h b/tags/2.25_SDK6.0/vreg_twl.h new file mode 100644 index 0000000..63cdd94 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/yav_mcu_bsr.plg b/tags/2.25_SDK6.0/yav_mcu_bsr.plg new file mode 100644 index 0000000..c881cb2 --- /dev/null +++ b/tags/2.25_SDK6.0/yav_mcu_bsr.plg @@ -0,0 +1,40 @@ +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 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 task_sys.c +task_sys.c(490) : CC78K0R warning W0401: Conversion may lose significant digits +task_sys.c(711) : CC78K0R warning W0401: Conversion may lose significant digits +task_sys.c(729) : 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\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) : 17 diff --git a/tags/2.25_SDK6.0/yav_mcu_bsr.pri b/tags/2.25_SDK6.0/yav_mcu_bsr.pri new file mode 100644 index 0000000..e3bffff --- /dev/null +++ b/tags/2.25_SDK6.0/yav_mcu_bsr.pri @@ -0,0 +1,1028 @@ +[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=ON +IRESET=OFF +WAIT=OFF +SysClock=None +SubClock=None +[Mapping] +Count=0 +[Main] +Geometry=132, 132, 1200, 858 +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\branches\2.25_SDK5.2a\ +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\branches\2.25_SDK5.2a\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\branches\2.25_SDK5.2a\ +Filter=Source +[Debugger Option] +Source Path="" +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=0, 0, 644, 1061 +Window=Normal +DispStart=25 +CaretPos=96,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=14, 5, 799, 1001 +Window=Normal +DispStart=289 +CaretPos=290,0 +Mode=Normal +DispFile=\\tsclient\C\78k_data\yav-mcu-basara\branches\2.25_SDK5.2a\task_sys.c +Accumulative=ON +[Assemble] +Geometry=0, 0, 0, 0 +Window=Hide +DispStart=847754240 +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=0 +FindEnd=0 +SaveRange=Screen +SaveStart= +SaveEnd= +[Memory] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Format=Hex +Mode=Byte +Endian=Source +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=Unsort +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=62 +Pickup=OFF +Name=Functional +Register Bank=0 +RP0=1 +RP1=1 +RP2=1 +RP3=1 +PC=1 +SP=1 +PSW=1 +ES=1 +CS=1 +[Event Manager] +Geometry=616, 1, 500, 200 +Window=Normal +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=1117, 3, 440, 300 +Window=Normal +Boundary=13762700 +0=.TDR01,P,S,A,+,1 +1=.TDR02,P,S,A,+,1 +2=.TDR03,P,S,A,+,1 +3=.TDR05,P,S,A,+,1 +4=.TDR06,P,S,A,+,1 +5=.TDR07,P,S,A,+,1 +Line=6 +[Quick Watch] +0=LED_duty_pow_blu,P,A,1 +1=LED_duty_WiFi,P,A,1 +2=TDR02,P,A,1 +3=TDR01,P,A,1 +4=TDR06,P,A,1 +5=TDR05,P,A,1 +6=TDR03,P,A,1 +7=TDR07,P,A,1 +8= +9= +10= +11= +12= +13= +14= +15= +[Software Break] +Geometry=839, 335, 500, 200 +Window=Normal +Width=150 30 200 100 +Count=0 +[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, 450, 400 +Window=Hide +[Console] +Geometry=0, 0, 0, 0 +Window=Hide diff --git a/tags/2.25_SDK6.0/yav_mcu_bsr.prj b/tags/2.25_SDK6.0/yav_mcu_bsr.prj new file mode 100644 index 0000000..a0ed540 --- /dev/null +++ b/tags/2.25_SDK6.0/yav_mcu_bsr.prj @@ -0,0 +1,1408 @@ +[ProjectManager] +Version=6.00 +Path=C:\78k_data\yav-mcu-basara\branches\2.25_SDK5.2a\ +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\branches\2.25_SDK5.2a\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=fsl_user.h +Include16=i2c_ctr.h +Include17=pm.h +Include18=rtc.h +Include19=reboot.h +Include20=magic.h +Include21=incs.h +Include22=i2c_twl.h +Include23=accero.h +Include24=pedometer.h +Include25=sw.h +Include26=adc.h +Include27=led.h +Include28=batt_params.h +Include29=pool.h +Include30=i2c_twl_defs.h +Include31=renge\renge_task_intval.h +Include32=self_flash.h +Include33=util_funcs.h +Include34=i2c_mcu_sub.h +Include35=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +Include36=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.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\branches\2.25_SDK5.2a\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/tags/2.25_SDK6.0/yav_mcu_bsr.prk b/tags/2.25_SDK6.0/yav_mcu_bsr.prk new file mode 100644 index 0000000..b44299b --- /dev/null +++ b/tags/2.25_SDK6.0/yav_mcu_bsr.prk @@ -0,0 +1,17 @@ +[ProjectManager] +FrameMax=0 +FrameX=464 +FrameY=31 +FrameCX=1391 +FrameCY=1046 +OpenFile1=ProjectWindow +PrjPos=0,0,706,0,291 +OpenFile2=config.h,0,323,22,1500,759,29,10,29,0 +OpenFile3=self_flash.c,0,75,75,1146,677,11,310,21,0 +OpenFile4=led.c,0,100,100,1171,702,35,299,5,0 +OpenFile5=task_sys.c,0,250,250,1321,852,0,626,0,0 +OpenFile6=OutputWindow +OutputPos=0,159,809,180,1136 +ActivePRJ=yav_mcu_bsr.prj +[ProjectWindow] +ProjectWindowDispType=0 diff --git a/tags/2.25_SDK6.0/yav_mcu_bsr.prw b/tags/2.25_SDK6.0/yav_mcu_bsr.prw new file mode 100644 index 0000000..7c0bbd6 --- /dev/null +++ b/tags/2.25_SDK6.0/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/tags/2.25_SDK6.0/yav_mcu_bsr.sdb b/tags/2.25_SDK6.0/yav_mcu_bsr.sdb new file mode 100644 index 0000000..a5f0e27 --- /dev/null +++ b/tags/2.25_SDK6.0/yav_mcu_bsr.sdb @@ -0,0 +1,325 @@ +[SdbInfo] +Ver=5 +[loader.c] +T=519ebc96 +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=519ebc9d +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=519c6423 +1=incs.h +2=rtc.h +3=pedometer.h +[main.c] +T=519c6425 +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=519ebf2e +1=magic.h +2=config.h +[WDT.c] +T=519c641f +1=incs_loader.h +[i2c_mcu.c] +T=519c641f +1=incs_loader.h +2=i2c_mcu.h +3=loader.h +4=util_funcs.h +5=i2c_mcu_sub.h +[i2c_twl.c] +T=519c6425 +1=incs_loader.h +2=i2c_twl_defs.h +3=i2c_twl.h +4=vreg_twl.h +5=WDT.h +[led.c] +T=519dabef +1=incs.h +2=led.h +[rtc.c] +T=519c6423 +1=incs.h +[vreg_ctr.c] +T=519c6425 +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=519c6426 +1=incs.h +2=jhl_defs.h +3=led.h +4=vreg_twl.h +5=adc.h +[adc.c] +T=519c641f +1=incs.h +2=adc.h +3=pm.h +4=led.h +5=vreg_twl.h +6=i2c_mcu.h +[renge\renge.c] +T=519c6420 +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=519c641f +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=519c6425 +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=519ebdb3 +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=519c6425 +1=incs_loader.h +2=renge\renge.h +3=pm.h +4=accero.h +[task_misc.c] +T=519eb2b2 +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=519ebf85 +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=519c6420 +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=519c641f +1=config.h +[task_status.c] +T=519c6425 +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=519c6425 +1=incs.h +2=led.h +3=vreg_twl.h +[led_pow.c] +T=519c6423 +1=incs.h +2=led.h +3=pm.h +[hal.c] +T=519ebc86 +1=incs_loader.h +[batt_params.c] +T=519ebc57 +1=jhl_defs.h +2=batt_params.h +[voltable.c] +T=519c641f +1=incs.h +[pedo_lpf_coeff.c] +T=519c6423 +1=incs.h +[kanaria.asm] +T=519c6425 +[kanaria_c.c] +T=519c6426 +1=incs.h +[get_ei.asm] +T=519c6425 +[util_funcs.c] +T=519c6426 +1=incs_loader.h +2=WDT.h +[i2c_mcu-sub.c] +T=519c6426 +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=519c6425 +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=519ebc75 +[jhl_defs.h] +T=519c6426 +[user_define.h] +T=519c6425 +[hal.h] +T=519c6425 +[bsr_system.h] +T=519ebdb3 +[renge\renge.h] +T=519c6420 +1=renge\renge_defs.h +2=renge\renge_task_immediate.h +[renge\renge_defs.h] +T=519eb62d +[renge\renge_task_immediate.h] +T=519c6420 +1=renge\renge_defs.h +[vreg_ctr.h] +T=519c6425 +1=config.h +[vreg_twl.h] +T=519c6426 +[loader.h] +T=519c6426 +[i2c_mcu.h] +T=519c641f +[WDT.h] +T=519c641f +[fsl_user.h] +T=519c641f +[i2c_ctr.h] +T=519c6423 +[pm.h] +T=519d9ec6 +[rtc.h] +T=519c6423 +[reboot.h] +T=519c641f +[magic.h] +T=519c6423 +[incs.h] +T=519c6425 +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=519c6425 +[accero.h] +T=519c641f +1=jhl_defs.h +2=pedometer.h +[pedometer.h] +T=519c6426 +[sw.h] +T=519c6426 +1=config.h +[adc.h] +T=519c641f +1=jhl_defs.h +[led.h] +T=519c6425 +[batt_params.h] +T=519c6425 +1=jhl_defs.h +[pool.h] +T=519c641f +1=pedometer.h +[i2c_twl_defs.h] +T=519c6420 +[renge\renge_task_intval.h] +T=519c6420 +1=renge\renge_defs.h +[self_flash.h] +T=519c6426 +[util_funcs.h] +T=519c641f +[i2c_mcu_sub.h] +T=519c6426 +[..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h] +T=49a3bd4e +[..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h] +T=45f12258 diff --git a/tags/2.25_SDK6.0/ベースからの変更.xls b/tags/2.25_SDK6.0/ベースからの変更.xls new file mode 100644 index 0000000000000000000000000000000000000000..5212dac6485080dca2bfd246e855585895ff82af GIT binary patch literal 26624 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 literal 0 HcmV?d00001 diff --git a/tags/2.25_SDK6.0/覚え書き.txt b/tags/2.25_SDK6.0/覚え書き.txt new file mode 100644 index 0000000..28269c4 --- /dev/null +++ b/tags/2.25_SDK6.0/覚え書き.txt @@ -0,0 +1,9 @@ +A܂Ƃ wiki ɏȂƂȂǁB + +2.2C +SNAKE Ή (vCg) + +2.2D +SNAKE system updater mcu vZX쐬Ɍ߁A +o[Wԍ̂݁A2.2D ɂȂĂ +