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

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

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

変換レポート -

+ +

+ 変換時間:
+

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

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

+ + +
+
diff --git a/snake_branches/info_blue_double/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif b/snake_branches/info_blue_double/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..17751cb2fd5c284dfe984adc4c769982f73a0a66 GIT binary patch literal 69 zcmZ?wbhEHb23ky~TYXIqG7FYlP literal 0 HcmV?d00001 diff --git a/snake_branches/info_blue_double/VCProj/bsr_trunk.ncb b/snake_branches/info_blue_double/VCProj/bsr_trunk.ncb new file mode 100644 index 0000000000000000000000000000000000000000..c3df73580a39448b36d235699ff9a4453c3fcdab GIT binary patch literal 912384 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℞nLY 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
wTg`ZFRO^ELFVrKO7g{37O%!P~hTrty{vBwlY!! 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 z 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 z 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%0D(6gCyK>?5sueXqnc&nY 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 BV|V}n literal 0 HcmV?d00001 diff --git a/snake_branches/info_blue_double/VCProj/bsr_trunk.opensdf b/snake_branches/info_blue_double/VCProj/bsr_trunk.opensdf new file mode 100644 index 0000000000000000000000000000000000000000..cdfe0d51c461f46c4d9794132cbb050a8794f64b GIT binary patch literal 30 bcmc~}FaknjAZB0)VsK?}VF+MwhKm6JIJg6E literal 0 HcmV?d00001 diff --git a/snake_branches/info_blue_double/VCProj/bsr_trunk.sdf b/snake_branches/info_blue_double/VCProj/bsr_trunk.sdf new file mode 100644 index 0000000000000000000000000000000000000000..d36dfaa10c2db0df650109974d1dc37db271252a GIT binary patch literal 1003520 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

`l@T` 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 literal 0 HcmV?d00001 diff --git a/snake_branches/info_blue_double/VCProj/bsr_trunk.sln b/snake_branches/info_blue_double/VCProj/bsr_trunk.sln new file mode 100644 index 0000000..520f84d --- /dev/null +++ b/snake_branches/info_blue_double/VCProj/bsr_trunk.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C++ Express 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bsr_trunk", "bsr_trunk.vcxproj", "{9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.Build.0 = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.ActiveCfg = Release|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/snake_branches/info_blue_double/VCProj/bsr_trunk.sln.old b/snake_branches/info_blue_double/VCProj/bsr_trunk.sln.old new file mode 100644 index 0000000..2881d87 --- /dev/null +++ b/snake_branches/info_blue_double/VCProj/bsr_trunk.sln.old @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bsr_trunk", "bsr_trunk.vcproj", "{9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.Build.0 = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.ActiveCfg = Release|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/snake_branches/info_blue_double/VCProj/bsr_trunk.suo b/snake_branches/info_blue_double/VCProj/bsr_trunk.suo new file mode 100644 index 0000000000000000000000000000000000000000..4de7601383a40392dd9adabbf023bc547432d259 GIT binary patch literal 72704 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 literal 0 HcmV?d00001 diff --git a/snake_branches/info_blue_double/VCProj/bsr_trunk.suo.old b/snake_branches/info_blue_double/VCProj/bsr_trunk.suo.old new file mode 100644 index 0000000000000000000000000000000000000000..63c7d4933d79ca0accc71ed0f4a53a79cefc3493 GIT binary patch literal 45056 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 literal 0 HcmV?d00001 diff --git a/snake_branches/info_blue_double/VCProj/bsr_trunk.vcproj b/snake_branches/info_blue_double/VCProj/bsr_trunk.vcproj new file mode 100644 index 0000000..1a6531b --- /dev/null +++ b/snake_branches/info_blue_double/VCProj/bsr_trunk.vcproj @@ -0,0 +1,594 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/snake_branches/info_blue_double/VCProj/bsr_trunk.vcproj.NCL.N2232.user b/snake_branches/info_blue_double/VCProj/bsr_trunk.vcproj.NCL.N2232.user new file mode 100644 index 0000000..257e4e7 --- /dev/null +++ b/snake_branches/info_blue_double/VCProj/bsr_trunk.vcproj.NCL.N2232.user @@ -0,0 +1,65 @@ + + + + + + + + + + + diff --git a/snake_branches/info_blue_double/VCProj/bsr_trunk.vcxproj b/snake_branches/info_blue_double/VCProj/bsr_trunk.vcxproj new file mode 100644 index 0000000..a4fc5a6 --- /dev/null +++ b/snake_branches/info_blue_double/VCProj/bsr_trunk.vcxproj @@ -0,0 +1,162 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2} + bsr_trunk + arr_trunk + + + + Application + MultiByte + true + + + Application + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + nmake -f yav_mcu_bsr.mak + + + + $(NMakePreprocessorDefinitions) + $(NMakeIncludeSearchPath) + $(NMakeForcedIncludes) + $(NMakeAssemblySearchPath) + $(NMakeForcedUsingAssemblies) + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r;$(IncludePath) + + + + MaxSpeed + true + MultiThreadedDLL + true + Level3 + ProgramDatabase + + + true + true + true + MachineX86 + + + + + _MBCS;%(PreprocessorDefinitions); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/snake_branches/info_blue_double/VCProj/bsr_trunk.vcxproj.filters b/snake_branches/info_blue_double/VCProj/bsr_trunk.vcxproj.filters new file mode 100644 index 0000000..d168232 --- /dev/null +++ b/snake_branches/info_blue_double/VCProj/bsr_trunk.vcxproj.filters @@ -0,0 +1,258 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + {4e2142a2-478d-4e47-ab3f-7ae7d1e531bd} + + + {3bd01c87-17d0-4cf4-93a8-fb6bde3060a4} + + + + + + ソース ファイル\renge + + + ソース ファイル\renge + + + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル\renge + + + ヘッダー ファイル\sim + + + ヘッダー ファイル\sim + + + ソース ファイル + + + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ソース ファイル\renge + + + ソース ファイル\renge + + + ソース ファイル\renge + + + ソース ファイル\renge + + + ヘッダー ファイル\sim + + + ヘッダー ファイル\sim + + + \ No newline at end of file diff --git a/snake_branches/info_blue_double/VCProj/bsr_trunk.vcxproj.user b/snake_branches/info_blue_double/VCProj/bsr_trunk.vcxproj.user new file mode 100644 index 0000000..695b5c7 --- /dev/null +++ b/snake_branches/info_blue_double/VCProj/bsr_trunk.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/snake_branches/info_blue_double/WDT.c b/snake_branches/info_blue_double/WDT.c new file mode 100644 index 0000000..ed3daf3 --- /dev/null +++ b/snake_branches/info_blue_double/WDT.c @@ -0,0 +1,12 @@ +/* ======================================================== + wdt + + $Id$ + ======================================================== */ +#include "incs_loader.h" + +/* + + gAwb_Ƀ}N̂݁B + +*/ diff --git a/snake_branches/info_blue_double/WDT.h b/snake_branches/info_blue_double/WDT.h new file mode 100644 index 0000000..2e28e9d --- /dev/null +++ b/snake_branches/info_blue_double/WDT.h @@ -0,0 +1,20 @@ +#ifndef _WDT_ +#define _WDT_ + + + +//========================================================= +#define WDT_RESTART_MAGIC 0xAC + + + +//========================================================= +// EHb`hbO^C}̃X^[g +// void WDT_Restart( void ); +#define WDT_Restart() WDTE = WDT_RESTART_MAGIC + +// KlȊOƗOŃZbg +#define mcu_wdt_reset WDTE = 0x0 + + +#endif diff --git a/snake_branches/info_blue_double/accero.c b/snake_branches/info_blue_double/accero.c new file mode 100644 index 0000000..aa584ec --- /dev/null +++ b/snake_branches/info_blue_double/accero.c @@ -0,0 +1,274 @@ +/* ======================================================== +@xZT֌W +Ef[^XVŃf[^zグ背WX^XVACPUɊ荞 +EtOĂΕJEg +ExZT荞݂^XNo^ĉBiI2C̋Ȃǂ̂Łj + + $Id: accero.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP +#pragma ROT +// rorb, rolb, rorw, rolw +#pragma MUL +#pragma BCD + +#endif + +#ifndef _WIN32 + +#pragma interrupt INTP23 intp23_ACC_ready RB3 // xZTAf[^ + +#endif + +#include "incs.h" +#include "accero.h" +#include "i2c_mcu.h" + + +#ifndef _WIN32 +#include +#endif +// ======================================================== +// WX^ +#define ACC_REG_WHOAMI 0x0F +#define ACC_REG_CTRL1 0x20 +#define ACC_REG_CTRL5 0x24 +#define ACC_REG_X 0x28 + +#define ACC_REG_FLG_BURST_ACCESS 0x80 + +// rbgʒu +#define ACC_bP_PM0 5 +#define ACC_bP_DR0 3 + +// rbgݒl +#define ACC_BITS_PM_PDN 0 +#define ACC_BITS_PM_NORM 1 +#define ACC_BITS_PM_LP0R5 2 +#define ACC_BITS_PM_LP1 3 +#define ACC_BITS_PM_LP2 4 +#define ACC_BITS_PM_LP5 5 +#define ACC_BITS_PM_LP10 6 + +#define ACC_BITS_DR_50Hz 0 +#define ACC_BITS_DR_100Hz 1 +#define ACC_BITS_DR_400Hz 2 +#define ACC_BITS_DR_1000Hz 3 + +#define ACC_BITS_ALL_AXIS_ON 7 + + +#define VREG_BITMASK_ACC_CONF_ACQ ( 1 << 0 ) +#define VREG_BITMASK_ACC_CONF_HOSU ( 1 << 1 ) + + + +// ======================================================== +#define ACC_RAW_DATA_SIZE 6 + + +// ======================================================== +static u8 acc_retry_count; // xZTǂݏoAG[ƂgCB񐔐 + + + +// ======================================================== +task_status tsk_soft_int( ); + + + +/********************************************//** +@E荞݂mFăf[^zグAWX^ɏo܂ + + E{ł΃R[obN֐o^Ă΂ƂȂ̂łA + I2CgpHƂlƎł͂܂łłȂ̂łB + + EvƂł + ***********************************************/ +task_status_immed tski_cbk_accero( ) +{ // i^jisro^܂ + u8 acc_dat_buff[ ACC_RAW_DATA_SIZE ]; + + // xZTf[^WX^ւ̔f + if( iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | ACC_REG_FLG_BURST_ACCESS ), ACC_RAW_DATA_SIZE, acc_dat_buff ) + != ERR_SUCCESS ) + { + // SLA NAK // + if( acc_retry_count < 4 ) + { + acc_retry_count ++; + // gC + return( TSKI_CONTINUE ); + } + else + { + // xZTُɂȂ̂Ŏ~߂ + vreg_stop_acc; + tski_acc_setup(); + vreg_set_acc_error; + return ( TSKI_FINISHED ); // ^XN̍폜͕Kv + } + } + else + { + // 펞pX // + DI_wt_chk(); + memcpy( &vreg_ctr[VREG_C_ACC_XL], acc_dat_buff, ACC_RAW_DATA_SIZE ); + EI(); + + acc_retry_count = 0; + // xXV荞 + if( is_acc_on && ( system_status.pwr_state == ON )) + { + set_irq( VREG_C_IRQ1, REG_BIT_ACC_DAT_RDY ); + // S~f[^̃Jǂ + if( ACC_VALID ) + { + u8 temp[ACC_RAW_DATA_SIZE]; + iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | ACC_REG_FLG_BURST_ACCESS ), ACC_RAW_DATA_SIZE, temp ); + } + } + if( (( system_status.pwr_state == ON )||( system_status.pwr_state == SLEEP )) + &&( is_pedo_on ) + ) + { + pedometer(); // v + } + } + return ( TSKI_FINISHED ); +} + + + + + +/********************************************//** +@xZT߃ANZX@[h + ***********************************************/ +task_status_immed tski_acc_read( ) +{ + vreg_ctr[VREG_C_ACC_W_BUF] = iic_mcu_read_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_R_ADRS] ); + set_irq( VREG_C_IRQ1, REG_BIT_ACC_ACK ); + return ( TSKI_FINISHED ); +} + + + +/********************************************//** +@xZT߃ANZX@Cg + ***********************************************/ +task_status_immed tski_acc_write( ) +{ + iic_mcu_write_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_W_ADRS], vreg_ctr[VREG_C_ACC_W_BUF] ); + set_irq( VREG_C_IRQ1, REG_BIT_ACC_ACK ); + return ( TSKI_FINISHED ); +} + + + +/********************************************//** +@xZT̐ݒ + ***********************************************/ +task_status_immed tski_acc_setup( ) +{ + + // x on/offݒ肷 + u8 str_send_buf[4]; + + str_send_buf[1] = 0x00; // ctrl2 HPF:normal, filterd, HPF for IRQ : dis/dis, HPF coeff:norm + + // sŝ߁ATSƂȊOiHႢjʂĐݒ + if( system_status.model == MODEL_TS_BOARD ) + { + str_send_buf[2] = bits8(0,0,0,0, 0,0,1,0); + } + else + { + str_send_buf[2] = bits8(0,0,0,1, 0,0,0,0); + } + str_send_buf[3] = 0x80; // ctrl3 block update:enable, MSB first, scale: +-2G(default), selftest: dis + + { + u8 acc_setting_sent = ( vreg_ctr[VREG_C_ACC_CONFIG] & ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ )); + + if( acc_setting_sent == 0 ) + { + // S~ + PMK23 = 1; + str_send_buf[0] = + ( ACC_BITS_PM_PDN << ACC_bP_PM0 | 0 << ACC_bP_DR0 | ACC_BITS_ALL_AXIS_ON ); + } + else + { + // on 100Hz 荞 + PMK23 = 0; + str_send_buf[0] = + ( ACC_BITS_PM_NORM << ACC_bP_PM0 + | ACC_BITS_DR_100Hz << ACC_bP_DR0 + | ACC_BITS_ALL_AXIS_ON ); + } + + // ݌AʐMłtOXV + if( iic_mcu_write( IIC_SLA_ACCEL, ( ACC_REG_CTRL1 | ACC_REG_FLG_BURST_ACCESS ), 4, str_send_buf ) == I2C_ERR_NOSLAVE ) + { + // ZTB^XN͍폜ȂĂ͂ȂȂB + vreg_set_acc_error; + return ( TSKI_FINISHED ); + // ܂ + } + // else + + // ZTݒ萬 pX + vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_ACCERO_ERR; + acc_retry_count = 0; + + // ÕS~L΃Jǂ + if( ACC_VALID ) + { + if( system_status.pwr_state == ON ) + { + u8 temp[ACC_RAW_DATA_SIZE]; + iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | ACC_REG_FLG_BURST_ACCESS ), 6, temp ); + } + } + + // ZTɏɂĂŒSoC܂Ă܂Ȃ + DI_wt_chk(); + if( acc_setting_sent != ( vreg_ctr[VREG_C_ACC_CONFIG] & ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ))) + { + // DIԂ̂܂܋A + return ( TSKI_CONTINUE ); // ƊԂčēxɂ // Ƃ悢H + } + } + + // DIԂ̂܂܋A + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + xZT荞 + + I2CgpȂ̂ŁAǂݏo^XN̓o^ŝ + ***********************************************/ +__interrupt void intp23_ACC_ready( ) +{ + EI(); + if( ( vreg_ctr[VREG_C_ACC_CONFIG] & ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ) ) != 0x00 ) + { + // xZT on + if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) ) + { +// if( ACC_VALID ) // mFsv + { + renge_task_immed_add( tski_cbk_accero ); + } + } + } +} diff --git a/snake_branches/info_blue_double/accero.h b/snake_branches/info_blue_double/accero.h new file mode 100644 index 0000000..fbf80d6 --- /dev/null +++ b/snake_branches/info_blue_double/accero.h @@ -0,0 +1,14 @@ +#ifndef _accero_ +#define _accero_ + + +#include "jhl_defs.h" +#include "pedometer.h" + + +/////////////////////////////////////////////////////////// +task_status_immed tski_cbk_accero( ); +task_status_immed tski_acc_setup( ); + + +#endif diff --git a/snake_branches/info_blue_double/adc.c b/snake_branches/info_blue_double/adc.c new file mode 100644 index 0000000..94920c7 --- /dev/null +++ b/snake_branches/info_blue_double/adc.c @@ -0,0 +1,475 @@ +/* ======================================================== + adc.c + + cJZ + nintendo + '09 Apr + $Id$ + ======================================================== */ +#include "incs.h" +#include "adc.h" +#include "pm.h" + +#include "led.h" + +#include "vreg_twl.h" +#include "i2c_mcu.h" + + +// ===================================================== // +static bit adc_updated; +static bit vol_changed_by_ctr; +bit vol_changed_by_twl; +static u8 vol_old; + +static u8 adc_raw_vol; +static u8 adc_raw_dep; + +u8 vol_polling; +u8 vol_level_twl; + +extern const u8 slider_to_codec[]; + + + +// ===================================================== // +typedef struct filter_work +{ + u8* value_used; + s8 diffs; // KIKAN̕΂ + s8 kikan; + u8 large_diff_count; +}filter_work; + + +static filter_work work_vr_3d = { + &vreg_ctr[ VREG_C_3D ] + // ͕̂slł悵Bconstɂ_ + }; + + +static u8 vol_data_ctr; +static u8 vol_data_ctr_tmp; +static filter_work work_vr_vol = { + &vol_data_ctr_tmp + // ͕̂slł悵Bconstɂ_ + }; + + +// twl 8iKvol̃jAl̋E +/* + twl32 -> 8 e[u + 0`1,`4,`8,`13,`18,`23,`28,31 + */ +static const u8 TWL_VOL_BOUNDARY[] = { + 1, 4, 8, 13, 18, 23, 28, 31 +}; + +// ===================================================== // +extern void nop8(); +static void adc_filter( u8 new_val, filter_work* work ); +static u8 adc_scaling( u8 ); +static void update_twl_vol( u8 sent_index ); + + + +// ===================================================== // +#define INTERVAL_TSK_ADC 15 + + + +/********************************************//** + ADCݒƁAJn + + ȉ̃s͎ɂőEĎ܂B + - BT_TEMP,_P + - ADIN1 + - VOL + + ***********************************************/ +void tsk_adc( ) +{ + if( adc_updated ) + { + adc_updated = false; + + // 3D ///////////////////////////////////////// + vreg_ctr[ VREG_C_3D ] = adc_raw_dep; // l + + // Volume ///////////////////////////////////// + { + vreg_ctr[ VREG_C_VOL_ADC_RAW ] = adc_raw_vol; + + adc_filter( adc_scaling( adc_raw_vol ), &work_vr_vol ); // ʂ*work_vr_volwvol_data_ctr ǂ݂ɂ... + vol_data_ctr = vol_data_ctr_tmp / 4; + + if( vol_old != vol_data_ctr ) + { + vol_changed_by_ctr = true; + vol_old = vol_data_ctr; + vol_polling = 3; +// renge_task_immed_add( tski_vol_update ); œo^ + } + } + + // obe /////////////////////////// + /* Ă΂܂ */ + } + + // YꂪƂȂ̂Ń|[O orz + if( vol_polling < 5 ) + { + renge_task_immed_add( tski_vol_update ); + vol_polling = (u8)(200 / SYS_INTERVAL_TICK) + 5; // 5/sec + } + vol_polling --; + + + ADCEN = 1; + ADM = bits8(0,0,0,0, 1,0,1,1); // ZNg[hAAfCLK/6 // + + ADPC = 0x06; // ADC|[g̃ZNg + ADS = ADC_SEL_3D; + nop8(); + ADCS = 1; // ADJnB // ܂Ł@@܂ł1us=8clkȏJ + + ADIF = 0; + ADMK = 0; +} + + + +/********************************************//** + vol݂̃XC_̈ʒuɋXV + ***********************************************/ +void vol_reset() +{ + vol_old = vol_data_ctr; + vreg_ctr[ VREG_C_SND_VOL ] = vol_data_ctr; // 64i +} + + +/********************************************//** +@VolXV܂B + + @Ȏɓo^܂B + + - [U[VolXC_𓮂 + - HorizonɋXVwꂽ@icodecZbgj + - TWLAvVol + ***********************************************/ +task_status_immed tski_vol_update() +{ + static u8 sent_index, sent_index_twl; + static bit last_modifyer_is_twl; // false = ctr + + if( !( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP )){ + return( TSKI_FINISHED ); + } + + // ǂ̉ʂɂ́H // + if( vol_changed_by_ctr ) + { + // XC_ + vol_changed_by_ctr = false; + last_modifyer_is_twl = false; + sent_index = vol_data_ctr; + } + else if( vol_changed_by_twl ) + { + // TWLAv + vol_changed_by_twl = false; + last_modifyer_is_twl = true; + if( vreg_twl[ REG_TWL_INT_ADRS_VOL ] == 0 ) + { + sent_index_twl = 0; + } + else + { + sent_index_twl = vreg_twl[ REG_TWL_INT_ADRS_VOL ] *2 +1; + } + sent_index = sent_index_twl; + } + else + { + // force_slider0ɂƂ & ܂Ƃ + // XC_TWL̍ŌɃZbgZbg + if( last_modifyer_is_twl ) + { + sent_index = sent_index_twl; + } + else + { + sent_index = vol_data_ctr; + } + } + + // WX^̍XV // + vreg_ctr[ VREG_C_SND_VOL ] = sent_index; + + // twlXV + update_twl_vol( sent_index ); + + // codecɓ` + /// lł + iic_mcu_write_a_byte_codec( CODEC_REG_VOL, slider_to_codec[ sent_index ] ); + + // set_irq( VREG_C_IRQ0, REG_BIT_VR_SNDVOL_CHANGE ); // 荞ݔp~ + return( TSKI_FINISHED ); +} + + +/********************************************//** + TWL ։ʂʒmB + + iKႤ̂ŁÃPAs + ***********************************************/ +static void update_twl_vol( u8 sent_index ) +{ + // XP[O + if( sent_index == 0 ) + { + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = 0; + } + else if( sent_index <= 4 ) + { + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = 2; // P̓~bVOŐ + } + else + { + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = sent_index/2 ; + } + + // 8iK̃xB@荞݂̂ɕKv + { + static u8 vol_twl_old; + + if( vol_twl_old != vreg_twl[ REG_TWL_INT_ADRS_VOL ] ) + { + // 8ixɕϊ + u8 new_level = 31; + u8 i; + + vol_twl_old = vreg_twl[ REG_TWL_INT_ADRS_VOL ]; + + for( i=0; i<=7; i++ ) + { + if( vreg_twl[ REG_TWL_INT_ADRS_VOL ] <= TWL_VOL_BOUNDARY[ i ] ) + { + new_level = i; + break; + } + } + vol_level_twl = new_level; + } + } +} + + + +/********************************************//** +@ADC isr + +@}`vNT̏Ԃ`FbNĂׂ֓]A + +@OŎ̃`lN + +@@ʂI~߂ + ***********************************************/ +__interrupt void int_adc( ) +{ + volatile u8 adc_data = ADCRH; + + switch ( ADS ) + { +/* + case ( ADC_SEL_AMB_BRIT ): + // ‹邳 // + vreg_ctr[ VREG_C_AMBIENT_BRIGHTNESS ] = adc_data; + break; +*/ + + case ( ADC_SEL_3D ): + // 3D{[ // + EI(); + adc_raw_dep = adc_data; + break; + + case ( ADC_SEL_VOL ): + // ʃXC_ // + EI(); + if( system_status.model == MODEL_TS_BOARD ) + { + adc_raw_vol = adc_data; + } + else + { + adc_raw_vol = 255 - adc_data; + } + + break; + + case ( ADC_SEL_BATT_TEMP ): + // obex // + EI(); +#ifdef _ENABLE_HAL_ + if( vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] == 0xFF ) // HAL +#else + if( 1 ) +#endif + { + raw_adc_temperature = adc_data; + } + else + { + raw_adc_temperature = vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ]; + } + + if(// (( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR ) == 0 ) && + (( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP ) + ) + ) + { + renge_task_immed_add( tski_BT_temp_update ); + } + break; + +/* Ă΂܂ + case ( ADC_SEL_BATT_DET ): + // obe[J[ // + break; +*/ + } + +// Ƃ܂Ƃȏ肻 + if( ADS < ADC_SEL_BATT_DET ) + { + ADS += 1; // ̃`l + } + else + { + ADCEN = 0; // ~߂Ă܂ + adc_updated = true; + } + ADIF = 0; // ȂƁAÕ`l̃f[^̊ŒɊ荞މ”\ +} + + + +/********************************************//** + adcWX^ǂݏoÂ܂ܕԒlɂB + + tsk_adcƋ邱ƂlĂ܂B + ***********************************************/ +u8 get_adc( u8 ch ) +{ + u8 temp; + + ADMK = 1; + ADIF = 0; + + ADCEN = 1; + ADM = bits8(0,0,0,0, 1,0,1,1); // ZNg[hAAfCLK/6 ///火 + + ADPC = 0x06; // ADC|[g̃ZNg + ADS = ch; + + nop8(); + + ADCS = 1; // ADJnB /// ܂Ł@ɁA1usȏJ + + ADIF = 0; + while( ADIF == 0 ){;} + temp = ADCRH; + ADCEN = 0; + + ADMK = 0; + return ( temp ); +} + + + + + +/********************************************//** + VR̉“͈͂lăXP[O + + Volp@g񂷂Ȃ炻̂Ƃǂɂ + ***********************************************/ +static u8 adc_scaling( u8 orig_val ) +{ + u16 temp; + + if( orig_val <= vreg_ctr[ VREG_C_VOL_CAL_MIN ] ) + { + return( 0 ); + } + if( orig_val >= vreg_ctr[ VREG_C_VOL_CAL_MAX ] ) + { + return( 255 ); + } + + temp = (u16)(( orig_val - vreg_ctr[ VREG_C_VOL_CAL_MIN ] ) * 256 ) / ( vreg_ctr[ VREG_C_VOL_CAL_MAX ] - vreg_ctr[ VREG_C_VOL_CAL_MIN ] ); + if( temp > 255 ) + { + temp = 255; + } + + return( (u8)( temp & 0xFF ) ); +} + + + + +/********************************************//** + qXeVX V2 + + ľܓIȓ܂ + ***********************************************/ +#define KIKAN 16 +static void adc_filter( u8 new_val, filter_work *work ) +{ + if( abs( new_val - *( work -> value_used )) > 2 ) + { + // 傫ꂽ + work -> large_diff_count ++; + if( work -> large_diff_count > 16 ) + { + *( work -> value_used ) = new_val; + work -> diffs = 0; + work -> kikan = KIKAN; + } + } + else + { + work -> large_diff_count = 0; + // ߏ̒lłAԂłς΂Ă炻Ɋ񂹂 + if( *( work -> value_used ) < new_val ) + { + work -> diffs ++; + } + else if( *( work -> value_used ) > new_val ) + { + work -> diffs --; + } + + if( --( work -> kikan ) == 0 ) + { + if( ( work -> diffs ) == KIKAN ) +// if( ( work -> diffs ) > (s8)( KIKAN * 0.8 ) ) + { + *( work -> value_used ) = *( work -> value_used ) + 1; + } + else if( ( work -> diffs ) == ( -1 * KIKAN ) ) +// else if( ( work -> diffs ) < (s8)( -1 * KIKAN * 0.8 ) ) + { + *( work -> value_used ) = *( work -> value_used ) - 1; + } + work -> diffs = 0; + work -> kikan = KIKAN; + } + } +} + diff --git a/snake_branches/info_blue_double/adc.h b/snake_branches/info_blue_double/adc.h new file mode 100644 index 0000000..6f4ad04 --- /dev/null +++ b/snake_branches/info_blue_double/adc.h @@ -0,0 +1,48 @@ +#ifndef __adc__ +#define __adc__ + +#include "jhl_defs.h" + +/////////////////////////////////////// +// ANI2 P22 +#define ADC_SEL_AMB_BRIT 0x02 + +/* +// ANI3 P23 +#define ADC_SEL_GYRO_YAW 0x03 +// ANI4 P24 +#define ADC_SEL_GYRO_PITCH 0x04 +// ANI5 P25 +#define ADC_SEL_GYRO_ROLL 0x05 +*/ + +// ANI6 P26 +#define ADC_SEL_3D 0x06 +// ANI7 P27 +#define ADC_SEL_VOL 0x07 + +// ANI8 P150 +#define ADC_SEL_BATT_TEMP 0x08 +// ANI9 P151 +#define ADC_SEL_BATT_DET 0x09 + + + +/////////////////////////////////////// +#define CODEC_REG_VOL 0x13 + + + +/////////////////////////////////////// +extern u8 vol_polling; +extern u8 vol_level_twl; + + + +/////////////////////////////////////// +u8 get_adc( u8 ch ); +void vol_reset(); + + + +#endif diff --git a/snake_branches/info_blue_double/batt_params.c b/snake_branches/info_blue_double/batt_params.c new file mode 100644 index 0000000..a863711 --- /dev/null +++ b/snake_branches/info_blue_double/batt_params.c @@ -0,0 +1,130 @@ +/* ======================================================== + eЃobe[p[^ + $Id: asdf$ + ======================================================== */ +#include "jhl_defs.h" + +#include "batt_params.h" + + +const bt_param_ bt_param[ /*_BT_PARAM_NUM_*/ ] = // drg񂷂̂ f~drp[^ +{ + // ctr //////////////////////////////////////////////// + // BT_PARAM_CTR_MAXELL + { + { + 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, + 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10, + 0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0, + 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10, + 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30, + 0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70, + 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0, + 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00 + }, + 2, // 2 = 19 bit mode + { 92, (u8)(-256* 0.79), (u8)(-256* 4.35) }, // @(u8)LXǧp[^̂܂܂̕ + 0xD800, // VXeƂĂ͗ǍDȓ + { 0xEA, 0xE8 } + }, + + // BT_PARAM_CTR_PANA + { + { + 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, + 0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10, + 0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50, + 0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00, + 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, + 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 + }, + 1, + { 171, (u8)(-256* 1.00), (u8)(-256* 2.60) }, // @(u8)LXǧp[^̂܂܂̕ + 0xDA20, // VXeƂĂ͗ǍDȓ + { 0x69, 0x67 }, + }, + + // SPFL /////////////////////////////////////////////// + // BT_PARAM_SPFL_MAXELL + { + { + 0xA1, 0x20, 0xB7, 0x50, 0xB9, 0xD0, 0xBB, 0x00, + 0xBC, 0x30, 0xBC, 0x60, 0xBC, 0xA0, 0xBD, 0x10, + 0xBD, 0xC0, 0xBE, 0x70, 0xBF, 0xD0, 0xC2, 0xA0, + 0xC4, 0x00, 0xC8, 0x50, 0xCC, 0x80, 0xD0, 0xB0, + 0x01, 0xA0, 0x25, 0x10, 0x18, 0xB0, 0x17, 0xC0, + 0x95, 0x20, 0x6F, 0xE0, 0x7C, 0x60, 0x35, 0x10, + 0x35, 0x00, 0x37, 0xF0, 0x16, 0xF0, 0x1C, 0xA0, + 0x17, 0x30, 0x11, 0xD0, 0x11, 0xF0, 0x11, 0xF0 + }, + 2, + { 94, (-256* 0.35), (-256* 3.85) }, + 0xDAB0, + { 0xF5, 0xF3 } + }, + + // BT_PARAM_SPFL_PANA + { + { + 0x9C, 0xF0, 0xAD, 0x50, 0xAF, 0xB0, 0xB3, 0x00, + 0xB3, 0xE0, 0XB5, 0x60, 0XB6, 0x70, 0xB7, 0xA0, + 0xBA, 0x00, 0xBC, 0x00, 0xBE, 0x90, 0xC1, 0x60, + 0xC4, 0x00, 0xC7, 0x00, 0xCC, 0xA0, 0xD0, 0xA0, + 0x02, 0x00, 0x19, 0x10, 0x12, 0x00, 0x48, 0x10, + 0x25, 0x10, 0x41, 0xF0, 0x2F, 0xA0, 0x13, 0xF0, + 0x1C, 0xD0, 0x10, 0xD0, 0x0F, 0xA0, 0x11, 0x00, + 0x10, 0xE0, 0x0C, 0x10, 0x0C, 0x00, 0x0C, 0x00 + }, + 2, + { 113, (-256* 0.30), (-256* 2.25) }, + 0xDAA0, + { 0xE7, 0xE5 }, + }, + + // SNAKE ///////////////////////////////////////////// + // BT_PARAM_SNAKE_MAXELL + { + { + 0x9D, 0x80, 0xB7, 0xB0, 0xB8, 0xA0, 0xB9, 0xA0, + 0xBB, 0x40, 0xBC, 0x50, 0xBC, 0xA0, 0xBD, 0x00, + 0xBD, 0x90, 0xBF, 0x30, 0xC0, 0xE0, 0xC3, 0x30, + 0xC5, 0x40, 0xC7, 0x50, 0xCD, 0x40, 0xD0, 0xA0, + 0x01, 0x90, 0x35, 0x10, 0x2F, 0x30, 0x11, 0x00, + 0x29, 0x40, 0x88, 0x50, 0x71, 0xA0, 0x5F, 0xE0, + 0x32, 0xD0, 0x1C, 0xF0, 0x14, 0xF0, 0x1A, 0x80, + 0x1A, 0x80, 0x11, 0x10, 0x12, 0x00, 0x12, 0x00 + }, + 2, + { 86, (-256* 0.6), (-256* 3.675) }, // rcomp, r-hot, r-cold + 0xDAA0, // ocv + { 0xF5, 0xF3 } // compare max, min + }, + + // bt_PARAM_SNAKE_PANA + { + { + 0x9D, 0xA0, 0xA8, 0xF0, 0xAD, 0x90, 0xAF, 0x00, + 0xB3, 0x00, 0xB3, 0xE0, 0xB4, 0xA0, 0xB5, 0x40, + 0xB6, 0x30, 0xB7, 0xE0, 0xB8, 0xC0, 0xBE, 0x70, + 0xC1, 0x40, 0xC4, 0x20, 0xC9, 0xA0, 0xD0, 0x30, + 0x01, 0x10, 0x06, 0x00, 0x2C, 0x20, 0x0D, 0xA0, + 0x37, 0x00, 0x37, 0x30, 0x47, 0xF0, 0x28, 0xF0, + 0x25, 0xF0, 0x37, 0x30, 0x10, 0xF0, 0x14, 0xF0, + 0x0F, 0x70, 0x0D, 0x00, 0x0D, 0x00, 0x0D, 0x00, + }, + 2, + { 106, (-256* 0.925), (-256* 2.3) }, + 0xDA30, // = 55856 + { 0xE9, 0xE7 }, + } + + + // FLOWER ///////////////////////////////////////////// + // BCTR̃obe[gB + + // CLOSER ///////////////////////////////////////////// + // BSPFL̃obe[gB +}; + diff --git a/snake_branches/info_blue_double/batt_params.h b/snake_branches/info_blue_double/batt_params.h new file mode 100644 index 0000000..264bcb7 --- /dev/null +++ b/snake_branches/info_blue_double/batt_params.h @@ -0,0 +1,56 @@ +#ifndef _bt_params_h_ +#define _bt_params_h_ + +// $Id: asdf$ + +#include "jhl_defs.h" +/* + dr CTR | SPFL | YBS + 0 ID = 0 maxell + 120 1 + 360 2 + 750 @ 3 + 1.3k@ 4 + 2.7k 5 pana + 8.2k@ 6 +*/ + + +typedef enum +{ + BT_PARAM_CTR_MAXELL = 0, + BT_PARAM_CTR_PANA, + BT_PARAM_SPFL_MAXELL, + BT_PARAM_SPFL_PANA, + BT_PARAM_SNAKE_MAXELL, + BT_PARAM_SNAKE_PANA, + BT_PARAM_FLOWER_MAXELL, + BT_PARAM_FLOWER_PANA, + BT_PARAM_CLOSER_MAXELL, + BT_PARAM_CLOSER_PANA, + _BT_PARAM_NUM_ +} BT_TYPE; + +typedef struct +{ + u8 rcomp; + s16 up,down; +} rcomp_; + +typedef struct +{ + u8 hi; + u8 low; +} verify_; + +typedef struct +{ + u8 mg_param[64]; + u8 v_scale; + rcomp_ rcomp; + u16 ocv; + verify_ verify; +} bt_param_; + + +#endif diff --git a/snake_branches/info_blue_double/bsr.hex b/snake_branches/info_blue_double/bsr.hex new file mode 100644 index 0000000..554bc19 --- /dev/null +++ b/snake_branches/info_blue_double/bsr.hex @@ -0,0 +1,1031 @@ +:02000000650D8C +:0400100055495749AE +:02001C00034B94 +:02002400AA4BE5 +:02002A00F54B94 +:08003400224DC54C1E4D634F27 +:02004A00594912 +:02005A009349C8 +:02006200214F2C +:06008000B64DEF4D394EB4 +:0400C0007EFBFF04C0 +:0A00C4001B339499E033F240BFAA09 +:1000CE00C7C1FBF8FFCEABACC736F00071F4C6610A +:1000DE00D8710006F98EA89C018C015C10D1DD0A46 +:1000EE007110A6FB710006F9EF0B8C015C80D161DB +:1000FE00E8710006F98F06F931030EF6B1BBF66111 +:10010E004900DD05618900EFF5FD0202FD3101FDBB +:10011E008901FD0C0AFD4309FDDD30FD142EEFA50E +:10012E00C0C6D7C7360000674C09DE3F318E04F6D5 +:10013E000FC1317B9EFDC411897267318E04F64F5B +:10014E0014896142DF03F6EF01E660610667318EC6 +:10015E00124900207267318E04F64F14896142DF16 +:10016E0003F6EF01E660610687EFBC40F84F3A6197 +:10017E00E88666D161E8FDB006C6D751065B0C3144 +:10018E001A9F08F94008F901DF084008F904E661F2 +:10019E00E8F6D508F9DF06710009F9EF04710809D0 +:1001AE00F98F09F9310505CD3707EF03CD3705D99D +:1001BE0008F9FD912A8F06F95CE39F06F951035B5E +:1001CE0004318EE7240000DD1023DD0823DF0E71DD +:1001DE002006F9D7713006F9D7714006F9D7717B31 +:1001EE00FACEA010CEA180E5F300000000CEA40848 +:1001FE00F5AAFFD78F06F9310508CD0003CD030F01 +:10020E00EF08CD030EF690BFB401CD0408CD05085E +:10021E00F521FFCE22E9CE23F8CE24F3CE25FACE59 +:10022E0026FCCE275FCE2EFCCF1105F8CF1205117E +:10023E00CF350002CF370019CF530006CBEEFEFFAD +:10024E00CE3831CE3970CF38050A308700BF18014D +:10025E00BF1A01BF1C01BF1E01D7D7C7F616FD95E9 +:10026E0004717BFA31329708713297717AFAEF0C7A +:10027E00717AFAA7F647DFE95203EF01F2C6D7C744 +:10028E00C1C1FBF8FF17A1C1E0C18C0A70C18C027D +:10029E0070FDAE021006629D548C01721004C6D71A +:1002AE00C7C1FBF8FFFD6902D2DD045203EF698B73 +:1002BE0070FDE203D2DD077133975202EF5A8C08BC +:1002CE0070FDFE03FD49048B6C0170FDFE033004CE +:1002DE0000BF2401301740BF1C01300400BF2201B3 +:1002EE008C0A91DF04F6BF2A01710BE2CE44FF3176 +:1002FE0082E202EFFAAC0C148E449961790C6169BA +:10030E000A8C0AD1DFDA8B4CA461F8FD4349FD72E9 +:10031E0004710BE2713397F2C0C6D7C7C1FBF8FF69 +:10032E00FD6902D2DD045203EF25710AE68B70FDE2 +:10033E00E203D2DD077133975202EF138C0870FD82 +:10034E00FE038C0A70FDFE03FD7204713397F2C03A +:10035E00C6D7C7C1FBF8FFFD6902D2DD045203EF19 +:10036E0070710AE6710BE28B70FDE203D2DD07714C +:10037E0033975202EF5B710BE231229744C734225E +:10038E00FBAC0C1652048B99A5A792DFF9C68B9D78 +:10039E00518C089D528C0A9D533184BD02EFFA7127 +:1003AE007ABDCEB144CBB422FB8C0A318EBEB8CE10 +:1003BE00BB48714BE1714BE5710ABD8C089E44EF51 +:1003CE000F710BE68C089E448C0A9D50AC0CBD4EF2 +:1003DE00F2C0C6D7C716FD2104AF0401BF0C01172A +:1003EE00FDFE03D2DD07FD72045202EF01F2C6D705 +:1003FE00C716710AE6710BE2669E443182E202EF85 +:10040E00FAF6420401DD09AF0401BF0C01E2EF016F +:10041E00F2C6D7AF2801085CFB08BF2801FD6802B1 +:10042E00AF28015CFBBF2801300400BF2A01301742 +:10043E0080BF1C01300400BF2201D7AF2401086C1D +:10044E000408BF2401AF28016C0F086C0B08BF28ED +:10045E0001FD6802AF2A01085CFB08BF2A01FD6896 +:10046E0002ED2104300400BF2401F6BF2A01300B37 +:10047E000BBF2801FD6802300B0FBF2801FD68027B +:10048E00300F0FBF2801D731449701D77132976AC9 +:10049E000E03713B25713B23E0FD1F0A7120F00016 +:1004AE00FD6802F6BF26015024BF1401CB44001490 +:1004BE00300F0FBF2801712397710BE2710AE6FD11 +:1004CE002104CE44FF3182E202EFFAFD7204AF0442 +:1004DE0001BF0C01713397714297D731349702EFF8 +:1004EE00FAFD4904713A25713A235A0EFC7128F02F +:1004FE0000714397D77140F00071783002713AE67F +:10050E00713BE2713BEA713BEE5A06FCCF34024A74 +:10051E00E552FF711A52710A527148300271303031 +:10052E000271203002CF330209CF32020B7130310B +:10053E000271203102713BE6717030028E265CFC36 +:10054E009E2671603002D7717830027148F000D764 +:10055E00C72008FBF8FFFDAB085014C15008FDDDA5 +:10056E0007C0CC07048C074C14DE0C8C07318EFDB3 +:10057E00470A615907EFEECC07048C074C1461C88B +:10058E00ED4C06CC06008C064C0461C8ED2B0630F3 +:10059E000AF9BC02F6BBCEABAC31B2D109C73641BB +:1005AE00057184C6DEF3F1C73641057184C661DC80 +:1005BE009C05713BD1AC02148F40059971505005CA +:1005CE00617902617900F0E1614900DD09C73641C8 +:1005DE00057184C6DEC3F1C73641057184C661DC80 +:1005EE000E059C055040C18C07318E31AD128C0624 +:1005FE00318E318D03BDD831FFBDDADADAADD8FDDB +:10060E00130DC0D2DD0C5008C15014FDDD07C0FD26 +:10061E00D00B8C05D1DF06615906ED94058C0731A0 +:10062E008EFD4B0AD2DD0C5008C15014FDDD07C003 +:10063E00FDD00B8C05D1DF06615907ED8805716081 +:10064E005005CC0400CC05008C054C09DE2B8C0526 +:10065E00318E04F61FC1317B9EFDC41189728C054B +:10066E00318E04F64F14896142DF03F6EF01E66026 +:10067E000E049C04615905EFCF41001140F81F3A5A +:10068E0061E86159048C04D1DF08FDD10BFDE30C48 +:10069E00EF0C5008C15014FDDD07C0FDD00B100843 +:1006AE00C6D7C72004FBF8FF712B24CC0100F6BC83 +:1006BE0002AC02440900DE3EAC0204F60F14410007 +:1006CE00118972AC020C5014896142DF03F6EF01FE +:1006DE00E6600E019C01AC021249005072AC02049D +:1006EE00F67F14896142DF03F6EF01E6600E019C8E +:1006FE0001617902EFBB40F67FFF61F86159018C11 +:10070E0001D161F8EDA907CC0100717AFAFD9504CB +:10071E00711300711B20710303710205E0C15003B8 +:10072E00FDAA2CC05013FD1F0AD83BC1E0FDAA2C18 +:10073E00C0CEABAC6159018C0191DD068C014C032E +:10074E00DF03E6EF01F66061FB7121048C014C08BA +:10075E0061F8CC010031320705A024FCEF03F5242B +:10076E00FC4024FC11DC22F524FCF0C15003FDAA50 +:10077E002CC0CE3708CBE4FFFFCBE6FFF7CED4FF7D +:10078E00CF370008F5120561FDE6BC02F66149029D +:10079E00DD9F00000000617902EFF1FDAB08D2DFB2 +:1007AE00FA5008C15014FDDD07C0D2FDD00B100465 +:1007BE00C6D73184BD02EFFA717BBDCBE4FFFFCB10 +:1007CE00E6FFFFCBD4FFFF717ABED7717BBED7C7D2 +:1007DE00C1200CFBF8FF8C0C318E31ADC1317B9DED +:1007EE00D4C0BC068DD49C088C149C0B8C14318EFA +:1007FE00040C00128C0B318EBDD813FDA20F61C8F4 +:10080E00EDA608CEABACCC05068C0B318EFD430AA3 +:10081E00D2DD158C0B318EFD470A6169058C05D131 +:10082E00DFE7FDD907E2EF71CC0A008C0A4C04DE3B +:10083E0054F6BC02300AF9BBAC06148C089EFD11AE +:10084E008972AB146299AC06A1BC0661790061791C +:10085E0002F0E1614902DFE05040C18C0B318E3174 +:10086E00AD128C0A318E318D03BDD831FFBDDADA6F +:10087E00DAADD8FD130DC0D2DD06FDD907E2EF19B2 +:10088E0061590AEFA68C0B318EFD4B0AD2DD03E2C5 +:10089E00EF0761590BEDFA07F2100EC6D7C7717B41 +:1008AE009D717BFAFDC007300AF9FDF60AFD810A3B +:1008BE00C6D7FDAB08FDD00BFDD907F5ABFFF2D7C0 +:1008CE00C731049B067110B3FBEF047118B3FB8F95 +:1008DE00B3FB7B8E76D1DD5B8FB3FB9D8E4004F92F +:1008EE0003DF22665C10D1DD1C8FB3FB5C10D1DD03 +:1008FE000B5080C15011FD0236C0EF095040C1505F +:10090E0011FD0236C04004F903DD064004F904DF90 +:10091E0022665C02D1DD1C8FB3FB5C02D1DD0B5075 +:10092E0040C15010FD0236C0EF095020C15010FDDD +:10093E000236C0C6D7C7360000665C80D1DD1067B0 +:10094E005C80D1DF0571339AEF0B71329AEF06712D +:10095E00040771319A665C40D1DD10675C40D1DFCF +:10096E000571439AEF0B71429AEF067114057141AE +:10097E009A665C01D1DD10675C01D1DF0571539A77 +:10098E00EF0B71529AEF0671340771519A665C0241 +:10099E00D1DD10675C02D1DF0571639AEF1D7162C4 +:1009AE009AEF184007F901DF0871040271619AEF9E +:1009BE000AC736100571C4C671619A665C04D1DD32 +:1009CE0010675C04D1DF0571739AEF0B71729AEFA9 +:1009DE000671440771719A665C08D1DD10675C0878 +:1009EE00D1DF0571039BEF0B71029BEF06711407AC +:1009FE0071019B665C10D161E8715AD1C6D7F5F6CC +:100A0E00FBF5F8FBCFFEFBFFCFFAFBFFCFFBFBFFA7 +:100A1E00D7C7C1C1FBF8FFCEABAC8C02D1DD1261E2 +:100A2E006902305C03BBF6614900DDEE618900EFBF +:050A3E00F51004C6D70D +:100A43005208EF065203EF025206FEE600FE1B00B9 +:100A5300DC16089F03088F0408089F040862FE241D +:100A630000089F0408EEBF00EEBA00C1C514410E92 +:100A730011D9D0FF118FD1FF312E45C4C0D7F23128 +:100A8300A2C401E2D79DE261DD4C09DF12717BFA5A +:100A9300C18F06089F25FDC0CF060800EE27003151 +:100AA300F2FA04CF0608004C00DF05D50008DD1676 +:100AB30061DD717BFAD50608DD0ACDE31F61CD61E7 +:100AC300CDEE160061CDFED40061FFFE9A00FCF866 +:100AD300FF0EFEB20061CDFED5004C09DF0EC18FC3 +:100AE30006086F25FD9F0608C0EE0400CF06080028 +:100AF300F8E3D75200EF025202FE3700CF24FD0085 +:100B0300CF060800BF0408C716629F000841001102 +:100B13008F1A209B4100118F1B209F0108C6510093 +:100B2300FE62FFEF025205CF060800C1510CFE0A18 +:100B330000C0D7C1511DFE0200C0D761DD717BFA31 +:100B430070CEC0A59EC47CFF9EC4609EC461CDD7F9 +:100B530061DD717BFAC18EC45C1BFED6FFCF060834 +:100B630001FED7FFC061CDD731F2FA1AC1AEE4BF9F +:100B730016FDAEE6BF18FDAED4BF1AFD30FFFFBEB3 +:100B8300E4BEE6BED4C0D731F2FA11C1AF16FDBE42 +:100B9300E4AF18FDBEE6AF1AFDBED4C0D7C1BF1C7B +:100BA300FD13BF1EFD15BF20FD17BF22FDC0D7AF2C +:100BB3001CFDDB1EFDEB20FDFB22FDD7534B30520A +:100BC3005430324E323030475631323000FFC1504C +:100BD300FEFEAB0061DD717BFACF060800FE0A0062 +:100BE300FEA4FF61CDF8E3EECF00C7FB0408BF16F8 +:100BF300FD8FC0009C05C5C337040600BF18FD3533 +:100C030036350C300000522BFE6600C2C4C630E3FA +:100C13000BB800300000B8022004AF18FDB8003054 +:100C23000F00B802AF16FD61FF520AFE3AFFECF85F +:100C3300FF0E717BFAC1C7FB04088C05C65C80FEFE +:100C43000200C0D761DD717BFA70CFC0FFA59FC0E2 +:100C5300007CFF9FC000609FC00061CDD7618BFE09 +:100C6300E2FF717BBE410011FB000017CEFC006167 +:100C7300CB089EFDF31161C999A58392DFF7D7FED7 +:100C8300B1FED524FDDF23C1CF0308035109FEF4D0 +:100C9300FDC0D2DF37FE3800A20408CF0308075196 +:100CA30009FEE1FDD2B20408DF22C7FB0408318349 +:100CB30002C6D7C6510AFECCFD624C1FDF06CF2405 +:100CC300FD01EF04CF24FD00C0EE5BFEC0EE55FE38 +:100CD300C7C1FB04088B31196C0161589BC0C6D78F +:100CE300717BFAFE4DFEAF0408040600C1143647BB +:100CF3000C300000522DF3FE77FF8FC000FE2BFE59 +:100D030061CF5C807C8073C0041900CEFC0F61CB83 +:100D1300C55404EF03C55417FE18FEC7360008BBBD +:100D2300629C0288089C03D1DD334C41DE2F70F1B5 +:100D3300312DB161090033081C000851FF612A41BC +:100D43000E118FD0FF613B118FD1FF6138DC0E8B09 +:100D53005C03DF0964C6C4FE2BFDEECAFDC6C4EE08 +:020D6300C3FDCE +:100D650061CF5100718C7109FECBF800FEFCEC01DE +:100D750000F6BF00F953C0F693935820FEDFF94102 +:100D85000036744F34CCFCEF05118B99A7A5174499 +:100D9500BE4FDFF53602F930CCFCEF04CC0000A7DE +:100DA50047DFF9410036BE4F3420FEEF05118B9920 +:100DB500A7A51744CE4FDFF53630FE3096FEEF047B +:100DC500CC0000A747DFF9FCCE0000EFFE61DD7126 +:100DD5007BFABEF0ADD8BEF200AEF661CDD7C361E9 +:100DE500DD717BFABEF0ADD8BEF200DBF6FFADDCFF +:100DF500BEF000AEF6BDD8AEF40312ADDABEF20019 +:100E0500AEF661CD03BDDAC2D7C3F33174D9088319 +:100E1500C1F626D8BDD8C031750683C312F623C2E4 +:100E2500FD300E93DF0312F623C2D7440000DD2602 +:100E350061DD717BFACFE80080BEF6F6BEF4BEF246 +:100E4500ADD8BEF0CFE800818FE8003103FAAEF0EF +:100E5500F5E80061CDD7B1D7C3F33174D90883C1A3 +:100E6500F626D8BDD8C0317505C312F623C2FD7E5E +:100E75000E93DF0312F623C2D7440000DD2761DDA0 +:100E8500717BFACFE80080BEF6F6BEF4BEF2ADD8AF +:100E9500BEF0CFE800818FE8003103FAAFE000F53E +:100EA500E80061CDD7ADD8D7C3F33174DB0F83C16B +:100EB500F626D8BDD861317026DABDDAC031750D98 +:100EC50083C312F626DCBDDC61317023C2FDE60E5C +:100ED50093DF0CF626D8BDD861317026DABDDAC2AB +:100EE500D7C161686BDC6BDDC0DD2F61DD717BFA1D +:100EF500CFE80080BEF4ADDCBEF6ADD8BEF0ADDA0D +:100F0500BEF2CFE800818FE8003103FAAEF0BDD81C +:100F1500AEF2BDDAF5E80061CDD7F6BDD8BDDAD7BA +:100F25008292DD2B61DD717BFACFE80080BEF0F6A1 +:100F3500BEF2BEF46208BEF6CFE800818FE800314C +:100F450003FAAFE0006072AEF0F5E80061CDD7605E +:100F550072F6B1D706DABDDAADDC06D8BDD861D8F0 +:100F6500A6DAD7D1DD17C1C3DAD89DD8ADDA311CE1 +:100F750061EEB4D8DFF8BDDA13BDD8C2C0D7D1DD74 +:100F85001BC1C3DADA9DDAADD8311E33311E337198 +:100F9500F9B4DADFF4BDD813BDDAC2C0D746D8DD5F +:100FA5000771FF7177D971C0D75BDB9DDB605BDAB9 +:100FB5009DDAADDC5BD9085BD808BDD8D7C3C7F3CC +:100FC500728EFDC162314C4100366A4F1161A072CB +:070FD500C09EFD62C6C2D7F9 +:0A0FF60031383A30333A303600004B +:0A20000031383A30333A3036000030 +: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 +:10221A00E9E70000000000000000000000000000E4 +:10222A0000000000000000000000000000000000A4 +:10223A000000000000000000000000000000000094 +:10224A000000000000000000000000000000000084 +:10225A000000000000000000000000000000000074 +:10226A000000000000000000000000000000000064 +:10227A000000000000000000000000000000000054 +:10228A000000000000000000000000000000000044 +:10229A000000000000000000000000000000000034 +:1022AA000000000000000000000000000000000024 +:1022BA000000000000000000000000000000000014 +:1022CA000000000000000000000000000000000004 +:1022DA0000000000000000000000000000000000F4 +:1022EA0000000000000000000000000000000000E4 +:1022FA0000000000000000000000000000000000D4 +:10230A0000000000000000000000000000000000C3 +:10231A0000000000000000000000000000000000B3 +:10232A0000000000000000000000000000000000A3 +:10233A000000000000000000000000000000000093 +:10234A0000007F7E7D7C7A797877767574727170F9 +:10235A006F6E6D6C6A6968676665646261605F5E0C +:10236A005D5C5A5958575655535251504F4E4D4B22 +:10237A004A494948474645434241403F3E3D3B3A28 +:10238A00393801020203030200FEFBF7F3F0F0F30F +:10239A00FA041225384D5F6E777A776E5F4D3825CD +:1023AA001204FAF3F0F0F3F7FBFE00020303020251 +:0223BA00010020 +:1023BC008D3EB43ED1DF26CD3E1EFD7424FD15248A +:1023CC003132960D3104960931329A05713304EF8E +:1023DC0003713204FD4824FDEA23FD4B27D77153CA +:1023EC0096D432DD05B432715296312296073132D1 +:1023FC009A037152967154967141023144020571DF +:10240C0040B3FBD77148B3FBD78D304B3CDC114A42 +:10241C0030B9DE0C4A3F28DE03A43FD7713396D780 +:10242C008D3D4B30DE054A30BDDC0C4A4028DE03C6 +:10243C00A440D7713296D7F43FF440D731429A0C6E +:10244C004A4102DE03A441D7712396D731320412DC +:10245C0040AFFB3CDE0C8FB2FB5C01D1DF0471237F +:10246C0096D7712296F441D7C7C1FBF8FF31329A47 +:10247C00067130B3FBEF047138B3FB7144967137BE +:10248C009ADE4F71349A71419631329A0E5002C1D4 +:10249C005011FD0236C0CD3229EF37E0C15011FD8D +:1024AC000236C0F43217C15002FD922CC0D2DF0D9F +:1024BC008B318E318D080E01081C00BD34AD3444B7 +:1024CC00009BDC05D5AFFBDF095020C15011FD028C +:1024DC0036C0C0C6D78D209D42FD2325FDC62CD508 +:1024EC0007F9DD04710396D78D424B2061F83164F6 +:1024FC00961C716396FD95044A4207DD054A42FF1E +:10250C00DF098F06F9310303FDB225FDC6257102E3 +:10251C009630A9266194D7C771620171720150037C +:10252C00FD1F0A5008FD7F38629D305009FD7F3831 +:10253C006276716301711806F94A30F1DC0BE5071C +:10254C00F9F508F9CD3707EF224A3004DE1ACF0728 +:10255C00F9025008C1506CFD8D02C092DF0DD454AD +:10256C00DF09711006F9EF03F507F94007F901DFF0 +:10257C0005710A22EF06710B22710302CD20075759 +:10258C0000674C08DE1073090A20614EDC05679D5C +:10259C0020EF0387EFEB4A2007DF09D507F961F835 +:1025AC00CF07F903C6D7500AFD1F0A304000C150AF +:1025BC0006FD752CC05096ED1F0AC72006FBF8FFD0 +:1025CC00D507F961E8EDA526304A57C1503EFD7597 +:1025DC002CC0D2DD077100B2FBEDA5267108B2FB51 +:1025EC0017040200C15004C1500CC1506CFDAE0266 +:1025FC001006EA38AA48318D12AA48318E616B0850 +:10260C00616A08C1500EFD752CC0F690C1500CFDCE +:10261C00752CC0CC01008C014C04DE28313497029F +:10262C00EFFA712297EA388C015010D605C1501080 +:10263C00C18C01D6044000C1506CFD6003100661D2 +:10264C005901EFD250A5FD1F0AEA38AA48318D1264 +:10265C00AA48318E616B08616A08C1500EFD752C59 +:10266C00C050A5FD1F0A5004C1506CFD8D02C06204 +:10267C009C01EA388A4B4E0161C3048A4A4E011709 +:10268C00040200C15004C1500CC1506CFD60031019 +:10269C0006F6C1503EFD752CC01006C6D7C78D433B +:1026AC004B3061F8ED48274A4528DE05A445ED4836 +:1026BC0027F4458D309D438D305070D612307351B8 +:1026CC00230480001231FF318E039D449FAEFBF634 +:1026DC008D447C804C95DC1B8D44318F241400EA96 +:1026EC0038BDD8AA44FDD20D1231FF318E03318F83 +:1026FC0016EF198D44318F241400EA38BDD8AA4640 +:10270C00FDD20D1231FF318E03318F16EA388A4219 +:10271C007217F3031644000171FE61C836FF0017EF +:10272C0001DE02F61617BD7CC7500CFD752CC0D20D +:10273C00DF068D309D43EF047100B2FBF2C6D7C7A4 +:10274C002008FBF8FF4007F901DD064007F902DF1E +:10275C001C17040600FD982DD2DF0A8C069C058CF4 +:10276C00079C04EF4ECC0563CC0400EF461704061F +:10277C0000FD982DD2DD0F7100B2FB710396CC05D4 +:10278C0000711297EF2D7108B2FB8C06318E318DD2 +:10279C00080E07081C00BBEA388A4072ABFD250FF7 +:1027AC00BB8C019C05D1DF08CC0501CC0400EF03E8 +:1027BC008B9C0417040600FDA32DD2DD06CC06C8A5 +:1027CC00CC07008C069FB1FB8C06318E318D080E28 +:1027DC0007081C00BD34AD344401A5DC08CC0364EF +:1027EC00F6BD46EF48AD3426464401A0DC08CC03C8 +:1027FC001EF6BD46EF37AD3444819DDC09CC030A8F +:10280C00C946F401EF27AD3444019BDC09CC030528 +:10281C00C946F401EF17AD34440191DC09CC030037 +:10282C00C946F401EF07711297C946F4013132041D +:10283C000C31249608CC0564CC0400EF0D8C034EAF +:10284C0005DE078C039C05CC04008C059FAFFB8C2C +:10285C00049FB0FBFD252D8D484E05DD2840AFFBB8 +:10286C000BDE054A480BDE1440AFFB06DE054A487A +:10287C0006DE09D5AFFBDF0DD448DD095020C15071 +:10288C0011FD0236C08FAFFB9D48FD622D1008C6AE +:10289C00D7C75601D837C15002FDAA2CC08F09F9F1 +:1028AC003105075012FD1F0AEF0E500AFD1F0A7169 +:1028BC002010055008FD1F0A8D376C0870C150029E +:1028CC00FDAA2CC05003FD1F0A8D376C1870C15027 +:1028DC0002FDAA2CC05016FD1F0A5003FDBB2C6232 +:1028EC005C01D1DD0F7170B3FB5002C15013FD02BE +:1028FC0036C056006672C6D7C75004FDBB2C625C4E +:10290C0003D1DD405014FD9B2934B3FB895C9F99A6 +:10291C008A0C7CFF50FF5C14D1DD228A0C7CFF5C9E +:10292C00147234B7FB89616A99716207560031627F +:10293C0007058666D1DFF7716307716B2734C6FB19 +:10294C00895CEB995002FDBB2CD2DD398D376C10B4 +:10295C0070C15002FDAA2CC0E0FD1F0AD837C1502F +:10296C0002FDAA2CC05033FD1F0A8F09F93103094F +:10297C0071281005500AFD1F0AF0C15002FDAA2C47 +:10298C00C07178B3FBE0C15013FD0236C0C6D7C787 +:10299C00C12004FBF8FFCC02005004FDBB2C629C50 +:1029AC00038C045C20D1DD0E8C036C019C038C0227 +:1029BC006C209C02EF138C045C10D1DD0C8C035C3E +:1029CC00FE9C038C026C109C028C045C08D1DD0E06 +:1029DC008C036C029C038C026C089C02EF138C041D +:1029EC005C04D1DD0C8C035CFD9C038C026C049CA0 +:1029FC00024008F903DF088C03D161E8CC03028C98 +:102A0C0003D1DD05501AFD1F0A8C0370C15004FD63 +:102A1C00AA2CC08FB3FB5C9F728C03318E316D146A +:102A2C008C03318E314D616D08616C5C606162624A +:102A3C009FB3FB8FBFFB7CFF50FF5E02D1DD278F66 +:102A4C00BFFB7CFF5E027234B7FB89616A997162CD +:102A5C0007CC0100316207086159018C01D1DFF408 +:102A6C00716307716B27F21006C6D7D9A7FBC1504B +:102A7C0006FDAA2CC0D9A8FBC15007FDAA2CC0D7B3 +:102A8C00FD772AF2D7C716664C02DD044C04DF082A +:102A9C00CD3A10CD3B0BEF05F43ACD3B0FC6D7C763 +:102AAC00711300711B20710303710205E0C1500307 +:102ABC00FDAA2CC05013FD1F0AD83AC15005FDAA1F +:102ACC002CC0D83BC1E0FDAA2CC0500AFD1F0A71D6 +:102ADC0003055008FD1F0A8D3B6C1070C1E0FDAA68 +:102AEC002CC05012FD1F0A5003FDBB2C625C01D19F +:102AFC00DF03E2EF24F0FDBB2C629D363602F9C7F2 +:102B0C005008FD922CC05003C1FDAA2CC0710203C9 +:102B1C00711A20FD522CF431F2C6D75003FDBB2C98 +:102B2C00625C01D1DD155014FD9B29FD0429501464 +:102B3C00FD1F0AE0C15003FDAA2CC0711300711BCC +:102B4C00207103035014FD1F0AF0C1E0FDAA2CC034 +:102B5C00F0C15003FDAA2CC0D7C72004FBF8FFCC52 +:102B6C0002008D319C035010C150A4FD8D02C06237 +:102B7C009D31D454DD04F2ED2F2C8C037B315C0899 +:102B8C00D1DD0F8D315C08D1DF05CC0210EF03CC09 +:102B9C0002208C037B315C04D1DD158D315C04D1BA +:102BAC00DF088C026C049C02EF068C026C089C0201 +:102BBC008FB2FB5CF3728D315C0C6162629FB2FB75 +:102BCC008FBEFB7CFF50FF5E029C02D1DD1F34B632 +:102BDC00FB896E0299716207CC01003162070861B2 +:102BEC0059018C01D1DFF4716307716B278D315C56 +:102BFC0040D1DD095002C15012FD0236C08D315C4E +:102C0C0001D1DD08E0C15012FD0236C0717AFA8D97 +:102C1C00315C41D1DD0C5A31BED831C15010FDA010 +:102C2C0048C0F21004C6D7FD9D28F2D7FD0429F246 +:102C3C00D7C78FC6FB7617FD9B29664FC6FBDFF205 +:102C4C00F5C6FBF2C6D75064FD1F0AFDAE2D6261BE +:102C5C00FB711196F171149661DC70C15012FDA0DC +:102C6C0048C0FDB037CD6303D7C7C1C1FBF8FFAC7B +:102C7C000ABB17C15002C18C0270C1506CFD6003BD +:102C8C0010061004C6D7C7C1FBF8FFAC08C1500230 +:102C9C00C18B70C1506CFDAE021006C0C6D7C78880 +:102CAC0006166770C1C75084FD29031004C6D7C728 +:102CBC0016C75084FD8D02C0C6D7C74A2004DE0457 +:102CCC005600EF0256018F08F9318FE7240000DD22 +:102CDC001A23DD0B23DD0C23DD1123DD0CEF0C8619 +:102CEC0086EF0851046106EF02868666318F12501A +:102CFC004CD633514CD6610A045420BD384008F9E7 +:102D0C0002DD064008F904DF08CD3C54CD3D44EF0C +:102D1C0006CD3C4BCD3D3DC6D740AFFB3DDC05CF92 +:102D2C0004FC0FD740AFFB1FDC05CF04FC0BD740D6 +:102D3C00AFFB0BDC05CF04FC07D740AFFB0661D81B +:102D4C0031320405CF04FC03D7D5AFFBDD04E50419 +:102D5C00FCD7F504FCD7D504F9DF04717396D7FDC5 +:102D6C00AE2D6261FB71019771149671079761C862 +:102D7C0031729617717296710497711196F17104F4 +:102D8C009761DC70C15012FDA048C0D7C716C75060 +:102D9C0004FD922CC0C6D7C716C75002FD922CC09A +:102DAC00C6D740AFFB0BDE02E2D7F2D771000105AC +:102DBC0071785005713AD5713BD18F10055CFC9F31 +:102DCC001005CF54054AE5420571104205710042C9 +:102DDC0005714850057130500571205005CF5305D1 +:102DEC0009CF52050B7130510571205105713BD53E +:102DFC00717050058F11055CFC9F1105F422D77181 +:102E0C0078500571080105D7FDAA39FD9504717A32 +:102E1C00FAFDE124F504F98F06F931051B5003FD89 +:102E2C00BB2C625C01D161E8CF04F902CFAFFB642B +:102E3C00710407714196EF10F6710407611012F6D8 +:102E4C00B1236061FB714196FDBD31FD444471229B +:102E5C0099712BE7618461A461EDEFF8D7C78806FF +:102E6C001666614FDD0967614EDE0396EF018666DB +:102E7C0072C6D7C7161714AA0412A943DD29AA04CF +:102E8C0012A923FDCE4FC3AC02FDCE4F13C2BDD849 +:102E9C0013FDA20FDE0C1714AA0212AA0403BA0423 +:102EAC00EF051714A9BA04AC041231FF319E03319B +:102EBC007F087208C6D77100F200304400BFB6011B +:102ECC00300188BF9001300984BF9E01BF9C01BFB7 +:102EDC009A01BF9801BF9601BF9401BF9201F53CC6 +:102EEC00FF30FE00BFBE01F6BFBC01BFB80150EE03 +:102EFC00BFBA01A1BFB201C918FE008F06F9310596 +:102F0C0007F5CDFBCB6CFF00717397716297D7C738 +:102F1C002004FBF8FF3026FBBC02F6BBAB4464007C +:102F2C00DE0EAC0214CA0000617902617900EFEC8C +:102F3C001004C6D730EF00BFB401F6BFBA01710858 +:102F4C00F200712304715307BE6EBE64BE6A712316 +:102F5C0004715307715BD1F457F456716397D78D95 +:102F6C0058B458D1DF6931D4D105715BD1E457D451 +:102F7C0057DD2E7140B2FBD856F1E734020023DD49 +:102F8C000625DD0325DF05F6BE66EF06D9CCFBF181 +:102F9C00BE66A4564A5620DF04F456F457CD581991 +:102FAC00D7CD581E7148B2FBD5CEFBDF04F6BE66FA +:102FBC00D7D9CCFBF14266FFDD15D9CCFBF112AEB3 +:102FCC006643DE05A266FFEF03B266FFCD5803D75A +:102FDC00C7161714F6B9AA0412F6231231FF31AE34 +:102FEC0003316FBA02C6D7C7C1FBF8FF8C085080FB +:102FFC00D612AB1413B9AB14AA0412A92312D927F5 +:10300C00FBF133BDD813FD0E0EBA02C0C6D7310486 +:10301C009801D74004F902DF10F6BE64BE6EBE6A9A +:10302C00BF8EFBBF94FBBF9AFB31749714308AFBA5 +:10303C00FDDC2F3090FBFDDC2F3096FBFDDC2FEF01 +:10304C00713114980D7113987108D2FBF45AF4591C +:10305C00EF60D459DF5A8F26FB9D594A5A1FDC1753 +:10306C007100D2FB4028FBFFDD1CA45B8F28FB4BBF +:10307C005BDE13F45AEF0FD85AF1A1605C1F9D5A16 +:10308C007108D2FBF45BE85A092AFB70C1308AFB49 +:10309C00FDF32FC0E85A094AFB70C13090FBFDF3D9 +:1030AC002FC0E85A096AFB70C13096FBFDF32FC0A4 +:1030BC00B459308AFBFD7F2EF313BE6E3090FBFDAE +:1030CC007F2EF313BE6A3096FBFD7F2EF313BE6486 +:1030DC00D7C736F00071F4DC297170F000CE9D0872 +:1030EC00CE9EC0CE9F80F594FFF593FFF592FFE541 +:1030FC0097FFE596FFE595FFE598FFCE9C7F710065 +:10310C00A6FB711BE3712BE3711AE7712BE7717A44 +:10311C009D710A9E31929E02EFFA710B9E7123985B +:10312C00713398714398C6D7C73122981E71229873 +:10313C00710A9E31929E02EFFA34D4FB3692FF5202 +:10314C00078B99A5A792DFF9710B9EC6D7C7880686 +:10315C001631329815713298C7349CFB3092FF1699 +:10316C0052078B99A5A792DFF9C6667367189CFB6B +:10317C00C6D7C77123983134981E713398710A9E43 +:10318C0031929E02EFFA3492FF369CFB52078B99D8 +:10319C00A5A792DFF9710B9E314498137143987176 +:1031AC007B9E8FDCFB9E9A8FDDFB9E9B717A9EC66D +:1031BC00D7CFA7FB5CCFA8FB5FCFC8FB5DCFFCFBD9 +:1031CC0036CFFDFBC9D7C7CFA4FB12CFA5FB2ECFA3 +:1031DC00CCFBFFF5CDFBF5CEFBF5CFFBF5D0FB56CD +:1031EC0000664C64DE08723826FB0086EFF3F5E3CC +:1031FC00FB714A9D712B21710A20711A20710203F7 +:10320C00C6D7C788061617F1E73403002361E3ED30 +:10321C003A352361F8ED1134B12361E3ED1B34250C +:10322C0061F8ED2934B1240D0061D8ED3A35240B49 +:10323C000061F8ED03332361F8ED46332361F8EDBB +:10324C0016332361F8ED333524060061F8EDC533F0 +:10325C00B12561D8EDE13324000061F8EDEE3323A4 +:10326C0061F8ED3A352361F8ED3835B12361E3EDC2 +:10327C0049342361F8ED5A342361F8ED6B34236142 +:10328C00F8ED5A342361F8ED7C342361F8ED8D347C +:10329C002361F8ED9C342361F8EDBE342361F8ED25 +:1032AC00C9342361F8EDD4342361F8EDDC34240205 +:1032BC00002361E3ED3A352361F8ED10352361F815 +:1032CC00EDE4342361F8EDEF342561F8EDFA34B117 +:1032DC0024060061D8ED3A3524000061F8ED3C3548 +:1032EC002561F8ED053524120061F8EDBF3323613B +:1032FC00F8EDAF33ED3C3567D1DD0C30D93C619442 +:10330C0034C4FB89616F99ED4635675C02D1DD07EA +:10331C0030332C6194EF0B675C01D1DD0530382C18 +:10332C006194675C3CD1DD0F303D2C6194675C3C53 +:10333C007266736218A4FBED463567D1DD625C01E1 +:10334C00D1DD05300800EF01F6609F01FC675C02DF +:10335C00D1DD03E6EF01F63401FC89616899675C05 +:10336C0004D1DD04E6A1EF01F63401FC8961689912 +:10337C00675C08D1DD05302000EF01F63401FC89D3 +:10338C00616899675C10D1DD05301000EF01F634EF +:10339C0001FC89616899675C20D161E8716001FC6E +:1033AC00ED46354A5CC8DE08E85C67185AFAA45C3E +:1033BC00ED4635679D5CED4635D44ADF08679FCDF9 +:1033CC00FBA44AEF0D4A4A05DE08E84A671811FDCE +:1033DC00A44AED4635675C0F7266736218A4FBED68 +:1033EC0046354A4A64DE1B4A4A01DF0667D161F85A +:1033FC005701E84A671826FBA44A4A4A0561C87176 +:10340C001298ED463534A6FB89615F99ED4635304F +:10341C008C2A619466736718A4FBED463540A9FBB2 +:10342C006ADF1340AAFB68DF0D674C6CDF08308144 +:10343C00416194713AD5679FABFBED4635675C7F74 +:10344C0070C117F1243000FD5931C0ED4635675C71 +:10345C003F70C117F1243000FD5931C0ED4635677E +:10346C005C0770C117F1243000FD5931C0ED4635B1 +:10347C00675C1F70C117F1243000FD5931C0ED4657 +:10348C00356770C117F1243000FD5931C0ED463558 +:10349C00CEABAC710A9E31929E02EFFAD592FFDF51 +:1034AC0005710B9EEFED679E99710B9E9FDBFBEDFB +:1034BC004635714298675C7F9FDCFBEF7D714298CB +:1034CC00675C3F9FDDFBEF72675C3F9FDEFBEF6A43 +:1034DC00675C1F9FDFFBEF62308E3A6194679FE45D +:1034EC00FBEF57305B3A6194679FE5FBEF4C307410 +:1034FC003A6194679FE8FBEF41675C01D1DD3BFDCE +:10350C004444EF36675C02D1DD05712A21EF067168 +:10351C004A9D712B21675C01D1DD06710300710B93 +:10352C0020679FE3FBEF1367318EEF0EEF0CEF0A72 +:10353C00664C5BDE05736718A4FBC6D7C716664CD2 +:10354C0030DC094C37DE05FD3431EF6B664C02DFA5 +:10355C001F8FA6FB5C03728F03FC5C03318E316DF5 +:10356C0008616A08128F03FC5C80312A6162EF5695 +:10357C00664C3DDF08AE90BD5EF85EEF49664C3E92 +:10358C00DF04F85FEF40664C4FDF05FD6C44EF360F +:10359C00664C61DF08E85C095AFA72EF29664C7FC9 +:1035AC00DF05FD4F3DEF1F664C4EDF0B31049A04D7 +:1035BC005210EF12F2EF0F664C5BDC0452FFEF0679 +:1035CC00667309A4FB72C6D7C788061617F12410B8 +:1035DC0000240500DC07244C00DD17EF17717BFA83 +:1035EC0017F104A4FB1489617F99717AFA715298CE +:1035FC00EF02A45CC6D7C7C1C1FBF8FF4004F903B6 +:10360C00DD064004F904DF38717BFA8C027309ACD7 +:10361C00FB5E0AD1DF278C02318E04A4FB14896E69 +:10362C000A99716207717AFACC010031620708615C +:10363C0059018C01D1DFF4716307716B27717AFA30 +:10364C001004C6D7CF03FC03F501FCF505FCF50708 +:10365C00FCD7C788061617F1E734020025DD3D2399 +:10366C00DD1725DD1C23DD0523DD2BEF3B710299D6 +:10367C00679F06FCCD6303EF2F675C839F03FCEF12 +:10368C0027675C039F05FC675C034C0261F87122A1 +:10369C009AFD5A46EF12679F07FCEF0C6791DF0803 +:1036AC00E0C15012FD0236C0C6D7C71617F1E72489 +:1036BC000000DD2A23DD1E240300DD0724FB00DDD2 +:1036CC0024EF2531329A05308000EF01F6086F04A3 +:1036DC00FC7208EF198F01FCF501FC72EF107152AE +:1036EC00995235EF09F2EF0666730900FC72C6D7E2 +:1036FC00C71617F1E7240000DD38241000DD1C2369 +:10370C00DD1C23DD30240E00DD18241100DD1B240C +:10371C000F00DD12243000DD15EF1EE2EF1D52020A +:10372C00EF195204EF155206EF115205EF0D520727 +:10373C00EF09F2EF065203EF0252FFC6D7C731640E +:10374C0098377163988D629FACFB8D619FCBFB3674 +:10375C00D2FCC7D861FDB038618A70618AFDF5383A +:10376C00C0D866F1312F609D658D604B65DD0A71A7 +:10377C0072988D659D60CD63034A6305DE0830BA8F +:10378C00376194CD636BB4637150F000CE300BCFC6 +:10379C00170006CE3106FD6802717A30710BE371A9 +:1037AC000BE7C6D78D659D608D659FADFBD740043B +:1037BC00F903DF064004F904DF02F2D73174980CE8 +:1037CC007173987113998D659D67EF313104991F51 +:1037DC00710399711299D506FCDF04F468EF0A8F16 +:1037EC0006FC5002D6A1609D688D689D67EF0E3176 +:1037FC001499068D689D67EF048D659D678D679F95 +:10380C00ADFBD867FD2238E867094C2370C1501313 +:10381C00FDA048C0F2D7C7C1C1FBF8FF8C02D1DFB5 +:10382C0005F506FCEF1A8C024C05DE06CF06FC02F1 +:10383C00EF0E8C02318E1231FE03311F609F06FC9D +:10384C008D694F06FCDD28CC011F8F06FC9D69CCD1 +:10385C0000008B4C08DE148B730912204F06FCDC25 +:10386C00058B9C01EF05615900EFE78C019D6410FD +:10387C0004C6D7C716710AE7710BE37150F000CE7E +:10388C00300BCF170006669E31FD6802717A3071DD +:10389C000BE33182E302EFFA8D1F7158F000710BCC +:1038AC00E772C6D7C7C1C1FBF8FF8FFCFB4E02DC29 +:1038BC0003F2EF318C024FFDFBDC0452FFEF268C40 +:1038CC00022FFCFB706131318D128FFDFB2FFCFB45 +:1038DC0070613133BDD813FD300EBB440001DC03E5 +:1038EC00F690BB8B721004C6D7C7C1FBF8FFAC08AF +:1038FC0014A91489708B6128706131FDCE4F13446B +:10390C00030071FEDC23AC08148A04819A04AC0811 +:10391C00148A044C11DC10A9148B99AC0814CA023B +:10392C0000AC0814CA0310EF72AC0814CA0400AC43 +:10393C000814A914894DDE0AAC08148A02819A0273 +:10394C00EF12AC0814A914894D61D308AC08148A81 +:10395C0002919A02AC08148A03919A03D1DF3CAC11 +:10396C0008148A024C10DF10A91489318EA112ACF4 +:10397C000814A9146299EF17AC08148A024CF0DFF2 +:10398C000EA91489318EB112AC0814A9146299AC29 +:10399C000814CA0200AC0814CA0310C0C6D7EDAD97 +:1039AC0039C75600664C0ADE0BF0317E12F67810E1 +:1039BC00FC86EFF0C6D7C7200CFBF8FF17040600F7 +:1039CC00C15006C150A8C15030FDAE021006D2DD68 +:1039DC001B4A6C04DE05A46CE2EF7034E4FB895CDA +:1039EC00FC99FD8E3A7110B2FBF2EF5F717BFA30ED +:1039FC000600C117040600C130E9FBFDD64F1004C8 +:103A0C00717AFAF46C8FE4FB5C01D1DD264004F989 +:103A1C0003DF205010C180FD0236C0C7361005717F +:103A2C00D4C6DE0F17C15006C150A8C15030FDAE30 +:103A3C000210064004F903DD064004F904DF0B8F85 +:103A4C00E4FB5C02D161E8FD8641F2100CC6D7D9CB +:103A5C00E5FBC15030FD8D02C0629FE8FB5008C1F0 +:103A6C005011FD0236C0F2D7D9E8FBC1D9E7FBC132 +:103A7C005030FD290310045008C15011FD0236C00E +:103A8C00F2D7C7200CFBF8FFCC09004007F901DF87 +:103A9C0005CC0A02EF03CC0A10CC0B808FE4FB5C44 +:103AAC00039C07D1DF08717AD5CC0807EF06717B30 +:103ABC00D5CC082F17040800C15004C150A0C15028 +:103ACC0030FD60031006624C02DF077110B2FBF28E +:103ADC00EF357118B2FBF46CC736100571D4C6DE25 +:103AEC00164004F903DF1017A1C15006C150A8C13C +:103AFC005030FDAE021006717BFA8FE4FB5C034E76 +:103B0C0007DD03E2EF01F2100CC6D7D504F9DF0391 +:103B1C00F6BD6E4004F901DD0AD478DD03B478D724 +:103B2C00CD78038F04F9318FE723DD0B24020024B9 +:103B3C00030061C8ED473C8F06F9312349301B0067 +:103B4C00466EDF158FE3FB5C01D161E8F504F9E00B +:103B5C00C15010FD0236C0EF1D307701466EDF16E6 +:103B6C005002C15010FD0236C0F64674DF088FC8F3 +:103B7C00FB5010D6BD74F64674DD36B6744674DF51 +:103B8C0030711297EF2B301B00466EDF13F6467622 +:103B9C00DF18E0C15010FD0236C0C9765307EF0A9A +:103BAC00307701466E61F8711297F6467661E8B689 +:103BBC007631549A08714399F6BD6EEF14314499DD +:103BCC0005F6BD6EEF0BA66EF6466E61F8C96EFF7C +:103BDC00FF31629A194A7005DE16A4704A7005DF2F +:103BEC000FA4705004C15010FD0236C0EF02F470E7 +:103BFC0031649A194A7205DE16A4724A7205DF0FF7 +:103C0C00A4725008C15010FD0236C0EF02F472D4F9 +:103C1C0073DD03B473D731729A174A7105DE14A49D +:103C2C00714A7105DF0DA4715010C1FD0236C0EF51 +:103C3C0002F4714A710661F8CD7325D7C7361005A9 +:103C4C0071D4DE0E8FB2FB5C02D1DF0630C239615B +:103C5C0094D24004F903DF1C3122070530652B6137 +:103C6C00943154990C7153995080C15012FD023605 +:103C7C00C0FD853CFDAB3CC6D78F03FC5C01D1DDA0 +:103C8C001DD47BDD03B47BD7CD7B098D644B7ADDF2 +:103C9C000D8D649D7A5040C15012FD0236C0D74044 +:103CAC0004F903DD04F6BD1AD7D5D0FBDF08F646C0 +:103CBC001ADD19B61AD7D9CCFBF1461ADD0ED9CCC0 +:103CCC00FB12AD1A43DE03A61AD7B61AD7717BFACC +:103CDC00C78FC4FB76F5C4FB717AFA5C10D161E82E +:103CEC00716299665C0FD1DD57665C01D1DD05F51B +:103CFC0004F9EF4C665C02D1DD11E0C15003FDAA62 +:103D0C002CC0711300711B20710303665C04D1DDA0 +:103D1C0011711300711B20D503FC61F8710303FDB5 +:103D2C005036665C08D161E87103035005FD1F0A2B +:103D3C007102035003C1FDAA2CC0711A20FD522C34 +:103D4C00F2C6D7C756FF4A4A1361C8ED053E8F0627 +:103D5C00F9311505300400EF0F8F06F931450530A8 +:103D6C000500EF04D907F9F1609F28FC8D7C9F2991 +:103D7C00FC713496E661301271049661DC31196184 +:103D8C0062629F2AFCE52BFC31449A05304000EF1F +:103D9C0001F6C131340405302000EF01F6C2616B2D +:103DAC0008616A08C131749A05300400EF01F6C24B +:103DBC00616B08616A08C131649A04E6A1EF01F6EF +:103DCC00C2616B08616A08C131549A03E6EF01F6CF +:103DDC00C2616B08616A9F2CFCF171240461DC9F49 +:103DEC0026FCF171540761DC9F27FCD84AF10104D1 +:103DFC00ECFC14A9148976A44A6672C6D7C7FD4395 +:103E0C00098F04F9318FE724000061F8EDDB3F23C3 +:103E1C00DD1B2361F8EDED3E2361F8ED603F23617E +:103E2C00F8EDA93F2361F8ED7B40EDD83FF6BD746A +:103E3C007113974005F901DF2C31349A1B466EDD66 +:103E4C0004F424EF02A4244A2465DC0FF6BD6EF5BD +:103E5C0004F9712299EDFC40FDE124AD6E440A0099 +:103E6C0061D8EDFC40714299FD9504716396FDE1BA +:103E7C00244007F903DF09712299F504F9EDFC40A0 +:103E8C00FD4B2740B1FB9BDE09712299F504F9ED3E +:103E9C00FC40714A277140110571301105713A22AD +:103EAC00715A2271501105FDAB2AD2DD097122998C +:103EBC00F504F9EDFC4071103500CF37001D714051 +:103ECC0012054005F901DD064005F903DF05F5CDC6 +:103EDC00FBEF04CFCDFB03CF04F902FD772AEDFCF9 +:103EEC0040FDB82DFD0305FD5036FDD231F537FFF1 +:103EFC00712BE0F505F9712299CBE43FEFCBE6F697 +:103F0C00F0FD9504713BD48F06F93105285004FD62 +:103F1C00BB2C625C03318E315D34B3FB89616899D3 +:103F2C005002FDBB2CD2DD067170B3FBEF0471782F +:103F3C00B3FBFDE124FDC22E710806F9CF04F90391 +:103F4C008FA6FB5C02D1DD095080C15010FD0236FA +:103F5C00C0EDFC40FDFE403164992FA47ED47EDD83 +:103F6C000831A4E00A31020C06712BE0FD724131DC +:103F7C00A4E01731040C13712BE05027C15005FD40 +:103F8C00AA2CC0CF04F904712299FD67418F06F960 +:103F9C0031250731349A03F504F9EDFC40FDFE4060 +:103FAC0031020C15D83AC15005FDAA2CC05005FDA4 +:103FBC001F0AFD7241CF04F903FD67418F06F931E9 +:103FCC00250731349A03F504F9EDFC40F504F9CFDB +:103FDC00CDFB03F5CEFBF5D0FB717297F6426CFF6F +:103FEC0061E8EDFC40F6BD74711397F5E4FBFD8EB2 +:103FFC003A717AFAFD402FFD0B2EFD5505712B21E0 +:10400C00714B9D31349702EFFACE3708CBE4BFFFEA +:10401C00CBE6FFF3CED4FFF5B4FBF5B5FBF5B6FB61 +:10402C00F5B7FBCF37000971481205F6BEE0BEE2CA +:10403C00BED0716A27FD272B714307714B2771483E +:10404C00100571481105713810057138110571335F +:10405C0002713B22715302715B2271581005715829 +:10406C001105CF04F905714299F6BD6EFD0C0AF5E8 +:10407C0005F9F42431349A04D432DD20E505F9E550 +:10408C0004F98F06F9312568F5F8FBF5F6FB502E8F +:10409C00FD1F0ACF05F903E504F9EF54FDE904FD12 +:1040AC00742471730171320471430271039671624D +:1040BC009631949E02EFFA712AE7CEA409F5F3002B +:1040CC003104070261FDE5F300F46AFD4309CEA457 +:1040DC000831329A06CF04F905EF09714399E505C9 +:1040EC00F9E504F9712BE78F06F9312503F504F98D +:1040FC00C6D78FE3FB5C01D1DF60D47FDF193102BF +:10410C0000585003FDBB2C625C01D1DF07F504F9AC +:10411C00712299D7E47FD74A7FF0DF073104003A48 +:10412C00F47FD74A7FC8DF0AF504F9712299CD7F55 +:10413C00F0D7310200084A7FFFDD1FA47FD7F0C102 +:10414C005004FDAA2CC08FB3FB5C9F9FB3FB711076 +:10415C00C4FB30D93C6194CD7FF0D731149706F570 +:10416C0004F9712299D7716399F47E717207FD6815 +:10417C0002717307D7FD5E05F2D7717BFAC7200C6D +:10418C00FBF8FF8FEAFBF0F9E9FBF303FDCE4F13CD +:10419C00BC048FECFBF0F9EBFBF303FDCE4F13BC2F +:1041AC00028FEEFBF0F9EDFBF303FDCE4F13BB7169 +:1041BC007AFAAC04BDD8F6BDDAAC04311EBDDCF61F +:1041CC00BDDEFDE30DADD8BDDCADDABDDEAC02BDB0 +:1041DC00D8F6BDDAAC02311EDADCC3DADEC3BDDCE4 +:1041EC00F6BDDEFDE30DC0BDDEC0BDDCADDEFD59B0 +:1041FC000FADD8BDDCADDABDDEABBDD8F6BDDAABEC +:10420C00311EDADCC3DADEC3BDDCF6BDDEFDE30D48 +:10421C00C0BDDEC0BDDCADDEFD590FDADAADD8FDB8 +:10422C005545C3C58D8C5C3FF0317E0440FC14C2F7 +:10423C00C0B9A48CF6BC08BC0A9C078C074C2EDDBC +:10424C003D8D8C0E0770F161DC605C3FF0317E12AD +:10425C007940FCBDD8F6BDDA8C0773098C23318FFD +:10426C00BDDC70BDDEFDE30DAC08BDDCAC0AFD5958 +:10427C000FADDABC0AADD8BC08615907EFBDAC086C +:10428C00BDD8AC0ABDDAC9DC0004F6FDAD0EC9DC44 +:10429C00FFFFF6FDAE0FADD8BD86AF3AFC4686DD0E +:1042AC0011AF3CFCBF3EFCAF3AFCBF3CFCAD86BF43 +:1042BC003AFCAF3CFC423EFCDC46AF3AFC423CFCD8 +:1042CC00DE3EAD26423AFCDE374A2A16DC1A4A2A72 +:1042DC00A0DE138D884B2ADE0DAF3AFC268A44698A +:1042EC001061C8FD3E43F42AAF3AFC445146DC0A47 +:1042FC00AF3AFC241027BD28EF0DC928F82AEF0788 +:10430C004A2AFF61E8A42AAF3EFC423CFCDC18AF11 +:10431C003CFC423AFCDE10AF3AFC4628DE09F4883D +:10432C00AF3AFCBD8AEF074A88FF61E8A488100CFD +:10433C00C6D7717BFAC7710A9E31929E02EFFA8E34 +:10434C00949F34FC8E969F35FC8E979F36FC8E98EE +:10435C009F37FC8E939F38FC8E929F39FC710B9E7D +:10436C00717AFA8F37FCFDC20F76FDD34413BD84EE +:10437C00D5EFFBDF0AD5F0FBDF05D5F1FBDD25F62C +:10438C00B14684DF11C9843722665C0391DF060ACB +:10439C0084181A85009617FDF64513FD1644310452 +:1043AC009A02EF61520692926934FC682EFCDFF699 +:1043BC00AD84BD82F880F3311C790AF944FEFFDD2F +:1043CC0044D880F101040AF914A944FFFFDF04E684 +:1043DC00B9EF0BD880F101040AF914A9A1B9717BCA +:1043EC00FAA0EFFBD5EFFBDF1CA0F0FBD5F0FBDF59 +:1043FC0014A0F1FBD5F1FBDF0CCFEFFBFFCFF0FBF3 +:10440C00FFCFF1FBFFC6717AFAD7C716D880F10738 +:10441C0044A800DC0571029AEF1CF647DD18A48055 +:10442C004A80A8DC0571029AEF0CF880F3311CF677 +:10443C00780AF9B7EFE4C6D7C756A89666F0317E6E +:10444C0012F6B1780AF966D1DFF1717BFAF5EFFB60 +:10445C00F5F0FBF5F1FBF48071039AC6717AFAD78B +:10446C00C72004FBF8FFD44ADF168D809D8D717B2D +:10447C00FA52069292692EFC68C0FCDFF6717AFA49 +:10448C004A4A06DE0EE84A09C0FC9C03A44A8C0387 +:10449C0072EF30F88DF3311C790AF9BB31129A05A1 +:1044AC008B9C03EF0F8C019C03D48DDF05CD8DA766 +:1044BC00EF02B48D718071179A61DC61FB71119AF6 +:1044CC008C03721004C6D7C72008FBF8FF8F37FC8B +:1044DC00FDC20F9C078F36FCFDC20F9C068F35FC6E +:1044EC00FDC20F9C058F34FCFDC20F9C048F38FC61 +:1044FC009C038F39FC9C028C06318E0112791A2098 +:10450C00BB8C075C03D1DF098C064C0361C8617955 +:10451C00008C05318EB1610900BB313D120103BB2A +:10452C008B0E04708C011C00BB8FF4FB4E03DC0E55 +:10453C008C034FF4FBDC0B8C024FF5FBDC04AB1251 +:10454C00EF03ABB1121008C6D7C7C3C12008FBF8E4 +:10455C00FFF661490A61F8614908DF07F73400008A +:10456C00EDF245E6BC04F6BC06AC0ABC02AC08BBDA +:10457C00AC06614902AC0461F8614900DE28AC0468 +:10458C00BDD8AC06BDDAE1FD680FADDABC06ADD81E +:10459C00BC04ABBDD8AC02BDDAE1FD830FADDABC17 +:1045AC0002ADD8BBEFCAAC06BC02AC04BBAC08BDB8 +:1045BC00D8AC0ABDDAAC04BDDCAC06FDE60EAC042E +:1045CC00BDDCAC06FD590FE1FD830FADDABC06ADC9 +:1045DC00D8BC04AC06614902AC0461F8614900DC4A +:1045EC00C5AC0214AB12100CC6D7C7C12004FBF823 +:1045FC00FF8F31FCFDC20F9C034E04DF1CAD8246C5 +:10460C0084DE07AD84268212EF40F64684DF07462F +:10461C0082DD03E7EF34F7EF318C04318EB1128C6D +:10462C0003318E43DF1830382226820684BB8C047B +:10463C005C0391DF05AB041800BBAB12EF0C8C03D1 +:10464C004E04DE0532A900EF01F71006C6D7717BC8 +:10465C00FA31229A0CF64690DD07B690717AFAEF91 +:10466C007C71239A717AFA4004F904DF07715307BD +:10467C00F42CEF69D9CFFBF1E7240000DD0F23DD2B +:10468C001A23DD1023DD5323DD2723DD3871530777 +:10469C00F42CEF49715207F42CEF42D42CDF077144 +:1046AC005207E42CEF05715307F42CC990FA00EF74 +:1046BC002CD42CDF0B715207E42CC990FA00EF1D9F +:1046CC00F5CFFBEF18D42CDF0B715307E42CC990FA +:1046DC00FA00EF09CFCFFB02EF03FDEA46D7D9056D +:1046EC00FCF1E7240000DD0923DD2123DD0923EFA4 +:1046FC001B715307F42CD7D42CDF07715207E42C11 +:10470C00EF05715307F42CC9902D01D7715207E4B2 +:10471C002CD731629701D7710398D9CDFBF1E724DF +:10472C000000DD1223DD1923DD1123DD2623DD340A +:10473C0023DD3923DD3FFDAA47EF3DFDCB47EF38A5 +:10474C00D9CCFBC1AE6CFD692EC0F313BE6C7123CA +:10475C0004EF25F0C1AE6CFD692EC0F313BE6C7175 +:10476C002304EF14F6BE6C712204EF0CCB6CFF002B +:10477C00712304EF03FD3F484004F905DD064004B6 +:10478C00F901DF067123047103983104980FF6BE0A +:10479C0064BE6A31220402EF02F690BE6ED7CD2EB3 +:1047AC0047F492AE6C317DBFCAFCFD1448D2DF0ECB +:1047BC00D9CCFBC1AE6CFD692EC0F313BE6CD7FD1A +:1047CC001448D2DD0DCD2E47F492AE6C317DBFCAAC +:1047DC00FCD7E8920934205080D6BFC6FC22CAFC14 +:1047EC00BDD8304700FD0E0EBFC8FC30C6FCFD7FA7 +:1047FC002EF313BE6CB42ED42EDF0CCD2E47A49208 +:10480C004A921F61C8F492D740AFFB0BDC057123B1 +:10481C0004F2D740AFFB0661D831229611F0C1AE3D +:10482C006CFD692EC0F313BE6C712204EF03FD3FC7 +:10483C0048E2D7710298F0C1AE6CFD692EC0F3133B +:10484C00BE6CA4934A9340DC37F493D894F1313F77 +:10485C000412FD14D894F1BDD85008FD5D0E0872F9 +:10486C0008E6D2DD040192DFFC896158D1DD0571C7 +:10487C002204EF03712304A4944A942061C8F49495 +:10488C00D7C73026FDC6D77180717DFADE03520181 +:10489C00D75200D7C7C12004FBF8FF17040300C18F +:1048AC00E0C15010C150A4FDAE021006629C02D1B2 +:1048BC00DD058C0272EF518C0C70C18C0470FD18EC +:1048CC0049C0629C02D1DD058C0272EF3B8C035C0B +:1048DC007DD1DF03F2EF3117A1C1E0C15010C150FF +:1048EC00A4FDAE021006629C02D1DD058C0272EFB3 +:1048FC00178C015C7DD1DD03F2EF0D8C0370C15080 +:10490C0010FD1849C0629C021006C6D7C78806164F +:10491C00710AE650A4FDE203D2DD0771339752020F +:10492C00EF1317FDFE036770FDFE03FD4349FD7297 +:10493C0004713397F2C6D7FD490450A4FDFE035011 +:09494C0020FDFE0350AAEDFE035C +:1049550061FC61FCC1C3C5C7520C929269D4FEC10A +:10496500DFF88EFD708EFCC1717AFA4004F903DF21 +:104975000530652B6194C09EFC609EFD34D4FE52CB +:1049850006C0B9A5A592DFF9C6C4C2C061FC61DF46 +:10499500520C929269D4FEC1DFF88EFD708EFCC177 +:1049A5008F4105775C04D1DD06675C01D1DD5031AF +:1049B5005498367162077153988FB4FB5FBCFBD175 +:1049C500DF1B8FB5FB5FBDFBD1DF128FB6FB5FBE73 +:1049D500FBD1DF098FB7FB5FBFFBD1DD0C31620770 +:1049E50002EFFA716307716B2771139AFD7E31F43B +:1049F500227148500571605005717AFAEDEF4A67EA +:104A05005C02D1DD16D422DD124A2202DD0DF4222C +:104A15007148500571605005717AFA717AFA8D22E4 +:104A2500318FE7240000DD0823DD1423DD2CEF4A58 +:104A3500F44A7140500571505005E422EDEF4A8F5C +:104A450040059D4B715050058D4B9D4DD84BFD48F4 +:104A550035629D4CCD2202EDEF4A675C02D1DD1730 +:104A6500675C10D1DD05CD2203EF0F71485005714C +:104A7500605005F422EF73CD22044A2203DF108D26 +:104A85004C9F4005D84CC1D84BFDD435C0EF1F8F86 +:104A950040057671744BDC054A4B02DE06716050A9 +:104AA50005EF47C7D84BFD0E32C071505005D84DA4 +:104AB500F1242900DD27240400DD22242200DD1D48 +:104AC500241100DD0C240100DD13241E00DD0EEF92 +:104AD5000A4A4B60DF07CD4B61EF02A44B4A220324 +:104AE500DF08D84BFD4835629D4CC09EFC609EFD9D +:104AF50034D4FE5206C0B9A5A592DFF961FCC1C345 +:104B0500C5C7520C929269D4FEC1DFF88EFD708E36 +:104B1500FCC1717AFA51405F0401D1DD06F616A792 +:104B250047DFF2300400BF2401F6BF2A01300B0B2A +:104B3500BF2801FD6802300B0FBF2801FD68023058 +:104B45000F0FBF2801710AE6F6420C01DD33AF04F1 +:104B550001BF0C0131529729715297710BE2D8515F +:104B6500FDE2033184BD02EFFACBB422FBD853F149 +:104B7500BEB8714BE1714BE5710ABD8D529E44EF94 +:104B85000C715397714AE5717BBD713397C09EFCDB +:104B9500609EFD34D4FE5206C0B9A5A592DFF9C6C4 +:104BA500C4C2C061FCC1C5717AFAD450DD0BEA4EAE +:104BB500899E44A64EB450EF33710AE6300400BF17 +:104BC5002401F6BF2A01300B0BBF280100000000AD +:104BD50000000000510FBF28010000000000000088 +:104BE50000500FBF2801712397713397C4C061FC32 +:104BF50061EF520C929269D4FEC1DFF88EFD708E82 +:104C0500FCC12006FBF8FF71503002CEABACCC04E2 +:104C150000F6BB31B2E210617900F6614900DFF3BD +:104C250071603002EDAF4C8E519C03713BE28C03F9 +:104C35005C02D1DD1E8C035C08D1DF0971503002A6 +:104C4500CC0400EFCC8C0570FDB636629E50CC04CA +:104C550002EFBE8C035C03D1DF408E509C02715085 +:104C650030028C04D1DF0E8C0270FDFC36629C058F +:104C7500CC0401EF328C044C02DF0671603002EF88 +:104C850029CF34025A716030028C0270C18C0570D4 +:104C9500FD5E36C0CF34024AEF108C035C01D1DDD6 +:104CA5000671603002EF03ED164C1006C09EFC60E5 +:104CB5009EFD34D4FE5206C0B9A5A592DFF961FC6C +:104CC500C1C3C5C7520C929269D4FEC1DFF88EFDEF +:104CD500708EFCC1710A9E31929E02EFFA8FDEFB47 +:104CE5004F96FFDF198FDFFB4F97FFDF118FE0FB3B +:104CF5004F98FFDF095004C15011FD0236C0710BFA +:104D05009EC09EFC609EFD34D4FE5206C0B9A5A58A +:104D150092DFF9C6C4C2C061FCE46A61FCC1C3C5C7 +:104D2500C7520C929269D4FEC1DFF88EFD708EFCDD +:104D3500C1C1FBF8FF8D1F9C018E31318EE7240622 +:104D450000DD0823DD0E23DD22EF38717AFA8C01B0 +:104D55009D62EF2F717AFA4007F901DF068C019DFC +:104D650061EF2051FF2E019D61EF18717AFA8C01D8 +:104D75009D304004F903DD064004F904DF0530A940 +:104D85002661944031FF09DE05A031FFEF07715818 +:104D9500F000716298710BE3C0C09EFC609EFD340B +:104DA500D4FE5206C0B9A5A592DFF9C6C4C2C0613A +:104DB500FC717BFAC7D46A61F8312499277123996C +:104DC500D46ADD05B46ACEABAC717AFA5600664C8E +:104DD5000ADD1172F3311C79D8FCCEFC0061CA6181 +:104DE500A486EFEA717AFAF2C6D7C7C1C1FBF8FF0C +:104DF500CC01008C014C0ADE36717BFA8C01F03156 +:104E05007E0410FC14A96168DF09AC02B9717AFA55 +:104E1500F2EF1D8C01F0317E127910FC614902DF41 +:104E250006717AFAE2EF09717AFA615901EFC4E283 +:104E35001004C6D7C72004FBF8FFF64210FC61F842 +:104E4500ED1B4F717BFA9C038C034C0ADE3C8C03F3 +:104E5500F0317E0410FC14A96168DF05717AFAEF60 +:104E650029717AFA8C0372F3311C7910FCCEFC009F +:104E750061CA629C02D1DF0A8C03F0317E12E678AA +:104E850010FC717BFA615903EFBECC0200CC010125 +:104E95008C02F0317E0410FC14A96168DD788C0267 +:104EA500F0317E127910FCE743DF658C014C0ADE98 +:104EB5005F8C01F0317E127910FCE743DD4D717B8B +:104EC500FA8C01F0317E0410FC14A96168DF1861C9 +:104ED50069018C01F0317E12F67810FC8C024E01CE +:104EE500DCED717AFAEF2F8C01F0317E0410FC14A1 +:104EF500A9128C02F0317E337810FC8C01F0317EE2 +:104F050012E67810FC615902717AFA615901EF9B3A +:104F1500615902ED954E00F21004C6D761FF520C9F +:104F2500929269D4FEC1DFF88EFD708EFCC1717A54 +:104F3500FA8FE4FB5C03D1DD114004F903DD064083 +:104F450004F904DF0530C2396194C09EFC609EFD02 +:104F550034D4FE5206C0B9A5A592DFF961FC61FC07 +:044F650061FC61FC8E +:0A4F6A0000060C12181E242A30362F +:104F7400ACFB0000000066FE00000000173B493750 +:104F8400BC231E476B2F1A305A46483CCE08093EB4 +:104F940028FC36FE20FE02F903F929FC30FE2AFC27 +:104FA4002BFC08F926FC6CFF1AFF6EFF6AFF64FFF6 +:0A4FB40027FC66FF2CFC55555555EF +:104FBE00FF0000000000983AF82AFF0000004700AA +:104FCE00317503F7332312D714AEF8C716AC061299 +:104FDE00C5AC0416F643DD078B99A7A5B3EFF5C252 +:024FEE00C6D724 +:024FF400325E2B +:0A4FF60031383A30333A303600000B +:00000001FF + \ No newline at end of file diff --git a/snake_branches/info_blue_double/bsr.lmf b/snake_branches/info_blue_double/bsr.lmf new file mode 100644 index 0000000000000000000000000000000000000000..5fa63d910f75c7fd75ed55b32324f64e5b24d032 GIT binary patch literal 183132 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 z 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 chip erase command disabled, otherwise enabled */ +/* bit_1 = 0 -> block erase command disabled, otherwise enabled */ +/* bit_2 = 0 -> write command disabled, otherwise enabled */ +/* bit_4 = 0 -> boot-area re-programming disabled, otherwise enabled */ +/* bit_8...bit_15 = 03H -> last block of the boot-area */ +/* other bits = 1 */ +/* Output: - */ +/* Changed: content of the data_buffer */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetSecurityFlags( fsl_u16 * destination_pu16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: read the boot flag i */ +/* Input: destination_pu08 - destination address of the bootflag info */ +/* The format of the boot-flag info is: "unsigned char" */ +/* The value of the boot info is 0x00 for cluster 0 and 0x01 for cluster 1. */ +/* Output: - */ +/* Changed: content of the data_buffer */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetActiveBootCluster( fsl_u08 * destination_pu08 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: puts the last address of the specified block into *destination_pu32 */ +/* Input: *destination_pu32 - destination where the last-block-address */ +/* should be stored */ +/* block_u16 - block number of the last address is needed */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetBlockEndAddr( fsl_u32 * destination_pu32, + fsl_u16 block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: puts the information about the protected flash area into the function parameter */ +/* Input: *start_block_pu16 - destination where the FSW start block should be stored */ +/* *end_block_pu16 - destination where the FSW end block should be stored */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetFlashShieldWindow( fsl_u16 * start_block_pu16, + fsl_u16 * end_block_pu16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: defines a new Flash-Shield-Window area inside the flash memory */ +/* Input: start_block_u16 - starting block of the Flash-Shield-Window (FSW) */ +/* end_block_u16 - ending block of the flash-Shield-Window (FSW) */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1A(FSL_ERR_ERASE), erase error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_SetFlashShieldWindow( fsl_u16 start_block_u16, + fsl_u16 end_block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: Swapping of bootcluster 0 and 1 */ +/* */ +/* CAUTION !!!! */ +/* After this function the boot cluster are immediately swapped */ +/* Input: - */ +/* Output: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1A(FSL_ERR_ERASE), erase error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_SwapBootCluster( void ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: sets specified security flag by dedicated command-function. */ +/* */ +/* There are following security levels: */ +/* a) chip-erase protection (cannot be reset by programmer !!!) */ +/* b) block-erase protection (can be reset by chip-erase on programmer) */ +/* c) write protection (can be reset by chip-erase on programmer) */ +/* d) boot-cluster protection (cannot be reset by programmer !!!) */ +/* */ +/* CAUTION !!!! */ +/* Each security flag can be written by the application only once */ +/* */ +/* Input: - */ +/* Output: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1A(FSL_ERR_ERASE), erase error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_SetChipEraseProtectFlag( void ); +extern fsl_u08 FSL_SetBlockEraseProtectFlag( void ); +extern fsl_u08 FSL_SetWriteProtectFlag( void ); +extern fsl_u08 FSL_SetBootClusterProtectFlag( void ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: defines the firmware operation method after interrupt service (ISR) execution. */ +/* Input: mode_u08 = 0x00, after RETI the firmware is continuing the interrupted command.*/ +/* = other, after RETI the firmware is interrupted with status 0x1F. */ +/* Changed: - */ +/* Returned: - */ +/*----------------------------------------------------------------------------------------------*/ +extern void FSL_SetInterruptMode( fsl_u08 mode_u08 ); + +#endif diff --git a/snake_branches/info_blue_double/fsl_user.h b/snake_branches/info_blue_double/fsl_user.h new file mode 100644 index 0000000..1018689 --- /dev/null +++ b/snake_branches/info_blue_double/fsl_user.h @@ -0,0 +1,113 @@ +/*==============================================================================================*/ +/* Project = Selfprogramming library for 78K0R/Ix3/Kx3-L Single Voltage SST (MF2) Flash */ +/* Module = fsl_user.h */ +/* Version = V1.01 */ +/* Date = 28.03.2008 11:45:55 */ +/*==============================================================================================*/ +/* COPYRIGHT */ +/*==============================================================================================*/ +/* Copyright (c) 2007 by NEC Electronics (Europe) GmbH, */ +/* a company of the NEC Electronics Corporation */ +/*==============================================================================================*/ +/* Purpose: */ +/* user configurable constant/macros of the selfprogramming library */ +/* */ +/*==============================================================================================*/ +/* */ +/* Warranty Disclaimer */ +/* */ +/* Because the Product(s) is licensed free of charge, there is no warranty of any kind */ +/* whatsoever and expressly disclaimed and excluded by NEC, either expressed or implied, */ +/* including but not limited to those for non-infringement of intellectual property, */ +/* merchantability and/or fitness for the particular purpose. NEC shall not have any obligation */ +/* to maintain, service or provide bug fixes for the supplied Product(s) and/or the Application.*/ +/* */ +/* Each User is solely responsible for determining the appropriateness of using the Product(s) */ +/* and assumes all risks associated with its exercise of rights under this Agreement, */ +/* including, but not limited to the risks and costs of program errors, compliance with */ +/* applicable laws, damage to or loss of data, programs or equipment, and unavailability or */ +/* interruption of operations. */ +/* */ +/* Limitation of Liability */ +/* */ +/* In no event shall NEC be liable to the User for any incidental, consequential, indirect, */ +/* or punitive damage (including but not limited to lost profits) regardless of whether */ +/* such liability is based on breach of contract, tort, strict liability, breach of warranties, */ +/* failure of essential purpose or otherwise and even if advised of the possibility of */ +/* such damages. NEC shall not be liable for any services or products provided by third party */ +/* vendors, developers or consultants identified or referred to the User by NEC in connection */ +/* with the Product(s) and/or the Application. */ +/* */ +/*==============================================================================================*/ +/* Environment: PM plus (V6.30) */ +/* RA78K0(V1.20) */ +/* CC78K0(V2.00) */ +/*==============================================================================================*/ + + +#ifndef __FSL_USER_H_INCLUDED +#define __FSL_USER_H_INCLUDED + + +/*==============================================================================================*/ +/* constant definitions */ +/*==============================================================================================*/ + + +/* specify the CPU frequency in [Hz], only 2MHz....20MHz allowed */ +#define FSL_SYSTEM_FREQUENCY 8000000 + +/* define whether low-voltage mode is used or not */ +/* #define FSL_LOW_VOLTAGE_MODE */ + +/* size of the common data buffer expressed in [bytes] */ +/* the data buffer is used for data-exchange between the firmware and the selflib. */ +//#define FSL_DATA_BUFFER_SIZE 256 +#define FSL_DATA_BUFFER_SIZE 0 + + +/* customizable interrupt controller configuration during selfprogramming period */ +/* Bit --7-------6-------5-------4-------3-------2-------1-------0---------------------- */ +/* MK0L: PMK5 PMK4 PMK3 PMK2 PMK1 PMK0 LVIMK WDTIMK */ +/* MK0H: SREMK0 SRMK0* STMK0* DMAMK1 DMAMK0 SREMK3 SRMK3 STMK3 */ +/* MK1L: TMMK03 TMMK02 TMMK01 TMMK00 IICMK0 SREMK1 SRMK1 STMK1* */ +/* MK1H: TMMK04 SREMK2 SRMK2 STMK2* KRMK RTCIMK RTCMK ADMK */ +/* MK2L: PMK10 PMK9 PMK8 PMK7 PMK6 TMMK07 TMMK06 TMMK05 */ +/* MK2H: 1 1 1 1 1 1 1 PMK11 */ +/*------------------------------------------------------------------------------------------ */ +/* */ +/* Examples: */ +/* ========= */ +/*#define FSL_MK0L_MASK 0xF7 -> allow INTP1 interrupt during selfprogramming */ +/*#define FSL_MK0H_MASK 0xEF -> allow DMA1 interrupt during selfprogramming */ +/*#define FSL_MK1L_MASK 0xBF -> allow TM02 interrupt during selfprogramming */ +/*#define FSL_MK1H_MASK 0xFF -> all interrupts disabled during selfprogramming */ +/*#define FSL_MK2L_MASK 0xF7 -> allow INTP6 interrupt during selfprogramming */ +/*#define FSL_MK2H_MASK 0xFF -> all interrupts disabled during selfprogramming */ +/*------------------------------------------------------------------------------------------ */ +#define FSL_MK0L_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK0H_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK1L_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK1H_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK2L_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK2H_MASK 0xFF /* all interrupts disabled during selfprogramming */ + + +/* FLMD0 control bit */ +#ifndef _WIN32 +#define FSL_FLMD0_HIGH {BECTL.7 = 1;} +#define FSL_FLMD0_LOW {BECTL.7 = 0;} +#else +#define FSL_FLMD0_HIGH {BECTL_7 = 1;} +#define FSL_FLMD0_LOW {BECTL_7 = 0;} +#endif + + +/*----------------------------------------------------------------------------------------------*/ +/* switch interrupt backu functionality ON/OFF using #define/#undef */ +/*----------------------------------------------------------------------------------------------*/ +/* #define FSL_INT_BACKUP */ +#undef FSL_INT_BACKUP + + +#endif diff --git a/snake_branches/info_blue_double/get_ei.asm b/snake_branches/info_blue_double/get_ei.asm new file mode 100644 index 0000000..29f4a6e --- /dev/null +++ b/snake_branches/info_blue_double/get_ei.asm @@ -0,0 +1,26 @@ +$PROCESSOR ( 9F0104 ) + +PUBLIC _get_ei +; +; PSWEIǂݏo܂B +; + + + +ROM_CODE CSEG BASE + +_get_ei: + set1 CY + and1 CY,PSW.7 ; check IE bit. if 0, all interrupts are disabled. + bnc $ie_dis + mov C,#01h + ret + +ie_dis: + mov C,#00h + ret + + + end + + diff --git a/snake_branches/info_blue_double/hal.c b/snake_branches/info_blue_double/hal.c new file mode 100644 index 0000000..e2e72ec --- /dev/null +++ b/snake_branches/info_blue_double/hal.c @@ -0,0 +1,182 @@ +/* ======================================================== + ȈՃeXĝ߂HALC + + $Id: asdf$ + ======================================================== */ +#ifndef _WIN32 +#pragma SFR +#endif + +#include "incs_loader.h" + + +#define WIFI_txLatch PIF21 // dgMpX { led.h Œ` + + +// HALłԂ //////////////////////////////////////// +// ȎȂ琳_ɂr...≽łȂ +bit PM_EXTDC_n; +bit BT_IN_CHG_n; +bit SW_POW_n; +bit SW_HOME_n; +bit SW_WIFI_n; +bit SHELL_OPEN; + +/* +#define REG_BIT_HAL0_PM_EXTDC_n ( 1 << 7 ) +#define REG_BIT_HAL0_BT_IN_CHG_n ( 1 << 6 ) +//#define REG_BIT_HAL0_PM_IRQ_n ( 1 << 5 ) // gȂ +#define REG_BIT_HAL0_WL_TX ( 1 << 4 ) +#define REG_BIT_HAL0_SHELL_OPEN ( 1 << 3 ) +#define REG_BIT_HAL0_SW_WIFI_n ( 1 << 2 ) +#define REG_BIT_HAL0_SW_HOME_n ( 1 << 1 ) +#define REG_BIT_HAL0_SW_POW_n ( 1 << 0 ) + +#define REG_BIT_HAL1_DIPSW_1 ( 1 << 3 ) +#define REG_BIT_HAL1_DIPSW_0 ( 1 << 2 ) +#define REG_BIT_HAL1_HW_DET_1 ( 1 << 1 ) +#define REG_BIT_HAL1_HW_DET_0 ( 1 << 0 ) +*/ + + +// ڂւ +// `^OȂ炱ł(ԃJEg͕) +void hal_update() +{ +#ifdef _ENABLE_HAL_ + u8 temp_conf = vreg_ctr[ VREG_C_HAL_OVW_CONT0 ]; + u8 temp_dat = vreg_ctr[ VREG_C_HAL_OVW_DAT0 ]; +#else + u8 temp_conf = 0x00; + u8 temp_dat = 0; // łǂ +#endif + + // A_v^L + if( temp_conf & REG_BIT_HAL0_PM_EXTDC_n ) + { + // O͂Ȃ񂾂傫Ȃ肪 + if(( temp_dat & REG_BIT_HAL0_PM_EXTDC_n ) == 0 ) + { + PM_EXTDC_n = 0; + } + else + { + PM_EXTDC_n = 1; + } + } + else + { + PM_EXTDC_n = PM_EXTDC_n_RAW; + } + + // [dH + if( temp_conf & REG_BIT_HAL0_BT_IN_CHG_n ) + { + if(( temp_dat & REG_BIT_HAL0_BT_IN_CHG_n ) == 0 ) + { + BT_IN_CHG_n = 0; + } + else + { + BT_IN_CHG_n = 1; + } + } + else + { + BT_IN_CHG_n = BT_IN_CHG_n_RAW; + } + + // dt + if( temp_conf & REG_BIT_HAL0_SW_POW_n ) + { + if(( temp_dat & REG_BIT_HAL0_SW_POW_n ) == 0 ) + { + SW_POW_n = 0 ; + } + else + { + SW_POW_n = 1; + } + } + else + { + SW_POW_n = SW_POW_n_RAW; + } + + // Ɩt + if( temp_conf & REG_BIT_HAL0_SW_HOME_n ) + { + if(( temp_dat & REG_BIT_HAL0_SW_HOME_n ) == 0 ) + { + SW_HOME_n = 0; + } + else + { + SW_HOME_n = 1; + } + } + else + { + if( system_status.model == MODEL_TS_BOARD )// ڑ̃|[gႤ + { + SW_HOME_n = SW_HOME_n_TSBOARD_RAW; + } + else + { + SW_HOME_n = SW_HOME_n_JIKKI_RAW; + } + } + + // J + if( temp_conf & REG_BIT_HAL0_SW_WIFI_n ) + { + if(( temp_dat & REG_BIT_HAL0_SW_WIFI_n ) == 0 ) + { + SW_WIFI_n = 0; + } + else + { + SW_WIFI_n = 1; + } + } + else + { + SW_WIFI_n = SW_WIFI_n_RAW; + } + + // + if( temp_conf & REG_BIT_HAL0_SHELL_OPEN ) + { + if(( temp_dat & REG_BIT_HAL0_SHELL_OPEN ) == 0 ) + { + SHELL_OPEN = 0; + } + else + { + SHELL_OPEN = 1; + } + } + else + { + SHELL_OPEN = SHELL_OPEN_RAW; + } + + // dg + if( temp_conf & REG_BIT_HAL0_WL_TX ) + { + WIFI_txLatch = 1; + } + +} + + + +void hal_reset() +{ + vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = 0; + vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0; + vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] = 0xFF; + vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] = 0xFF; + vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] = 0xFF; +} + diff --git a/snake_branches/info_blue_double/hal.h b/snake_branches/info_blue_double/hal.h new file mode 100644 index 0000000..245be75 --- /dev/null +++ b/snake_branches/info_blue_double/hal.h @@ -0,0 +1,16 @@ +#ifndef _hal_h_ +#define _hal_h_ + + +extern bit PM_EXTDC_n; +extern bit BT_IN_CHG_n; +extern bit SW_POW_n; +extern bit SW_HOME_n; +extern bit SW_WIFI_n; +extern bit SHELL_OPEN; + +// ======================================================== +void hal_update(); +void hal_reset(); + +#endif diff --git a/snake_branches/info_blue_double/hoge.bin b/snake_branches/info_blue_double/hoge.bin new file mode 100644 index 0000000000000000000000000000000000000000..6b58a62994d98bd84fc67a78afcd71d56da7f543 GIT binary patch literal 16387 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 literal 0 HcmV?d00001 diff --git a/snake_branches/info_blue_double/hoge_2.2F.bin b/snake_branches/info_blue_double/hoge_2.2F.bin new file mode 100644 index 0000000000000000000000000000000000000000..6b58a62994d98bd84fc67a78afcd71d56da7f543 GIT binary patch literal 16387 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 literal 0 HcmV?d00001 diff --git a/snake_branches/info_blue_double/i2c_ctr.c b/snake_branches/info_blue_double/i2c_ctr.c new file mode 100644 index 0000000..4bd238e --- /dev/null +++ b/snake_branches/info_blue_double/i2c_ctr.c @@ -0,0 +1,312 @@ +/* ======================================================== + SoC VK`l I2CʐM + cJZ.nintendo + '09 Apr + $Id: i2c_ctr.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 +#pragma interrupt INTIICA1 int_iic_ctr RB1 +#endif + + +#include "incs.h" +#include "rtc.h" +#include "pedometer.h" + + +#ifdef _MCU_BSR_ +// #ifdef _MODEL_TS0_ || _MODEL_WM0_ + +// [LOfI2Ct +// TEG͉H}ŃeR +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR0 IICAPR11 +#define IICAPR1 IICAPR01 +#define IICCTL0 IICCTL10 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#define TRC TRC1 +#define SMC SMC1 +#define DFC DFC1 +#define PortMode PM20 +#define Port P20 + +#endif + + + +// ============================================== +enum en_IIC_STATE +{ + IIC_IDLE = 0, + IIC_RCV_REG_ADRS, + IIC_TX_OR_RX, + IIC_TX, + IIC_RX +}; + + + +// ============================================== +extern bit irq_readed; // ꂩIRQWX^ǂ܂ꂽ + +u8 iic_burst_state; +static enum en_IIC_STATE state = IIC_IDLE; + +#define bit_iics_spd (i2c_stat & (1<<0)) +#define bit_iics_std (i2c_stat & (1<<1)) +#define bit_iics_ackd (i2c_stat & (1<<2)) +#define bit_iics_trc (i2c_stat & (1<<3)) +#define bit_iics_coi (i2c_stat & (1<<4)) + + + +/********************************************//** + isr + + Xe[gɊ荞݂菈i߂ + ***********************************************/ +__interrupt void int_iic_ctr( ) +{ + static u8 reg_adrs; + static u8 tx_buf; + u8 rx_buf; + static u8 adrs_access_from; // o[XgANZX̎Ɏg + + u8 i2c_stat = IICS; // volatilê + + // ǂݏoI + if( !bit_iics_ackd // 荞ݗvNAKif[^M̍Ōj + || bit_iics_spd ) // XgbvRfBV(!ACKD ɗƂ͊荞ݗȂ (SPIE = 0)) + { + /* + I2C̔xẴtOOSTDĂ܂Ƃ + ǁAȂ삷‚ + */ + + // WX^[hŁA荞݃slQ[g + // ܂ǂ܂ĂȂ荞݂΁AēxAT[g + if( irq_readed ) + { + IRQ0_neg; + irq_readed = false; + if( !( (( vreg_ctr[VREG_C_IRQ0] & vreg_ctr[VREG_C_IRQ_MASK0 ] ) == 0 ) + && (( vreg_ctr[VREG_C_IRQ1] & vreg_ctr[VREG_C_IRQ_MASK1 ] ) == 0 ) + && (( vreg_ctr[VREG_C_IRQ2] & vreg_ctr[VREG_C_IRQ_MASK2 ] ) == 0 ) + && (( vreg_ctr[VREG_C_IRQ3] & vreg_ctr[VREG_C_IRQ_MASK3 ] ) == 0 ) )) + { + while( !IRQ0 ){;} // ԉ҂sv + IRQ0_ast; + } + } + + // I2CIɉ镨 // + hosu_read_end( ); // vǂݏoI + rtc_unlock( ); + + state = IIC_IDLE; + SPIE = 0; + LREL = 1; + EI(); + return; + } + + if( bit_iics_std ) // 荞ݗvFX^[gRfBV + { + if( !( state == IIC_IDLE || state == IIC_TX_OR_RX )) + { + // sp/nack 葹˂ +// dbg_nop(); // Ȃ͂... +/* + // pPbg̐擪stƌȂB + // ʂɑs + state = IIC_IDLE; +/*/ + // gCĂ炤 + state = IIC_IDLE; + SPIE = 0; + LREL = 1; + EI(); +//*/ + } + // ʏ + } + + EI(); + + switch ( state ) + { + case ( IIC_IDLE ): + // njĂяoɉB + // Ȃ + iic_burst_state = 0; + SPIE = 1; + WREL = 1; // EFCg + state = IIC_RCV_REG_ADRS; + return; + + case ( IIC_RCV_REG_ADRS ): // QoCgځiWX^AhXjMɗ + // WX^AhXM + reg_adrs = IICA; + + WREL = 1; + adrs_access_from = reg_adrs; + tx_buf = vreg_ctr_read( reg_adrs ); // f[^̏Ă + state = IIC_TX_OR_RX; + return; + + case ( IIC_TX_OR_RX ): // ̎ɗ銄荞݁BSTȂ瑗MAf[^珑܂ + // if( TRC ) // MtO ŋʂ̂́A荞ݒxɕsN肦 + if( bit_iics_std ) + { // X^[gRfBVotO + // [h + if( bit_iics_coi ) + { // AhXvtO + state = IIC_TX; + // no break, no return // + } + else + { + // X^[gňႤfoCXĂ΂ꂽI + SPIE = 0; + LREL = 1; // EFCg? + state = IIC_IDLE; // I + return; + } + } + else + { + state = IIC_RX; // f[^1oCgM̊荞݂ + // no break, no return // + } + /* FALLTHROUGH */ + + default: // o[Xg R/W łĂ΂邱ƂɂȂ + if( state == IIC_TX ) + { // M + IICA = tx_buf; + vreg_ctr_after_read( reg_adrs, tx_buf ); // ǂ񂾂NAȂǂ̏ + } + else + { // M + rx_buf = IICA; + +#ifdef _I2C_ERR_ABORT_ + if( reg_adrs >= 0x80 || reg_adrs <= 1 ) + { + LREL = 1; // Ȃ񂩃f[^̂ŒʐMI nakԂ̂Ȃc + return; + } +#endif + vreg_ctr_write( reg_adrs, rx_buf ); + WREL = 1; + } + + // WX^AhX̃CNg + /// ANZX|C^i߂ȂȃWX^ + switch( adrs_access_from ) + { + case( VREG_C_ACC_HOSU_HIST ): + case( VREG_C_LED_NOTIFY_DATA ): + case( VREG_C_LED_POW ): + case( VREG_CX_INFO ): + case( VREG_CX_FREE_DATA ): + break; + case( VREG_CX_FREE_ADRS ): + if( reg_adrs == VREG_CX_FREE_ADRS ) + { + reg_adrs = VREG_CX_FREE_DATA; + } + break; + default: + reg_adrs ++; + } + + if( state == IIC_TX ) + { // ɂ‚ɑf[^̏VeINBSPĎgȂȂ + tx_buf = vreg_ctr_read( reg_adrs ); + } + break; + } +} + + + +/********************************************//** +@W[ +@ +@todo twl init Ɠ? +@ +@rbg삪̂łĕsoςȂ + ***********************************************/ +void IIC_ctr_Init( void ) +{ + + IICAEN = 1; + + IICE = 0; /* IICA disable */ + + IICAMK = 1; /* INTIICA disable */ + IICAIF = 0; /* clear INTIICA interrupt flag */ + +// IICAPR0 = 1; /* set INTIICA high priority */ +// IICAPR1 = 0; /* set INTIICA high priority */ X^bNs + + Port &= ~0x03; + + SVA = IIC_C_SLAVEADDRESS; + IICF = 0x01; + + STCEN = 1; // X^[g̋ + IICRSV = 1; // ʐM\Ȃ:X[uɓO + + SPIE = 0; // XgbvRfBVł̊荞݂֎~ + WTIM = 1; // ACKԂclkLɌŒ肷 + ACKE = 1; + + IICWH = 9; + IICWL = 11; // LԂ̒ + + SMC = 1; // [h + DFC = 1; // fW^tB^on (@fast mode) + + IICAMK = 0; // 荞݂ + + IICE = 1; + + PortMode &= ~0x03; + + state = IIC_IDLE; +} + + + +/********************************************//** + + ***********************************************/ +void IIC_ctr_Stop( void ) +{ + IICE = 0; /* IICA disable */ + IICAEN = 0; +} + + + diff --git a/snake_branches/info_blue_double/i2c_ctr.h b/snake_branches/info_blue_double/i2c_ctr.h new file mode 100644 index 0000000..16234ff --- /dev/null +++ b/snake_branches/info_blue_double/i2c_ctr.h @@ -0,0 +1,210 @@ +#ifndef _MDSERIAL_A_ +#define _MDSERIAL_A_ + + +/* IIC operation enable (IICE0) */ +#define IIC0_OPERATION 0x80 +#define IIC0_OPERATION_DISABLE 0x00 /* stop operation */ +#define IIC0_OPERATION_ENABLE 0x80 /* enable operation */ + +/* Exit from communications (LREL0) */ +#define IIC0_COMMUNICATION 0x40 +#define IIC0_COMMUNICATION_NORMAL 0x00 /* normal operation */ +#define IIC0_COMMUNICATION_EXIT 0x40 /* exit from current communication */ + +/* Wait cancellation (WREL0) */ +#define IIC0_WAITCANCEL 0x20 +#define IIC0_WAIT_NOTCANCEL 0x00 /* do not cancel wait */ +#define IIC0_WAIT_CANCEL 0x20 /* cancel wait */ + +/* Generation of interrupt when stop condition (SPIE0) */ +#define IIC0_STOPINT 0x10 +#define IIC0_STOPINT_DISABLE 0x00 /* disable */ +#define IIC0_STOPINT_ENABLE 0x10 /* enable */ + +/* Wait and interrupt generation (WTIM0) */ +#define IIC0_WAITINT 0x08 +#define IIC0_WAITINT_CLK8FALLING 0x00 /* generate at the eighth clocks falling edge */ +#define IIC0_WAITINT_CLK9FALLING 0x08 /* generated at the ninth clocks falling edge */ + +/* Acknowledgement control (ACKE0) */ +#define IIC0_ACK 0x04 +#define IIC0_ACK_DISABLE 0x00 /* enable acknowledgement */ +#define IIC0_ACK_ENABLE 0x04 /* disable acknowledgement */ + +/* Start condition trigger (STT0) */ +#define IIC0_STARTCONDITION 0x02 +#define IIC0_START_NOTGENERATE 0x00 /* do not generate start condition */ +#define IIC0_START_GENERATE 0x02 /* generate start condition */ + +/* Stop condition trigger (SPT0) */ +#define IIC0_STOPCONDITION 0x01 +#define IIC0_STOP_NOTGENERATE 0x00 /* do not generate stop condition */ +#define IIC0_STOP_GENERATE 0x01 /* generate stop condition */ + +/* + IIC Status Register 0 (IICS0) +*/ +/* Master device status (MSTS0) */ +#define IIC0_MASTERSTATUS 0x80 +#define IIC0_STATUS_NOTMASTER 0x00 /* slave device status or communication standby status */ +#define IIC0_STATUS_MASTER 0x80 /* master device communication status */ + +/* Detection of arbitration loss (ALD0) */ +#define IIC0_ARBITRATION 0x40 +#define IIC0_ARBITRATION_NO 0x00 /* arbitration win or no arbitration */ +#define IIC0_ARBITRATION_LOSS 0x40 /* arbitration loss */ + +/* Detection of extension code reception (EXC0) */ +#define IIC0_EXTENSIONCODE 0x20 +#define IIC0_EXTCODE_NOT 0x00 /* extension code not received */ +#define IIC0_EXTCODE_RECEIVED 0x20 /* extension code received */ + +/* Detection of matching addresses (COI0) */ +#define IIC0_ADDRESSMATCH 0x10 +#define IIC0_ADDRESS_NOTMATCH 0x00 /* addresses do not match */ +#define IIC0_ADDRESS_MATCH 0x10 /* addresses match */ + +/* Detection of transmit/receive status (TRC0) */ +#define IIC0_STATUS 0x08 +#define IIC0_STATUS_RECEIVE 0x00 /* receive status */ +#define IIC0_STATUS_TRANSMIT 0x08 /* transmit status */ + +/* Detection of acknowledge signal (ACKD0) */ +#define IIC0_ACKDETECTION 0x04 +#define IIC0_ACK_NOTDETECTED 0x00 /* ACK signal was not detected */ +#define IIC0_ACK_DETECTED 0x04 /* ACK signal was detected */ + +/* Detection of start condition (STD0) */ +#define IIC0_STARTDETECTION 0x02 +#define IIC0_START_NOTDETECTED 0x00 /* start condition not detected */ +#define IIC0_START_DETECTED 0x02 /* start condition detected */ + +/* Detection of stop condition (SPD0) */ +#define IIC0_STOPDETECTION 0x01 +#define IIC0_STOP_NOTDETECTED 0x00 /* stop condition not detected */ +#define IIC0_STOP_DETECTED 0x01 /* stop condition detected */ + +/* + IIC Flag Register 0 (IICF0) +*/ +/* STT0 clear flag (STCF) */ +#define IIC0_STARTFLAG 0x80 +#define IIC0_STARTFLAG_GENERATE 0x00 /* generate start condition */ +#define IIC0_STARTFLAG_UNSUCCESSFUL 0x80 /* start condition generation unsuccessful */ + +/* IIC bus status flag (IICBSY) */ +#define IIC0_BUSSTATUS 0x40 +#define IIC0_BUS_RELEASE 0x00 /* bus release status */ +#define IIC0_BUS_COMMUNICATION 0x40 /* bus communication status */ + +/* Initial start enable trigger (STCEN) */ +#define IIC0_STARTWITHSTOP 0x02 +#define IIC0_START_WITHSTOP 0x00 /* generation of a start condition without detecting a stop condition */ +#define IIC0_START_WITHOUTSTOP 0x02 /* generation of a start condition upon detection of a stop condition */ + +/* Communication reservation function disable bit (IICRSV) */ +#define IIC0_RESERVATION 0x01 +#define IIC0_RESERVATION_ENABLE 0x00 /* enable communication reservation */ +#define IIC0_RESERVATION_DISABLE 0x01 /* disable communication reservation */ + +/* + IIC clock selection register 0 (IICCL0) +*/ +#define IICCL0_INITIALVALUE 0x00 +/* Detection of SCL0 pin level (CLD0) */ +#define IIC0_SCLLEVEL 0x20 +#define IIC0_SCL_LOW 0x00 /* clock line at low level */ +#define IIC0_SCL_HIGH 0x20 /* clock line at high level */ + +/* Detection of SDA0 pin level (DAD0) */ +#define IIC0_SDALEVEL 0x10 +#define IIC0_SDA_LOW 0x00 /* data line at low level */ +#define IIC0_SDA_HIGH 0x10 /* data line at high level */ + +/* Operation mode switching (SMC0) */ +#define IIC0_OPERATIONMODE 0x08 +#define IIC0_MODE_STANDARD 0x00 /* operates in standard mode */ +#define IIC0_MODE_HIGHSPEED 0x08 /* operates in high-speed mode */ + +/* Digital filter operation control (DFC0) */ +#define IIC0_DIGITALFILTER 0x04 +#define IIC0_FILTER_OFF 0x00 /* digital filter off */ +#define IIC0_FILTER_ON 0x04 /* digital filter on */ + +/* Operation mode switching (CL01, CL00) */ +#define IIC0_CLOCKSELECTION 0x03 + +/* Combine of (SMC0, CL01, CL00)*/ +#define IIC0_CLOCK0 0x00 +#define IIC0_CLOCK1 0x01 +#define IIC0_CLOCK2 0x02 +#define IIC0_CLOCK3 0x03 +#define IIC0_CLOCK4 0x08 +#define IIC0_CLOCK5 0x09 +#define IIC0_CLOCK6 0x0a +#define IIC0_CLOCK7 0x0b + +/* + IIC function expansion register 0 (IICX0) +*/ +/* IIC clock expension (CLX0) */ +#define IIC0_CLOCKEXPENSION 0x01 +#define IIC0_EXPENSION0 0x00 +#define IIC0_EXPENSION1 0x01 + +/* Operation clock (CLX0, SMC0, CL01, CL00) + | IIC0_EXPENSION0 | IIC0_EXPENSION1 | +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK0 | fprs/2 | prohibited | selection clock(fw) + | fprs/88 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK1 | fprs/2 | prohibited | selection clock(fw) + | fprs/172 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK2 | fprs/2 | prohibited | selection clock(fw) + | fprs/344 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK3 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/66 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK4 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK5 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK6 | fprs/4 | fprs/4 | selection clock(fw) + | fprs/96 | fprs/48 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK7 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/18 | | transfer clock + | high speed | | mode +------------|-------------------|-------------------|---------------------- +*/ + +#define ADDRESS_COMPLETE 0x80 +#define IIC_MASTER_FLAG_CLEAR 0x00 + +/****************************************************************************** + * Macro define + ******************************************************************************/ + + + +/****************************************************************************** + * Function define + ******************************************************************************/ + +void IIC_ctr_Init( void ); +void IIC_ctr_Stop( void ); + + +#endif diff --git a/snake_branches/info_blue_double/i2c_mcu-sub.c b/snake_branches/info_blue_double/i2c_mcu-sub.c new file mode 100644 index 0000000..b1b468c --- /dev/null +++ b/snake_branches/info_blue_double/i2c_mcu-sub.c @@ -0,0 +1,124 @@ +/* ======================================================== + ȈI2CiytFgpjʐM + de JHL cJZ + '09 Feb - + $Id: $ + ======================================================== */ +#ifndef _WIN32 +#pragma sfr +#pragma di +#pragma ei +#pragma nop +#pragma inline // memcpy()CCWJ(̕I) +#endif + +#include "incs.h" +#include "i2c_mcu.h" +#include "loader.h" +#include "util_funcs.h" + +#include "i2c_mcu_sub.h" +#include "pm.h" /// 肽ȂcCODEC̃WX^Ђ + + +// ======================================================== +// [NAEhp +static void iic_mcu_simple_dummy_write(); +static i2c_err iic_mcu_codec_write_low( u8 adrs, u8 dat ); + +// i2c_mcu.c ɂ +extern void iic_mcu_send_re_st( ); +extern void iic_mcu_send_sp( ); +extern i2c_err iic_mcu_send_a_byte( u8 ); +extern i2c_err iic_mcu_call_slave( u8 slave ); + + +/* + yamaha codecspӂɊ荞݂邱Ƃ邪A^XNo^ + ۂɓǂݏoƂɂ͏߂Ȃ̂ʼnȂ悤ɓ͂ +*/ + +/********************************************//** + R[fbN wPoCgx Cg + + iic_mcu_write_a_byte CODECs[NAEh + ***********************************************/ +#define YAMAHA_CODEC_ERRATA_CHECK_MASK ( 0x7D ) +i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ) +{ + u8 pm_reg_original; + i2c_err rv; + + // }ncodec[NAEh SPIƂ̋pWX^̒g擾 + if(( rv = iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 1, &pm_reg_original )) != I2C_ERR_OK ) + { + return( rv ); + } + // phase1 ܂ + + // ݁I + if( ( rv = iic_mcu_codec_write_low( adrs, dat ) ) != I2C_ERR_OK ) + { + return( rv ); + } + + // }ncodec[NAEh + if( ( pm_reg_original & YAMAHA_CODEC_ERRATA_CHECK_MASK ) == 0 ) // ͂߂狤LWX^0eXgȂ + // (& ZbgvĂǂZbĝ) + { + return( I2C_ERR_OK ); + } + + { + // LWX^ 0x00 ɏĂ(Gb^I)悤Ȃ珑߂ + u8 pm_reg_after; + + if(( rv = iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 1, &pm_reg_after )) != I2C_ERR_OK ) + { + return( rv ); + } + + if( ( pm_reg_after & YAMAHA_CODEC_ERRATA_CHECK_MASK ) != 0x00 ) + { + // RtNg͂Ȃ or ZbgvȂ + return( I2C_ERR_OK ); + } + + // else { + rv = iic_mcu_codec_write_low( CODEC_REG_PM, pm_reg_original ); // ߂Aă`FbN͂Ȃ + return ( rv ); // G[Ԃ邱Ƃ邩 + // gCȂǂ͖ + } + return( rv ); // no reach // +} + + +static i2c_err iic_mcu_codec_write_low( u8 adrs, u8 dat ) +{ + IICMK10 = 1; // DMApISRɔ΂Ȃ߂Ƀ}XN + if( iic_mcu_call_slave( IIC_SLA_CODEC ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + iic_mcu_send_a_byte( adrs ); + iic_mcu_send_a_byte( dat ); + + // TI[NAEh + codec_dummy_write(); + + iic_mcu_send_sp( ); + iic_mcu_busy = false; + return( I2C_ERR_OK ); +} + + +// re-stŃ_~[Cg +void codec_dummy_write() +{ + iic_mcu_send_re_st( ); + iic_mcu_send_a_byte( IIC_SLA_CODEC ); // _~[Cg + iic_mcu_send_a_byte( 0x20 ); // S~ĂȂAhX + iic_mcu_send_a_byte( 0xAA ); // ł悢 +} + diff --git a/snake_branches/info_blue_double/i2c_mcu.c b/snake_branches/info_blue_double/i2c_mcu.c new file mode 100644 index 0000000..db007b3 --- /dev/null +++ b/snake_branches/info_blue_double/i2c_mcu.c @@ -0,0 +1,657 @@ +/* ======================================================== + ȈI2CiytFgpjʐM + de JHL cJZ + '09 Feb - + $Id$ + ======================================================== */ +#ifndef _WIN32 +#pragma sfr +#pragma di +#pragma ei +#pragma nop +#pragma inline // memcpy()CCWJ(̕I) +#endif + +#include "incs_loader.h" +#include "i2c_mcu.h" +#include "loader.h" +#include "util_funcs.h" + +#include "i2c_mcu_sub.h" + + + +// ======================================================== +// WX^̃rbg +// vtBbNXbAꕔ̃rbgWX^ɂԂ邽... +// SMR0n +#define bCKS0 ( 1 << 15 ) +#define bCCS0 ( 1 << 14 ) +#define bSTS0 ( 1 << 8 ) +#define bSIS0 ( 1 << 6 ) +#define bMD0n2 ( 1 << 2 ) +#define bMD0n1 ( 1 << 1 ) +#define bMD0n0 ( 1 << 0 ) +#define bSMR0n_FIXEDBIT ( 1 << 5 ) + +// SSR0n +#define bit_TSF0 6 +#define PEF0 ( 1 << 1 ) + +// SIR0n +#define PECT0 ( 1 << 1 ) + +// SCR0n +#define TXE0 ( 1 << 15 ) +#define RXE0 ( 1 << 14 ) +#define SLC02 4 +#define DLS02 0 +#define TSF0 ( 1 << 6 ) + +// SOn +#define TAUS_MASK 0x0B0B; + +// DMCn +#define DRS ( 1 << 6 ) + + + + +// ======================================================== +static void iic_mcu_send_st( ); + +// *sub炵Ă΂Ȃ +void iic_mcu_send_re_st( ); +void iic_mcu_send_sp( ); +i2c_err iic_mcu_send_a_byte( u8 ); +i2c_err iic_mcu_call_slave( u8 slave ); + + +// ======================================================== +bit iic_mcu_wo_dma; +volatile bit iic_mcu_busy; +static volatile bit iic_mcu_initialized; + + +static u8 iic_send_work[4]; +static u8 *p_iic_send_wo_dma_dat; +static u8 iic_send_wo_dma_len; + +// f[^G[iROHMxZTjgĈ +/// Ƃ肠ADMAgp}`oCgCg ̎ɂ@\Ȃ +static u8 last_slave, last_reg_adrs, last_size; + +i2c_err iic_mcu_result; // ꕶ[h̎̓f[^ԂB + +#ifdef i2c_timeout_test +extern bit i2c_mcu_time_out_error; +#endif + + + +/********************************************//** + + ***********************************************/ +void nop8() +{ + // ɗ call 3clk, return 6clk +} + + +/********************************************//** + ̒ʐMÎ҂B + + ^CAEgL + ***********************************************/ +static i2c_err iic_mcu_wait_free() +{ + u16 tot = 0; + + iic_mcu_start( ); + while( 1 ) + { + DI_wt_chk(); + if( !iic_mcu_busy ) + { + iic_mcu_busy = true; + EI(); + break; + } + EI(); + if( ++tot == 0 ) + { +#ifdef i2c_timeout_test + i2c_mcu_time_out_error = true; +#endif + return( I2C_ERR_TIMEOUT ); + } + } + return( I2C_ERR_OK ); +} + + + +/********************************************//** + X[u w1x [h + + Ԓlf[^̂̂łB + + G[R[h iic_mcu_result ɓĂ܂ + ***********************************************/ +u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ) +{ + u8 dat; + + iic_mcu_result = iic_mcu_read( SLA, adrs, 1, &dat ); + + return ( dat ); +} + + + +/********************************************//** + X[ũ[h + + yz + + X[uEFCgRfBVoƂ͋֎~łB + + ̏ꍇłG[oȂǂł܂ + ***********************************************/ +i2c_err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8 * dest ) +{ + +#if 1 + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + // (^CAEg) + return( I2C_ERR_TIMEOUT ); + } +#else + // gpȂA +#endif + + // X^[gRfBVƃX[ǔĂяoAWX^AhX̑M + if( iic_mcu_call_slave( slave ) != 0 ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + + // WX^AhX̑M + iic_mcu_send_a_byte( adrs ); // I܂ŋAĂȂ + + // ΂NAKAĂȂO + + // f[^M // + iic_mcu_send_re_st( ); // X^[gRfBV + iic_mcu_send_a_byte( slave | 0x01 ); // M܂Ŗ߂Ă܂B + + // f[^M + ST0 = 0x0004; // M[hɐݒς̂ŃWbN~ + SCR02 = RXE0 | 1 << SLC02 | 7 << DLS02; // Mݒ + SS0 = 0x0004; // ʐMҋ@ + + do + { + if( len == 1 ) + { + SOE0 = 0x0000; // ŌNAK + } + IICIF10 = 0; + SIO10 = 0xFF; // _~[f[^ƎMJn + while( IICIF10 == 0 ) + {;} // M҂ + + *dest = SIO10; + dest++; + len--; + } + while( len != 0 ); + + if( slave == IIC_SLA_CODEC ) + { + codec_dummy_write(); + } + + iic_mcu_send_sp( ); + + IICIF10 = 0; + iic_mcu_busy = false; + return ( I2C_ERR_OK ); +} + + + + +/********************************************//** + X[u wPoCgx Cg + + O̓]Î҂āACg܂B + + Ԓl@iic_mcu_write@ɓ + ***********************************************/ +i2c_err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ) +{ + // P̎DMAƂNȂłƏI点 + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + return( I2C_ERR_TIMEOUT ); + } + + // X^[gRfBVƃX[ǔĂяo... + IICMK10 = 1; + if( iic_mcu_call_slave( SLA ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return( I2C_ERR_NOSLAVE ); + } + iic_mcu_send_a_byte( adrs ); + iic_mcu_send_a_byte( dat ); + iic_mcu_send_sp( ); + iic_mcu_busy = false; + return ( I2C_ERR_OK ); +} + + + +/********************************************//** + X[uփCg + + WX^ adrs 擪ɁA + + *str + + len܂B + + yz + + X[uEFCgRfBVoƂ͋֎~łB + + ̏ꍇłG[oȂǂł܂ + + DMA1gp܂B + ***********************************************/ +i2c_err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src ) +{ + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + return( I2C_ERR_TIMEOUT ); + } +#if 0 // renge^̃}`^XNɂȂłɂ + // gpȂA +#endif + + // X^[gRfBVƃX[ǔĂяo... + IICMK10 = 1; + IICIF10 = 0; + if( iic_mcu_call_slave( slave ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + + IICIF10 = 0; + if( !iic_mcu_wo_dma ) + { + // DMAgpiʏj// + + // WX^AhX𑗂Af[^̏ + memcpy( iic_send_work, src, 4 ); //obt@Ƃ4oCgpӂĖ߁B + + // gĈ + last_slave = slave; + last_reg_adrs = adrs; + last_size = len; + + // DMAZbg + while( DST1 ) + {;} + + DEN1 = 1; + DSA1 = (u8)( &SIO10 ); + DRA1 = (u16)( &iic_send_work[0] ); + DBC1 = len; + DMC1 = DRS | 8; // RAM -> SFR, 8bit, IRQ, IIC10 + + DMAIF1 = 0; + DMAMK1 = 0; + DST1 = 1; // DEN1 = 12clkȏJ + + SIO10 = adrs; // ςȂI 荞݂DMAX^[g + // c͊荞݃[` + } + else + { + // DMAgpȂ // + + // WX^AhX̑M + IICMK10 = 0; + SIO10 = adrs; + + iic_send_wo_dma_len = len; + p_iic_send_wo_dma_dat = (u8*)src; + // c͊荞݃[` + } + + return ( I2C_ERR_OK ); +} + + + + +/********************************************//** + DMAP]I荞 + + IIC_mcu ̑MR[obN֐̂悤Ȃ + + FDMA]IŁAI2C̓]͏IĂ܂ + +@ 荞ݒȂǂŁADMA1̏xꍇA + IIC10̊荞݂̏łɁA荞݂𔭐ȂȂ + ꂪ܂B܂A@ɂ܂B + + @̂߁ADMAdl̍ق́AŌ̃oCg͑M + tÕ|[OŊmF܂B + ***********************************************/ +__interrupt void int_dma1( ) +{ + static bit in_retry; + + EI(); + + // Ō̃oCg̑M҂ + while( ( SSR02L & TSF0 ) != 0 ) + { + u16 i = 0; + if( ++i == 0 ) // ^CAEgH + { + break; + } + } + + // XgbvRfBVs +// iic_mcu_send_sp(); // ISRŊO̊֐ĂԂ͓̂siėpWX^ҔĵœWJ + { + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // SCL + nop8(); //. |ȂBO̊֐Ă +/* + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); +*/ + SO0 = 0x0400 | TAUS_MASK; // SCL + nop8(); +/* + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); +*/ + SO0 = 0x0404 | TAUS_MASK; + } + + IICMK10 = 1; + + // f[^̓r NAK AxgCB + /// 蔲 + if( SIR02 != 0 ) + { + SIR02 = SSR02; + + if( !in_retry ) + { + in_retry = true; + + IICIF10 = 0; + iic_mcu_call_slave( last_slave ); // NAK͍mPA + + while( DST1 ){;} + DRA1 = (u16)( &iic_send_work[0] ); // CNgĂ܂Ă̂ōăZbg + DBC1 = last_size; // fNgĂ܂Ă̂ōăZbg + // ق̐ݒ͑Ô܂ + + DMAIF1 = 0; + DMAMK1 = 0; + DST1 = 1; + + SIO10 = last_reg_adrs; // ςȂI 荞݂DMAX^[g + return; + // ܂ + } + else + { + // G[xځBmȂ + dbg_nop(); + // ̂܂܏I + } + } + + // I + in_retry = false; + DMAMK1 = 1; + DEN1 = 0; + iic_mcu_busy = false; +} + + + +/********************************************//** + IIC MCŨoCgo荞 + + DMAgp͎gp܂B + + @̊荞ݏDMÅ荞݂ɂ΂ȂꍇA + @IIC荞݂̃ZbgԂɍ킸邱Ƃ܂B + ***********************************************/ +__interrupt void int_iic10( ) +{ + EI(); + if( iic_send_wo_dma_len != 0 ) // ܂MĂȂH + { + SIO10 = *p_iic_send_wo_dma_dat; + p_iic_send_wo_dma_dat ++; + iic_send_wo_dma_len --; + return; + // ܂ // + } + + // Ō̃oCgMAXgbvRfBVs + IICMK10 = 1; +// iic_mcu_send_sp(); // ISRŊO̊֐ĂԂ͓̂siėpWX^ҔĵœWJ + { + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // clear SCL + NOP(); NOP(); NOP(); NOP(); // NOP8Ăł͂ + NOP(); NOP(); NOP(); NOP(); + SO0 = 0x0400 | TAUS_MASK; // set SCL + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); + SO0 = 0x0404 | TAUS_MASK; // set CSL adn SDA + } + + iic_mcu_wo_dma = false; + iic_mcu_busy = false; +} + + + +/********************************************//** + X[ǔĂяo + +@X[uAhXĂŁAACK̊mFB + + ACK@@@@@@@@@@@@@@@@@@ԁFI2C_ERR_OK + +@NACK @XgbvRfBVoB@ԁFI2C_ERR_NOSLAVE + ***********************************************/ +i2c_err iic_mcu_call_slave( u8 slave ) +{ + iic_mcu_send_st( ); + +/* +// dbg + if( SSR02 != 0 ) + { + P1.5 = P1.0 = P1.3 = 1; + } +*/ + + SIR02 = SSR02; // NAKG[̃tONA + if( iic_mcu_send_a_byte( slave ) != I2C_ERR_OK ) + { + iic_mcu_send_sp( ); + return ( I2C_ERR_NOSLAVE ); // w̃X[uȂ + } + + return ( I2C_ERR_OK ); +} + + + +/********************************************//** + قƂɂPoCĝ + + I܂ŋA܂ + ***********************************************/ +i2c_err iic_mcu_send_a_byte( u8 dat ) +{ + IICMK10 = 1; + IICIF10 = 0; + SIO10 = dat; + while( IICIF10 == 0 ) + { +// NOP( ); + } // ʐM + + if( SSR02 != 0 ) // 炩G[? + { + SIR02 = SSR02; // G[NA + return( I2C_ERR_NAK ); + } + return( I2C_ERR_OK ); +} + + + +/********************************************//** + X^[gRfBV𔭍s + + \tgEFA + ***********************************************/ +static void iic_mcu_send_st( ) +{ + SO0 &= ~0x0004; // SDA + nop8(); + + SO0 &= ~0x0400; // SCL + SOE0 = 0x0004; // n[h + + SCR02 = TXE0 | 1 << SLC02 | 7 << DLS02; // MAf[^͂WrbgP + SS0 = 0x0004; // ʐMҋ@ +} + + + +/********************************************//** + X^[gs + ***********************************************/ +void iic_mcu_send_re_st( ) +{ + ST0 |= 0x0004; + SO0 |= 0x0400 | TAUS_MASK; // ( SDA = H ), SCL -> H + nop8(); + + SOE0 &= ~0x0004; // ( SCL = H ), SDA -> L + nop8(); + + iic_mcu_send_st( ); +} + + + +/********************************************//** + XgbvRfBVs + + ̑OɁAuŌ̃oCg̑Mv̎ɑOKvłB + ***********************************************/ +void iic_mcu_send_sp( ) +{ + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // SCL + nop8(); + + SO0 = 0x0400 | TAUS_MASK; // SCL + nop8(); + + SO0 = 0x0404 | TAUS_MASK; +} + + + + +/********************************************//** + ytFW[̏ + ***********************************************/ +void iic_mcu_start( ) +{ + if( iic_mcu_initialized ) + { + return; + } + + iic_mcu_busy = true; +// DST1 = 0; + + I2C_PU_on(); +// DEN1 = 0; // DST1 = 0 2clḱADSTn==0|[OĂ + + wait_ms( 1 ); // オ̂50usʂ + + SAU0EN = 1; + nop8(); + + SPS0 = 0x0000; // VAjbg̃NbNOB(8M/2)/1 + SMR02 = bSMR0n_FIXEDBIT | bMD0n2; // ȈI2Cɐݒ + SDR02 = 10 << 9; // {[[gݒ 8M/1/(x+1)/2 + + SO0 = 0x0404 | TAUS_MASK; // ŏHH + iic_mcu_wo_dma = false; + + + // oX̃Zbg + { + IICIF10 = 0; + IICMK10 = 1; + + iic_mcu_send_st(); + + SIO10 = 0xFF; + while( IICIF10 == 0 ){;} // ʐM + iic_mcu_send_sp(); + + SIR02 = SSR02; + } + + iic_mcu_busy = false; + iic_mcu_initialized = true; +} + + + +/********************************************//** + W[̒~ + + ēxgƂ͏Kv + ***********************************************/ +void iic_mcu_stop( ) +{ + while( iic_mcu_busy ) + {;} // DMA쒆͂҂ + iic_mcu_send_re_st( ); // SCL,SDALLɂ + I2C_PU_off(); + SAU0EN = 0; + iic_mcu_initialized = false; +} + diff --git a/snake_branches/info_blue_double/i2c_mcu.h b/snake_branches/info_blue_double/i2c_mcu.h new file mode 100644 index 0000000..16eeba8 --- /dev/null +++ b/snake_branches/info_blue_double/i2c_mcu.h @@ -0,0 +1,40 @@ +#ifndef __ic2_mcu__ +#define __ic2_mcu__ + + +// ======================================================== +typedef enum{ + I2C_ERR_OK = 0, + I2C_ERR_NAK, + I2C_ERR_NOSLAVE, + I2C_ERR_TIMEOUT, + I2C_ERR_UNDEF = 0xFF +}i2c_err; + + + +// ======================================================== +extern volatile bit iic_mcu_busy; +extern bit iic_mcu_wo_dma; + +extern i2c_err iic_mcu_result; + + +// ======================================================== +i2c_err iic_mcu_read( u8 SLA, u8 adrs, u8 len, u8 * dest ); +u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ); + +i2c_err iic_mcu_write( u8 SLA, u8 adrs, u8 len, void * src ); +i2c_err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ); + +i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ); // codecoO@\t + + +// ̒ʐM܂B +#define iic_mcu_set_wo_dma() { while( iic_mcu_busy ){;} iic_mcu_wo_dma = true; } + +void iic_mcu_start( ); +void iic_mcu_stop( ); + + +#endif diff --git a/snake_branches/info_blue_double/i2c_mcu_sub.h b/snake_branches/info_blue_double/i2c_mcu_sub.h new file mode 100644 index 0000000..a2c192e --- /dev/null +++ b/snake_branches/info_blue_double/i2c_mcu_sub.h @@ -0,0 +1,9 @@ +#ifndef __ic2_mcu_sub__ +#define __ic2_mcu_sub__ + +// $Id: asdf$ + +i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ); +void codec_dummy_write( void ); + +#endif diff --git a/snake_branches/info_blue_double/i2c_twl.c b/snake_branches/info_blue_double/i2c_twl.c new file mode 100644 index 0000000..3c91ce8 --- /dev/null +++ b/snake_branches/info_blue_double/i2c_twl.c @@ -0,0 +1,246 @@ +/* ======================================================== + TWL ݊I2C + + $Id: i2c_twl.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr /* @\WX^gp */ + +#endif + + +/*============================================================================*/ +#ifndef _WIN32 +# pragma interrupt INTIICA0 int_iic_twl RB2 +#endif + +#include "incs_loader.h" +#include "i2c_twl_defs.h" +#include "i2c_twl.h" +#include "vreg_twl.h" +#include "WDT.h" + + +#ifdef _MCU_BSR_ +//#ifdef _MODEL_TS0_ || _MODEL_WM0_ + +// [LOfI2Ct +#define ACKD ACKD0 +#define ACKE ACKE0 +#define COI COI0 +#define IICAEN IICA0EN +#define IICRSV IICRSV0 +#define IICA IICA0 +#define IICAIF IICAIF0 +#define IICAMK IICAMK0 +#define IICAPR0 IICAPR00 +#define IICAPR1 IICAPR10 +#define IICCTL0 IICCTL00 +#define IICE IICE0 +#define IICF IICF0 +#define IICS IICS0 +#define IICWH IICWH0 +#define IICWL IICWL0 +#define LREL LREL0 +#define SPD SPD0 +#define SPIE SPIE0 +#define STCEN STCEN0 +#define STD STD0 +#define SVA SVA0 +#define WREL WREL0 +#define WTIM WTIM0 +#define SMC SMC0 +#define TRC TRC0 +#define DFC DFC0 +#define PortMode PM6 +#define Port P6 + +#endif // _MCU_BSR_ + +#ifndef _MCU_BSR_ + +// ke3̎̓_~[֐ +void IIC_twl_Stop( void ) +{ +} +void IIC_twl_Init( void ) +{ +} +#else // _MCU_BSR_ + + + +enum IIC_TWL_STATE{ + WAIT_ADRS = 0, + WAIT_DATA, + DATA_READED +}; + + + + +/*============================================================================*/ + +// I@̓}NȂ̂ŁAreturn̓C[vɖ߂܂B +#define wait_next { \ + tot = 0; \ + while( IICAIF != 1 ){ \ + tot ++; \ + if( tot == 0 ){ \ + LREL = 1; \ + return; \ + } \ + } \ +} + + +/********************************************//** + isr + + TWL̓EFCg𗝉ĂꂸA܂Ao[XgR/W + ȂłĂ̂ŁAXgbvRfBV܂ňCɂĂ܂B + ***********************************************/ +__interrupt void int_iic_twl( ) +{ + u8 vreg_adrs; + u8 state; + + // @ + WREL = 1; // EFCgĎ̃oCg҂ + WDT_Restart(); + state = WAIT_ADRS; + + while( 1 ) + { + u8 my_iics; + + { + u16 tot; + wait_next; // PoCgM҂ + } + + my_iics = IICS; + IICAIF = 0; + + if( my_iics & 0x02 ) // ( STD && !SPD ) + { + // X^[gRfBV + if( ( my_iics & 0x08 ) == 0 ) // ( TRC ) MtO 0:}CRM + { + // @f}CRłATWLgCƂƂ + // ɗ̂̓X[uĂяo̎ // + WREL = 1; + state = WAIT_ADRS; + /// WX^AhX̂҂ + } + else + { + // BR Rł̃X[uĂяo(X^[gRfBV) // + IICA = vreg_twl_read( vreg_adrs ); // f[^M + // Xgbv҂ALREL = 1 ɂȂƁAMobt@j󂳂邱Ƃ + state = DATA_READED; + } + } + else if( ( my_iics & 0x03 ) == 0 ) // ( !STD && !SPD ) + { + u8 rcvd; + + // 炩M + rcvd = IICA; + WREL = 1; + + if( state == WAIT_ADRS ) + { + // A + vreg_adrs = adrs_table_twl_ext2int( rcvd ); + /// f[^邩AX^[gœǂݏô҂ + state = WAIT_DATA; + } + else if( state == DATA_READED ) + { + // f[^1oCgM㔭 + LREL = 1; + return; + } + else + { + // BW + // f[^܂ + SVA = 0x5A; // _~[ + LREL = 1; // X^[gRfBV҂(AݖΉ̂) + vreg_twl_write( vreg_adrs, rcvd ); + SVA = IIC_T_SLAVEADDRESS; + return; // M܂ // + } + } + else if( my_iics & 0x01 ) // SPD + { + // I + LREL = 1; + return; + } + else + { + // NOP(); + } + } +} + + + +/********************************************//** + W[ + ***********************************************/ +void IIC_twl_Init( void ) +{ + + IICAEN = 1; + + IICE = 0; /* IICA disable */ + + IICAMK = 1; /* INTIICA disable */ + IICAIF = 0; /* clear INTIICA interrupt flag */ + + IICAPR0 = 0; /* set INTIICA high priority */ + IICAPR1 = 0; /* set INTIICA high priority */ + Port &= ~0x03; + + SVA = IIC_T_SLAVEADDRESS; + IICF = 0x01; + + STCEN = 1; // X^[g̋ + IICRSV = 1; // ʐM\Ȃ:X[uɓO + + SPIE = 0; // XgbvRfBVł̊荞݂֎~ + WTIM = 1; // ACKԂclkLɌŒ肷 + ACKE = 1; // _CPU͖Ď̒ʐM͂߂邩ȂőclkJȂƂȂ + + IICWH = 9; + IICWL = 11; // LԂ̒iHj + + SMC = 1; + DFC = 1; // fW^tB^on (@fast mode) + + IICAMK = 0; // 荞݂ + + IICE = 1; + + PortMode &= ~0x03; + + LREL = 1; +} + + + +/********************************************//** + W[~ + ***********************************************/ +void IIC_twl_Stop( void ) +{ + IICE = 0; /* IICA disable */ + IICAEN = 0; +} + + +#endif diff --git a/snake_branches/info_blue_double/i2c_twl.h b/snake_branches/info_blue_double/i2c_twl.h new file mode 100644 index 0000000..0f608b0 --- /dev/null +++ b/snake_branches/info_blue_double/i2c_twl.h @@ -0,0 +1,7 @@ +#ifndef _iic_twl_ +#define _iic_twl_ + +void IIC_twl_Init( void ); +void IIC_twl_Stop( void ); + +#endif diff --git a/snake_branches/info_blue_double/i2c_twl_defs.h b/snake_branches/info_blue_double/i2c_twl_defs.h new file mode 100644 index 0000000..be5d566 --- /dev/null +++ b/snake_branches/info_blue_double/i2c_twl_defs.h @@ -0,0 +1,196 @@ +#ifndef _MDSERIAL_ +#define _MDSERIAL_ + + +/* IIC operation enable (IICE0) */ +#define IIC0_OPERATION 0x80 +#define IIC0_OPERATION_DISABLE 0x00 /* stop operation */ +#define IIC0_OPERATION_ENABLE 0x80 /* enable operation */ + +/* Exit from communications (LREL0) */ +#define IIC0_COMMUNICATION 0x40 +#define IIC0_COMMUNICATION_NORMAL 0x00 /* normal operation */ +#define IIC0_COMMUNICATION_EXIT 0x40 /* exit from current communication */ + +/* Wait cancellation (WREL0) */ +#define IIC0_WAITCANCEL 0x20 +#define IIC0_WAIT_NOTCANCEL 0x00 /* do not cancel wait */ +#define IIC0_WAIT_CANCEL 0x20 /* cancel wait */ + +/* Generation of interrupt when stop condition (SPIE0) */ +#define IIC0_STOPINT 0x10 +#define IIC0_STOPINT_DISABLE 0x00 /* disable */ +#define IIC0_STOPINT_ENABLE 0x10 /* enable */ + +/* Wait and interrupt generation (WTIM0) */ +#define IIC0_WAITINT 0x08 +#define IIC0_WAITINT_CLK8FALLING 0x00 /* generate at the eighth clocks falling edge */ +#define IIC0_WAITINT_CLK9FALLING 0x08 /* generated at the ninth clocks falling edge */ + +/* Acknowledgement control (ACKE0) */ +#define IIC0_ACK 0x04 +#define IIC0_ACK_DISABLE 0x00 /* enable acknowledgement */ +#define IIC0_ACK_ENABLE 0x04 /* disable acknowledgement */ + +/* Start condition trigger (STT0) */ +#define IIC0_STARTCONDITION 0x02 +#define IIC0_START_NOTGENERATE 0x00 /* do not generate start condition */ +#define IIC0_START_GENERATE 0x02 /* generate start condition */ + +/* Stop condition trigger (SPT0) */ +#define IIC0_STOPCONDITION 0x01 +#define IIC0_STOP_NOTGENERATE 0x00 /* do not generate stop condition */ +#define IIC0_STOP_GENERATE 0x01 /* generate stop condition */ + +/* + IIC Status Register 0 (IICS0) +*/ +/* Master device status (MSTS0) */ +#define IIC0_MASTERSTATUS 0x80 +#define IIC0_STATUS_NOTMASTER 0x00 /* slave device status or communication standby status */ +#define IIC0_STATUS_MASTER 0x80 /* master device communication status */ + +/* Detection of arbitration loss (ALD0) */ +#define IIC0_ARBITRATION 0x40 +#define IIC0_ARBITRATION_NO 0x00 /* arbitration win or no arbitration */ +#define IIC0_ARBITRATION_LOSS 0x40 /* arbitration loss */ + +/* Detection of extension code reception (EXC0) */ +#define IIC0_EXTENSIONCODE 0x20 +#define IIC0_EXTCODE_NOT 0x00 /* extension code not received */ +#define IIC0_EXTCODE_RECEIVED 0x20 /* extension code received */ + +/* Detection of matching addresses (COI0) */ +#define IIC0_ADDRESSMATCH 0x10 +#define IIC0_ADDRESS_NOTMATCH 0x00 /* addresses do not match */ +#define IIC0_ADDRESS_MATCH 0x10 /* addresses match */ + +/* Detection of transmit/receive status (TRC0) */ +#define IIC0_STATUS 0x08 +#define IIC0_STATUS_RECEIVE 0x00 /* receive status */ +#define IIC0_STATUS_TRANSMIT 0x08 /* transmit status */ + +/* Detection of acknowledge signal (ACKD0) */ +#define IIC0_ACKDETECTION 0x04 +#define IIC0_ACK_NOTDETECTED 0x00 /* ACK signal was not detected */ +#define IIC0_ACK_DETECTED 0x04 /* ACK signal was detected */ + +/* Detection of start condition (STD0) */ +#define IIC0_STARTDETECTION 0x02 +#define IIC0_START_NOTDETECTED 0x00 /* start condition not detected */ +#define IIC0_START_DETECTED 0x02 /* start condition detected */ + +/* Detection of stop condition (SPD0) */ +#define IIC0_STOPDETECTION 0x01 +#define IIC0_STOP_NOTDETECTED 0x00 /* stop condition not detected */ +#define IIC0_STOP_DETECTED 0x01 /* stop condition detected */ + +/* + IIC Flag Register 0 (IICF0) +*/ +/* STT0 clear flag (STCF) */ +#define IIC0_STARTFLAG 0x80 +#define IIC0_STARTFLAG_GENERATE 0x00 /* generate start condition */ +#define IIC0_STARTFLAG_UNSUCCESSFUL 0x80 /* start condition generation unsuccessful */ + +/* IIC bus status flag (IICBSY) */ +#define IIC0_BUSSTATUS 0x40 +#define IIC0_BUS_RELEASE 0x00 /* bus release status */ +#define IIC0_BUS_COMMUNICATION 0x40 /* bus communication status */ + +/* Initial start enable trigger (STCEN) */ +#define IIC0_STARTWITHSTOP 0x02 +#define IIC0_START_WITHSTOP 0x00 /* generation of a start condition without detecting a stop condition */ +#define IIC0_START_WITHOUTSTOP 0x02 /* generation of a start condition upon detection of a stop condition */ + +/* Communication reservation function disable bit (IICRSV) */ +#define IIC0_RESERVATION 0x01 +#define IIC0_RESERVATION_ENABLE 0x00 /* enable communication reservation */ +#define IIC0_RESERVATION_DISABLE 0x01 /* disable communication reservation */ + +/* + IIC clock selection register 0 (IICCL0) +*/ +#define IICCL0_INITIALVALUE 0x00 +/* Detection of SCL0 pin level (CLD0) */ +#define IIC0_SCLLEVEL 0x20 +#define IIC0_SCL_LOW 0x00 /* clock line at low level */ +#define IIC0_SCL_HIGH 0x20 /* clock line at high level */ + +/* Detection of SDA0 pin level (DAD0) */ +#define IIC0_SDALEVEL 0x10 +#define IIC0_SDA_LOW 0x00 /* data line at low level */ +#define IIC0_SDA_HIGH 0x10 /* data line at high level */ + +/* Operation mode switching (SMC0) */ +#define IIC0_OPERATIONMODE 0x08 +#define IIC0_MODE_STANDARD 0x00 /* operates in standard mode */ +#define IIC0_MODE_HIGHSPEED 0x08 /* operates in high-speed mode */ + +/* Digital filter operation control (DFC0) */ +#define IIC0_DIGITALFILTER 0x04 +#define IIC0_FILTER_OFF 0x00 /* digital filter off */ +#define IIC0_FILTER_ON 0x04 /* digital filter on */ + +/* Operation mode switching (CL01, CL00) */ +#define IIC0_CLOCKSELECTION 0x03 + +/* Combine of (SMC0, CL01, CL00)*/ +#define IIC0_CLOCK0 0x00 +#define IIC0_CLOCK1 0x01 +#define IIC0_CLOCK2 0x02 +#define IIC0_CLOCK3 0x03 +#define IIC0_CLOCK4 0x08 +#define IIC0_CLOCK5 0x09 +#define IIC0_CLOCK6 0x0a +#define IIC0_CLOCK7 0x0b + +/* + IIC function expansion register 0 (IICX0) +*/ +/* IIC clock expension (CLX0) */ +#define IIC0_CLOCKEXPENSION 0x01 +#define IIC0_EXPENSION0 0x00 +#define IIC0_EXPENSION1 0x01 + +/* Operation clock (CLX0, SMC0, CL01, CL00) + | IIC0_EXPENSION0 | IIC0_EXPENSION1 | +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK0 | fprs/2 | prohibited | selection clock(fw) + | fprs/88 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK1 | fprs/2 | prohibited | selection clock(fw) + | fprs/172 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK2 | fprs/2 | prohibited | selection clock(fw) + | fprs/344 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK3 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/66 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK4 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK5 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK6 | fprs/4 | fprs/4 | selection clock(fw) + | fprs/96 | fprs/48 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK7 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/18 | | transfer clock + | high speed | | mode +------------|-------------------|-------------------|---------------------- +*/ + +#define ADDRESS_COMPLETE 0x80 +#define IIC_MASTER_FLAG_CLEAR 0x00 + +#endif diff --git a/snake_branches/info_blue_double/incs.h b/snake_branches/info_blue_double/incs.h new file mode 100644 index 0000000..f9c1c4a --- /dev/null +++ b/snake_branches/info_blue_double/incs.h @@ -0,0 +1,44 @@ +#ifndef _WIN32 +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#endif + +#ifndef _WIN32 +#pragma section @@CODE ROM_CODE +//#pragma section @@CNST ROM_CNST +#endif + +#ifdef _WIN32 +// VC̐Ԑǂɂ +#include "sim/simOnWin.h" +# endif + + + +//========================================================= +#ifndef _incs_h_ +#define _incs_h_ + +// v_pc_ƂŐ؂ւĂ܂ +#define _mcu_ + +#include "jhl_defs.h" +#include "config.h" +#include "user_define.h" + +#include "hal.h" + +#include "bsr_system.h" +#include "renge\renge.h" + +#include "vreg_ctr.h" + +#include "util_funcs.h" + +//========================================================= + +#endif diff --git a/snake_branches/info_blue_double/incs_loader.h b/snake_branches/info_blue_double/incs_loader.h new file mode 100644 index 0000000..0569b9f --- /dev/null +++ b/snake_branches/info_blue_double/incs_loader.h @@ -0,0 +1,49 @@ +/* ======================================================== + @sԂvolatileȂ̂Ń^C~OˑŊ҂ȂɂȂ̂@ + + Hardware abstruct layer + + $Id: asdf$ + ======================================================== */ +#ifndef _WIN32 +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt + + +#pragma section @@CODE LDR_CODE +#pragma section @@CODEL LDR_CODL + +//#pragma section @@R_INIT FSL_RINT // ƃX^[gAbv[`l +//#pragma section @@CNST FSL_CNST // ZbgĂȂ +#pragma section @@CNSTL LDR_CNSL + +#endif + +# ifdef _WIN32 +// VC̐Ԑǂɂ +#include "sim/simOnWin.h" +# endif + + +//========================================================= +#include "jhl_defs.h" +#include "config.h" + +#include "user_define.h" + +#include "hal.h" + +#include "bsr_system.h" +#include "renge\renge.h" + +#include "vreg_ctr.h" +#include "vreg_twl.h" + + +//========================================================= +void firm_update( ); +void firm_restore( ); diff --git a/snake_branches/info_blue_double/ini_VECT.c b/snake_branches/info_blue_double/ini_VECT.c new file mode 100644 index 0000000..84da25c --- /dev/null +++ b/snake_branches/info_blue_double/ini_VECT.c @@ -0,0 +1,347 @@ +/* ======================================================== + 荞݃xN^e[u + $Id$ + ======================================================== */ + +#ifndef _WIN32 + +#pragma nop + +#endif + +#include "config.h" + +#ifndef _WIN32 + +#ifdef _WDT_CHECK_ +#pragma interrupt INTWDTI fn_intwdti // wdt debug +#endif + +//#pragma interrupt INTLVI fn_intlvi // gp + +//#pragma interrupt INTP0 intp0_slp // SLP (CPUAv) |[O +//#pragma interrupt INTP1 fn_intp1 // (I2C) +//#pragma interrupt INTP2 fn_intp2 // (I2C) +//#pragma interrupt INTP3 fn_intp3 // +#pragma interrupt INTP4 intp4_extdc // EXTDC, doffN̂݁Bʏ̓|[O +#pragma interrupt INTP5 intp5_shell // SHELL_CLOSE, doffN̂݁Bʏ̓|[O +#pragma interrupt INTP6 intp6_PM_irq // CODECoRŋPMICւ̃R}h + +//#ifdef _MCU_BSR_ // 荞݂͎̂̂g܂ +//#pragma interrupt INTP21 intp21_RFTx // dgMpX +//#else +//#pragma interrupt INTP7 intp21_RFTx +//#endif + + +/* + + accero +#ifdef _MCU_BSR_ +#pragma interrupt INTP23 intp23_ACC_ready RB3 // xZTAf[^ +#endif +*/ + +//#pragma interrupt INTCMP0 fn_intcmp0 +//#pragma interrupt INTCMP1 fn_intcmp1 +//#pragma interrupt INTDMA0 fn_intdma0 +#pragma interrupt INTDMA1 int_dma1 + +//#pragma interrupt INTST0 fn_intst0 +/* #pragma interrupt INTCSI00 fn_intcsi00 */ +//#pragma interrupt INTSR0 fn_intsr0 +/* #pragma interrupt INTCSI01 fn_intcsi01 */ +//#pragma interrupt INTSRE0 fn_intsre0 + +//#pragma interrupt INTST1 fn_intst1 +/* #pragma interrupt INTCSI10 fn_intcsi10 */ +#pragma interrupt INTIIC10 int_iic10 +//#pragma interrupt INTSR1 fn_intsr1 +//#pragma interrupt INTSRE1 fn_intsre1 + + +/* +// TS̓}U{ŃeRAWM͉H}eRŌLjvc +#pragma interrupt INTIICA1 int_iic_ctr RB1 + +#pragma interrupt INTIICA0 int_iic_twl RB2 +*/ + +//#pragma interrupt INTTM00 fn_inttm00 +//#pragma interrupt INTTM01 fn_inttm01 +//#pragma interrupt INTTM02 fn_inttm02 +//#pragma interrupt INTTM03 fn_inttm03 + +#pragma interrupt INTAD int_adc +#pragma interrupt INTRTC int_rtc +#pragma interrupt INTRTCI int_rtc_int +#pragma interrupt INTKR int_kr +//#pragma interrupt INTMD fn_intmd + +//#pragma interrupt INTTM04 fn_inttm04 +//#pragma interrupt INTTM05 fn_inttm05 +//#pragma interrupt INTTM06 fn_inttm06 +//#pragma interrupt INTTM07 fn_inttm07 + + +//#define _irq_debug_ +/****************************************************/ +/* gp̃_~[֐` */ +/****************************************************/ +#ifdef _WDT_CHECK_ +__interrupt void fn_intwdti( ) +{ + while( 1 ) + { + NOP(); + } +} +#endif + +#ifdef _irq_debug_ +__interrupt void fn_intlvi( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intp0(){ +while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intp1( ) +{ + while( 1 ) + { + NOP(); + } +} // +__interrupt void fn_intp2( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intp3( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void intp21_RFTx( ) +{ + while( 1 ) + { + NOP(); + } +} + + +//__interrupt void fn_intp4(){ while(1){} } // pm.c +//__interrupt void fn_intp5(){ while(1){} } // pm.c +//__interrupt void fn_intp6(){ while(1){} } // pm.c +//__interrupt void fn_intp7(){ while(1){} } // led.c +//__interrupt void fn_intp21(){ while(1){} } // led.c + +__interrupt void fn_intcmp0( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intcmp1( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intdma0( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void fn_intdma1(){} // i2c_mcu.cɂ + +__interrupt void fn_intst0( ) +{ + while( 1 ) + { + NOP(); + } +} + +/* __interrupt void fn_intcsi00(){} */ +__interrupt void fn_intsr0( ) +{ + while( 1 ) + { + NOP(); + } +} + +/* __interrupt void fn_intcsi01(){} */ +__interrupt void fn_intsre0( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intst1( ) +{ + while( 1 ) + { + NOP(); + } +} + +/* __interrupt void fn_intcsi10(){} */ +//__interrupt void fn_intiic10(){ while(1){} } +__interrupt void fn_intsr1( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intsre1( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void fn_intiica(){} // i2c.cɂ +/* __interrupt void fn_inttm00(){} *//* sub.cɂĒ` */ +__interrupt void fn_inttm01( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm02( ) +{ + while( 1 ) + { + NOP(); + } +} +__interrupt void fn_inttm03( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void fn_intad(){ while(1){} } // adc.c +__interrupt void fn_intrtc( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void int_rtcint(){} // rtc.cɂ +//__interrupt void fn_intkr(){} // main.c +__interrupt void fn_intmd( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm04( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm05( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm06( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm07( ) +{ + while( 1 ) + { + NOP(); + } +} + +#endif + + + +/* ======================================================== + L[^[荞 + ======================================================== */ +__interrupt void int_kr( ) +{ + // N邾 +} + + + +/* ======================================================== + ext dc + ======================================================== */ +__interrupt void intp4( ) +{ + // N邾 +} + + + +/* ======================================================== + shell close + ======================================================== */ +__interrupt void intp5( ) +{ + // N邾 +} + + +#else + +#include "sim/sim_interrupt_decrare.c" + +#endif + diff --git a/snake_branches/info_blue_double/jhl_defs.h b/snake_branches/info_blue_double/jhl_defs.h new file mode 100644 index 0000000..9a21ab3 --- /dev/null +++ b/snake_branches/info_blue_double/jhl_defs.h @@ -0,0 +1,25 @@ +#ifndef __jhl_defs_h__ +#define __jhl_defs_h__ + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef signed short s16; + +typedef unsigned short ux16; +typedef signed short sx16; + +#define true 1 +#define false 0 + + +#define set_bit( cond, reg, pos ) \ +{ \ + if( cond ){ \ + reg |= pos; \ + }else{ \ + reg &= ~pos; \ + } \ +} + +#endif diff --git a/snake_branches/info_blue_double/kanaria.asm b/snake_branches/info_blue_double/kanaria.asm new file mode 100644 index 0000000..9deaddb --- /dev/null +++ b/snake_branches/info_blue_double/kanaria.asm @@ -0,0 +1,12 @@ +PUBLIC _END_1,_END_2,_END_3,_END_4 + +@@DATA DSEG BASEP +_END_1: +@@INIT DSEG BASEP +_END_2: +@@INITL DSEG UNIT64KP +_END_3: +@@DATAL DSEG UNIT64KP +_END_4: +; +END diff --git a/snake_branches/info_blue_double/kanaria_c.c b/snake_branches/info_blue_double/kanaria_c.c new file mode 100644 index 0000000..bbb5ec7 --- /dev/null +++ b/snake_branches/info_blue_double/kanaria_c.c @@ -0,0 +1,18 @@ +/********************************************//** + X^bN̍Ō̒lǂ + + X^bNj󌟍̂ + + $Id$ + ***********************************************/ +#include "incs.h" + +extern unsigned char END_4; + +void f() +{ + unsigned char *tp; + + tp = &END_4; +} + diff --git a/snake_branches/info_blue_double/led.c b/snake_branches/info_blue_double/led.c new file mode 100644 index 0000000..1bacaf3 --- /dev/null +++ b/snake_branches/info_blue_double/led.c @@ -0,0 +1,393 @@ +/* ======================================================== + 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 + { + 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; +} + + +/********************************************//** + m点LED + + Of[VvZ + ***********************************************/ +static void calc_info_led_next_frame( st_LED_dim_status* tgt_led, u8 color ) +{ + tgt_led -> to = color * 128; + // Of[Ṽf^vZ + tgt_led -> delta = (( tgt_led -> to - tgt_led -> now ) ) / info_LED.info_LED.fade_time; +} + + +/********************************************//** + m点LED + ***********************************************/ +void tsk_led_notify( ) +{ + static u8 time_to_next_frame; + static u8 frame; + static u8 loops; + static st_LED_dim_status LED_dim_status_info_R, LED_dim_status_info_G, LED_dim_status_info_B; + + if( info_led_override ) + { + // dr؂ꂪD悷 + return; + } + + if( system_status.pwr_state == ON_TRIG ) + { + LED_duty_notify_blu = 0; + LED_duty_notify_red = 0; + LED_duty_notify_grn = 0; + LED_dim_status_info_R.now = 0; + LED_dim_status_info_G.now = 0; + LED_dim_status_info_B.now = 0; + } + + if( info_led_off ) // doffȂNjoff + { + // tF[hAEg + calc_info_led_fade_out( &LED_dim_status_info_R ); + calc_info_led_fade_out( &LED_dim_status_info_G ); + calc_info_led_fade_out( &LED_dim_status_info_B ); + } + else + { + // ʏ^] + if( info_led_pattern_updated ) + { + info_led_pattern_updated = false; + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP; + frame = 0; // Ə + time_to_next_frame = 0; + } + else + { + // ̃t[ɐi߂H + if( time_to_next_frame == 0 ) + { + time_to_next_frame = info_LED.info_LED.term; + + if( frame >= NOTIFY_LED_TERM -1 ) + { + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] |= REG_BIT_IN_LOOP; + if( info_LED.info_LED.last_loop != 255 ) // 255:[v + { + loops ++; + if( loops > info_LED.info_LED.last_loop ) + { + frame = 0; + } + } + } + else + { + frame = (( frame + 1 ) & 0x1F ); // Ń}XNĂȂƍŏIt[`擪Ԃ̃OfȂ + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP; + loops = 0; + } + + // Of[VvZ + calc_info_led_next_frame( &LED_dim_status_info_R, info_LED.info_LED.red[frame] ); + calc_info_led_next_frame( &LED_dim_status_info_G, info_LED.info_LED.grn[frame] ); + calc_info_led_next_frame( &LED_dim_status_info_B, info_LED.info_LED.blu[frame] ); + + } + time_to_next_frame --; + } + } + + led_fade_to2( LED_duty_notify_red, &LED_dim_status_info_R ); + led_fade_to2( LED_duty_notify_grn, &LED_dim_status_info_G ); + led_fade_to2( LED_duty_notify_blu, &LED_dim_status_info_B ); +} diff --git a/snake_branches/info_blue_double/led.h b/snake_branches/info_blue_double/led.h new file mode 100644 index 0000000..ce8541f --- /dev/null +++ b/snake_branches/info_blue_double/led.h @@ -0,0 +1,142 @@ +#ifndef __led__ +#define __led__ + + + +// ==================================== + +//#define LED_CHARGE P2.4 // PMŒ` + +// LED_DUTY +#define LED_duty_pow_blu TDR06 +#define LED_duty_WiFi TDR03 + +#define LED_duty_3d TDR01 +#define LED_duty_notify_red TDR07 +#define LED_duty_notify_grn TDR05 +#define LED_duty_notify_blu TDR02 + +// dutyς܂ +#ifndef _WIN32 +#define LED_pow_red P4.2 +#define LED_CAM P7.5 +#else +#define LED_pow_red mcuRegP[ _P4_2 ] +#define LED_CAM mcuRegP[ _P7_5 ] +#endif + +#define NOTIFY_LED_TERM 32 + + +#define LED_BRIGHT_MAX 0x00FF + +// ==================================== +#define WIFI_txLatch PIF21 // dgMpX + + + +// ==================================== +enum LED_ILUM_MODE +{ + LED_POW_ILM_AUTO = 0, + LED_POW_ILM_ON, + LED_POW_ILM_SLEEP, + LED_POW_ILM_OFF, + LED_POW_ILM_ONLY_RED, + LED_POW_ILM_ONLY_BLUE, + LED_POW_ILM_FORCE_BT_EMPTY +}; + + +enum LED_MODE_3D +{ + LED_3D_ILM_OFF = 0, + LED_3D_ILM_ON +}; + + +// VREG_C_WIFI_LED +enum WIFI_LED_MODE +{ + WIFI_LED_OFF = 0, + WIFI_LED_ON +}; + + +// VREG_C_WIFI_NOTIFY +enum NOTIFY_LED_MODE +{ + NOTIFY_LED_OFF = 0, + NOTIFY_LED_ON, + NOTIFY_LED_PTN0, + NOTIFY_LED_PTN1, + NOTIFY_LED_PTN2 +}; + + +// VREG_C_CAM_LED +enum CAM_LED_MODE +{ + CAM_LED_OFF = 0, + CAM_LED_BLINK, + CAM_LED_ON, + CAM_LED_BY_TWL, + CAM_LED_ON_PLUSE, + CAM_LED_OFF_PLUSE +}; + + + +// m点LED֌W // +typedef struct _st_info_LED +{ + u8 term; // 1t[`bNH + u8 fade_time; // `bNŎ̃t[̐FɒB邩 + u8 last_loop; // ŏIt[JԂH + u8 resv1; + u8 red[32]; + u8 grn[32]; + u8 blu[32]; +}st_info_LED; + +typedef union _uni_info_LED +{ + st_info_LED info_LED; + u8 bindata[ sizeof( st_info_LED ) ]; +}uni_info_LED; + +extern uni_info_LED info_LED; + + +// LED _Ō // +typedef struct _st_led_red_batt_empty +{ + u8 dats[4]; +}st_led_red_batt_empty; + +extern st_led_red_batt_empty led_red_batt_empty; + + +/* + m点LED +*/ +typedef struct _st_LED_dim_status +{ + sx16 to; + sx16 delta; + sx16 now; // _ȉoĂȂĂ͂ȂȂ +}st_LED_dim_status; + + + +// ==================================== +void LED_init( ); +void LED_stop( ); + + +// ==================================== +extern bit ledInitialized; +extern bit info_led_override; + + +#endif diff --git a/snake_branches/info_blue_double/led_cam.c b/snake_branches/info_blue_double/led_cam.c new file mode 100644 index 0000000..7d4a1eb --- /dev/null +++ b/snake_branches/info_blue_double/led_cam.c @@ -0,0 +1,156 @@ +/******************************************************//** + LED_Cam TO02 + + BLINK,*_PLUSE ̎́A1͕K̏ԂɂȂ܂B + + ̊Ԃ OFFBLINK ȂǂƁAOFF܂B + + $Id$ + *********************************************************/ +#ifndef _WIN32 + +#pragma sfr + +#endif + +#include "incs.h" +#include "led.h" +#include "vreg_twl.h" + + +// ======================================================== +static u8 state_led_cam = 0; +static u16 task_interval; + +bit cam_led_update; + + + +// ======================================================== +static void cam_led_twl(); + + + + +/********************************************//** + C^[os^XNƁAtwlWX^ւ݂̏̂QJĂ΂܂B + ***********************************************/ +void tsk_led_cam( ) +{ + DI_wt_chk(); // WX^ւ݂̏ŋN邱Ƃ邽 + if( !cam_led_update ) + { + if( task_interval != 0 ) + { + task_interval --; + EI(); + return; + } + } + + cam_led_update = false; // TWL ̃uNݒiꔭ_ĵ + EI(); + + if( system_status.pwr_state == SLEEP ) // sleepA + { + LED_CAM = 0; + state_led_cam = 0; + } + else + { + // uN̂悤ɑ҂ƂȊO͖TN + // (WX^̕ύXɂɔ) + switch ( vreg_ctr[VREG_C_LED_CAM] ) + { + case ( CAM_LED_OFF ): + default: + LED_CAM = 0; + state_led_cam = 0; + break; + + case ( CAM_LED_ON ): + LED_CAM = 1; + state_led_cam = 0; + break; + + case ( CAM_LED_BLINK ): + if( state_led_cam == 0 ) + { + LED_CAM = 1; + state_led_cam = 1; + } + else + { + LED_CAM = 0; + state_led_cam = 0; + } + task_interval = 250; + break; + + case ( CAM_LED_ON_PLUSE ): + if( state_led_cam == 0 ) + { + LED_CAM = 1; + state_led_cam = 1; + task_interval = 250; + } + else + { + vreg_ctr[VREG_C_LED_CAM] = CAM_LED_OFF; + } + break; + + case ( CAM_LED_OFF_PLUSE ): + if( state_led_cam == 0 ) + { + LED_CAM = 0; + state_led_cam = 1; + task_interval = 250; + } + else + { + vreg_ctr[VREG_C_LED_CAM] = CAM_LED_ON; + } + break; + + case( CAM_LED_BY_TWL ): + cam_led_twl(); + } + } // if( system_status.pwr_state == sleep ) ... else ... +} + + +/********************************************//** + TWLJLED𑀍삳 + ***********************************************/ +static void cam_led_twl() +{ + // TWL݊ // + switch ( vreg_twl[ REG_TWL_INT_ADRS_CAM ] ){ + case( TWL_CAMLED_OFF ): + LED_CAM = 0; + state_led_cam = 0; + break; + + case( TWL_CAMLED_BLINK ): + if( state_led_cam == 0 ) + { + LED_CAM = 1; + state_led_cam = 1; + } + else + { + LED_CAM = 0; + state_led_cam = 0; + } + task_interval = (u8)( 600 / SYS_INTERVAL_TICK ) + 250; + break; + + case( TWL_CAMLED_ON ): + case( TWL_CAMLED_DEF_ON ): + default: + LED_CAM = 1; + state_led_cam = 1; + break; + } +} diff --git a/snake_branches/info_blue_double/led_pow.c b/snake_branches/info_blue_double/led_pow.c new file mode 100644 index 0000000..6773d4e --- /dev/null +++ b/snake_branches/info_blue_double/led_pow.c @@ -0,0 +1,296 @@ +/* ======================================================== + dLED + LED_POW_B,R 6,7 + + TDR00@(0x03FFBTPS0250kHzŃJEgAbvB10bitȂ250HzʂɂȂ) + TDR0x@Duty 0ŏATDR00( =0x03FFȏ)œ_łB + + $Id: asdf$ + ======================================================== */ + +/* ======================================================== + enum pwr_state_{ + OFF_TRIG = 0, + ON_CHECK, + ON_TRIG, + ON, + SLEEP +}; + +enum LED_ILUM_MODE{ + LED_POW_ILM_AUTO, + LED_POW_ILM_ON, + LED_POW_ILM_SLEEP, + LED_POW_ILM_CEOFF +}; + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr + +#endif + +#include "incs.h" +#include "led.h" +#include "pm.h" + +// ======================================================== +// X[vł̃e[uB}WB +const u8 LED_PTN_SLEEP[] = { + 25, 38, 52, 68, 83, 98, 110, 119, + 125, 128, 128, 125, 119, 110, 98, 83, + 68, 52, 38, 25, 16, 10, 8, 8, + 8, 8, 8, 8, 8, 8, 10, 16 + }; + + +// LED̓drcLED̓_Ńp^[ +st_led_red_batt_empty led_red_batt_empty = { 0x55, 0x55, 0x55, 0x55 }; +#define LED_SLEEP_FRAME_LEN 71 +#define LED_SLEEP_DIM_LEN 71 +#define LED_SLEEP_FRAME_NUM 32 + + + +// ======================================================== +static void led_pow_normal( ); +static void led_pow_sleep( ); +static void led_pow_bt_empty(); +static u8 led_pow_batt_low(); + +#define led_fade_to( now, goal ) now = fade_to( now, goal ) +extern u8 fade_to( u8 now, u8 goal ); + +#define led_fade_to2( led, status ) led = fade_to2( status ) +extern u8 fade_to2( st_LED_dim_status* status ); + + + +// ======================================================== +// dLED̃X[vp^[̃Xe[^X +static u8 time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; +static u8 frame_sleep; +static st_LED_dim_status LED_dim_status_sleep; + +extern bit ledInitialized; +extern bit BT_IN_CHG_delayed_n; + + + +/********************************************//** + dLED + + {Iɂ́A + + 쎞A + - drc > 10% “_imaster_brightness̖邳j + - 5% ԓ_ (100%_AHWŒs) + - ȉ ԓ_Am点LEDԂBAA_v^h5%`̓ + + X[v + - drc > 10% “_imaster_brightness̖邳j + - 쎞Ɠ + + X[vɂ͎Ő؂ւȂ̂ŁAWX^삪Kvłi̕s悢ł傤Hj + + ̃p^[͐Ŷ߁B + ***********************************************/ +void tsk_led_pow( ) +{ + if( ! ledInitialized ) + { + return; + // ܂ + } + + info_led_override = false; + + switch ( vreg_ctr[VREG_C_LED_POW] ) + { + case ( LED_POW_ILM_AUTO ): + default: + led_pow_normal( ); + break; + + case ( LED_POW_ILM_SLEEP ): + led_pow_sleep( ); + break; + + case ( LED_POW_ILM_ON ): + led_fade_to( LED_duty_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] ); + LED_pow_red = 0; + break; + + case ( LED_POW_ILM_OFF ): + led_fade_to( LED_duty_pow_blu, 0 ); + LED_pow_red = 0; + break; + + case ( LED_POW_ILM_ONLY_RED ): + LED_duty_pow_blu = 0; + LED_pow_red = 1; + break; + + case ( LED_POW_ILM_ONLY_BLUE ): + LED_duty_pow_blu = LED_BRIGHT_MAX; + LED_pow_red = 0; + break; + + case ( LED_POW_ILM_FORCE_BT_EMPTY ): + led_pow_bt_empty(); + break; + } + + if( system_status.pwr_state == OFF || system_status.pwr_state == ON_CHECK ) + { + LED_pow_red = 0; + info_led_override = false; + } + + if( info_led_override ) + { + LED_duty_notify_blu = 0; + LED_duty_notify_grn = 0; + LED_duty_notify_red = ( LED_pow_red == 0 )? 0 : 255; + } +} + + + +/********************************************//** + ʏ퓮쎞 + + drcʂŁA@ԁԓ_ + ***********************************************/ +static void led_pow_normal( ) +{ + time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; + frame_sleep = 0; + LED_dim_status_sleep.now = (sx16)LED_duty_pow_blu * 128; + + if( led_pow_batt_low() != 0 ) // Ԃ̓_łĂ܂ + { + return; + // ܂ + } + + // “_ + led_fade_to( LED_duty_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] ); +} + + + +/********************************************//** + X[vz^p^[ + + drcʂŐԁԓ_łɂ + ***********************************************/ +static void led_pow_sleep( ) +{ + if( led_pow_batt_low() != 0 ) // Ԃ̓_łĂ܂ + { + time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; + frame_sleep = 0; + LED_dim_status_sleep.now = (sx16)LED_duty_pow_blu * 128; + return; + // ܂ + } + + LED_dim_status_sleep.to = LED_PTN_SLEEP[frame_sleep] * 128; + + // Of[Ṽf^vZ + LED_dim_status_sleep.delta = (( LED_dim_status_sleep.to - LED_dim_status_sleep.now ) ) / LED_SLEEP_DIM_LEN; + led_fade_to2( LED_duty_pow_blu, &LED_dim_status_sleep ); + + // ̃t[ɐi߂H + time_to_next_frame_sleep --; + if( time_to_next_frame_sleep == 0 ) + { + time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; + + frame_sleep ++; + if( frame_sleep >= LED_SLEEP_FRAME_NUM -1 ) + { + frame_sleep = 0; + } + } +} + + + +/********************************************//** + drȂƂ̋ + +@ԒlF@0@drȂȂ +@@@@@1@Ȃ̂ŋʃp^[ɂ + ***********************************************/ +static u8 led_pow_batt_low() +{ + if( vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_LO ) + { + LED_pow_red = 0; + return 0; + // ܂ + } + + if(( vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_EMPTY ) || !BT_IN_CHG_delayed_n ) + // drcʂ5%i`10%j@܂́Aꖢł[d + { + // ԓ_ + led_fade_to( LED_duty_pow_blu, 0 ); + { + LED_pow_red = 1; + } + + } + else // dr5%@@A_v^Ȃ + { + led_pow_bt_empty(); + } + return 1; +} + + + + +/********************************************//** +@drȂp^[ + +@@wp^[𗬂 + +@@m点㏑ + ***********************************************/ +static void led_pow_bt_empty() +{ + static u8 delay; + static u8 red_blink_poi; + + info_led_override = true; + + // ԓ_ + led_fade_to( LED_duty_pow_blu, 0 ); + + // Ԃ̓_Ńp^[wł + delay ++; + if( delay < 64 ) // t[̕ێԉ҂ + { + return; + } + delay = 0; + + if( led_red_batt_empty.dats[ red_blink_poi / 8 ] & ( 1 << ( red_blink_poi % 8 )) ) + { + LED_pow_red = 1; + } + else + { + LED_pow_red = 0; + } + red_blink_poi ++; + if( red_blink_poi >= 32 ) + { + red_blink_poi = 0; + } +} + + diff --git a/snake_branches/info_blue_double/loader.c b/snake_branches/info_blue_double/loader.c new file mode 100644 index 0000000..78c6468 --- /dev/null +++ b/snake_branches/info_blue_double/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/snake_branches/info_blue_double/pedo_alg_thre_det2.c b/snake_branches/info_blue_double/pedo_alg_thre_det2.c new file mode 100644 index 0000000..4e69a04 --- /dev/null +++ b/snake_branches/info_blue_double/pedo_alg_thre_det2.c @@ -0,0 +1,567 @@ +/* ******************************************************** + v + + 3x̃A^Cf[^AxNg̃moA + 臒l𒴂鎞ԁAԊuAm̑傫臒l؂ւȂ + + $Id$ +********************************************************* */ +#ifndef _WIN32 + +#pragma mul +#pragma div +#pragma bcd + +#endif + +#include "incs.h" + +#ifndef _WIN32 +#include +#endif + +#include "accero.h" +#include "pedometer.h" + +#include "pool.h" + +// ======================================================== +// ̍ŏIL^ +// ̏Ԃ̓OǂݏȍԂł̂łȂł +// ԂɃAhX̎Ⴂ̂mۂ̂҂Ă܂... +typedef struct{ + u8 hour_bcd; + u8 day_bcd; + u8 month_bcd; + u8 year_bcd; + u8 min_bcd; + u8 sec_bcd; +}st_calender; + + + +// ======================================================== +static u16 get_long_hour(); +static u16 calc_hours_spend( u8 ); + + + +// ======================================================== +bit pedolog_overflow; // 192ԋL^ς݃tO(i2cœǂ߂) +extern uni_pool pool; // O͂̍\̂̒ +static u8 p_record; // Ȍ݈ʒu +static st_calender cal_log_latest; // ŌɕXV +static u16 last_hour_fny; // fny:from new year +static st_calender cal_temp; +static u16 now_longhour; + + + + + + +// ======================================================== +#define _use_my_sqrt_ +#ifdef _use_my_sqrt_ +static unsigned long my_sqrt( unsigned long ); +#endif + +// N͉[NH +#define is_leapyear( y ) (( y & 0x03 ) == 0 ) +// uNv͉[NH +#define is_firstyear( y ) (( y & 0x03 ) == 1 ) + + +// xZTlFIR-LPFɒʂB̌W +extern const s8 lpf_coeff[]; +#define TAP 64 +#define FIL_COEFF_QUANT 10 + + +/********************************************//** +@v + ***********************************************/ +void pedometer() +{ + static s16 th_H = 15000; // 臒lBIύX܂ + static s16 th_L = 11000; + static u16 acc_norm[3]; // x̑傫̃qXgB傫 + static u16 acc_norm_temp; + static u8 interval_hh = 0xFF; // R-RԂ̎ԁBZ߂͂B + static u8 time_l; // Őɏ̌oߎ + static u16 peak_l; // J̐[ + static u16 norm_hist[TAP]; + + static u8 hist_indx; + + signed long filterd; + + u8 i; + + u16 sx16,sy16,sz16; + + DI_wt_chk(); + sx16 = abs( (u16)vreg_ctr[VREG_C_ACC_XH] * 256 + vreg_ctr[VREG_C_ACC_XL] ); + sy16 = abs( (u16)vreg_ctr[VREG_C_ACC_YH] * 256 + vreg_ctr[VREG_C_ACC_YL] ); + sz16 = abs( (u16)vreg_ctr[VREG_C_ACC_ZH] * 256 + vreg_ctr[VREG_C_ACC_ZL] ); + EI(); + + // xNg̃m +#ifdef _mcu_ +# ifndef _use_my_sqrt_ + norm_hist[ hist_indx & TAP-1 ] = sqrt( (long)sx16 * ( sx16 / 2 ) + + (long)sy16 * ( sy16 / 2 ) + + (long)sz16 * ( sz16 / 2 ) + ); +# else + norm_hist[ hist_indx & TAP-1 ] = my_sqrt( (long)sx16 * ( sx16 / 2 ) + + (long)sy16 * ( sy16 / 2 ) + + (long)sz16 * ( sz16 / 2 ) + ); +# endif +#endif + +#ifdef _pc_ + norm_hist[ hist_indx & TAP-1 ] = normh * 256 + norml; +#endif + + hist_indx ++; + + // qXgɃtB^(fir)|āA̒l߂ // + filterd = 0; +// for( i = 8; i != 55; i++ ) // WO΂̂ + for( i = 0; i != 46; i++ ) // We[u܂Bp[^ + { + filterd += (signed long)norm_hist[ ( hist_indx + i ) & TAP-1 ] * lpf_coeff[ i ]; + } + + filterd += (4096)*512; // DCZ...Ǝv + acc_norm_temp = (s16)( filterd /1024 & 0xFFFF ); // FIL_COEFF_QUANT琳K +/* + if( acc_norm[0] < acc_norm_temp ) + { + t_rise ++; + if( t_rise == 0 ) + t_rise == 254; + } + else + { + t_rise = 0; + } +*/ + if( acc_norm[0] != acc_norm_temp ) + { + acc_norm[2] = acc_norm[1]; // qXg + acc_norm[1] = acc_norm[0]; + acc_norm[0] = acc_norm_temp; + } + + if( acc_norm[2] <= acc_norm[1] && acc_norm[1] > acc_norm[0] + && acc_norm[0] > th_H ) + // ɑŁA臒l𒴂Ă + { + if( 21 < interval_hh ) + // Őɑ傩̊Ԋuقǂ悢 + { + if(( interval_hh < 160 ) && ( time_l < interval_hh )) + // Jł + { + if( acc_norm[0] - peak_l > 4200 ){ + // ܂ + hosu_increment_if_necessary(); + } + } + interval_hh = 0; + } + // Ȃ񂿂臒l̓IύX + if( acc_norm[0] > 18000 ) + { + th_L = acc_norm[0] - 10000; + } + else + { + th_L = 11000; + } + } + else + { + if( interval_hh != 255 ) // OaZĊyɏ炢̂ + { + interval_hh ++; + } + } + + // (2) ߂̋ɏ̎ + if( acc_norm[2] >= acc_norm[1] && acc_norm[1] < acc_norm[0] + && acc_norm[0] < th_L ) + { + // ɏo + time_l = 0; + peak_l = acc_norm[0]; + } + else + { + if( time_l != 255 ) + { + time_l ++; + } + } +} + + +/********************************************//** +@{P + + - ݐςCNg + - XV + + *2011/01/20 + + dlύX@OςɂȂ炻Ŏ~߂ + ***********************************************/ +#define HOSU_NODATA 0xFFFF +#define HOSU_MAX 0xFFFE + +void hosu_increment_if_necessary() +{ + u8 year_compd; // hourE␳ς݌ݔNBcomp(ensation -ed) + + // ݎ擾 + DI_wt_chk(); + RWAIT = 1; + while( !RWST ){;} + + cal_temp.hour_bcd = HOUR; + cal_temp.day_bcd = DAY; + cal_temp.month_bcd = MONTH; + cal_temp.year_bcd = YEAR; + cal_temp.min_bcd = MIN; + cal_temp.sec_bcd = SEC; + + RWAIT = 0; + EI(); + + year_compd = bcdtob( cal_temp.year_bcd ); + + now_longhour = get_long_hour(); + + // ݃|C^̍XV + if( ! ( vreg_ctr[ VREG_C_ACC_HOSU_L ] == 0 && // vonAŏ̈܂ł͑O񂩂̌oߎԂvZȂ + vreg_ctr[ VREG_C_ACC_HOSU_M ] == 0 && + vreg_ctr[ VREG_C_ACC_HOSU_H ] == 0 )) //. SrbgORŃ[肷̂̓fW^H݂̕ + { + // v~܂ĂԂlĕKvȂi߂ + // ␳vZ@U뎞ōɂȂꍇAA23ɏ㏑ + if( now_longhour == (u16)-1 ) // NA23䈵̂ƂAvZʂ -1 ɂȂĂ + { + now_longhour = 365 * 24 -1; + if( is_firstyear(year_compd) ) + { + now_longhour += 24; + } + year_compd --; + } + fill_hosu_hist_hours( calc_hours_spend( year_compd ) ); // ݃|C^̍XVs + + // OӂŋL^~H + if( pedolog_overflow ) + { + return; + // ܂BO̍XVȂB + } + } + + // CNgėǂ + cal_log_latest = cal_temp; // OXV + last_hour_fny = now_longhour; + + // O@CNg + if( pool.vreg_c_ext.pedo_log[ p_record ] == HOSU_MAX ) + { + // Ȃł܂ + //. v̍vƗ݌vȂȂ̂邽߂낤ǁAǂȂ́H + return; + } + else if( pool.vreg_c_ext.pedo_log[ p_record ] == HOSU_NODATA ) // ̎ԑэŏ̃JEg̎ + { // ꂵȂ1Ȃ + pool.vreg_c_ext.pedo_log[ p_record ] = 1; + } + else + { + // ʏpX + pool.vreg_c_ext.pedo_log[ p_record ] ++; + } + + // ݐς̍XV // + DI_wt_chk(); + if( ++vreg_ctr[ VREG_C_ACC_HOSU_L ] == 0 ) // JXg`FbN + { + if( ++vreg_ctr[ VREG_C_ACC_HOSU_M ] == 0 ) + { + if( ++vreg_ctr[ VREG_C_ACC_HOSU_H ] == 0 ){ + vreg_ctr[ VREG_C_ACC_HOSU_L ] = 255; //. 낢뎸s... + vreg_ctr[ VREG_C_ACC_HOSU_M ] = 255; + vreg_ctr[ VREG_C_ACC_HOSU_H ] = 255; + } + } + } + EI(); +} + + +/********************************************//** +󔒂̎ԂK؂0ɂāA +܂ނPԂ̃f[^ʒuɃ|C^Hi߂ + ***********************************************/ +static void fill_hosu_hist_hours( u16 hours ) +{ + // OӂH + if( (u16)p_record + hours >= PEDOMETER_LOG_SIZE ) + { + pedolog_overflow = true; + return; + } + + // 󔒂̐Ԃ̐ݒ + while( hours != 0 ) + { + // Vdl@ςŒ~ + p_record ++; +#if 1 // debug + if( p_record >= PEDOMETER_LOG_SIZE ) + { + pedolog_overflow = true; +// dbg_nop(); // ɗ悤ƃoO + break; + } + else +#endif + { + pool.vreg_c_ext.pedo_log[ p_record ] = 0; + } + hours --; + } + + return; +} + + + +/********************************************//** +NAAuf[^vɏ + ***********************************************/ +void clear_hosu_hist() +{ + u8 hours = PEDOMETER_LOG_SIZE; + do + { + hours --; + pool.vreg_c_ext.pedo_log[ hours ] = 0xFFFF; + } + while( hours != 0 ); + + DI_wt_chk(); + vreg_ctr[ VREG_C_ACC_HOSU_L ] = 0; + vreg_ctr[ VREG_C_ACC_HOSU_M ] = 0; + vreg_ctr[ VREG_C_ACC_HOSU_H ] = 0; + p_record = 0; + pedolog_overflow = false; + EI(); +} + + +extern u8 iic_burst_state; +bit pedolog_read_msb; +/********************************************//** + ṽqXgԂB + + PĂԓxɁAqXg̉ʁAʁAꎞԑkĉʏ... + ***********************************************/ +u8 hosu_read( ) +{ + u8 rv; + static u8 p_record_buffer; + static st_calender cal_buff; // ꉞAAg~bN + + if( iic_burst_state == 0 ) + { + p_record_buffer = p_record; + DI_wt_chk(); + cal_buff = cal_log_latest; + EI(); + } + + if( iic_burst_state <= 5 ) + { + rv = *( (u8*)&cal_buff + iic_burst_state ); // + iic_burst_state ++; + return( rv ); + } + else + { + u16 temp; + // 16rbgŋL^Ă̂ł΂炵đ /// Ɗy@񂶂 + temp = pool.vreg_c_ext.pedo_log[ p_record_buffer ]; + if( !pedolog_read_msb ) + { + rv = (u8)( temp & 0x00FF ); + } + else + { + rv = (u8)(( temp >> 8 ) & 0x00FF ); + if( p_record_buffer == 0 ) + { + p_record_buffer = PEDOMETER_LOG_SIZE-1; + } + else + { + p_record_buffer --; + } + } + pedolog_read_msb ^= 1; + return( rv ); + } + +} + + + +/********************************************//** + ŇǓoߎ(hour)ԂB + + + + Ԓl u16 long_hour + ***********************************************/ +const u16 DAYS_FROM_HNY[] = { + 0, + 31, + 31+28, // =59B@cRO͂PTX + 31+28+31, + 31+28+31+30, + 31+28+31+30+31, + 31+28+31+30+31+30, + 31+28+31+30+31+30+31, + 31+28+31+30+31+30+31+31, + 31+28+31+30+31+30+31+31+30, + 31+28+31+30+31+30+31+31+30+31, + 31+28+31+30+31+30+31+31+30+31+30 + }; + +static u16 get_long_hour() +{ + u8 year = bcdtob( cal_temp.year_bcd ); + u8 month = bcdtob( cal_temp.month_bcd ); + u8 day = bcdtob( cal_temp.day_bcd ); + u8 hour = bcdtob( cal_temp.hour_bcd ); + u8 min_bcd = cal_temp.min_bcd; // 召rȂ̂bcd̂܂܂ł悢 + u8 sec_bcd = cal_temp.sec_bcd; + u16 long_hour; + + // ܂̕ + long_hour = DAYS_FROM_HNY[ month -1 ]; // -1̓CfbNX킹 + if( is_leapyear(year) && ( 3 <= month )) + { + // [NŁA[ + long_hour ++; + } + long_hour += day - 1; + long_hour *= 24; // + + long_hour += hour; + + // EȆOHH + if( ( min_bcd > vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] ) + || ( ( min_bcd >= vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] ) + && ( sec_bcd >= vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC ] )) + ) + { + return( long_hour ); + } + else + { + return( long_hour -1 ); // 1ԑOɊ܂߂ ӁFUōNɂƂB-1 ɂȂ + } +} + + + +/********************************************//** +@yʕB + +@Kv\Ȑxőł؂ + + pcŃV~[Vđv + ***********************************************/ +static unsigned long my_sqrt(unsigned long x) +{ + unsigned long s, t; + + if (x <= 0) return 0; + + s = 1; + t = x; + while (s < t) + { + s <<= 1; + t >>= 1; + } + do + { + t = s; + s = (x / s + s) >> 1; + } while (s < t); + + return t; +} + + + + +/********************************************//** +@‚ OĂ΂ꂽƁAݎ̍߂BԂ̂fill_hosu_hist_hours ɂ̂܂ܓn + //. year_bcd Ȃ̂Ƃ₾... + ***********************************************/ +static u16 calc_hours_spend( u8 year ) +{ + u8 cal_log_latest_year = bcdtob( cal_log_latest.year_bcd ); + + // N̓ + if( cal_log_latest_year == year ) + { + if( now_longhour > last_hour_fny ) + { + return( now_longhour - last_hour_fny ); + } + else if( now_longhour == 0 && last_hour_fny != 0 ) + { + // N΂ŁAEzځBȂƍNŌɉZĂ܂B + return( 1 ); + } + else + { + return( 0 ); // ԑ(ƁA߂B@ǂȂĂmȂ) + } + } + else if( cal_log_latest_year == ( year -1 ) ) + { + // N܂łƂ + u16 temp = 365 * 24 - last_hour_fny + now_longhour; + if( is_firstyear(year) ) + { + temp += 24; + } + return( temp ); + } + else if( cal_log_latest_year < year ) + { + // Nu + return( PEDOMETER_LOG_SIZE +1 ); + } + else + { + // J_[߂Ȃ + // m[PAł悢cAslƂ킯ɂȂ + return( 0 ); + } +} diff --git a/snake_branches/info_blue_double/pedo_lpf_coeff.c b/snake_branches/info_blue_double/pedo_lpf_coeff.c new file mode 100644 index 0000000..877ef98 --- /dev/null +++ b/snake_branches/info_blue_double/pedo_lpf_coeff.c @@ -0,0 +1,87 @@ +/********************************************//** + vŎgpALPF̃tB^W + $Id$ + ***********************************************/ + +#include "incs.h" + +// ========================================================= +#define TAP 64 +#define FIL_COEFF_QUANT 10 +const s8 lpf_coeff[]={ +/* +Window Function Algorithm LPF +Sampling Frequency = 100.0 +cutoff1 = 6.0000000 +Tap Count =64 +Kaiser Constant = 7.000000 +Quantized by 11 [bits] + */ +/* 0,// [0] + 0, + 0, + 0, + 0, + 0, + 0, + 0, +*/ + 1,// 8 + 2, + 2, + 3, + 3, + 2, + 0, + -2, + -5,// 16 + -9, + -13, + -16, + -16, + -13, + -6, + 4, + 18,// 24 + 37, + 56, + 77, + 95, + 110, + 119, + 122, + 119,// 32 + 110, + 95, + 77, + 56, + 37, + 18, + 4, + -6,// 40 + -13, + -16, + -16, + -13, + -9, + -5, + -2, + 0,// 48 + 2, + 3, + 3, + 2, + 2, + 1, +/* + 0, + 0,// 56 + 0, + 0, + 0, + 0, + 0, + 0, + 0 +*/ +}; diff --git a/snake_branches/info_blue_double/pedo_lpf_coeff.h b/snake_branches/info_blue_double/pedo_lpf_coeff.h new file mode 100644 index 0000000..f81d6c2 --- /dev/null +++ b/snake_branches/info_blue_double/pedo_lpf_coeff.h @@ -0,0 +1,84 @@ +#ifndef _pedo_coeff_h_ +#define _pedo_coeff_h_ + +// ========================================================= +#define TAP 64 +#define FIL_COEFF_QUANT 10 +const s8 lpf_coeff[]={ +/* +Window Function Algorithm LPF +Sampling Frequency = 100.0 +cutoff1 = 6.0000000 +Tap Count =64 +Kaiser Constant = 7.000000 +Quantized by 11 [bits] + */ +/* 0,// [0] + 0, + 0, + 0, + 0, + 0, + 0, + 0, +*/ + 1,// 8 + 2, + 2, + 3, + 3, + 2, + 0, + -2, + -5,// 16 + -9, + -13, + -16, + -16, + -13, + -6, + 4, + 18,// 24 + 37, + 56, + 77, + 95, + 110, + 119, + 122, + 119,// 32 + 110, + 95, + 77, + 56, + 37, + 18, + 4, + -6,// 40 + -13, + -16, + -16, + -13, + -9, + -5, + -2, + 0,// 48 + 2, + 3, + 3, + 2, + 2, + 1, +/* + 0, + 0,// 56 + 0, + 0, + 0, + 0, + 0, + 0, + 0 +*/ +}; +#endif diff --git a/snake_branches/info_blue_double/pedometer.h b/snake_branches/info_blue_double/pedometer.h new file mode 100644 index 0000000..8760308 --- /dev/null +++ b/snake_branches/info_blue_double/pedometer.h @@ -0,0 +1,36 @@ +#ifndef _pedo_ +#define _pedo_ + +#ifdef WIN32 +typedef unsigned char bit; +typedef unsigned char u8; +typedef unsigned short u16; + + +#endif + + +// ========================================================= +extern bit pedolog_read_msb; + + + +// ========================================================= +//void hosu_read_end( ); }N +#define hosu_read_end() pedolog_read_msb = 0 + +u8 hosu_read( ); +void hosu_increment_if_necessary(); +void fill_hosu_hist_hours( u16 ); +void clear_hosu_hist(); +void pedometer(); + + + +// ========================================================= +#define PEDOMETER_LOG_SIZE ( 24 * 7 ) + + + +// ========================================================= +#endif diff --git a/snake_branches/info_blue_double/pm.c b/snake_branches/info_blue_double/pm.c new file mode 100644 index 0000000..1ec093d --- /dev/null +++ b/snake_branches/info_blue_double/pm.c @@ -0,0 +1,1508 @@ +/* ======================================================== + PMIC + cJZ + nintendo + '08 Dec + + $Id: pm.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma nop + +#endif + +#include "incs.h" +#include "adc.h" +#include "led.h" +#include "pm.h" +#include "renge\renge.h" + +#include "batt_params.h" + +#include +#include "fsl_user.h" + +#include "vreg_twl.h" +#include "i2c_mcu.h" + +// ======================================================== +u8 raw_adc_temperature; +BT_VENDER battery_manufacturer = BT_VENDER_NOT_CHECKED; +static u8 ntr_pm_reg_shadow; // NTR PMIC WX^~[ +bit bt_authorized; // obep[^MρB[dJn +u8 chg_led_override; // A_v^ƂA[d邵ȂɊւ炸΂炭_ + +static u16 bt_volt16; + +static bit ntr_pm_bt_low_old; + +bit BT_IN_CHG_delayed_n; +bit temp_zone_charge_disable; // xŏ[d~鎞ɃqXeVXt邽 + +u8 pmic_version; +u8 mgic_version[2]; + +u8 pm_reg_bit_vddlcd; + +static bt_param_* p_bt_param; +extern const bt_param_ bt_param[]; + +bit pm_extdc_old; // OA_v^`FbNƂhĂH + +u8 pmreg_v_core; // SoC̃RAdݒBSNAKE(LAGER)ŕύX邽߁B + +// [d~x֌W +static u8 raw_temp_lh; +static u8 raw_temp_ll; +#define RAW_TEMP_HL 184 // 1 +#define RAW_TEMP_HH 189 // -1 +#define RAW_TEMP_LH_CTR 75 // 50 [degC] +#define RAW_TEMP_LL_CTR 61 // 59 +#define RAW_TEMP_LH_SNAKE 84 // 45 +#define RAW_TEMP_LL_SNAKE 68 // 54 + + +// ======================================================== +static void BT_model_detect(); +static void BT_mgic_quick_start(); +static void BT_mgic_init(); +static void bt_chk_temparature(); +static void bt_get_charge_status(); +static void bt_param_select(); +static void bt_batt_update_twl(); +static void bt_batt_update_ntr(); +static void update_chg_led(); + + +// bp[ +static err send_cmd_mgic_2B( u8 reg, u16 dat ); +static err read_mgic_2B( u8 reg, u8* dat ); +static err read_BT_SOC( u8* dest ); +static err read_BT_voltage( u8* dest ); +static u8 conv_ctr_bt_to_twl_bt(); + + + +// ======================================================== +#define swap_endian_16( x ) (unsigned int)(( x << 8 ) | ( x >> 8 )) + + + +// ======================================================== +const u8 BT_MANUF_BORDER[] = { + 5, 33, 79, 123, 158, 197, 233 + }; + + + +/********************************************//** + dr̊Ǘ + + ȉ̃s͎ɂőEĎ܂B + - PM_BT_AUTH AGPI in + - PM_CHARGE_n CCIC /CHG in + - PM_EXTDC_n /DOK INTP4 in + - PM_CHARGE_EN_n /CEN out + + ȉ͊̕֌W肻łʂ̂ƂŊĎĂ܂B + - LED Charge tsk_LED + - BT_TEMP,_P tsk_ADC + + PM_EXTDC͊荞݃Cɂ邩 + ***********************************************/ +#define INTERVAL_TSK_BATT 60 +// 100Ə[dG[ɂ܂_łȂ̂ + +/********************************************//** + d̊Ď + - A_v^̊Ď + - [dALEDXV + - cʎ擾ALEDXV + ***********************************************/ +void tsk_batt( ) +{ + static u8 task_interval; + + if( task_interval -- != 0 ) + { + return; + } + else + { + task_interval = (u8)( INTERVAL_TSK_BATT / SYS_INTERVAL_TICK ); + } + + // A_v^Xe[^XXV // + pm_chk_adapter(); + + // [d // + bt_chk_temparature(); // x`FbN + if( !temp_zone_charge_disable && bt_authorized && !PM_EXTDC_n ) + { + BT_CHG_ENABLE(); // x͈OKŏ[dĊJ + } + else + { + BT_CHG_DISABLE(); // x댯I@[d~ + } + + bt_get_charge_status(); // [d󋵃`FbN + update_chg_led(); // chg ledXV + + // drc // + BT_get_left(); +} + + +/********************************************//** + [dLEDXV + + - CCIC[dƂΓ_B + - łȂĂAA_v^h΂Ȃ5b_ + - Aw^drΉʼnR[d̎Aq[Y؂iMGICNAKjȂ + ***********************************************/ +static void update_chg_led() +{ + static bit temp_led_chg; // static ‚ȂƃRpCʂ炸 + + temp_led_chg = false; + + // A_v^‚ȂuԁA[dłb킴Ɠ_BdĂ邱Ƃ킩点邽߁B + if( chg_led_override != 0 ) + { + chg_led_override --; + temp_led_chg = true; + } + + // CCIC ͏[dƌĂ邩H + if( ! BT_IN_CHG_delayed_n // bt_get_charge_status()ōXV܂B + && ! PM_EXTDC_n ) + { + temp_led_chg = true; + } + + LED_CHARGE = temp_led_chg; + + // WX^̏[drbgLEDɓ + set_bit( LED_CHARGE, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE ); // set_bit̂݁B + /// 荞݂task_status()ōs +} + + + +/********************************************//** + x`FbN + xtqXeVXL + ***********************************************/ +#define AVG_COUNT 40 +void bt_chk_temparature() +{ + static u8 heikinka_h,heikinka_l; + + if(( raw_temp_lh <= raw_adc_temperature ) + && ( raw_adc_temperature <= RAW_TEMP_HL )) + { + if( heikinka_h < AVG_COUNT ) + { + heikinka_h++; + } + else + { + temp_zone_charge_disable = false; // [d + } + } + else if(( raw_adc_temperature <= raw_temp_ll ) + || ( RAW_TEMP_HH <= raw_adc_temperature )) + { + if( heikinka_l < AVG_COUNT ) + { + heikinka_l++; + } + else + { + temp_zone_charge_disable = true; // [d֎~ + } + } + else + { + // temp_zone_charge_disable ̂܂ + heikinka_h = 0; + heikinka_l = 0; + } +} + + + +/********************************************//** + [d̃`FbN + + [dIC̃oO΍sB + ***********************************************/ +#define TIME_DENOIZE (u8)( 1000 / INTERVAL_TSK_BATT ) +void bt_get_charge_status() +{ + // CCIC̕s̂߁A/CHG̃lQ[gƒJɒx + static u8 anti_chatter; + + if( !BT_IN_CHG_n ) + { + // Ƀ`^O + if( anti_chatter < 2 ) // drŃA_v^āAdɂ킳 + { // Ə[dLED̂ + anti_chatter++; + } + else + + { + BT_IN_CHG_delayed_n = 0; // [d + } + } + else + { + if( !BT_CHG_Ena_n + && ( vreg_ctr[ VREG_C_BT_REMAIN ] < 60 ) + && !( is_mgic_error ) + ) + { + BT_IN_CHG_delayed_n = 0; // [dƈB[dIĂ͂Ȃ + } + else + { + BT_IN_CHG_delayed_n = 1; + anti_chatter = 0; + } + } +} + + + +/********************************************//** + A_v^̗L`FbN + ***********************************************/ +void pm_chk_adapter() +{ + set_bit( !PM_EXTDC_n, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY ); + + if( pm_extdc_old != PM_EXTDC_n ) // HAL ʂ߁A PM_EXTDC_n volatile ɂSzȂ + { + pm_extdc_old = PM_EXTDC_n; + if( !PM_EXTDC_n ) + { + // h + set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_CONNECT ); + chg_led_override = (u8)( 2500 / INTERVAL_TSK_BATT ); // bt_chckwait_ms(5)̂ŐL΂B + } + else + { + u8 temp_v[2]; + + // + set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_DISC ); + chg_led_override = 0; + + // drcʂ1%ŁAA_v^L̎ɂ͖{̂NAQ[ + // 1%ɉ񕜂OɃA_v^ƂA荞݂ȂƊҒʂ + // łȂBʑΉ̂߂őΉ + if( read_mgic_2B( BT_GAUGE_REG_VCELL, temp_v ) == ERR_SUCCESS ) + { + bt_volt16 = ( temp_v[0] * 256 + temp_v[1] ); + } + + if(( bt_volt16 < V_TH_ZERO ) || ( vreg_ctr[ VREG_C_BT_REMAIN ] == 0 )) + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN ); + } + } + } +} + + + +/******************************************************** +dr֌W̏ + +@@@Q[W@@b@L@@@@@b@ +@@[[[[[[[[[[[[[[[[[[[[[[[ +@@@dr@Lb@@@@@@@b@H +@@[[[[[[[[[[[[[[[[[[[[[[[ +@@@@@@b@@@@@@b@sr +@@@@@@@@b@@dr@b +@@[[[[[[[[[[[[[[[[[[[[[[[ + +@@Q[WLAdr@̔^@ʂ́A +@drxŔ肷 + + ԒlF@dr 0xFF + drςĂȂ 0 + drς 1 + +***********************************************************/ +bit bt_force_update; + + + +/********************************************//** + obẽ`FbNAƁA{̎ʎʁisp̂߁j + ***********************************************/ +void BT_chk() +{ + static BT_VENDER battery_manufacturer_old; + + battery_manufacturer_old = battery_manufacturer; + + BT_model_detect(); + bt_param_select(); // obecʕ␳p[^ȂǃZbg @łAƂ肠̒l(pi)wɂĂB + + if( system_status.model != MODEL_JIKKI ) + { + bt_authorized = false; + return; + // ܂ + } + + if(( battery_manufacturer_old != battery_manufacturer ) || + bt_force_update ) + { + bt_force_update = false; + iic_mcu_start( ); // ŏtOĂ̂ŌĂт܂ėǂ@ȂƂɁcorz + if( (( battery_manufacturer_old == BT_VENDER_OPEN ) || + ( battery_manufacturer_old == BT_VENDER_NOT_CHECKED )) && + !system_status.reboot ) + { + BT_mgic_quick_start(); + } + BT_mgic_init(); // @픻s܂ + } + bt_authorized = true; + renge_task_immed_add( tski_BT_temp_update ); // drxĎ +} + + + +/********************************************//** + {̎ʎ + ***********************************************/ +void BT_model_detect() +{ + u8 temp; + + BT_DET_P = 1; + BT_TEMP_P = 1; + wait_ms( 3 ); // dオ̂ɎԂ| + + raw_adc_temperature = get_adc( ADC_SEL_BATT_TEMP ); + temp = get_adc( ADC_SEL_BATT_DET ); + BT_DET_P = 0; + + system_status.captureBox = false; + // vbgtH[ // + if( raw_adc_temperature > 0xF0 ) + { + // TS // + system_status.model = MODEL_TS_BOARD; + system_status.family = FAMILY_CTR; // Hł̌딻㏑ + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_CGS; +// set_voltages( system_status.family ); svH + } + else if( raw_adc_temperature < 4 ) + { + // // + 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/snake_branches/info_blue_double/pm.h b/snake_branches/info_blue_double/pm.h new file mode 100644 index 0000000..b6cb8bc --- /dev/null +++ b/snake_branches/info_blue_double/pm.h @@ -0,0 +1,220 @@ +#ifndef __PM__ +#define __PM__ + +// $Id: asdf$ + + +#define IIC_SLA_PMIC 0x84 +#define IIC_SLA_BT_GAUGE 0x6C + +#define VCOM_DEFAULT_T 92 +#define VCOM_DEFAULT_B 95 + + + +#define BATT_TH_LO 10 +#define BATT_TH_EMPTY 5 + +// dWX^ƒڔrłpɃItZbg +#define V_BT_4000MV (u16)( 4000 * 12.8 ) // dǂݏosp 4000mVݒ +#define V_TH_30 (u16)( 3300 * 12.8 ) // 30% +#define V_TH_LO (u16)( 3200 * 12.8 ) // 10% +#define V_TH_EMPTY (u16)( 3150 * 12.8 ) // 5% +#define V_TH_ZERO (u16)( 3100 * 12.8 ) // 0% +#define V_TH_FORCE_OFF (u16)( 2900 * 12.8 ) // 2.9V ŏIf + + +//========================================================= +#ifdef _WIN32 +#define LED_CHARGE mcuRegP[ _P2_4 ] +#else +#define LED_CHARGE P2.4 +#endif + + +//========================================================= +enum PMIC_REG_ADRS +{ + PM_REG_ADRS_VER = 0x00, // verinfo Ȃ + PM_REG_ADRS_VDD_SYS, // VXegpd + PM_REG_ADRS_VDD_LCD, // td + PM_REG_ADRS_CONT, // /RESET1, LoadSwitch + PM_REG_ADRS_BL, // obNCg on/off + PM_REG_ADRS_POW_SAVE, // ȓd͐ݒ + PM_REG_ADRS_POW_DAC1, + PM_REG_ADRS_POW_DAC2 +}; + +enum BT_GAUGE_REG_ADRS +{ + BT_GAUGE_REG_VCELL = 0x02, // ꂼ16rbĝ + BT_GAUGE_REG_SOC = 0x04, + BT_GAUGE_REG_MODE = 0x06, + BT_GAUGE_REG_VERSION = 0x08, + BT_GAUGE_REG_OCV = 0x0E, + BT_GAUGE_REG_RCOMP = 0x0C, + BT_GAUGE_REG_LOCK = 0x3E, + BT_GAUGE_REG_BT_PARAM = 0x40, + BT_GAUGE_REG_COMMAND = 0xFE +}; + + +typedef enum BT_VENDER +{ + BT_VENDER_MAXELL = 0, // V[g + BT_VENDER_1, // 120 + BT_VENDER_2, // 360 + BT_VENDER_3, // 750 + BT_VENDER_4, // 1.3k + BT_VENDER_PANA = 5, // 2.7k + BT_VENDER_6, // 8.2k + BT_VENDER_OPEN = 7, // open + BT_VENDER_NOT_CHECKED = 0xFF, +}BT_VENDER; + + + +enum NTR_PM_BT_STATUS{ + NTR_PM_BT_ENOUGH, + NTR_PM_BT_EMPTY, + NTR_PM_BT_NOT_INITIALIZED = 0xFF +}; + + + +//========================================================= +// CODECPMIC݊WX^ +#define CODEC_REG_PM 0x10 +#define CODEC_REG_BL 0x11 +#define CODEC_REG_BT 0x12 +//#define CODEC_REG_VOL 0x13 // ...sɂAadc.hŒ` + +// TWLSPIPMICɓR}h +#define REG_BIT_TWL_REQ_OFF_REQ ( 1 << 6 ) +#define REG_BIT_TWL_REQ_RST_REQ ( 1 << 0 ) +#define REG_BIT_TWL_REQ_BL ( 3 << 2 ) + + + +// 0x03 pw cnt3 +#define PM_REG_BIT_LDSW ( 1 << 0 ) +#define PM_REG_BIT_nRST1 ( 1 << 1 ) + +// 0x01 pw cnt1 +#define PM_REG_BIT_VDD_CTR 0x0F +#define PM_REG_BIT_VDD50A ( 1 << 4 ) + +// 0x02 pw cnt2 +#define PM_REG_BIT_VDDLCD_CGS 0x07 +#define PM_REG_BIT_VDDLCD_AMO 0x05 +#define PM_REG_BIT_LCD_VCS ( 0x01 << 4 ) +#define PM_REG_BIT_LCD_TCOM ( 0x01 << 3 ) + +// 0x04 bl cnt +#define PM_REG_BIT_BL_U 0x01 +#define PM_REG_BIT_BL_L 0x02 + + +// 0x05 pow save +#define PM_REG_BIT_VDD1P_1R15 bits8(0,0,0,0, 0,0,0,0) +#define PM_REG_BIT_VDD1P_1R05 bits8(0,0,0,0, 1,0,0,0) +#define PM_REG_BIT_VDD1P_1R00 bits8(0,0,0,1, 0,0,0,0) +#define PM_REG_BIT_VDD1P_0R90 bits8(0,0,1,0, 0,0,0,0) +#define PM_REG_BIT_VDD_AUTO bits8(0,0,0,0, 0,1,1,1) +#define PM_REG_BIT_VDD_PWM bits8(0,0,0,0, 0,0,0,0) + + +#define DELAY_PM_TW_PWUP 16 + 2 +#define DELAY_PM_TSS_50B_AND_TCOM 17 + 1 +#define DELAY_PM_5V_TO_TCOM 17 + 1 +#define DELAY_PM_TCOM_TO_VCS 3 +#define DELAY_PM_VCS_TO_BL ( 17 + 5 ) +#define DELAY_PM_LCD_OFF ( 50 + 1 ) + + +//========================================================= +extern u8 raw_adc_temperature; +extern BT_VENDER battery_manufacturer; +extern bit bt_force_update; + +extern u8 pmic_version; +extern u8 mgic_version[]; + +extern u8 pm_reg_bit_vddlcd; // At@XΉ(dV[PXႤ) + +extern u8 pmreg_v_core; // SoC̃RAdݒBSNAKE(LAGER)ŕύX邽߁B + +//========================================================= +err PM_sys_pow_on( ); +void PM_sys_pow_off( ); +//err PM_bt_auth( ); +void PM_LCD_vcom_set( ); + +err PM_LCD_on( ); +void PM_LCD_off( ); +err PM_BL_set( u8 ); + +void BT_chk(); +void BT_get_left(); +void pm_chk_adapter(); + +void codec_reg_init(); + +void set_vdd_voltages( enum family_ family ); + +void reset_release(); + +task_status_immed tski_BT_temp_update( ); +task_status_immed tski_vcom_set( ); +task_status_immed tski_PM_LCD_on(); +task_status_immed tski_PM_LCD_off(); +task_status_immed tski_PM_BL_set(); + + +err send_cmd_pmic( u8 reg, u8 dat ); +u8 read_pmic( u8 reg ); + + +#define PM_Chg_Stop() { BT_TEMP_P = 0; BT_CHG_DISABLE(); LED_CHARGE = 0; bt_authorized = false; } +// @ĂԑOɁA݉xĂKv܂B +#define PM_reset() ( send_cmd_pmic( PM_REG_ADRS_CONT, 0x00 ) ) + + +//========================================================= + + +// // +#define PM_LDSW_on() ( send_cmd_pmic( PM_REG_ADRS_CONT, PM_REG_BIT_LDSW )) +#define PM_LDSW_off() ( send_cmd_pmic( PM_REG_ADRS_CONT, 0 )) + + +// VXed // +#define PM_VDD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, PM_REG_BIT_VDD_CTR )) +#define PM_VDD50A_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, ( PM_REG_BIT_VDD_CTR | PM_REG_BIT_VDD50A ))) +#define PM_VDD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, 0 )) +#define PM_off() PM_VDD_off() + +// CPUd +#define PM_VDD_normMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, pmreg_v_core | PM_REG_BIT_VDD_PWM )) +#define PM_VDD_ecoMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_0R90 | PM_REG_BIT_VDD_AUTO )) + +// ق // +#define PM_reset_neg() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW | PM_REG_BIT_nRST1 ))) +#define PM_reset_ast() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW ))) +#define PM_chk_LDSW() ( read_pmic( PM_REG_ADRS_CONT ) & PM_REG_BIT_LDSW ) +// 1̂ƂAdon + +// tnd // +#define PM_VDDLCD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, pm_reg_bit_vddlcd )) +#define PM_TCOM_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_TCOM ))) +#define PM_VCS_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_VCS | PM_REG_BIT_LCD_TCOM ))) +#define PM_TCOM_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_VCS ))) +#define PM_TCOM_VCS_off() PM_VDDLCD_on() +#define PM_VDDLCD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, 0 ) ) + +#define PM_set_BL( dat ) ( send_cmd_pmic( PM_REG_ADRS_BL, dat ) ) +#define PM_set_adc1( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC1, dat ) ) +#define PM_set_adc2( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC2, dat ) ) + + +#endif // __PM__ diff --git a/snake_branches/info_blue_double/pool.h b/snake_branches/info_blue_double/pool.h new file mode 100644 index 0000000..81c8091 --- /dev/null +++ b/snake_branches/info_blue_double/pool.h @@ -0,0 +1,24 @@ +#ifndef _pool_h_ +#define _pool_h_ + + +#include "pedometer.h" + +#define VREG_C_FREE_SIZE 200 + +// 󂢂Ă郁 +typedef struct _st_vreg_c_ext{ + unsigned short pedo_log[ PEDOMETER_LOG_SIZE ]; + unsigned char vreg_c_free[ VREG_C_FREE_SIZE ]; +}st_vreg_c_ext; + +typedef union _uni_pool +{ + st_vreg_c_ext vreg_c_ext; + u8 self_update_work[ 256 ]; // 256ȏ͂܂ƂߏłȂ +}uni_pool; + +extern uni_pool pool; + + +#endif diff --git a/snake_branches/info_blue_double/reboot.c b/snake_branches/info_blue_double/reboot.c new file mode 100644 index 0000000..53912a5 --- /dev/null +++ b/snake_branches/info_blue_double/reboot.c @@ -0,0 +1,23 @@ +/********************************************************//* + ނ胊u[g + + t@CɃCCAZuƁA + ̃W[SœKȂȂ邽ߒǂo + $Id$ + **********************************************************/ +#pragma SFR + +#include "incs_loader.h" + + +void my_reboot(){ +#asm + + MOV PSW,#06H ; _~[PSWZbg + MOVW AX,#000d0h ; Zbg̃xN^l荞ł܂B + PUSH PSW + PUSH AX ; RETÎ߂̃X^bN + RETI ; ŃZbgExN^ɕ + +#endasm +} diff --git a/snake_branches/info_blue_double/reboot.h b/snake_branches/info_blue_double/reboot.h new file mode 100644 index 0000000..c20e11e --- /dev/null +++ b/snake_branches/info_blue_double/reboot.h @@ -0,0 +1,6 @@ +#ifndef __MYREBOOT__ +#define __MYREBOOT__ + +void my_reboot(); + +#endif diff --git a/snake_branches/info_blue_double/renge/renge.c b/snake_branches/info_blue_double/renge/renge.c new file mode 100644 index 0000000..19bee20 --- /dev/null +++ b/snake_branches/info_blue_double/renge/renge.c @@ -0,0 +1,313 @@ +#ifndef _WIN32 + +#pragma section @@CODE ROM_CODE +#pragma nop +#pragma ei +#pragma di +#pragma sfr + +#endif + + +#ifdef _WIN32 +typedef unsigned char bit; +typedef unsigned char u8; +#endif + +/****************************************************************************** + ^XNVXeH + ȂقǁAiTRONɂ̓RtBM[^͂B + ܂ + ctr_mcu_config.rb QƁB task_config.h쐬܂B + *****************************************************************************/ +#include "renge.h" +#include "renge_task_intval.h" +#include "renge_task_immediate.h" +#include "..\WDT.h" +#include "..\config.h" +#include "..\user_define.h" +#include "..\util_funcs.h" + + +#ifdef _WIN32 +#include "../sim/simOnWin.h" +#endif +//#define _renge_test_ + +#define true 1 +#define false 0 + +//****************************************************************************** +u8 renge_flg_interval; +bit renge_task_interval_run_force; +bit renge_task_immediate_not_empty; + + +#include "..\bsr_system.h" +extern system_status_ system_status; + + +//****************************************************************************** +static void renge_task_immed_init(); +static void renge_task_immed_del(); + + + +//****************************************************************************** +task_status_immed ( *tasks_immed[ TASK_IMMED_RUN_LIST_MAX ] )(); + + + +/****************************************************************************** + +E^XNVXe̓Ȉ +EC^[o^C} + *****************************************************************************/ +void renge_init(){ + renge_task_immed_init(); + /* + Cxg^C}̃ZbgȂ + RTC𗬗pĂ̂ŃRgAEg + #define renge_tick 19xxxxxxx [ms] + renge_interval_init(); RTC_init(); + */ +} + + + +/****************************************************************************** + VXe`bNi߂ + *****************************************************************************/ +/* +void renge_interval(){ +// RTCĂ +__interrupt void int_rtc_int(); +} +*/ + + + +/****************************************************************************** + RpCɌ܂ĂAC^[oÑ^XN + ̂ANƍ邩ȂB + *****************************************************************************/ +__callt err renge_task_interval_run(){ + u8 i; + + // C^[oN + DI_wt_chk(); + if(( renge_flg_interval != 0 ) || + ( renge_task_interval_run_force )) /// ȁc + { + renge_task_interval_run_force = false; // N^XNA荞ރ^XNŃtO‚Ȃ̂ + if( renge_flg_interval != 0 ) + { + renge_flg_interval --; + WDT_Restart( ); + } + EI(); + for( i = 0; i != TSK_LAST; i ++ ) + { + tasks[ i ](); + // N^XNԂɋ + renge_task_immed_run(); + } + } + EI(); + return( ERR_SUCCESS ); +} + + + +/***************************************************************************** + N^XN + + task_immed Ԃ֐B + VXetickA炩̊荞݁iI2CʐMȂǁj + X[v畜A^C~OŎs܂B + +Ԓl@TSKI_FINISHED@^XN폜 +@@@@ȊO ̃^C~Oł܂s + + *****************************************************************************/ + + +/************************************** + **************************************/ +void renge_task_immed_init(){ + u8 i; + + for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i++ ){ + tasks_immed[ i ] = TSK_IMM_EMPTY_; + } +} + + + +/************************************** + s^XN̓o^ + 荞݋֎~ 36us + **************************************/ +__callt err renge_task_immed_add( task_status_immed (*new_task)() ){ + u8 i; + + // Xg̋󂫂̐擪ɓo^ + // 폜΂̃^XŃA폜}[N(TSK_IMM_DELETED_)ƂȂA󂫂Ƃ͖Iɋʂ + // do^ + for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i ++ ) + { + DI_wt_chk(); + if( tasks_immed[ i ] == TSK_IMM_EMPTY_ ) + { + // 󂫂‚ + tasks_immed[ i ] = new_task; + EI(); + return( ERR_SUCCESS ); + } + else + { + // do^`FbN + /// ɂȂĂȂAOl߂ĂO + if( tasks_immed[ i ] == new_task ) + { + // do^͂Ȃ + EI(); + return( ERR_ERR ); + } + } + EI(); + } + // ^XNo^(͂ + return( ERR_ERR ); +} + + + +/************************************** + s^XN̎s + **************************************/ +__callt err renge_task_immed_run(){ + u8 list_id; + +// while( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ ) + if( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ ) + { + DI_wt_chk(); + for( list_id = 0; list_id < TASK_IMMED_RUN_LIST_MAX; list_id ++ ){ + if( tasks_immed[ list_id ] == TSK_IMM_EMPTY_ ){ + // Xg + EI(); + break; + } +#ifdef _renge_test_ + else if( tasks_immed[ list_id ] == TSK_IMM_DELETED_ ) + { + EI(); + NOP(); + // ^XNǗ̕s + // ݂Ȃ^XNs悤Ƃ + // ^XN̍폜̏܂ + // \Ȃ^C~O immed_run Ă΂ꂽ + } +#endif + else + { + u8 rv; + + EI(); + rv = tasks_immed[ list_id ](); // ^XNs + if( rv == ERR_SUCCESS ) + { + tasks_immed[ list_id ] = TSK_IMM_DELETED_; + } + // ǂ^C~Oœ^XN̓o^ƍ̂DIԂłė鎖 + } + DI_wt_chk(); + } + // Xg̃^XNʂs + + // ^XN폜 // + { + u8 i = 0; // Xg̕בւ + u8 j = 1; + + // K i < jAj < TASK_IMMED_RUN_LIST_MAX (łȂƃ^XNӂ) + while( 1 ) + { + if( tasks_immed[ i ] == TSK_IMM_EMPTY_ ) + { + // Olߊ && Xg + // break; + goto imm_list_sort_fin; + } + else if( tasks_immed[ i ] == TSK_IMM_DELETED_ ) + { + for( ; j < TASK_IMMED_RUN_LIST_MAX; j++ ) + { + if( tasks_immed[ j ] == TSK_IMM_DELETED_ ) + { + // ׁiHj폜Ώۂ + // next j + } + else + { + DI_wt_chk(); + if( tasks_immed[ j ] == TSK_IMM_EMPTY_ ) + { + do{ + j --; + tasks_immed[ j ] = TSK_IMM_EMPTY_; + // XgOlߊ + }while( i < j ); + EI(); + goto imm_list_sort_fin; + } + else + { + // Ol߂ׂ^XN‚ + tasks_immed[ i ] = tasks_immed[ j ]; + tasks_immed[ j ] = TSK_IMM_DELETED_; + i ++; + EI(); + } + } + } + } + else + { + // ̃^XNAؗ + } + i ++; + } + } + } + +imm_list_sort_fin: + // ܂łŊSɑOl߂Ă +#ifdef _renge_test_ + /// ق? + { + u8 a,b; + + a = 0; + for( b = 0 ; b < TASK_IMMED_RUN_LIST_MAX; b++ ) + { + if( tasks_immed[ b ] == TSK_IMM_EMPTY_ ) + { + a = 1; + } + else + { + if( a != 0 ) + { + NOP(); // EMPTYɃ^XNdeletedL + } + } + } + } +#else + NOP(); // Ȃ񂩖ƃJ{ +#endif +// } + return( ERR_SUCCESS ); +} diff --git a/snake_branches/info_blue_double/renge/renge.h b/snake_branches/info_blue_double/renge/renge.h new file mode 100644 index 0000000..9c7b2e4 --- /dev/null +++ b/snake_branches/info_blue_double/renge/renge.h @@ -0,0 +1,26 @@ +#ifndef __renge__ +#define __renge__ + +//****************************************************************************** + + + +//****************************************************************************** +#include "renge_defs.h" +#include "renge_task_immediate.h" +// #include "renge_task_interval_run.h" // O狭N֎~I + +//****************************************************************************** +void renge_init(); +void renge_task_immed_init(); +__callt err renge_task_immed_run(); +__callt err renge_task_immed_add( task_status_immed (*p_task_func)() ); +// static err renge_task_immed_del( u8 ); + + +//****************************************************************************** +__callt err renge_task_interval_run(); +extern u8 renge_flg_interval; +extern bit renge_task_interval_run_force; // ^XNstO + +#endif diff --git a/snake_branches/info_blue_double/renge/renge_defs.h b/snake_branches/info_blue_double/renge/renge_defs.h new file mode 100644 index 0000000..03c98a6 --- /dev/null +++ b/snake_branches/info_blue_double/renge/renge_defs.h @@ -0,0 +1,55 @@ +#ifndef __renge_defs__ +#define __renge_defs__ +/****************************************************************************** + Renge Ver.0 (2009/04/09) + 2009- 7k4jhl R.Fujita @ RED.nintendo + + OSɂ͂قljAȈՓIȃ^XNVXeB + Range Typo ł͂ȂłBQłB + + Ȃ Q ͑̂œ{ QQ + ǖɗ–𑐂łB + 傫ĂˁI + ******************************************************************************/ + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef signed short s16; + + +// ************************************ +#define SYS_INTERVAL_TICK 1.953 + + + +// ************************************ +typedef enum _ERR +{ + ERR_SUCCESS = 0, + ERR_ERR +}err; + + +typedef enum _IMMED_TASK_ERR +{ + TSKI_FINISHED = 0, + TSKI_CONTINUE +}IMMED_TASK_ERR; + + + +/************************************** + C^[oN + *************************************/ +typedef void task_status; + + +/************************************** + Ñ^XNXg + p~ɂȂ邩Ȃ + *************************************/ +typedef IMMED_TASK_ERR task_status_immed; + + +#endif diff --git a/snake_branches/info_blue_double/renge/renge_task_config.rb b/snake_branches/info_blue_double/renge/renge_task_config.rb new file mode 100644 index 0000000..c2de509 --- /dev/null +++ b/snake_branches/info_blue_double/renge/renge_task_config.rb @@ -0,0 +1,59 @@ +#!/usr/bin/ruby -Ks + +tasklist = Array.new + + +if( ARGV[0] == nil ) + printf( "t@C renge_tasks.txt gp܂" ) + datfile = "renge_tasks.txt" +else + datfile = ARGV[0] +end + +if( !File.exist?( datfile ) ) + printf("ݒt@C‚܂B") + exit( 1 ) +end + + +setting = File.open( datfile ) + +setting.each{|dat| + dat.chomp! + if( dat != nil ) + tasklist << dat + end +} + +tasklist.each{|dat| + printf( "\n%s" , dat ) +} +printf( "\n----------\n^XN %d \n", tasklist.size ) + + +#----- ÓI^XN̗ ------------------------------------------------------- +conf = File.new( "renge_task_intval.h", "w+" ) + +conf << "/*XNvgɂ鎩łB蓮ŏȂ悢ł*/\n\n" +conf << "#ifndef __renge_task__\n#define __renge_task__\n\n" +conf << "#include \"renge_defs.h\"\n\n" + +conf << "enum {\n " +tasklist.each{|dat| + conf << "TSK_" << dat.upcase << ", " +} +conf << "TSK_LAST \n };\n\n" + + +tasklist.each{|dat| + conf << "extern void tsk_" << dat << "();\n" +} +conf << "\n" + +conf << "const void ( *tasks[ TSK_LAST ] )() = {\n" +tasklist.each{|dat| + conf << " tsk_" << dat << ",\n" +} +conf << " };\n" + +conf << "\n#endif\n" diff --git a/snake_branches/info_blue_double/renge/renge_task_immediate.h b/snake_branches/info_blue_double/renge/renge_task_immediate.h new file mode 100644 index 0000000..9ac3bd2 --- /dev/null +++ b/snake_branches/info_blue_double/renge/renge_task_immediate.h @@ -0,0 +1,25 @@ +#ifndef __tasks__ +#define __tasks__ + +#include "renge_defs.h" + +// ************************************* +#define TASK_IMMED_RUN_LIST_MAX 10 + + +extern task_status_immed tski_do_command0( ); +extern task_status_immed tski_ntr_pmic_comm(); +extern task_status_immed tski_acc_read(); +extern task_status_immed tski_acc_write(); +//extern task_status_immed tski_acc_setup(); // accero.h +extern task_status_immed tski_mcu_reset(); +extern task_status_immed tski_vol_update(); + + +// ************************************* +#define TSK_IMM_EMPTY_ ( void * )( 0x0000 ) +#define TSK_IMM_DELETED_ ( void * )( 0x0001 ) + + + +#endif diff --git a/snake_branches/info_blue_double/renge/renge_task_intval.h b/snake_branches/info_blue_double/renge/renge_task_intval.h new file mode 100644 index 0000000..9b0d9ea --- /dev/null +++ b/snake_branches/info_blue_double/renge/renge_task_intval.h @@ -0,0 +1,37 @@ +/*XNvgɂ鎩łB蓮ŏȂ悢ł*/ + +#ifndef __renge_task__ +#define __renge_task__ + +#include "renge_defs.h" + +enum TSK +{ + TSK_SW, TSK_ADC, TSK_BATT, TSK_LED_POW, TSK_LED_WIFI, TSK_LED_NOTIFY, TSK_LED_CAM, TSK_MISC, TSK_STATUS, TSK_SYS, TSK_LAST + }; + +extern void tsk_sw(); +extern void tsk_adc(); +extern void tsk_batt(); +extern void tsk_led_pow(); +extern void tsk_led_wifi(); +extern void tsk_led_notify(); +extern void tsk_led_cam(); +extern void tsk_misc(); +extern void tsk_status(); +extern void tsk_sys(); + +const void ( *tasks[ TSK_LAST ] )() = { + tsk_sw, + tsk_adc, + tsk_batt, + tsk_led_pow, + tsk_led_wifi, + tsk_led_notify, + tsk_led_cam, + tsk_misc, + tsk_status, + tsk_sys, + }; + +#endif diff --git a/snake_branches/info_blue_double/renge/renge_tasks.txt b/snake_branches/info_blue_double/renge/renge_tasks.txt new file mode 100644 index 0000000..73af545 --- /dev/null +++ b/snake_branches/info_blue_double/renge/renge_tasks.txt @@ -0,0 +1,11 @@ +sw +adc +batt +led_pow +led_wifi +led_notify +led_cam +misc +status +debug +sys diff --git a/snake_branches/info_blue_double/rtc.c b/snake_branches/info_blue_double/rtc.c new file mode 100644 index 0000000..dd2d1a9 --- /dev/null +++ b/snake_branches/info_blue_double/rtc.c @@ -0,0 +1,182 @@ +/* ======================================================== + RTC + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr +#pragma inline + +#endif + +#include "incs.h" + + +#define RTC_DATA_SIZE 7 +// ======================================================== +static u8 rtc_work[RTC_DATA_SIZE]; +static bit rtc_lock; +static bit rtc_dirty; +bit rtc_alarm_dirty; + + +/********************************************//** + ytF̏ + + WX^̓drrbg̃Zbg + ***********************************************/ +void RTC_init( void ) +{ + + if( !RTCEN ) // rbgĂ烊u[g + { + RTCEN = 1; // W[ON + + // RTCݒ + RTCC0 = bits8(0,0,0,0, 1,0,0,0); /* ~A24ԐA32kóu܂ȂvA荞݂Ȃ */ + // (RTCE 0 RCLOE1 RCLOE0 AMPM CT2 CT1 CT0) + RTCC1 = bits8(1,1,0,0, 0,0,0,0); /* A[荞ݗLJn */ + // (WALE WALIE 0 WAFG RIFG 0 RWST RWAIT) + RTCC2 = bits8(1,0,0,0, 0,0,0,0); /* C^[o:32k/2^6=2msARTCDIVo͂Ȃ */ + // (RINTE RCLOE2 RCKDIV 0 0 ICT2 ICT1 ICT0) + + HOUR = 0x00; + MIN = 0x00; + SEC = 0x00; + MONTH = 0x01; + DAY = 0x01; + WEEK = 0x01; // Mon + YEAR = 0x01; + + ALARMWW = 0x7F; + + vreg_ctr[VREG_C_MCU_STATUS] |= REG_BIT_RTC_BLACKOUT; + } + // 荞ݐݒ + RTCIF = 0; + RTCIIF = 0; + RTCMK = 1; /* 荞()֎~ */ + RTCIMK = 0; /* 荞(A[&C^[o) */ + + RTCE = 1; /* Jn */ + + RWAIT = 1; + while( !RWST ) + {;} + RWAIT = 0; + + rtc_lock = false; + rtc_dirty = false; + rtc_alarm_dirty = false; +} + + + +/********************************************//** + RTC A[荞 + ***********************************************/ +__interrupt void int_rtc( ) +{ + RWAIT = 1; + while( !RWST ) + {;} + // tw + if( ( vreg_ctr[VREG_C_RTC_ALARM_DAY] == DAY ) + && ( vreg_ctr[VREG_C_RTC_ALARM_MONTH] == MONTH ) + && ( vreg_ctr[VREG_C_RTC_ALARM_YEAR] == YEAR ) ) + { + set_irq( VREG_C_IRQ1, REG_BIT_RTC_ALARM ); + } + RWAIT = 0; +} + + + +/********************************************//** + RTC ̃[h + + WX^́Asec,min,hour,week,day,month,year ̏ + ***********************************************/ +void rtc_buf_refresh( ) +{ + if( !rtc_lock ) + { + rtc_lock = true; + RWAIT = 1; + while( !RWST ) + {;} + + memcpy( &vreg_ctr[VREG_C_RTC_SEC], &SEC, RTC_DATA_SIZE ); + RWAIT = 0; +// renge_task_immed_add( tski_rtc_close ); + } +} + + + +/********************************************//** + RTC ̃Cg + + set_rtc_close Ƒ΂ŎgĉB + + ‚̓obt@ɃRs[邾ŁA + ۂRTCɃZbĝset_rtc_close()łB + ***********************************************/ +void set_rtc( u8 adrs, u8 data ) +{ + if( !rtc_dirty ) + { + rtc_dirty = true; + memcpy( rtc_work, &SEC, RTC_DATA_SIZE ); +// renge_task_immed_add( tski_rtc_close ); // I2CIɍs + } + rtc_work[adrs] = data; +} + + + +/********************************************//** + KvȂ΁ARTCWX^̍XV + ***********************************************/ +// task_status_immed tski_rtc_close(){ +void rtc_unlock( ) +{ + // [hbN + rtc_lock = false; + + // CgbN + if( rtc_dirty ) + { + rtc_dirty = false; + RWAIT = 1; + while( !RWST ) + {;} + memcpy( &SEC, rtc_work, RTC_DATA_SIZE ); + RWAIT = 0; + } + + // A[Zbg + if( rtc_alarm_dirty ) + { + rtc_alarm_dirty = false; + WALE = 0; + ALARMWM = vreg_ctr[VREG_C_RTC_ALARM_MIN]; + ALARMWH = vreg_ctr[VREG_C_RTC_ALARM_HOUR]; + WALE = 1; + } +} + + + + +/********************************************//** + RTC VXe`bN^C}荞݃xN^ + + 2^6/fXTi1.953125 msj + ***********************************************/ +__interrupt void int_rtc_int( ) +{ +// renge_flg_interval ++; // CNg/fNg߂ĝ DI()sv + renge_flg_interval = 1; // set1߂ĝ DI()sv +} + diff --git a/snake_branches/info_blue_double/rtc.h b/snake_branches/info_blue_double/rtc.h new file mode 100644 index 0000000..a203e83 --- /dev/null +++ b/snake_branches/info_blue_double/rtc.h @@ -0,0 +1,24 @@ +#ifndef __rtc_h__ +#define __rtc_h__ + +// $Id: asdf$ + + +void RTC_init( void ); +void rtc_buf_refresh( ); +void set_rtc( u8 adrs, u8 data ); + +//task_status_immed tski_rtc_close(); +void rtc_unlock( ); + +// ------------------------------------ +#define RTC_32k_on() { /*RCLOE2 = 0;*/ RCLOE0 = 1; /*P1.2 = 0;*/ PM1.2 = 0; } +#define RTC_32k_off() { PM1.2 = 0; RCLOE0 = 0; } +#define RTC_32k_HI_Z() { PM1.2 = 1; } + + +// ------------------------------------ +extern bit rtc_alarm_dirty; + + +#endif diff --git a/snake_branches/info_blue_double/self_flash.c b/snake_branches/info_blue_double/self_flash.c new file mode 100644 index 0000000..a662d07 --- /dev/null +++ b/snake_branches/info_blue_double/self_flash.c @@ -0,0 +1,635 @@ +/* ======================================================== + ȃAbvf[^ + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt + +#endif + +#include "incs_loader.h" + +#include +#include "fsl_user.h" +#include "i2c_ctr.h" +#include "i2c_mcu.h" + +#include "pool.h" +#include "magic.h" + +#include "pm.h" +#include "WDT.h" +#include "util_funcs.h" + + +// ======================================================== +const u8 fsl_fx_MHz_u08 = 8; +const u8 fsl_low_voltage_u08 = 1; + + +// ȃtbVp[^ +#define SAM_BLOCK_SIZE 1024 + // 256oCgȏ͂܂Ƃ߂Ă܂B +#define SELF_UPDATE_BUFF_SIZE 256 +#define SELF_UPDATE_SPLIT_WRITE_NUM ( SAM_BLOCK_SIZE / SELF_UPDATE_BUFF_SIZE ) +#define SAM_WORD_SIZE 4 + +// ubNԍi1ubN1kBj +#define INACTIVE_BOOTSECT_TOP 4 +#define FIRM_TOP 8 +#define FIRM_SIZE 12 +#define ALTERNATE_FIRMTOP 20 + + +#ifdef _MCU_BSR_ +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICAPR0 IICAPR10 +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR1 IICAPR11 +#define IICCTL0 IICCTL01 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#endif + +#ifndef _WIN32 +#define LED_POW1 P4.2 +#define LED_PM_POW1 PM4.2 +#else +#define LED_POW1 mcuRegP[ _P4_2 ] +#define LED_PM_POW1 mcuRegPM[ _P4_2 ] +#endif + +// ======================================================== +static void FSL_Open( void ); +static void FSL_Close( void ); +void firm_restore( ); + +static err my_FSL_Init(); +static err firm_duplicate( u8 block_src, u8 block_dest ); + +#ifdef _DBG_LED_PRINT_ +void alert( u8 ); +void led_print( u8 ); +#else +# define alert( x ) ; +# define led_print( x ) ; +#endif + + +// ======================================================== +extern uni_pool pool; + + +// 0.Dȍ~ VAbvf[^ +// Vt@[͑vH +#define N_MGC_L 0x1FF6 +#define N_MGC_T 0x4FF6 + + + +/********************************************//** + I2CŎMāA + + ݁A + + `FbNOK@@Vt@[ɐ؂ւčċN + + @@@@NG@@ijt@[ɖ߂čċN + + i̊֐͖߂܂j + ***********************************************/ +void firm_update( ) +{ + u8 target_block; + u8 split_write_count; // ubNւ܂܏ރJE^ + + // ւO ///////////////////////////////////// + my_FSL_Init(); + + /* t@[̃obNAbv + JnAhXAݐ̐擪hubNԍh (TCY FIRM_SIZE) + 0x2000 - 0x4FFF + 0x5000 - 0x7FFF (ubN 20 - 31) ɃRs[ + */ + firm_duplicate( FIRM_TOP, + ALTERNATE_FIRMTOP ); + + // SubN폜 ///////////////////////////////////// + // df𔻒肷邽߁AŏɑSNX^ + //iVt@[ƂɎcĂAȑÕt@[̃tb^j + for( target_block = INACTIVE_BOOTSECT_TOP; + target_block < ALTERNATE_FIRMTOP; + target_block ++ ) + { + FSL_Erase( target_block ); + } + + + // ւ /////////////////////////////////////////// + // XgbvRfBV܂ő + // IAX^[gAbv[`ɔ + for( target_block = INACTIVE_BOOTSECT_TOP; + target_block < ALTERNATE_FIRMTOP; + target_block ++ ) + { + u8 my_spd; + +/* łɏĂBłȂƒfꂽƂIĂ邩ʏoȂ +// // Vt@[̈폜 +// FSL_Erase( target_block ); +*/ + // + for( split_write_count = 0; + split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; + split_write_count ++ ) + { + u8* p_buffer = &pool.self_update_work[0]; + u16 buff_written_size = 0; + + WDT_Restart( ); + + // I2C珑݃f[^obt@ɂ߂ + do + { + while( !IICAIF && !SPD ) + {;} + my_spd = SPD; + IICAIF = 0; + *p_buffer = IICA; + WREL = 1; + p_buffer ++; + buff_written_size ++; + } + while( ( buff_written_size != SELF_UPDATE_BUFF_SIZE ) + && !SPD ); + + my_spd += SPD; + + // + // ŌゾƁAS~pfBO邪ʂɂ܂Ȃ + if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE + + split_write_count * SELF_UPDATE_BUFF_SIZE ), + ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ) + + != FSL_OK ) + { + alert(1); + // ݌̃`FbNG[ + // XgA + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // Zbg + // FSL_SwapBootCluster( ); // u[gXbvuɁvċNďoȂ炵 + // ߂ĂȂ // + } + + if( my_spd != 0 ) + { + break; + } + } + + // 1ubN݊Bxt@Cs + if( FSL_IVerify( target_block ) != FSL_OK ){ + alert(2); + // ēx xt@CJԂ_ł... /// ďׂ݂H + // XgA + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // Zbg + // FSL_SwapBootCluster( ); // u[gXbvuɁvċNďoȂ炵 + // ߂ĂȂ // + } + + if( my_spd != 0 ) + { + break; + } + } + + LREL = 1; + + // 񂾃t@[̃`FbN // + { + u8 i; + u8 comp = 0; + + // [_[̃}WbNƁA{̖̃}WbN͓mF + for( i = 0; i < sizeof( __TIME__ ); i++ ) + { + comp += (u8)(( (*( __far u8 * ) ( N_MGC_L + i )) == (*( u8 * ) ( N_MGC_T + i ) )) ? 0 : 1); + } + if( *( __far u8 * )( N_MGC_L +2 ) != ':' ) // ς̂܂ + { + comp ++; + } + + if( comp == 0 ) + { + // OK! + FSL_InvertBootFlag( ); + FSL_SwapBootCluster( ); // ZbgɓBFSL_Close͕sv + } + else + { + // f[^(}WbNio[ĂȂ)G[ + // XgA + alert(3); + + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // Zbg + // FSL_SwapBootCluster( ); // u[gXbvuɁvċNďoȂ炵 + } + // ߂ĂȂ // + } +} + + + + +/********************************************//** +t@[obNAbv̈悩烊XgA܂B + +`FbNAŌ̍ŌŃu[gXbv̂ŁA +ł̓u[gXbv͕svłB + ***********************************************/ +void firm_restore( ) +{ + DBG_LED_on; + LED_PM_POW1 = 0; + + // obNAbv͐H // + { + u16 i; + u8 comp = 0; + + for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 炵 + { + comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_HEAD_BKUP + i ) ) ? 0 : 1; + comp += ( *( u8 * )( MGC_HEAD_BKUP + i ) == *( u8 * )( MGC_FOOT_BKUP + i ) ) ? 0 : 1; + } + if( *( u8 * )( MGC_FOOT_BKUP ) == 0xFF ) + { + comp ++; + } + + if( comp != 0 ) + { + // obNAbv̈ꂽ... + comp = 0; + + // 3.3VオȂƍ + EI( ); + iic_mcu_start( ); + RESET2_ast; + FCRAM_RST_ast; + GYRO_DISABLE(); + PM_LDSW_on(); + wait_ms( 1 + DELAY_PM_TW_PWUP ); + PM_VDD_on( ); + + while(1) + { + WDT_Restart(); + + { + // LED sRsR + comp++; + LED_POW1 = ( comp == 1 || comp == 3 )? 1: 0; + if( comp == 8 ) + { + comp = 0; + } + } + + { + // d{^œdoff + static u8 sw_hold_count; + + if( !SW_POW_n_RAW ) + { + sw_hold_count++; + } + else + { + sw_hold_count = 0; + } + + if( sw_hold_count > 16 ) + { + sw_hold_count = 0; + // doff + PM_LDSW_off( ); + + // pwsw҂ŐQ + KRM = ( KR_SW_POW ); // Mask ł͂ȂAMode + MK0 = 0xFFFF; + MK1 = ~( INT_MSK1_KR ); + MK2L = 0xFF; + + // PU5 ̂܂ + PU7 = bits8(0,0,0,0, 1,0,0,0); // PWSWI + PU20 = bits8(0,0,0,0, 0,0,0,0); // SW_HOME ~ + + STOP( ); + +// mcu_wdt_reset; // [v̂͂悭ȂƎv + +// while(1){ +// NOP(); // Ȃ +// } + } + } + + // EFCg + for( i = 1; i != 0; i++ ) + { + NOP(); + NOP(); + NOP(); + NOP(); + } + } + } + } + + // else{ // obNAbv͐Ă + + while( my_FSL_Init() != ERR_SUCCESS ){ // FSLs悤Ȃ~Ȃ... + // todo gC񐔏H + alert(1); + } + + /* t@[̃XgA + 0x4800 - 0x7FFF (ubN 18 - 27) + 0x2000 - 0x47FF (ubN 8 - 17) փRs[ + */ + if( firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ) != ERR_SUCCESS ) + { + alert(2); + } + DBG_LED_off; + + // todo XgAsALEDƂāAT[rXɂĂ炤H + + FSL_ForceReset(); // ZbgA߂ĂȂ +} + + + +/********************************************//** +tbV̏̂߂̑O + ***********************************************/ +static void FSL_Open( void ) +{ + /* save the configuration of the interrupt controller and set */ +#ifdef FSL_INT_BACKUP + fsl_MK0L_bak_u08 = MK0L; /* if (interrupt backup required) */ + fsl_MK0H_bak_u08 = MK0H; /* { */ + fsl_MK1L_bak_u08 = MK1L; /* */ + fsl_MK1H_bak_u08 = MK1H; /* save interrupt controller */ + fsl_MK2L_bak_u08 = MK2L; /* configuration */ + fsl_MK2H_bak_u08 = MK2H; /* */ + MK0L = FSL_MK0L_MASK; /* */ + MK0H = FSL_MK0H_MASK; /* */ + MK1L = FSL_MK1L_MASK; /* prepare interrupt controller */ + MK1H = FSL_MK1H_MASK; /* for selfprogramming */ + MK2L = FSL_MK2L_MASK; /* */ + MK2H = FSL_MK2H_MASK; /* } */ +#endif + + while( DST1 ){;} // DMA~ + DEN1 = 0; + + MK0 = 0xFFFF; + MK1 = 0xFFFF; + MK2 = 0xFFFF; +/* + LVIM = bits8(0,0,0,0, 0,0,1,0); + LVIS = bits8(0,0,0,0, 1,0,0,0); + LVIM = bits8(1,0,0,0, 0,0,1,0); +*/ + FSL_FLMD0_HIGH; // tbVւ +} + + + +/********************************************//** +tbV̏I + ***********************************************/ +static void FSL_Close( void ) +{ + // nH + + FSL_FLMD0_LOW; // tbVCgveNg + +#ifdef FSL_INT_BACKUP + MK0L = fsl_MK0L_bak_u08; /* do{ */ + MK0H = fsl_MK0H_bak_u08; /* restore interrupt controller */ + MK1L = fsl_MK1L_bak_u08; /* configuration */ + MK1H = fsl_MK1H_bak_u08; /* */ + MK2L = fsl_MK2L_bak_u08; /* */ + MK2H = fsl_MK2H_bak_u08; /* } */ +#endif +} + + + +/********************************************//** +@}CRŃt@[Rs[܂B + + __far u8 * p_rom Rs[̐擪AhX + + block_dest Rs[̐擪ubN + + Rs[ɏ悤my_FSL_Init炩ߎsKv܂B + ***********************************************/ +static err firm_duplicate( u8 block_src, + u8 block_dest ) +{ + u8 target_block; + u8 split_write_count; // ubNւ܂܏ރJE^ + __far u8* p_src = ( __far u8* )( block_src * 0x400 ); + u8 retry_error; + + led_print(1); + + // ݐubN̐JԂ + for( target_block = block_dest; + target_block < ( block_dest + FIRM_SIZE ); + target_block ++ ) + { + led_print(2); + WDT_Restart( ); + // ubN + retry_error = 5 + 1; + while( FSL_BlankCheck( target_block ) != FSL_OK ) + { + led_print(3); + FSL_Erase( target_block ); + if( -- retry_error == 0 ) + { + // tbVH + FSL_Close( ); + return ( ERR_ERR ); // ZbgA݂@ǂȂ邩m + } + } + + led_print(4); + // ݕJԂ + for( split_write_count = 0; + split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; + split_write_count ++ ) + { + u16 buff_written_size; + u8* p_buff; + + // ݃f[^obt@ɂ߂ + buff_written_size = 0; + p_buff = &pool.self_update_work[0]; + do + { + *p_buff = *p_src; + p_src ++; + p_buff ++; + buff_written_size ++; + } + while( buff_written_size != SELF_UPDATE_BUFF_SIZE ); + + // + if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE + + split_write_count * SELF_UPDATE_BUFF_SIZE ), + ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ) + != FSL_OK ) + { + // Jo̓u[g // + FSL_Close( ); + led_print(5); +// while(1){} + return ( ERR_ERR ); + } + } + led_print(6); + + // 1ubN݊Bd`FbNs + while( FSL_IVerify( target_block ) != FSL_OK ) + { + // Jo̓u[g // + led_print(7); + return ( ERR_ERR ); + } + } + return( ERR_SUCCESS ); + +} + + + +/********************************************//** +ƔœtbV̏ + ***********************************************/ +static err my_FSL_Init() +{ + u8 rv; + + RTCE = 0; + + // ւO // + DI( ); + FSL_Open( ); // 荞݋֎~Ȃ + + FSL_Init( &pool.self_update_work[0] ); // CuB荞ݒfl + rv = FSL_ModeCheck( ); // CgveNg`FbNBs邱Ƃl + + return( (err)rv ); +} + + +/********************************************//** +MCUZbg + +system_status.reboot ܂B + ***********************************************/ +task_status_immed tski_mcu_reset() +{ + // ʂɍċN + my_FSL_Init(); + + FSL_ForceReset(); // Zbg + FSL_Close( ); + + // یH // + mcu_wdt_reset; + return( ERR_SUCCESS ); // no reach +} + + + +/********************************************//** +ɃG[ۂLED_łăG[ʒm + +l悤ł͂ȂAIVȂǂŃpX`FbN + +fobKgȂԂȂ̂ LEDprintf fobÔ߁B + ***********************************************/ +#ifdef _DBG_LED_PRINT_ +// P1.5 = led_pow_red_old +void alert( u8 num ) +{ + u8 i; + + while(1) + { + WDT_Restart(); + LED_POW1 = 1; + for( i = 0; i < num; i++ ) + { + DBG_LED_on; + DBG_LED_off; + } + LED_POW1 = 0; + } +} + + +/********************************************//** +ɃG[ۂLED_łăG[ʒmiQj + +l悤ł͂ȂAIVȂǂŃpX`FbN + +fobKgȂԂȂ̂ LEDprintf fobÔ߁B + ***********************************************/ +void led_print( u8 num ) +{ + u8 i; + + DBG_LED_on; + for( i = 0; i < num; i++ ) + { + LED_POW1 = 1; + LED_POW1 = 0; + } + DBG_LED_off; +} +#endif diff --git a/snake_branches/info_blue_double/self_flash.h b/snake_branches/info_blue_double/self_flash.h new file mode 100644 index 0000000..768565e --- /dev/null +++ b/snake_branches/info_blue_double/self_flash.h @@ -0,0 +1,9 @@ +#ifndef _self_flash_h_ +#define _self_flash_h_ + + +void firm_update(); + + +#endif + diff --git a/snake_branches/info_blue_double/sw.c b/snake_branches/info_blue_double/sw.c new file mode 100644 index 0000000..be26b65 --- /dev/null +++ b/snake_branches/info_blue_double/sw.c @@ -0,0 +1,213 @@ +/* ======================================================== +XCb` +EHOME +EPOWER +EWiFi +̊Ď^XN + + $Id$ +======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" + +#include "i2c_twl.h" +#include "i2c_ctr.h" +#include "led.h" +#include "pm.h" +#include "rtc.h" +#include "sw.h" + + +//========================================================= +/* + vreg_ctrǂ݂̂Ńwb_ +#define INTERVAL_TSK_SW +#define CLICK_THRESHOLD + +#define HOLD_THREASHOLD +#define FORCEOFF_THREASHOLD +*/ +#define TIME_MUKAN ( u8)( 300 / INTERVAL_TSK_SW ) +#define TIME_MUKAN_PWSW_RED_TRIAL (u16)( 15000 / INTERVAL_TSK_SW ) // VAhome}XN + +//========================================================= +u16 SW_pow_count; +bit SW_pow_mask; + +static u8 SW_home_count, SW_wifi_count, SW_home_count_rel; +static u8 sw_wifi_mukan_time; + +u16 off_timeout_timer; + +static u16 sw_pwsw_mukan_time; + + + +/********************************************//** + Ԃ𐔂BςȂł0ɖ߂Ȃ + + mask0̎́Ax܂Ŗ + ***********************************************/ +#define count_sw_n( sw, counter, mask ) \ + { \ + if( sw ){ \ + mask = 0; \ + counter = 0; \ + }else{ \ + if( mask != 0 ){ \ + counter = 0; \ + }else{ \ + counter ++; \ + if( counter == 0 ) counter = -1; \ + } \ + } \ + } + + +/********************************************//** + NbN(`^O)BKvɉĊ荞 + ***********************************************/ +#define chk_clicked( button, count, irq_bit_name ) \ + if( !button ) \ + { \ + if( count < CLICK_THRESHOLD ) \ + { \ + count ++; \ + if( count == CLICK_THRESHOLD ) \ + { \ + count ++; \ + set_irq( VREG_C_IRQ0, irq_bit_name ); \ + } \ + } \ + } \ + else \ + { \ + count = 0; \ + } + + + +/********************************************//** + XCb`̊Ď + + @`^O͂˂AAgKȂǂ̌os + ***********************************************/ +void tsk_sw( ) +{ + static u8 task_interval; + + if( system_status.pwr_state == OFF_TRIG ) + { + SW_pow_count = 0; // dɔăNA +// task_interval = 0; + } + + if( system_status.pwr_state != ON_CHECK ) // 莞(PWSW_POWON_TIME)ẐŃvXP[@łȂƃ`^܂肫Ȃ + { + if( task_interval != 0 ) + { + task_interval--; + return; + // ܂ + } + + task_interval = (u8)( INTERVAL_TSK_SW / SYS_INTERVAL_TICK ) -1; // vXP[ɎgĂ܂ˁc + // -1̓|XgfNĝ߂̒ + } + + // 8ms ɂ܂ + switch ( system_status.pwr_state ) + { + case ( ON ): + case ( SLEEP ): + case ( OFF ): + case ( ON_CHECK ): + // @̏ꍇ + if( ! system_status.taikendai ) + { + + // dXCb`̊Ď // + if( SW_pow_count == ( TIME_PWSW_CLICK ) ) // NbNԂɓB + { + if( is_wifi_calib_resets_ast ) // wifi Lu[VȂASoCɒʒmoffɑJ + { + system_status.pwr_state = OFF_TRIG; + } + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_CLICK ); + } + else if( SW_pow_count == ( HOLD_THREASHOLD ) ) // ɓB + { + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_HOLD ); + if( off_timeout_timer == 0 ) // dfJEg_EJnAxȂ悤ɁB + { + off_timeout_timer = vreg_ctr[ VREG_C_OFF_DELAY ] * 16; + } + } + + if( off_timeout_timer != 0 ) // 荞݌A^CAEgŋItB + { + off_timeout_timer --; + if( off_timeout_timer == 0 ) + { + force_off = true; + } + } + + }else{ + // X^hAV + // dXCb`̊Ď // + if( SW_pow_count == ( TIME_PWSW_CLICK ) ) + { + if( sw_pwsw_mukan_time == 0 ) + { + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_CLICK ); + // ȃ^C~OPWSWHOMEj[ɓĂ܂̂邽߂̃}XN^C}[ + sw_pwsw_mukan_time = TIME_MUKAN_PWSW_RED_TRIAL; + } + } + else if( SW_pow_count == ( HOLD_THREASHOLD ) ) + { + force_off = true; + } + + if( sw_pwsw_mukan_time != 0 ) + { + sw_pwsw_mukan_time--; + } + } + + // @Ě䋤 + count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // {^Ԃ̃JEg + + // HOME sw // + chk_clicked( SW_HOME_n, SW_home_count, REG_BIT_SW_HOME_CLICK ); + chk_clicked( !SW_HOME_n, SW_home_count_rel, REG_BIT_SW_HOME_RELEASE ); + + // wifi sw // + /// ňȎȂ̂͂킩Ă邪AsɏoĂ܂sǃXCb`~ + if( sw_wifi_mukan_time != 0 ) + { + sw_wifi_mukan_time--; + } + else + { + chk_clicked( SW_WIFI_n, SW_wifi_count, REG_BIT_SW_WIFI_CLICK ); + if( SW_wifi_count == CLICK_THRESHOLD +1 ) // 蔭I + { + sw_wifi_mukan_time = TIME_MUKAN; + } + } + break; + default: + break; + }// switch() +} + diff --git a/snake_branches/info_blue_double/sw.h b/snake_branches/info_blue_double/sw.h new file mode 100644 index 0000000..abe9715 --- /dev/null +++ b/snake_branches/info_blue_double/sw.h @@ -0,0 +1,20 @@ +#ifndef _sw_ +#define _sw_ + +#include "config.h" + +extern u16 SW_pow_count; +extern bit SW_pow_mask; + +#define INTERVAL_TSK_SW 8 +#define CLICK_THRESHOLD 5 + +#define HOLD_THREASHOLD (u16)( 3000 /INTERVAL_TSK_SW ) +#define TIME_PWSW_CLICK (u8)( 220 /INTERVAL_TSK_SW ) +#define FORCEOFF_THREASHOLD (u8)( 12000 /INTERVAL_TSK_SW /16 ) + + +extern u16 off_timeout_timer; +#define clear_pow_off_countdown(){ off_timeout_timer = 0; force_off = false; } + +#endif diff --git a/snake_branches/info_blue_double/task_debug.c b/snake_branches/info_blue_double/task_debug.c new file mode 100644 index 0000000..e5b502c --- /dev/null +++ b/snake_branches/info_blue_double/task_debug.c @@ -0,0 +1,122 @@ +/* ======================================================== + fobO^XN + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs_loader.h" +//#include "incs.h" +#include "renge\renge.h" +#include "pm.h" +#include "accero.h" + + +// ======================================================== +// 7ZO 4oCg +#define IIC_SLA_DBG_MONITOR 0x44 + + + +#if 0 // fobOj^p^XN + +ӁI@^XNXgOĂ܂̂ŁAgȂ畜ĉI + +/********************************************//** + fobOp^XN + ***********************************************/ +void tsk_debug( ) +{ +// u8 temp; + + /* + if( system_status.pwr_state == ON_TRIG ){ + { + static u8 count = 0; + // fobOLEDi8bitj̏ + temp = iic_mcu_read_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO ); + count ++; + iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, count ); + iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, count ); + } + } + */ + +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_IRQ1 ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, boot_ura ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_SND_VOL ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_3D ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, vreg_ctr[ VREG_C_3D ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_SND_VOL ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_STATUS ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] ); + + /* + { + u8 str[4]; + + if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) ) + { + str[3] = vreg_ctr[ VREG_C_FREE0 ]; + str[2] = vreg_ctr[ VREG_C_FREE1 ]; + str[1] = vreg_ctr[ VREG_C_STATUS ]; + str[0] = vreg_ctr[ VREG_C_RTC_SEC ]; + + str[3] = vreg_ctr[ VREG_C_SND_VOL ]; + str[2] = vreg_ctr[ VREG_C_3D ]; + str[1] = vreg_ctr[ VREG_C_ACC_CONFIG ]; + str[0] = SEC; + iic_mcu_write( IIC_SLA_DBG_MONITOR, 0x03, 4, &str ); + } + } + */ +} + +#endif + + +#if 0 // ^XNЂȌ` +/********************************************//** +^XNЂȌ` + ***********************************************/ +task_interval tsk_hina( ) +{ + switch ( system_status.pwr_state ) + { + case ON_CHECK: + case ON_TRIG: + case ON: + case SLEEP: + case OFF_TRIG: + default: + } + + return; // tic Ă΂邱ƂɂȂ܂ +} + + +// |C^ʼn炤̂͊댯ȋCĂ +/* ̂悤Ɏg + renge_task_immed_add( ^XN֐ւ̃|C^ ); +*/ + +/********************************************//** +^XNЂȌ`(s) + ***********************************************/ +task_status_immed tski_hina( u8 * arg ) +{ + return ( TSKI_FINISHED ); + // TSKI_FINISHED ^XN폜 + // TSKI_CONTINUE ɂȂ񂩊荞݂ȂA[U[ȂAVXe`bN + // Ƃɍēxs +} + + +#endif diff --git a/snake_branches/info_blue_double/task_misc.c b/snake_branches/info_blue_double/task_misc.c new file mode 100644 index 0000000..1b5e925 --- /dev/null +++ b/snake_branches/info_blue_double/task_misc.c @@ -0,0 +1,429 @@ +/* ======================================================== + ̑Gȃ^XN + ^XN𕪂₷ȂC邪A\[X̖ŕȂ + + $Id: task_misc.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ + +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" +#include "renge\renge.h" +#include "pm.h" + +#include "accero.h" +#include "adc.h" +#include "i2c_mcu.h" +#include "led.h" +#include "vreg_twl.h" + + + +#ifdef _MCU_BSR_ +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR0 IICAPR11 +#define IICAPR1 IICAPR01 +#define IICCTL0 IICCTL10 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#define TRC TRC1 +#define SMC SMC1 +#define DFC DFC1 +#endif + +// ======================================================== +extern void f(); // X^bN̍Ō𓾂 + + +// ======================================================== +bit twl_ver_read; // twl home menuverǂ񂾂݊J[lɊ荞݂邽 +bit going_to_sleep; // SoCAsleepɓʒm炤Bslp_i HԂ0ɂȂ + // X[v畜AłȂȂ̂h + + +// eXgp +bit reserve_pedo_increnent; + + +// ======================================================== +static void update_LED_3D(); +static void check_twl_vol_irq(); + + + +/********************************************//** + PiŃ^XNɂȂGȏ + - xZT荞݂̎肱ڂmF(Ö) + - TWL PM݊WX^ւ݂̏Γǂ݂ɍs + - ݊J[lTWL`[̋Nʒm + - TWL̉ʕω荞݂`FbN + - 3Dv̍XV + - (HAL) vA₷ + - (fobO) SELWDTZbg𔭐 + ***********************************************/ +void tsk_misc( ) +{ + // 荞݂̎肱ڂH + if( ACC_VALID && ( ( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_ACCERO_ERR ) == 0 )) + { + if( renge_task_immed_add( tski_cbk_accero ) == ERR_SUCCESS ){ + // dbg_nop(); + } + } + + if( system_status.pwr_state == ON ) + { + /* ======================================================== + PM݊WX^ւ̏ + |[OőΉ + ======================================================== */ + if( !PM_IRQ_n ) + { + renge_task_immed_add( tski_ntr_pmic_comm ); + // dbg_nop(); + } + + /* ======================================================== + TWL`[NƂCTRm肽炵 + ======================================================== */ + if( twl_ver_read ) + { + twl_ver_read = false; + set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); + } + + // TWL ̉ʕω荞݃`FbN // + check_twl_vol_irq(); + } + + // 3D vXV // + update_LED_3D(); + +#ifdef _ENABLE_HAL_ + // fobOHAL ₷ // + if( reserve_pedo_increnent ) + { + reserve_pedo_increnent = 0; + hosu_increment_if_necessary(); + } +#endif + +#ifdef _ENABLE_PRESS_SEL_TO_WDT_ + if(( system_status.pwr_state == ON ) + || ( system_status.pwr_state == SLEEP )) + { + static u16 timer; + if( !SW_SEL_n ) + { + timer += 1; + if( timer == 2000 ) + { + DI(); + timer = 0; + while(1) + { + NOP(); // ̂WDT + } + } + } + } +#endif + + //. X^bNeXg +// f(); +} + + + +/********************************************//** +TWLVol̂ƁAXC_̑삪obeBO +sN鎖Ah + + TWLł͒ʏ펞A{^8iKBɍ킹Ċ荞݂B + ***********************************************/ +void check_twl_vol_irq() +{ + static u8 vol_level_twl_sent; + static u8 mabiki; + + if( !is_TWL ) + { + return; + // ܂ + } + + if( mabiki != 0 ) + { + mabiki--; + return; + // ܂ + } + + mabiki = 9; // 1t[͊J + if( vol_level_twl != vol_level_twl_sent ) + { + vol_level_twl_sent = vol_level_twl; + set_irq( VREG_C_IRQ2, REG_BIT_SLIDE_VOL_ACROSS_TWL_BOUNDARY ); + } +} + + +/********************************************//** +3DvXV + ***********************************************/ +void update_LED_3D() +{ + if( system_status.pwr_state != ON ) + { + LED_duty_3d = 0; + return; + // ܂ // + } + + if( vreg_ctr[VREG_C_LED_3D] == LED_3D_ILM_OFF ) + { + if( LED_duty_3d != 0 ) + { + LED_duty_3d --; + } + } + else + { + if( LED_duty_3d != vreg_ctr[VREG_C_LED_BRIGHT] ) + { + if( LED_duty_3d < vreg_ctr[VREG_C_LED_BRIGHT] ) + { + LED_duty_3d ++; + } + else + { + LED_duty_3d --; + } + } + } +} + + + + +/********************************************//** + COMMANDWX^ւ̏ + + 0ȂĂ΂܂BPAsv + + - sleep ʒm() + - ZbgnR}h + ***********************************************/ +task_status_immed tski_do_command0( ) +{ + u8 temp_command; + + // command0 {̓dȂ + DI_wt_chk(); + temp_command = vreg_ctr[VREG_C_COMMAND0]; + vreg_ctr[VREG_C_COMMAND0] = 0; + EI(); + + // SLPO(SoC->mcu) 񓯊̂߁ApX[ɂȂĂ܂Amcu SoC̈u + // X[vooASLPIgOoȂB炩ߒʒmĂ炢A + // ^CAEgsB + if( temp_command & REG_BIT_GOING_TO_SLEEP ) + { + going_to_sleep = true; + } + + // ZbgñR}h // + if( ( temp_command & ( REG_BIT_OFF_REQ | REG_BIT_RESET1_REQ | REG_BIT_FCRAM_RESET_REQ | REG_BIT_RESET2_REQ )) != 0x00 ) + { + if( temp_command & REG_BIT_OFF_REQ ) + { + system_status.pwr_state = OFF_TRIG; + } + else + { + if( temp_command & REG_BIT_RESET1_REQ ) + { + PM_reset_ast( ); + RESET2_ast; + FCRAM_RST_ast; + } + if( temp_command & REG_BIT_RESET2_REQ ) + { + RESET2_ast; + if( vreg_twl[ REG_TWL_INT_ADRS_MODE ] == 0 ) + { + FCRAM_RST_ast; // twlntr[hœ삵Ă + } + // TWL[hDS[hւ̐؂ւɃZbg + // IRQǂ܂Ȃꍇ̂TWLWX^ + vreg_twl_init(); + } + if( temp_command & REG_BIT_FCRAM_RESET_REQ ) + { + FCRAM_RST_ast; + } + wait_ms( 5 ); // ԉ҂ + FCRAM_RST_neg; + PM_reset_neg(); + RESET2_neg; + + // CODEC s背WX^ // + codec_reg_init(); + } + } +/* + X[vvɓdOFFEZbgR}h͗܂ + if( vreg_ctr[VREG_C_COMMAND0] != 0 ) + { + return ( TSKI_CONTINUE ); + } +*/ + return ( TSKI_FINISHED ); +} + + + +/* fobOEeXgp ============================== */ +u16 _dbg_rcomp; +extern u8 raw_adc_temperature; + +extern u8 iic_burst_state; +extern bit temp_zone_charge_disable; +extern bit bt_authorized; + + + + +#define KOUMOKU 19 + +static u8 infos_bits[2]; +static u8 infos_temp[5]; + +static const u8 *infos_table[ KOUMOKU ] = { + &infos_temp[0], /* 0 */ + &pmic_version, + (u8*)&battery_manufacturer, + &mgic_version[0], + &mgic_version[1], + &infos_temp[1], /* 5 */ + &raw_adc_temperature, + &infos_temp[2], + &infos_temp[3], + (u8*)&system_status.family, /* 9 */ + &infos_bits[0], /* 10 */ + (u8*)&LED_duty_pow_blu, + (u8*)&LED_duty_3d, + (u8*)&LED_duty_notify_red, + (u8*)&LED_duty_notify_grn, + (u8*)&LED_duty_notify_blu, /* 15 */ + &infos_bits[1], + (u8*)&LED_duty_WiFi, + &infos_temp[4] /* 18 */ + /* ڑƂ KOUMOKU ɒ */ +}; + +/********************************************//** +@fobOpɃXe[^XԂBigXe[^X 0x7Fj + +@Ԓl̓f[^̂ + + oĂ鏇́A + + - 1) vbgtH[ + - 2) PMIC o[W + - 3) dr[J[ + - 4) KXQ[Wo[W + - 5) V + - 6) ( rcomp & 0xFF ) + - 7) raw_adc_temperature + - 8) ( !temp_zone_charge_disable | ( bt_authorized << 1 ) ) + - 9) m点LED̓tJ[H + - 10) system_status.family + ***********************************************/ +u8 extinfo_read(void) +{ + u8 ret = 0xFF; + + /* + * temp͌vZKvȃf[^Bɗ]TȂ̂ŌvZKv + * ϐ́Av/svɊւ炸vZ|V[ + */ + + if( iic_burst_state < KOUMOKU ) + { + infos_temp[0] = system_status.captureBox? 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]; + +#if 0 +// debug // + /// VXeɋ@펯ʂʼnR‚ + if( iic_burst_state == 9 ) + { + ret = (u8)FAMILY_FLOWER; + } +#endif + iic_burst_state ++; + } + + return ret; +} + + +#ifdef i2c_timeout_test +/********************************************//** +ifobOpjI2C_mcu ɃvgRᔽ(g`)oꂽSLED_Ēʒm + ***********************************************/ +void i2c_mcu_error_monitor() +{ + LED_duty_pow_blu = 0xff; + LED_duty_3d = 0xff; + LED_duty_notify_red = 0xff; + LED_duty_notify_grn = 0xff; + LED_duty_notify_blu = 0xff; + LED_pow_red = 1; + LED_CAM = 1; +} +#endif + diff --git a/snake_branches/info_blue_double/task_status.c b/snake_branches/info_blue_double/task_status.c new file mode 100644 index 0000000..361497b --- /dev/null +++ b/snake_branches/info_blue_double/task_status.c @@ -0,0 +1,89 @@ +/* ******************************************************** + ꕔ̃Xe[^XWX^XVAKvɉĊ荞݂܂B + + $Id$ +********************************************************* */ + +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs_loader.h" +#include "renge\renge.h" + +#include "pm.h" + +#include "accero.h" +#include "adc.h" +#include "i2c_mcu.h" +#include "led.h" + + +/********************************************//** + Xe[^XWX^́A + - WJ + + Ŋ荞݂KvłΔ܂B + todo: H + ***********************************************/ +void tsk_status( ) +{ + static u8 state_old; // Xe[^Xωo荞 ̈ + u8 diff; + + // WJ`FbN + set_bit( SHELL_OPEN, vreg_ctr[VREG_C_STATUS], REG_BIT_ST_SHELL_OPEN ); + + // Xe[^XWX^֌W 荞 // + // pm.c ŁȀōs܂B + // REG_BIT_LCD_ON/OFF + // REG_BIT_BL_ON/OFF + // REG_BIT_BT_DC_CONNECT/DISC + // REG_BIT_BT_CHG_START/STOP + + diff = (u8)( vreg_ctr[VREG_C_STATUS] ^ state_old ); + if( diff != 0 ) + { + state_old = vreg_ctr[VREG_C_STATUS]; + + if( system_status.pwr_state == ON ) + { + if( diff & REG_BIT_BATT_CHARGE ) + { + // [dԔf + if( is_bt_charging ) // set_irqʁXɌĂԕRpNg + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_START ); + } + else + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_STOP ); + } + } + } + + if(( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP ) + ) + { + if( diff & REG_BIT_ST_SHELL_OPEN ) + { + // W̊J‚ + if( is_shell_open ) + { + set_irq( VREG_C_IRQ0, REG_BIT_SHELL_OPEN ); + } + else + { + set_irq( VREG_C_IRQ0, REG_BIT_SHELL_CLOSE ); + } + } + } + } +} + diff --git a/snake_branches/info_blue_double/task_sys.c b/snake_branches/info_blue_double/task_sys.c new file mode 100644 index 0000000..457ab56 --- /dev/null +++ b/snake_branches/info_blue_double/task_sys.c @@ -0,0 +1,667 @@ +/* ======================================================== + task_sys + dĩ^XN + + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" + +#include "i2c_twl.h" +#include "i2c_ctr.h" +#include "led.h" +#include "accero.h" +#include "pm.h" +#include "rtc.h" +#include "sw.h" +#include "adc.h" +#include "self_flash.h" +#include "i2c_mcu.h" +#include "vreg_twl.h" + + +//========================================================= +#define WAIT_SHIROBAKO_POW_CONTROL 240 + + +//========================================================= +extern void nop8(); + + +static void chk_emergencyExit(); +static void force_off_check(); +static void send_getup_to_soc(); +#ifdef _DBG_CHK_OFF_LEAK_ +static void leak_check(); +#endif + + + +//========================================================= +extern bit info_led_off; +extern bit going_to_sleep; +extern bit bt_authorized; + +static u8 timeout_sleep; +extern u8 chg_led_override; + +#ifdef i2c_timeout_test +extern bit i2c_mcu_time_out_error; +#endif + + +//========================================================= +#define PWSW_POWON_TIME (u8)( 20 / SYS_INTERVAL_TICK ) // [ms] // INTERVAL_TSK_SW ŊȂBl珬̂ +#define PWSW_ON_CHECK_TIMEOUT 100 // K donׂ̈ɓdXCb`삳ꂽƂA̎Ԍo߂mcuȓd͂ɖ߂ + + + +/********************************************//** + d̗グX[vȂǂǗ + ***********************************************/ +void tsk_sys( ) +{ + static u8 pwsw_timeout = 0; // d{^`^OB@^CAEg܂łɓdm肵Ȃoffɖ߂ + + hal_update(); + + switch ( system_status.pwr_state ) + { + case ON_CHECK: //------------------------------------------------------- + // dfJEg_E^C}NA + clear_pow_off_countdown(); + + // ̊荞݂HALT(X[v) ^@A_v^L + + // dXCb`HALT // + if( system_status.poweron_reason == RSN_PWSW ) + { + if( PM_EXTDC_n ) + { + // A_v^Ȃ + if( SW_pow_count != 0 ) + { + pwsw_timeout = 0; + } + else + { + pwsw_timeout ++; + } + + if( pwsw_timeout > PWSW_ON_CHECK_TIMEOUT ) + { + SW_pow_count = 0; + system_status.pwr_state = OFF_TRIG; // XCb`̓mCYBQB + renge_task_interval_run_force = true; + return; + } + } + else + { + BT_chk(); + } + + + if( SW_pow_count < PWSW_POWON_TIME ) + { + // ԂZēdonɓBĂȂ + return; + } + } + // else { if( system_status.poweron_reason == RSN_TRIALAc ) d } + + SW_pow_mask = true; // pwswςȂœd/ JԂȂ悤 + + // d // + iic_mcu_start( ); + + bt_force_update = false; + BT_chk(); // @obe̔AdrcIC̐ݒ + +#ifndef _ALLOW_NOBATT_ + if( system_status.model == MODEL_JIKKI_NOBATT ) + { + renge_task_interval_run_force = true; + system_status.pwr_state = OFF_TRIG; + return; + } +#endif + + // cʃ`FbN + BT_get_left(); // ɁABT_chk()sĂKv܂B + if( +// ( vreg_ctr[VREG_C_BT_REMAIN] < 1 ) // Ŕ肷ƓdrقƂǖƂ +// // A_v^ĂNłȂȂႤ + ( vreg_ctr[VREG_C_BT_VOLTAGE] < ( V_TH_ZERO / 256 ) ) // dr + ) + { + // drȂ̂ŋNȂ(d`FbNĂ) + renge_task_interval_run_force = true; + system_status.pwr_state = OFF_TRIG; + return; + } + + // |[g̕ݒ@dOɁB + PM_SW_WIFI_n = 1; + PM_SW_HOME_n_JIKKI = 1; + PM_WL_TX = 1; + PM_SW_SEL_n = 1; + PM_ACCEL_INT1 = 1; + PM_ACC_VALID = 1; + + if( PM_sys_pow_on( ) != ERR_SUCCESS ) + { // dNsƒG[ + renge_task_interval_run_force = true; + system_status.pwr_state = OFF_TRIG; + return; + } + + // ܂ŗƁAdm // + // vAbvon + PU_BT_IN_CHG_n = 1; + PU7 = bits8(0,0,0,1, 1,1,0,1); // 4:SW_WIFI 3:SW_PWSW 2:PM_IRQ 0:PM_EXTDC_n + PU_SW_HOME_n_JIKKI = 1; // SW_HOME + + reset_release(); + + if( system_status.poweron_reason == RSN_PWSW || + system_status.poweron_reason == RSN_TRIAL ) + { + // d{^łon̎́ALED_ + vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO; + } + else + { + // Ƃ肠ALEDԂŋN + vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_OFF; + } + + system_status.pwr_state = ON_TRIG; + + PM_LCD_vcom_set( ); // LCD̑ΌdlȂǏ + + break; + + case ON_TRIG: //------------------------------------------------------- +#ifdef i2c_timeout_test + LED_duty_pow_blu = 0; // debug + LED_duty_3d = 0; + LED_duty_notify_red = 0; + LED_duty_notify_grn = 0; + LED_duty_notify_blu = 0; + LED_pow_red = 0; + LED_CAM = 0; + i2c_mcu_time_out_error = false; +#endif + IIC_ctr_Init( ); + IIC_twl_Init( ); + + vreg_twl_init( ); + vreg_ctr_reset( ); + + KRM = bits8(0,0,0,0, 0,0,0,0); + PIF0 = 0; + + system_status.poweron_reason = NONE; + renge_task_interval_run_force = true; + + MK0 = INT_MSK0_RSV; + MK1 = INT_MSK1_RSV; + + iic_mcu_start(); + +// MK2 = ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ ); +// PMK21 = 0; // wifi gȂ + PMK6 = 0; // pm_irq + + // u[gAXe[^XƂȂXV + if( system_status.reboot ) + { + u8 bl_status_temp; + + bl_status_temp = read_pmic( PM_REG_ADRS_BL ); + vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 ); + set_bit( ( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ), + vreg_ctr[ VREG_C_STATUS ], REG_BIT_LCD_POW ); + BT_chk(); + } + + LED_init( ); // reboot́BT_Chk,BT_chkɍs + + system_status.reboot = 0; + system_status.pwr_state = ON; + + // WDTZbgAI2C̏܂Ŋ荞ݕۗ + // قƂ͂ɂׂȂ... + if( ( vreg_ctr[ VREG_C_MCU_STATUS ] & REG_BIT_STATUS_WDT_RESET ) != 0 ) + { + set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET ); + } + + break; + + case ON: //--------------------------------------------- + // PMICɂ鋭df`FbN + // fobKreset1AT[g邱ƂB̂Ƃ͑SZbg + chk_emergencyExit(); + + // SLPĎ + if( going_to_sleep ) // ΂ SLP_REQ ̑Oɗ\ + { + timeout_sleep ++; + if( timeout_sleep == 0 || // I[o[t[ҁBsleepČLjuŋNċC‚Ȃ + ( PIF0 && !SLP_REQ )) // slp荞݂CANĂ܂ + { + PIF0 = 0; + send_getup_to_soc(); + } + if( PIF0 && SLP_REQ ){ + PIF0 = 0; + PM_VDD_ecoMode(); + system_status.pwr_state = SLEEP; + renge_task_interval_run_force = true; + } + } + + // offJEg + force_off_check(); + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) // A_v^玩œdoff + { + if( PM_EXTDC_n ) + { + system_status.pwr_state = OFF_TRIG; + } + } +#endif + + break; + + case SLEEP: //------------------------------------------ + chk_emergencyExit(); + // X[v畜A + if( !SLP_REQ ){ + PM_VDD_normMode(); + wait_ms( 5 ); // tdly_sw + send_getup_to_soc(); + system_status.pwr_state = ON; + } + + force_off_check(); +// leak_check(); + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) // A_v^玩œdoff + { + if( PM_EXTDC_n ) + { + system_status.pwr_state = OFF_TRIG; + } + } + break; // ł悢B +#else + /* FALLTHROUGH */ +#endif + + default: //--------------------------------------- + system_status.pwr_state = OFF_TRIG; // 蓾ȂXe[gBfobOp +// dbg_nop(); + /* FALLTHROUGH */ + + case OFF_TRIG: //--------------------------------------- + // LED҂ + vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ILM_OFF; + vreg_ctr[ VREG_C_LED_WIFI ] = WIFI_LED_OFF; + vreg_ctr[ VREG_C_LED_3D ] = LED_3D_ILM_OFF; + info_led_off = true; + if( LED_duty_pow_blu != 0 ) + { + return; + } + + // dfJEg_E^C}NA + clear_pow_off_countdown(); + + // xZT~ + vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x00; + tski_acc_setup(); + EI(); // DIԂłė̂ŁAI2C_mcu ̂ɕKv + + // ̑ytF~ + LED_stop( ); + IIC_ctr_Stop( ); + IIC_twl_Stop( ); + RTC_32k_off(); + +// dI̊荞݃Zbg +// PWSW KR3 L +// BG24 KR4 +// ӂJ INTP5 ‚L +// ACA_v^ INTP4 A_v^L +// RTC + while( iic_mcu_busy ) + {;} + + // irq}XNݒ + KRM = ( KR_SW_POW ); // Mask ł͂ȂAModeȂ̂B킵 + MK0 = ~( INT_MSK0_EXTDC | INT_MSK0_WDTI ); + MK1 = ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL ); // INT_MSK1_RTCALARM | RTCA[ + MK2L = 0xFF; + + // irqtONA + vreg_ctr[VREG_C_IRQ0] = 0; + vreg_ctr[VREG_C_IRQ1] = 0; + vreg_ctr[VREG_C_IRQ2] = 0; + vreg_ctr[VREG_C_IRQ3] = 0; + + // PU5 ̂܂ + PU7 = bits8(0,0,0,0, 1,0,0,1); // PWSWI,PM_EXTTDC,( IRQ0_deactive(), PM_IRQ_deactive ) + PU_SW_HOME_n_JIKKI = 0; // SW_HOME ~ + + IF0 = 0; + IF1 = 0; + IF2 = 0; + + IRQ0_disable; + + PM_sys_pow_off( ); // dJbgIt + + // |[gނ~[hɁBHłALo͂ɂȂႾ߂ȁB + SW_WIFI_n_RAW = 0; + PM_SW_WIFI_n = 0; + + SW_HOME_n_JIKKI_RAW = 0; + PM_SW_HOME_n_JIKKI = 0; + + WL_TX = 0; + PM_WL_TX = 0; + + SW_SEL_n = 0; + PM_SW_SEL_n = 0; + + ACCEL_INT1 = 0; + PM_ACCEL_INT1 = 0; + ACC_VALID = 0; + PM_ACC_VALID = 0; + + system_status.pwr_state = OFF; + SW_pow_mask = true; + SW_pow_count = 0; + + // HALfobOZbg@YƓdonoȂȂ邱Ƃc + hal_reset(); + /* FALLTHROUGH */ + + case OFF: + // Fł͓d{^d͂܂B + + system_status.poweron_reason = NONE; + pwsw_timeout = 0; + + if( !PM_EXTDC_n + || chg_led_override != 0 ) // ꂪ[ɂȂ܂ő҂ + { + // A_v^L /////////////////////////////// ܂́AA_v^ĂRb͏[dLED_Ă + + // d{^`FbN + system_status.poweron_reason = RSN_PWSW; + system_status.pwr_state = ON_CHECK; + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + // VȂ玩œdē + if( system_status.taikendai ) + { + vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0; + wait_ms(46); // pmic̓dēdl̂ + system_status.poweron_reason = RSN_TRIAL; + system_status.pwr_state = ON_CHECK; + } +#endif + } + else + { + // A_v^Ȃ /////////////////////////////// + + // ȓd͂ֈڍs + iic_mcu_stop( ); + pm_chk_adapter(); + PM_Chg_Stop(); + + bt_force_update = true; + + while( RWST ) + {;} + + // 荞ݑ҂ŐQ // + RTCIMK = 1; // systickpC^[o^C}[荞݃}XN + +#ifdef _DBG_CHK_OFF_LEAK_ + leak_check(); +#endif + CKC = bits8(0,0,0,0, 1,0,0,1); // 4MHzɗƂ(bit0)STOPȂĂ͂ȂȂ + OSMC = bits8(0,0,0,0, 0,0,0,0); // 5MHzȉ[hցB + + if( PM_EXTDC_n_RAW ) // ǂ^C~Oő}N邱ƂBHALʂȂׂioffłj + { + STOP(); + } + + // N // + // N + // EKeyReturn荞݁id{^j + // ERTCA[iݕj + + // NbNA + OSMC = bits8(0,0,0,0, 0,0,0,1); // 8MHz쏀 + renge_flg_interval = 0; + hal_update(); + + CKC = bits8(0,0,0,0, 1,0,0,0); // OSMC.FSEL = 1 3clkȏJ + + // NŔH + if( !PM_EXTDC_n ){ + system_status.pwr_state = OFF; // ĂāAON_CHECKɍs + } +/* // RTCA[B + else if( vreg_ctr[ VREG_C_IRQ1 ] & REG_BIT_RTC_ALARM ) + { + system_status.poweron_reason = RSN_RTC_ALARM; + system_status.pwr_state = ON_CHECK; + } + // else if( ̊荞݂œdon ){ + // 󑼂̗vł͋NȂ + // } +*/ + else // if( !SW_POW_n ) // iȊOȂjd{^ŋN + { + SW_pow_mask = false; + system_status.poweron_reason = RSN_PWSW; + system_status.pwr_state = ON_CHECK; + } + + RTCIMK = 0; // sys tick ^C}[L + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) + { + system_status.pwr_state = OFF_TRIG; + } +#endif + } + } +} + + + +/********************************************//** + PMICdُŎ~߂mF + + ***********************************************/ +static void chk_emergencyExit(){ + static u8 shirobako_power_control_count; + + // wifi W[Lu[V[hreset1牺ĂƂ̓`FbNpX + if( is_wifi_calib_resets_ast ) + { + return; + } + + if( shirobako_power_control_count == 0 ) + { + if( !RESET1_n ) // PM_chk_LDSW() I2C_mgpARXg + { + if( !PM_chk_LDSW() ) + { + // ZbgĂ + /// PMICُIf + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + } + else + { + // ̎d + shirobako_power_control_count = 1; + } + } + } + else + { + if( shirobako_power_control_count == WAIT_SHIROBAKO_POW_CONTROL ) // }WbNio[ + // fobKBreset1܂ł͖ + { + if( RESET1_n ) // ZbglQ[g҂ + { + shirobako_power_control_count = 0; + } + else + { + // nothing to do + } + } + else if( shirobako_power_control_count == 200 ) // * (sys_tick)[ms] + // fobK炵 + { +#ifndef _RVD_ + // ͓d؂肽炵 + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + shirobako_power_control_count = WAIT_SHIROBAKO_POW_CONTROL; +#endif + } + else + { + if( !RESET1_n ) + { + if( shirobako_power_control_count != 255 ) + shirobako_power_control_count ++; + } + else + { + // (TS{[hŎ蓮/fobK)Zbg炵 + send_cmd_pmic( PM_REG_ADRS_BL, 0 ); + vreg_ctr[VREG_C_STATUS] = ( vreg_ctr[VREG_C_STATUS] & bits8(1,0,0,1, 1,1,1,1) ); + vreg_ctr[VREG_C_COMMAND0] |= REG_BIT_RESET1_REQ; + renge_task_immed_add( tski_do_command0 ); + shirobako_power_control_count = WAIT_SHIROBAKO_POW_CONTROL; + } + } + } +} + + + +/********************************************//** + - d{^ + - dr؂ + - dr + + ł̋OFFBƉs\ + ***********************************************/ +static void force_off_check() +{ + if( force_off ) + { + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + } +} + + + +/********************************************//** + SoCN + +@@dʏɖ߂ĂĂʼnB + ***********************************************/ +void send_getup_to_soc() +{ + going_to_sleep = false; + timeout_sleep = 0; +#ifdef _MODEL_CTR_ + SLP_ACK = 1; + nop8(); + SLP_ACK = 0; +#endif +} + + + + +/********************************************//** + ȃAbvf[g firm_update() ĂԁiisrsłȂ̂Łj + + task_status_immed^ Ԃ悤ɂ΂̂ł... + ***********************************************/ +task_status_immed tski_firm_update(){ + firm_update(); + return( ERR_SUCCESS ); +} + + + +#ifdef _DBG_CHK_OFF_LEAK_ +/********************************************//** + pinݒ~X`FbN + ***********************************************/ +static void leak_check() +{ + volatile u8 ports_i[12]; + volatile u8 ports_o[12]; + + ports_i[0] = ( PM0 & PU0 & ~P0 ); // vAbv؂YH + ports_i[1] = ( PM1 & PU1 & ~P1 ); + ports_i[2] = 0; + ports_i[3] = ( PM3 & PU3 & ~P3 ); + ports_i[4] = ( PM4 & PU4 & ~P4 ); + ports_i[5] = ( PM5 & PU5 & ~P5 ); + ports_i[6] = 0; + ports_i[7] = ( PM7 & PU7 & ~P7 ); + ports_i[8] = ( PM12 & PU12 & ~P12 ); + ports_i[9] = ( PM14 & PU14 & ~P14 ); + ports_i[10] = 0; + ports_i[11] = ( PM20 & PU20 & ~P20 ); + + ports_o[0] = ( ~PM0 & P0 ); // H o͂Ă邩 + ports_o[1] = ( ~PM1 & P1 ); + ports_o[2] = ( ~PM2 & P2 ); + ports_o[3] = ( ~PM3 & P3 & ~POM3 ); + ports_o[4] = ( ~PM4 & P4 ); // bit3chg_enȂ̂1ł悢 + ports_o[5] = ( ~PM5 & P5 ); + ports_o[6] = ( ~PM6 & P6 ); + ports_o[7] = ( ~PM7 & P7 ); + ports_o[8] = ( ~PM12 & P12 ); + ports_o[9] = ( ~PM14 & P14 ); + ports_o[10] = ( ~PM15 & P15 ); + ports_o[11] = ( ~PM20 & P20 ); + NOP(); // u[Nu +} +#endif _DBG_CHK_OFF_LEAK_ diff --git a/snake_branches/info_blue_double/user_define.h b/snake_branches/info_blue_double/user_define.h new file mode 100644 index 0000000..48e334c --- /dev/null +++ b/snake_branches/info_blue_double/user_define.h @@ -0,0 +1,214 @@ +#ifndef _USER_DEF_ +#define _USER_DEF_ + +// $Id: asdf$ + +#define IIC_T_SLAVEADDRESS 0x4A +#define IIC_C_SLAVEADDRESS 0x4A +#define IIC_C_SLAVEADDRESS_DMY 0x4C + +//#define IIC_SLA_DCP 0x50 + +#define bits8(a,b,c,d,e,f,g,h) ( a<<7 | b<<6 | c<<5 | d<<4 | e<<3 | f<<2 | g<<1 | h ) + +#ifndef _WIN32 +// @‹ + +#ifdef _debug_led_ +/*spflΉȍ~AncłȂȂ̂Ŏg܂ +# define DBG_LED_on { PM2.1 = 0; P2.1 = 1; } +# define DBG_LED_off { P2.1 = 0; } +# define DBG_LED_toggle ( P2.1 ^= 1 ) +# define DBG_LED2_on { PM2.2 = 0; P2.2 = 1; } +# define DBG_LED2_off { P2.2 = 0; } +# define DBG_LED2_toggle ( P2.2 ^= 1 ) +*/ +#else +# define DBG_LED_on ; +# define DBG_LED_off ; +# define DBG_LED_toggle ; +# define DBG_LED2_on ; +# define DBG_LED2_off ; +# define DBG_LED2_toggle ; +#endif // _debug_led_ + +#define IIC_SLA_CODEC 0xA4 +#define IIC_SLA_ACCEL 0x30 // ST LIS331DLH + + +#define SLP_ACK P7.7 + + +// PMx0ŏo̓[h + +// SoC +#define IRQ0_ast { P7.6 = 0; PM7.6 = 0; } // B4 +#define IRQ0_neg { P7.6 = 1; } +#define IRQ0_enable { PM7.6 = 0; } +#define IRQ0_disable { PM7.6 = 1; } +#define IRQ0 ( P7.6 ) + + +// h~ +#define RESET1_n ( P0.0 ) // G7 + +#if 1 // iPM_RESET1gAWiFiW[̃eXg̎͒ +# define RESET1_ast { P0.0 = 0; PM0.0 = 0; } +# define RESET1_neg { PM0.0 = 1; } +#endif + +#define RESET2_ast { P0.1 = 0; PM0.1 = 0; } // F7 +#define RESET2_neg { PM0.1 = 1; } + +#define SLP_REQ P12.0 // H8 + +// CTR,SPFL,SNAKE,܂ʔh@ +#define DEV_DET ( P12 & 0b00000110 ) // [2:1] = D8,C8 +#define DEV_CTR ( 0b00 << 1 ) +#define DEV_SPFL ( 0b01 << 1 ) +#define DEV_SNAKE ( 0b10 << 1 ) +#define DEV_RSV2 ( 0b11 << 1 ) + +// FCRAM +#define FCRAM_RST P3.0 // B6 +#define FCRAM_RST_ast { P3.0 = 0; } +#define FCRAM_RST_neg { P3.0 = 1; } + +// CODEC +#define PM_IRQ_n P7.2 // A3 +// INTP6 + +// PM +#define PM_EXTDC_n_RAW P7.0 // B2 +// INTP7 +//#define BT_TEMP P15.0 // G3(a) +// ANI8 +//#define BT_DET P15.1 // H2(a) +// ANI9 +#define BT_DET_P P1.6 // D4 +#define BT_TEMP_P P1.7 // C4 + + +// SPFL̃At@XLCDŕKvȁ}15V̓dB +#define SPFL_LCD_AMOL_HV_CONT P20.2 // F2 + + +// [d(out) +// _łBӁB +#define BT_CHG_ENABLE() ( P4.3 = 0 ) // F6 +#define BT_CHG_DISABLE() ( P4.3 = 1 ) +#define BT_CHG_Ena_n ( P4.3 ) + +// [d(in) +#define BT_IN_CHG_n_RAW P5.1 // B1 +#define PM_BT_IN_CHG_n PM5.1 +#define PU_BT_IN_CHG_n PU5.1 + +#define SW_WIFI_n_RAW P7.4 // C3 +#define PM_SW_WIFI_n PM7.4 +// KR4 +#define SW_POW_n_RAW P7.3 // B3 +// KR3 +#define SW_SEL_n P2.3 // G5 +#define PM_SW_SEL_n PM2.3 +//#define VOL P2.7 // H4(a) +// ANI7 + +#define SW_HOME_n_JIKKI_RAW P20.4 // G2 +#define PM_SW_HOME_n_JIKKI PM20.4 +#define PU_SW_HOME_n_JIKKI PU20.4 + +// INTP22 +#define SW_HOME_n_TSBOARD_RAW P2.0 // TS}U[pull up(P2͓p.u.) // G6 +#define PM_SW_HOME_n_TSBOARD PM2.0 + +// WiFi +#define WL_TX P20.3 // INTP21 // F3 +#define PM_WL_TX PM20.3 // INTP21 + +//#define VOL_P P2.1 // E5 open +//#define VOL_N P2.2 // F5 V + +//#define LED_CAM P1.0 // TO02 // E4 +//#define LED_WIFI P1.1 // TO03 // E3 +//#define LED_NOTIFY P1.3 // TO05 // D3 +//#define LED_3D P5.2 // SLTO TO01 // A2 +//#define LED_POW2 P1.4 // TO06 ( ) // D2 +//#define LED_POW1 P1.5 // TO07 ( ) // D1 +//#define LED_CHARGE P2.4 // H5 + +// P5.3 ɉAP5.5, P140 P141 +// P140o͐pȂ̂... +#define I2C_PU_on() { P14 |= 0x03; PM5.3 = 0; PM3.3 = 0; } // P14[1:0] H6,H7 P5.3,3.3 A1,C5 +#define I2C_PU_off() { PM5.3 = 1; PM3.3 = 1; P14 &= ~0x03; } + +#define GYRO_ENABLE() P5.0 = 0 // C1 +#define GYRO_DISABLE() P5.0 = 1 + +//#define I2C_M_SDA P3.1 // SDA10 // C6 +//#define I2C_M_SCL P3.2 // SCL10 // B5 + +//#define I2C_0_SCL P6.0 // IIC_TWL SCL0 // A7 +//#define I2C_0_SDA P6.1 // SDA0 // A6 + +//#define I2C_1_SCL P20.0 // IIC CTR SCL1 // E1 +//#define I2C_1_SDA P20.1 // SDA1 // F1 + +//#define 32kHz_O P1.2 // RTCCL // E2 +//#define 32k_I1 P12.3 // XT1 // F8 +//#define 32k_I2 P12.4 // XT2 // G8 + +// @AJ@AV䔻ʁB +#define DIPSW ( P4 & 0b00000011 ) // mini cube & \tgEFAfBbvXCb` TOOL0,1B P4.0 L ӁI +#define DIPSW_CTR 0b11 // gp +#define DIPSW_ISDEV 0b00 // KuCBattGaugeŔ +#define DIPSW_TAIKENDAI 0b10 +#define DIPSW_TAIKENDAI_NBD 0b01 + + +#define SHELL_OPEN_RAW P7.1 // INTP5 ӂJ (‚L) // C2 + +#define ACC_VALID P20.5 // H3 +#define PM_ACC_VALID PM20.5 +#define ACCEL_INT1 P2.5 // F4 +#define PM_ACCEL_INT1 PM2.5 + + +#endif // _WIN32 + +// win32 sim‹Ƌ + +#define KR_SW_POW ( 1 << 3 ) +#define KR_SW_WIFI ( 1 << 4 ) + +/////////////////////////////////////////////////////////// +#ifdef _WDT_CHECK_ +# define INT_MSK0_WDTI 1<<15 +#else +# define INT_MSK0_WDTI 0 +#endif + +#define INT_MSK0_IIC_M_DMA 1<<12 +#define INT_MSK0_SHELL 1<<7 +#define INT_MSK0_EXTDC 1<<6 +//#define INT_MSK0_SLP 1<<2 +#define INT_MSK0_RSV ~( INT_MSK0_IIC_M_DMA | INT_MSK0_SHELL | INT_MSK0_EXTDC | INT_MSK0_WDTI ) + +#define INT_MSK1_KR 1<<11 +#define INT_MSK1_RTCINTVAL 1<<10 +#define INT_MSK1_RTCALARM 1<<9 +#define INT_MSK1_ADC 1<<8 +#define INT_MSK1_IIC_CTR 1<<3 +#define INT_MSK1_IIC_MCU 1<<0 +#define INT_MSK1_RSV ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL | INT_MSK1_RTCALARM | INT_MSK1_ADC \ + | INT_MSK1_IIC_CTR | INT_MSK1_IIC_MCU ) + +#define INT_MSK2_WIFI_TX_KE3 1<<4 +#define INT_MSK2L_RSV ~( INT_MSK2_WIFI_TX_KE3 ) + +#define INT_MSK2_IIC_TWL 1<<8 +#define INT_MSK2_WIFI_TX_BSR 1<<10 +#define INT_MSK2_CODEC_PMIRQ 1<<3 +#define INT_MSK2_RSV ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ ) + +#endif // dupe include guard diff --git a/snake_branches/info_blue_double/util_funcs.c b/snake_branches/info_blue_double/util_funcs.c new file mode 100644 index 0000000..2edea63 --- /dev/null +++ b/snake_branches/info_blue_double/util_funcs.c @@ -0,0 +1,65 @@ +/* ======================================================== + util_funcs + + Gȃ[eBeB֐ + + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#pragma opc + +#endif +#include "incs_loader.h" +#include "wdt.h" + + + +/********************************************//** + Pʂ ms + + NOP񂷂Aw莞CPU *L܂* B + + 荞݂ƂƂ̕x܂B + + 덷܂B + ***********************************************/ +void wait_ms( u8 ms ){ + u16 fine; + + WDT_Restart(); + while( ms != 0 ){ + ms--; + fine = 860; + while( fine != 0 ){ + fine --; + } + } +} + + + + +extern unsigned char get_ei(); + +#ifdef _DI_WITH_CHECK_ +/********************************************//** + ł 荞݋֎~ԉ`FbNĂ犄荞݋֎~ɂ + + ]̌ʁAA#ifdef Ń`FbN DI + ***********************************************/ +void DI_wt_chk() +{ + if( !get_ei() ) + { + dbg_nop(); + } + DI(); +} +#endif // _DI_WITH_CHECK_ diff --git a/snake_branches/info_blue_double/util_funcs.h b/snake_branches/info_blue_double/util_funcs.h new file mode 100644 index 0000000..4229413 --- /dev/null +++ b/snake_branches/info_blue_double/util_funcs.h @@ -0,0 +1,16 @@ +#ifndef _util_funcs_h_ +#define _util_funcs_h_ + + +void wait_ms( u8 ); + + +# ifdef _DI_WITH_CHECK_ +void DI_wt_chk(); +# else +# define DI_wt_chk() DI() +# endif /* _DI_WITH_CHECK_ */ + + +#endif + diff --git a/snake_branches/info_blue_double/voltable.c b/snake_branches/info_blue_double/voltable.c new file mode 100644 index 0000000..4d2e14a --- /dev/null +++ b/snake_branches/info_blue_double/voltable.c @@ -0,0 +1,64 @@ +/* ======================================================== + voltable.c + + $Id$ + ======================================================== */ +#include "incs.h" + +#define _10db_ + + + +/********************************************//** + XC_l CODEC ɃZbgہAőVol̊֌W + KɃXP[OKv + + yȂ̂Ńe[u + ***********************************************/ + + + +#ifdef _10db_ +// max -10db +const u8 slider_to_codec[64] = +{ + 127, 126, 125, 124, 122, 121, 120, 119, + 118, 117, 116, 114, 113, 112, 111, 110, + 109, 108, 106, 105, 104, 103, 102, 101, + 100, 98, 97, 96, 95, 94, 93, 92, + 90, 89, 88, 87, 86, 85, 83, 82, + 81, 80, 79, 78, 77, 75, 74, 73, + 73, 72, 71, 70, 69, 67, 66, 65, + 64, 63, 62, 61, 59, 58, 57, 56 + }; +#endif + +#ifdef _15db_ +// max -15db +const u8 slider_to_codec[64] = +{ + 127, 127, 127, 127, 127, 126, 125, 123, + 122, 121, 120, 119, 118, 117, 116, 115, + 114, 113, 112, 110, 109, 108, 107, 106, + 105, 104, 103, 102, 101, 100, 99, 97, + 96, 95, 94, 93, 92, 91, 90, 89, + 88, 87, 86, 85, 84, 83, 82, 81, + 80, 79, 78, 77, 76, 75, 74, 73, + 71, 70, 69, 68, 67, 66, 66, 66 +}; +#endif + +#ifdef _4db_ +// max -4db +const u8 slider_to_codec[64] = +{ + 127, 127, 126, 125, 123, 122, 121, 119, + 118, 117, 115, 114, 112, 111, 110, 108, + 107, 106, 104, 103, 101, 100, 99, 97, + 96, 94, 93, 92, 90, 89, 88, 86, + 85, 83, 82, 81, 79, 78, 77, 75, + 74, 72, 71, 70, 68, 67, 66, 64, + 64, 63, 61, 60, 59, 57, 56, 54, + 53, 52, 50, 49, 48, 46, 44, 44 +}; +#endif diff --git a/snake_branches/info_blue_double/voltable.h b/snake_branches/info_blue_double/voltable.h new file mode 100644 index 0000000..6ff34ab --- /dev/null +++ b/snake_branches/info_blue_double/voltable.h @@ -0,0 +1,57 @@ +#ifdef _10db_ +// max -10db +/* +const u8 slider_to_codec[64] = +{ + 127, 127, 127, 127, 126, 125, 123, 122, + 121, 120, 118, 117, 116, 115, 113, 112, + 111, 110, 108, 107, 106, 105, 103, 102, + 101, 100, 98, 97, 96, 95, 93, 92, + 91, 90, 88, 87, 86, 85, 83, 82, + 81, 80, 78, 77, 76, 75, 73, 72, + 72, 71, 70, 68, 67, 66, 64, 63, + 62, 61, 59, 58, 57, 56, 55, 55 + }; +*/ +const u8 slider_to_codec[64] = +{ + 127, 126, 125, 124, 122, 121, 120, 119, + 118, 117, 116, 114, 113, 112, 111, 110, + 109, 108, 106, 105, 104, 103, 102, 101, + 100, 98, 97, 96, 95, 94, 93, 92, + 90, 89, 88, 87, 86, 85, 83, 82, + 81, 80, 79, 78, 77, 75, 74, 73, + 73, 72, 71, 70, 69, 67, 66, 65, + 64, 63, 62, 61, 59, 58, 57, 56 + }; +#endif + +#ifdef _15db_ +// max -15db +const u8 slider_to_codec[64] = +{ + 127, 127, 127, 127, 127, 126, 125, 123, + 122, 121, 120, 119, 118, 117, 116, 115, + 114, 113, 112, 110, 109, 108, 107, 106, + 105, 104, 103, 102, 101, 100, 99, 97, + 96, 95, 94, 93, 92, 91, 90, 89, + 88, 87, 86, 85, 84, 83, 82, 81, + 80, 79, 78, 77, 76, 75, 74, 73, + 71, 70, 69, 68, 67, 66, 66, 66 +}; +#endif + +#ifdef _4db_ +// max -4db +const u8 slider_to_codec[64] = +{ + 127, 127, 126, 125, 123, 122, 121, 119, + 118, 117, 115, 114, 112, 111, 110, 108, + 107, 106, 104, 103, 101, 100, 99, 97, + 96, 94, 93, 92, 90, 89, 88, 86, + 85, 83, 82, 81, 79, 78, 77, 75, + 74, 72, 71, 70, 68, 67, 66, 64, + 64, 63, 61, 60, 59, 57, 56, 54, + 53, 52, 50, 49, 48, 46, 44, 44 +}; +#endif diff --git a/snake_branches/info_blue_double/vreg_ctr.c b/snake_branches/info_blue_double/vreg_ctr.c new file mode 100644 index 0000000..064f1ac --- /dev/null +++ b/snake_branches/info_blue_double/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/snake_branches/info_blue_double/vreg_ctr.h b/snake_branches/info_blue_double/vreg_ctr.h new file mode 100644 index 0000000..00c2140 --- /dev/null +++ b/snake_branches/info_blue_double/vreg_ctr.h @@ -0,0 +1,327 @@ +#ifndef __vreg_ctr__ +#define __vreg_ctr__ +/* + + + $Id$ +*/ + +#include "config.h" + +// VREG_C_MCU_STATUS +// bit[7.6] twl.sys_mode[1.0] ctr珑ȂAfcr_resetɓKɃZbg +// bit[5] V [7] ctr珑ȂAfcr_resetɓKɃZbg +#define REG_BIT_STATUS_WDT_RESET ( 1 << 1 ) +#define REG_BIT_RTC_BLACKOUT ( 1 << 0 ) + + +// VREG_C_STATUS, +#define REG_BIT_LCD_POW ( 1 << 7 ) +#define REG_BIT_BL_U ( 1 << 6 ) +#define REG_BIT_BL_L ( 1 << 5 ) +#define REG_BIT_BATT_CHARGE ( 1 << 4 ) +#define REG_BIT_POW_SUPPLY ( 1 << 3 ) +// gp ( 1 << 2 ) +#define REG_BIT_ST_SHELL_OPEN ( 1 << 1 ) +// gp ( 1 << 0 ) + + +// VREG_C_STATUS_X +// gp ( 1 << 6 ) +// gp ( 1 << 5 ) +#define REG_BIT_WIFI_TX ( 1 << 4 ) +// twl bl ̃~[[1: ( 1 << 3 ) +// 0]( 1 << 2 ) +#define REG_BIT_ACCERO_ERR ( 1 << 1 ) +#define REG_BIT_MGIC_ERR ( 1 << 0 ) + +#define REG_BIT_MASK_STATUS1_NTR_PM_REG 0x0C + + +// VREG_C_IRQ0 +#define REG_BIT_IRQ_WDT_RESET ( 1 << 7 ) +#define REG_BIT_SHELL_OPEN ( 1 << 6 ) +#define REG_BIT_SHELL_CLOSE ( 1 << 5 ) +#define REG_BIT_SW_WIFI_CLICK ( 1 << 4 ) +#define REG_BIT_SW_HOME_RELEASE ( 1 << 3 ) +#define REG_BIT_SW_HOME_CLICK ( 1 << 2 ) +#define REG_BIT_SW_POW_HOLD ( 1 << 1 ) +#define REG_BIT_SW_POW_CLICK ( 1 << 0 ) + +// VREG_C_IRQ1 +#define REG_BIT_BT_CHG_START ( 1 << 7 ) +#define REG_BIT_BT_CHG_STOP ( 1 << 6 ) +#define REG_BIT_BT_REMAIN ( 1 << 5 ) +#define REG_BIT_ACC_DAT_RDY ( 1 << 4 ) +#define REG_BIT_ACC_ACK ( 1 << 3 ) +#define REG_BIT_RTC_ALARM ( 1 << 2 ) +#define REG_BIT_BT_DC_CONNECT ( 1 << 1 ) +#define REG_BIT_BT_DC_DISC ( 1 << 0 ) + +// VREG_C_IRQ2 +#define REG_BIT_TWL_VER_READ ( 1 << 7 ) +//#define REG_BIT_TWL_SNDVOL_CHANGE ( 1 << 6 ) p~ +#define REG_BIT_SLIDE_VOL_ACROSS_TWL_BOUNDARY ( 1 << 6 ) +#define REG_BIT_TWL_BL_U_ON ( 1 << 5 ) +#define REG_BIT_TWL_BL_U_OFF ( 1 << 4 ) +#define REG_BIT_TWL_BL_L_ON ( 1 << 3 ) +#define REG_BIT_TWL_BL_L_OFF ( 1 << 2 ) +#define REG_BIT_TWL_OFF_REQ ( 1 << 1 ) +#define REG_BIT_TWL_RESET_REQ ( 1 << 0 ) + +// VREG_C_IRQ3 +#define REG_BIT_BL_U_ON ( 1 << 5 ) +#define REG_BIT_BL_U_OFF ( 1 << 4 ) +#define REG_BIT_BL_L_ON ( 1 << 3 ) +#define REG_BIT_BL_L_OFF ( 1 << 2 ) +#define REG_BIT_LCD_ON ( 1 << 1 ) +#define REG_BIT_LCD_OFF ( 1 << 0 ) + + +// ̂ǂ... +//#define REG_BIT_VR_3D_CHANGE ( 1 << 7 ) + + + +// VREG_C_COMMAND0 +//#define REG_BIT_CMD_LCD_ON ( 1 << 7 ) +//#define REG_BIT_CMD_LCD_OFF ( 1 << 6 ) +//#define REG_BIT_CMD_BL_ON ( 1 << 5 ) +//#define REG_BIT_CMD_BL_OFF ( 1 << 4 ) +#define REG_BIT_GOING_TO_SLEEP ( 1 << 4 ) +#define REG_BIT_FCRAM_RESET_REQ ( 1 << 3 ) +#define REG_BIT_RESET2_REQ ( 1 << 2 ) +#define REG_BIT_RESET1_REQ ( 1 << 1 ) +#define REG_BIT_OFF_REQ ( 1 << 0 ) + +// VREG_C_COMMAND1 (TWLɊ荞݂) +// gp ( 1 << 7 ) +// gp ( 1 << 6 ) +#define REG_BIT_SEND_TWL_VOL_CLICK ( 1 << 5 ) +#define REG_BIT_SEND_TWL_BATT_EMPTY ( 1 << 4 ) +#define REG_BIT_SEND_TWL_BATT_LOW ( 1 << 3 ) +#define REG_BIT_SEND_TWL_OFF_DET ( 1 << 2 ) +#define REG_BIT_SEND_TWL_RESET_DET ( 1 << 1 ) +#define REG_BIT_SEND_TWL_PWSW_DET ( 1 << 0 ) + +// VREG_C_COMMAND2 t֌W +#define REG_BIT_CMD_BL_U_ON ( 1 << 5 ) +#define REG_BIT_CMD_BL_U_OFF ( 1 << 4 ) +#define REG_BIT_CMD_BL_L_ON ( 1 << 3 ) +#define REG_BIT_CMD_BL_L_OFF ( 1 << 2 ) +#define REG_BIT_CMD_LCD_ON ( 1 << 1 ) +#define REG_BIT_CMD_LCD_OFF ( 1 << 0 ) +#define REG_BITS_CMD_BL ( REG_BIT_CMD_BL_U_ON | REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_ON | REG_BIT_CMD_BL_L_OFF ) + + +// TWLɒʒmIRQWX^ +#define REG_BIT_TWL_IRQ_PWSW_DET 0x08 +#define REG_BIT_TWL_IRQ_RESET 0x01 +#define REG_BIT_TWL_IRQ_OFF 0x02 +#define REG_BIT_TWL_IRQ_BT_LOW 0x20 +#define REG_BIT_TWL_IRQ_BT_EMPTY 0x10 +#define REG_BIT_TWL_IRQ_VOL_CHANGE 0x40 + + +// CODECPMIC NTR ̑㗝WX^ +#define REG_BIT_TWL_REQ_OFF ( 1 << 6 ) +#define REG_BIT_TWL_REQ_BL_U ( 1 << 3 ) +#define REG_BIT_TWL_REQ_BL_L ( 1 << 2 ) +#define REG_BIT_TWL_REQ_RESET ( 1 << 0 ) + + +// VREG_C_LED_NOTIFY_FLAG +#define REG_BIT_IN_LOOP ( 1 << 0 ) + +// RBR control (0x57) +#define REG_BIT_FLIGHT ( 1 << 1 ) +#define REG_BIT_RESET_n ( 1 << 0 ) + + +// HAL bitfields 0 +#define REG_BIT_HAL0_PM_EXTDC_n ( 1 << 7 ) +#define REG_BIT_HAL0_BT_IN_CHG_n ( 1 << 6 ) +//#define REG_BIT_HAL0_PM_IRQ_n // gȂ +#define REG_BIT_HAL0_RSV_5 ( 1 << 5 ) +#define REG_BIT_HAL0_WL_TX ( 1 << 4 ) +#define REG_BIT_HAL0_SHELL_OPEN ( 1 << 3 ) // statusɂ܂ +#define REG_BIT_HAL0_SW_WIFI_n ( 1 << 2 ) +#define REG_BIT_HAL0_SW_HOME_n ( 1 << 1 ) +#define REG_BIT_HAL0_SW_POW_n ( 1 << 0 ) + + +// HAL bitfields 1 +#define REG_BIT_HAL1_DIPSW_1 ( 1 << 3 ) +#define REG_BIT_HAL1_DIPSW_0 ( 1 << 2 ) +#define REG_BIT_HAL1_HW_DET_1 ( 1 << 1 ) +#define REG_BIT_HAL1_HW_DET_0 ( 1 << 0 ) + + +// VREG_C_WIFI_CALIB +#define REG_BIT_WIFI_CALIB_32K_HI_Z ( 1 << 1 ) +#define REG_BIT_WIFI_CALIB_RSTS_AST ( 1 << 0 ) + + +/* + ev +#define REG_BIT_ ( 1 << 7 ) +#define REG_BIT_ ( 1 << 6 ) +#define REG_BIT_ ( 1 << 5 ) +#define REG_BIT_ ( 1 << 4 ) +#define REG_BIT_ ( 1 << 3 ) +#define REG_BIT_ ( 1 << 2 ) +#define REG_BIT_ ( 1 << 1 ) +#define REG_BIT_ ( 1 << 0 ) +*/ + + + +/*============================================================================*/ +extern u8 vreg_ctr[]; + +/*============================================================================*/ +enum VREG_C_ADRS +{ // `AhX֏񂾍ۂ͕̓s + VREG_C_MCU_VER_MAJOR = 0x00, + VREG_C_MCU_VER_MINOR, + VREG_C_MCU_STATUS, + + VREG_C_VCOM_T = 0x03, + VREG_C_VCOM_B, + + VREG_C_DBG01 = 0x05, + VREG_C_DBG02, + VREG_C_DBG03, + + VREG_C_3D = 0x08, + VREG_C_SND_VOL, + VREG_C_BT_TEMP, + VREG_C_BT_REMAIN, + VREG_C_BT_REMAIN_FINE, + VREG_C_BT_VOLTAGE, + + VREG_C_STATUS_1 = 0x0E, + VREG_C_STATUS = 0x0F, + + VREG_C_IRQ0 = 0x10, + VREG_C_IRQ1, + VREG_C_IRQ2, + VREG_C_IRQ3, + VREG_C_IRQ4, + + VREG_C_IRQ_MASK0 = 0x18, + VREG_C_IRQ_MASK1, + VREG_C_IRQ_MASK2, + VREG_C_IRQ_MASK3, + VREG_C_IRQ_MASK4, + + VREG_C_COMMAND0 = 0x20, + VREG_C_COMMAND1, + VREG_C_COMMAND2, + VREG_C_COMMAND3, // 'r' Ń}CRZbgA 'w' WDTZbg + + VREG_C_OFF_DELAY = 0x24, +// VREG_C_VOL_DIGITAL = 0x25, // todo +// VREG_C_VOL_OPTION, + VREG_C_VOL_ADC_RAW = 0x27, + + VREG_C_LED_BRIGHT = 0x28, + VREG_C_LED_POW, + VREG_C_LED_WIFI, + VREG_C_LED_CAM, + VREG_C_LED_3D, + VREG_C_LED_NOTIFY_DATA, + VREG_C_LED_NOTIFY_FLAG, + + VREG_C_RBR_CONTROL = 0x2F, // p~ + + VREG_C_RTC_SEC = 0x30, + VREG_C_RTC_MIN, + VREG_C_RTC_HOUR, + VREG_C_RTC_YOBI, + VREG_C_RTC_DAY, + VREG_C_RTC_MONTH, + VREG_C_RTC_YEAR, + + VREG_C_RTC_COMP, + + VREG_C_RTC_ALARM_MIN = 0x38, + VREG_C_RTC_ALARM_HOUR, + VREG_C_RTC_ALARM_DAY, + VREG_C_RTC_ALARM_MONTH, + VREG_C_RTC_ALARM_YEAR, + + VREG_C_RTC_SEC_FINE_L, + VREG_C_RTC_SEC_FINE_H, + + VREG_C_WIFI_CALIB = 0x3F, + + VREG_C_ACC_CONFIG = 0x40, + VREG_C_ACC_R_ADRS, + VREG_C_ACC_RESERVE, + VREG_C_ACC_W_ADRS, + VREG_C_ACC_W_BUF, // r,w p + + VREG_C_ACC_XL = 0x45, + VREG_C_ACC_XH, + VREG_C_ACC_YL, + VREG_C_ACC_YH, + VREG_C_ACC_ZL, + VREG_C_ACC_ZH, + + VREG_C_ACC_HOSU_L = 0x4B, + VREG_C_ACC_HOSU_M, + VREG_C_ACC_HOSU_H, + VREG_C_ACC_HOSU_SETTING, + VREG_C_ACC_HOSU_HIST = 0x4F, + + VREG_C_ACC_HOSU_HOUR_BOUNDARY = 0x50, + VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC, + + VREG_C_HAL_OVW_CONT0 = 0x52, + VREG_C_HAL_OVW_DAT0, + VREG_C_HAL_OVW_CONT1, // reserved + VREG_C_HAL_OVW_DAT1, // reserved + + VREG_C_HAL_OVW_BT_FUEL = 0x56, + VREG_C_HAL_OVW_BT_VOLTAGE, + + VREG_C_VOL_CAL_MIN = 0x58, + VREG_C_VOL_CAL_MAX, + + VREG_C_HAL_OVW_TEMPERATURE = 0x5A, + + VREG_C_ENDMARK_ +}; + +// Ԃ͔ɂāAmۂȂ߂ ʂ define Ă +#define VREG_CX_INFO 0x7F +#define VREG_CX_FREE_ADRS 0x60 +#define VREG_CX_FREE_DATA 0x61 +// VREG_C_AMBIENT_BRIGHTNESS = 0xXX, + + + + +/*============================================================================*/ +void vreg_ctr_init( ); +void vreg_ctr_reset( ); +void vreg_ctr_write( u8 adrs, u8 data ); +u8 vreg_ctr_read( u8 phy_adrs ); +void vreg_ctr_after_read( u8 adrs, u8 data ); +void set_irq( u8 irqreg, u8 irq_flg ); + + +#define is_wifi_calib_resets_ast ( vreg_ctr[ VREG_C_WIFI_CALIB ] & REG_BIT_WIFI_CALIB_RSTS_AST ) +#define vreg_stop_acc ( vreg_ctr[ VREG_C_ACC_CONFIG ] &= ~( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ) ) +#define vreg_set_acc_error ( vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_ACCERO_ERR ) +#define is_acc_on ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_ACQ ) +#define is_pedo_on ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_HOSU ) +#define is_mgic_error ( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR ) +#define vreg_set_mgic_error ( vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_MGIC_ERR ) +#define vreg_clear_mgic_error ( vreg_ctr[ VREG_C_STATUS_1 ] &= ~(REG_BIT_MGIC_ERR) ) +#define is_bt_charging ( vreg_ctr[VREG_C_STATUS] & REG_BIT_BATT_CHARGE ) +#define is_shell_open ( vreg_ctr[VREG_C_STATUS] & REG_BIT_ST_SHELL_OPEN ) + + +#endif diff --git a/snake_branches/info_blue_double/vreg_twl.c b/snake_branches/info_blue_double/vreg_twl.c new file mode 100644 index 0000000..1cb1225 --- /dev/null +++ b/snake_branches/info_blue_double/vreg_twl.c @@ -0,0 +1,169 @@ +/* ======================================================== + TWL݊I2CWX^ + + $Id$ + ======================================================== */ +#include "incs.h" +#include "jhl_defs.h" +#include "led.h" + +#include "vreg_twl.h" +//#include "vreg_ctr.h" +#include "adc.h" + + +// ======================================================== +#define TWL_REG_VER_INFO 0x35 +#define NON_EXIST_REG 0xFF + +// ======================================================== +u8 vreg_twl[_REG_TWL_INT_ADRS_ENDMARK]; + + +extern bit twl_ver_read; +extern bit cam_led_update; +extern bit vol_changed_by_twl; + + +// ======================================================== +extern void tsk_led_cam(); + + + + +/********************************************//** + zWX^̏ + ***********************************************/ +void vreg_twl_init( ) +{ + vreg_twl[ REG_TWL_INT_ADRS_MODE ] = 0x03; + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] = 0; + vreg_twl[ REG_TWL_INT_ADRS_CAM ] = 0; + vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = 0; +} + + + +/********************************************//** + I2CzWX^ɏEANV + + @ adrs ͓AhX + + @݂ȂAhXɃANZXꍇA܂B + ***********************************************/ +void vreg_twl_write( u8 adrs, u8 data ) +{ + switch ( adrs ) + { + case ( REG_TWL_INT_ADRS_VOL ): + { + vol_changed_by_twl = true; + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = data; + //renge_task_immed_add( tski_vol_update ); + vol_polling = 3; + break; + } + + case ( REG_TWL_INT_ADRS_MODE ): + vreg_twl[ REG_TWL_INT_ADRS_MODE ] = ( data & 0x83 ); // [8]vol32 [1:0]nand + break; + + case ( REG_TWL_INT_ADRS_CAM ): + vreg_twl[ REG_TWL_INT_ADRS_CAM ] = ( data & 0x03 ); + if( ( data & 0x03 ) == TWL_CAMLED_BLINK ) + { + cam_led_update = true; // łȂƈꔭɕs邽 + } + tsk_led_cam(); // uN̓sŋN + break; + + case ( REG_TWL_INT_ADRS_TEMP0 ): + vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = data; + break; + + case ( REG_TWL_INT_ADRS_COMMAND ): +/* + if( data <= 2 ){ + if( ( data & REG_BIT_TWL_OFF_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_OFF_REQ ); // OFFĂ炵B + break; + } + else if( ( data & REG_BIT_TWL_RESET_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); //ZbgȂB̂́ASPI痈܂B + break; + } + } +*/ + if( data == REG_BIT_TWL_RESET_REQ ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); //ZbgȂB̂́ASPI痈܂B + break; + } + } + return; +} + + + +/********************************************//** + I2CzWX^ǂ݂܂B + + @ adrs O猩Ƃ́AAhX + + @߂ xx f[^ + + @݂ȂAhXɃANZXꍇA߂l0x5A + ***********************************************/ +u8 vreg_twl_read( u8 phy_adrs ) +{ + u8 temp; + + switch( phy_adrs ){ + // 10%ȉŐԂɂȂ + case( REG_TWL_INT_ADRS_POWER_INFO ): + // x̃Zbg get_batt_left()ixĖłj + return( vreg_twl[ REG_TWL_INT_ADRS_POWER_INFO ] | ( !PM_EXTDC_n ? 0x80: 0x00 ) ); // A_v^bit(A_v^L) + + case( REG_TWL_INT_ADRS_IRQ ): + temp = vreg_twl[ REG_TWL_INT_ADRS_IRQ ]; + vreg_twl[ REG_TWL_INT_ADRS_IRQ ]= 0; + return( temp ); + + case( REG_TWL_INT_ADRS_VER_INFO ): +// set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); // xIɖȂ̂ + twl_ver_read = true; + return( TWL_REG_VER_INFO ); + + case( REG_TWL_ADRS_NON_EXIST ): + return( 0x00 ); + + default: + return( vreg_twl[ phy_adrs ] ); + } +} + + + +/********************************************//** + O猩钎HAhXA̘AAhXɓǂݑւ + + 0xFF݂͑ȂAhXB + ***********************************************/ +u8 adrs_table_twl_ext2int( u8 img ) +{ + switch( img ){ + case( REG_TWL_ADRS_IRQ ): return( REG_TWL_INT_ADRS_IRQ ); + case( REG_TWL_ADRS_COMMAND ): return( REG_TWL_INT_ADRS_COMMAND ); + case( REG_TWL_ADRS_POWER_INFO ): return( REG_TWL_INT_ADRS_POWER_INFO ); + case( REG_TWL_ADRS_VOL ): return( REG_TWL_INT_ADRS_VOL ); + case( REG_TWL_ADRS_CAM ): return( REG_TWL_INT_ADRS_CAM ); + case( REG_TWL_ADRS_TEMP0 ): return( REG_TWL_INT_ADRS_TEMP0 ); + case( REG_TWL_ADRS_VER_INFO ): return( REG_TWL_INT_ADRS_VER_INFO ); + case( REG_TWL_ADRS_MODE ): return( REG_TWL_INT_ADRS_MODE ); + default: return( REG_TWL_ADRS_NON_EXIST ); +// 0ǂ߂΂悢AȂėǂ +// case( REG_TWL_ADRS_WIFI ): return( REG_TWL_INT_ADRS_WIFI ); + } +} diff --git a/snake_branches/info_blue_double/vreg_twl.h b/snake_branches/info_blue_double/vreg_twl.h new file mode 100644 index 0000000..63cdd94 --- /dev/null +++ b/snake_branches/info_blue_double/vreg_twl.h @@ -0,0 +1,127 @@ +#ifndef __vreg_twl__ +#define __vreg_twl__ +/* ========================================================================= */ +extern u8 vreg_twl[]; + + +/* + * O猩Ƃ̃}CRWX^AhXB + * gȂǂlĔєтɂĂB + */ +/* + * 荞ݗvtO + * MSB:OdL/Ȃω ij + * 6:VolL[iύXɌ炸BMAXɁ{łBj + * 5:drd o + * 4: + * 3:dXCb` ꌟo + * 2:iݒj + * 1:dXCb` OFF ԉꌟo + * LSB: Zbg + */ +enum REG_TWL_ADRS +{ // `AhX֏񂾍ۂ͖ + REG_TWL_ADRS_VER_INFO = 0x00, + REG_TWL_ADRS_PMIC_INFO, + REG_TWL_ADRS_BATT_INFO, + REG_TWL_ADRS_IRQ = 0x10, + REG_TWL_ADRS_COMMAND, + REG_TWL_ADRS_MODE, + REG_TWL_ADRS_POWER_INFO = 0x20, + REG_TWL_ADRS_POWER_SAVE, + REG_TWL_ADRS_WIFI = 0x30, + REG_TWL_ADRS_CAM, + REG_TWL_ADRS_VOL = 0x40, + REG_TWL_ADRS_BL, + REG_TWL_ADRS_CODEC_MIC_GAIN = 0x50, + REG_TWL_ADRS_ADC_CALIB = 0x60, + REG_TWL_ADRS_ADC_CALIB_STATUS, + REG_TWL_ADRS_ADC_CALIB_VALUE, + REG_TWL_ADRS_POWER_LED, + REG_TWL_ADRS_TEMP0 = 0x70, + REG_TWL_ADRS_TEMP1, + REG_TWL_ADRS_TEMP2, + REG_TWL_ADRS_TEMP3, + REG_TWL_ADRS_TEMP4, + REG_TWL_ADRS_TEMP5, + REG_TWL_ADRS_TEMP6, + REG_TWL_ADRS_TEMP7, + REG_TWL_ADRS_TIME_PWSW_DELAY = 0x80, + REG_TWL_ADRS_TIME_PWSW_THRESHOLD +}; + +#define REG_TWL_ADRS_NON_EXIST 0xFF + +/* + * }CRł̃WX^̎ + * ‚߂Ă + */ +enum REG_TWL_ADRS_INT +{ + REG_TWL_INT_ADRS_VER_INFO = 0x00, +// REG_TWL_INT_ADRS_PMIC_INFO, +// REG_TWL_INT_ADRS_BATT_INFO, + REG_TWL_INT_ADRS_IRQ, // 0x10, + REG_TWL_INT_ADRS_COMMAND, + REG_TWL_INT_ADRS_MODE, + REG_TWL_INT_ADRS_POWER_INFO, // 0x20, +// REG_TWL_INT_ADRS_POWER_SAVE, +// REG_TWL_INT_ADRS_WIFI, // 0x30, + REG_TWL_INT_ADRS_CAM, + REG_TWL_INT_ADRS_VOL, // 0x40, +// REG_TWL_INT_ADRS_BL, +// REG_TWL_INT_ADRS_CODEC_MIC_GAIN, // 0x50, +// REG_TWL_INT_ADRS_CODEC_MIC_GAIN_RELOAD, +// REG_TWL_INT_ADRS_ADC_CALIB, // 0x60, +// REG_TWL_INT_ADRS_ADC_CALIB_STATUS, +// REG_TWL_INT_ADRS_ADC_CALIB_VALUE, +// REG_TWL_INT_ADRS_POWER_LED, + REG_TWL_INT_ADRS_TEMP0, // 0x70 - 0x77 + REG_TWL_INT_ADRS_TEMP1, + REG_TWL_INT_ADRS_TEMP2, + REG_TWL_INT_ADRS_TEMP3, + REG_TWL_INT_ADRS_TEMP4, + REG_TWL_INT_ADRS_TEMP5, + REG_TWL_INT_ADRS_TEMP6, + REG_TWL_INT_ADRS_TEMP7, +// REG_TWL_INT_ADRS_TIME_PWSW_DELAY, +// REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD + _REG_TWL_INT_ADRS_ENDMARK, +}; + + + +/* ========================================================================= */ +#define is_TWL ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x01 ) +#define with_NAND ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x02 ) +#define volSteps32 ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 ) + +#define reg_wifi_led ( vreg_twl[ REG_TWL_INT_ADRS_WIFI ] & 0x01 ) +#define reg_wifi_led_blink ( vreg_twl[ REG_TWL_INT_ADRS_WIFI ] & 0x02 ) + +#define REG_TWL_ADRS_MODE__VOL32 ( 1 << 7 ) + +typedef enum CAM_LED_TWL_MODE +{ + TWL_CAMLED_OFF, + TWL_CAMLED_ON, + TWL_CAMLED_BLINK, + TWL_CAMLED_DEF_ON +}twl_camLed_mode; + + +/* ========================================================================= */ +void vreg_twl_init( ); +void vreg_twl_write( u8 adrs, u8 data ); +u8 adrs_table_twl_ext2int( u8 img ); +u8 vreg_twl_read( u8 phy_adrs ); + + +// ǂ񂾂NAȂǂ̏ +#define vreg_twl_after_read( reg_adrs ); \ + if( reg_adrs == REG_TWL_INT_ADRS_IRQ ) \ + { \ + vreg_twl[ REG_TWL_INT_ADRS_IRQ ]= 0;\ + } + +#endif diff --git a/snake_branches/info_blue_double/yav_mcu_bsr.plg b/snake_branches/info_blue_double/yav_mcu_bsr.plg new file mode 100644 index 0000000..96a2427 --- /dev/null +++ b/snake_branches/info_blue_double/yav_mcu_bsr.plg @@ -0,0 +1,224 @@ +C:\Windows\system32\cmd.exe /c c:\cygwin\bin\touch magic.c +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no loader.c +loader.c(160) : CC78K0R warning W0401: Conversion may lose significant digits +loader.c(161) : CC78K0R warning W0401: Conversion may lose significant digits +loader.c(210) : CC78K0R warning W0505: Operator '==' has no effect +Compilation complete, 0 error(s) and 3 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\loader.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no pm.c +pm.c(546) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(857) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(861) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(889) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(903) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(989) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(998) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1071) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1078) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1217) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1219) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 11 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\pm.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_ctr.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_ctr.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no main.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\main.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no magic.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\magic.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no WDT.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\WDT.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_mcu.c +i2c_mcu.c(188) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_mcu.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_twl.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_twl.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no led.c +led.c(90) : CC78K0R warning W0745: Expected function prototype +led.c(375) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 2 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\led.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no rtc.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\rtc.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2m -qvjl2w -sainter_asm -zpb -no vreg_ctr.c +vreg_ctr.c(159) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(160) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(162) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(164) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(165) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(248) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(248) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(253) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(253) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(257) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(257) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(261) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(261) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(265) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 14 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\vreg_ctr.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2m -qvjl2w -sainter_asm -zpb -no vreg_twl.c +vreg_twl.c(68) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_twl.c(72) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 2 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\vreg_twl.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no adc.c +adc.c(104) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(190) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(241) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(308) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(434) : CC78K0R warning W0745: Expected function prototype +adc.c(463) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(468) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 7 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\adc.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2m -qvjl2w -sainter_asm -zpb -no renge\renge.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\renge.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no accero.c +accero.c(121) : CC78K0R warning W0745: Expected function prototype +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\accero.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2 -qvjl2w -sainter_asm -zpb -no self_flash.c +self_flash.c(289) : CC78K0R warning W0401: Conversion may lose significant digits +self_flash.c(290) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 2 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\self_flash.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no sw.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\sw.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no task_debug.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\task_debug.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no task_misc.c +task_misc.c(380) : CC78K0R warning W0401: Conversion may lose significant digits +task_misc.c(382) : CC78K0R warning W0401: Conversion may lose significant digits +task_misc.c(392) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 3 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\task_misc.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no task_sys.c +task_sys.c(229) : CC78K0R warning W0401: Conversion may lose significant digits +task_sys.c(291) : CC78K0R warning W0401: Conversion may lose significant digits +task_sys.c(569) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 3 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\task_sys.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no pedo_alg_thre_det2.c +pedo_alg_thre_det2.c(104) : CC78K0R warning W0745: Expected function prototype +pedo_alg_thre_det2.c(120) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 2 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\pedo_alg_thre_det2.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no ini_VECT.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\ini_VECT.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no task_status.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\task_status.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no led_cam.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\led_cam.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no led_pow.c +led_pow.c(120) : CC78K0R warning W0401: Conversion may lose significant digits +led_pow.c(125) : CC78K0R warning W0401: Conversion may lose significant digits +led_pow.c(178) : CC78K0R warning W0401: Conversion may lose significant digits +led_pow.c(240) : CC78K0R warning W0401: Conversion may lose significant digits +led_pow.c(271) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 5 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\led_pow.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no hal.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\hal.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no batt_params.c +batt_params.c(63) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.c(63) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.c(81) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.c(100) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.c(100) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.c(118) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.c(118) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 7 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\batt_params.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no voltable.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\voltable.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no pedo_lpf_coeff.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\pedo_lpf_coeff.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx kanaria.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no kanaria_c.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\kanaria_c.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx get_ei.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no util_funcs.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\util_funcs.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_mcu-sub.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_mcu-sub.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\lk78k0r.exe" -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -obsr.lmf "..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\s0rm.rel" -gi1B339499E033F240BFAAh -pbsr_k0r.map -nkd -gb7EFBFFh -b"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r" -dbsr_mcu.dr -s -w2 loader.rel pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_twl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel sw.rel task_debug.rel task_misc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel task_status.rel led_cam.rel led_pow.rel hal.rel batt_params.rel voltable.rel pedo_lpf_coeff.rel kanaria.rel kanaria_c.rel get_ei.rel util_funcs.rel i2c_mcu-sub.rel +RA78K0R warning W3420: File 'loader.rel' already has had error(s)/warning(s) by 'CC78K' + Read Device File Directory : C:\PROGRAM FILES (X86)\NEC ELECTRONICS TOOLS\DEV\ +RA78K0R warning W3420: File 'pm.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'i2c_mcu.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'led.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'vreg_ctr.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'vreg_twl.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'adc.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'accero.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'self_flash.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'task_misc.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'task_sys.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'pedo_alg_thre_det2.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'led_pow.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'batt_params.rel' already has had error(s)/warning(s) by 'CC78K' + +Link complete, 0 error(s) and 14 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\oc78k0r.exe" -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -o.\bsr.hex -nu -ki bsr.lmf +Object Conversion Complete, 0 error(s) and 0 warning(s) found. +C:\Windows\system32\cmd.exe /c ruby nec_s_2_bsrbin2.rb bsr.hex +nec_s_2_bsrbin2.rb:2: warning: variable $KCODE is no longer effective; ignored +4 +intel-HEX to bsr bin converter + file converted! + + +Build Total error(s) : 0 Total warning(s) : 77 diff --git a/snake_branches/info_blue_double/yav_mcu_bsr.pri b/snake_branches/info_blue_double/yav_mcu_bsr.pri new file mode 100644 index 0000000..b018509 --- /dev/null +++ b/snake_branches/info_blue_double/yav_mcu_bsr.pri @@ -0,0 +1,1031 @@ +[Project.ID] +Ver=200 +Target=IDK0R32G +[Configuration] +Chip=uPD79F0104 +Internal Rom=32KB +Internal Ram=1536B +Clock=Target +Sub Clock=Target +Peripheral Break=0x3 +Firm Clock=System +Flash Programming=Permit +Low-voltage Flash Rewriting=On +Fail Safe Break=0x2000 +Port=1 +NMI=OFF +TRESET=OFF +IRESET=OFF +WAIT=OFF +SysClock=None +SubClock=None +[Mapping] +Count=0 +[Main] +Geometry=154, 154, 1188, 812 +Window=Max +MDI_MAX=OFF +Button=ON +Mode=Auto +Trace=Uncond ON +Trace2=Non Stop +Coverage=OFF +Timer=OFF +Tracer=OFF +[Load File] +Dir=\\tsclient\C\78k_data\yav-mcu-basara\trunk\ +SaveFilter=0 +Start=0 +End=0 +LoadFilter=5 +Offset=0 +Object=ON +Symbol=ON +Erase=OFF +HighSpeed=OFF +Symbol Reset=ON +CPU Reset=ON +File1=\\tsclient\C\78k_data\yav-mcu-basara\trunk\bsr.lmf +LoadFilter1=5 +Offset1=0 +Object1=ON +Symbol1=ON +Erase1=OFF +HighSpeed1=OFF +CPU Reset1=ON +Symbol Reset1=ON +[View File] +Dir=\\tsclient\C\78k_data\yav-mcu-basara\trunk\ +Filter=Source +[Debugger Option] +Source Path="\\tsclient\C\78k_data\yav-mcu-basara\trunk\renge" +Symbol Size=Byte +Symbol Format=Hex +Register Name=Func +Offset Label=OFF +Offset Mnemonic=ON +Tab Count=4 +Tab Size1=*.*, 8 +Tab Size2=*.c, 8 +Tab Size3=*.s, 8 +Tab Size4=*.asm, 8 +Default Source=*.c;*.s;*.asm +Default Module=*.lnk;*.lmf +Startup Start=_@cstart +Startup End=_@cend +Main Symbol=_main +Symbol Type=OFF +Language=C +Kanji=SJIS +[Source] +Geometry=762, 184, 689, 822 +Window=Normal +DispStart=82 +CaretPos=83,0 +Mode=Normal +DispFile= +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Data1= +Data2= +Data3= +Data4= +Data5= +Data6= +Data7= +Data8= +Data9= +Data10= +Data11= +Data12= +Data13= +Data14= +Data15= +Data16= +Option=0 +Case=ON +Direction=Down +File1= +File2= +File3= +File4= +File5= +File6= +File7= +File8= +File9= +File10= +File11= +File12= +File13= +File14= +File15= +File16= +SaveRange=Screen +SaveStart= +SaveEnd= +Accumulative=ON +[Source1] +Geometry=100, 100, 689, 822 +Window=Normal +DispStart=55 +CaretPos=1,0 +Mode=Normal +DispFile=\\tsclient\C\78k_data\yav-mcu-basara\trunk\hal.c +Accumulative=ON +[Assemble] +Geometry=0, 0, 0, 0 +Window=Hide +DispStart=847627264 +CaretPos=0,0 +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Data1= +Data2= +Data3= +Data4= +Data5= +Data6= +Data7= +Data8= +Data9= +Data10= +Data11= +Data12= +Data13= +Data14= +Data15= +Data16= +Case=ON +Scan=OFF +Direction=Down +FindStart= +FindEnd= +SaveRange=Screen +SaveStart= +SaveEnd= +[Memory] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Format=Hex +Mode=Byte +Endian= +Ascii=OFF +Idtag=OFF +Address= +DispStart=FFFFFFFF +CaretPosData=0, 0 +CaretPosAscii=0, 0 +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Data1= +Data2= +Data3= +Data4= +Data5= +Data6= +Data7= +Data8= +Data9= +Data10= +Data11= +Data12= +Data13= +Data14= +Data15= +Data16= +Binary=ON +Scan=OFF +Direction=DOWN +FindStart= +FindEnd= +Unit=Byte +SaveRange=Screen +SaveStart= +SaveEnd= +Accumulative=ON +[Memory fill] +Scope=0, 0 +Code=0 +[Memory copy] +Scope=0, 0 +To=0 +[Memory compare] +Source=0, 0 +Destination=0 +[I/O Port] +Line=0 +[Stack] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Mode=Proper +[Sfr] +Geometry=0, 0, 0, 0 +Window=Hide +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Boundary=0, 0 +Mode=Hex +Attribute=Show +Sort=Address +Pickup=OFF +SelectSort=Address +Last Name= +Line=531 +L1=P0 +L2=P1 +L3=P2 +L4=P3 +L5=P4 +L6=P5 +L7=P6 +L8=P7 +L9=P12 +L10=P14 +L11=P15 +L12=SDR00 +L13=SIO00 +L14=TXD0 +L15=SDR01 +L16=RXD0 +L17=SIO01 +L18=TDR00 +L19=TDR01 +L20=ADCRH +L21=PM0 +L22=PM1 +L23=PM2 +L24=PM3 +L25=PM4 +L26=PM5 +L27=PM6 +L28=PM7 +L29=PM12 +L30=PM14 +L31=PM15 +L32=ADM +L33=ADCE +L34=ADCS +L35=ADS +L36=KRM +L37=EGP0 +L38=EGN0 +L39=ISC +L40=TIS0 +L41=SDR02 +L42=SIO10 +L43=TXD1 +L44=SDR03 +L45=RXD1 +L46=IICA0 +L47=IICS0 +L48=SPD0 +L49=STD0 +L50=ACKD0 +L51=TRC0 +L52=COI0 +L53=EXC0 +L54=ALD0 +L55=MSTS0 +L56=IICF0 +L57=IICRSV0 +L58=STCEN0 +L59=IICBSY0 +L60=STCF0 +L61=TDR02 +L62=TDR03 +L63=TDR04 +L64=TDR05 +L65=TDR06 +L66=TDR07 +L67=RSUBC +L68=SEC +L69=MIN +L70=HOUR +L71=WEEK +L72=DAY +L73=MONTH +L74=YEAR +L75=SUBCUD +L76=ALARMWM +L77=ALARMWH +L78=ALARMWW +L79=RTCC0 +L80=RCLOE0 +L81=RCLOE1 +L82=RTCE +L83=RTCC1 +L84=RWAIT +L85=RWST +L86=RIFG +L87=WAFG +L88=WALIE +L89=WALE +L90=RTCC2 +L91=RCKDIV +L92=RCLOE2 +L93=RINTE +L94=CMC +L95=CSC +L96=HIOSTOP +L97=XTSTOP +L98=MSTOP +L99=OSTC +L100=OSTS +L101=CKC +L102=MCM0 +L103=MCS +L104=CSS +L105=CLS +L106=CKS0 +L107=PCLOE0 +L108=CKS1 +L109=PCLOE1 +L110=RESF +L111=LVIM +L112=LVIF +L113=LVIMD +L114=LVISEL +L115=LVION +L116=LVIS +L117=WDTE +L118=DSA0 +L119=DSA1 +L120=DRA0 +L121=DRA0L +L122=DRA0H +L123=DRA1 +L124=DRA1L +L125=DRA1H +L126=DBC0 +L127=DBC0L +L128=DBC0H +L129=DBC1 +L130=DBC1L +L131=DBC1H +L132=DMC0 +L133=DWAIT0 +L134=DS0 +L135=DRS0 +L136=STG0 +L137=DMC1 +L138=DWAIT1 +L139=DS1 +L140=DRS1 +L141=STG1 +L142=DRC0 +L143=DST0 +L144=DEN0 +L145=DRC1 +L146=DST1 +L147=DEN1 +L148=BECTL +L149=FLMDPUP +L150=PFCMD +L151=PFS +L152=FPRERR +L153=FLPMC +L154=BFAEN +L155=FWEPR +L156=BRAMEN +L157=IF2 +L158=IF2L +L159=TMIF05 +L160=TMIF06 +L161=TMIF07 +L162=PIF6 +L163=IF2H +L164=IICAIF1 +L165=PIF20 +L166=PIF21 +L167=PIF22 +L168=PIF23 +L169=MK2 +L170=MK2L +L171=TMMK05 +L172=TMMK06 +L173=TMMK07 +L174=PMK6 +L175=MK2H +L176=IICAMK1 +L177=PMK20 +L178=PMK21 +L179=PMK22 +L180=PMK23 +L181=PR02 +L182=PR02L +L183=TMPR005 +L184=TMPR006 +L185=TMPR007 +L186=PPR06 +L187=PR02H +L188=IICAPR01 +L189=PPR020 +L190=PPR021 +L191=PPR022 +L192=PPR023 +L193=PR12 +L194=PR12L +L195=TMPR105 +L196=TMPR106 +L197=TMPR107 +L198=PPR16 +L199=PR12H +L200=IICAPR11 +L201=PPR120 +L202=PPR121 +L203=PPR122 +L204=PPR123 +L205=IF0 +L206=IF0L +L207=WDTIIF +L208=LVIIF +L209=PIF0 +L210=PIF1 +L211=PIF2 +L212=PIF4 +L213=PIF5 +L214=IF0H +L215=DMAIF0 +L216=DMAIF1 +L217=CSIIF00 +L218=STIF0 +L219=CSIIF01 +L220=SRIF0 +L221=SREIF0 +L222=IF1 +L223=IF1L +L224=CSIIF10 +L225=IICIF10 +L226=STIF1 +L227=SRIF1 +L228=SREIF1 +L229=IICAIF0 +L230=TMIF00 +L231=TMIF01 +L232=TMIF02 +L233=TMIF03 +L234=IF1H +L235=ADIF +L236=RTCIF +L237=RTCIIF +L238=KRIF +L239=MDIF +L240=TMIF04 +L241=MK0 +L242=MK0L +L243=WDTIMK +L244=LVIMK +L245=PMK0 +L246=PMK1 +L247=PMK2 +L248=PMK4 +L249=PMK5 +L250=MK0H +L251=DMAMK0 +L252=DMAMK1 +L253=CSIMK00 +L254=STMK0 +L255=CSIMK01 +L256=SRMK0 +L257=SREMK0 +L258=MK1 +L259=MK1L +L260=CSIMK10 +L261=IICMK10 +L262=STMK1 +L263=SRMK1 +L264=SREMK1 +L265=IICAMK0 +L266=TMMK00 +L267=TMMK01 +L268=TMMK02 +L269=TMMK03 +L270=MK1H +L271=ADMK +L272=RTCMK +L273=RTCIMK +L274=KRMK +L275=MDMK +L276=TMMK04 +L277=PR00 +L278=PR00L +L279=WDTIPR0 +L280=LVIPR0 +L281=PPR00 +L282=PPR01 +L283=PPR02 +L284=PPR04 +L285=PPR05 +L286=PR00H +L287=DMAPR00 +L288=DMAPR01 +L289=CSIPR000 +L290=STPR00 +L291=CSIPR001 +L292=SRPR00 +L293=SREPR00 +L294=PR01 +L295=PR01L +L296=CSIPR010 +L297=IICPR010 +L298=STPR01 +L299=SRPR01 +L300=SREPR01 +L301=IICAPR00 +L302=TMPR000 +L303=TMPR001 +L304=TMPR002 +L305=TMPR003 +L306=PR01H +L307=ADPR0 +L308=RTCPR0 +L309=RTCIPR0 +L310=KRPR0 +L311=MDPR0 +L312=TMPR004 +L313=PR10 +L314=PR10L +L315=WDTIPR1 +L316=LVIPR1 +L317=PPR10 +L318=PPR11 +L319=PPR12 +L320=PPR14 +L321=PPR15 +L322=PR10H +L323=DMAPR10 +L324=DMAPR11 +L325=CSIPR100 +L326=STPR10 +L327=CSIPR101 +L328=SRPR10 +L329=SREPR10 +L330=PR11 +L331=PR11L +L332=CSIPR110 +L333=IICPR110 +L334=STPR11 +L335=SRPR11 +L336=SREPR11 +L337=IICAPR10 +L338=TMPR100 +L339=TMPR101 +L340=TMPR102 +L341=TMPR103 +L342=PR11H +L343=ADPR1 +L344=RTCPR1 +L345=RTCIPR1 +L346=KRPR1 +L347=MDPR1 +L348=TMPR104 +L349=MDAL +L350=MULA +L351=MDAH +L352=MULB +L353=MDBH +L354=MULOH +L355=MDBL +L356=MULOL +L357=PMC +L358=MAA +L359=ADPC +L360=PU0 +L361=PU1 +L362=PU3 +L363=PU4 +L364=PU5 +L365=PU7 +L366=PU12 +L367=PU14 +L368=PIM3 +L369=PIM7 +L370=POM3 +L371=POM7 +L372=NFEN0 +L373=NFEN1 +L374=NFEN2 +L375=MDCL +L376=MDCH +L377=MDUC +L378=DIVST +L379=DIVMODE +L380=PER0 +L381=SAU0EN +L382=IICA0EN +L383=ADCEN +L384=RTCEN +L385=PER2 +L386=TAU0EN +L387=OSMC +L388=BCDADJ +L389=SSR00 +L390=SSR00L +L391=SSR01 +L392=SSR01L +L393=SSR02 +L394=SSR02L +L395=SSR03 +L396=SSR03L +L397=SIR00 +L398=SIR00L +L399=SIR01 +L400=SIR01L +L401=SIR02 +L402=SIR02L +L403=SIR03 +L404=SIR03L +L405=SMR00 +L406=SMR01 +L407=SMR02 +L408=SMR03 +L409=SCR00 +L410=SCR01 +L411=SCR02 +L412=SCR03 +L413=SE0 +L414=SE0L +L415=SS0 +L416=SS0L +L417=ST0 +L418=ST0L +L419=SPS0 +L420=SPS0L +L421=SO0 +L422=SOE0 +L423=SOE0L +L424=SOL0 +L425=SOL0L +L426=TCR00 +L427=TCR01 +L428=TCR02 +L429=TCR03 +L430=TCR04 +L431=TCR05 +L432=TCR06 +L433=TCR07 +L434=TMR00 +L435=TMR01 +L436=TMR02 +L437=TMR03 +L438=TMR04 +L439=TMR05 +L440=TMR06 +L441=TMR07 +L442=TSR00 +L443=TSR00L +L444=TSR01 +L445=TSR01L +L446=TSR02 +L447=TSR02L +L448=TSR03 +L449=TSR03L +L450=TSR04 +L451=TSR04L +L452=TSR05 +L453=TSR05L +L454=TSR06 +L455=TSR06L +L456=TSR07 +L457=TSR07L +L458=TE0 +L459=TE0L +L460=TS0 +L461=TS0L +L462=TT0 +L463=TT0L +L464=TPS0 +L465=TPS0L +L466=TO0 +L467=TO0L +L468=TOE0 +L469=TOE0L +L470=TOL0 +L471=TOL0L +L472=TOM0 +L473=TOM0L +L474=IICCTL00 +L475=SPT0 +L476=STT0 +L477=ACKE0 +L478=WTIM0 +L479=SPIE0 +L480=WREL0 +L481=LREL0 +L482=IICE0 +L483=IICCTL10 +L484=DFC0 +L485=SMC0 +L486=DAD0 +L487=CLD0 +L488=WUP0 +L489=IICWL0 +L490=IICWH0 +L491=SVA0 +L492=PER3 +L493=IICA1EN +L494=P20 +L495=PM20 +L496=PU20 +L497=EGP2 +L498=EGN2 +L499=IICA1 +L500=IICS1 +L501=SPD1 +L502=STD1 +L503=ACKD1 +L504=TRC1 +L505=COI1 +L506=EXC1 +L507=ALD1 +L508=MSTS1 +L509=IICF1 +L510=IICRSV1 +L511=STCEN1 +L512=IICBSY1 +L513=STCF1 +L514=IICCTL01 +L515=SPT1 +L516=STT1 +L517=ACKE1 +L518=WTIM1 +L519=SPIE1 +L520=WREL1 +L521=LREL1 +L522=IICE1 +L523=IICCTL11 +L524=DFC1 +L525=SMC1 +L526=DAD1 +L527=CLD1 +L528=WUP1 +L529=IICWL1 +L530=IICWH1 +L531=SVA1 +[Local Variable] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Mode=Proper +[Trace View] +Geometry=0, 0, 0, 0 +Window=Hide +Mode=Normal +Frame=Show +Timetag=Clock +Address=Show +Data=Hex +Status=Show +Address2=Show +Data2=Hex +Status2=Show +Disasm=Show +Pick Up=Off +Synchronize=0 0 0 0 +Frameno= +Frameno1= +Frameno2= +Frameno3= +Frameno4= +Frameno5= +Frameno6= +Frameno7= +Frameno8= +Frameno9= +Frameno10= +Frameno11= +Frameno12= +Frameno13= +Frameno14= +Frameno15= +Frameno16= +ScanStatus=ALL +Access Size=B +ScanAddress=<>-<> +Mask Address= +ScanData= +Mask Data= +ScanExternal= +Mask External= +Scan=OFF +Direction=Down +FindStart= +FindEnd= +SaveRange=Screen +SaveStart= +SaveEnd= +[Register] +Geometry=0, 0, 0, 0 +Window=Hide +Mode=Hex +Boundary=0 +Pickup=OFF +Name=Functional +Register Bank=0 +RP0=3 +RP1=3 +RP2=3 +RP3=3 +PC=3 +SP=3 +PSW=3 +ES=3 +CS=3 +[Event Manager] +Geometry=0, 0, 0, 0 +Window=Hide +Sort by=Unsort +Detail=OFF +[Event Set] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Event Link] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Break] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Trace] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Delay Count0=2 +Count=0 +[Snap] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Stub] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Timer] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +TimerRateRunBreak=0011 +TimerBreakOutRunBreak=OFF +Count=0 +[Timer Monitor] +Count=0 +[Dmm] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Variable] +Geometry=1153, 8, 440, 300 +Window=Normal +Boundary=13762700 +0=.BT_IN_CHG_n,P,N,A,+,1 +Line=1 +[Quick Watch] +0=BT_IN_CHG_n,P,A,1 +1= +2= +3= +4= +5= +6= +7= +8= +9= +10= +11= +12= +13= +14= +15= +[Software Break] +Geometry=0, 0, 0, 0 +Window=Hide +Width=150 30 200 100 +Name0=Swb00002 +Address0=pm.c#_tsk_batt+0x27 +Window0=ASM +Status0=ON +Name1=Swb00001 +Address1=pm.c#_tsk_batt+0x24 +Window1=ASM +Status1=ON +Count=2 +[Reset] +Debugger=ON +Symbol=OFF +Target CPU=OFF +[Extended Option] +OnClick Software Break=ON +TraceTimetag=x1 +Redraw=500 +Break When Access Function=OFF +Break When Access Whole=Select +Verify=ON +Break Sound=ON +TraceAutoClear=OFF +RRM Clock=Internal +CKC Register Value=0x09 +RRM Internal Clock Frequency=8.000 +[About] +Version=Program +[Pseudo Emulation] +Geometry=0, 0, 0, 0 +Window=Hide +[Data Flash Option] +Data Flash Emulation=OFF +[List] +Geometry=0, 0, 0, 0 +Window=Hide +[Console] +Geometry=0, 0, 0, 0 +Window=Hide diff --git a/snake_branches/info_blue_double/yav_mcu_bsr.prj b/snake_branches/info_blue_double/yav_mcu_bsr.prj new file mode 100644 index 0000000..13f655f --- /dev/null +++ b/snake_branches/info_blue_double/yav_mcu_bsr.prj @@ -0,0 +1,1408 @@ +[ProjectManager] +Version=6.00 +Path=C:\78k_data\yav-mcu-basara\snake_trunk\ +Title=yav-mcu +Series=78K0R.PM +Device=uPD79F0104 +DeviceVer=E1.00b +DebugMode=1 +Target=bsr.lmf +[BuildMode0] +BuildModeName=Debug Build +TargetFile=0 +[BuildMode1] +BuildModeName=Release Build +TargetFile=0 +[Tools] +MakeFile=yav_mcu_bsr.mak +Debugger=C:\Program Files (x86)\NEC Electronics Tools\ID78K0R-QB\V3.61\BIN\IDK0R32G.EXE +DebOption= +DebCpuReset=1 +DebSymReset=1 +MuitiLoad=0 +LoadPrjNum=0 +CheckVersion=CC78K0R|W2.13;RA78K0R|W1.33 +[Option.IDK0R32G] +File=\\tsclient\C\78k_data\yav-mcu-basara\trunk\yav_mcu_bsr.pri +[BuildMode2] +BuildModeName=K0R_dbg +TargetFile=0 +[BuildMode3] +BuildModeName=BSR_dbg +TargetFile=0 +[BuildMode4] +BuildModeName=BSR_rel +TargetFile=0 +[BuildMode5] +BuildModeName=BSR_WM0 +TargetFile=0 +[Options.OC78K0R 0] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 1] +Version=100 +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 2] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=0 +UN=FF +UST= +USZ= +K=0 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 3] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 4] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 5] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[BuildBefore-AfterCmd] +Before1=c:\cygwin\bin\touch magic.c +After1=ruby nec_s_2_bsrbin2.rb bsr.hex +[ToolSet] +ToolSetName=(ύX)78K0R Software Package V1.10 +Tool1=CC78K0R|W2.13 +Tool2=RA78K0R|W1.33 +Tool3=SK78K0R|V3.10 +Tool4=ID78K0R-QB|V3.61 +[Options.RA78K0R 0] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 1] +Version=100 +G=0 +GA=0 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 2] +Version=100 +O0= +O1=obj +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +P0=inter_asm +KA=1 +KS=1 +KX=1 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT=-pinter_asm -ks -kx +[Options.RA78K0R 3] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 4] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 5] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[SrcFile] +Source1=loader.c +Source2=pm.c +Source3=i2c_ctr.c +Source4=main.c +Source5=magic.c +Source6=WDT.c +Source7=i2c_mcu.c +Source8=i2c_twl.c +Source9=led.c +Source10=rtc.c +Source11=vreg_ctr.c +Source12=vreg_twl.c +Source13=adc.c +Source14=renge\renge.c +Source15=accero.c +Source16=self_flash.c +Source17=sw.c +Source18=task_debug.c +Source19=task_misc.c +Source20=task_sys.c +Source21=pedo_alg_thre_det2.c +Source22=ini_VECT.c +Source23=task_status.c +Source24=led_cam.c +Source25=led_pow.c +Source26=hal.c +Source27=batt_params.c +Source28=voltable.c +Source29=pedo_lpf_coeff.c +Source30=kanaria.asm +Source31=kanaria_c.c +Source32=get_ei.asm +Source33=util_funcs.c +Source34=i2c_mcu-sub.c +[Options.CC78K0R 0] +Version=210 +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 1] +Version=210 +Memorymodel=2 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1128 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=0 +Outdebug=1153 +Outasmsrcchk=0 +Outasmsrc=1157 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1173 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=0 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=1 +FarROMization=1 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rll.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Define3=_TEG_,proc_is_ke3 +Define4=proc_is_ke3 +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include2=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1069 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 vreg_ctr.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 vreg_twl.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 renge.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 self_flash.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 3] +Version=210 +Define0=_debug_,proc_is_bsr,_TEG_ +Define1=_debug_,proc_is_bsr +Define2=proc_is_bsr +Define3=_TEG_,proc_is_ke3 +Define4=proc_is_ke3 +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 4] +Version=210 +Define0=proc_is_bsr +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 5] +Version=210 +Define0= +Define1=_debug_,proc_is_bsr,_TEG_,_WM0_ +Define2=_debug_,proc_is_bsr,_TEG_,_WM0 +Define3=_debug_,proc_is_bsr,_TEG_ +Define4=_debug_,proc_is_bsr +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.LK78K0R 0] +Version=100 +O0=bsr_k0r.lmf +O1=bsr.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=1 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 1] +Version=100 +O0=a.lmf +G=0 +E=0 +E0=a.elk +GO=0 +GOValue= +GOStart=FC00 +GOSizeValue=1024 +GI=0 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=1 +MemInfoCheck=0 +P=1 +P0=a.map +MI=0 +GB=0 +GBValue= +KM=1 +KD=1 +KP=0 +KL=0 +LF=0 +LL=0 +S=0 +W=1 +SELFCheck=0 +SELF=0 +ZB= +CommandFile=0 +[Options.LK78K0R 2] +Version=100 +O0=bsr.lmf +O1=bsr_k0r.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=0 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=1B339499E033F240BFAA +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=7EFBFF +KM=1 +KD=0 +KP=0 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib +B1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +OFILE=C:\78k_data\yav-mcu-basara\snake_trunk\bsr.lmf +[Options.LK78K0R 3] +Version=100 +O0=bsr_bsr.lmf +O1=bsr_k0r.lmf +O2=bsr.lmf +O3=flash.lmf +O4=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_bsr.map +P1=bsr_k0r.map +P2=bsr.map +P3=flash.map +P4=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 4] +Version=100 +O0=bsr_k0r.lmf +O1=bsr.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=1 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 5] +Version=100 +O0=bsr_bsr.lmf +O1=bsr_k0r.lmf +O2=bsr.lmf +O3=flash.lmf +O4=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_bsr.map +P1=bsr_k0r.map +P2=bsr.map +P3=flash.map +P4=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LCNV78K0R 0] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 1] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 2] +Version=100 +LCNV_GO=0 +O0=inter_asm +E=0 +CommandFile=0 +[Options.LCNV78K0R 3] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 4] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 5] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.78K0R] +BuildMode=2 +BuildMode2=K0R_dbg +BuildMode3=BSR_dbg +BuildMode4=BSR_rel +BuildMode5=BSR_WM0 +DefaultMode2=1 +DefaultMode3=1 +DefaultMode4=1 +DefaultMode5=1 +[IncFile] +Include1=incs_loader.h +Include2=config.h +Include3=jhl_defs.h +Include4=user_define.h +Include5=hal.h +Include6=bsr_system.h +Include7=renge\renge.h +Include8=renge\renge_defs.h +Include9=renge\renge_task_immediate.h +Include10=vreg_ctr.h +Include11=vreg_twl.h +Include12=loader.h +Include13=i2c_mcu.h +Include14=WDT.h +Include15=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +Include16=fsl_user.h +Include17=i2c_ctr.h +Include18=pm.h +Include19=rtc.h +Include20=reboot.h +Include21=magic.h +Include22=incs.h +Include23=i2c_twl.h +Include24=accero.h +Include25=pedometer.h +Include26=sw.h +Include27=adc.h +Include28=led.h +Include29=batt_params.h +Include30=pool.h +Include31=i2c_twl_defs.h +Include32=renge\renge_task_intval.h +Include33=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h +Include34=self_flash.h +Include35=util_funcs.h +Include36=i2c_mcu_sub.h diff --git a/snake_branches/info_blue_double/yav_mcu_bsr.prk b/snake_branches/info_blue_double/yav_mcu_bsr.prk new file mode 100644 index 0000000..c34cfc9 --- /dev/null +++ b/snake_branches/info_blue_double/yav_mcu_bsr.prk @@ -0,0 +1,15 @@ +[ProjectManager] +FrameMax=1 +FrameX=150 +FrameY=150 +FrameCX=1200 +FrameCY=850 +OpenFile1=ProjectWindow +PrjPos=0,0,706,0,291 +OpenFile2=loader.c,0,215,59,1446,717,65,88,65,0 +OpenFile3=config.h,0,323,22,1500,759,2,7,2,0 +OpenFile4=OutputWindow +OutputPos=0,106,756,74,1030 +ActivePRJ=yav_mcu_bsr.prj +[ProjectWindow] +ProjectWindowDispType=0 diff --git a/snake_branches/info_blue_double/yav_mcu_bsr.prw b/snake_branches/info_blue_double/yav_mcu_bsr.prw new file mode 100644 index 0000000..7c0bbd6 --- /dev/null +++ b/snake_branches/info_blue_double/yav_mcu_bsr.prw @@ -0,0 +1,8 @@ +[System] +System1=default +[default] +Project1=yav_mcu_bsr.prj +[BATCH_BUILD] +Build1=yav_mcu_bsr.prj,Debug Build,1 +Build2=yav_mcu_bsr.prj,Release Build,0 +Build3=yav_mcu_bsr.prj,BSR_WM0,0 diff --git a/snake_branches/info_blue_double/yav_mcu_bsr.sdb b/snake_branches/info_blue_double/yav_mcu_bsr.sdb new file mode 100644 index 0000000..06d706c --- /dev/null +++ b/snake_branches/info_blue_double/yav_mcu_bsr.sdb @@ -0,0 +1,325 @@ +[SdbInfo] +Ver=5 +[loader.c] +T=511c420e +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=511c424b +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=511c3fe5 +1=incs.h +2=rtc.h +3=pedometer.h +[main.c] +T=511c3fe3 +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=511c3fe4 +1=magic.h +2=config.h +[WDT.c] +T=511c3fe3 +1=incs_loader.h +[i2c_mcu.c] +T=511c3fe3 +1=incs_loader.h +2=i2c_mcu.h +3=loader.h +4=util_funcs.h +5=i2c_mcu_sub.h +[i2c_twl.c] +T=511c3fe7 +1=incs_loader.h +2=i2c_twl_defs.h +3=i2c_twl.h +4=vreg_twl.h +5=WDT.h +[led.c] +T=511c3fe7 +1=incs.h +2=led.h +[rtc.c] +T=511c3fe5 +1=incs.h +[vreg_ctr.c] +T=511c3fe2 +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=511c3fe5 +1=incs.h +2=jhl_defs.h +3=led.h +4=vreg_twl.h +5=adc.h +[adc.c] +T=511c3fe3 +1=incs.h +2=adc.h +3=pm.h +4=led.h +5=vreg_twl.h +6=i2c_mcu.h +[renge\renge.c] +T=511c3fe3 +1=renge\renge.h +2=renge\renge_task_intval.h +3=renge\renge_task_immediate.h +4=WDT.h +5=config.h +6=user_define.h +7=util_funcs.h +8=bsr_system.h +[accero.c] +T=511c3fe7 +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=511c3fe3 +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=511c3fe5 +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=511c3fe2 +1=incs_loader.h +2=renge\renge.h +3=pm.h +4=accero.h +[task_misc.c] +T=511c3fde +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=511c3fe5 +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=511c3fe7 +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=511c3fe7 +1=config.h +[task_status.c] +T=511c3fe7 +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=511c3fe7 +1=incs.h +2=led.h +3=vreg_twl.h +[led_pow.c] +T=511c3fe5 +1=incs.h +2=led.h +3=pm.h +[hal.c] +T=511c3fe7 +1=incs_loader.h +[batt_params.c] +T=511c3fe5 +1=jhl_defs.h +2=batt_params.h +[voltable.c] +T=511c3fe7 +1=incs.h +[pedo_lpf_coeff.c] +T=511c3fe2 +1=incs.h +[kanaria.asm] +T=511c3fe7 +[kanaria_c.c] +T=511c3fe2 +1=incs.h +[get_ei.asm] +T=511c3fe3 +[util_funcs.c] +T=511c3fe7 +1=incs_loader.h +2=WDT.h +[i2c_mcu-sub.c] +T=511c3fe2 +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=511c3fe7 +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=511c3fe3 +[jhl_defs.h] +T=511c3fe4 +[user_define.h] +T=511c3fe7 +[hal.h] +T=511c3fe7 +[bsr_system.h] +T=511c3fe7 +[renge\renge.h] +T=511c3fe3 +1=renge\renge_defs.h +2=renge\renge_task_immediate.h +[renge\renge_defs.h] +T=511c3fe3 +[renge\renge_task_immediate.h] +T=511c3fe3 +1=renge\renge_defs.h +[vreg_ctr.h] +T=511c3fe2 +1=config.h +[vreg_twl.h] +T=511c3fe5 +[loader.h] +T=511c3fe3 +[i2c_mcu.h] +T=511c3fe3 +[WDT.h] +T=511c3fe3 +[..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h] +T=49a3bd4e +[fsl_user.h] +T=511c3fe7 +[i2c_ctr.h] +T=511c3fe5 +[pm.h] +T=511c3fe3 +[rtc.h] +T=511c3fe5 +[reboot.h] +T=511c3fe7 +[magic.h] +T=511c3fe5 +[incs.h] +T=511c3fe3 +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=511c3fe7 +[accero.h] +T=511c3fe7 +1=jhl_defs.h +2=pedometer.h +[pedometer.h] +T=511c3fe2 +[sw.h] +T=511c3fe5 +1=config.h +[adc.h] +T=511c3fe3 +1=jhl_defs.h +[led.h] +T=511c3fe7 +[batt_params.h] +T=511c3fe7 +1=jhl_defs.h +[pool.h] +T=511c3fe7 +1=pedometer.h +[i2c_twl_defs.h] +T=511c3fe7 +[renge\renge_task_intval.h] +T=511c3fe3 +1=renge\renge_defs.h +[..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h] +T=45f12258 +[self_flash.h] +T=511c3fe3 +[util_funcs.h] +T=511c3fe7 +[i2c_mcu_sub.h] +T=511c3fe2 diff --git a/snake_branches/info_blue_double/ベースからの変更.xls b/snake_branches/info_blue_double/ベースからの変更.xls new file mode 100644 index 0000000000000000000000000000000000000000..5212dac6485080dca2bfd246e855585895ff82af GIT binary patch literal 26624 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 literal 0 HcmV?d00001 diff --git a/snake_branches/info_blue_double/覚え書き.txt b/snake_branches/info_blue_double/覚え書き.txt new file mode 100644 index 0000000..28269c4 --- /dev/null +++ b/snake_branches/info_blue_double/覚え書き.txt @@ -0,0 +1,9 @@ +A܂Ƃ wiki ɏȂƂȂǁB + +2.2C +SNAKE Ή (vCg) + +2.2D +SNAKE system updater mcu vZX쐬Ɍ߁A +o[Wԍ̂݁A2.2D ɂȂĂ +

duqiHgcyOShRN)im+E_EB93 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