From 881ad0d5e84ad279e43e8164ab610f4c796ca40e Mon Sep 17 00:00:00 2001 From: n2232 Date: Mon, 3 Feb 2014 04:15:48 +0000 Subject: [PATCH] =?UTF-8?q?=E2=96=A02.36=E3=80=82=E3=80=80MAX17048=20?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@608 013db118-44a6-b54f-8bf7-843cb86687b1 --- snake_tags/2.36/OMakefile | 159 ++ snake_tags/2.36/OMakeroot | 4 + snake_tags/2.36/VCProj/Debug/BuildLog.htm | Bin 0 -> 3992 bytes .../VCProj/Debug/bsr_trunk.lastbuildstate | 2 + snake_tags/2.36/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 snake_tags/2.36/VCProj/bsr_trunk.ncb | Bin 0 -> 912384 bytes snake_tags/2.36/VCProj/bsr_trunk.opensdf | Bin 0 -> 30 bytes snake_tags/2.36/VCProj/bsr_trunk.sdf | Bin 0 -> 1200128 bytes snake_tags/2.36/VCProj/bsr_trunk.sln | 20 + snake_tags/2.36/VCProj/bsr_trunk.sln.old | 20 + snake_tags/2.36/VCProj/bsr_trunk.suo | Bin 0 -> 78336 bytes snake_tags/2.36/VCProj/bsr_trunk.suo.old | Bin 0 -> 45056 bytes snake_tags/2.36/VCProj/bsr_trunk.vcproj | 594 +++++++ .../VCProj/bsr_trunk.vcproj.NCL.N2232.user | 65 + snake_tags/2.36/VCProj/bsr_trunk.vcxproj | 162 ++ .../2.36/VCProj/bsr_trunk.vcxproj.filters | 258 +++ snake_tags/2.36/VCProj/bsr_trunk.vcxproj.user | 3 + snake_tags/2.36/WDT.c | 12 + snake_tags/2.36/WDT.h | 20 + snake_tags/2.36/accero.c | 274 +++ snake_tags/2.36/accero.h | 14 + snake_tags/2.36/adc.c | 475 +++++ snake_tags/2.36/adc.h | 48 + snake_tags/2.36/batt_params.c | 130 ++ snake_tags/2.36/batt_params.h | 62 + snake_tags/2.36/bsr.hex | 1020 +++++++++++ snake_tags/2.36/bsr.lmf | Bin 0 -> 183576 bytes snake_tags/2.36/bsr_k0r.map | 897 ++++++++++ snake_tags/2.36/bsr_mcu.dr | 46 + snake_tags/2.36/bsr_system.h | 73 + snake_tags/2.36/config.h | 109 ++ snake_tags/2.36/fsl.h | 362 ++++ snake_tags/2.36/fsl_user.h | 113 ++ snake_tags/2.36/get_ei.asm | 26 + snake_tags/2.36/hal.c | 182 ++ snake_tags/2.36/hal.h | 16 + snake_tags/2.36/hoge.bin | Bin 0 -> 16387 bytes snake_tags/2.36/i2c_ctr.c | 312 ++++ snake_tags/2.36/i2c_ctr.h | 210 +++ snake_tags/2.36/i2c_mcu-sub.c | 124 ++ snake_tags/2.36/i2c_mcu.c | 660 +++++++ snake_tags/2.36/i2c_mcu.h | 40 + snake_tags/2.36/i2c_mcu_sub.h | 9 + snake_tags/2.36/i2c_twl.c | 246 +++ snake_tags/2.36/i2c_twl.h | 7 + snake_tags/2.36/i2c_twl_defs.h | 196 +++ snake_tags/2.36/incs.h | 44 + snake_tags/2.36/incs_loader.h | 49 + snake_tags/2.36/ini_VECT.c | 347 ++++ snake_tags/2.36/jhl_defs.h | 25 + snake_tags/2.36/kanaria.asm | 12 + snake_tags/2.36/kanaria_c.c | 18 + snake_tags/2.36/led.c | 399 +++++ snake_tags/2.36/led.h | 142 ++ snake_tags/2.36/led_cam.c | 156 ++ snake_tags/2.36/led_pow.c | 296 ++++ snake_tags/2.36/loader.c | 420 +++++ snake_tags/2.36/loader.h | 6 + snake_tags/2.36/magic.c | 33 + snake_tags/2.36/magic.h | 24 + snake_tags/2.36/main.c | 100 ++ snake_tags/2.36/nec_s_2_bsrbin2.rb | 82 + snake_tags/2.36/pedo_alg_thre_det2.c | 567 ++++++ snake_tags/2.36/pedo_lpf_coeff.c | 87 + snake_tags/2.36/pedo_lpf_coeff.h | 84 + snake_tags/2.36/pedometer.h | 36 + snake_tags/2.36/pm.c | 1529 +++++++++++++++++ snake_tags/2.36/pm.h | 221 +++ snake_tags/2.36/pool.h | 24 + snake_tags/2.36/reboot.c | 23 + snake_tags/2.36/reboot.h | 6 + snake_tags/2.36/renge/renge.c | 313 ++++ snake_tags/2.36/renge/renge.h | 26 + snake_tags/2.36/renge/renge_defs.h | 55 + snake_tags/2.36/renge/renge_task_config.rb | 59 + snake_tags/2.36/renge/renge_task_immediate.h | 25 + snake_tags/2.36/renge/renge_task_intval.h | 37 + snake_tags/2.36/renge/renge_tasks.txt | 11 + snake_tags/2.36/rtc.c | 182 ++ snake_tags/2.36/rtc.h | 24 + snake_tags/2.36/self_flash.c | 635 +++++++ snake_tags/2.36/self_flash.h | 9 + snake_tags/2.36/sw.c | 213 +++ snake_tags/2.36/sw.h | 20 + snake_tags/2.36/task_debug.c | 122 ++ snake_tags/2.36/task_misc.c | 429 +++++ snake_tags/2.36/task_status.c | 89 + snake_tags/2.36/task_sys.c | 685 ++++++++ snake_tags/2.36/user_define.h | 214 +++ snake_tags/2.36/util_funcs.c | 65 + snake_tags/2.36/util_funcs.h | 16 + snake_tags/2.36/voltable.c | 64 + snake_tags/2.36/voltable.h | 57 + snake_tags/2.36/vreg_ctr.c | 638 +++++++ snake_tags/2.36/vreg_ctr.h | 327 ++++ snake_tags/2.36/vreg_twl.c | 169 ++ snake_tags/2.36/vreg_twl.h | 127 ++ snake_tags/2.36/yav_mcu_bsr.plg | 48 + snake_tags/2.36/yav_mcu_bsr.pri | 1031 +++++++++++ snake_tags/2.36/yav_mcu_bsr.prj | 1408 +++++++++++++++ snake_tags/2.36/yav_mcu_bsr.prk | 16 + snake_tags/2.36/yav_mcu_bsr.prw | 8 + snake_tags/2.36/yav_mcu_bsr.sdb | 325 ++++ snake_tags/2.36/ベースからの変更.xls | Bin 0 -> 26624 bytes snake_tags/2.36/覚え書き.txt | 9 + 110 files changed, 19656 insertions(+) create mode 100644 snake_tags/2.36/OMakefile create mode 100644 snake_tags/2.36/OMakeroot create mode 100644 snake_tags/2.36/VCProj/Debug/BuildLog.htm create mode 100644 snake_tags/2.36/VCProj/Debug/bsr_trunk.lastbuildstate create mode 100644 snake_tags/2.36/VCProj/Debug/bsr_trunk.log create mode 100644 snake_tags/2.36/VCProj/Debug/bsr_trunk.unsuccessfulbuild create mode 100644 snake_tags/2.36/VCProj/_UpgradeReport_Files/UpgradeReport.css create mode 100644 snake_tags/2.36/VCProj/_UpgradeReport_Files/UpgradeReport.xslt create mode 100644 snake_tags/2.36/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif create mode 100644 snake_tags/2.36/VCProj/_UpgradeReport_Files/UpgradeReport_Plus.gif create mode 100644 snake_tags/2.36/VCProj/bsr_trunk.ncb create mode 100644 snake_tags/2.36/VCProj/bsr_trunk.opensdf create mode 100644 snake_tags/2.36/VCProj/bsr_trunk.sdf create mode 100644 snake_tags/2.36/VCProj/bsr_trunk.sln create mode 100644 snake_tags/2.36/VCProj/bsr_trunk.sln.old create mode 100644 snake_tags/2.36/VCProj/bsr_trunk.suo create mode 100644 snake_tags/2.36/VCProj/bsr_trunk.suo.old create mode 100644 snake_tags/2.36/VCProj/bsr_trunk.vcproj create mode 100644 snake_tags/2.36/VCProj/bsr_trunk.vcproj.NCL.N2232.user create mode 100644 snake_tags/2.36/VCProj/bsr_trunk.vcxproj create mode 100644 snake_tags/2.36/VCProj/bsr_trunk.vcxproj.filters create mode 100644 snake_tags/2.36/VCProj/bsr_trunk.vcxproj.user create mode 100644 snake_tags/2.36/WDT.c create mode 100644 snake_tags/2.36/WDT.h create mode 100644 snake_tags/2.36/accero.c create mode 100644 snake_tags/2.36/accero.h create mode 100644 snake_tags/2.36/adc.c create mode 100644 snake_tags/2.36/adc.h create mode 100644 snake_tags/2.36/batt_params.c create mode 100644 snake_tags/2.36/batt_params.h create mode 100644 snake_tags/2.36/bsr.hex create mode 100644 snake_tags/2.36/bsr.lmf create mode 100644 snake_tags/2.36/bsr_k0r.map create mode 100644 snake_tags/2.36/bsr_mcu.dr create mode 100644 snake_tags/2.36/bsr_system.h create mode 100644 snake_tags/2.36/config.h create mode 100644 snake_tags/2.36/fsl.h create mode 100644 snake_tags/2.36/fsl_user.h create mode 100644 snake_tags/2.36/get_ei.asm create mode 100644 snake_tags/2.36/hal.c create mode 100644 snake_tags/2.36/hal.h create mode 100644 snake_tags/2.36/hoge.bin create mode 100644 snake_tags/2.36/i2c_ctr.c create mode 100644 snake_tags/2.36/i2c_ctr.h create mode 100644 snake_tags/2.36/i2c_mcu-sub.c create mode 100644 snake_tags/2.36/i2c_mcu.c create mode 100644 snake_tags/2.36/i2c_mcu.h create mode 100644 snake_tags/2.36/i2c_mcu_sub.h create mode 100644 snake_tags/2.36/i2c_twl.c create mode 100644 snake_tags/2.36/i2c_twl.h create mode 100644 snake_tags/2.36/i2c_twl_defs.h create mode 100644 snake_tags/2.36/incs.h create mode 100644 snake_tags/2.36/incs_loader.h create mode 100644 snake_tags/2.36/ini_VECT.c create mode 100644 snake_tags/2.36/jhl_defs.h create mode 100644 snake_tags/2.36/kanaria.asm create mode 100644 snake_tags/2.36/kanaria_c.c create mode 100644 snake_tags/2.36/led.c create mode 100644 snake_tags/2.36/led.h create mode 100644 snake_tags/2.36/led_cam.c create mode 100644 snake_tags/2.36/led_pow.c create mode 100644 snake_tags/2.36/loader.c create mode 100644 snake_tags/2.36/loader.h create mode 100644 snake_tags/2.36/magic.c create mode 100644 snake_tags/2.36/magic.h create mode 100644 snake_tags/2.36/main.c create mode 100755 snake_tags/2.36/nec_s_2_bsrbin2.rb create mode 100644 snake_tags/2.36/pedo_alg_thre_det2.c create mode 100644 snake_tags/2.36/pedo_lpf_coeff.c create mode 100644 snake_tags/2.36/pedo_lpf_coeff.h create mode 100644 snake_tags/2.36/pedometer.h create mode 100644 snake_tags/2.36/pm.c create mode 100644 snake_tags/2.36/pm.h create mode 100644 snake_tags/2.36/pool.h create mode 100644 snake_tags/2.36/reboot.c create mode 100644 snake_tags/2.36/reboot.h create mode 100644 snake_tags/2.36/renge/renge.c create mode 100644 snake_tags/2.36/renge/renge.h create mode 100644 snake_tags/2.36/renge/renge_defs.h create mode 100644 snake_tags/2.36/renge/renge_task_config.rb create mode 100644 snake_tags/2.36/renge/renge_task_immediate.h create mode 100644 snake_tags/2.36/renge/renge_task_intval.h create mode 100644 snake_tags/2.36/renge/renge_tasks.txt create mode 100644 snake_tags/2.36/rtc.c create mode 100644 snake_tags/2.36/rtc.h create mode 100644 snake_tags/2.36/self_flash.c create mode 100644 snake_tags/2.36/self_flash.h create mode 100644 snake_tags/2.36/sw.c create mode 100644 snake_tags/2.36/sw.h create mode 100644 snake_tags/2.36/task_debug.c create mode 100644 snake_tags/2.36/task_misc.c create mode 100644 snake_tags/2.36/task_status.c create mode 100644 snake_tags/2.36/task_sys.c create mode 100644 snake_tags/2.36/user_define.h create mode 100644 snake_tags/2.36/util_funcs.c create mode 100644 snake_tags/2.36/util_funcs.h create mode 100644 snake_tags/2.36/voltable.c create mode 100644 snake_tags/2.36/voltable.h create mode 100644 snake_tags/2.36/vreg_ctr.c create mode 100644 snake_tags/2.36/vreg_ctr.h create mode 100644 snake_tags/2.36/vreg_twl.c create mode 100644 snake_tags/2.36/vreg_twl.h create mode 100644 snake_tags/2.36/yav_mcu_bsr.plg create mode 100644 snake_tags/2.36/yav_mcu_bsr.pri create mode 100644 snake_tags/2.36/yav_mcu_bsr.prj create mode 100644 snake_tags/2.36/yav_mcu_bsr.prk create mode 100644 snake_tags/2.36/yav_mcu_bsr.prw create mode 100644 snake_tags/2.36/yav_mcu_bsr.sdb create mode 100644 snake_tags/2.36/ベースからの変更.xls create mode 100644 snake_tags/2.36/覚え書き.txt diff --git a/snake_tags/2.36/OMakefile b/snake_tags/2.36/OMakefile new file mode 100644 index 0000000..42baad6 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/OMakeroot b/snake_tags/2.36/OMakeroot new file mode 100644 index 0000000..16f4b11 --- /dev/null +++ b/snake_tags/2.36/OMakeroot @@ -0,0 +1,4 @@ +# +# Include the OMakefile in this directory. +# +.SUBDIRS: . diff --git a/snake_tags/2.36/VCProj/Debug/BuildLog.htm b/snake_tags/2.36/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_tags/2.36/VCProj/Debug/bsr_trunk.lastbuildstate b/snake_tags/2.36/VCProj/Debug/bsr_trunk.lastbuildstate new file mode 100644 index 0000000..ed27c09 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/VCProj/Debug/bsr_trunk.log b/snake_tags/2.36/VCProj/Debug/bsr_trunk.log new file mode 100644 index 0000000..fb95820 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/VCProj/Debug/bsr_trunk.unsuccessfulbuild b/snake_tags/2.36/VCProj/Debug/bsr_trunk.unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/snake_tags/2.36/VCProj/_UpgradeReport_Files/UpgradeReport.css b/snake_tags/2.36/VCProj/_UpgradeReport_Files/UpgradeReport.css new file mode 100644 index 0000000..3411f63 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/VCProj/_UpgradeReport_Files/UpgradeReport.xslt b/snake_tags/2.36/VCProj/_UpgradeReport_Files/UpgradeReport.xslt new file mode 100644 index 0000000..8277446 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif b/snake_tags/2.36/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_tags/2.36/VCProj/bsr_trunk.ncb b/snake_tags/2.36/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_tags/2.36/VCProj/bsr_trunk.opensdf b/snake_tags/2.36/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_tags/2.36/VCProj/bsr_trunk.sdf b/snake_tags/2.36/VCProj/bsr_trunk.sdf new file mode 100644 index 0000000000000000000000000000000000000000..099181e8023df466764608cd8173ae16594f6a66 GIT binary patch literal 1200128 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

d4!@>faus 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 z z>puPVKNjjmZ~64s{!pm5VE>q0$kHX|FQjc-}hp-csj&?EN}*9`sUX~cM=cF zyyJiE*tHD9MON+Ic6!P$3Y;QTN6Vd07fB8boZ)y$|H5&9I*$@HU?~ClfL#saw<#Ir z)AG`pIwEN=JRUV5{g$Oh6{-R0|6@jZr;BPPD?`3dO_F{qqr87Y`c)a_jS1;p8Rd&6 zq?;M(#S_v48R^;2{_vq|hWyeA<=@IkFPo75P)2(Bg!Ih)8<>zjl+ixEz0GusGwQF% zOhjnFQll!>fb{RnC|{LMZ--p>FC8h>QjCY_%iKTCTBqj7oL_tioarn}4cDsy={Gal z*DxXdu8j1?3F(>pw`oGUC!>7!`&}V2=XcA5^7h$kRQCH+q-E?sQ_U>>ne7WrNVhY} zw@paT-2c9!?=`8rRc-EBfV8;0HZB3^0E>gpM#ggf)jP~=#_9;9#pgqW4~xt{$Q$!c{Z9lrg^YD@HZ>sQ>5)936q9BXD#Cj*h_55jZ*mM@QhVZUj!~D|~*t z#}a|m#ouYTiT2y?X0+3bIPI=)X8 zVkjUy0nO9`Ufy2Y<{lPd`VbolCpUZj!o%h{x8SBDZLv%|J^P!=dGX$m_%2}!LU=p%V>P)90=`>sVBt5bxsML~i;|ZzV=+rJ7L#8sPOyw3qF6{ zULh_nvF_A8$Cv0x)LG8Np9q9(ZZus47NWfZ&F1kt}42;1x* zC9$p{=F?;lvGM>z$dox`bGz72jD=ms!=)cj2l0SwuPHh_p1ANJN>rf@aLguK67tx1 zpwW+o!;h+jUSuOl4ul1X3vI@UE>M^jqf=w#7eh0oUYY^fd#0oFPIs`ikkRzZjc7wG zy6X`p1;DWi{d?UnfI59POC0+CNNPpTFvs;; z!*$GvfT+Sin^u7cRM^WfN$@EV_62vqP*st0oZU1XCsLTB5bZc5{I)$L z4|t8EVk6d~x+>DD!uqS30`<$w0{R?hxt{cvN3V1`t7&6#{F%b091ZotLAb{jFhb+B zg6B-uYzxPk@XK;C$R7eRLi`ec8dt6KjI#QdSw3kMvu%(`N=u{Mj1N zWupyFx|tdZ#4-hqGlj0{P}d}EHqR0P4Hs3GSR4?VWg$v78tVg{^yA8@-&t+73a_x2 zd4yM>1*s-EwIXD(>4C#G9+sn=&0P|Latuuu12dR510D1DJ&>YdrF5Le?qN@$t+tH8 zddW6n`Gtr63C>bu+m6|)-pDs0}+^GRgRbn2gjGJbrB{-!_Vam=iq&xj| z5~f0okz4Onvb%X8C+)1X&+#||Y$A{`)b8BM$eqr?>~w0yPR#!>`ExEg0VmXJrDEh1 zkEH@`q!ava&H*VmUk{Hs2jrMyhnbn}!VEB-7J?9vm6}dUc~C*N%W9SBrpv)_1CXv1 zl|@qJtnn<;mtzjtnC{NtD+MObf%N5?TI=LHP0cY?zn!|iL;ht-8FtNSi!EcT5TSH8 z%X<&=Sop{Bw&72W1blSqPBGC;MP&_Uy86tb$m|qw>P67TADty>lM9J9LPxZ$*yQ<( z&Kh6rMckwmn~k^ehqaWOA`6hE{AP(sKXTb}gLC3_@R;H*9dSPnVAz>pL5}bY3C+2w zkXfzwD@}3Q3MlqnW{TNMO>xp< zQyjn06k?!FT=~@5#ZP;>#7KwC?qJ^%v95iY^j8l^n|4_?>|nTsMm%U}?j{(1d5#8L z9Q!$B%7RM`io&RjV_rzwY0J#w*oE0IZ3E`6KV1Q2NsA>DWu+xnP-22jnwUwWNiQTn zCvDs;bL{s`)*xhRb&ScRjkRQFlPxdnS}qLO^OM&7U=K}NgFzVW%&@fu!5(|LI5_|W zX_{%8V=f8tl?O8h*QqKqi)Y_5VZc-#YNZU0IBn0t79lJy!dwl)(k=*^$X24#hK}W8 ze$&AvqL2pqGK*$qEeODfQ;RLF`Z;?bD?2KnowOHH!$}D=)F_3f%^uT=CG~_fe z@UVx2R!M_{%;q%8$zOu}#k9XfJCcg=KQy@%Ljwy@P7|WiNYlhj#VB8SH)NrPviYdP z8RdJ@qgjMnPA;Mp#{wmd3@Uc|*ayh+BiC`$+f&1Hi`;8^SyY1)CWfxI)m}mqe=?%P z@k5|v0S;Y5rR?-eawkaJQyCp~0u)q=veQ^U4EkkGM|W6|$%9O_Fh+NzTF0v_MDFHE ztCV?AUlDRtPm`^Efji=N&oVl7%N0o1JsWjj<-u7lhrw;_BFmg(J zT;n-ga_5wm_QrFz=FTZC?~UgS<<2S1SP{_<(Xu_OH7plX$fIWT_4aSw$mtrtj)4>(a zzIql`w4OjB#38!YF_MZi5CSlCBMNBNk&~B82-k0}-JEn-zhov@{idZ-ISXY3Of?I? zTqb9s$g@~fX)DsPP=+}t^8`&SV`gBPDCJT*OUX%K*!2_H*4LfVkEwFens z^Gjyox*p}kMl(IQJ@-Ws?bbj`rK~q)0o5Hpj=C3lt6xT5X~&hvg&ZdA7w#Hl(2=2% z=4a6aHCZMWFj2AjmMV>6ex%f)+FKwRHY&5qI=da&3MpRhSXV3}eTb~dRW@DJKLFXO zR-;f6g3Wb9E4dT7i`4$RHfks9hOCc5S>3Z}FYUl#_sNm0?Vq&1>};X_CChLkZsi{wR6$^xY`aw&2Ei^rSsev5{1+2vy)T6Ke+ zN%#zGZ{nIHo2BhvCZ?IlRm=&?34miTl{0d`{sKx%8{e|Se#eM+%A}-RosN*%S>)Bs?)?Im7P%^< zmkkV(air{6zpzTE***QsX~);O|43g+qMqu5^7J{GST&n3w>X%-o*+)%2OY)H5y%{Y z_Wjo1@Bc>RZ#ur(^`-tH?eq5A2j5J-8U3X8$&tbMVDIZguLWKaFLgXWHef!}@s##d z_{js0?|Urv=)s4QiG%ki?;pG`dXIK@;*PPsq1%G-=q>S^My`)vAGtQXdvs@D=Rj|? zM{M1vZQxmXyJ$zKWpr?kp*M(l5<8+ z4xK!5QtZUwiP{N+$0uiW9Gje;44Ew>&ApAGMy+mtb+Rg2l?(>Uhf79^gm)0n3l4?9 z^t%Uf|6g~G(z|^t#7{<+$_OvkuO+th7JSEtfd9LG@_PpPe~QTO7n46IA^)Y6{MRz_ zhvnpf067{Y|E+@jQ6>4~D)Qf}$)D7aKdmMIqmKMpJ^Awn@;@8N|7s$C(M|Nc=_&{CxrFcH<8oM*Xpn{F9gbvyc3XpM2LK4;7K`6_bZy zTu%5rP$7kYRz~WuY9jmv0n!7d#ll}$L3-t-o3Dy~Ka5WazfnUL)sn@$9Q2pelcl`s z^OrS}<*?Z&{DEdN*g{r7OT6$`nq*aotZpM~gqiM#r&dG2U#FAx1!RMVY%C<3ykxVF zZ1Iz=JPrBHA~IA=wv~|6O3CSEtZpUSs-aRFE?($>XcY6ROEsHROr4NWTb>#SV}G`BNvyGO9JH5AbCy&xvY|0UPZ2`CeN)QSMrL+zlvA*{?+y5d3=E4 z?`R~WO(e`mgKJvIwXNg@d{W@QFa)~YxTuX$7wcW%r3K_=9`f=+@(M3`rH}0NlU)WG zE$g3;KYpTdC)#TP1a$7CAy^idu zCwm*n9gXD9CbF-Y+|@$vZUx;AT+0VK{_8^I^=;%0!Uk{D$eVQX<^u8-4|!`LX?w}I zkKE%YZ!^ffd>Z4wy_meCguJtyyoZm${PzaQ`zpx$E6E3{$Oo&*{u(k-OFmRbK3q>e z(m+1iNPegZbesNIGov1FA)ja^pESv*Lgdq0Klovte5QbWmRAt|fkHCrC7<(=&-=+2 z4D!Vy@}*+(SOxjVm5{$EC4X5){;Hfj7$kpPLH?$a{B0Ha zyK3_HHK5ypKh!enk9Fjq>d8Mhkbh|;-)$lfHIwhPkcV4AU!gD=(8NJd*T@2$^c0YV z9@1M#`n;syM;d;z$RLZ0$f=xjSXZ|BiYhD@?8L{1Zd6*x6$xGp$kS@c z)9c7H>d7-T6Ff^N&n_S>4;d*W7kbG>K60_2Tw;(*i^y||$z>(v@=|g|8F_9wxiUbm z3X-cU$nz@6jw&)*O`cyvuBj#0){z&~lNUCCZZ|G!WYon?on@>Y|yMGqL) z$UQoFTLHP(L*8CU-r*(h^pSV@$-52mo+9$zV)DKc^8Qltfim*Ja&eeGknc2-pKl_+&`b`ski$o2EAxC&Uh@}XQ}}r? z@CEA&2R?6q-u(Q~J6-Q+?<7AL`P}Gd+6Fbj(<>BQ6Fr$?UZeJc3W;FHlO z$DT+$5q@Ii@!rRSj}JZ;eQfMQi4TQ8H1cTgqrpc9ABjF_iP8Re zf2e=>!PtY^gUJUX4~*U)zdv;U@O`oSwEL3xM(!QGCw@=pp5eP=cWZYi?~2?tdS~Fy z!8@XNjNP8NJ$(Df-rl{zy@R(!ZyVc_*c09}67P)%yp<-t{vSS-yPaLyeqa#+m-B#^o{O} z?+oo6-Vxm~)|==J_m1@R_5^zdw@0_z+d|uhx5l<=Ta#NNTSl*mUlY1!`0Ciz+SSR; zk-nD<-yAbFN)}eJI&x@Qlx;nl(w0d||Y?ZbuxiYeH z^xXKlp>u~<#8&h#4=*2C*1IgYZ19}uIb%x`OT$ZXce^CGWN>kG@z|ooqVS@Tg}n=d z3kM_7$e5L|!q&*yy=Mo{9z5&7nej72XAYkcJ3~7od3xmZ(bM9mg-#njHFm0YYH~qj z!RRURQ$nW<&yUU5<|pSx=8evc&kfBTo)ep+%}LJQAMOnY!-MV7_OX)_Cx>zO+ZwNIE z*B`7))P?ItYI|#gwSzU$nz8Ccb+~$@s<$dwHCP#~9IHrFgeyjZy}@8`Fc1lhmdDFO z<-=vMGOa9G8Y%5536=~NM~lab5=G&n5u?`#8iW3*f6SNgg?%I5UT@GlSQsrF^CUcB z&qzUUL9k#@kLqJuLJMmnIK;c2{i=A}V~M%=QkhQL{}aEL{*>;A8|5bj@@p^|?E(rC zkfMo~5uu48uvGdRBzNI+wGB{`oaO8?8|uJ?qgJzX{Z*Sfw{&mFRJ7cO`FeGxQD!`c%v!)lbz1^txlzzM1h5=aicH{OP>$_9xV%Kf%Gf_)=fcNAO=??If$gGK*L9d{{STfff z^V-zPy>KnNIk9`U<&m{l%KDy^MSqnb9a&r1X4Rp4u&75_TeolMrat(-?)81yLhVC) za|m@O^S?mEiGnmF8zr~mV5Nzt?%KTm8qVAulXUow9D>~r{~E$( z2-1*jl$>IRFIY`WJ)P$+xda`K%sYkSBM(*k(4BeY{zl3r4MEmO=8{WmL{;MhO*?ZK z<9Qh5v`BIIo*W|G$-5DspK0QGuu{-}jAS1)wq7%dLf}gKIB}fl+j-6AP7E|x$kZ{@ z7uzXE8|y^p=B-=1H<%hKOCLh_=4r(~*@`F*VXvS+AnEMsiEEUj;290z8nvZ+8JbVlP-I=r5IYmZmLixaw@fhHVkiv8r?BqQ#xtw{`E>k=ecb^GLf>O8W%p z74(-&=8{%q2VuFwm9}wX_5mvnKafY>=cT+NOmr6SF)~P+Cf4p}KS9b2i5|P!r z_a4lW=1MQZ2y$0ZLbYV2;^);vpD<+}MWkI|`|!gdsO8?Zz+`#%G}fOb#VzAb)Jmk| zlMK)+=&zE@HHOa0mm0&}>$h)Z&n6CJB9G9J6nYF;Dd=yN%yo2>+945gjt*C3p5x-7 zJo0Bq`Ex<9pubv@b~1PYljZDy4TF~g9qrt`VMFKc?OXa{o4O~Sx8Hj>ORC!nXNT5F z87D{{tN1r!hi=81Aa~lhXgosZ!Lc#6b@P_%9d>5y*hjLYxkcR_dj`@qaV1zN=nqOd zJ9ej=+1=WuJiqYZfbopZp6%C8b~rwoN8(N?k*8X(pubWwmqh2fM3p$%A^D*^GI`Kw zf|I;L(BC9UV>CzB(L1-Z`?|gj6E%@3%d36(u^hr3l`onU<}sDc_s4rcdzm`Z`VABRp6d2RIV9FX4rO&gR*htdWVK``Zg|&C zX4poqZ=D;~ZR*^C?)K~o&o|$_!mocA`u|#g;nRnp|8LO`eEN@}_ixkpefn=!`1JVk zKE3kiUj4(HeR{Lu*I&8Vr!Tz9tN+taz4`_pbpHLstKVMZ(+_w1_22xfSC5|r`+@VI zJMea&{uJ#0P1_6GfNN0ZOJ4mSX8ZKZ7W(v2=>EHK(69fi?bG`Py!dSc>0^57U31Sx*umsh1Yx@8kmBltp=7`KeO zghu2DE|w!me?XAz3{CiDIlIKBX__6~vD~BgVwOO+0nX@E%IfPRYZU+c9le*1D5X)> z9FlBR{JBRD&*)Ou^v7om-^*EY+yQZiZ>b!<<#PDw4+=8Z1avO`(i4zppb4|@l`M&F z3!L$*lJ(b1)++w@JAS+%pmXPVrj#aGb4apP@#h}D$?u6?&648Cc$2DsI#iESArF%SXaVx;qJt(;nm&;|{kSvqz#PY-E5?Rjn3NQXTd5 z;E+|4xeWjEtyDlP$8-EODrI8C(uI*fV zs#K+x>fvYeh@(#LMobloBWonzhq#5O&Og-}sjK?e&^6bkON~4ll8-Hi`^#A&c zSHJTzuU_^PYy&*$)x&rW@O9Y!yV&sQ2k!FeSK;s1n|%6>*ZOo1{vN#0r_bEz)j#)b zuYO^-S3kJHtKTx+r`PQD>igEi9$=+U|LzX2zGIzNKNR)pcSn4>Kj_!*F#URAz%Q== z7r(vyv#;X*{|A>k&74gCUq%PA&I1`~sbR8Yq^%^S5*TBRN87HK(*sWG_o2tpR7Rh4 zGTF&9nRMMwp<{RAHh3oo+{10IHvC zTiA@TCcULbmeCTo!ikS`#!H3`OI$_hv8^pr)g&yqAd$q3f?S)0GaDasZP&^40R({h)ObPZwJF2lnphMVJszMVAsr)lg z9bFs#_L!#J9Rdp$^sJy!*bN$M(+2R*aHZswCKPOhdR(c3gH$$VWpM{L@}pKLAy~{4x)T=Y?~}nfUk;W z1ytC@bY#Hys_;5)+~>x8@GS-WKkMY4P?G zUjsHPSSS-Qi7@*yk&xhwgC*mq<7mKihSt1PHg1+#GJw;8Q@aII)}10YJi{Jbe-%% zz-^w1Eb;`3Om3XK36N!lj@8m+Nn8HO9I`Ez2Qs)av1-#vhY#m)yIN{6WB|^zWe)h9 zp>v2J%Z)p8+&jUi=1ey+Em#iLgfiLnD;YG!&pwO?&2jIMeCaMAlbw+fjfYg9at2nSO~s$~rXwv50;JkblG0H`urQs*~#%ootiz z0gg0>Zk)O`Qvu}g*qK9Bh$O0p8+VozpiCGw(a9EYmhtg2llwf@bX#}|0vL9GK(mYj zOZRkDEar}m;I$3rFMi>KAuYn4fW^yK2(3+ZMtJ&hjbm>xkvXwPEL@t}mlmq3vuv~& z!;MAWPK_?Au`t1^aN#PQyoSZfZ2L8n&(8%riaeSbkscw;>CzL7SY5)T>Q(D5&MH(S z#K4LUsC6}Q?PVi$*NmC)*Hz%U7J8H`^}_S3dBF)uCeCjtU@o$4VOnC32;66)z#KLf zQ>GI_bOBDIM)>0mYd@0b4;;ui79RvJ_|dnRxI0G_I(}wazB5;$Ba@f zx9m9Xc8bvrJa5NqpMz*OU$2?aTgL}~9rz@iGtY*m8a~6_r{S|5eBE+D!($)Rh|Fyq zh<=|qM&PrL9-Z$K@K{9`C(u^beqF%e)n+l^<#V+w#6ho^D@3p8_lt*xSRncf@JvOV zE`|!knL?Z;4i;dCiU^P4MLd;vc*Ig6&JmW5CqH6^*yjx6ih8)7C_Z49?^6Z;^`Njk+ysJy7dy#<>e>vljqB49ANqd+{yPyhQ3aUoQY z3p|B;Qs5xjUxYhl@rKxEh))Rdf-nnd)cj>JR89-vuZn#|;tnA`Bn}jb*D<+8pqMs_ ztF-n~+LwM)?Dva*5#l?-Dy8k|&x!rT0?&LN;63fIfZ_1=67gjrz9PCx#EY;TCIaQ+ z8$$f87%CBsn)s$TSi&jr8DU~Jq})FXSTMCqX;v2pVY&DL_P=(Z6wloF3xP5kr8PCP zO#DcQAB&DM@e=`?wRp_;Cn0_&2KfB(s5?3WM@Qi32pk=Oqa$#11dfit(GfU00!K&S z=m;Dgf&b+Zz^#~cKU()<_!&=^xZr$6pn0xnOe~WT)Y`VhcGEhb2U#O@f-2h#4?$IJ zhL514HiLTF4611}sHM#)A*iFxpo%tw8rlphXfvpv&7gWVgWA~)DrYmOo6VqVHiMek z3@Tpk`2innCqx2DPUdRGwy( z0_ojQrUs~0&7e{>gF4j=s#G(mQO%$#HG`Ve3@TDHs6ox30yTsB(+sLlGpIJrpw={l zO4AIJ2oYL8pc4gzhoH7Jg9_3N>O?cB2F;-UGlS~S3~E0!sQk>J?lXg`&kSllGpO>+ zpsq86s?H3mI5Vi>%%FlZgZj-3sy8!2L>n=U&;|f%HZ!Q$%%EN~gKEtTYBe)_1a*`d z)G}sJU6@foP&JrA&0q!77dL9Jj0m4X@631(0wm=OTdgG%*a2DO73R1RiP zH<&@yUeP9OFff>{WW>6WJL0w=5Re>4Q1ZJ27)qoiqp%c^rmX<|T zU>g+P8vdf^x zE`tiY4C?4IsG`fDRxX1|xeV&$GN_Wvphhl(3b_pG<1(m@%b+$cgUYxJ>f%bblPb9k zYUDDgkjtPxE`#d03~J*tsD;a*5-x)}xD2Y`GN^&epaL#~`nL?K-!eo8pb^x)WfTz9 zyoFT`pvEnO3b(Mz0aUkzRSuxCErYtYu)qP-v4sT=poT4j3bxYiq@FD-bO5z%8C0@` zg$|%TEi7*UHE3Z`14Iv?5jsKTSq61y8C0ERP;-_+#aRaRW*JnQWl(FDL8Vy+b!Hh< znPpI8mO(vN2Gv{{_)qm!2DMk=7ze1k%Ao2h!%I+c6^?d*YO4(Dt1_sr%AmF?gUYH5 z>ZihS4^TT5j(dPgsSIkP!f_8!{}c{+fZC^U$OF_ag+m?)5p9GR0yIJg(&JRX7!OfM zcnKfjCk C?-mXQlg9~Cjvx}s30ndDx#XGA!>;_qMm3V8i^*NnP?$e36lsBZ9ux6 z(-^jqLQd0s)-t+mZ&4@i3XyPXeD$gA~y;M4^c>X z2_Hc<<%U622bKu`DK#J#2B3}zF>+BGy?Q&mOFiVWB62nL-22ZDkZUW+i>g3_8t?rZ zXh_Asg$7a#S`0C01q7#4fJR1eIt6Is1gBG=lqe&DfdBdmdMk+SzGYEao zAT&9H2g*SsNbip-=&hm`TAM-WYX*N_&*(;af6+v53%v(h=@kdz{f$ok&O`peOa94E z{-uaK-SEBj2s1w~lB4@G)5<{Y^wOF%9tJfCq~W zva$%oK@F4;r9>s*Z?2-Zny4Y_7}-`&ZzH|OG|}5kv=HfS$EUSV555_DQ+sppQ_)Xp z(5DxJe(}Li#6A)H#PA!jH?%jB(5R;k4(^NW8+$$ZdgS%7k0+&0z2wIt9~=E>{G;KI zj=UCsE%e&(tFc#uuMU1B`jN3$60d}zS1<8$8h$bMqV{6)g~$tI&nKRb zJU{we;<@m1Bgx(*HS6^b1P2D6jXpc}OyZgFGb104e>nW%QE1nTJU#YQ@~J2^n-4x2 zdouXs@Ds5of=>)X!(Qm|k;i%;3q3aSp*VExjXs)qH2mo3BZ)^MkBmK>d^qy(*h9&O zqR_NAn208{#9)7{KiEGgb?ps45PLv-VDSFf{XuBk>%A{@-^ji3d&4Pxdn0%E-W|Mq z@UG}xV|OO*jNCbTN8*l%)VUYAeQa-XZ*;E)t$VTCg0~It>D?28-o1D{93Qn4b_AOD zlD9^0)ovZUB?jGl!#DTd9J+brCUMi?jjdqe03>R%6EKYCr_y2y27*Cwxx zUaMU@xI4Bx2pxRAyF$B0`r>_IXyHrjjO-lSk%S&T8(R2AdlEg7p0Vvo=;7104{nQX z3qluP@7B=PkuC8pVQAw^Tobuw?CRvzQRw3v+#K5++&p|$FEsLvY!aIWH^w#wHx76A zc89u0HpDlCH;k@NKqueWy5zd(It_aHVzFRsxU07-1kHT$&T!}Gm5D1O(9M^;B6@{= zdHC|t%MzDGF6+4>1WkSMba?F2z}P(AwAA5$YH@FMeJadixTqBdf<&C09kE zxo>b~Y-Moe@VULv-8ZsAtQcG#TOM3K4DEfPWh3Xr&k3J13jKYNrDIEyOQK6OXz+_I z4lW*E)VnAI9e(kJ;f14-L?i+&en~58*=L8(9z82@R^+U)Gm~fTKO=rd_>9rh6VT%~ zc3SeZ=xN$%gV5v`Jau?M?}E^R5$N&@pE5c>F+VbYY+iC+be=soJa=?XVoqev*zDx& z=xlBFU^oVie#7m(?VU*y=aW0J>2q1|tAdTe@d`tY<~==U3Gi?@Z_Mnef` z_!~2mX4KToLFo7kwhp)SwuGQ(Ki(W}9&JiAMViJMla0|vt#Pm+)(~v4>U-)!(DN6s z4cCs=Bx)ki^p~uTR%_LRRWa!L8?NlF3{{R)#G&nPG?)lRf@6VXAR5pDgXOVu=<6@* zg}IB7(s*gObhIQ<5-I5^4i%3S#i8|Y)JPZ+W6Ym~-apMh=!^M+zF}zo3wcKhS!&>HHDIZMh#FX^1{SG-#cE)Q8d$0Z&QSx))WC8zutE)-s|Hr8fmLc?wHi22 z4Rol1s2Vt54XjZEYt_I7YT!aOaFH6gSPfjF1};?tm#Klv)xZ^M;7T>nsRp{#Kuis+ zQv>VOzy>wYtp+x#flX@QDmAcK4P31Tu2BP9)PM-ARu*D4psRrbHQ-SLg=)a727GG3 zuLcY?P^1Qm)j)|FC{+VxYM@*V1k^xK4OFOsN;OcW2CCISjT)#`19fVkUJW#;fkrjZ zqz0PRK#Lk^RRg9P2&sWKH84#LOjiTPsDWeEz;S9|h8mcu298$)C#Zp0YT!gQaFQB0 zSq-$Sfv_5wtp?_(fw^j6o*J0122N1}3)H}=YTz_AaJm{eLk*m%2F_9gXR85A4Mfzy zLN%~R4J=jzOVq$pHE@m^Sf&P+tAQ12;9NDZQVpz91FO}5dr5Y5dvpYjj=<3o_G_58M&B z!@9j^@4#*Q_lQ01@h-dn)}dPt-fZ67ag%-Hz8el)AGqGSuIJi;-TQZmUG05cJNtJG z^&adodpckzVc*sRTLN3GYkIC8*u4KLaaH@Ku8sZOLmLjRH`jNpvt#?Z4s-@Ott)%3 z7`S}@W#Y2-OS>-Vzj)}PgBO|?cHnu*zBLEV51emBdpZWr+rL_@ZeP{4vj5zn6$h7_ z%R83Y=j>a0U`b$!wYX=|z{33z5ox!&&h9^J=*)v>m}hjHZlAXA)B_6w3#?Om<`2x< zKUd6cpVKwFKRnca@MQDkj+5*Y_su$RLf{1J_@0>qGxkGOayx7c^iLm}cCgKC>j>HA zzSaXRfflQ|r)i*ZKh#yX*LT(R*ACSjtTwAVs_e>r6$gTWpcUvTA1K=or3&pOUB&%H zL&ibB>F@B_-hG7!JOPhY(4!A%`!Rvy4}EvtT^>tZVL7v@)q`*2hw$|_TrFWAzPf;0 zs;O|?##GqA4{P}28h$7clvMrOpf7{k>a(0pRj=h@^?7TTFTDi1j}~`!tX+-o3J`h$||@rwbfpwDtP^qt_} zq6pMHqhqViTfBrhoMAk)HA|E$+8xFYWQEdZut2g@GM6Z-uqaE5I&bOHGtKsKVTZTn z5f(+>a{MTP!p8l%gi+soX2H+ml&YX|O?)WJhZf0=+d2DLnVcWua9@@vSF~UFkf{(q{o(u|{gTC!eNgqVV-k%! z9-G<>pksV%raH&NyYh&^kAN^Hq+c>1NuAV_X~#5dPWg?o4c(o6o40mn$=aPq7Dp&3 z7YM&(KynLYQI%GfvmIGmVi>+H+qd^*$+|X=tS(ds<@2Cl5*lgYr#7vfP=J%=>_XeX z-rWJE-r+1c*X5BDLsjMcsTAapMUs@WL6`_bYqqz zw~Z&u<4Kc8PpLefbjcD)&W6rOPLjp83Hi$5w6kx=uJwJUdW4x8Wu(^Nn{tRRNFB}_ zkyR5{gHW^%HcED)o7*N4N3I(Kc`JlXMlbCxVuwtGBZh5GBI-lL#oog@`rZ^Si0 zmb3j*y_>siC|y?iCl23|M<%Z`X2_oSCCen&fs?7B^~vE~w|N_k2*l*h+`0LN?(G|A zDB@?TGxpXj@op#Fy~`mjlf$b^mP$HuUfno3o3Wqmz zO2v#Y0Md6o3cG8=o-CnmBizZg16j+l5^!xGvBrRoT2wYA!`U9W3SlqrlzVxux=(M* zlH`_j_bIysTL_>o3BASeJ4YWVCVIRIdM?2g-elgSoy3)0F3StMB|$;*Q+lbp5-oypY=BN-DU-IYhut&ma5-w8t!St7~1m}@8L zP=P#YZ`*$D1UYwS$w5`pxs#ZCr&8D;ep(M!NamWvLD&$R#YvpGqm&7pnV?J>*a^zf zlp0JGPM6!Ic+xBVrINWOuixfvBE?Ovm;By5((aJbNH2dDjlm}KOWWDEy~kD6I>d{nw2? z{px%D`gcw<^sTRY^*>(X({ICH0c-&5{i9D0Ec59ve9fyL^9P^)*_XU}6n{T`(W~Ej zyH~ILidTR6%U<2;^XlLJgjeq_fSrI}d-c1&<<-rHy!t1Hz4|#LUi}CAy!y5S(EpFW zC8O0l@5cN88y2GRt~;8pD>6bqL?TlN{KR}oCpv>qJpR-s)%Z$hNva#hWN08iD)KTh*rWR z+6dhO3J4ETNO%b!;U^5Dh$tpXh*F}AC?^6$kfWK!T zk!U4MB1E(i+5n&v1%!tvB)o)=@Dm16L=+PxL@7~5loJ6WNK_D&L={m@)DX2q1F*zS z9YD>DF^M)p+Xv`G0pTGE2`}Lz{DeUi5yeCaQA(5%J<&ik5=}%i(Mp5}VJbhV&=4?mqJZ!ag@l*z5e8926cZ&xDN#n06G5Vq zs3NL~8lsk{BkG9;qLFAKnhE|~%McyFBtO$ikEfRze8gYT&$SG_3k@m&((UvxrjYOw zKH{(F=UVA@9`R>e27j(){D1i~t#mv8ntrZz^!tB&8GrQq|D)gkAN~IS==cBs{qO$| zPU(Ap?SjFzv9-aq!)toigw~9lFW%?({_z#z6{E`&%OlIjmL-=(@xJ^0eebVXgJ;Li z4xT-HR_|G%vqsJoXAYhbJ0p0;@aes$hfW_kEq+?~w9!)&r$$a4Taa83U7#%(JSBEY z@RZ^Cz4Jr!N9M)nh3AdVP0WqV9h;M!6P;tv4$mG9C&H2NSbMTP+OD+^o*X+lc=GT` zy(fiE8aXk3V)(?-S&3PZSz{+8Pl%qNoiKQO?D*jE!!vtlhGve;h|dVm7(Fg=T;#a1 zW0S{5kJXMHJSKKb@R;H0z0*U}N2bN6g{O_SCE6lwW1(ay8qz|8X3Pwl!>zroq1KU> zcuTltv^minX&!4zHbtAXroqNoW3X|!p|>H_Fj60{57&>@CF&w|W3|cJXsuQ|SQD!W z)(ltoR)?xbs^V4Qs?o|sWu$VfB3Tiw&?*Llv0yMb9Ow;%0wd+|@^JZRS)wdbHddM} zjh1SqgC((&V99WC@Bh&E|0Vs~mfYj9#6L!ydl&Wnf0<1)3V49H97Ym1$F|@Z`G#!M z=J)4$G6Ge1crs0vNH$64dNLif(@&=P+;aPF*m>E!p*vHkefWWt(5BS=mb;mTr(As0 z6aa&gZVI;)x?VoSRbzz>Qz-bidE5G(C-K#V^UTLS{9qm-L1Ya;Or~?5`9QH@rn3w2 zqO*`=nIWS;kBkb`QjLdpnQk|pd3R4{XA%z+i^Ogk^MeT)MUXg@$RP+u?>!u`8c1l8 zES9X5vFaxX;_yRxMDop5y&UWk$vR02q~-7| z2a$Y;EDa>WIBNHf-LWk+qp2}p>OJ$rxdkGV)KZD*3|*Dj5oCpAu2<;JNfDN?CFg+r!$pNID2d4#l~_5ih)X1MovXg`rh#x&Gj4mG5ij;5MUlJ841;-S-&|9ZA& z9Mn(d5K$|u)nGY^Z^>qXMbcj*nd=!iOe5O6?nky%r$=&;t`$kkJZfQ zE1lF)eCVm1onnGUU8`cLWUb^3$y}YnJ22at`a3Xmwf(wz^JZmYym|Jar*kyVwZauf z^IEC+6^~)aM#)^w!}%4jzxkF!j(6wM^CPR4;O)!mQ&`p+68q4H^T?cytgV7HBJg-?23|iRr(AJTgy(oEAZrO4du}l39wAVwIe1l(}Lgz8MNtQ}BN#+t6uxnAV+fA5{lkd|fuH(<;k$O7hHAC4lU#*g` zs|)6qT8+z+v{V{c+_L>zt`tl*}cQA3Po-WjY^a zZO7|S^Gq`pm|-F~%iOd*w#A%@x>9X;?}e;3xNUOG0y5)d&V3InuP(+j;42LNgCxeu z{b|4V;s=tj32%C17+*PFiUen!XE)L!#Nn5+M7a6gH>+nM;uvVi=FTI7lDWQY^V$4J zH8pOT`%Jv|a+WApv@>2+vf_HlTE(Apylh&f#duK+TkRYJ@4a$FDNVBGHpy1SpL5J? zzV7FkWr(p4eI!c^TR`VdKns2g|2P53D#=_Ekj4zBs}pcG4uJ6)ID3ZaeAbXL|6a{% zg4?7c&p)RLCeC≦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

w$ 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 literal 0 HcmV?d00001 diff --git a/snake_tags/2.36/VCProj/bsr_trunk.suo.old b/snake_tags/2.36/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_tags/2.36/VCProj/bsr_trunk.vcproj b/snake_tags/2.36/VCProj/bsr_trunk.vcproj new file mode 100644 index 0000000..1a6531b --- /dev/null +++ b/snake_tags/2.36/VCProj/bsr_trunk.vcproj @@ -0,0 +1,594 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/snake_tags/2.36/VCProj/bsr_trunk.vcproj.NCL.N2232.user b/snake_tags/2.36/VCProj/bsr_trunk.vcproj.NCL.N2232.user new file mode 100644 index 0000000..257e4e7 --- /dev/null +++ b/snake_tags/2.36/VCProj/bsr_trunk.vcproj.NCL.N2232.user @@ -0,0 +1,65 @@ + + + + + + + + + + + diff --git a/snake_tags/2.36/VCProj/bsr_trunk.vcxproj b/snake_tags/2.36/VCProj/bsr_trunk.vcxproj new file mode 100644 index 0000000..a4fc5a6 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/VCProj/bsr_trunk.vcxproj.filters b/snake_tags/2.36/VCProj/bsr_trunk.vcxproj.filters new file mode 100644 index 0000000..d168232 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/VCProj/bsr_trunk.vcxproj.user b/snake_tags/2.36/VCProj/bsr_trunk.vcxproj.user new file mode 100644 index 0000000..695b5c7 --- /dev/null +++ b/snake_tags/2.36/VCProj/bsr_trunk.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/snake_tags/2.36/WDT.c b/snake_tags/2.36/WDT.c new file mode 100644 index 0000000..ed3daf3 --- /dev/null +++ b/snake_tags/2.36/WDT.c @@ -0,0 +1,12 @@ +/* ======================================================== + wdt + + $Id$ + ======================================================== */ +#include "incs_loader.h" + +/* + + gAwb_Ƀ}N̂݁B + +*/ diff --git a/snake_tags/2.36/WDT.h b/snake_tags/2.36/WDT.h new file mode 100644 index 0000000..2e28e9d --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/accero.c b/snake_tags/2.36/accero.c new file mode 100644 index 0000000..aa584ec --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/accero.h b/snake_tags/2.36/accero.h new file mode 100644 index 0000000..fbf80d6 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/adc.c b/snake_tags/2.36/adc.c new file mode 100644 index 0000000..94920c7 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/adc.h b/snake_tags/2.36/adc.h new file mode 100644 index 0000000..6f4ad04 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/batt_params.c b/snake_tags/2.36/batt_params.c new file mode 100644 index 0000000..13bdb83 --- /dev/null +++ b/snake_tags/2.36/batt_params.c @@ -0,0 +1,130 @@ +/* ======================================================== + eЃobe[p[^ + $Id: asdf$ + ======================================================== */ +#include "jhl_defs.h" + +#include "batt_params.h" + + +const bt_param_ bt_param[ /*_BT_PARAM_NUM_*/ ] = // drg񂷂̂ f~drp[^ +{ + // ctr //////////////////////////////////////////////// + // BT_PARAM_CTR_MAXELL + { + { + 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, + 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10, + 0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0, + 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10, + 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30, + 0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70, + 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0, + 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00 + }, + 2, // 2 = 19 bit mode + { 92, (u8)(-256* 0.79), (u8)(-256* 4.35) }, // @(u8)LXǧp[^̂܂܂̕ + 0xD800, // VXeƂĂ͗ǍDȓ + { 0xEA, 0xE8 } + }, + + // BT_PARAM_CTR_PANA + { + { + 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, + 0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10, + 0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50, + 0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00, + 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, + 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 + }, + 1, + { 171, (u8)(-256* 1.00), (u8)(-256* 2.60) }, // @(u8)LXǧp[^̂܂܂̕ + 0xDA20, // VXeƂĂ͗ǍDȓ + { 0x69, 0x67 }, + }, + + // SPFL /////////////////////////////////////////////// + // BT_PARAM_SPFL_MAXELL + { + { + 0xA1, 0x20, 0xB7, 0x50, 0xB9, 0xD0, 0xBB, 0x00, + 0xBC, 0x30, 0xBC, 0x60, 0xBC, 0xA0, 0xBD, 0x10, + 0xBD, 0xC0, 0xBE, 0x70, 0xBF, 0xD0, 0xC2, 0xA0, + 0xC4, 0x00, 0xC8, 0x50, 0xCC, 0x80, 0xD0, 0xB0, + 0x01, 0xA0, 0x25, 0x10, 0x18, 0xB0, 0x17, 0xC0, + 0x95, 0x20, 0x6F, 0xE0, 0x7C, 0x60, 0x35, 0x10, + 0x35, 0x00, 0x37, 0xF0, 0x16, 0xF0, 0x1C, 0xA0, + 0x17, 0x30, 0x11, 0xD0, 0x11, 0xF0, 0x11, 0xF0 + }, + 2, + { 94, (-256* 0.35), (-256* 3.85) }, + 0xDAB0, + { 0xF5, 0xF3 } + }, + + // BT_PARAM_SPFL_PANA + { + { + 0x9C, 0xF0, 0xAD, 0x50, 0xAF, 0xB0, 0xB3, 0x00, + 0xB3, 0xE0, 0XB5, 0x60, 0XB6, 0x70, 0xB7, 0xA0, + 0xBA, 0x00, 0xBC, 0x00, 0xBE, 0x90, 0xC1, 0x60, + 0xC4, 0x00, 0xC7, 0x00, 0xCC, 0xA0, 0xD0, 0xA0, + 0x02, 0x00, 0x19, 0x10, 0x12, 0x00, 0x48, 0x10, + 0x25, 0x10, 0x41, 0xF0, 0x2F, 0xA0, 0x13, 0xF0, + 0x1C, 0xD0, 0x10, 0xD0, 0x0F, 0xA0, 0x11, 0x00, + 0x10, 0xE0, 0x0C, 0x10, 0x0C, 0x00, 0x0C, 0x00 + }, + 2, + { 113, (-256* 0.30), (-256* 2.25) }, + 0xDAA0, + { 0xE7, 0xE5 }, + }, + + // SNAKE ///////////////////////////////////////////// + // BT_PARAM_SNAKE_MAXELL + { + { + 0x9D, 0x80, 0xB7, 0xB0, 0xB8, 0xA0, 0xB9, 0xA0, + 0xBB, 0x40, 0xBC, 0x50, 0xBC, 0xA0, 0xBD, 0x00, + 0xBD, 0x90, 0xBF, 0x30, 0xC0, 0xE0, 0xC3, 0x30, + 0xC5, 0x40, 0xC7, 0x50, 0xCD, 0x40, 0xD0, 0xA0, + 0x01, 0x90, 0x35, 0x10, 0x2F, 0x30, 0x11, 0x00, + 0x29, 0x40, 0x88, 0x50, 0x71, 0xA0, 0x5F, 0xE0, + 0x32, 0xD0, 0x1C, 0xF0, 0x14, 0xF0, 0x1A, 0x80, + 0x1A, 0x80, 0x11, 0x10, 0x12, 0x00, 0x12, 0x00 + }, + 2, + { 86, (-256* 0.6), (-256* 3.675) }, // rcomp, r-hot, r-cold + 0xDAA0, // ocv + { 0xF5, 0xF3 } // compare max, min + }, + + // bt_PARAM_SNAKE_PANA 3ŁH130909XV + { + { + 0x9D, 0xD0, 0xA6, 0x20, 0xAC, 0xE0, 0xAE, 0x20, + 0xB0, 0x40, 0xB2, 0x10, 0xB3, 0xC0, 0xB5, 0x00, + 0xB6, 0x70, 0xB7, 0xD0, 0xB9, 0x20, 0xBC, 0x00, + 0xBE, 0xD0, 0xC4, 0x70, 0xCA, 0x40, 0xD0, 0xA0, + 0x02, 0x00, 0x02, 0x00, 0x24, 0x00, 0x14, 0x00, + 0x16, 0x00, 0x1A, 0x00, 0x38, 0xC0, 0x2D, 0xE0, + 0x29, 0xC0, 0x27, 0xE0, 0x0F, 0xE0, 0x11, 0xE0, + 0x0F, 0xE0, 0x0F, 0x40, 0x0C, 0x00, 0x0C, 0x00 + }, + 2, // 2:19bit 1:18bit + { 95, (-256* 0.85), (-256* 1.9) }, + 55968, + { 230, 228 }, + } + + + // FLOWER ///////////////////////////////////////////// + // BCTR̃obe[gB + + // CLOSER ///////////////////////////////////////////// + // BSPFL̃obe[gB +}; + diff --git a/snake_tags/2.36/batt_params.h b/snake_tags/2.36/batt_params.h new file mode 100644 index 0000000..232a2d1 --- /dev/null +++ b/snake_tags/2.36/batt_params.h @@ -0,0 +1,62 @@ +#ifndef _bt_params_h_ +#define _bt_params_h_ + +/* + $Id: asdf$ +*/ + +#include "jhl_defs.h" +/* + dr CTR | SPFL | YBS + 0 ID = 0 maxell + 120 1 + 360 2 + 750 @ 3 + 1.3k@ 4 + 2.7k 5 pana + 8.2k@ 6 +*/ + + +#define BATT_PARAM_SIZE 64 + + + +typedef enum +{ + BT_PARAM_CTR_MAXELL = 0, + BT_PARAM_CTR_PANA, + BT_PARAM_SPFL_MAXELL, + BT_PARAM_SPFL_PANA, + BT_PARAM_SNAKE_MAXELL, + BT_PARAM_SNAKE_PANA, + BT_PARAM_FLOWER_MAXELL, + BT_PARAM_FLOWER_PANA, + BT_PARAM_CLOSER_MAXELL, + BT_PARAM_CLOSER_PANA, + _BT_PARAM_NUM_ +} BT_TYPE; + +typedef struct +{ + u8 rcomp; + s16 up,down; +} rcomp_; + +typedef struct +{ + u8 hi; + u8 low; +} verify_; + +typedef struct +{ + u8 mg_param[BATT_PARAM_SIZE]; + u8 v_scale; + rcomp_ rcomp; + u16 ocv; + verify_ verify; +} bt_param_; + + +#endif diff --git a/snake_tags/2.36/bsr.hex b/snake_tags/2.36/bsr.hex new file mode 100644 index 0000000..d3efdbb --- /dev/null +++ b/snake_tags/2.36/bsr.hex @@ -0,0 +1,1020 @@ +:02000000680D89 +:04001000A548A74810 +:02001C00534A45 +:02002400FA4A96 +:02002A00454B44 +:08003400724C154C6E4CB34EEA +:02004A00A948C3 +:02005A00E34879 +:02006200714EDD +:06008000064D3F4D894DC5 +:0400C0007EFBFF04C0 +:0A00C4001B339499E033F240BFAA09 +:1000CE00C7C1FBF8FFCEABACC736F00071F4C6610A +:1000DE00D8710006F98EA89C018C015C10D1DD0A46 +:1000EE007110A6FB710006F9EF0B8C015C80D161DB +:1000FE00E8710006F98F06F931030EF6B1BBF66111 +:10010E004900DD05618900EFF5FDFE01FD3101FDC0 +:10011E008901FD0F0AFD4609FD0D30FD342DEFA5B9 +:10012E00C0C6D7C7360000674C09DE3F318E04F6D5 +:10013E000FC1317B9EFDC411897267318E04F64F5B +:10014E0014896142DF03F6EF01E660610667318EC6 +:10015E00124900207267318E04F64F14896142DF16 +:10016E0003F6EF01E660610687EFBC40F84F3A6197 +:10017E00E88666D161E8FDB306C6D751065B0C3141 +:10018E001A9F08F94008F90161F8CF08F904D5085B +:10019E00F9DF06710009F9EF04710809F98F09F901 +:1001AE00310505CD3707EF03CD3705D908F9FDC465 +:1001BE00298F06F95CE39F06F951035B04318EE744 +:1001CE00240000DD1023DD0823DF0E712006F9D791 +:1001DE00713006F9D7714006F9D7717BFACEA010AF +:1001EE00CEA180E5F300000000CEA408F5AAFFD74B +:1001FE008F06F9310508CD0003CD030FEF08CD03AF +:10020E000EF690BFB401CD0408CD0508F521FFCE42 +:10021E0022E9CE23F8CE24F3CE25FACE26FCCE2725 +:10022E005FCE2EFCCF1105F8CF120511CF3500028F +:10023E00CF370019CF530006CBEEFEFFCE3831CEAE +:10024E003970CF38050A308700BF1801BF1A01BFB9 +:10025E001C01BF1E01D7D7C7F616FD9804717BFA95 +:10026E0031329708713297717AFAEF0C717AFAA7D8 +:10027E00F647DFE95203EF01F2C6D7C7C1C1FBF85B +:10028E00FF17A1C1E0C18C0A70C18C0270FDB102D2 +:10029E001006629D54D45461E8CC01FF8C0172109B +:1002AE0004C6D7C7C1FBF8FFFD6502D2DD045203B9 +:1002BE00EF698B70FDE503D2DD077133975202EFC4 +:1002CE005A8C0870FD0104FD4C048B6C0170FD010D +:1002DE0004300400BF2401301740BF1C013004005D +:1002EE00BF22018C0A91DF04F6BF2A01710BE2CE08 +:1002FE0044FF3182E202EFFAAC0C148E449961791C +:10030E000C61690A8C0AD1DFDA8B4CA461F8FD937B +:10031E0048FD7504710BE2713397F2C0C6D7C7C1A1 +:10032E00FBF8FFFD6502D2DD045203EF25710AE6EC +:10033E008B70FDE503D2DD077133975202EF138CFC +:10034E000870FD01048C0A70FD0104FD7504713303 +:10035E0097F2C0C6D7C7C1FBF8FFFD6502D2DD0418 +:10036E005203EF70710AE6710BE28B70FDE503D25A +:10037E00DD077133975202EF5B710BE23122974426 +:10038E00C73422FBAC0C1652048B99A5A792DFF949 +:10039E00C68B9D518C089D528C0A9D533184BD0293 +:1003AE00EFFA717ABDCEB144CBB422FB8C0A318EFA +:1003BE00BEB8CEBB48714BE1714BE5710ABD8C08DE +:1003CE009E44EF0F710BE68C089E448C0A9D50AC38 +:1003DE000CBD4EF2C0C6D7C716FD2404AF0401BF34 +:1003EE000C0117FD0104D2DD07FD75045202EF0169 +:1003FE00F2C6D7C716710AE6710BE2669E443182C9 +:10040E00E202EFFAF6420401DD09AF0401BF0C016E +:10041E00E2EF01F2C6D7AF2801085CFB08BF280146 +:10042E00FD6402AF28015CFBBF2801300400BF2A27 +:10043E0001301780BF1C01300400BF2201D7AF244A +:10044E0001086C0408BF2401AF28016C0F086C0B67 +:10045E0008BF2801FD6402AF2A01085CFB08BF2A11 +:10046E0001FD6402ED2404300400BF2401F6BF2A0E +:10047E0001300B0BBF2801FD6402300B0FBF2801AA +:10048E00FD6402300F0FBF2801D731449701D77199 +:10049E0032976A0E03713B25713B23E0FD220A71F0 +:1004AE0020F000FD6402F6BF26015024BF1401CBDC +:1004BE00440014300F0FBF2801712397710BE271A6 +:1004CE000AE6FD2404CE44FF3182E202EFFAFD7506 +:1004DE0004AF0401BF0C01713397714297D73134C9 +:1004EE009702EFFAFD4C04713A25713A235A0EFC2D +:1004FE007128F000714397D77140F0007178300287 +:10050E00713AE6713BE2713BEA713BEE5A06FCCF63 +:10051E0034024AE552FF711A52710A527148300282 +:10052E007130300271203002CF330209CF32020B0C +:10053E007130310271203102713BE6717030028EE2 +:10054E00265CFC9E2671603002D7717830027148AD +:10055E00F000D7C72008FBF8FFFDAE085014C150BD +:10056E0008FDE007C0CC07048C074C14DE0C8C078A +:10057E00318EFD4A0A615907EFEECC07048C074C09 +:10058E001461C8ED4F06CC06008C064C0461C8ED14 +:10059E002E06300AF9BC02F6BBCEABAC31B2D10995 +:1005AE00C73641057184C6DEF3F1C7364105718445 +:1005BE00C661DC9C05713BD1AC02148F400599716C +:1005CE00505005617902617900F0E1614900DD0961 +:1005DE00C73641057184C6DEC3F1C7364105718445 +:1005EE00C661DC0E059C055040C18C07318E31ADC5 +:1005FE00128C06318E318D03BDD831FFBDDADADAB9 +:10060E00ADD8FD160DC0D2DD0C5008C15014FDE062 +:10061E0007C0FDD30B8C05D1DF06615906ED97059A +:10062E008C07318EFD4E0AD2DD0C5008C15014FDE0 +:10063E00E007C0FDD30B8C05D1DF06615907ED8BAA +:10064E000571605005CC0400CC05008C054C09DE0C +:10065E002B8C05318E04F61FC1317B9EFDC4118992 +:10066E00728C05318E04F64F14896142DF03F6EF6A +:10067E0001E6600E049C04615905EFCF4100114064 +:10068E00F81F3A61E86159048C04D1DF08FDD40BE0 +:10069E00FDE60CEF0C5008C15014FDE007C0FDD371 +:1006AE000B1008C6D7C72004FBF8FF712B24CC0112 +:1006BE0000F6BC02AC02440900DE3EAC0204F60FAA +:1006CE00144100118972AC020C5014896142DF038F +:1006DE00F6EF01E6600E019C01AC02124900507269 +:1006EE00AC0204F67F14896142DF03F6EF01E66087 +:1006FE000E019C01617902EFBB40F67FFF61F8614C +:10070E0059018C01D161F8EDAC07CC0100717AFA78 +:10071E00FD9804711300711B20710303710205E033 +:10072E00C15003FDCA2BC05013FD220A500FC1E069 +:10073E00FDCA2BC0CEABAC6159018C0191DD068C8C +:10074E00014C03DF03E6EF01F66061FB7121048CBF +:10075E00014C0861F8CC010031320705A024FCEFF2 +:10076E0003F524FC4024FC11DC22F524FCF0C150DE +:10077E0003FDCA2BC0CE3708CBE4FFFFCBE6FFF755 +:10078E00CED4FFCF370008F5120561FDE6BC02F6A8 +:10079E00614902DD9F00000000617902EFF1FDAEBC +:1007AE0008D2DFFA5008C15014FDE007C0D2FDD3C5 +:1007BE000B1004C6D73184BD02EFFA717BBDCBE4BA +:1007CE00FFFFCBE6FFFFCBD4FFFF717ABED7717B65 +:1007DE00BED7C7C1200CFBF8FF8C0C318E31ADC1DA +:1007EE00317B9DD4C0BC068DD49C088C149C0B8C84 +:1007FE0014318E040C00128C0B318EBDD813FDA556 +:10080E000F61C8EDA908CEABACCC05068C0B318EB2 +:10081E00FD460AD2DD158C0B318EFD4A0A61690543 +:10082E008C05D1DFE7FDDC07E2EF71CC0A008C0A04 +:10083E004C04DE54F6BC02300AF9BBAC06148C082C +:10084E009EFD118972AB146299AC06A1BC0661794A +:10085E0000617902F0E1614902DFE05040C18C0B8A +:10086E00318E31AD128C0A318E318D03BDD831FFF0 +:10087E00BDDADADAADD8FD160DC0D2DD06FDDC0725 +:10088E00E2EF1961590AEFA68C0B318EFD4E0AD29A +:10089E00DD03E2EF0761590BEDFD07F2100EC6D72F +:1008AE00C7717B9D717BFAFDC307300AF9FDF90A0A +:1008BE00FD840AC6D7FDAE08FDD30BFDDC07F5ABF4 +:1008CE00FFF2D7C731049B067110B3FBEF0471180A +:1008DE00B3FB8FB3FB7B8E76D1DD5B8FB3FB9D8E2F +:1008EE004004F903DF22665C10D1DD1C8FB3FB5C84 +:1008FE0010D1DD0B5080C15011FD3D35C0EF0950B8 +:10090E0040C15011FD3D35C04004F903DD064004E1 +:10091E00F904DF22665C02D1DD1C8FB3FB5C02D1D1 +:10092E00DD0B5040C15010FD3D35C0EF095020C1C8 +:10093E005010FD3D35C0C6D7C7360000665C80D16D +:10094E00DD10675C80D1DF0571339AEF0B71329A3F +:10095E00EF0671040771319A665C40D1DD10675C59 +:10096E0040D1DF0571439AEF0B71429AEF06711475 +:10097E000571419A665C01D1DD10675C01D1DF051E +:10098E0071539AEF0B71529AEF0671340771519AA7 +:10099E00665C02D1DD10675C02D1DF0571639AEFF0 +:1009AE001D71629AEF184007F901DF087104027198 +:1009BE00619AEF0AC736100571C4C671619A665CFA +:1009CE0004D1DD10675C04D1DF0571739AEF0B71F2 +:1009DE00729AEF0671440771719A665C08D1DD1048 +:1009EE00675C08D1DF0571039BEF0B71029BEF066D +:1009FE0071140771019B665C10D161E8715AD1C602 +:100A0E00D7F5F6FBF5F8FBCFFEFBFFCFFAFBFFCFDA +:100A1E00FBFBFFD7C7C1C1FBF8FFCEABAC8C02D13D +:100A2E00DD12616902305C03BBF6614900DDEE61E7 +:080A3E008900EFF51004C6D792 +:100A46005208EF065203EF025206FEE600FE1B00B6 +:100A5600DC16089F03088F0408089F040862FE241A +:100A660000089F0408EEBF00EEBA00C1C514410E8F +:100A760011D9D0FF118FD1FF312E45C4C0D7F23125 +:100A8600A2C401E2D79DE261DD4C09DF12717BFA57 +:100A9600C18F06089F25FDC0CF060800EE2700314E +:100AA600F2FA04CF0608004C00DF05D50008DD1673 +:100AB60061DD717BFAD50608DD0ACDE31F61CD61E4 +:100AC600CDEE160061CDFED40061FFFE9A00FCF863 +:100AD600FF0EFEB20061CDFED5004C09DF0EC18FC0 +:100AE60006086F25FD9F0608C0EE0400CF06080025 +:100AF600F8E3D75200EF025202FE3700CF24FD0082 +:100B0600CF060800BF0408C716629F0008410011FF +:100B16008F1A209B4100118F1B209F0108C6510090 +:100B2600FE62FFEF025205CF060800C1510CFE0A15 +:100B360000C0D7C1511DFE0200C0D761DD717BFA2E +:100B460070CEC0A59EC47CFF9EC4609EC461CDD7F6 +:100B560061DD717BFAC18EC45C1BFED6FFCF060831 +:100B660001FED7FFC061CDD731F2FA1AC1AEE4BF9C +:100B760016FDAEE6BF18FDAED4BF1AFD30FFFFBEB0 +:100B8600E4BEE6BED4C0D731F2FA11C1AF16FDBE3F +:100B9600E4AF18FDBEE6AF1AFDBED4C0D7C1BF1C78 +:100BA600FD13BF1EFD15BF20FD17BF22FDC0D7AF29 +:100BB6001CFDDB1EFDEB20FDFB22FDD7534B305207 +:100BC6005430324E323030475631323000FFC15049 +:100BD600FEFEAB0061DD717BFACF060800FE0A005F +:100BE600FEA4FF61CDF8E3EECF00C7FB0408BF16F5 +:100BF600FD8FC0009C05C5C337040600BF18FD3530 +:100C060036380C300000522BFE6600C2C4C630E6F1 +:100C16000BB800300000B8022004AF18FDB8003051 +:100C26000F00B802AF16FD61FF520AFE3AFFECF85C +:100C3600FF0E717BFAC1C7FB04088C05C65C80FEFB +:100C46000200C0D761DD717BFA70CFC0FFA59FC0DF +:100C5600007CFF9FC000609FC00061CDD7618BFE06 +:100C6600E2FF717BBE410011FB000017CEFC006164 +:100C7600CB089EFDF31161C999A58392DFF7D7FED4 +:100C8600B1FED524FDDF23C1CF0308035109FEF4CD +:100C9600FDC0D2DF37FE3800A20408CF0308075193 +:100CA60009FEE1FDD2B20408DF22C7FB0408318346 +:100CB60002C6D7C6510AFECCFD624C1FDF06CF2402 +:100CC600FD01EF04CF24FD00C0EE5BFEC0EE55FE35 +:100CD600C7C1FB04088B31196C0161589BC0C6D78C +:100CE600717BFAFE4DFEAF0408040600C114364AB5 +:100CF6000C300000522DF3FE77FF8FC000FE2BFE56 +:100D060061CF5C807C8073C0041900CEFC0F61CB80 +:100D1600C55404EF03C55417FE18FEC7360008BBBA +:100D2600629C0288089C03D1DD334C41DE2F70F1B2 +:100D3600312DB161090033081C000851FF612A41B9 +:100D46000E118FD0FF613B118FD1FF6138DC0E8B06 +:100D56005C03DF0964C6C4FE2BFDEECAFDC6C4EE05 +:020D6600C3FDCB +:100D680061CF5100718C7109FECBF800FEFCE801DF +:100D780000F6BF00F953C0F693935820FEDFF941FF +:100D88000036C44E34CCFCEF05118B99A7A5174447 +:100D98000E4FDFF53602F930CCFCEF04CC0000A78B +:100DA80047DFF94100360E4F3420FEEF05118B99CD +:100DB800A7A517441E4FDFF53630FE3096FEEF0428 +:100DC800CC0000A747DFF9FCCE0000EFFE61DD7123 +:100DD8007BFABEF0ADD8BEF200AEF661CDD7C361E6 +:100DE800DD717BFABEF0ADD8BEF200DBF6FFADDCFC +:100DF800BEF000AEF6BDD8AEF40312ADDABEF20016 +:100E0800AEF661CD03BDDAC2D7C3F33174D9088316 +:100E1800C1F626D8BDD8C031750683C312F623C2E1 +:100E2800FD330E93DF0312F623C2D7440000DD26FC +:100E380061DD717BFACFE80080BEF6F6BEF4BEF243 +:100E4800ADD8BEF0CFE800818FE8003103FAAEF0EC +:100E5800F5E80061CDD7B1D7C3F33174D90883C1A0 +:100E6800F626D8BDD8C0317505C312F623C2FD8158 +:100E78000E93DF0312F623C2D7440000DD2761DD9D +:100E8800717BFACFE80080BEF6F6BEF4BEF2ADD8AC +:100E9800BEF0CFE800818FE8003103FAAFE000F53B +:100EA800E80061CDD7ADD8D7C3F33174DB0F83C168 +:100EB800F626D8BDD861317026DABDDAC031750D95 +:100EC80083C312F626DCBDDC61317023C2FDE90E56 +:100ED80093DF0CF626D8BDD861317026DABDDAC2A8 +:100EE800D7C161686BDC6BDDC0DD2F61DD717BFA1A +:100EF800CFE80080BEF4ADDCBEF6ADD8BEF0ADDA0A +:100F0800BEF2CFE800818FE8003103FAAEF0BDD819 +:100F1800AEF2BDDAF5E80061CDD7F6BDD8BDDAD7B7 +:100F28008292DD2B61DD717BFACFE80080BEF0F69E +:100F3800BEF2BEF46208BEF6CFE800818FE8003149 +:100F480003FAAFE0006072AEF0F5E80061CDD7605B +:100F580072F6B1D706DABDDAADDC06D8BDD861D8ED +:100F6800A6DAD7D1DD17C1C3DAD89DD8ADDA311CDE +:100F780061EEB4D8DFF8BDDA13BDD8C2C0D7D1DD71 +:100F88001BC1C3DADA9DDAADD8311E33311E337195 +:100F9800F9B4DADFF4BDD813BDDAC2C0D746D8DD5C +:100FA8000771FF7177D971C0D75BDB9DDB605BDAB6 +:100FB8009DDAADDC5BD9085BD808BDD8D7C3C7F3C9 +:100FC800728EFDC162314C410036BA4E1161A07279 +:070FD800C09EFD62C6C2D7F6 +:0A0FF60031333A31323A3034000052 +:0A20000031333A31323A3034000037 +:10200A0005214F7B9EC5E9000104080D12171C1F0C +:10201A00080100001F003B005A0078009700B50035 +:10202A00D400F300110130014E01192634445362E1 +:10203A006E777D80807D776E625344342619100A4C +:10204A0008080808080808080A10AEF0B430B740B3 +:10205A00BA30BB50BBB0BC50BD10BD60BDB0BFE014 +:10206A00C2B0C420C7B0CAE0CE1001F014101420C8 +:10207A000630639049006E0077707B0019001900E2 +:10208A0017F01C6012001200120002005C003600F9 +:10209A00A70000D8EAE88C309C10A5E0B040B1C097 +:1020AA00B200B250B310B490B620B860BA50BFA014 +:1020BA00C6B0CE90D02000200020002000207B3027 +:1020CA00686020001700173012F00DE007F00700D3 +:1020DA00093001C001C00100AB000000670020DA2E +:1020EA006967A120B750B9D0BB00BC30BC60BCA0A6 +:1020FA00BD10BDC0BE70BFD0C2A0C400C850CC8045 +:10210A00D0B001A0251018B017C095206FE07C60F0 +:10211A003510350037F016F01CA0173011D011F029 +:10212A0011F002005E00A7FF27FCB0DAF5F39CF07D +:10213A00AD50AFB0B300B3E0B560B670B7A0BA00A7 +:10214A00BC00BE90C160C400C700CCA0D0A00200F1 +:10215A00191012004810251041F02FA013F01CD0BE +:10216A0010D00FA0110010E00C100C000C0002009F +:10217A007100B4FFC0FDA0DAE7E59D80B7B0B8A052 +:10218A00B9A0BB40BC50BCA0BD00BD90BF30C0E0F0 +:10219A00C330C540C750CD40D0A0019035102F3074 +:1021AA0011002940885071A05FE032D01CF014F071 +:1021BA001A801A801110120012000200560067FFDE +:1021CA0054FCA0DAF5F39DD0A620ACE0AE20B040D6 +:1021DA00B210B3C0B500B670B7D0B920BC00BED03B +:1021EA00C470CA40D0A002000200240014001600E5 +:1021FA001A0038C02DE029C027E00FE011E00FE0F7 +:10220A000F400C000C0002005F0027FF1AFEA0DA44 +:10221A00E6E47F7E7D7C7A79787776757472717060 +:10222A006F6E6D6C6A6968676665646261605F5E3D +:10223A005D5C5A5958575655535251504F4E4D4B53 +:10224A004A494948474645434241403F3E3D3B3A59 +:10225A00393801020203030200FEFBF7F3F0F0F340 +:10226A00FA041225384D5F6E777A776E5F4D3825FE +:10227A001204FAF3F0F0F3F7FBFE00020303020282 +:02228A00010051 +:10228C008D3DB43DD1DF26CD3D1EFD4423FDE52221 +:10229C003132960D3104960931329A05713304EFBF +:1022AC0003713204FD1823FDBA22FD7E26D771532B +:1022BC0096D432DD05B43271529631229607313202 +:1022CC009A03715296715496714102314402057110 +:1022DC0040B3FBD77148B3FBD78D304B3BDC114A75 +:1022EC0030B9DE0C4A3E28DE03A43ED7713396D7B4 +:1022FC008D3C4B30DE054A30BDDC0C4A3F28DE03FA +:10230C00A43FD7713296D7F43EF43FD731429A0CA2 +:10231C004A4002DE03A440D7712396D7313204120F +:10232C0040AFFB3CDE0C8FB2FB5C01D1DF047123B0 +:10233C0096D7712296F440D7C7C1FBF8FF31329A79 +:10234C00067130B3FBEF047138B3FB7144967137EF +:10235C009ADE4F71349A71419631329A0E5002C105 +:10236C005011FD3D35C0CD3229EF37E0C15011FD84 +:10237C003D35C0F43217C15002FDB22BC0D2DF0D77 +:10238C008B318E318D080E01081C00BD34AD3444E8 +:10239C00009BDC05D5AFFBDF095020C15011FD3D82 +:1023AC0035C0C0C6D78D209D41FDF323FDE62BD54E +:1023BC0007F9DD04710396D78D414B2061F8316428 +:1023CC00961C716396FD98044A4107DD054A41FF4E +:1023DC00DF098F06F9310303FD8224FD9624710277 +:1023EC009630DC256194D7C771620171720150037C +:1023FC00FD220A5008FDBA37629D305009FDBA37EC +:10240C006276716301711806F94A30F1DC0BE5074D +:10241C00F9F508F9CD3707EF0E4A3004DE06CF0781 +:10242C00F902EF03F507F95008C1506CFD8902C0A1 +:10243C0092DF08D45461F8711006F94007F901DFF6 +:10244C0005710A22EF06710B22710302CD2007578A +:10245C0000674C08DE1073090A20614EDC05679D8D +:10246C0020EF0387EFEB4A2007DF09D507F961F866 +:10247C00CF07F903C6D7500AFD220A304000C150DD +:10248C0006FD952BC05096ED220AC72008FBF8FFDD +:10249C00D507F961E8EDD825304A57C1503EFD9576 +:1024AC002BC0D2DD077100B2FBEDD8257108B2FB51 +:1024BC0017040400C15002C1500CC1506CFDB10294 +:1024CC00100617040600C15002C1500EC1506CFD1D +:1024DC00B1021006EA38AA48318D12AA48318E6131 +:1024EC006B08616A08C1500EFD952BC0F690C15067 +:1024FC000CFD952BC0CC03008C034C40DE30EA382D +:10250C008C03318E05148A01318E318D12EA388C90 +:10251C0003318E051489616213BBC18C03318E04A7 +:10252C004000FD952BC08C030C029C03EFCACC031E +:10253C00008C034C20DE17300080C18C03318E04DC +:10254C008000FD952BC08C030C029C03EFE350A57F +:10255C00FD220AEA38AA48318D12AA48318E616BE5 +:10256C0008616A08C1500EFD952BC0F6C1503EFDA6 +:10257C00952BC050A5FD220A5004C1506CFD890258 +:10258C00C0629C03EA388A4B4E0361C3048A4A4EEC +:10259C0003304A57C1503EFD952BC017040400C1AF +:1025AC005002C1500CC1506CFD6303100617040699 +:1025BC0000C15002C1500EC1506CFD63031006F6F1 +:1025CC00C1503EFD952BC050A5FD220A1008C6D760 +:1025DC00C78D424B3061F8ED7B264A4428DE05A4BA +:1025EC0044ED7B26F4448D309D428D305070D612D4 +:1025FC00307351230480001231FF318E039D439FB1 +:10260C00AEFBF68D437C804C95DC1B8D43318F24C7 +:10261C001400EA38BDD8AA44FDD50D1231FF318E15 +:10262C0003318F16EF198D43318F241400EA38BD16 +:10263C00D8AA46FDD50D1231FF318E03318F16EA23 +:10264C00388A427217F3031644000171FE61C836D2 +:10265C00FF001701DE02F61617BD7CC7500CFD9566 +:10266C002BC0D2DF068D309D42EF047100B2FBF21D +:10267C00C6D7C72008FBF8FF4007F901DD06400765 +:10268C00F902DF1C17040600FDB82CD2DF0A8C06F9 +:10269C009C058C079C04EF4ECC0563CC0400EF46E4 +:1026AC0017040600FDB82CD2DD0F7100B2FB7103CC +:1026BC0096CC0500711297EF2D7108B2FB8C063188 +:1026CC008E318D080E07081C00BBEA388A4072ABAD +:1026DC00FD280FBB8C019C05D1DF08CC0501CC0477 +:1026EC0000EF038B9C0417040600FDC32CD2DD06FF +:1026FC00CC06C8CC07008C069FB1FB8C06318E3102 +:10270C008D080E07081C00BD34AD344401A5DC084F +:10271C00CC0364F6BD46EF48AD3426464401A0DC3C +:10272C0008CC031EF6BD46EF37AD3444819DDC0961 +:10273C00CC030AC946F401EF27AD3444019BDC09F4 +:10274C00CC0305C946F401EF17AD34440191DC0903 +:10275C00CC0300C946F401EF07711297C946F40186 +:10276C003132040C31249608CC0564CC0400EF0DF6 +:10277C008C034E05DE078C039C05CC04008C059F56 +:10278C00AFFB8C049FB0FBFD452C8D484E05DD281E +:10279C0040AFFB0BDE054A480BDE1440AFFB06DEF8 +:1027AC00054A4806DE09D5AFFBDF0DD448DD0950DC +:1027BC0020C15011FD3D35C08FAFFB9D48FD822CD3 +:1027CC001008C6D7C75601D837C15002FDCA2BC056 +:1027DC008F09F93105075012FD220AEF0E500AFD40 +:1027EC00220A712010055008FD220A8D376C0870E2 +:1027FC00C15002FDCA2BC05003FD220A8D376C1844 +:10280C0070C15002FDCA2BC05016FD220A5003FDA8 +:10281C00DB2B625C01D1DD0F7170B3FB5002C15038 +:10282C0013FD3D35C056006672C6D7C75004FDDB9C +:10283C002B625C03D1DD405014FDCE2834B3FB89F0 +:10284C005C9F998A0C7CFF50FF5C14D1DD228A0CB2 +:10285C007CFF5C147234B7FB89616A99716207560C +:10286C0000316207058666D1DFF7716307716B274C +:10287C0034C6FB895CEB995002FDDB2BD2DD398D24 +:10288C00376C1070C15002FDCA2BC0E0FD220AD873 +:10289C0037C15002FDCA2BC05033FD220A8F09F9F3 +:1028AC0031030971281005500AFD220AF0C15002AB +:1028BC00FDCA2BC07178B3FBE0C15013FD3D35C090 +:1028CC00C6D7C7C12004FBF8FFCC02005004FDDBC7 +:1028DC002B629C038C045C20D1DD0E8C036C019C60 +:1028EC00038C026C209C02EF138C045C10D1DD0C69 +:1028FC008C035CFE9C038C026C109C028C045C08A8 +:10290C00D1DD0E8C036C029C038C026C089C02EFD4 +:10291C00138C045C04D1DD0C8C035CFD9C038C02D9 +:10292C006C049C024008F903DF088C03D161E8CCED +:10293C0003028C03D1DD05501AFD220A8C0370C1F1 +:10294C005004FDCA2BC08FB3FB5C9F728C03318E7D +:10295C00316D148C03318E314D616D08616C5C608E +:10296C006162629FB3FB8FBFFB7CFF50FF5E02D1A5 +:10297C00DD278FBFFB7CFF5E027234B7FB89616A77 +:10298C0099716207CC0100316207086159018C0111 +:10299C00D1DFF4716307716B27F21006C6D7D9A784 +:1029AC00FBC15006FDCA2BC0D9A8FBC15007FDCAFC +:1029BC002BC0D7FDAA29F2D7C716664C02DD044CF2 +:1029CC0004DF05CD3A08EF02F43AC6D7C7711300FD +:1029DC00711B20710303710205E0C15003FDCA2B6A +:1029EC00C05013FD220AD83AC15005FDCA2BC05065 +:1029FC000FC1E0FDCA2BC0500AFD220A710305501D +:102A0C0008FD220A501FC1E0FDCA2BC05012FD2246 +:102A1C000A5003FDDB2B625C01D1DF03E2EF12F005 +:102A2C00FDDB2B629D363602F9C75008FDB22BC078 +:102A3C00F2C6D75003C1FDCA2BC0710203711A2014 +:102A4C00FD722BF431D75014FDCE28FD37285014CD +:102A5C00FD220AE0C15003FDCA2BC0711300711B8B +:102A6C00207103035014FD220AF0C1E0FDCA2BC0F3 +:102A7C00F0C15003FDCA2BC0D7C72004FBF8FFCC14 +:102A8C0002008D319C035010C150A4FD8902C0621C +:102A9C009D31D454DD04F2ED4F2B8C037B315C085B +:102AAC00D1DD0F8D315C08D1DF05CC0210EF03CCEA +:102ABC0002208C037B315C04D1DD158D315C04D19B +:102ACC00DF088C026C049C02EF068C026C089C02E2 +:102ADC008FB2FB5CF3728D315C0C6162629FB2FB56 +:102AEC008FBEFB7CFF50FF5E029C02D1DD1F34B613 +:102AFC00FB896E0299716207CC0100316207086193 +:102B0C0059018C01D1DFF4716307716B278D315C36 +:102B1C0040D1DD095002C15012FD3D35C08D315CF4 +:102B2C0001D1DD08E0C15012FD3D35C0717AFA8D3E +:102B3C00315C41D1DD0C5A31BED831C15010FDF0A1 +:102B4C0047C0F21004C6D7FDD027F2D7FD3728F2C4 +:102B5C00D7C78FC6FB7617FDCE28664FC6FBDFF2B4 +:102B6C00F5C6FBF2C6D75064FD220AFDCE2C62617D +:102B7C00FB711196F171149661DC70C15012FDF06D +:102B8C0047C0FDEB36CD6303D7C7C1C1FBF8FFAC23 +:102B9C000ABB17C15002C18C0270C1506CFD63039B +:102BAC0010061004C6D7C7C1FBF8FFAC08C1500211 +:102BBC00C18B70C1506CFDB1021006C0C6D7C7885E +:102BCC0006166770C1C75084FD2C031004C6D7C706 +:102BDC0016C75084FD8902C0C6D7C74A2004DE043C +:102BEC005600EF0256018F08F9318FE7240000DD03 +:102BFC001A23DD0B23DD0C23DD1123DD0CEF0C86FA +:102C0C0086EF0851046106EF02868666318F1250FA +:102C1C004CD633514CD6610A045420BD384008F9C7 +:102C2C0002DD064008F904DF08CD3B54CD3C44EFEF +:102C3C0006CD3B4BCD3C3DC6D740AFFB3DDC05CF75 +:102C4C0004FC0FD740AFFB1FDC05CF04FC0BD740B7 +:102C5C00AFFB0BDC05CF04FC07D740AFFB0661D8FC +:102C6C0031320405CF04FC03D7D5AFFBDD04E504FA +:102C7C00FCD7F504FCD7D504F9DF04717396D7FDA6 +:102C8C00CE2C6261FB71019771149671079761C824 +:102C9C0031729617717296710497711196F17104D5 +:102CAC009761DC70C15012FDF047C0D7C716C750F2 +:102CBC0004FDB22BC0C6D7C716C75002FDB22BC03D +:102CCC00C6D740AFFB0BDE02E2D7F2D7710001058D +:102CDC0071785005713AD5713BD18F10055CFC9F12 +:102CEC001005CF54054AE5420571104205710042AA +:102CFC0005714850057130500571205005CF5305B2 +:102D0C0009CF52050B7130510571205105713BD51E +:102D1C00717050058F11055CFC9F1105F422D77161 +:102D2C0078500571080105D7FDE538FD9804717AD6 +:102D3C00FAFDB123F504F98F06F931051B5003FD9B +:102D4C00DB2B625C01D161E8CF04F902CFAFFB64ED +:102D5C00710407714196EF10F6710407611012F6B9 +:102D6C00B1236061FB714196FDED30FD94437122FE +:102D7C0099712BE7618461A461EDEFF8D7C78806E0 +:102D8C001666614FDD0967614EDE0396EF018666BC +:102D9C0072C6D7C7161714AA0412A943DD29AA04B0 +:102DAC0012A923FD1E4FC3AC02FD1E4F13C2BDD88A +:102DBC0013FDA50FDE0C1714AA0212AA0403BA0401 +:102DCC00EF051714A9BA04AC041231FF319E03317C +:102DDC007F087208C6D77100F200304400BFB601FC +:102DEC00300188BF9001300984BF9E01BF9C01BF98 +:102DFC009A01BF9801BF9601BF9401BF9201F53CA7 +:102E0C00FF30FE00BFBE01F6BFBC01BFB80150EEE3 +:102E1C00BFBA01A1BFB201C918FE008F06F9310576 +:102E2C0007F5CDFBCB6CFF00717397716297D7C719 +:102E3C002004FBF8FF3026FBBC02F6BBAB4464005D +:102E4C00DE0EAC0214CA0000617902617900EFEC6D +:102E5C001004C6D730EF00BFB401F6BFBA01710839 +:102E6C00F200712304715307BE6EBE64BE6A7123F7 +:102E7C0004715307715BD1F457F456716397D78D76 +:102E8C0058B458D1DF6931D4D105715BD1E457D432 +:102E9C0057DD2E7140B2FBD856F1E734020023DD2A +:102EAC000625DD0325DF05F6BE66EF06D9CCFBF162 +:102EBC00BE66A4564A5620DF04F456F457CD581972 +:102ECC00D7CD581E7148B2FBD5CEFBDF04F6BE66DB +:102EDC00D7D9CCFBF14266FFDD15D9CCFBF112AE94 +:102EEC006643DE05A266FFEF03B266FFCD5803D73B +:102EFC00C7161714F6B9AA0412F6231231FF31AE15 +:102F0C0003316FBA02AA046168DD0AAA026168DFA4 +:102F1C0004F6B1BA02C6D7C7C1FBF8FF8C085080C3 +:102F2C00D612AB1413B9AB14AA0412A92312D927C5 +:102F3C00FBF133BDD813FD110EBA02C0C6D7310454 +:102F4C009801D74004F902DF10F6BE64BE6EBE6A6B +:102F5C00BF8EFBBF94FBBF9AFB31749714308AFB76 +:102F6C00FDFC2E3090FBFDFC2E3096FBFDFC2EEF75 +:102F7C00713114980D7113987108D2FBF45AF459ED +:102F8C00EF60D459DF5A8F26FB9D594A5A1FDC1724 +:102F9C007100D2FB4028FBFFDD1CA45B8F28FB4B90 +:102FAC005BDE13F45AEF0FD85AF1A1605C1F9D5AE7 +:102FBC007108D2FBF45BE85A092AFB70C1308AFB1A +:102FCC00FD232FC0E85A094AFB70C13090FBFD234A +:102FDC002FC0E85A096AFB70C13096FBFD232FC045 +:102FEC00B459308AFBFD9F2DF313BE6E3090FBFD60 +:102FFC009F2DF313BE6A3096FBFD9F2DF313BE6419 +:10300C00D7C736F00071F4DC297170F000CE9D0842 +:10301C00CE9EC0CE9F80F594FFF593FFF592FFE511 +:10302C0097FFE596FFE595FFE598FFCE9C7F710035 +:10303C00A6FB711BE3712BE3711AE7712BE7717A15 +:10304C009D710A9E31929E02EFFA710B9E7123982C +:10305C00713398714398C6D7C73122981E71229844 +:10306C00710A9E31929E02EFFA34D4FB3692FF52D3 +:10307C00078B99A5A792DFF9710B9EC6D7C7880657 +:10308C001631329815713298C7349CFB3092FF166A +:10309C0052078B99A5A792DFF9C6667367189CFB3C +:1030AC00C6D7C77123983134981E713398710A9E14 +:1030BC0031929E02EFFA3492FF369CFB52078B99A9 +:1030CC00A5A792DFF9710B9E314498137143987147 +:1030DC007B9E8FDCFB9E9A8FDDFB9E9B717A9EC63E +:1030EC00D7CFA7FB5CCFA8FB5FCFC8FB5DCFFCFBAA +:1030FC0036CFFDFBC9D7C7CFA4FB12CFA5FB36CF6C +:10310C00CCFBFFF5CDFBF5CEFBF5CFFBF5D0FB569D +:10311C0000664C64DE08723826FB0086EFF3F5E39C +:10312C00FB714A9D712B21710A20711A20710203C7 +:10313C00C6D7C788061617F1E73403002361E3ED01 +:10314C006A342361F8ED4133B12361E3ED4B332550 +:10315C0061F8ED5933B1240D0061D8ED6A34240BBC +:10316C000061F8ED33322361F8ED76322361F8ED2E +:10317C0046322361F8ED633424060061F8EDF53234 +:10318C00B12561D8ED113324000061F8ED1E332315 +:10319C0061F8ED6A342361F8ED6834B12361E3ED35 +:1031AC0079332361F8ED8A332361F8ED9B33236186 +:1031BC00F8ED8A332361F8EDAC332361F8EDBD33C0 +:1031CC002361F8EDCC332361F8EDEE332361F8ED98 +:1031DC00F9332361F8ED04342361F8ED0C34240247 +:1031EC00002361E3ED6A342361F8ED40342361F888 +:1031FC00ED14342361F8ED1F342561F8ED2A34B158 +:10320C0024060061D8ED6A3424000061F8ED6C34BA +:10321C002561F8ED353424120061F8EDEF322361AD +:10322C00F8EDDF32ED6C3467D1DD0C30143C619479 +:10323C0034C4FB89616F99ED7634675C02D1DD078C +:10324C0030532B6194EF0B675C01D1DD0530582BAB +:10325C006194675C3CD1DD0F305D2B6194675C3C05 +:10326C007266736218A4FBED763467D1DD625C0183 +:10327C00D1DD05300800EF01F6609F01FC675C02B0 +:10328C00D1DD03E6EF01F63401FC89616899675CD6 +:10329C0004D1DD04E6A1EF01F63401FC89616899E3 +:1032AC00675C08D1DD05302000EF01F63401FC89A4 +:1032BC00616899675C10D1DD05301000EF01F634C0 +:1032CC0001FC89616899675C20D161E8716001FC3F +:1032DC00ED76344A5CC8DE08E85C67185AFAA45CE0 +:1032EC00ED7634679D5CED7634D44ADF08679FCD6C +:1032FC00FBA44AEF0D4A4A05DE08E84A671811FD9F +:10330C00A44AED7634675C0F7266736218A4FBED09 +:10331C0076344A4A64DE1B4A4A01DF0667D161F8FB +:10332C005701E84A671826FBA44A4A4A0561C87146 +:10333C001298ED763434A6FB89615F99ED763430C2 +:10334C00BF29619466736718A4FBED763440A9FB22 +:10335C006ADF1340AAFB68DF0D674C6CDF0830D1C5 +:10336C00406194713AD5679FABFBED7634675C7F17 +:10337C0070C117F1243000FD8930C0ED7634675CE4 +:10338C003F70C117F1243000FD8930C0ED763467F1 +:10339C005C0770C117F1243000FD8930C0ED763424 +:1033AC00675C1F70C117F1243000FD8930C0ED76C9 +:1033BC00346770C117F1243000FD8930C0ED7634CC +:1033CC00CEABAC710A9E31929E02EFFAD592FFDF22 +:1033DC0005710B9EEFED679E99710B9E9FDBFBEDCC +:1033EC007634714298675C7F9FDCFBEF7D7142986D +:1033FC00675C3F9FDDFBEF72675C3F9FDEFBEF6A14 +:10340C00675C1F9FDFFBEF6230C9396194679FE4F3 +:10341C00FBEF573096396194679FE5FBEF4C30AF6B +:10342C00396194679FE8FBEF41675C01D1DD3BFD9F +:10343C009443EF36675C02D1DD05712A21EF0671EA +:10344C004A9D712B21675C01D1DD06710300710B64 +:10345C0020679FE3FBEF1367318EEF0EEF0CEF0A43 +:10346C00664C5BDE05736718A4FBC6D7C716664CA3 +:10347C0030DC094C37DE05FD6430EF76664C02DF3C +:10348C001F8FA6FB5C03728F03FC5C03318E316DC6 +:10349C0008616A08128F03FC5C80312A6162EF615B +:1034AC00664C3DDF08AE90BD5EF85EEF54664C3E58 +:1034BC00DF04F85FEF4B664C4FDF05FDBC43EF417B +:1034CC00664C61DF134A5CC8DC045700EF06E85C0D +:1034DC00095AFA776772EF29664C7FDF05FD8A3C43 +:1034EC00EF1F664C4EDF0B31049A045210EF12F2B0 +:1034FC00EF0F664C5BDC0452FFEF06667309A4FB0E +:10350C0072C6D7C788061617F1241000240500DCF4 +:10351C0007244C00DD17EF17717BFA17F104A4FB9D +:10352C001489617F99717AFA715298EF02A45CC682 +:10353C00D7C7C1C1FBF8FF4004F903DD064004F90D +:10354C0004DF38717BFA8C027309ACFB5E0AD1DFA5 +:10355C00278C02318E04A4FB14896E0A99716207C0 +:10356C00717AFACC0100316207086159018C01D1E2 +:10357C00DFF4716307716B27717AFA1004C6D7CF29 +:10358C0003FC03F501FCF505FCF507FCD7C7880621 +:10359C001617F1E734020025DD3D23DD1725DD1C70 +:1035AC0023DD0523DD2BEF3B710299679F06FCCDD4 +:1035BC006303EF2F675C839F03FCEF27675C039F1C +:1035CC0005FC675C034C0261F871229AFDAA45EF79 +:1035DC0012679F07FCEF0C6791DF08E0C15012FDEA +:1035EC003D35C0C6D7C71617F1E7240000DD2A23E6 +:1035FC00DD1E240300DD0724FB00DD24EF25313222 +:10360C009A05308000EF01F6086F04FC7208EF1980 +:10361C008F01FCF501FC72EF107152995235EF09D4 +:10362C00F2EF0666730900FC72C6D7C71617F1E7EE +:10363C00240000DD38241000DD1C23DD1C23DD30CC +:10364C00240E00DD18241100DD1B240F00DD1224D4 +:10365C003000DD15EF1EE2EF1D5202EF195204EFA0 +:10366C00155206EF115205EF0D5207EF09F2EF0656 +:10367C005203EF0252FFC6D7C73164983771639873 +:10368C008D629FACFB8D619FCBFB36D2FCC7D861A2 +:10369C00FDEB37618A70618AFD3038C0D866F13134 +:1036AC002F609D658D604B65DD0A7172988D659DEF +:1036BC0060CD63034A6305DE0830F5366194CD6353 +:1036CC006BB4637150F000CE300BCF170006CE31C7 +:1036DC0006FD6402717A30710BE3710BE7C6D78D6E +:1036EC00659D608D659FADFBD74004F903DF0640F7 +:1036FC0004F904DF02F2D73174980C7173987113CA +:10370C00998D659D67EF313104991F710399711281 +:10371C0099D506FCDF04F468EF0A8F06FC5002D63C +:10372C00A1609D688D689D67EF0E311499068D68B8 +:10373C009D67EF048D659D678D679FADFBD867FD19 +:10374C005D37E867091C2270C15013FDF047C0F2C9 +:10375C00D7C7C1C1FBF8FF8C02D1DF05F506FCEF22 +:10376C001A8C024C05DE06CF06FC02EF0E8C0231E1 +:10377C008E1231FE03311F609F06FC8D694F06FCD3 +:10378C00DD28CC011F8F06FC9D69CC00008B4C08FA +:10379C00DE148B730912204F06FCDC058B9C01EFA9 +:1037AC0005615900EFE78C019D641004C6D7C7165C +:1037BC00710AE7710BE37150F000CE300BCF17009C +:1037CC0006669E31FD6402717A30710BE33182E33F +:1037DC0002EFFA8D1F7158F000710BE772C6D7C754 +:1037EC00C1C1FBF8FF8FFCFB4E02DC03F2EF318C06 +:1037FC00024FFDFBDC0452FFEF268C022FFCFB700A +:10380C006131318D128FFDFB2FFCFB70613133BDAB +:10381C00D813FD330EBB440001DC03F690BB8B7256 +:10382C001004C6D7C7C1FBF8FFAC0814A9148970E3 +:10383C008B6128706131FD1E4F1344030071FEDC57 +:10384C0023AC08148A04819A04AC08148A044C1121 +:10385C00DC10A9148B99AC0814CA0200AC0814CA69 +:10386C000310EF72AC0814CA0400AC0814A9148934 +:10387C004DDE0AAC08148A02819A02EF12AC0814CD +:10388C00A914894D61D308AC08148A02919A02AC30 +:10389C0008148A03919A03D1DF3CAC08148A024CB9 +:1038AC0010DF10A91489318EA112AC0814A914626E +:1038BC0099EF17AC08148A024CF0DF0EA914893169 +:1038CC008EB112AC0814A9146299AC0814CA020087 +:1038DC00AC0814CA0310C0C6D7EDE838C75600664A +:1038EC004C0ADE0BF0317E12F67810FC86EFF0C637 +:1038FC00D7C7200CFBF8FF17040600C15006C150B7 +:10390C00A8C15030FDB1021006D2DD1B4A6C04DE9A +:10391C0005A46CE2EF7034E4FB895CFC99FDC939B9 +:10392C007110B2FBF2EF5F717BFA300600C1170425 +:10393C000600C130E9FBFD264F1004717AFAF46CD5 +:10394C008FE4FB5C01D1DD264004F903DF2050102D +:10395C00C180FD3D35C0C736100571D4C6DE0F17CA +:10396C00C15006C150A8C15030FDB1021006400430 +:10397C00F903DD064004F904DF0B8FE4FB5C02D194 +:10398C0061E8FDD640F2100CC6D7D9E5FBC150302A +:10399C00FD8902C0629FE8FB5008C15011FD3D3506 +:1039AC00C0F2D7D9E8FBC1D9E7FBC15030FD2C03DD +:1039BC0010045008C15011FD3D35C0F2D7C7200C82 +:1039CC00FBF8FFCC09004007F901DF05CC0A02EF38 +:1039DC0003CC0A10CC0B808FE4FB5C039C07D1DF7B +:1039EC0008717AD5CC0807EF06717BD5CC082F1758 +:1039FC00040800C15004C150A0C15030FD63031035 +:103A0C0006624C02DF077110B2FBF2EF357118B28F +:103A1C00FBF46CC736100571D4C6DE164004F903EE +:103A2C00DF1017A1C15006C150A8C15030FDB10222 +:103A3C001006717BFA8FE4FB5C034E07DD03E2EFAB +:103A4C0001F2100CC6D7D504F9DF03F6BD6E4004A5 +:103A5C00F901DD0AD478DD03B478D7CD78038F046F +:103A6C00F9318FE723DD0B24020024030061C8ED3C +:103A7C00823B8F06F9312349301B00466EDF158FD0 +:103A8C00E3FB5C01D161E8F504F9E0C15010FD3DA8 +:103A9C0035C0EF1D307701466EDF165002C1501055 +:103AAC00FD3D35C0F64674DF088FC8FB5010D6BDFF +:103ABC0074F64674DD36B6744674DF30711297EFC7 +:103ACC002B301B00466EDF13F64676DF18E0C15034 +:103ADC0010FD3D35C0C9765307EF0A307701466EAD +:103AEC0061F8711297F6467661E8B67631549A0809 +:103AFC00714399F6BD6EEF1431449905F6BD6EEF26 +:103B0C000BA66EF6466E61F8C96EFFFF31629A190C +:103B1C004A7005DE16A4704A7005DF0FA4705004BD +:103B2C00C15010FD3D35C0EF02F47031649A194A52 +:103B3C007205DE16A4724A7205DF0FA4725008C11A +:103B4C005010FD3D35C0EF02F472D473DD03B47335 +:103B5C00D731729A174A7105DE14A4714A7105DFC8 +:103B6C000DA4715010C1FD3D35C0EF02F4714A71C6 +:103B7C000661F8CD7325D7C736100571D4DE0E8FCC +:103B8C00B2FB5C02D1DF0630FD386194D24004F9FF +:103B9C0003DF1C3122070530852A61943154990CBE +:103BAC007153995080C15012FD3D35C0FDC03BFD95 +:103BBC00E63BC6D78F03FC5C01D1DD1DD47BDD0356 +:103BCC00B47BD7CD7B098D644B7ADD0D8D649D7AEA +:103BDC005040C15012FD3D35C0D74004F903DD04FF +:103BEC00F6BD1AD7D5D0FBDF08F6461ADD19B61A82 +:103BFC00D7D9CCFBF1461ADD0ED9CCFB12AD1A434A +:103C0C00DE03A61AD7B61AD7717BFAC78FC4FB7618 +:103C1C00F5C4FB717AFA5C10D161E8716299665C4B +:103C2C000FD1DD57665C01D1DD05F504F9EF4C666B +:103C3C005C02D1DD11E0C15003FDCA2BC071130031 +:103C4C00711B20710303665C04D1DD1171130071CB +:103C5C001B20D503FC61F8710303FD8B35665C08F2 +:103C6C00D161E87103035005FD220A710203500370 +:103C7C00C1FDCA2BC0711A20FD722BF2C6D7C756D4 +:103C8C00FF4A4A1361C8ED483D8F06F931150D31D5 +:103C9C004505300600EF14300400EF0F8F06F931A4 +:103CAC004505300500EF04D907F9F1609F28FC8D1C +:103CBC007C9F29FC713496E661301271049661DCAC +:103CCC0031196162629F2AFCE52BFC31449A053064 +:103CDC004000EF01F6C131340405302000EF01F64D +:103CEC00C2616B08616A08C131749A05300400EF37 +:103CFC0001F6C2616B08616A08C131649A04E6A1DD +:103D0C00EF01F6C2616B08616A08C131549A03E68F +:103D1C00EF01F6C2616B08616A9F2CFCF1712404FF +:103D2C0061DC9F26FCF171540761DC9F27FCD84AAB +:103D3C00F10104ECFC14A9148976A44A6672C6D766 +:103D4C00C7FD46098F04F9318FE724000061F8EDB7 +:103D5C00273F23DD1B2361F8ED333E2361F8EDACE7 +:103D6C003E2361F8EDF53E2361F8EDC73FED243FAE +:103D7C00F6BD747113974005F901DF2C31349A1B91 +:103D8C00466EDD04F424EF02A4244A2465DC0FF60D +:103D9C00BD6EF504F9712299ED4C40FDB123AD6E69 +:103DAC00440A0061D8ED4C40714299FD980471634E +:103DBC0096FDB1234007F903DF09712299F504F947 +:103DCC00ED4C40FD7E2640B1FB9BDE09712299F53E +:103DDC0004F9ED4C40714A27714011057130110501 +:103DEC00713A22715A2271501105FDD829D2DD0980 +:103DFC00712299F504F9ED4C4071103500CF370064 +:103E0C001D71401205FD3F2A4005F901DD064005F4 +:103E1C00F903DF05F5CDFBEF04CFCDFB03CF04F9A0 +:103E2C0002FDAA29ED4C4071103500CF37001D71F1 +:103E3C00401205FDD82CFD0605FD8B35FD0231F534 +:103E4C0037FF712BE0F505F9712299CBE43FEFCBED +:103E5C00E6F6F0FD9804713BD48F06F9310522503B +:103E6C0002FDDB2BD261E87170B3FB5004FDDB2B40 +:103E7C00625C03318E315D34B3FB89616899FDB1AD +:103E8C0023FDE22D710806F9CF04F9038FA6FB5C24 +:103E9C0002D1DD095080C15010FD3D35C0ED4C40C4 +:103EAC00FD4E403164992FA47ED47EDD0831A4E010 +:103EBC000A31020C06712BE0FDC24031A4E017312F +:103ECC00040C13712BE05027C15005FDCA2BC0CF39 +:103EDC0004F904712299FDB7408F06F93125073199 +:103EEC00349A03F504F9ED4C40FD4E4031020C15AB +:103EFC00D83AC15005FDCA2BC05005FD220AFDC29F +:103F0C0040CF04F903FDB7408F06F9312507313452 +:103F1C009A03F504F9ED4C40F504F9CFCDFB03F50C +:103F2C00CEFBF5D0FB717297F6426CFF61E8ED4C5D +:103F3C0040F6BD74711397F5E4FBFDC939717AFA3B +:103F4C00FD602EFD2B2DFD5805712B21714B9D31E4 +:103F5C00349702EFFACE3708CBE4BFFFCBE6FFF382 +:103F6C00CED4FFF5B4FBF5B5FBF5B6FBF5B7FBCF3F +:103F7C0037000971481205F6BEE0BEE2BED0716A88 +:103F8C0027FD522A714307714B2771481005714860 +:103F9C0011057138100571381105713302713B220E +:103FAC00715302715B227158100571581105CF04C1 +:103FBC00F905714299F6BD6EFD0F0AF505F9F42469 +:103FCC007128100531349A04D432DD20E505F9E569 +:103FDC0004F98F06F9312568F5F8FBF5F6FB502E40 +:103FEC00FD220ACF05F903E504F9EF54FDEC04FDBD +:103FFC00442371730171320471430271039671622F +:10400C009631949E02EFFA712AE7CEA409F5F300DB +:10401C003104070261FDE5F300F46AFD4609CEA404 +:10402C000831329A06CF04F905EF09714399E50579 +:10403C00F9E504F9712BE78F06F9312503F504F93D +:10404C00C6D78FE3FB5C01D1DF60D47FDF1931026F +:10405C0000585003FDDB2B625C01D1DF07F504F93E +:10406C00712299D7E47FD74A7FF0DF073104003AF9 +:10407C00F47FD74A7FC8DF0AF504F9712299CD7F06 +:10408C00F0D7310200084A7FFFDD1FA47FD7F0C1B3 +:10409C005004FDCA2BC08FB3FB5C9F9FB3FB711008 +:1040AC00C4FB30143C6194CD7FF0D731149706F5E6 +:1040BC0004F9712299D7716399F47E717207FD64CA +:1040CC0002717307D7FD6105F2D7717BFAC7200C1B +:1040DC00FBF8FF8FEAFBF0F9E9FBF303FD1E4F132E +:1040EC00BC048FECFBF0F9EBFBF303FD1E4F13BC90 +:1040FC00028FEEFBF0F9EDFBF303FD1E4F13BB71CA +:10410C007AFAAC04BDD8F6BDDAAC04311EBDDCF6CF +:10411C00BDDEFDE60DADD8BDDCADDABDDEAC02BD5D +:10412C00D8F6BDDAAC02311EDADCC3DADEC3BDDC94 +:10413C00F6BDDEFDE60DC0BDDEC0BDDCADDEFD5C5A +:10414C000FADD8BDDCADDABDDEABBDD8F6BDDAAB9C +:10415C00311EDADCC3DADEC3BDDCF6BDDEFDE60DF6 +:10416C00C0BDDEC0BDDCADDEFD5C0FDADAADD8FD66 +:10417C00A544C3C58D8C5C3FF0317E0440FC14C259 +:10418C00C0B9A48CF6BC08BC0A9C078C074C2EDD6D +:10419C003D8D8C0E0770F161DC605C3FF0317E125E +:1041AC007940FCBDD8F6BDDA8C0773095C22318FDF +:1041BC00BDDC70BDDEFDE60DAC08BDDCAC0AFD5C03 +:1041CC000FADDABC0AADD8BC08615907EFBDAC081D +:1041DC00BDD8AC0ABDDAC9DC0004F6FDB00EC9DCF2 +:1041EC00FFFFF6FDB10FADD8BD86AF3AFC4686DDBC +:1041FC0011AF3CFCBF3EFCAF3AFCBF3CFCAD86BFF4 +:10420C003AFCAF3CFC423EFCDC46AF3AFC423CFC88 +:10421C00DE3EAD26423AFCDE374A2A16DC1A4A2A22 +:10422C00A0DE138D884B2ADE0DAF3AFC268A44693A +:10423C001061C8FD8E42F42AAF3AFC445146DC0AA8 +:10424C00AF3AFC241027BD28EF0DC928F82AEF0738 +:10425C004A2AFF61E8A42AAF3EFC423CFCDC18AFC2 +:10426C003CFC423AFCDE10AF3AFC4628DE09F488EE +:10427C00AF3AFCBD8AEF074A88FF61E8A488100CAE +:10428C00C6D7717BFAC7710A9E31929E02EFFA8EE5 +:10429C00949F34FC8E969F35FC8E979F36FC8E989F +:1042AC009F37FC8E939F38FC8E929F39FC710B9E2E +:1042BC00717AFA8F37FCFDC50F76FD234413BD844C +:1042CC00D5EFFBDF0AD5F0FBDF05D5F1FBDD25F6DD +:1042DC00B14684DF11C9843722665C0391DF060A7C +:1042EC0084181A85009617FD464513FD6643310464 +:1042FC009A02EF61520692926934FC682EFCDFF64A +:10430C00AD84BD82F880F3311C790AF944FEFFDDDF +:10431C0044D880F101040AF914A944FFFFDF04E634 +:10432C00B9EF0BD880F101040AF914A9A1B9717B7A +:10433C00FAA0EFFBD5EFFBDF1CA0F0FBD5F0FBDF09 +:10434C0014A0F1FBD5F1FBDF0CCFEFFBFFCFF0FBA3 +:10435C00FFCFF1FBFFC6717AFAD7C716D880F107E9 +:10436C0044A800DC0571029AEF1CF647DD18A48006 +:10437C004A80A8DC0571029AEF0CF880F3311CF628 +:10438C00780AF9B7EFE4C6D7C756A89666F0317E1F +:10439C0012F6B1780AF966D1DFF1717BFAF5EFFB11 +:1043AC00F5F0FBF5F1FBF48071039AC6717AFAD73C +:1043BC00C72004FBF8FFD44ADF168D809D8D717BDE +:1043CC00FA52069292692EFC68C0FCDFF6717AFAFA +:1043DC004A4A06DE0EE84A09C0FC9C03A44A8C0338 +:1043EC0072EF30F88DF3311C790AF9BB31129A0552 +:1043FC008B9C03EF0F8C019C03D48DDF05CD8DA717 +:10440C00EF02B48D718071179A61DC61FB71119AA6 +:10441C008C03721004C6D7C72008FBF8FF8F37FC3B +:10442C00FDC50F9C078F36FCFDC50F9C068F35FC18 +:10443C00FDC50F9C058F34FCFDC50F9C048F38FC0B +:10444C009C038F39FC9C028C06318E0112791A2048 +:10445C00BB8C075C03D1DF098C064C0361C8617906 +:10446C00008C05318EB1610900BB313D120103BBDB +:10447C008B0E04708C011C00BB8FF4FB4E03DC0E06 +:10448C008C034FF4FBDC0B8C024FF5FBDC04AB1202 +:10449C00EF03ABB1121008C6D7C7C3C12008FBF895 +:1044AC00FFF661490A61F8614908DF07F73400003B +:1044BC00ED4245E6BC04F6BC06AC0ABC02AC08BB3B +:1044CC00AC06614902AC0461F8614900DE28AC0419 +:1044DC00BDD8AC06BDDAE1FD6B0FADDABC06ADD8CC +:1044EC00BC04ABBDD8AC02BDDAE1FD860FADDABCC5 +:1044FC0002ADD8BBEFCAAC06BC02AC04BBAC08BD69 +:10450C00D8AC0ABDDAAC04BDDCAC06FDE90EAC04DB +:10451C00BDDCAC06FD5C0FE1FD860FADDABC06AD73 +:10452C00D8BC04AC06614902AC0461F8614900DCFA +:10453C00C5AC0214AB12100CC6D7C7C12004FBF8D3 +:10454C00FF8F31FCFDC50F9C034E04DF1CAD824672 +:10455C0084DE07AD84268212EF40F64684DF0746E0 +:10456C0082DD03E7EF34F7EF318C04318EB1128C1E +:10457C0003318E43DF1830382226820684BB8C042C +:10458C005C0391DF05AB041800BBAB12EF0C8C0382 +:10459C004E04DE0532A900EF01F71006C6D7717B79 +:1045AC00FA31229A0CF64690DD07B690717AFAEF42 +:1045BC007C71239A717AFA4004F904DF077153076E +:1045CC00F42CEF69D9CFFBF1E7240000DD0F23DDDC +:1045DC001A23DD1023DD5323DD2723DD3871530728 +:1045EC00F42CEF49715207F42CEF42D42CDF0771F5 +:1045FC005207E42CEF05715307F42CC990FA00EF25 +:10460C002CD42CDF0B715207E42CC990FA00EF1D4F +:10461C00F5CFFBEF18D42CDF0B715307E42CC990AA +:10462C00FA00EF09CFCFFB02EF03FD3A46D7D905CD +:10463C00FCF1E7240000DD0923DD2123DD0923EF54 +:10464C001B715307F42CD7D42CDF07715207E42CC1 +:10465C00EF05715307F42CC9902D01D7715207E463 +:10466C002CD731629701D7710398D9CDFBF1E72490 +:10467C000000DD1223DD1923DD1123DD2623DD34BB +:10468C0023DD3923DD3FFDFA46EF3DFD1B47EF38B7 +:10469C00D9CCFBC1AE6CFD892DC0F313BE6C71235C +:1046AC0004EF25F0C1AE6CFD892DC0F313BE6C7107 +:1046BC002304EF14F6BE6C712204EF0CCB6CFF00DC +:1046CC00712304EF03FD8F474004F905DD06400418 +:1046DC00F901DF067123047103983104980FF6BEBB +:1046EC0064BE6A31220402EF02F690BE6ED7CD2E64 +:1046FC0047F492AE6C317DBFCAFCFD6447D2DF0E2D +:10470C00D9CCFBC1AE6CFD892DC0F313BE6CD7FDAB +:10471C006447D2DD0DCD2E47F492AE6C317DBFCA0D +:10472C00FCD7E8920934205080D6BFC6FC22CAFCC4 +:10473C00BDD8304700FD110EBFC8FC30C6FCFD9F34 +:10474C002DF313BE6CB42ED42EDF0CCD2E47A492B9 +:10475C004A921F61C8F492D740AFFB0BDC05712362 +:10476C0004F2D740AFFB0661D831229611F0C1AEEE +:10477C006CFD892DC0F313BE6C712204EF03FD8F09 +:10478C0047E2D7710298F0C1AE6CFD892DC0F313CE +:10479C00BE6CA4934A9340DC37F493D894F1313F28 +:1047AC000412FD14D894F1BDD85008FD600E0872A7 +:1047BC0008E6D2DD040192DFFC896158D1DD057178 +:1047CC002204EF03712304A4944A942061C8F49446 +:1047DC00D7C73026FDC6D77180717DFADE03520132 +:1047EC00D75200D7C7C12004FBF8FF17040300C140 +:1047FC00E0C15010C150A4FDB1021006629C02D160 +:10480C00DD058C0272EF518C0C70C18C0470FD684C +:10481C0048C0629C02D1DD058C0272EF3B8C035CBC +:10482C007DD1DF03F2EF3117A1C1E0C15010C150AF +:10483C00A4FDB1021006629C02D1DD058C0272EF60 +:10484C00178C015C7DD1DD03F2EF0D8C0370C15030 +:10485C0010FD6848C0629C021006C6D7C7880616B1 +:10486C00710AE650A4FDE503D2DD077133975202BD +:10487C00EF1317FD01046770FD0104FD9348FD75EE +:10488C0004713397F2C6D7FD4C0450A4FD010450BB +:09489C0020FD010450AAED010405 +:1048A50061FC61FCC1C3C5C7520C929269D4FEC1BB +:1048B500DFF88EFD708EFCC1717AFA4004F903DFD2 +:1048C5000530852A6194C09EFC609EFD34D4FE525D +:1048D50006C0B9A5A592DFF9C6C4C2C061FC61DFF7 +:1048E500520C929269D4FEC1DFF88EFD708EFCC128 +:1048F5008F4105775C04D1DD06675C01D1DD503160 +:104905005498367162077153988FB4FB5FBCFBD125 +:10491500DF1B8FB5FB5FBDFBD1DF128FB6FB5FBE23 +:10492500FBD1DF098FB7FB5FBFFBD1DD0C31620720 +:1049350002EFFA716307716B2771139AFDAE30F4BC +:10494500227148500571605005717AFAED3F4A674A +:104955005C02D1DD16D422DD124A2202DD0DF422DD +:104965007148500571605005717AFA717AFA8D2295 +:10497500318FE7240000DD0823DD1423DD2CEF4A09 +:10498500F44A7140500571505005E422ED3F4A8FBD +:1049950040059D4B715050058D4B9D4DD84BFD7875 +:1049A50034629D4CCD2202ED3F4A675C02D1DD1792 +:1049B500675C10D1DD05CD2203EF0F7148500571FD +:1049C500605005F422EF73CD22044A2203DF108DD7 +:1049D5004C9F4005D84CC1D84BFD0F35C0EF1F8FFC +:1049E50040057671744BDC054A4B02DE067160505A +:1049F50005EF47C7D84BFD3E31C071505005D84D26 +:104A0500F1242900DD27240400DD22242200DD1DF8 +:104A1500241100DD0C240100DD13241E00DD0EEF42 +:104A25000A4A4B60DF07CD4B61EF02A44B4A2203D4 +:104A3500DF08D84BFD7834629D4CC09EFC609EFD1E +:104A450034D4FE5206C0B9A5A592DFF961FCC1C3F5 +:104A5500C5C7520C929269D4FEC1DFF88EFD708EE7 +:104A6500FCC1717AFA51405F0401D1DD06F616A743 +:104A750047DFF2300400BF2401F6BF2A01300B0BDB +:104A8500BF2801FD6402300B0FBF2801FD64023011 +:104A95000F0FBF2801710AE6F6420C01DD33AF04A2 +:104AA50001BF0C0131529729715297710BE2D85110 +:104AB500FDE5033184BD02EFFACBB422FBD853F1F7 +:104AC500BEB8714BE1714BE5710ABD8D529E44EF45 +:104AD5000C715397714AE5717BBD713397C09EFC8C +:104AE500609EFD34D4FE5206C0B9A5A592DFF9C675 +:104AF500C4C2C061FCC1C5717AFAD450DD0BEA4E5F +:104B0500899E44A64EB450EF33710AE6300400BFC7 +:104B15002401F6BF2A01300B0BBF2801000000005D +:104B250000000000510FBF28010000000000000038 +:104B350000500FBF2801712397713397C4C061FCE2 +:104B450061EF520C929269D4FEC1DFF88EFD708E32 +:104B5500FCC12006FBF8FF71503002CEABACCC0493 +:104B650000F6BB31B2E210617900F6614900DFF36E +:104B750071603002EDFF4B8E519C03713BE28C035B +:104B85005C02D1DD1E8C035C08D1DF097150300257 +:104B9500CC0400EFCC8C0570FDF135629E50CC0441 +:104BA50002EFBE8C035C03D1DF408E509C02715036 +:104BB50030028C04D1DF0E8C0270FD3736629C0505 +:104BC500CC0401EF328C044C02DF0671603002EF39 +:104BD50029CF34025A716030028C0270C18C057085 +:104BE500FD9935C0CF34024AEF108C035C01D1DD4D +:104BF5000671603002EF03ED664B1006C09EFC6047 +:104C05009EFD34D4FE5206C0B9A5A592DFF961FC1C +:104C1500C1C3C5C7520C929269D4FEC1DFF88EFD9F +:104C2500708EFCC1710A9E31929E02EFFA8FDEFBF7 +:104C35004F96FFDF198FDFFB4F97FFDF118FE0FBEB +:104C45004F98FFDF095004C15011FD3D35C0710B70 +:104C55009EC09EFC609EFD34D4FE5206C0B9A5A53B +:104C650092DFF9C6C4C2C061FCE46A61FCC1C3C578 +:104C7500C7520C929269D4FEC1DFF88EFD708EFC8E +:104C8500C1C1FBF8FF8D1F9C018E31318EE72406D3 +:104C950000DD0823DD0E23DD22EF38717AFA8C0161 +:104CA5009D62EF2F717AFA4007F901DF068C019DAD +:104CB50061EF2051FF2E019D61EF18717AFA8C0189 +:104CC5009D304004F903DD064004F904DF0530DCBE +:104CD5002561944031FF09DE05A031FFEF077158CA +:104CE500F000716298710BE3C0C09EFC609EFD34BC +:104CF500D4FE5206C0B9A5A592DFF9C6C4C2C061EB +:104D0500FC717BFAC7D46A61F8312499277123991C +:104D1500D46ADD05B46ACEABAC717AFA5600664C3E +:104D25000ADD1172F3311C79D8FCCEFC0061CA6131 +:104D3500A486EFEA717AFAF2C6D7C7C1C1FBF8FFBC +:104D4500CC01008C014C0ADE36717BFA8C01F03106 +:104D55007E0410FC14A96168DF09AC02B9717AFA06 +:104D6500F2EF1D8C01F0317E127910FC614902DFF2 +:104D750006717AFAE2EF09717AFA615901EFC4E234 +:104D85001004C6D7C72004FBF8FFF64210FC61F8F3 +:104D9500ED6B4E717BFA9C038C034C0ADE3C8C0355 +:104DA500F0317E0410FC14A96168DF05717AFAEF11 +:104DB50029717AFA8C0372F3311C7910FCCEFC0050 +:104DC50061CA629C02D1DF0A8C03F0317E12E6785B +:104DD50010FC717BFA615903EFBECC0200CC0101D6 +:104DE5008C02F0317E0410FC14A96168DD788C0218 +:104DF500F0317E127910FCE743DF658C014C0ADE49 +:104E05005F8C01F0317E127910FCE743DD4D717B3B +:104E1500FA8C01F0317E0410FC14A96168DF186179 +:104E250069018C01F0317E12F67810FC8C024E017E +:104E3500DCED717AFAEF2F8C01F0317E0410FC1451 +:104E4500A9128C02F0317E337810FC8C01F0317E92 +:104E550012E67810FC615902717AFA615901EF9BEB +:104E6500615902EDE54D00F21004C6D761FF520C01 +:104E7500929269D4FEC1DFF88EFD708EFCC1717A05 +:104E8500FA8FE4FB5C03D1DD114004F903DD064034 +:104E950004F904DF0530FD386194C09EFC609EFD79 +:104EA50034D4FE5206C0B9A5A592DFF961FC61FCB8 +:044EB50061FC61FC3F +:0A4EBA0000060C12181E242A3036E0 +:104EC400ACFB0000000066FE00000000523A84368D +:104ED4008C226E468B2E4A2FAA45833BD1084C3D2B +:104EE40028FC36FE20FE02F903F929FC30FE2AFCD8 +:104EF4002BFC08F926FC6CFF1AFF6EFF6AFF64FFA7 +:0A4F040027FC66FF2CFC555555559F +:104F0E00FF0000000000983AF82AFF00000047005A +:104F1E00317503F7332312D714AEF8C716AC061249 +:104F2E00C5AC0416F643DD078B99A7A5B3EFF5C202 +:024F3E00C6D7D4 +:024FF400326623 +:0A4FF60031333A31323A3034000012 +:00000001FF + \ No newline at end of file diff --git a/snake_tags/2.36/bsr.lmf b/snake_tags/2.36/bsr.lmf new file mode 100644 index 0000000000000000000000000000000000000000..f5d0a59915dc1b0413ec4c913a7f95def76fca65 GIT binary patch literal 183576 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 E1Inv8KL7v# literal 0 HcmV?d00001 diff --git a/snake_tags/2.36/bsr_k0r.map b/snake_tags/2.36/bsr_k0r.map new file mode 100644 index 0000000..8bff869 --- /dev/null +++ b/snake_tags/2.36/bsr_k0r.map @@ -0,0 +1,897 @@ + + + +78K0R Linker W1.33 Date: 3 Feb 2014 Page: 1 + +Command: -yC:\Program Files (x86)\NEC Electronics Tools\DEV -_msgoff - + obsr.lmf ..\..\..\Program Files (x86)\NEC Electronics Tools\C + C78K0R\W2.13\lib78k0r\s0rm.rel -gi1B339499E033F240BFAAh -pbsr + _k0r.map -nkd -gb7EFBFFh -bC:\Program Files (x86)\NEC Electro + nics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib -bcl0rdm.lib -bcl0r + m.lib -bcl0rmf.lib -iC:\Program Files (x86)\NEC Electronics T + ools\CC78K0R\W2.13\lib78k0r -dbsr_mcu.dr -s -w2 loader.rel pm + .rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_t + wl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel reng + e.rel accero.rel self_flash.rel sw.rel task_debug.rel task_mi + sc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel task_ + status.rel led_cam.rel led_pow.rel hal.rel batt_params.rel vo + ltable.rel pedo_lpf_coeff.rel kanaria.rel kanaria_c.rel get_e + i.rel util_funcs.rel i2c_mcu-sub.rel +Para-file: +Out-file: bsr.lmf +Map-file: bsr_k0r.map +Direc-file:bsr_mcu.dr + + +*** Link information *** + + 73 output segment(s) + 3E94H byte(s) real data + 6410 symbol(s) defined + + +*** Memory map *** + + + SPACE=REGULAR + + MEMORY=BCL0 + BASE ADDRESS=00000H SIZE=01000H + OUTPUT INPUT INPUT BASE SIZE + SEGMENT SEGMENT MODULE ADDRESS + @@VECT00 00000H 00002H CSEG AT + @@VECT00 @cstart 00000H 00002H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL loader 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL WDT 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL i2c_mcu 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL i2c_twl 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL self_flash + 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL task_debug + 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL task_status + 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL hal 00002H 00000H + LDR_CNSL 00002H 00000H CSEG PAGE64KP + LDR_CNSL util_funcs + 00002H 00000H +* gap * 00002H 0000EH + @@VECT10 00010H 00004H CSEG AT + @@VECT10 ini_VECT 00010H 00004H +* gap * 00014H 00008H + @@VECT1C 0001CH 00002H CSEG AT + @@VECT1C ini_VECT 0001CH 00002H +* gap * 0001EH 00006H + @@VECT24 00024H 00002H CSEG AT + @@VECT24 ini_VECT 00024H 00002H +* gap * 00026H 00004H + @@VECT2A 0002AH 00002H CSEG AT + @@VECT2A i2c_twl 0002AH 00002H +* gap * 0002CH 00008H + @@VECT34 00034H 00008H CSEG AT + @@VECT34 ini_VECT 00034H 00008H +* gap * 0003CH 0000EH + @@VECT4A 0004AH 00002H CSEG AT + @@VECT4A ini_VECT 0004AH 00002H +* gap * 0004CH 0000EH + @@VECT5A 0005AH 00002H CSEG AT + @@VECT5A i2c_ctr 0005AH 00002H +* gap * 0005CH 00006H + @@VECT62 00062H 00002H CSEG AT + @@VECT62 accero 00062H 00002H +* gap * 00064H 0001CH + @@CALT 00080H 00006H CSEG CALLT0 + @@CALT @cstart 00080H 00000H + @@CALT loader 00080H 00000H + @@CALT pm 00080H 00000H + @@CALT i2c_ctr 00080H 00000H + @@CALT main 00080H 00000H + @@CALT magic 00080H 00000H + @@CALT WDT 00080H 00000H + @@CALT i2c_mcu 00080H 00000H + @@CALT i2c_twl 00080H 00000H + @@CALT led 00080H 00000H + @@CALT rtc 00080H 00000H + @@CALT vreg_ctr 00080H 00000H + @@CALT vreg_twl 00080H 00000H + @@CALT adc 00080H 00000H + @@CALT renge 00080H 00006H + @@CALT accero 00086H 00000H + @@CALT self_flash + 00086H 00000H + @@CALT sw 00086H 00000H + @@CALT task_debug + 00086H 00000H + @@CALT task_misc + 00086H 00000H + @@CALT task_sys 00086H 00000H + @@CALT pedo_alg_thre_det2 + 00086H 00000H + @@CALT ini_VECT 00086H 00000H + @@CALT task_status + 00086H 00000H + @@CALT led_cam 00086H 00000H + @@CALT led_pow 00086H 00000H + @@CALT hal 00086H 00000H + @@CALT batt_params + 00086H 00000H + @@CALT voltable 00086H 00000H + @@CALT pedo_lpf_coeff + 00086H 00000H + @@CALT kanaria_c + 00086H 00000H + @@CALT util_funcs + 00086H 00000H + @@CALT i2c_mcu-sub + 00086H 00000H +* gap * 00086H 0003AH + ?CSEGOB0 000C0H 00004H CSEG OPT_BYTE + @@CODE 000C4H 00000H CSEG BASE + @@CODE magic 000C4H 00000H + @@CODE ini_VECT 000C4H 00000H + @@CODE batt_params + 000C4H 00000H + LDR_CODL 000C4H 00000H CSEG + LDR_CODL loader 000C4H 00000H + LDR_CODL WDT 000C4H 00000H + LDR_CODL i2c_mcu 000C4H 00000H + LDR_CODL i2c_twl 000C4H 00000H + LDR_CODL self_flash + 000C4H 00000H + LDR_CODL task_debug + 000C4H 00000H + LDR_CODL task_status + 000C4H 00000H + LDR_CODL hal 000C4H 00000H + LDR_CODL util_funcs + 000C4H 00000H + ?CSEGSI 000C4H 0000AH CSEG + LDR_CODE 000CEH 00978H CSEG + LDR_CODE loader 000CEH 00196H + LDR_CODE WDT 00264H 00000H + LDR_CODE i2c_mcu 00264H 002A2H + LDR_CODE i2c_twl 00506H 0005BH + LDR_CODE self_flash + 00561H 00370H + LDR_CODE task_debug + 008D1H 00000H + LDR_CODE task_status + 008D1H 00075H + LDR_CODE hal 00946H 000DCH + LDR_CODE util_funcs + 00A22H 00024H + FSL_CODE 00A46H 00322H CSEG + FSL_CODE fsl_block_cmd + 00A46H 0002BH + FSL_CODE fsl_block_check + 00A71H 00013H + FSL_CODE fsl_common + 00A84H 0014FH + FSL_CODE fsl_reset + 00BD3H 00001H + FSL_CODE fsl_si_ibf + 00BD4H 00064H + FSL_CODE fsl_phySwap + 00C38H 0004DH + FSL_CODE fsl_si_common + 00C85H 00061H + FSL_CODE fsl_swap 00CE6H 00030H + FSL_CODE fsl_write + 00D16H 00052H + @@LCODE 00D68H 00277H CSEG + @@LCODE @cstart 00D68H 0006DH + @@LCODE @imul 00DD5H 00011H + @@LCODE @lumul 00DE6H 0002BH + @@LCODE @isdiv 00E11H 00022H + @@LCODE @iudiv 00E33H 0002DH + @@LCODE @isrem 00E60H 00021H + @@LCODE @iurem 00E81H 0002FH + @@LCODE @lsdiv 00EB0H 00039H + @@LCODE @ludiv 00EE9H 0003FH + @@LCODE @divuw 00F28H 00034H + @@LCODE @ladd 00F5CH 0000FH + @@LCODE @llsh 00F6BH 0001BH + @@LCODE @lursh 00F86H 0001FH + @@LCODE @iscmp 00FA5H 0000CH + @@LCODE @lband 00FB1H 00014H + @@LCODE @bcdtob 00FC5H 0001AH +* gap * 00FDFH 00017H + MGC_LOAD 00FF6H 0000AH CSEG AT + MGC_LOAD magic 00FF6H 0000AH + + MEMORY=ROM + BASE ADDRESS=02000H SIZE=03000H + OUTPUT INPUT INPUT BASE SIZE + SEGMENT SEGMENT MODULE ADDRESS + MGC_MIMI 02000H 0000AH CSEG AT + MGC_MIMI magic 02000H 0000AH + @@CNST 0200AH 00282H CSEG + @@CNST @cstart 0200AH 00000H + @@CNST loader 0200AH 00000H + @@CNST pm 0200AH 00008H + @@CNST i2c_ctr 02012H 00000H + @@CNST main 02012H 00000H + @@CNST magic 02012H 00000H + @@CNST WDT 02012H 00000H + @@CNST i2c_mcu 02012H 00000H + @@CNST i2c_twl 02012H 00000H + @@CNST led 02012H 00000H + @@CNST rtc 02012H 00000H + @@CNST vreg_ctr 02012H 00000H + @@CNST vreg_twl 02012H 00000H + @@CNST adc 02012H 00008H + @@CNST renge 0201AH 00000H + @@CNST accero 0201AH 00000H + @@CNST self_flash + 0201AH 00002H + @@CNST sw 0201CH 00000H + @@CNST task_debug + 0201CH 00000H + @@CNST task_misc + 0201CH 00000H + @@CNST task_sys 0201CH 00000H + @@CNST pedo_alg_thre_det2 + 0201CH 00018H + @@CNST ini_VECT 02034H 00000H + @@CNST task_status + 02034H 00000H + @@CNST led_cam 02034H 00000H + @@CNST led_pow 02034H 00020H + @@CNST hal 02054H 00000H + @@CNST batt_params + 02054H 001C8H + @@CNST voltable 0221CH 00040H + @@CNST pedo_lpf_coeff + 0225CH 00030H + @@CNST kanaria_c + 0228CH 00000H + @@CNST util_funcs + 0228CH 00000H + @@CNST i2c_mcu-sub + 0228CH 00000H + ROM_CODE 0228CH 02619H CSEG + ROM_CODE pm 0228CH 00A4CH + ROM_CODE i2c_ctr 02CD8H 0005CH + ROM_CODE main 02D34H 00055H + ROM_CODE led 02D89H 00284H + ROM_CODE rtc 0300DH 000E0H + ROM_CODE vreg_ctr 030EDH 0049EH + ROM_CODE vreg_twl 0358BH 000F9H + ROM_CODE adc 03684H 00261H + ROM_CODE renge 038E5H 00018H + ROM_CODE accero 038FDH 00155H + ROM_CODE sw 03A52H 00131H + ROM_CODE task_misc + 03B83H 001C9H + ROM_CODE task_sys 03D4CH 0038AH + ROM_CODE pedo_alg_thre_det2 + 040D6H 004D4H + ROM_CODE led_cam 045AAH 000C4H + ROM_CODE led_pow 0466EH 0016FH + ROM_CODE voltable 047DDH 00000H + ROM_CODE pedo_lpf_coeff + 047DDH 00000H + ROM_CODE kanaria_c + 047DDH 00006H + ROM_CODE get_ei 047E3H 0000DH + ROM_CODE i2c_mcu-sub + 047F0H 000B5H + @@BASE 048A5H 00614H CSEG BASE + @@BASE loader 048A5H 00000H + @@BASE pm 048A5H 0003EH + @@BASE i2c_ctr 048E3H 00170H + @@BASE main 04A53H 00000H + @@BASE magic 04A53H 00000H + @@BASE WDT 04A53H 00000H + @@BASE i2c_mcu 04A53H 000F2H + @@BASE i2c_twl 04B45H 000D0H + @@BASE led 04C15H 00000H + @@BASE rtc 04C15H 0005DH + @@BASE vreg_ctr 04C72H 00000H + @@BASE vreg_twl 04C72H 00000H + @@BASE adc 04C72H 00094H + @@BASE renge 04D06H 0016BH + @@BASE accero 04E71H 00042H + @@BASE self_flash + 04EB3H 00000H + @@BASE sw 04EB3H 00000H + @@BASE task_debug + 04EB3H 00000H + @@BASE task_misc + 04EB3H 00000H + @@BASE task_sys 04EB3H 00000H + @@BASE pedo_alg_thre_det2 + 04EB3H 00000H + @@BASE ini_VECT 04EB3H 00006H + @@BASE task_status + 04EB9H 00000H + @@BASE led_cam 04EB9H 00000H + @@BASE led_pow 04EB9H 00000H + @@BASE hal 04EB9H 00000H + @@BASE batt_params + 04EB9H 00000H + @@BASE voltable 04EB9H 00000H + @@BASE pedo_lpf_coeff + 04EB9H 00000H + @@BASE kanaria_c + 04EB9H 00000H + @@BASE util_funcs + 04EB9H 00000H + @@BASE i2c_mcu-sub + 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL @cstart 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL pm 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL i2c_ctr 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL main 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL led 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL rtc 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL vreg_ctr 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL vreg_twl 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL adc 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL renge 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL accero 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL sw 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL task_misc + 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL task_sys 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL pedo_alg_thre_det2 + 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL ini_VECT 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL led_cam 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL led_pow 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL batt_params + 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL voltable 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL pedo_lpf_coeff + 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL kanaria_c + 04EB9H 00000H + @@CNSTL 04EB9H 00000H CSEG PAGE64KP + @@CNSTL i2c_mcu-sub + 04EB9H 00000H + @@RLINIT 04EB9H 00000H CSEG UNIT64KP + @@RLINIT loader 04EB9H 00000H + @@RLINIT pm 04EB9H 00000H + @@RLINIT i2c_ctr 04EB9H 00000H + @@RLINIT main 04EB9H 00000H + @@RLINIT magic 04EB9H 00000H + @@RLINIT WDT 04EB9H 00000H + @@RLINIT i2c_mcu 04EB9H 00000H + @@RLINIT i2c_twl 04EB9H 00000H + @@RLINIT led 04EB9H 00000H + @@RLINIT rtc 04EB9H 00000H + @@RLINIT vreg_ctr 04EB9H 00000H + @@RLINIT vreg_twl 04EB9H 00000H + @@RLINIT adc 04EB9H 00000H + @@RLINIT renge 04EB9H 00000H + @@RLINIT accero 04EB9H 00000H + @@RLINIT self_flash + 04EB9H 00000H + @@RLINIT sw 04EB9H 00000H + @@RLINIT task_debug + 04EB9H 00000H + @@RLINIT task_misc + 04EB9H 00000H + @@RLINIT task_sys 04EB9H 00000H + @@RLINIT pedo_alg_thre_det2 + 04EB9H 00000H + @@RLINIT ini_VECT 04EB9H 00000H + @@RLINIT task_status + 04EB9H 00000H + @@RLINIT led_cam 04EB9H 00000H + @@RLINIT led_pow 04EB9H 00000H + @@RLINIT hal 04EB9H 00000H + @@RLINIT batt_params + 04EB9H 00000H + @@RLINIT voltable 04EB9H 00000H + @@RLINIT pedo_lpf_coeff + 04EB9H 00000H + @@RLINIT kanaria_c + 04EB9H 00000H + @@RLINIT util_funcs + 04EB9H 00000H + @@RLINIT i2c_mcu-sub + 04EB9H 00000H + @@RLINIT @rom 04EB9H 00000H + @@CODEL 04EB9H 00000H CSEG + @@CODEL pm 04EB9H 00000H + @@CODEL i2c_ctr 04EB9H 00000H + @@CODEL main 04EB9H 00000H + @@CODEL magic 04EB9H 00000H + @@CODEL led 04EB9H 00000H + @@CODEL rtc 04EB9H 00000H + @@CODEL vreg_ctr 04EB9H 00000H + @@CODEL vreg_twl 04EB9H 00000H + @@CODEL adc 04EB9H 00000H + @@CODEL renge 04EB9H 00000H + @@CODEL accero 04EB9H 00000H + @@CODEL sw 04EB9H 00000H + @@CODEL task_misc + 04EB9H 00000H + @@CODEL task_sys 04EB9H 00000H + @@CODEL pedo_alg_thre_det2 + 04EB9H 00000H + @@CODEL ini_VECT 04EB9H 00000H + @@CODEL led_cam 04EB9H 00000H + @@CODEL led_pow 04EB9H 00000H + @@CODEL batt_params + 04EB9H 00000H + @@CODEL voltable 04EB9H 00000H + @@CODEL pedo_lpf_coeff + 04EB9H 00000H + @@CODEL kanaria_c + 04EB9H 00000H + @@CODEL i2c_mcu-sub + 04EB9H 00000H +* gap * 04EB9H 00001H + @@CNSTL 04EBAH 0000AH CSEG PAGE64KP + @@CNSTL @bcdtob 04EBAH 0000AH + @@R_INIT 04EC4H 0004AH CSEG UNIT64KP + @@R_INIT @cstart 04EC4H 00000H + @@R_INIT loader 04EC4H 00000H + @@R_INIT pm 04EC4H 00000H + @@R_INIT i2c_ctr 04EC4H 00000H + @@R_INIT main 04EC4H 00000H + @@R_INIT magic 04EC4H 00000H + @@R_INIT WDT 04EC4H 00000H + @@R_INIT i2c_mcu 04EC4H 00000H + @@R_INIT i2c_twl 04EC4H 00000H + @@R_INIT led 04EC4H 00000H + @@R_INIT rtc 04EC4H 00000H + @@R_INIT vreg_ctr 04EC4H 00000H + @@R_INIT vreg_twl 04EC4H 00000H + @@R_INIT adc 04EC4H 0000CH + @@R_INIT renge 04ED0H 00014H + @@R_INIT accero 04EE4H 00000H + @@R_INIT self_flash + 04EE4H 00000H + @@R_INIT sw 04EE4H 00000H + @@R_INIT task_debug + 04EE4H 00000H + @@R_INIT task_misc + 04EE4H 00026H + @@R_INIT task_sys 04F0AH 00000H + @@R_INIT pedo_alg_thre_det2 + 04F0AH 00000H + @@R_INIT ini_VECT 04F0AH 00000H + @@R_INIT task_status + 04F0AH 00000H + @@R_INIT led_cam 04F0AH 00000H + @@R_INIT led_pow 04F0AH 00004H + @@R_INIT hal 04F0EH 00000H + @@R_INIT batt_params + 04F0EH 00000H + @@R_INIT voltable 04F0EH 00000H + @@R_INIT pedo_lpf_coeff + 04F0EH 00000H + @@R_INIT kanaria_c + 04F0EH 00000H + @@R_INIT util_funcs + 04F0EH 00000H + @@R_INIT i2c_mcu-sub + 04F0EH 00000H + @@R_INIT @rom 04F0EH 00000H + @@R_INIS 04F0EH 00010H CSEG UNIT64KP + @@R_INIS @cstart 04F0EH 00000H + @@R_INIS loader 04F0EH 00000H + @@R_INIS pm 04F0EH 00002H + @@R_INIS i2c_ctr 04F10H 00002H + @@R_INIS main 04F12H 00000H + @@R_INIS magic 04F12H 00000H + @@R_INIS WDT 04F12H 00000H + @@R_INIS i2c_mcu 04F12H 00000H + @@R_INIS i2c_twl 04F12H 00000H + @@R_INIS led 04F12H 00000H + @@R_INIS rtc 04F12H 00000H + @@R_INIS vreg_ctr 04F12H 00000H + @@R_INIS vreg_twl 04F12H 00000H + @@R_INIS adc 04F12H 00000H + @@R_INIS renge 04F12H 00000H + @@R_INIS accero 04F12H 00000H + @@R_INIS self_flash + 04F12H 00000H + @@R_INIS sw 04F12H 00000H + @@R_INIS task_debug + 04F12H 00000H + @@R_INIS task_misc + 04F12H 00000H + @@R_INIS task_sys 04F12H 00002H + @@R_INIS pedo_alg_thre_det2 + 04F14H 00006H + @@R_INIS ini_VECT 04F1AH 00000H + @@R_INIS task_status + 04F1AH 00000H + @@R_INIS led_cam 04F1AH 00002H + @@R_INIS led_pow 04F1CH 00002H + @@R_INIS hal 04F1EH 00000H + @@R_INIS batt_params + 04F1EH 00000H + @@R_INIS voltable 04F1EH 00000H + @@R_INIS pedo_lpf_coeff + 04F1EH 00000H + @@R_INIS kanaria_c + 04F1EH 00000H + @@R_INIS util_funcs + 04F1EH 00000H + @@R_INIS i2c_mcu-sub + 04F1EH 00000H + @@R_INIS @rom 04F1EH 00000H + @@LCODEL 04F1EH 00022H CSEG + @@LCODEL abs 04F1EH 00008H + @@LCODEL memcpy_n 04F26H 0001AH +* gap * 04F40H 000B4H + MGC_VER 04FF4H 00002H CSEG AT + MGC_VER magic 04FF4H 00002H + MGC_TAIL 04FF6H 0000AH CSEG AT + MGC_TAIL magic 04FF6H 0000AH + + MEMORY=RAM + BASE ADDRESS=FF900H SIZE=00500H + OUTPUT INPUT INPUT BASE SIZE + SEGMENT SEGMENT MODULE ADDRESS + @@DATA FF900H 003CCH DSEG BASEP + @@DATA @cstart FF900H 00002H + @@DATA loader FF902H 00000H + @@DATA pm FF902H 00002H + @@DATA i2c_ctr FF904H 00000H + @@DATA main FF904H 0021EH + @@DATA magic FFB22H 00000H + @@DATA WDT FFB22H 00000H + @@DATA i2c_mcu FFB22H 00004H + @@DATA i2c_twl FFB26H 00000H + @@DATA led FFB26H 00076H + @@DATA rtc FFB9CH 00008H + @@DATA vreg_ctr FFBA4H 0005CH + @@DATA vreg_twl FFC00H 00010H + @@DATA adc FFC10H 00000H + @@DATA renge FFC10H 00014H + @@DATA accero FFC24H 00000H + @@DATA self_flash + FFC24H 00002H + @@DATA sw FFC26H 00000H + @@DATA task_debug + FFC26H 00000H + @@DATA task_misc + FFC26H 00008H + @@DATA task_sys FFC2EH 00000H + @@DATA pedo_alg_thre_det2 + FFC2EH 00098H + @@DATA ini_VECT FFCC6H 00000H + @@DATA task_status + FFCC6H 00000H + @@DATA led_cam FFCC6H 00000H + @@DATA led_pow FFCC6H 00006H + @@DATA hal FFCCCH 00000H + @@DATA batt_params + FFCCCH 00000H + @@DATA voltable FFCCCH 00000H + @@DATA pedo_lpf_coeff + FFCCCH 00000H + @@DATA kanaria FFCCCH 00000H + @@DATA kanaria_c + FFCCCH 00000H + @@DATA util_funcs + FFCCCH 00000H + @@DATA i2c_mcu-sub + FFCCCH 00000H + @@DATA @rom FFCCCH 00000H + @@INIT FFCCCH 0004AH DSEG BASEP + @@INIT @cstart FFCCCH 00000H + @@INIT loader FFCCCH 00000H + @@INIT pm FFCCCH 00000H + @@INIT i2c_ctr FFCCCH 00000H + @@INIT main FFCCCH 00000H + @@INIT magic FFCCCH 00000H + @@INIT WDT FFCCCH 00000H + @@INIT i2c_mcu FFCCCH 00000H + @@INIT i2c_twl FFCCCH 00000H + @@INIT led FFCCCH 00000H + @@INIT rtc FFCCCH 00000H + @@INIT vreg_ctr FFCCCH 00000H + @@INIT vreg_twl FFCCCH 00000H + @@INIT adc FFCCCH 0000CH + @@INIT renge FFCD8H 00014H + @@INIT accero FFCECH 00000H + @@INIT self_flash + FFCECH 00000H + @@INIT sw FFCECH 00000H + @@INIT task_debug + FFCECH 00000H + @@INIT task_misc + FFCECH 00026H + @@INIT task_sys FFD12H 00000H + @@INIT pedo_alg_thre_det2 + FFD12H 00000H + @@INIT ini_VECT FFD12H 00000H + @@INIT task_status + FFD12H 00000H + @@INIT led_cam FFD12H 00000H + @@INIT led_pow FFD12H 00004H + @@INIT hal FFD16H 00000H + @@INIT batt_params + FFD16H 00000H + @@INIT voltable FFD16H 00000H + @@INIT pedo_lpf_coeff + FFD16H 00000H + @@INIT kanaria FFD16H 00000H + @@INIT kanaria_c + FFD16H 00000H + @@INIT util_funcs + FFD16H 00000H + @@INIT i2c_mcu-sub + FFD16H 00000H + @@INIT @rom FFD16H 00000H + FSL_DATA FFD16H 00010H DSEG UNITP + FSL_DATA fsl_common + FFD16H 00010H + @@INITL FFD26H 00000H DSEG UNIT64KP + @@INITL loader FFD26H 00000H + @@INITL pm FFD26H 00000H + @@INITL i2c_ctr FFD26H 00000H + @@INITL main FFD26H 00000H + @@INITL magic FFD26H 00000H + @@INITL WDT FFD26H 00000H + @@INITL i2c_mcu FFD26H 00000H + @@INITL i2c_twl FFD26H 00000H + @@INITL led FFD26H 00000H + @@INITL rtc FFD26H 00000H + @@INITL vreg_ctr FFD26H 00000H + @@INITL vreg_twl FFD26H 00000H + @@INITL adc FFD26H 00000H + @@INITL renge FFD26H 00000H + @@INITL accero FFD26H 00000H + @@INITL self_flash + FFD26H 00000H + @@INITL sw FFD26H 00000H + @@INITL task_debug + FFD26H 00000H + @@INITL task_misc + FFD26H 00000H + @@INITL task_sys FFD26H 00000H + @@INITL pedo_alg_thre_det2 + FFD26H 00000H + @@INITL ini_VECT FFD26H 00000H + @@INITL task_status + FFD26H 00000H + @@INITL led_cam FFD26H 00000H + @@INITL led_pow FFD26H 00000H + @@INITL hal FFD26H 00000H + @@INITL batt_params + FFD26H 00000H + @@INITL voltable FFD26H 00000H + @@INITL pedo_lpf_coeff + FFD26H 00000H + @@INITL kanaria FFD26H 00000H + @@INITL kanaria_c + FFD26H 00000H + @@INITL util_funcs + FFD26H 00000H + @@INITL i2c_mcu-sub + FFD26H 00000H + @@INITL @rom FFD26H 00000H + @@DATAL FFD26H 00000H DSEG UNIT64KP + @@DATAL loader FFD26H 00000H + @@DATAL pm FFD26H 00000H + @@DATAL i2c_ctr FFD26H 00000H + @@DATAL main FFD26H 00000H + @@DATAL magic FFD26H 00000H + @@DATAL WDT FFD26H 00000H + @@DATAL i2c_mcu FFD26H 00000H + @@DATAL i2c_twl FFD26H 00000H + @@DATAL led FFD26H 00000H + @@DATAL rtc FFD26H 00000H + @@DATAL vreg_ctr FFD26H 00000H + @@DATAL vreg_twl FFD26H 00000H + @@DATAL adc FFD26H 00000H + @@DATAL renge FFD26H 00000H + @@DATAL accero FFD26H 00000H + @@DATAL self_flash + FFD26H 00000H + @@DATAL sw FFD26H 00000H + @@DATAL task_debug + FFD26H 00000H + @@DATAL task_misc + FFD26H 00000H + @@DATAL task_sys FFD26H 00000H + @@DATAL pedo_alg_thre_det2 + FFD26H 00000H + @@DATAL ini_VECT FFD26H 00000H + @@DATAL task_status + FFD26H 00000H + @@DATAL led_cam FFD26H 00000H + @@DATAL led_pow FFD26H 00000H + @@DATAL hal FFD26H 00000H + @@DATAL batt_params + FFD26H 00000H + @@DATAL voltable FFD26H 00000H + @@DATAL pedo_lpf_coeff + FFD26H 00000H + @@DATAL kanaria FFD26H 00000H + @@DATAL kanaria_c + FFD26H 00000H + @@DATAL util_funcs + FFD26H 00000H + @@DATAL i2c_mcu-sub + FFD26H 00000H + @@DATAL @rom FFD26H 00000H +* gap * FFD26H 000DAH + + MEMORY=RAM2 + BASE ADDRESS=FFE20H SIZE=000C0H + OUTPUT INPUT INPUT BASE SIZE + SEGMENT SEGMENT MODULE ADDRESS + @@INIS FFE20H 00010H DSEG SADDRP + @@INIS @cstart FFE20H 00000H + @@INIS loader FFE20H 00000H + @@INIS pm FFE20H 00002H + @@INIS i2c_ctr FFE22H 00002H + @@INIS main FFE24H 00000H + @@INIS magic FFE24H 00000H + @@INIS WDT FFE24H 00000H + @@INIS i2c_mcu FFE24H 00000H + @@INIS i2c_twl FFE24H 00000H + @@INIS led FFE24H 00000H + @@INIS rtc FFE24H 00000H + @@INIS vreg_ctr FFE24H 00000H + @@INIS vreg_twl FFE24H 00000H + @@INIS adc FFE24H 00000H + @@INIS renge FFE24H 00000H + @@INIS accero FFE24H 00000H + @@INIS self_flash + FFE24H 00000H + @@INIS sw FFE24H 00000H + @@INIS task_debug + FFE24H 00000H + @@INIS task_misc + FFE24H 00000H + @@INIS task_sys FFE24H 00002H + @@INIS pedo_alg_thre_det2 + FFE26H 00006H + @@INIS ini_VECT FFE2CH 00000H + @@INIS task_status + FFE2CH 00000H + @@INIS led_cam FFE2CH 00002H + @@INIS led_pow FFE2EH 00002H + @@INIS hal FFE30H 00000H + @@INIS batt_params + FFE30H 00000H + @@INIS voltable FFE30H 00000H + @@INIS pedo_lpf_coeff + FFE30H 00000H + @@INIS kanaria_c + FFE30H 00000H + @@INIS util_funcs + FFE30H 00000H + @@INIS i2c_mcu-sub + FFE30H 00000H + @@INIS @rom FFE30H 00000H + @@DATS FFE30H 00066H DSEG SADDRP + @@DATS @cstart FFE30H 00000H + @@DATS loader FFE30H 00000H + @@DATS pm FFE30H 0001AH + @@DATS i2c_ctr FFE4AH 00004H + @@DATS main FFE4EH 00000H + @@DATS magic FFE4EH 00000H + @@DATS WDT FFE4EH 00000H + @@DATS i2c_mcu FFE4EH 00008H + @@DATS i2c_twl FFE56H 00000H + @@DATS led FFE56H 00006H + @@DATS rtc FFE5CH 00000H + @@DATS vreg_ctr FFE5CH 00004H + @@DATS vreg_twl FFE60H 00000H + @@DATS adc FFE60H 0000AH + @@DATS renge FFE6AH 00002H + @@DATS accero FFE6CH 00002H + @@DATS self_flash + FFE6EH 00000H + @@DATS sw FFE6EH 0000CH + @@DATS task_debug + FFE7AH 00000H + @@DATS task_misc + FFE7AH 00004H + @@DATS task_sys FFE7EH 00002H + @@DATS pedo_alg_thre_det2 + FFE80H 0000EH + @@DATS ini_VECT FFE8EH 00000H + @@DATS task_status + FFE8EH 00002H + @@DATS led_cam FFE90H 00002H + @@DATS led_pow FFE92H 00004H + @@DATS hal FFE96H 00000H + @@DATS batt_params + FFE96H 00000H + @@DATS voltable FFE96H 00000H + @@DATS pedo_lpf_coeff + FFE96H 00000H + @@DATS kanaria_c + FFE96H 00000H + @@DATS util_funcs + FFE96H 00000H + @@DATS i2c_mcu-sub + FFE96H 00000H + @@DATS @rom FFE96H 00000H + @@BITS FFE96H 00006H BSEG + @@BITS @cstart FFE96H.0 00000H.0 + @@BITS loader FFE96H.0 00000H.0 + @@BITS pm FFE96H.0 00001H.1 + @@BITS i2c_ctr FFE97H.1 00000H.0 + @@BITS main FFE97H.1 00000H.1 + @@BITS magic FFE97H.2 00000H.0 + @@BITS WDT FFE97H.2 00000H.0 + @@BITS i2c_mcu FFE97H.2 00000H.4 + @@BITS i2c_twl FFE97H.6 00000H.0 + @@BITS led FFE97H.6 00000H.4 + @@BITS rtc FFE98H.2 00000H.3 + @@BITS vreg_ctr FFE98H.5 00000H.1 + @@BITS vreg_twl FFE98H.6 00000H.0 + @@BITS adc FFE98H.6 00000H.4 + @@BITS renge FFE99H.2 00000H.2 + @@BITS accero FFE99H.4 00000H.0 + @@BITS self_flash + FFE99H.4 00000H.0 + @@BITS sw FFE99H.4 00000H.1 + @@BITS task_debug + FFE99H.5 00000H.0 + @@BITS task_misc + FFE99H.5 00000H.3 + @@BITS task_sys FFE9AH.0 00000H.0 + @@BITS pedo_alg_thre_det2 + FFE9AH.0 00000H.2 + @@BITS ini_VECT FFE9AH.2 00000H.0 + @@BITS task_status + FFE9AH.2 00000H.0 + @@BITS led_cam FFE9AH.2 00000H.1 + @@BITS led_pow FFE9AH.3 00000H.0 + @@BITS hal FFE9AH.3 00000H.6 + @@BITS batt_params + FFE9BH.1 00000H.0 + @@BITS voltable FFE9BH.1 00000H.0 + @@BITS pedo_lpf_coeff + FFE9BH.1 00000H.0 + @@BITS kanaria_c + FFE9BH.1 00000H.0 + @@BITS util_funcs + FFE9BH.1 00000H.0 + @@BITS i2c_mcu-sub + FFE9BH.1 00000H.0 +* gap * FFE9CH 00038H + @@SEGREG FFED4H 00004H DSEG AT + @@SEGREG @SEGREG FFED4H 00004H + @@RTARG0 FFED8H 00008H DSEG AT + @@RTARG0 @RTARG0 FFED8H 00008H + + + Target chip : uPD79F0104 + Device file : E1.00b + \ No newline at end of file diff --git a/snake_tags/2.36/bsr_mcu.dr b/snake_tags/2.36/bsr_mcu.dr new file mode 100644 index 0000000..81aeecc --- /dev/null +++ b/snake_tags/2.36/bsr_mcu.dr @@ -0,0 +1,46 @@ +;;; ̈̒` +;32kB = 0x7FFF +MEMORY BCL0: (00000H, 01000H ) +;MEMORY BCL1: (01000H, 01000H ) ; obNAbv̈ +MEMORY ROM : (02000H, 03000H ) +;MEMORY ROM_BKUP:(05000H, 03000H ) ; obNAbv̈ +;MEMORY OCD :(0FC00H, 00400H ) ; OCDgĂ炵 + + +;;; ZOg̊ݒ +; u[gubN0Ɋ蓖Ă +MERGE LDR_CODE : =BCL0 +MERGE LDR_CODL : =BCL0 +MERGE FSL_CODE : =BCL0 ; =FSL ; ސtbVCu +MERGE @@LCODE : =BCL0 ; X^[gAbv[` +;MERGE @@LCODEL : =BCL0 + +;MERGE LDR_RINT:=BCL0 +;MERGE LDR_CNST:=BCL0 +MERGE LDR_CNSL:=BCL0 + + + +; ʏ̈ɒu +MERGE ROM_CODE:=ROM +MERGE @@CNST: =ROM +MERGE @@R_INIT: =ROM ; ROMȊOɒuȂX^[gAbv[`vC + + + + + + +; }WbNio[ +;; magic.c̒Ŏw + + +;--- RAM̈ ------------------------------------------------------- +; +; RAM1,RAM2̈̓[U[vOŎgpĂǂłAZtvO +; ZtvÕCugp邽߁Al͔j󂳂܂B +; +memory RAM : (0FF900H, 0500H) ; [U[q`l̈ +;memory SLF_RAM : (0FF900H, 0020H) ; Slef Program\̈[gp֎~] +memory RAM2 : (0FFE20H, 00C0H) ; ZtvOAgp֎~̈ +;memory SLF_RAM : (0FFE00H, 0020H) ; Slef Program\̈[gp֎~] diff --git a/snake_tags/2.36/bsr_system.h b/snake_tags/2.36/bsr_system.h new file mode 100644 index 0000000..3bf1acd --- /dev/null +++ b/snake_tags/2.36/bsr_system.h @@ -0,0 +1,73 @@ +#ifndef __bsr_system__ +#define __bsr_system__ + +// $Id$ + + +// Cxg[ṽXe[g +enum pwr_state_ +{ + OFF_TRIG = 0, + ON_CHECK, + ON_TRIG, + ON, +// SLEEP_TRIG, + SLEEP, +// WAKE, + OFF, +}; + +enum poweron_reason_ +{ + NONE = 0, + RSN_PWSW, + RSN_RTC_ALARM, + RSN_TRIAL, // ̌ + RSN_RSV4, + RSN_RSV5 +}; + + +enum model_ +{ + MODEL_JIKKI, + MODEL_TS_BOARD, + MODEL_KUC_DEBUGGER, + MODEL_JIKKI_NOBATT, + MODEL_KUC_CAPTURE, + MODEL_IS_DEBUGGER, // Asystem_status.model MODEL_JIKKI ɂĂ̂Ŗgp + MODEL_IS_CAPTURE, +}; + +enum family_ +{ + FAMILY_CTR, + FAMILY_SPFL, // LL + FAMILY_SNAKE, // LAGER + FAMILY_FLOWER, + FAMILY_CLOSER, + FAMILY_RESERVED5, +}; + +// ^XNVXȅԏȂ +typedef struct _system_status_ +{ + enum pwr_state_ pwr_state; + enum poweron_reason_ poweron_reason; + unsigned char reboot:1; + unsigned char captureBox:1; // Lv` SDK ɂ͎@ƕԂ + unsigned char taikendai:1; + unsigned char taikendai_nbd:1; + unsigned char is_dev:1; // IS ̃fobKAقڎ@ + enum model_ model; + enum family_ family; + unsigned char LCD_is_CGS:1; +}system_status_; + +extern bit force_off; + +extern system_status_ system_status; + + + +#endif diff --git a/snake_tags/2.36/config.h b/snake_tags/2.36/config.h new file mode 100644 index 0000000..a02a8a6 --- /dev/null +++ b/snake_tags/2.36/config.h @@ -0,0 +1,109 @@ +#ifndef __config__ +#define __config__ +/* + + $Id: config.h 418 2011-09-22 01:35:37Z n2232 $ + +*/ + +#define MCU_VER_MAJOR 0x02 +#define MCU_VER_MINOR 0x36 + + +// rhXCb` +#define _MCU_ARR // snake,closer + + +// fobOXCb` + +//#define _debug_led_ // LED print fobOƂ +//#define _ALLOW_NOBATT_ // @drȂi=A_v^̂݁jł̋N +//#define _DBG_LED_PRINT_ // LED print fobOƂ(ȃAbvf[gp) +//#define _ENABLE_COMMAND3_ // mcuZbgwdtR}hLɂ +//#define _FORCE_TAIKENDAI_ +//#define _FORCE_TAIKENDAI_NBD_ + +//#define _DBG_CHK_OFF_LEAK_ // OFF[Nd̃`FbN(fobKŊmF) +//#define _DBG_NOP_ // u[N\邽߂NOP()LɂƂ + +//#define _ENABLE_HAL_ // fobOpHALLɂBRgAEgŃX[ɂȂB +//#define _ENABLE_PRESS_SEL_TO_WDT_ // SEL WDT + +//#define _WDT_CHECK_ // WDT炵̂ŒǐՂƂbreakāAR[X^bN +// IvVoCg1oCgځAbit7ZbgKv܂B + +//#define _DI_WITH_CHECK_ // 荞݋֎~dɊ|Ȃ`FbN + +//#define _DBG_BT_FULL_ +//#define _DBG_FORCE_FLOWER + + +#ifdef _DBG_NOP_ // R[hKvNOPƋʂ邽 +# define dbg_nop() NOP() +#else +# define dbg_nop() ; +#endif + + +#define _I2C_ERR_ABORT_ // *Won* I2CŌ돑݂炵ȍ~@ + //. u[NĂSRȂȂ܂... + +// dlt@[ +//#define _TAIKENDAI_ +// homej[ɓĂ܂̂t@[‚BROMȂ̂œdrp[^pX +//#define _TAIKENDAI_SEISAN_SPECIAL_ +// Yɑ̌dlǂƁAA_v^ȂƓd炸ɌɎxႪ̂ňꎞt@[ +//#define _RVD_ +// fobKA^b`Ƀ^[QbgZbgœd؂Ă܂̂ + + +// ̎́C‚ȂƑ̌̐YłȂˁI +#ifdef _TAIKENDAI_SEISAN_SPECIAL_ +#define MCU_VER_MINOR 0x81 +#endif + + +#ifdef _TAIKENDAI_ +#define MCU_VER_MINOR 0x92 +// 0x90 1.31 @HOMEɓĂ܂̂XCb`̃}XNő΍ +// ROMŝ߁Adrp[^폜 + +#endif + + +#define _firm_format_v3_ + +//#define _MODEL_TEG2_ + // TEG2 CPU { Type-T + +//#define _MODEL_WM0_ +//#define _MODEL_WM0_TEG2_CTRC_ + +//#define _MODEL_TS0_ + // TEG2 CPU { Type-C + +#define _MODEL_CTR_ + // TS board, WM1,1 TS-CTRC, @ + + +// ---------------------------------- // +#ifdef _MODEL_TEG2_ +unsupported! +#endif + + +#ifdef _MODEL_WM0_ +unsupported! +#endif + + +#ifdef _MODEL_TS0_ +unsupported! +#endif + +#ifdef _MODEL_CTR_ +#define _PMIC_CTR_ +#define _MCU_BSR_ +#endif + +#endif diff --git a/snake_tags/2.36/fsl.h b/snake_tags/2.36/fsl.h new file mode 100644 index 0000000..0e806b5 --- /dev/null +++ b/snake_tags/2.36/fsl.h @@ -0,0 +1,362 @@ +/*==============================================================================================*/ +/* Project = Selfprogramming library for 78K0R/Ix3/Kx3-L Single Voltage SST (MF2) Flash */ +/* Module = fsl.h */ +/* Version = V1.01 */ +/* Date = 28.03.2008 11:45:42 */ +/*==============================================================================================*/ +/* COPYRIGHT */ +/*==============================================================================================*/ +/* Copyright (c) 2007 by NEC Electronics (Europe) GmbH, */ +/* a company of the NEC Electronics Corporation */ +/*==============================================================================================*/ +/* Purpose: */ +/* constant, type and function prototype definitions used by the FSL */ +/* */ +/*==============================================================================================*/ +/* */ +/* Warranty Disclaimer */ +/* */ +/* Because the Product(s) is licensed free of charge, there is no warranty of any kind */ +/* whatsoever and expressly disclaimed and excluded by NEC, either expressed or implied, */ +/* including but not limited to those for non-infringement of intellectual property, */ +/* merchantability and/or fitness for the particular purpose. NEC shall not have any obligation */ +/* to maintain, service or provide bug fixes for the supplied Product(s) and/or the Application.*/ +/* */ +/* Each User is solely responsible for determining the appropriateness of using the Product(s) */ +/* and assumes all risks associated with its exercise of rights under this Agreement, */ +/* including, but not limited to the risks and costs of program errors, compliance with */ +/* applicable laws, damage to or loss of data, programs or equipment, and unavailability or */ +/* interruption of operations. */ +/* */ +/* Limitation of Liability */ +/* */ +/* In no event shall NEC be liable to the User for any incidental, consequential, indirect, */ +/* or punitive damage (including but not limited to lost profits) regardless of whether */ +/* such liability is based on breach of contract, tort, strict liability, breach of warranties, */ +/* failure of essential purpose or otherwise and even if advised of the possibility of */ +/* such damages. NEC shall not be liable for any services or products provided by third party */ +/* vendors, developers or consultants identified or referred to the User by NEC in connection */ +/* with the Product(s) and/or the Application. */ +/* */ +/*==============================================================================================*/ +/* Environment: PM plus (V6.30) */ +/* RA78K0(V1.20) */ +/* CC78K0(V2.00) */ +/*==============================================================================================*/ + +#ifndef __FSL_H_INCLUDED +#define __FSL_H_INCLUDED + + +/*==============================================================================================*/ +/* FSL type definitions */ +/*==============================================================================================*/ +typedef unsigned char fsl_u08; +typedef unsigned int fsl_u16; +typedef unsigned long int fsl_u32; + + +/*==============================================================================================*/ +/* constant definitions */ +/*==============================================================================================*/ + +/*status code definitions returned by the FSL functions */ +#define FSL_OK 0x00 +#define FSL_ERR_FLMD0 0x01 +#define FSL_ERR_PARAMETER 0x05 +#define FSL_ERR_PROTECTION 0x10 +#define FSL_ERR_ERASE 0x1A +#define FSL_ERR_BLANKCHECK 0x1B +#define FSL_ERR_IVERIFY 0x1B +#define FSL_ERR_WRITE 0x1C +#define FSL_ERR_EEP_IVERIFY 0x1D +#define FSL_ERR_EEP_BLANKCHECK 0x1E +#define FSL_ERR_INTERRUPTION 0x1F + + +/*==============================================================================================*/ +/* global function prototypes */ +/*==============================================================================================*/ + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: initialization of selfprogramming environment */ +/* After initialization: */ +/* - the pointer to the data-buffer is stored */ +/* - all timing data are re-calculated according to the used system clock */ +/* */ +/* CAUTION: */ +/* The FSL_Init(&data_buffer) function is interruptible. Please use the */ +/* FSL_Init_cont(&data_buffer) to recall it as long return status is 0x1F. */ +/* */ +/* Input: data_buffer_pu08 - pointer to a data buffer of N...256 bytes */ +/* (used for data exchange between firmware and application) */ +/* Output: - */ +/* Returned: u08, status_code */ +/* = 0x00(FSL_OK), normal and means initialization OK */ +/* = 0x1F(FSL_ERR_INTERRUPTION), initialization interrupted by user interrupt*/ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_Init( fsl_u08 * data_buffer_pu08 ); +extern fsl_u08 FSL_Init_cont( fsl_u08 * data_buffer_pu08 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: checks the voltage level (high or low) at FLMD0 pin */ +/* Input: - */ +/* Output: - */ +/* Returned: fsl_u08, status_code */ +/* = 0x00(FSL_OK), normal and means FLMD0=HIGH */ +/* = 0x01(FSL_ERR_FLMD0), error, FLMD0=LOW */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_ModeCheck( void ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: checks if specified block is blank */ +/* Input: block_u16 - block number has to be checked */ +/* Output: - */ +/* Returned: fsl_u08, status_code */ +/* = 0x00(FSL_OK), normal and means "block is blank" */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x1B(FSL_ERR_BLANKCHECK), blank-check error, means "block not blank" */ +/* = 0x1F(FSL_ERR_INTERRUPTION), blank-check interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_BlankCheck( fsl_u16 block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: erase specified block */ +/* Input: block_u16 - block number has to be erase */ +/* Output: - */ +/* Returned: fsl_u08, status_code */ +/* = 0x00(FSL_OK), normal and means "block erased successfully" */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), tried to erase protected area */ +/* = 0x1A(FSL_ERR_ERASE), erase error, retry up to max. 255 times */ +/* = 0x1F(FSL_ERR_INTERRUPTION), erasing interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_Erase( fsl_u16 block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: performs internal verify on specified block */ +/* Input: block_u16 - block number has to be verified */ +/* Output: - */ +/* Returned: fsl_u08, status_code */ +/* = 0x00(FSL_OK), normal and means "block is verified" */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), verify interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_IVerify( fsl_u16 block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: writes N words from the data buffer into flash */ +/* Input: s_address_u32 - starting flash address the data has to be written */ +/* See Condition 2) please. */ +/* my_wordcount_u08 - number of words (4 bytes) has to be written */ +/* Output: - */ +/* Condition: 1) (s_address_u32 MOD 4 == 0) */ +/* 2) most significant byte (MSB) of s_address_u32 has to be 0x00. */ +/* Means: 0x00abcdef 24 bit flash address allowed */ +/* 3) (word_count_u08 <= sizeof(data buffer)) NOT CHECKED BY LIBRARY !!!!! */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1C(FSL_ERR_WRITE), write error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_Write( fsl_u32 s_address_u32, fsl_u08 word_count_u08 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: writes N words from the data buffer into flash */ +/* Before "writing" a N-word blankcheck is performed. */ +/* After "writing" a N-Word internal verify is performed. */ +/* Input: s_address_u32 - starting destination address has to be written */ +/* my_wordcount_u08 - number of words (4 bytes) has to be written */ +/* Output: - */ +/* Condition: 1) (s_address_u32 MOD 4 == 0) */ +/* 2) (word_count_u08 <= sizeof(data buffer)) NOT CHECKED BY FIRMWARE !!!!! */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1C(FSL_ERR_WRITE), write error */ +/* = 0x1D(FSL_ERR_EEP_IVERIFY), verify error */ +/* = 0x1E(FSL_ERR_EEP_BLANKCHECK), blankcheck error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_EEPROMWrite( fsl_u32 s_address_u32, + fsl_u08 word_count_u08 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: reads the security information */ +/* Input: destination_pu16 - destination address of the security info */ +/* The format of the security info is: "unsigned short int" */ +/* */ +/* Format of the security info: */ +/* bit_0 = 0 -> chip erase command disabled, otherwise enabled */ +/* bit_1 = 0 -> block erase command disabled, otherwise enabled */ +/* bit_2 = 0 -> write command disabled, otherwise enabled */ +/* bit_4 = 0 -> boot-area re-programming disabled, otherwise enabled */ +/* bit_8...bit_15 = 03H -> last block of the boot-area */ +/* other bits = 1 */ +/* Output: - */ +/* Changed: content of the data_buffer */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetSecurityFlags( fsl_u16 * destination_pu16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: read the boot flag i */ +/* Input: destination_pu08 - destination address of the bootflag info */ +/* The format of the boot-flag info is: "unsigned char" */ +/* The value of the boot info is 0x00 for cluster 0 and 0x01 for cluster 1. */ +/* Output: - */ +/* Changed: content of the data_buffer */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetActiveBootCluster( fsl_u08 * destination_pu08 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: puts the last address of the specified block into *destination_pu32 */ +/* Input: *destination_pu32 - destination where the last-block-address */ +/* should be stored */ +/* block_u16 - block number of the last address is needed */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetBlockEndAddr( fsl_u32 * destination_pu32, + fsl_u16 block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: puts the information about the protected flash area into the function parameter */ +/* Input: *start_block_pu16 - destination where the FSW start block should be stored */ +/* *end_block_pu16 - destination where the FSW end block should be stored */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_GetFlashShieldWindow( fsl_u16 * start_block_pu16, + fsl_u16 * end_block_pu16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: defines a new Flash-Shield-Window area inside the flash memory */ +/* Input: start_block_u16 - starting block of the Flash-Shield-Window (FSW) */ +/* end_block_u16 - ending block of the flash-Shield-Window (FSW) */ +/* Changed: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1A(FSL_ERR_ERASE), erase error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_SetFlashShieldWindow( fsl_u16 start_block_u16, + fsl_u16 end_block_u16 ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: Swapping of bootcluster 0 and 1 */ +/* */ +/* CAUTION !!!! */ +/* After this function the boot cluster are immediately swapped */ +/* Input: - */ +/* Output: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1A(FSL_ERR_ERASE), erase error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_SwapBootCluster( void ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL command function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: sets specified security flag by dedicated command-function. */ +/* */ +/* There are following security levels: */ +/* a) chip-erase protection (cannot be reset by programmer !!!) */ +/* b) block-erase protection (can be reset by chip-erase on programmer) */ +/* c) write protection (can be reset by chip-erase on programmer) */ +/* d) boot-cluster protection (cannot be reset by programmer !!!) */ +/* */ +/* CAUTION !!!! */ +/* Each security flag can be written by the application only once */ +/* */ +/* Input: - */ +/* Output: - */ +/* Returned: fsl_u08, status code */ +/* = 0x00(FSL_OK), normal */ +/* = 0x05(FSL_ERR_PARAMETER), parameter error */ +/* = 0x10(FSL_ERR_PROTECTION), protection error */ +/* = 0x1A(FSL_ERR_ERASE), erase error */ +/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ +/* = 0x1F(FSL_ERR_INTERRUPTION), write interrupted by user interrupt */ +/*----------------------------------------------------------------------------------------------*/ +extern fsl_u08 FSL_SetChipEraseProtectFlag( void ); +extern fsl_u08 FSL_SetBlockEraseProtectFlag( void ); +extern fsl_u08 FSL_SetWriteProtectFlag( void ); +extern fsl_u08 FSL_SetBootClusterProtectFlag( void ); + + +/*----------------------------------------------------------------------------------------------*/ +/* Block type: FSL function */ +/*----------------------------------------------------------------------------------------------*/ +/* Purpose: defines the firmware operation method after interrupt service (ISR) execution. */ +/* Input: mode_u08 = 0x00, after RETI the firmware is continuing the interrupted command.*/ +/* = other, after RETI the firmware is interrupted with status 0x1F. */ +/* Changed: - */ +/* Returned: - */ +/*----------------------------------------------------------------------------------------------*/ +extern void FSL_SetInterruptMode( fsl_u08 mode_u08 ); + +#endif diff --git a/snake_tags/2.36/fsl_user.h b/snake_tags/2.36/fsl_user.h new file mode 100644 index 0000000..1018689 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/get_ei.asm b/snake_tags/2.36/get_ei.asm new file mode 100644 index 0000000..29f4a6e --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/hal.c b/snake_tags/2.36/hal.c new file mode 100644 index 0000000..e2e72ec --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/hal.h b/snake_tags/2.36/hal.h new file mode 100644 index 0000000..245be75 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/hoge.bin b/snake_tags/2.36/hoge.bin new file mode 100644 index 0000000000000000000000000000000000000000..a3d26e36a859974a2130b26f17cfa82f384f9d0b GIT binary patch literal 16387 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 literal 0 HcmV?d00001 diff --git a/snake_tags/2.36/i2c_ctr.c b/snake_tags/2.36/i2c_ctr.c new file mode 100644 index 0000000..4bd238e --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/i2c_ctr.h b/snake_tags/2.36/i2c_ctr.h new file mode 100644 index 0000000..16234ff --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/i2c_mcu-sub.c b/snake_tags/2.36/i2c_mcu-sub.c new file mode 100644 index 0000000..b1b468c --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/i2c_mcu.c b/snake_tags/2.36/i2c_mcu.c new file mode 100644 index 0000000..a417289 --- /dev/null +++ b/snake_tags/2.36/i2c_mcu.c @@ -0,0 +1,660 @@ +/* ======================================================== + ȈI2CiytFgpjʐM + de JHL cJZ + '09 Feb - + + $Id: $ + ======================================================== */ +#ifndef _WIN32 +#pragma sfr +#pragma di +#pragma ei +#pragma nop +#pragma inline // memcpy()CCWJ(̕I) +#endif + +#include "incs_loader.h" +#include "i2c_mcu.h" +#include "loader.h" +#include "util_funcs.h" + +#include "i2c_mcu_sub.h" + + + +// ======================================================== +// WX^̃rbg +// vtBbNXbAꕔ̃rbgWX^ɂԂ邽... +// SMR0n +#define bCKS0 ( 1 << 15 ) +#define bCCS0 ( 1 << 14 ) +#define bSTS0 ( 1 << 8 ) +#define bSIS0 ( 1 << 6 ) +#define bMD0n2 ( 1 << 2 ) +#define bMD0n1 ( 1 << 1 ) +#define bMD0n0 ( 1 << 0 ) +#define bSMR0n_FIXEDBIT ( 1 << 5 ) + +// SSR0n +#define bit_TSF0 6 +#define PEF0 ( 1 << 1 ) + +// SIR0n +#define PECT0 ( 1 << 1 ) + +// SCR0n +#define TXE0 ( 1 << 15 ) +#define RXE0 ( 1 << 14 ) +#define SLC02 4 +#define DLS02 0 +#define TSF0 ( 1 << 6 ) + +// SOn +#define TAUS_MASK 0x0B0B; + +// DMCn +#define DRS ( 1 << 6 ) + + + + +// ======================================================== +static void iic_mcu_send_st( ); + +// *sub炵Ă΂Ȃ +void iic_mcu_send_re_st( ); +void iic_mcu_send_sp( ); +i2c_err iic_mcu_send_a_byte( u8 ); +i2c_err iic_mcu_call_slave( u8 slave ); + + +// ======================================================== +bit iic_mcu_wo_dma; +volatile bit iic_mcu_busy; +static volatile bit iic_mcu_initialized; + + +static u8 iic_send_work[4]; +static u8 *p_iic_send_wo_dma_dat; +static u8 iic_send_wo_dma_len; + +// f[^G[iROHMxZTjgĈ +/// Ƃ肠ADMAgp}`oCgCg ̎ɂ@\Ȃ +static u8 last_slave, last_reg_adrs, last_size; + +i2c_err iic_mcu_result; // ꕶ[h̎̓f[^ԂB + +#ifdef i2c_timeout_test +extern bit i2c_mcu_time_out_error; +#endif + + + +/********************************************//** + + ***********************************************/ +void nop8() +{ + // ɗ call 3clk, return 6clk +} + + +/********************************************//** + ̒ʐMÎ҂B + + ^CAEgL + ***********************************************/ +static i2c_err iic_mcu_wait_free() +{ + u16 tot = 0; + + iic_mcu_start( ); + while( 1 ) + { + DI_wt_chk(); + if( !iic_mcu_busy ) + { + iic_mcu_busy = true; + EI(); + break; + } + EI(); + if( ++tot == 0 ) + { +#ifdef i2c_timeout_test + i2c_mcu_time_out_error = true; +#endif + return( I2C_ERR_TIMEOUT ); + } + } + return( I2C_ERR_OK ); +} + + + +/********************************************//** + X[u w1x [h + + Ԓlf[^̂̂łB + + G[R[h iic_mcu_result ɓĂ܂ + ***********************************************/ +u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ) +{ + u8 dat; + + iic_mcu_result = iic_mcu_read( SLA, adrs, 1, &dat ); + if( iic_mcu_result != I2C_ERR_OK ) + { + dat = 0xff; + } + + return ( dat ); +} + + + +/********************************************//** + X[ũ[h + + yz + + X[uEFCgRfBVoƂ͋֎~łB + + ̏ꍇłG[oȂǂł܂ + ***********************************************/ +i2c_err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8 * dest ) +{ + +#if 1 + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + // (^CAEg) + return( I2C_ERR_TIMEOUT ); + } +#else + // gpȂA +#endif + + // X^[gRfBVƃX[ǔĂяoAWX^AhX̑M + if( iic_mcu_call_slave( slave ) != 0 ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + + // WX^AhX̑M + iic_mcu_send_a_byte( adrs ); // I܂ŋAĂȂ + + // ΂NAKAĂȂO + + // f[^M // + iic_mcu_send_re_st( ); // X^[gRfBV + iic_mcu_send_a_byte( slave | 0x01 ); // M܂Ŗ߂Ă܂B + + // f[^M + ST0 = 0x0004; // M[hɐݒς̂ŃWbN~ + SCR02 = RXE0 | 1 << SLC02 | 7 << DLS02; // Mݒ + SS0 = 0x0004; // ʐMҋ@ + + do + { + if( len == 1 ) + { + SOE0 = 0x0000; // ŌNAK + } + IICIF10 = 0; + SIO10 = 0xFF; // _~[f[^ƎMJn + while( IICIF10 == 0 ) + {;} // M҂ + + *dest = SIO10; + dest++; + len--; + } + while( len != 0 ); + + if( slave == IIC_SLA_CODEC ) + { + codec_dummy_write(); + } + + iic_mcu_send_sp( ); + + IICIF10 = 0; + iic_mcu_busy = false; + return ( I2C_ERR_OK ); +} + + + + +/********************************************//** + X[u wPoCgx Cg + + O̓]Î҂āACg܂B + + Ԓl@iic_mcu_write@ɓ + ***********************************************/ +i2c_err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ) +{ + // P̎DMAƂNȂłƏI点 + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + return( I2C_ERR_TIMEOUT ); + } + + // X^[gRfBVƃX[ǔĂяo... + IICMK10 = 1; + if( iic_mcu_call_slave( SLA ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return( I2C_ERR_NOSLAVE ); + } + iic_mcu_send_a_byte( adrs ); + iic_mcu_send_a_byte( dat ); + iic_mcu_send_sp( ); + iic_mcu_busy = false; + return ( I2C_ERR_OK ); +} + + + +/********************************************//** + X[uփCg + + WX^ adrs 擪ɁA + *str + len܂B + + yz + 1) X[uEFCgRfBVoƂ͋֎~łB + ̏ꍇłG[oȂǂł܂ + 2) len < sizeof(iic_send_work) łȂDMA g܂BiRAMsjւڂB + + ylz + DMA1gp܂B + ***********************************************/ +i2c_err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src ) +{ + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + return( I2C_ERR_TIMEOUT ); + } +#if 0 // renge^̃}`^XNɂȂłɂ + // gpȂA +#endif + + // X^[gRfBVƃX[ǔĂяo... + IICMK10 = 1; + IICIF10 = 0; + if( iic_mcu_call_slave( slave ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + + IICIF10 = 0; + if( ! iic_mcu_wo_dma /* || len <= iic_send_work */ ) + { + // DMAgpiʏj// + + // WX^AhX𑗂Af[^̏ + memcpy( iic_send_work, src, 4 ); //obt@Ƃ4oCgpӂĖ߁B + + // gĈ + last_slave = slave; + last_reg_adrs = adrs; + last_size = len; + + // DMAZbg + while( DST1 ) + {;} + + DEN1 = 1; + DSA1 = (u8)( &SIO10 ); + DRA1 = (u16)( &iic_send_work[0] ); + DBC1 = len; + DMC1 = DRS | 8; // RAM -> SFR, 8bit, IRQ, IIC10 + + DMAIF1 = 0; + DMAMK1 = 0; + DST1 = 1; // DEN1 = 12clkȏJ + + SIO10 = adrs; // ςȂI 荞݂DMAX^[g + // c͊荞݃[` + } + else + { + // DMAgpȂ // + + // WX^AhX̑M + IICMK10 = 0; + SIO10 = adrs; + + iic_send_wo_dma_len = len; + p_iic_send_wo_dma_dat = (u8*)src; + // c͊荞݃[` + } + + return ( I2C_ERR_OK ); +} + + + + +/********************************************//** + DMAP]I荞 + + IIC_mcu ̑MR[obN֐̂悤Ȃ + + FDMA]IŁAI2C̓]͏IĂ܂ + +@ 荞ݒȂǂŁADMA1̏xꍇA + IIC10̊荞݂̏łɁA荞݂𔭐ȂȂ + ꂪ܂B܂A@ɂ܂B + + @̂߁ADMAdl̍ق́AŌ̃oCg͑M + tÕ|[OŊmF܂B + ***********************************************/ +__interrupt void int_dma1( ) +{ + static bit in_retry; + + EI(); + + // Ō̃oCg̑M҂ + while( ( SSR02L & TSF0 ) != 0 ) + { + u16 i = 0; + if( ++i == 0 ) // ^CAEgH + { + break; + } + } + + // XgbvRfBVs +// iic_mcu_send_sp(); // ISRŊO̊֐ĂԂ͓̂siėpWX^ҔĵœWJ + { + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // SCL + nop8(); //. |ȂBO̊֐Ă +/* + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); +*/ + SO0 = 0x0400 | TAUS_MASK; // SCL + nop8(); +/* + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); +*/ + SO0 = 0x0404 | TAUS_MASK; + } + + IICMK10 = 1; + + // f[^̓r NAK AxgCB + /// 蔲 + if( SIR02 != 0 ) + { + SIR02 = SSR02; + + if( !in_retry ) + { + in_retry = true; + + IICIF10 = 0; + iic_mcu_call_slave( last_slave ); // NAK͍mPA + + while( DST1 ){;} + DRA1 = (u16)( &iic_send_work[0] ); // CNgĂ܂Ă̂ōăZbg + DBC1 = last_size; // fNgĂ܂Ă̂ōăZbg + // ق̐ݒ͑Ô܂ + + DMAIF1 = 0; + DMAMK1 = 0; + DST1 = 1; + + SIO10 = last_reg_adrs; // ςȂI 荞݂DMAX^[g + return; + // ܂ + } + else + { + // G[xځBmȂ + dbg_nop(); + // ̂܂܏I + } + } + + // I + in_retry = false; + DMAMK1 = 1; + DEN1 = 0; + iic_mcu_busy = false; +} + + + +/********************************************//** + IIC MCŨoCgo荞 + + DMAgp͎gp܂B + + @̊荞ݏDMÅ荞݂ɂ΂ȂꍇA + @IIC荞݂̃ZbgԂɍ킸邱Ƃ܂B + ***********************************************/ +__interrupt void int_iic10( ) +{ + EI(); + if( iic_send_wo_dma_len != 0 ) // ܂MĂȂH + { + SIO10 = *p_iic_send_wo_dma_dat; + p_iic_send_wo_dma_dat ++; + iic_send_wo_dma_len --; + return; + // ܂ // + } + + // Ō̃oCgMAXgbvRfBVs + IICMK10 = 1; +// iic_mcu_send_sp(); // ISRŊO̊֐ĂԂ͓̂siėpWX^ҔĵœWJ + { + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // clear SCL + NOP(); NOP(); NOP(); NOP(); // NOP8Ăł͂ + NOP(); NOP(); NOP(); NOP(); + SO0 = 0x0400 | TAUS_MASK; // set SCL + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); + SO0 = 0x0404 | TAUS_MASK; // set CSL adn SDA + } + + iic_mcu_wo_dma = false; + iic_mcu_busy = false; +} + + + +/********************************************//** + X[ǔĂяo + +@X[uAhXĂŁAACK̊mFB + + ACK@@@@@@@@@@@@@@@@@@ԁFI2C_ERR_OK + +@NACK @XgbvRfBVoB@ԁFI2C_ERR_NOSLAVE + ***********************************************/ +i2c_err iic_mcu_call_slave( u8 slave ) +{ + iic_mcu_send_st( ); + +/* +// dbg + if( SSR02 != 0 ) + { + P1.5 = P1.0 = P1.3 = 1; + } +*/ + + SIR02 = SSR02; // NAKG[̃tONA + if( iic_mcu_send_a_byte( slave ) != I2C_ERR_OK ) + { + iic_mcu_send_sp( ); + return ( I2C_ERR_NOSLAVE ); // w̃X[uȂ + } + + return ( I2C_ERR_OK ); +} + + + +/********************************************//** + قƂɂPoCĝ + + I܂ŋA܂ + ***********************************************/ +i2c_err iic_mcu_send_a_byte( u8 dat ) +{ + IICMK10 = 1; + IICIF10 = 0; + SIO10 = dat; + while( IICIF10 == 0 ) + { +// NOP( ); + } // ʐM + + if( SSR02 != 0 ) // 炩G[? + { + SIR02 = SSR02; // G[NA + return( I2C_ERR_NAK ); + } + return( I2C_ERR_OK ); +} + + + +/********************************************//** + X^[gRfBV𔭍s + + \tgEFA + ***********************************************/ +static void iic_mcu_send_st( ) +{ + SO0 &= ~0x0004; // SDA + nop8(); + + SO0 &= ~0x0400; // SCL + SOE0 = 0x0004; // n[h + + SCR02 = TXE0 | 1 << SLC02 | 7 << DLS02; // MAf[^͂WrbgP + SS0 = 0x0004; // ʐMҋ@ +} + + + +/********************************************//** + X^[gs + ***********************************************/ +void iic_mcu_send_re_st( ) +{ + ST0 |= 0x0004; + SO0 |= 0x0400 | TAUS_MASK; // ( SDA = H ), SCL -> H + nop8(); + + SOE0 &= ~0x0004; // ( SCL = H ), SDA -> L + nop8(); + + iic_mcu_send_st( ); +} + + + +/********************************************//** + XgbvRfBVs + + ̑OɁAuŌ̃oCg̑Mv̎ɑOKvłB + ***********************************************/ +void iic_mcu_send_sp( ) +{ + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // SCL + nop8(); + + SO0 = 0x0400 | TAUS_MASK; // SCL + nop8(); + + SO0 = 0x0404 | TAUS_MASK; +} + + + + +/********************************************//** + ytFW[̏ + ***********************************************/ +void iic_mcu_start( ) +{ + if( iic_mcu_initialized ) + { + return; + } + + iic_mcu_busy = true; +// DST1 = 0; + + I2C_PU_on(); +// DEN1 = 0; // DST1 = 0 2clḱADSTn==0|[OĂ + + wait_ms( 1 ); // オ̂50usʂ + + SAU0EN = 1; + nop8(); + + SPS0 = 0x0000; // VAjbg̃NbNOB(8M/2)/1 + SMR02 = bSMR0n_FIXEDBIT | bMD0n2; // ȈI2Cɐݒ + SDR02 = 10 << 9; // {[[gݒ 8M/1/(x+1)/2 + + SO0 = 0x0404 | TAUS_MASK; // ŏHH + iic_mcu_wo_dma = false; + + + // oX̃Zbg + { + IICIF10 = 0; + IICMK10 = 1; + + iic_mcu_send_st(); + + SIO10 = 0xFF; + while( IICIF10 == 0 ){;} // ʐM + iic_mcu_send_sp(); + + SIR02 = SSR02; + } + + iic_mcu_busy = false; + iic_mcu_initialized = true; +} + + + +/********************************************//** + W[̒~ + + ēxgƂ͏Kv + ***********************************************/ +void iic_mcu_stop( ) +{ + while( iic_mcu_busy ) + {;} // DMA쒆͂҂ + iic_mcu_send_re_st( ); // SCL,SDALLɂ + I2C_PU_off(); + SAU0EN = 0; + iic_mcu_initialized = false; +} + diff --git a/snake_tags/2.36/i2c_mcu.h b/snake_tags/2.36/i2c_mcu.h new file mode 100644 index 0000000..16eeba8 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/i2c_mcu_sub.h b/snake_tags/2.36/i2c_mcu_sub.h new file mode 100644 index 0000000..a2c192e --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/i2c_twl.c b/snake_tags/2.36/i2c_twl.c new file mode 100644 index 0000000..3c91ce8 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/i2c_twl.h b/snake_tags/2.36/i2c_twl.h new file mode 100644 index 0000000..0f608b0 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/i2c_twl_defs.h b/snake_tags/2.36/i2c_twl_defs.h new file mode 100644 index 0000000..be5d566 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/incs.h b/snake_tags/2.36/incs.h new file mode 100644 index 0000000..f9c1c4a --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/incs_loader.h b/snake_tags/2.36/incs_loader.h new file mode 100644 index 0000000..0569b9f --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/ini_VECT.c b/snake_tags/2.36/ini_VECT.c new file mode 100644 index 0000000..84da25c --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/jhl_defs.h b/snake_tags/2.36/jhl_defs.h new file mode 100644 index 0000000..2750983 --- /dev/null +++ b/snake_tags/2.36/jhl_defs.h @@ -0,0 +1,25 @@ +#ifndef __jhl_defs_h__ +#define __jhl_defs_h__ + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef signed short s16; + +typedef unsigned short ux16; +typedef signed short sx16; + +#define true 1 +#define false 0 + + +#define set_bit_if( cond, reg, pos ) \ +{ \ + if( cond ){ \ + reg |= pos; \ + }else{ \ + reg &= ~pos; \ + } \ +} + +#endif diff --git a/snake_tags/2.36/kanaria.asm b/snake_tags/2.36/kanaria.asm new file mode 100644 index 0000000..9deaddb --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/kanaria_c.c b/snake_tags/2.36/kanaria_c.c new file mode 100644 index 0000000..bbb5ec7 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/led.c b/snake_tags/2.36/led.c new file mode 100644 index 0000000..bf62e07 --- /dev/null +++ b/snake_tags/2.36/led.c @@ -0,0 +1,399 @@ +/* ======================================================== + LED.c + + $Id: LED.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr + +#endif + +#include "incs.h" +#include "led.h" + + +// ======================================================== +static void LED_oshirase_init(); + + + +// ======================================================== +// TPS0 +#define BIT_PRS012 ( 1 << 2 ) +#define BIT_PRS002 ( 1 << 6 ) + +// TMR0 +#define BIT_CKS0 15 +#define BIT_CCS0 12 +#define BIT_MASTER0 11 +#define BIT_STS0 8 +#define BIT_CIS0 6 +#define BIT_MD123 1 +#define BIT_MD0 0 + + + +// ======================================================== +bit ledInitialized; + + +// m点LED +uni_info_LED info_LED; // p^[f[^ +bit info_led_off; // doffȂǁAtO +bit info_led_override; // drcʋ͏_ŏ㏑rbg + +// wifi led Xe[g +static u8 state_wifi_tx; +static u8 flag_wifi_TX; + + +// ======================================================== +#define led_fade_to( now, goal ) now = fade_to( now, goal ) + + +/********************************************//** + now goal ɂȂ܂ inc / dec BxĂԂƃOf[V + + Ƃ肠AXebvŒ + ***********************************************/ +u8 fade_to( u8 now, u8 goal ) +{ + if( now != goal ) + { + if( now > goal ) + { + now --; + } + else + { + now ++; + } + } + return( now ); +} + + + + +/********************************************//** + XlăOf[V + ***********************************************/ +#define led_fade_to2( led, status ) \ + led = fade_to2( status ) + + +u8 fade_to2( st_LED_dim_status* status ) +{ + if( status->now != status->to ) + { + if( abs(( status->to - status->now )) > abs(status->delta) ) + { + status->now += status->delta; + } + else + { + // delta Ƃ to ̒lɂԂ‚Ă܂ + status->now = status->to; + } + } + return( status->now / 128 ); +} + + + + +/********************************************//** + LED̏ + + HW^C}[ĝł̏s + ***********************************************/ +void LED_init( ) +{ +/** + PWM̃ZbgAƂ肠S + + }X^`lFO@(P01:/reset2)@}X^[͋`lłȂ + X[u@@@@P@rksnB(Rc kdcH) + @@@@@@@@Q@J + @@@@@@@@R@WiFi + @@@@@@@@S@(s͂qsb32kHz out Ɏgp) + @@@@@@@@T@[d + @@@@@@@@U@d k + @@@@@@@@V@d g + */ +// LED_oshirase_init(); // m点p^[ + + /// ytF /// + TAU0EN = 1; + TPS0 = BIT_PRS012 | BIT_PRS002; // }X^[NbNCK01,8M/2 /2^4 = 250kHz + + TMR00 = + 1 << BIT_CKS0 | 0 << BIT_CCS0 | 1 << BIT_MASTER0 | 0 << BIT_STS0 | 0 + << BIT_CIS0 | 0 << BIT_MD123 | 1 << BIT_MD0; + TMR01 = TMR02 = TMR03 = TMR04 = TMR05 = TMR06 = TMR07 = + 1 << BIT_CKS0 | 0 << BIT_CCS0 | 0 << BIT_MASTER0 | 4 << BIT_STS0 | 0 + << BIT_CIS0 | 4 << BIT_MD123 | 1 << BIT_MD0; + ISC = 0; + TOM0 = 0x00FE; // o̓[hB4PWMo͂Ȃ1ɂȂTO5ȍ~ɃNbN͂Ȃ + + TOL0 = 0x0000; // o͂𔽓]邩tO + + TO0 = 0x0000; // ^C}[쒆ŁA^C}[o͂ɂĂȂƂ̃s̃b`B^C}[o͂gȂȂO + TOE0 = 0x00EE; // TOx^C}[W[H + + TS0 = 0x00EF; // Jn + + TDR00 = LED_BRIGHT_MAX - 1; // 10bit + + // Abvf[gȂǂŃ}CR̂݃u[gƂ + if( system_status.reboot ) + { + // SoC ̃R}h҂Aœd LED ‚ + vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO; + LED_duty_pow_blu = LED_BRIGHT_MAX; + } + info_led_off = false; // + ledInitialized = true; +} + + +static void LED_oshirase_init() +{ + char* p_tgt = &info_LED; + int i; + + for( i = 0; i < sizeof(info_LED); i++ ) + { + *p_tgt = 0; + p_tgt++; + } +} + + + + + +/********************************************//** + LED̒~B + + HW^C}[̒~ + ***********************************************/ + +void LED_stop( ) +{ + TT0 = 0x00EF; // Ē~iȂƂ߁j + TOE0 = 0x0000; // TOx^C}[W[H(GPIOɂȂ) + TAU0EN = 0; + LED_pow_red = 0; + LED_CAM = 0; + + LED_duty_notify_red = 0; + LED_duty_notify_blu = 0; + LED_duty_notify_grn = 0; + LED_pow_red = 0; + LED_CAM = 0; + + WIFI_txLatch = 0; + flag_wifi_TX = 0; + state_wifi_tx = 0; + + ledInitialized = false; +} + + + + +/********************************************//** + WiFi LED ̍XV + + - WX^̐ݒ on / off + - off łĂW[̑MpX -_-_-_--------_-_-_-------̃p^[_ + ***********************************************/ +void tsk_led_wifi( ) +{ + static u8 task_interval; + + if( task_interval-- != 0 ) + { + return; + } + + // MpX̃b` + if( WIFI_txLatch ) // 荞݃tÔ̂gĂ܂ + { + WIFI_txLatch = 0; + flag_wifi_TX = 1; + } + + if( flag_wifi_TX != 0 ) + { + vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_WIFI_TX; + // Mp^[ + switch ( state_wifi_tx ) + { + case ( 1 ): + case ( 3 ): + case ( 5 ): + LED_duty_WiFi = 0; + break; + default: + LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT]; + } + state_wifi_tx ++; + if( state_wifi_tx == 32 ) // _ŌA_ĂԂ̒ + { + state_wifi_tx = 0; + flag_wifi_TX = 0; + } + task_interval = 25; + return; + } + else + { + task_interval = 30; + // MtO҂ + vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_WIFI_TX; + + if( vreg_ctr[VREG_C_LED_WIFI] == WIFI_LED_OFF ) + { + LED_duty_WiFi = 0; + return; + } + else + { + if( LED_duty_WiFi == vreg_ctr[VREG_C_LED_BRIGHT] ) + { + return; + } + else if( LED_duty_WiFi < vreg_ctr[VREG_C_LED_BRIGHT] ) + { + LED_duty_WiFi ++; + } + else + { + LED_duty_WiFi --; + } + } + task_interval = 3; + return; + } +} + + + + +bit info_led_pattern_updated; +/********************************************//** + m点LED + + tF[hAEgvZ + ***********************************************/ +static void calc_info_led_fade_out( st_LED_dim_status* tgt_led ) +{ + tgt_led -> to = 0; + tgt_led -> delta = ( 0 - tgt_led -> now ) / 64; + // tF[hAEg([ɌĂB̌z肵Ă܂B) + if(( tgt_led -> now != 0 ) && ( tgt_led -> delta == 0 )) + { + tgt_led -> delta = (sx16)-1; + } +} + + +/********************************************//** + m点LED + + Of[VvZ + ***********************************************/ +static void calc_info_led_next_frame( st_LED_dim_status* tgt_led, u8 color ) +{ + tgt_led -> to = color * 128; + // Of[Ṽf^vZ + tgt_led -> delta = (( tgt_led -> to - tgt_led -> now ) ) / info_LED.info_LED.fade_time; +} + + +/********************************************//** + m点LED + ***********************************************/ +void tsk_led_notify( ) +{ + static u8 time_to_next_frame; + static u8 frame; + static u8 loops; + static st_LED_dim_status LED_dim_status_info_R, LED_dim_status_info_G, LED_dim_status_info_B; + + if( info_led_override ) + { + // dr؂ꂪD悷 + return; + } + + if( system_status.pwr_state == ON_TRIG ) + { + LED_duty_notify_blu = 0; + LED_duty_notify_red = 0; + LED_duty_notify_grn = 0; + LED_dim_status_info_R.now = 0; + LED_dim_status_info_G.now = 0; + LED_dim_status_info_B.now = 0; + } + + if( info_led_off ) // doffȂNjoff + { + // tF[hAEg + calc_info_led_fade_out( &LED_dim_status_info_R ); + calc_info_led_fade_out( &LED_dim_status_info_G ); + calc_info_led_fade_out( &LED_dim_status_info_B ); + } + else + { + // ʏ^] + if( info_led_pattern_updated ) + { + info_led_pattern_updated = false; + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP; + frame = 0; // Ə + time_to_next_frame = 0; + } + else + { + // ̃t[ɐi߂H + if( time_to_next_frame == 0 ) + { + time_to_next_frame = info_LED.info_LED.term; + + if( frame >= NOTIFY_LED_TERM -1 ) + { + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] |= REG_BIT_IN_LOOP; + if( info_LED.info_LED.last_loop != 255 ) // 255:[v + { + loops ++; + if( loops > info_LED.info_LED.last_loop ) + { + frame = 0; + } + } + } + else + { + frame = (( frame + 1 ) & 0x1F ); // Ń}XNĂȂƍŏIt[`擪Ԃ̃OfȂ + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP; + loops = 0; + } + + // Of[VvZ + calc_info_led_next_frame( &LED_dim_status_info_R, info_LED.info_LED.red[frame] ); + calc_info_led_next_frame( &LED_dim_status_info_G, info_LED.info_LED.grn[frame] ); + calc_info_led_next_frame( &LED_dim_status_info_B, info_LED.info_LED.blu[frame] ); + + } + time_to_next_frame --; + } + } + + led_fade_to2( LED_duty_notify_red, &LED_dim_status_info_R ); + led_fade_to2( LED_duty_notify_grn, &LED_dim_status_info_G ); + led_fade_to2( LED_duty_notify_blu, &LED_dim_status_info_B ); +} diff --git a/snake_tags/2.36/led.h b/snake_tags/2.36/led.h new file mode 100644 index 0000000..ce8541f --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/led_cam.c b/snake_tags/2.36/led_cam.c new file mode 100644 index 0000000..7d4a1eb --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/led_pow.c b/snake_tags/2.36/led_pow.c new file mode 100644 index 0000000..6773d4e --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/loader.c b/snake_tags/2.36/loader.c new file mode 100644 index 0000000..2b0393f --- /dev/null +++ b/snake_tags/2.36/loader.c @@ -0,0 +1,420 @@ +/* ======================================================== + MCU CTR BSR + 2009/03/30 - + JZp c + + u[g[_[ + zXg̒ʐMƁAȏAt@[̃`FbNsB + + $Id: loader.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#pragma opc + +#endif +#include "incs_loader.h" + +#include +#include "fsl_user.h" + +#include "i2c_ctr.h" +#include "i2c_mcu.h" +#include "pm.h" +#include "rtc.h" + +#include "reboot.h" + +#include "wdt.h" +#include "magic.h" + + + +#define REG_BIT_RESF_WDT (1<<4) +#define REG_BIT_RESF_TRAP (1<<7) +#define REG_BIT_RESF_LVI (1<<0) + + + +// ======================================================== +#if (FSL_DATA_BUFFER_SIZE>0) +fsl_u08 fsl_data_buffer[FSL_DATA_BUFFER_SIZE]; +#endif + + + +#ifdef FSL_INT_BACKUP +static fsl_u08 fsl_MK0L_bak_u08; /* if (interrupt backup required) */ +static fsl_u08 fsl_MK0H_bak_u08; /* { */ +static fsl_u08 fsl_MK1L_bak_u08; /* reserve space for backup information */ +static fsl_u08 fsl_MK1H_bak_u08; /* of interrupt mask flags */ +static fsl_u08 fsl_MK2L_bak_u08; /* */ +static fsl_u08 fsl_MK2H_bak_u08; /* } */ +#endif + + + +// ======================================================== +void hdwinit(); // static ɂcrt0猩ȂȂ܂BӁI +static void hdwinit2(); +static void chk_platform_type(); +static void chk_firm_broke(); + + +extern void main_loop(); + + +/********************************************//** + * - t@[Abvf[gAWDT̃ZbgA + * - t@[̔jA + * - {̎ނ̎ʁA + * - |[gA + * - ჌xȃytF̏A + * + * main_loop()ĂԁB + ***********************************************/ +void main( ) +{ + while( 1 ) + { + WDT_Restart( ); + + if( RTCEN ) // TRAP(update)ɂgȂBWDTł͗Ȃ + { + system_status.reboot = true; + } + + { + volatile u8 my_resf = RESF; // ǂނƏ + if( ( my_resf & REG_BIT_RESF_WDT ) != 0 ) + { + vreg_ctr[ VREG_C_MCU_STATUS ] |= REG_BIT_STATUS_WDT_RESET; + // set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET ); + // I2C̏ɍs + system_status.reboot = true; + } + else if( ( my_resf & REG_BIT_RESF_TRAP ) != 0 ) // ( FSL_ForceReset, 'r' ) + { + system_status.reboot = true; + } +/* LVIgp + else if(( my_resf & REG_BIT_RESF_LVI ) != 0 ) + { + vreg_ctr[ VREG_C_MCU_STATUS ] |= ( 1 << 2 ); + } +*/ + } +//* ROMǂɂȂȂA]̏RgAEg + if( !system_status.reboot ) + { + // ʏ̓d + // drڑAƑ҂Ă݂(`^O΍) + u16 pwup_delay0; + for( pwup_delay0 = 0xFFFF; pwup_delay0 != 0; pwup_delay0 -- ){;}; + } +//*/ + hdwinit2( ); + +#ifndef _WIN32 + // t@[̐`FbN // + chk_firm_broke(); // ĂAĂȂ +#endif + + // @픻 + chk_platform_type(); + + // HALfobOZbg + hal_reset(); + hal_update(); + + // RTC + RTC_init( ); // Ńu[g肵ď邩f܂ + + // ʏ^] + main_loop( ); + } +} + + + +/********************************************//** + * }WbNio[`FbNāA삳悤ƂĂt@[jĂȂ`FbN܂B + * + * Ăꍇ̓XgA݁AMCU̓Zbg܂B + ***********************************************/ +static void chk_firm_broke() +{ + u8 i; + u8 comp = 0; + + // [_[Ɩ{͓̂o[WH + /// ւ̃Abvf[g̓rŏIĂȂH + for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 炵 + { + comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; + comp += ( *( u8 * )( MGC_HEAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; + } + + if( *( u8 * )( MGC_FOOT +2 ) != ':' ) // ς̂܂ + { + comp ++; + } + + if( comp != 0 ) + { + // t@[XgA݂ + firm_restore( ); + // AĂȂBZbgB + } +} + + +/********************************************//** +vbgtH[̔sAsystem_statusɃZbg܂B + + fobK‚ȂłƏɔłȂƂ܂B + +CTRt@~ + + DEV_DET(P12.[2:1]) + + +CTR̊J@ + + P40,41 !! fobOLP40LMCUN܂I + + - HH @ + - HL NBDV + - LH X^hAV + - LL ISfobK + + ***********************************************/ +void chk_platform_type() +{ + // CTRt@~ // + system_status.family = (enum family_)( DEV_DET >> 1 ); /// ... + +#ifdef _DBG_FORCE_FLOWER + // Iɋ@ݒăfobOƂ +// system_status.family = FAMILY_FLOWER; +#endif + +#ifdef _MCU_ARR + if( system_status.family == FAMILY_SPFL ) + { + system_status.family = FAMILY_CLOSER; + } +#endif + + if( system_status.family == FAMILY_CTR ) + { + system_status.LCD_is_CGS = true; + } + else + { + // FAMILY_SPFL or FAMILY_SNAKE or FAMILY_FLOWER // At@XYȂ + system_status.LCD_is_CGS = false; + } + + if( system_status.LCD_is_CGS == true ) + { + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_CGS; + } + else + { + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_AMO; + } + set_vdd_voltages( system_status.family ); + + // CTR̊J@ // + // ꉞ + system_status.is_dev = false; + system_status.taikendai = false; + system_status.taikendai_nbd = false; + + switch( DIPSW ) + { + case DIPSW_TAIKENDAI: + system_status.taikendai = true; + break; + + case DIPSW_TAIKENDAI_NBD: + system_status.taikendai_nbd = true; + break; + + case DIPSW_ISDEV: + system_status.is_dev = true; + break; + } +#ifdef _FORCE_TAIKENDAI_ + system_status.taikendai = true; +#endif + +#ifdef _FORCE_TAIKENDAI_NBD_ + system_status.taikendai_nbd = true; +#endif +} + + + + +/********************************************//** + ŏ̃WX^s܂B + + gݍ݃X^[gAbv[`Ă΂܂B + ***********************************************/ +void hdwinit( void ) +{ // X^[gAbv[`ɌĂт܂ + DI( ); /* }X^荞݋֎~ */ + + CMC = bits8(0,0,0,1, 0,0,0,0); /* X1U(̓|[g)AXT1gpAd͔U͕sɕtʏ */ + CSC = bits8(1,0,0,0, 0,0,0,0); /* X1UȂAXT1UAU */ + OSMC = bits8(0,0,0,0, 0,0,0,1); /* BWX^ */ + NOP();NOP();NOP(); // 3clkJ + CKC = bits8(0,0,0,0, 1,0,0,0); /* CPU/ӃNbN=fMAINAfMAIN=fMXAfCLK=fMX */ + + /*--- doH̐ݒ ---*/ + /* Zbg̃ftHǵAIvVEoCgɂĎw肳 */ + LVIS = 0x00; /* VLVI = 4.22}0.1V */ +// LVIM = 0x00; /* LVI֎~ */ + /* dd(VDD)od(VLVI)Ɋ */ + /* dd(VDD)od tempA[0][1], "offset" => tempA[0][2], "type" => tempA[0][3], "data" => tempA[0][4], "CRC" => tempA[0][5] } + + break if src_in["type"].hex == 01 + break if src_in["len"].hex == 00 + # next if src_in["type"].hex != 00 + if( src_in["type"].hex != 00 ) +# p dat + next + end + + offset = src_in["offset"].hex + next if(( 0x1000 <= offset ) && ( offset < 0x2000 )) + + dataTemp = src_in["data"].scan(/\w\w/) + + ( 0...(src_in["len"].to_s.hex) ).each{|i| + bindata[ offset + i ] = ( dataTemp[ i ] ).to_s.hex + } +end + +### debug enable bit check ############# +# fobO‚ɂȂĂISfobKŋNȂiMCU삵Ȃj +p bindata[0xC3] +if( bindata[0xC3] != 0x04 ) + print( "!E debug enable!!" ) + exit( 1 ) +end + + +### format data and output ############# +4096.times{ + bindata.delete_at(4096) +} +dest.write( bindata[0..(0x4FFF - 0x1000)].pack("c*") ) +dest.close + +printf( "intel-HEX to bsr bin converter\n file converted!\n\n" ) diff --git a/snake_tags/2.36/pedo_alg_thre_det2.c b/snake_tags/2.36/pedo_alg_thre_det2.c new file mode 100644 index 0000000..4e69a04 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/pedo_lpf_coeff.c b/snake_tags/2.36/pedo_lpf_coeff.c new file mode 100644 index 0000000..877ef98 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/pedo_lpf_coeff.h b/snake_tags/2.36/pedo_lpf_coeff.h new file mode 100644 index 0000000..f81d6c2 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/pedometer.h b/snake_tags/2.36/pedometer.h new file mode 100644 index 0000000..8760308 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/pm.c b/snake_tags/2.36/pm.c new file mode 100644 index 0000000..1112a1b --- /dev/null +++ b/snake_tags/2.36/pm.c @@ -0,0 +1,1529 @@ +/* ======================================================== + PMIC + cJZ + nintendo + '08 Dec + + $Id: pm.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma nop + +#endif + +#include "incs.h" +#include "adc.h" +#include "led.h" +#include "pm.h" +#include "renge\renge.h" + +#include "batt_params.h" + +#include +#include "fsl_user.h" + +#include "vreg_twl.h" +#include "i2c_mcu.h" + +// ======================================================== +u8 raw_adc_temperature; +BT_VENDER battery_manufacturer = BT_VENDER_NOT_CHECKED; +static u8 ntr_pm_reg_shadow; // NTR PMIC WX^~[ +bit bt_authorized; // obep[^MρB[dJn +u8 chg_led_override; // A_v^ƂA[d邵ȂɊւ炸΂炭_ + +static u16 bt_volt16; + +static bit ntr_pm_bt_low_old; + +bit BT_IN_CHG_delayed_n; +bit temp_zone_charge_disable; // xŏ[d~鎞ɃqXeVXt邽 + +u8 pmic_version; +u8 mgic_version[2]; + +u8 pm_reg_bit_vddlcd; + +static bt_param_* p_bt_param; +extern const bt_param_ bt_param[]; + +bit pm_extdc_old; // OA_v^`FbNƂhĂH + +u8 pmreg_v_core; // SoC̃RAdݒBSNAKE(LAGER)ŕύX邽߁B + +#define K_RCOMP_SEG 0x0080 + +// [d~x֌W +static u8 raw_temp_lh; +static u8 raw_temp_ll; +#define RAW_TEMP_HL 184 // 1 +#define RAW_TEMP_HH 189 // -1 +#define RAW_TEMP_LH_CTR 75 // 50 [degC] +#define RAW_TEMP_LL_CTR 61 // 59 +#define RAW_TEMP_LH_SNAKE 84 // 45 +#define RAW_TEMP_LL_SNAKE 68 // 54 + + +// ======================================================== +static void BT_model_detect(); +static void BT_mgic_quick_start(); +static void BT_mgic_init(); +static void bt_chk_temparature(); +static void bt_get_charge_status(); +static void bt_param_select(); +static void bt_batt_update_twl(); +static void bt_batt_update_ntr(); +static void update_chg_led(); + + +// bp[ +static err send_cmd_mgic_2B( u8 reg, u16 dat ); +static err read_mgic_2B( u8 reg, u8* dat ); +static err read_BT_SOC( u8* dest ); +static err read_BT_voltage( u8* dest ); +static u8 conv_ctr_bt_to_twl_bt(); + + + +// ======================================================== +#define swap_endian_16( x ) (unsigned int)(( x << 8 ) | ( x >> 8 )) + + + +// ======================================================== +const u8 BT_MANUF_BORDER[] = { + 5, 33, 79, 123, 158, 197, 233 + }; + + + +/********************************************//** + dr̊Ǘ + + ȉ̃s͎ɂőEĎ܂B + - PM_BT_AUTH AGPI in + - PM_CHARGE_n CCIC /CHG in + - PM_EXTDC_n /DOK INTP4 in + - PM_CHARGE_EN_n /CEN out + + ȉ͊̕֌W肻łʂ̂ƂŊĎĂ܂B + - LED Charge tsk_LED + - BT_TEMP,_P tsk_ADC + + PM_EXTDC͊荞݃Cɂ邩 + ***********************************************/ +#define INTERVAL_TSK_BATT 60 +// 100Ə[dG[ɂ܂_łȂ̂ + +/********************************************//** + d̊Ď + - A_v^̊Ď + - [dALEDXV + - cʎ擾ALEDXV + ***********************************************/ +void tsk_batt( ) +{ + static u8 task_interval; + + if( task_interval -- != 0 ) + { + return; + } + else + { + task_interval = (u8)( INTERVAL_TSK_BATT / SYS_INTERVAL_TICK ); + } + + // A_v^Xe[^XXV // + pm_chk_adapter(); + + // [d // + bt_chk_temparature(); // x`FbN + if( !temp_zone_charge_disable && bt_authorized && !PM_EXTDC_n ) + { + BT_CHG_ENABLE(); // x͈OKŏ[dĊJ + } + else + { + BT_CHG_DISABLE(); // x댯I@[d~ + } + + bt_get_charge_status(); // [d󋵃`FbN + update_chg_led(); // chg ledXV + + // drc // + BT_get_left(); +} + + +/********************************************//** + [dLEDXV + + - CCIC[dƂΓ_B + - łȂĂAA_v^h΂Ȃ5b_ + - Aw^drΉʼnR[d̎Aq[Y؂iMGICNAKjȂ + ***********************************************/ +static void update_chg_led() +{ + static bit temp_led_chg; // static ‚ȂƃRpCʂ炸 + + temp_led_chg = false; + + // A_v^‚ȂuԁA[dłb킴Ɠ_BdĂ邱Ƃ킩点邽߁B + if( chg_led_override != 0 ) + { + chg_led_override --; + temp_led_chg = true; + } + + // CCIC ͏[dƌĂ邩H + if( ! BT_IN_CHG_delayed_n // bt_get_charge_status()ōXV܂B + && ! PM_EXTDC_n ) + { + temp_led_chg = true; + } + + LED_CHARGE = temp_led_chg; + + // WX^̏[drbgLEDɓ + set_bit_if( LED_CHARGE, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE ); // set_bit_if̂݁B + /// 荞݂task_status()ōs +} + + + +/********************************************//** + x`FbN + xtqXeVXL + ***********************************************/ +#define AVG_COUNT 40 +void bt_chk_temparature() +{ + static u8 heikinka_h,heikinka_l; + + if(( raw_temp_lh <= raw_adc_temperature ) + && ( raw_adc_temperature <= RAW_TEMP_HL )) + { + if( heikinka_h < AVG_COUNT ) + { + heikinka_h++; + } + else + { + temp_zone_charge_disable = false; // [d + } + } + else if(( raw_adc_temperature <= raw_temp_ll ) + || ( RAW_TEMP_HH <= raw_adc_temperature )) + { + if( heikinka_l < AVG_COUNT ) + { + heikinka_l++; + } + else + { + temp_zone_charge_disable = true; // [d֎~ + } + } + else + { + // temp_zone_charge_disable ̂܂ + heikinka_h = 0; + heikinka_l = 0; + } +} + + + +/********************************************//** + [d̃`FbN + + [dIC̃oO΍sB + ***********************************************/ +#define TIME_DENOIZE (u8)( 1000 / INTERVAL_TSK_BATT ) +void bt_get_charge_status() +{ + // CCIC̕s̂߁A/CHG̃lQ[gƒJɒx + static u8 anti_chatter; + + if( !BT_IN_CHG_n ) + { + // Ƀ`^O + if( anti_chatter < 2 ) // drŃA_v^āAdɂ킳 + { // Ə[dLED̂ + anti_chatter++; + } + else + + { + BT_IN_CHG_delayed_n = 0; // [d + } + } + else + { + if( !BT_CHG_Ena_n + && ( vreg_ctr[ VREG_C_BT_REMAIN ] < 60 ) + && !( is_mgic_error ) + ) + { + BT_IN_CHG_delayed_n = 0; // [dƈB[dIĂ͂Ȃ + } + else + { + BT_IN_CHG_delayed_n = 1; + anti_chatter = 0; + } + } +} + + + +/********************************************//** + A_v^̗L`FbN + ***********************************************/ +void pm_chk_adapter() +{ + set_bit_if( !PM_EXTDC_n, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY ); + + if( pm_extdc_old != PM_EXTDC_n ) // HAL ʂ߁A PM_EXTDC_n volatile ɂSzȂ + { + pm_extdc_old = PM_EXTDC_n; + if( !PM_EXTDC_n ) + { + // h + set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_CONNECT ); + chg_led_override = (u8)( 2500 / INTERVAL_TSK_BATT ); // bt_chckwait_ms(5)̂ŐL΂B + } + else + { + u8 temp_v[2]; + + // + set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_DISC ); + chg_led_override = 0; + + // drcʂ1%ŁAA_v^L̎ɂ͖{̂NAQ[ + // 1%ɉ񕜂OɃA_v^ƂA荞݂ȂƊҒʂ + // łȂBʑΉ̂߂őΉ + if( read_mgic_2B( BT_GAUGE_REG_VCELL, temp_v ) == ERR_SUCCESS ) + { + bt_volt16 = ( temp_v[0] * 256 + temp_v[1] ); + } + + if(( bt_volt16 < V_TH_ZERO ) || ( vreg_ctr[ VREG_C_BT_REMAIN ] == 0 )) + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN ); + } + } + } +} + + + +/******************************************************** +dr֌W̏ + +@@@Q[W@@b@L@@@@@b@ +@@[[[[[[[[[[[[[[[[[[[[[[[ +@@@dr@Lb@@@@@@@b@H +@@[[[[[[[[[[[[[[[[[[[[[[[ +@@@@@@b@@@@@@b@sr +@@@@@@@@b@@dr@b +@@[[[[[[[[[[[[[[[[[[[[[[[ + +@@Q[WLAdr@̔^@ʂ́A +@drxŔ肷 + + ԒlF@dr 0xFF + drςĂȂ 0 + drς 1 + +***********************************************************/ +bit bt_force_update; + + + +/********************************************//** + obẽ`FbNAƁA{̎ʎʁisp̂߁j + ***********************************************/ +void BT_chk() +{ + static BT_VENDER battery_manufacturer_old; + + battery_manufacturer_old = battery_manufacturer; + + BT_model_detect(); + bt_param_select(); // obecʕ␳p[^ȂǃZbg @łAƂ肠̒l(pi)wɂĂB + + if( system_status.model != MODEL_JIKKI ) + { + bt_authorized = false; + return; + // ܂ + } + + if(( battery_manufacturer_old != battery_manufacturer ) || + bt_force_update ) + { + bt_force_update = false; + iic_mcu_start( ); // ŏtOĂ̂ŌĂт܂ėǂ@ȂƂɁcorz + if( (( battery_manufacturer_old == BT_VENDER_OPEN ) || + ( battery_manufacturer_old == BT_VENDER_NOT_CHECKED )) && + !system_status.reboot ) + { + BT_mgic_quick_start(); + } + BT_mgic_init(); // @픻s܂ + } + bt_authorized = true; + renge_task_immed_add( tski_BT_temp_update ); // drxĎ +} + + + +/********************************************//** + {̎ʎ + ***********************************************/ +void BT_model_detect() +{ + u8 temp; + + BT_DET_P = 1; + BT_TEMP_P = 1; + wait_ms( 3 ); // dオ̂ɎԂ| + + raw_adc_temperature = get_adc( ADC_SEL_BATT_TEMP ); + temp = get_adc( ADC_SEL_BATT_DET ); + BT_DET_P = 0; + + system_status.captureBox = false; + // vbgtH[ // + if( raw_adc_temperature > 0xF0 ) + { + // TS // + system_status.model = MODEL_TS_BOARD; + system_status.family = FAMILY_CTR; // Hł̌딻㏑ + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_CGS; +// set_voltages( system_status.family ); svH + } + else if( raw_adc_temperature < 4 ) + { + // (KuC) // + system_status.model = MODEL_KUC_DEBUGGER; + } + else + { + // @AcIC NACK( obe܂͎cIC̏ ) + system_status.model = MODEL_JIKKI; // obe̎́ŏ㏑ + } + + // Lv`H // + if( iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VERSION ) == 0x01 ) + { + if( iic_mcu_result == I2C_ERR_OK ) // oɏȂƕ]nˑ + { + system_status.captureBox = true; + } + } + + // TShome{^A@͖ڑȂ̂ŗv[q /// gndɂƂ΂悩c + if( system_status.model == MODEL_TS_BOARD ) + { + PM_SW_HOME_n_TSBOARD = 1; + } + else + { + PM_SW_HOME_n_TSBOARD = 0; + SW_HOME_n_TSBOARD_RAW = 0; /// @open ǂł񂾂 + } + + // dr[J[̎ // + { + u8 i; + + battery_manufacturer = BT_VENDER_OPEN; // ftHgl + for(i=0; i<=7; i++) + { + if( temp <= BT_MANUF_BORDER[ i ] ) + { + battery_manufacturer = (BT_VENDER)i; + break; + /* + BT_VENDER_MAXELL; // = 0 + BT_VENDER_1; + BT_VENDER_2; + BT_VENDER_3; + BT_VENDER_4; + BT_VENDER_PANA; + BT_VENDER_6; + + BT_VENDER_OPEN; + */ + } + } + } + + + if( ( battery_manufacturer == BT_VENDER_OPEN ) && + ( system_status.model == MODEL_JIKKI ) ) + { + system_status.model = MODEL_JIKKI_NOBATT; + } +} + + + +#define MGIC_CMD_QUICKSTART 0x4000 +/********************************************//** + MGICNCbNX^[giɃoO΍j + ***********************************************/ +static void BT_mgic_quick_start() +{ + wait_ms( 10 ); // MGIC̋NɊ| + + // 0. obecIC NCbNX^[g + send_cmd_mgic_2B( BT_GAUGE_REG_MODE, swap_endian_16( MGIC_CMD_QUICKSTART ) ); + + wait_ms( 150 ); +} + + +/********************************************//** + drcʑ菉 + + drp[^Ȃǂ] + ***********************************************/ + +#define MGIC_CMD_UNLOCK_KEY 0x4A57 +#define MGIC_CMD_RESET 0x5400 +#define RCOMP_SIZE 16 +static void BT_mgic_init() +{ + u8 origParam[4]; + + if( system_status.model != MODEL_JIKKI ) + { + return; + // ܂ + } + + // 1. bN + if( send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( MGIC_CMD_UNLOCK_KEY ) ) != ERR_SUCCESS ) + { + // cIC NACK + vreg_set_mgic_error; + return; + // ܂ + } + + vreg_clear_mgic_error; + + // wait_ms( 5 + 1 ); OɃEFCgĂ̂ŕsv + + // 2. p[^ꎞۑ + //. o[Xg[hAQoCg܂ł݂Biǂݏoȑh~̂߂Hj + iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &origParam[0] ); + iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP+2, 2, &origParam[2] ); + + // 3. ꎞIOCVύX + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( p_bt_param->ocv )); // }WbNio[IȂ́B[J[w + + // 4. ꎞIRCOMPύX + send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, swap_endian_16( 0xFF00 ) ); + + // 5.[J[ʃp[^̃[h + { + u8 loop; + u16 temp; + + // -16oCgƂɋ؂Ƃ̂Ɓ@imCY΍Ƃ񂾂ǁAӖ񂩁Hj- + // 2oCgPʂőƂ̂ƁB + for( loop = 0; loop < BATT_PARAM_SIZE; loop +=2 ) + { + // ň + temp = *(p_bt_param->mg_param + loop) | (*(p_bt_param->mg_param + loop+1)) << 8 ; + send_cmd_mgic_2B( BT_GAUGE_REG_BT_PARAM + loop, temp ); + } + } + + { + // 5.1 g RCOMP XV + // {gȂAsӂɏĂ܂Ƃ̂߁AKlB + // 17048 ŕKvB17040iCTR) ɏĂ܂ĂsȂ + u8 loop; + + for( loop=0; loop < RCOMP_SIZE*2; loop+=2 ) + { + send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP_EXT + loop, swap_endian_16(K_RCOMP_SEG) ); + } + } + + // 6. 150msȏ҂ + wait_ms( 150 + 15 ); + + // 7. OCVɁuƂlv + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( p_bt_param->ocv ) ); // }WbNio[IȂ́B[J[w + + + // 7.1 bN + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( 0x0000 ) ); // lock key + + + // 8. 150`600ms҂B600ms͌ + wait_ms( 150 + 15 ); + + // 9. SOCǂށBxt@Ĉ߁B + { + u8 temp; + temp = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC ); + + if(( p_bt_param->verify.low <= temp ) && ( temp <= p_bt_param->verify.hi )) + { + // JX^fOKI + }else{ + // s烊gĈH + // dbg_nop(); // ͖ + } + } + + // 9.1 ēxfăbN + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( MGIC_CMD_UNLOCK_KEY ) ); + + // 10.RCOMPOCV߂ + // 2B x 2times write + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 2, &origParam[0] ); + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP+2, 2, &origParam[2] ); + + // 11. bN + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( 0x0000 ) ); // lock key + + // 12. MAX17048AEFCgKvB + wait_ms( 150 + 15 ); +} + + + +extern u16 _dbg_rcomp; +/********************************************//** + raw_adc_temperatureɓĂlɕϊƂƂɁA + - WX^ɃZbg + - cICɃZbg + ***********************************************/ +task_status_immed tski_BT_temp_update( ) +{ + static u8 rawdat_old; + static s8 temperature; + s16 newrcomp; + static u8 heikinka; + +/* + T[~X^ - 10k_̎A + pxł͕̃J[uقڃjAŁA + c T[] = 81.48 - 111.97 x ratio + TDK T = 81.406 - 111.81 x ratio +*/ + + if( rawdat_old != raw_adc_temperature ) + { + if( heikinka < 40 ) + { + heikinka ++; + } + else + { + heikinka = 0; + rawdat_old = raw_adc_temperature; + // temperature = 81.45 - 111.9 * raw_adc_temperature/256.0; + // ꂼ256{Ă + temperature = (u8)(( 20851 - 112 * raw_adc_temperature + (256/2) ) /256); + vreg_ctr[VREG_C_BT_TEMP] = temperature; + + newrcomp = 0; + if( temperature > 20 ) + { + newrcomp = ( ( temperature - 20 ) * p_bt_param->rcomp.up )/256; + } + else + { + newrcomp = ( ( temperature - 20 ) * p_bt_param->rcomp.down )/256; + } + newrcomp = p_bt_param->rcomp.rcomp + newrcomp; + + if( newrcomp > 255 ) + { + newrcomp = 255; + } + if( newrcomp < 0 ) + { + newrcomp = 0; + } + _dbg_rcomp = newrcomp; + + if( send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, newrcomp ) == ERR_SUCCESS ) // swapsv + { + rawdat_old = raw_adc_temperature; + } + else + { + vreg_set_mgic_error; + } + } + } + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + drcICcʂ擾AWX^ɏށB + + @drcICȄȂǂ̎͂Ƃ肠c99%ƂB + + @@@@@@@@ status_1ŊmF”\BdɃ`FbNĂ܂B + + @BT_chk()sĂKv܂B + ***********************************************/ +void BT_get_left(){ + u8 temp[2]; + u8 reg_volatile_temp_bt_remain,reg_volatile_temp_bt_remain_fine; // I2C̔񓯊ǂݍ݂ł̂‚h~ Lbv̏ + u8 fuel_cap_by_voltage; // dŃLbvɎg + + // drc + if( system_status.model == MODEL_TS_BOARD + || system_status.model == MODEL_KUC_DEBUGGER ) + { + // TS & // + if( read_BT_SOC( temp ) == ERR_SUCCESS ) + { + reg_volatile_temp_bt_remain = temp[0]; + reg_volatile_temp_bt_remain_fine = temp[1]; + } + else + { + // G~[V@\ + // @œdf͕sւ邾낤 + reg_volatile_temp_bt_remain = 99; + reg_volatile_temp_bt_remain_fine = 0; + } + } + else + { + // @ // + // cʃ[h + if( read_BT_SOC( temp ) != ERR_SUCCESS ) + { + // cICNACK cobe͂ꂽ + vreg_set_mgic_error; + bt_authorized = false; + reg_volatile_temp_bt_remain = 0; + force_off = true; + } + else + { + u16 temp_u16; + + vreg_clear_mgic_error; + // obep[^̊֌WŃrbgVtgKv + temp_u16 = temp[0] * 256 + temp[1]; + temp_u16 /= p_bt_param->v_scale; + reg_volatile_temp_bt_remain = (u8)(( temp_u16 >> 8 ) & 0xFF ); + if( reg_volatile_temp_bt_remain == 0 ) + { + // 0%̎1.00%ɏグ + // [dJn΂炭͓drcʂ̂ + // 0%ɓBĂ܂Ƃ̂ + reg_volatile_temp_bt_remain = 1; + reg_volatile_temp_bt_remain_fine = 0; + } + else + { + reg_volatile_temp_bt_remain_fine = (u8)(temp_u16 & 0xFF); + } +#ifdef _DBG_BT_FULL_ + reg_volatile_temp_bt_remain = 100; + reg_volatile_temp_bt_remain_fine = 0; +#endif + } + } + + // drd + { + if( read_BT_voltage( temp ) != ERR_SUCCESS ) // 2byte read + { + temp[0] = (u8)( V_BT_4000MV / 256 ); // drdǂ߂Ȃ4000mVƂɂĂB + temp[1] = 0; + } + vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp[0]; + bt_volt16 = ( temp[0] * 256 + temp[1] ); + } + + + // dŃLbv...̏ + { + static u16 hysteresis; + + if( bt_volt16 > V_TH_30 ) + { + fuel_cap_by_voltage = 100; + hysteresis = 0; + } + else if( bt_volt16 - hysteresis > V_TH_LO ) // lqXeVXĂBǂނƂӁB + { + fuel_cap_by_voltage = 30; + hysteresis = 0; + } + else if( bt_volt16 > V_TH_EMPTY ) + { + fuel_cap_by_voltage = BATT_TH_LO; // + hysteresis = 500; + } + else if( bt_volt16 > V_TH_ZERO ) + { + fuel_cap_by_voltage = BATT_TH_EMPTY; + hysteresis = 500; + } + else if( bt_volt16 > V_TH_FORCE_OFF ) + { + fuel_cap_by_voltage = 0; + hysteresis = 500; + } + else + { + force_off = true; + hysteresis = 500; + } + } + + + // [diA_v^hĂĵɏ[dĂȂ + // AiȂƂjf̓drcʂ60%ȏiCCICoOABT_IN_CHG_delayed_nɐD荞ݍς݁j + // = [dBdrւĂMGIC100%ԂȂ + if( !BT_CHG_Ena_n && BT_IN_CHG_delayed_n ){ + reg_volatile_temp_bt_remain = 100; + reg_volatile_temp_bt_remain_fine = 0; + } + else + { // dł̃Lbv|邩H + if( fuel_cap_by_voltage < reg_volatile_temp_bt_remain ) + { + reg_volatile_temp_bt_remain = fuel_cap_by_voltage; + reg_volatile_temp_bt_remain_fine = 0; + } + } + + /* + \ɖȂdĂ炵̂ŃPAł悵 + if( system_status.taikendai_nbd && system_status.model != MODEL_TS_BOARD ) // dr[qɓd‚ȂĂĒlsȂߏ㏑B + { + reg_volatile_temp_bt_remain = 100; + } + */ + + vreg_ctr[ VREG_C_BT_REMAIN ] = reg_volatile_temp_bt_remain; + vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = reg_volatile_temp_bt_remain_fine; + + // twl̃WX^XV@(CTRɊ荞ݓOɍXVȂƊ荞݂̃^C~O܂Ȃ) + bt_batt_update_twl(); + + // cʂŊ荞݁B}ɌƔԂƂ // + { + static u8 bt_remain_old_ctr; + + if( bt_remain_old_ctr != reg_volatile_temp_bt_remain ) + // CTRɒʒm + { + if( (( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO ) && ( BATT_TH_LO < bt_remain_old_ctr ))|| + (( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_EMPTY ) && ( BATT_TH_EMPTY < bt_remain_old_ctr ))|| + (( vreg_ctr[ VREG_C_BT_REMAIN ] == 0 ) && ( bt_remain_old_ctr != 0 )) ) + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN ); + } + } + bt_remain_old_ctr = vreg_ctr[ VREG_C_BT_REMAIN ]; + } + + // PMIC-NTRɓdrcʂĂ + bt_batt_update_ntr(); +} + + + +/********************************************//** + tn̓d + + @Xe[^XtO͂ɗĂĂ܂B + + @sԂ邵A + + NsłΓd + + ʂ̃^XNœd͊ĎĂāAXe[^XNA + ***********************************************/ +err PM_LCD_on( ) +{ + err rv = ERR_ERR; + + PM_VDDLCD_on( ); // CGS AMO ؂ւĂ܂ + + if( system_status.LCD_is_CGS == true ) + { + // CTR + wait_ms( DELAY_PM_TSS_50B_AND_TCOM ); + } + else + { + // SPFL/SNAKE ȂAt@XHV on Ԃɋ + wait_ms( 10 ); + LCD_AMOL_HV_CTRL = 1; + wait_ms( DELAY_PM_TSS_50B_AND_TCOM - 10 ); + } + + PM_TCOM_on( ); + + wait_ms( DELAY_PM_TCOM_TO_VCS ); + + PM_VCS_on( ); + + wait_ms( DELAY_PM_VCS_TO_BL ); + + if( PM_chk_LDSW() != 0 ) // pX + { + // dNG[Ȃd؂Ă܂Bł̓PAȂ + vreg_ctr[VREG_C_STATUS] |= REG_BIT_LCD_POW; + set_irq( VREG_C_IRQ3, REG_BIT_LCD_ON ); + rv = ERR_SUCCESS; + } + + return rv; +} + + +void PM_LCD_off() +{ + // BL‚ĂB + // `FbN̂͊荞݂̊֌W + if( ( read_pmic( PM_REG_ADRS_BL ) & 0x03 ) != 0 ) + { + u8 tot; + + PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + vreg_ctr[VREG_C_STATUS] &= bits8(1,0,0,1, 1,1,1,1); + + if( (( REG_BIT_BL_U_OFF | REG_BIT_BL_L_OFF ) & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ) != 0 ) + { + vreg_ctr[ VREG_C_IRQ3 ] |= ( ( REG_BIT_BL_U_OFF | REG_BIT_BL_L_OFF ) & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ); + IRQ0_neg; + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} + IRQ0_ast; + } + vreg_ctr[VREG_C_COMMAND2] &= ~( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + } + + + // LCD dƂ + // 50ms wait ̂œ_Ă邩mF + if( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ) + { + PM_TCOM_off(); + wait_ms( 1 ); + PM_TCOM_VCS_off( ); + wait_ms( DELAY_PM_LCD_OFF ); + + if( system_status.LCD_is_CGS == false ) + { + // At@XȂ|[g + LCD_AMOL_HV_CTRL = 0; // ̃t@~łLȂ̂ŕQȂB + wait_ms( 10 ); // At@X15V؂Ƃ̃EFCgB + } + + PM_VDDLCD_off( ); // cĂ̑S~߂܂B + vreg_ctr[VREG_C_STATUS] &= ~REG_BIT_LCD_POW; + } + + set_irq( VREG_C_IRQ3, REG_BIT_LCD_OFF ); // ɔBi}XN͗Lj +} + + + +/********************************************//** +@obNCǧ•on/off + +@󂩂@on/off/ێ@̃tOȂ̂Ŗʓ| + +@BL on/on ̏ԂŁAon/onɂƌĂAon/on荞݂܂B + ***********************************************/ +err PM_BL_set( u8 dat ) +{ + u8 blset; // PMIC WX^ɏޒl + u8 intset = 0; // 荞݃WX^ɔfl + // RMWs + + // Read + blset = read_pmic( PM_REG_ADRS_BL ); + + // Modify + // + if(( dat & REG_BIT_CMD_BL_U_ON ) != 0 ) + { + blset |= PM_REG_BIT_BL_U; + intset |= REG_BIT_BL_U_ON; + } + else if(( dat & REG_BIT_CMD_BL_U_OFF ) != 0 ) + { + blset &= ~PM_REG_BIT_BL_U; + intset |= REG_BIT_BL_U_OFF; + } + + // + if(( dat & REG_BIT_CMD_BL_L_ON ) != 0 ) + { + blset |= PM_REG_BIT_BL_L; + intset |= REG_BIT_BL_L_ON; + } + else if(( dat & REG_BIT_CMD_BL_L_OFF ) != 0 ) + { + blset &= ~PM_REG_BIT_BL_L; + intset |= REG_BIT_BL_L_OFF; + } + + if( system_status.family == FAMILY_FLOWER ) + { + // plꖇȂ̂ŁAoff/off łȂΓ_ALX1iڑj𗧂グȂ + // A荞݂͉R‚ SoC ݒ肵Ǝv񂾒lɂB + // todo: vmB + if( blset != 0 ) + { + blset = PM_REG_BIT_BL_L; + } + } + + // write + if( blset != 0 ) // BLtꍇ̓EFCg܂ȂPWMĂ炸 + // Vbg_E邱Ƃ + { + wait_ms( 16 + 10 ); + } + send_cmd_pmic( PM_REG_ADRS_BL, blset ); + + // SoCPWMo悤WX^ZbgĂxL邽߁AXe[^X + // XVĂ܂BĂقƂ̗vB + + // PMICBL̃rbgƁAMCUSTATUSWX^̃rbgʒutȂߓւ + vreg_ctr[VREG_C_STATUS] = (( vreg_ctr[VREG_C_STATUS] & bits8(1,0,0,1, 1,1,1,1) ) + | ( (( blset << 6 ) | ( blset << 4 )) & bits8(0,1,1,0, 0,0,0,0) )); + + // 荞 + /// rbg܂Ƃ߂čŝŁAset_irq()gȂ + { + u8 tot; + + if( ( intset & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ) != 0 ) + { + vreg_ctr[ VREG_C_IRQ3 ] |= ( intset & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ); + IRQ0_neg; + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} + IRQ0_ast; + } + } + + return( ERR_SUCCESS ); // łُ͈`FbNsv +} + + + +/********************************************//** + t̑Όd̐ݒs܂B + + zWX^̓e𑗂邾 + ***********************************************/ +void PM_LCD_vcom_set( ) +{ + send_cmd_pmic( PM_REG_ADRS_POW_DAC1, vreg_ctr[VREG_C_VCOM_T] ); // ȂƂɁAPMIC̓o[Xgݕs + send_cmd_pmic( PM_REG_ADRS_POW_DAC2, vreg_ctr[VREG_C_VCOM_B] ); + return; +} + + + +/********************************************//** + ŁAWX^݂Ăяo鎞̂ + + @I2C̎荇̊֌WłĂ + ***********************************************/ +task_status_immed tski_vcom_set( ) +{ + PM_LCD_vcom_set( ); + return ( TSKI_FINISHED ); +} + + +void set_vdd_voltages( enum family_ family ) +{ + if(( family == FAMILY_SNAKE ) || ( family == FAMILY_CLOSER )) + { + // SNAKE + pmreg_v_core = PM_REG_BIT_VDD1P_1R05; + } + else + { + // NORMAL + pmreg_v_core = PM_REG_BIT_VDD1P_1R15; + } +} + +/********************************************//** + V[PX̒ʂd𗧂グĂ䂫܂B + + - Ԓl 0 Ō܂ŐɊB + - 1 V[gȂǂœd肫Ȃ + ***********************************************/ +err PM_sys_pow_on( ) +{ + // dグ +// PM_reset_ast( ); sv PM_LDSW_on܂ + RESET2_ast; + FCRAM_RST_ast; + GYRO_DISABLE(); + + PM_LDSW_on( ); + + wait_ms( 1 + DELAY_PM_TW_PWUP ); + + PM_VDD_normMode(); + PM_VDD_on( ); +// wait_ms( DELAY_PM_TW_PWUP ); // GYROނ + wait_ms( 10 ); + GYRO_ENABLE(); + wait_ms( DELAY_PM_TW_PWUP - 10 ); + + PM_VDD50A_on( ); // tdł͂ȂAledɎg + + wait_ms( DELAY_PM_TW_PWUP ); + + // dN`FbNB + if( !PM_chk_LDSW() ) + { + return ( ERR_ERR ); // reset1͂قƂėǂ + } + + // dIC + pmic_version = read_pmic( PM_REG_ADRS_VER ); + read_mgic_2B( BT_GAUGE_REG_VERSION, mgic_version ); + + return ( ERR_SUCCESS ); +} + + + +void reset_release() +{ + // ZbgȂǁBVXeNI + PM_reset_neg(); + FCRAM_RST_neg; + RESET2_neg; + + codec_reg_init(); // CODEC s背WX^(reset2̌łȂƂȂ̂) + ntr_pm_reg_shadow = 0; // @V@ȂƂ... +} + + + + +/********************************************//** + dOFFV[PX + ***********************************************/ +void PM_sys_pow_off( ) +{ + // ꉞ LCD ֌Ŵ݂B + PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF ); + PM_LCD_off(); // ĂΉȂ + wait_ms( 20 ); + + PM_reset_ast(); + + RESET2_ast; + FCRAM_RST_ast; + + wait_ms( 20 ); + + PM_off( ); + PM_LDSW_off( ); +} + + + +/********************************************//** + extDC荞 + + dOFFNi[d̉xĎ̂߁ĵ + + i̓|[O(pm) + ***********************************************/ +__interrupt void intp4_extdc( ) +{ +} + + + +/********************************************//** + t^J‚ߊ荞 + + i̓|[O(misc) + ***********************************************/ +__interrupt void intp5_shell( ) +{ + ; +} + + +/********************************************//** + PMICւ̃R}h + ***********************************************/ +__interrupt void intp6_PM_irq( ) +{ + EI(); + if( system_status.pwr_state == ON ) + { + renge_task_immed_add( tski_ntr_pmic_comm ); + } +} + + +/********************************************//** + CODEC̊荞݂󂯂āANTR PMIC݊WX^烊[h + ***********************************************/ +task_status_immed tski_ntr_pmic_comm( ) +{ + u8 reg1_old; + u8 irq_work = 0; + + reg1_old = ntr_pm_reg_shadow; + ntr_pm_reg_shadow = iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_PM ); + if( iic_mcu_result != ERR_SUCCESS ) + { + return ( TSKI_FINISHED ); + } + +// DI( ); + + // obNCg //////////////////////////////////// + if( ( ( reg1_old ^ ntr_pm_reg_shadow ) & REG_BIT_TWL_REQ_BL_U ) != 0 ) + { + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_BL_U ) == 0 ) // + { + irq_work = REG_BIT_TWL_BL_U_OFF; + } + else + { + irq_work = REG_BIT_TWL_BL_U_ON; + } + } + + // obNCg + if( ( ( reg1_old ^ ntr_pm_reg_shadow ) & REG_BIT_TWL_REQ_BL_L ) != 0 ) + { + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_BL_L ) == 0 ) // + { + irq_work |= REG_BIT_TWL_BL_L_OFF; + } + else + { + irq_work |= REG_BIT_TWL_BL_L_ON; + } + } + +// EI(); + + vreg_ctr[ VREG_C_STATUS_1 ] = ( vreg_ctr[ VREG_C_STATUS_1 ] & ~REG_BIT_MASK_STATUS1_NTR_PM_REG ) + | ( ntr_pm_reg_shadow & REG_BIT_MASK_STATUS1_NTR_PM_REG ); // TWLobNCg̃~[ + + irq_work &= ~vreg_ctr[ VREG_C_IRQ_MASK2 ]; + // set_irq i + if( irq_work != 0 ) + { + u8 tot; + + vreg_ctr[ VREG_C_IRQ2 ] |= irq_work; + IRQ0_neg; // uグăpX𑗂蒼 + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} // O.DȂ̂łƂ̂҂ IRQ_mcu LɔĂƍ(•s) + IRQ0_ast; + } + + /// obNCgAC𗘂ď肵܂B + + // offNGXg ////////////////////////////////////// + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_OFF_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_OFF_REQ ); + } + + // ZbgNGXg ///////////////////////////////// + if( ( ntr_pm_reg_shadow & REG_BIT_TWL_REQ_RST_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); + } + + // obNCg}XNď߂ + EI( ); + if( ( ntr_pm_reg_shadow & ( REG_BIT_TWL_REQ_OFF_REQ | REG_BIT_TWL_REQ_RST_REQ )) != 0 ) + { + ntr_pm_reg_shadow &= ~( REG_BIT_TWL_REQ_OFF_REQ | REG_BIT_TWL_REQ_RST_REQ ); + iic_mcu_write_a_byte_codec( CODEC_REG_PM, ntr_pm_reg_shadow ); + } + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + command2 tn + +@ bp[IȕBERR_SUCCESSԂȂc + ***********************************************/ +task_status_immed tski_PM_LCD_on() +{ + PM_LCD_on(); + return( TSKI_FINISHED ); +} + +task_status_immed tski_PM_LCD_off() +{ + PM_LCD_off(); + return( TSKI_FINISHED ); +} + +task_status_immed tski_PM_BL_set() +{ + u8 cmd_BL; // volatileƂtȂĂv݂ + + do + { + cmd_BL = vreg_ctr[VREG_C_COMMAND2]; + PM_BL_set( cmd_BL ); // }XNς + } + while( cmd_BL != vreg_ctr[VREG_C_COMMAND2] ); // <- PM_BL_setXV + vreg_ctr[VREG_C_COMMAND2] = 0; + + return( TSKI_FINISHED ); +} + + + +/********************************************//** +@reset2 CODEC ɃZbgAWX^sɂȂ邽 + ***********************************************/ +void codec_reg_init() +{ + wait_ms( 100 ); + + ntr_pm_bt_low_old = conv_ctr_bt_to_twl_bt(); + + iic_mcu_write_a_byte_codec( CODEC_REG_BT, (u8)ntr_pm_bt_low_old ); // SoC 珑 + + vol_reset(); +// renge_task_immed_add( tski_vol_update ); |[ÔŁB + vol_polling = 3; +} + + +/********************************************//** + wp[Ƃbp[ƂH + + ROMߖ̂ + ***********************************************/ +err send_cmd_mgic_2B( u8 reg, u16 dat ) +{ + u16 temp = dat; // Mobt@ + return iic_mcu_write( IIC_SLA_BT_GAUGE, reg, 2, &temp ); // DMA]̂őMf[^obt@̃|C^ǂKv +} + +err read_mgic_2B( u8 reg, u8* dat ) // Mobt@͌Œ +{ + return iic_mcu_read( IIC_SLA_BT_GAUGE, reg, 2, dat ); +} + +err send_cmd_pmic( u8 reg, u8 dat ) +{ + return iic_mcu_write_a_byte( IIC_SLA_PMIC, reg, dat ); +} + +u8 read_pmic( u8 reg ) +{ + return iic_mcu_read_a_byte( IIC_SLA_PMIC, reg ); +} + +/********************************************//** + dr[J[ƃfAgdrp[^̌ + ***********************************************/ +void bt_param_select() +{ + BT_TYPE bt_type_temp; + + // obe[J[ + if( battery_manufacturer <= BT_VENDER_3 ) // ]TĒԂ臒lƂ + { + bt_type_temp = BT_PARAM_CTR_MAXELL; + } + else + { + bt_type_temp = BT_PARAM_CTR_PANA; + } + + // f + switch( system_status.family ) + { + case( FAMILY_SPFL ): bt_type_temp += BT_PARAM_SPFL_MAXELL; break; // ItZbg cOȎŁcB + case( FAMILY_SNAKE ): bt_type_temp += BT_PARAM_SNAKE_MAXELL; break; + case( FAMILY_CLOSER ): bt_type_temp += BT_PARAM_SPFL_MAXELL; break; + case( FAMILY_CTR ): + case( FAMILY_FLOWER ): // CTR Ɠ + default: /* bt_type_temp ̂܂ */ break; + } + + p_bt_param = &bt_param[ bt_type_temp ]; + + // [d~x̐ݒ + /// tȂ̂ƁA򂪏Ȃ̂ł + if(( system_status.family == FAMILY_SNAKE ) || + ( system_status.family == FAMILY_CLOSER )) + { + raw_temp_lh = RAW_TEMP_LH_SNAKE; + raw_temp_ll = RAW_TEMP_LL_SNAKE; + } + else + { + raw_temp_lh = RAW_TEMP_LH_CTR; + raw_temp_ll = RAW_TEMP_LL_CTR; + } +} + + + + +#define TWL_BT_LEVEL_THREASH_F 60 +#define TWL_BT_LEVEL_THREASH_B 30 +#define TWL_BT_LEVEL_THREASH_1 0 + +/********************************************//** + TWLɓdrcʂĂ + ***********************************************/ +static void bt_batt_update_twl() +{ + if (vreg_ctr[VREG_C_BT_REMAIN] > TWL_BT_LEVEL_THREASH_F ) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x0F; + } + else if (vreg_ctr[VREG_C_BT_REMAIN] > TWL_BT_LEVEL_THREASH_B ) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x0B; + } + else if (vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_LO) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x07; + } + else if (( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_EMPTY )|| + !BT_CHG_Ena_n ) + { // A_v^̗LŒグ + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x03; + } + else if (vreg_ctr[VREG_C_BT_REMAIN] > TWL_BT_LEVEL_THREASH_1 ) + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x01; + } + else + { + vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x00; + } +} + + +/********************************************//** + NTRɓdrcʂĂ + ***********************************************/ +static void bt_batt_update_ntr() +{ + static bit initialized; + static bit flag; // HstaticłȂƃRpCɓ{ + + if( system_status.pwr_state == OFF_TRIG ) + { + initialized = false; + } + else + { + + flag = conv_ctr_bt_to_twl_bt(); + + if(( ntr_pm_bt_low_old != flag ) || !initialized ) + { + initialized = true; + ntr_pm_bt_low_old = flag; + iic_mcu_write_a_byte_codec( CODEC_REG_BT, (u8)flag ); + } + } +} + + +/********************************************//** + drcʂǂł + ***********************************************/ +static err read_BT_SOC( u8* dest ) +{ +#ifdef _ENABLE_HAL_ + if( vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] != 0xFF ) // trueȂHALL +#else + if( 0 ) +#endif + { + *dest = vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ]; + *(dest+1) = 0x00; + return ERR_SUCCESS; + } + else + { + return( read_mgic_2B( BT_GAUGE_REG_SOC, dest ) ); + } +} + + +/********************************************//** + drdǂł + ***********************************************/ +static err read_BT_voltage( u8* dest ) +{ +#ifdef _ENABLE_HAL_ + if( vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] != 0xFF ) // trueȂHALL +#else + if( 0 ) +#endif + { + *dest = vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ]; +// *(dest+1) = 0x00; // gȂ@ǂQoCg[h֐pӂĂȂ̂ł + return ERR_SUCCESS; + } + else + { + return( read_mgic_2B( BT_GAUGE_REG_VCELL, dest ) ); + } +} + + +/********************************************//** + drcʂtwlɃtOɕϊ + ***********************************************/ +static u8 conv_ctr_bt_to_twl_bt() +{ +// ntr_pm_bt_low_old = ( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )? NTR_PM_BT_EMPTY: NTR_PM_BT_ENOUGH; // 1œdr؂ + if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO ) + { + return NTR_PM_BT_EMPTY; + } + else + { + return NTR_PM_BT_ENOUGH; + } +} diff --git a/snake_tags/2.36/pm.h b/snake_tags/2.36/pm.h new file mode 100644 index 0000000..1481124 --- /dev/null +++ b/snake_tags/2.36/pm.h @@ -0,0 +1,221 @@ +#ifndef __PM__ +#define __PM__ +/* + $Id$ +*/ + +#define IIC_SLA_PMIC 0x84 +#define IIC_SLA_BT_GAUGE 0x6C + +#define VCOM_DEFAULT_T 92 +#define VCOM_DEFAULT_B 95 + + + +#define BATT_TH_LO 10 +#define BATT_TH_EMPTY 5 + +// dWX^ƒڔrłpɃItZbg +#define V_BT_4000MV (u16)( 4000 * 12.8 ) // dǂݏosp 4000mVݒ +#define V_TH_30 (u16)( 3300 * 12.8 ) // 30% +#define V_TH_LO (u16)( 3200 * 12.8 ) // 10% +#define V_TH_EMPTY (u16)( 3150 * 12.8 ) // 5% +#define V_TH_ZERO (u16)( 3100 * 12.8 ) // 0% +#define V_TH_FORCE_OFF (u16)( 2900 * 12.8 ) // 2.9V ŏIf + + +//========================================================= +#ifdef _WIN32 +#define LED_CHARGE mcuRegP[ _P2_4 ] +#else +#define LED_CHARGE P2.4 +#endif + + +//========================================================= +enum PMIC_REG_ADRS +{ + PM_REG_ADRS_VER = 0x00, // verinfo Ȃ + PM_REG_ADRS_VDD_SYS, // VXegpd + PM_REG_ADRS_VDD_LCD, // td + PM_REG_ADRS_CONT, // /RESET1, LoadSwitch + PM_REG_ADRS_BL, // obNCg on/off + PM_REG_ADRS_POW_SAVE, // ȓd͐ݒ + PM_REG_ADRS_POW_DAC1, + PM_REG_ADRS_POW_DAC2 +}; + +enum BT_GAUGE_REG_ADRS +{ + BT_GAUGE_REG_VCELL = 0x02, // ꂼ16rbĝ + BT_GAUGE_REG_SOC = 0x04, + BT_GAUGE_REG_MODE = 0x06, + BT_GAUGE_REG_VERSION = 0x08, + BT_GAUGE_REG_OCV = 0x0E, + BT_GAUGE_REG_RCOMP = 0x0C, + BT_GAUGE_REG_LOCK = 0x3E, + BT_GAUGE_REG_BT_PARAM = 0x40, + BT_GAUGE_REG_COMMAND = 0xFE, + BT_GAUGE_REG_RCOMP_EXT = 0x80, +}; + + +typedef enum BT_VENDER +{ + BT_VENDER_MAXELL = 0, // V[g + BT_VENDER_1, // 120 + BT_VENDER_2, // 360 + BT_VENDER_3, // 750 + BT_VENDER_4, // 1.3k + BT_VENDER_PANA = 5, // 2.7k + BT_VENDER_6, // 8.2k + BT_VENDER_OPEN = 7, // open + BT_VENDER_NOT_CHECKED = 0xFF, +}BT_VENDER; + + + +enum NTR_PM_BT_STATUS{ + NTR_PM_BT_ENOUGH, + NTR_PM_BT_EMPTY, + NTR_PM_BT_NOT_INITIALIZED = 0xFF +}; + + + +//========================================================= +// CODECPMIC݊WX^ +#define CODEC_REG_PM 0x10 +#define CODEC_REG_BL 0x11 +#define CODEC_REG_BT 0x12 +//#define CODEC_REG_VOL 0x13 // ...sɂAadc.hŒ` + +// TWLSPIPMICɓR}h +#define REG_BIT_TWL_REQ_OFF_REQ ( 1 << 6 ) +#define REG_BIT_TWL_REQ_RST_REQ ( 1 << 0 ) +#define REG_BIT_TWL_REQ_BL ( 3 << 2 ) + + + +// 0x03 pw cnt3 +#define PM_REG_BIT_LDSW ( 1 << 0 ) +#define PM_REG_BIT_nRST1 ( 1 << 1 ) + +// 0x01 pw cnt1 +#define PM_REG_BIT_VDD_CTR 0x0F +#define PM_REG_BIT_VDD50A ( 1 << 4 ) + +// 0x02 pw cnt2 +#define PM_REG_BIT_VDDLCD_CGS 0x07 +#define PM_REG_BIT_VDDLCD_AMO 0x05 +#define PM_REG_BIT_LCD_VCS ( 0x01 << 4 ) +#define PM_REG_BIT_LCD_TCOM ( 0x01 << 3 ) + +// 0x04 bl cnt +#define PM_REG_BIT_BL_U 0x01 +#define PM_REG_BIT_BL_L 0x02 + + +// 0x05 pow save +#define PM_REG_BIT_VDD1P_1R15 bits8(0,0,0,0, 0,0,0,0) +#define PM_REG_BIT_VDD1P_1R05 bits8(0,0,0,0, 1,0,0,0) +#define PM_REG_BIT_VDD1P_1R00 bits8(0,0,0,1, 0,0,0,0) +#define PM_REG_BIT_VDD1P_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_tags/2.36/pool.h b/snake_tags/2.36/pool.h new file mode 100644 index 0000000..81c8091 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/reboot.c b/snake_tags/2.36/reboot.c new file mode 100644 index 0000000..53912a5 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/reboot.h b/snake_tags/2.36/reboot.h new file mode 100644 index 0000000..c20e11e --- /dev/null +++ b/snake_tags/2.36/reboot.h @@ -0,0 +1,6 @@ +#ifndef __MYREBOOT__ +#define __MYREBOOT__ + +void my_reboot(); + +#endif diff --git a/snake_tags/2.36/renge/renge.c b/snake_tags/2.36/renge/renge.c new file mode 100644 index 0000000..19bee20 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/renge/renge.h b/snake_tags/2.36/renge/renge.h new file mode 100644 index 0000000..9c7b2e4 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/renge/renge_defs.h b/snake_tags/2.36/renge/renge_defs.h new file mode 100644 index 0000000..03c98a6 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/renge/renge_task_config.rb b/snake_tags/2.36/renge/renge_task_config.rb new file mode 100644 index 0000000..c2de509 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/renge/renge_task_immediate.h b/snake_tags/2.36/renge/renge_task_immediate.h new file mode 100644 index 0000000..9ac3bd2 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/renge/renge_task_intval.h b/snake_tags/2.36/renge/renge_task_intval.h new file mode 100644 index 0000000..9b0d9ea --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/renge/renge_tasks.txt b/snake_tags/2.36/renge/renge_tasks.txt new file mode 100644 index 0000000..73af545 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/rtc.c b/snake_tags/2.36/rtc.c new file mode 100644 index 0000000..dd2d1a9 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/rtc.h b/snake_tags/2.36/rtc.h new file mode 100644 index 0000000..a203e83 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/self_flash.c b/snake_tags/2.36/self_flash.c new file mode 100644 index 0000000..a662d07 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/self_flash.h b/snake_tags/2.36/self_flash.h new file mode 100644 index 0000000..768565e --- /dev/null +++ b/snake_tags/2.36/self_flash.h @@ -0,0 +1,9 @@ +#ifndef _self_flash_h_ +#define _self_flash_h_ + + +void firm_update(); + + +#endif + diff --git a/snake_tags/2.36/sw.c b/snake_tags/2.36/sw.c new file mode 100644 index 0000000..be26b65 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/sw.h b/snake_tags/2.36/sw.h new file mode 100644 index 0000000..abe9715 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/task_debug.c b/snake_tags/2.36/task_debug.c new file mode 100644 index 0000000..e5b502c --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/task_misc.c b/snake_tags/2.36/task_misc.c new file mode 100644 index 0000000..edbecca --- /dev/null +++ b/snake_tags/2.36/task_misc.c @@ -0,0 +1,429 @@ +/* ======================================================== + ̑Gȃ^XN + ^XN𕪂₷ȂC邪A\[X̖ŕȂ + + $Id: task_misc.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ + +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" +#include "renge\renge.h" +#include "pm.h" + +#include "accero.h" +#include "adc.h" +#include "i2c_mcu.h" +#include "led.h" +#include "vreg_twl.h" + + + +#ifdef _MCU_BSR_ +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR0 IICAPR11 +#define IICAPR1 IICAPR01 +#define IICCTL0 IICCTL10 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#define TRC TRC1 +#define SMC SMC1 +#define DFC DFC1 +#endif + +// ======================================================== +extern void f(); // X^bN̍Ō𓾂 + + +// ======================================================== +bit twl_ver_read; // twl home menuverǂ񂾂݊J[lɊ荞݂邽 +bit going_to_sleep; // SoCAsleepɓʒm炤Bslp_i HԂ0ɂȂ + // X[v畜AłȂȂ̂h + + +// eXgp +bit reserve_pedo_increnent; + + +// ======================================================== +static void update_LED_3D(); +static void check_twl_vol_irq(); + + + +/********************************************//** + PiŃ^XNɂȂGȏ + - xZT荞݂̎肱ڂmF(Ö) + - TWL PM݊WX^ւ݂̏Γǂ݂ɍs + - ݊J[lTWL`[̋Nʒm + - TWL̉ʕω荞݂`FbN + - 3Dv̍XV + - (HAL) vA₷ + - (fobO) SELWDTZbg𔭐 + ***********************************************/ +void tsk_misc( ) +{ + // 荞݂̎肱ڂH + if( ACC_VALID && ( ( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_ACCERO_ERR ) == 0 )) + { + if( renge_task_immed_add( tski_cbk_accero ) == ERR_SUCCESS ){ + // dbg_nop(); + } + } + + if( system_status.pwr_state == ON ) + { + /* ======================================================== + PM݊WX^ւ̏ + |[OőΉ + ======================================================== */ + if( !PM_IRQ_n ) + { + renge_task_immed_add( tski_ntr_pmic_comm ); + // dbg_nop(); + } + + /* ======================================================== + TWL`[NƂCTRm肽炵 + ======================================================== */ + if( twl_ver_read ) + { + twl_ver_read = false; + set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); + } + + // TWL ̉ʕω荞݃`FbN // + check_twl_vol_irq(); + } + + // 3D vXV // + update_LED_3D(); + +#ifdef _ENABLE_HAL_ + // fobOHAL ₷ // + if( reserve_pedo_increnent ) + { + reserve_pedo_increnent = 0; + hosu_increment_if_necessary(); + } +#endif + +#ifdef _ENABLE_PRESS_SEL_TO_WDT_ + if(( system_status.pwr_state == ON ) + || ( system_status.pwr_state == SLEEP )) + { + static u16 timer; + if( !SW_SEL_n ) + { + timer += 1; + if( timer == 2000 ) + { + DI(); + timer = 0; + while(1) + { + NOP(); // ̂WDT + } + } + } + } +#endif + + //. X^bNeXg +// f(); +} + + + +/********************************************//** +TWLVol̂ƁAXC_̑삪obeBO +sN鎖Ah + + TWLł͒ʏ펞A{^8iKBɍ킹Ċ荞݂B + ***********************************************/ +void check_twl_vol_irq() +{ + static u8 vol_level_twl_sent; + static u8 mabiki; + + if( !is_TWL ) + { + return; + // ܂ + } + + if( mabiki != 0 ) + { + mabiki--; + return; + // ܂ + } + + mabiki = 9; // 1t[͊J + if( vol_level_twl != vol_level_twl_sent ) + { + vol_level_twl_sent = vol_level_twl; + set_irq( VREG_C_IRQ2, REG_BIT_SLIDE_VOL_ACROSS_TWL_BOUNDARY ); + } +} + + +/********************************************//** +3DvXV + ***********************************************/ +void update_LED_3D() +{ + if( system_status.pwr_state != ON ) + { + LED_duty_3d = 0; + return; + // ܂ // + } + + if( vreg_ctr[VREG_C_LED_3D] == LED_3D_ILM_OFF ) + { + if( LED_duty_3d != 0 ) + { + LED_duty_3d --; + } + } + else + { + if( LED_duty_3d != vreg_ctr[VREG_C_LED_BRIGHT] ) + { + if( LED_duty_3d < vreg_ctr[VREG_C_LED_BRIGHT] ) + { + LED_duty_3d ++; + } + else + { + LED_duty_3d --; + } + } + } +} + + + + +/********************************************//** + COMMANDWX^ւ̏ + + 0ȂĂ΂܂BPAsv + + - sleep ʒm() + - ZbgnR}h + ***********************************************/ +task_status_immed tski_do_command0( ) +{ + u8 temp_command; + + // command0 {̓dȂ + DI_wt_chk(); + temp_command = vreg_ctr[VREG_C_COMMAND0]; + vreg_ctr[VREG_C_COMMAND0] = 0; + EI(); + + // SLPO(SoC->mcu) 񓯊̂߁ApX[ɂȂĂ܂Amcu SoC̈u + // X[vooASLPIgOoȂB炩ߒʒmĂ炢A + // ^CAEgsB + if( temp_command & REG_BIT_GOING_TO_SLEEP ) + { + going_to_sleep = true; + } + + // ZbgñR}h // + if( ( temp_command & ( REG_BIT_OFF_REQ | REG_BIT_RESET1_REQ | REG_BIT_FCRAM_RESET_REQ | REG_BIT_RESET2_REQ )) != 0x00 ) + { + if( temp_command & REG_BIT_OFF_REQ ) + { + system_status.pwr_state = OFF_TRIG; + } + else + { + if( temp_command & REG_BIT_RESET1_REQ ) + { + PM_reset_ast( ); + RESET2_ast; + FCRAM_RST_ast; + } + if( temp_command & REG_BIT_RESET2_REQ ) + { + RESET2_ast; + if( vreg_twl[ REG_TWL_INT_ADRS_MODE ] == 0 ) + { + FCRAM_RST_ast; // twlntr[hœ삵Ă + } + // TWL[hDS[hւ̐؂ւɃZbg + // IRQǂ܂Ȃꍇ̂TWLWX^ + vreg_twl_init(); + } + if( temp_command & REG_BIT_FCRAM_RESET_REQ ) + { + FCRAM_RST_ast; + } + wait_ms( 5 ); // ԉ҂ + FCRAM_RST_neg; + PM_reset_neg(); + RESET2_neg; + + // CODEC s背WX^ // + codec_reg_init(); + } + } +/* + X[vvɓdOFFEZbgR}h͗܂ + if( vreg_ctr[VREG_C_COMMAND0] != 0 ) + { + return ( TSKI_CONTINUE ); + } +*/ + return ( TSKI_FINISHED ); +} + + + +/* fobOEeXgp ============================== */ +u16 _dbg_rcomp; +extern u8 raw_adc_temperature; + +extern u8 iic_burst_state; +extern bit temp_zone_charge_disable; +extern bit bt_authorized; + + + + +#define KOUMOKU 19 + +static u8 infos_bits[2]; +static u8 infos_temp[5]; + +static const u8 *infos_table[ KOUMOKU ] = { + &infos_temp[0], /* 0 */ + &pmic_version, + (u8*)&battery_manufacturer, + &mgic_version[0], + &mgic_version[1], + &infos_temp[1], /* 5 */ + &raw_adc_temperature, + &infos_temp[2], + &infos_temp[3], + (u8*)&system_status.family, /* 9 */ + &infos_bits[0], /* 10 */ + (u8*)&LED_duty_pow_blu, + (u8*)&LED_duty_3d, + (u8*)&LED_duty_notify_red, + (u8*)&LED_duty_notify_grn, + (u8*)&LED_duty_notify_blu, /* 15 */ + &infos_bits[1], + (u8*)&LED_duty_WiFi, + &infos_temp[4] /* 18 */ + /* ڑƂ KOUMOKU ɒ */ +}; + +/********************************************//** +@fobOpɃXe[^XԂBigXe[^X 0x7Fj + +@Ԓl̓f[^̂ + + oĂ鏇́A + + - 1) vbgtH[ + - 2) PMIC o[W + - 3) dr[J[ + - 4) KXQ[Wo[W + - 5) V + - 6) ( rcomp & 0xFF ) + - 7) raw_adc_temperature + - 8) ( !temp_zone_charge_disable | ( bt_authorized << 1 ) ) + - 9) m点LED̓tJ[H + - 10) system_status.family + ***********************************************/ +u8 extinfo_read(void) +{ + u8 ret = 0xFF; + + /* + * temp͌vZKvȃf[^Bɗ]TȂ̂ŌvZKv + * ϐ́Av/svɊւ炸vZ|V[ + */ + + if( iic_burst_state < KOUMOKU ) + { + infos_temp[0] = system_status.captureBox? ( system_status.is_dev? MODEL_IS_CAPTURE :MODEL_KUC_CAPTURE ) + : ( system_status.is_dev? MODEL_IS_DEBUGGER: (u8)system_status.model ); + infos_temp[1] = (u8)( _dbg_rcomp & 0xFF ); + infos_temp[2] = ( !temp_zone_charge_disable | ( bt_authorized << 1 ) ); + infos_temp[3] = 1; /* dlύXɂ1ŒɂȂ */ + infos_temp[4] = 0 +// | ( PM_EXTDC_n ? REG_BIT_HAL0_PM_EXTDC_n : 0 ) // status0ɂ + | ( BT_IN_CHG_n ? REG_BIT_HAL0_BT_IN_CHG_n : 0 ) + | ( BT_CHG_Ena_n ? REG_BIT_HAL0_RSV_5 : 0 ) // 󂫃rbggp,out pin + | 0 // WL_TX gȂ +// | ( SHELL_OPEN ? REG_BIT_HAL0_SHELL_OPEN : 0 ) // status0ɂ + | ( SW_WIFI_n ? REG_BIT_HAL0_SW_WIFI_n : 0 ) + | ( SW_HOME_n ? REG_BIT_HAL0_SW_HOME_n : 0 ) + | ( SW_POW_n ? REG_BIT_HAL0_SW_POW_n : 0 ); + + infos_bits[0] = (u8)LED_pow_red; + infos_bits[1] = (u8)LED_CAM; + + ret = *infos_table[iic_burst_state]; + +#if 0 +// debug // + /// VXeɋ@펯ʂʼnR‚ + if( iic_burst_state == 9 ) + { + ret = (u8)FAMILY_FLOWER; + } +#endif + iic_burst_state ++; + } + + return ret; +} + + +#ifdef i2c_timeout_test +/********************************************//** +ifobOpjI2C_mcu ɃvgRᔽ(g`)oꂽSLED_Ēʒm + ***********************************************/ +void i2c_mcu_error_monitor() +{ + LED_duty_pow_blu = 0xff; + LED_duty_3d = 0xff; + LED_duty_notify_red = 0xff; + LED_duty_notify_grn = 0xff; + LED_duty_notify_blu = 0xff; + LED_pow_red = 1; + LED_CAM = 1; +} +#endif + diff --git a/snake_tags/2.36/task_status.c b/snake_tags/2.36/task_status.c new file mode 100644 index 0000000..0de3bf4 --- /dev/null +++ b/snake_tags/2.36/task_status.c @@ -0,0 +1,89 @@ +/* ******************************************************** + ꕔ̃Xe[^XWX^XVAKvɉĊ荞݂܂B + + $Id$ +********************************************************* */ + +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs_loader.h" +#include "renge\renge.h" + +#include "pm.h" + +#include "accero.h" +#include "adc.h" +#include "i2c_mcu.h" +#include "led.h" + + +/********************************************//** + Xe[^XWX^́A + - WJ + + Ŋ荞݂KvłΔ܂B + todo: H + ***********************************************/ +void tsk_status( ) +{ + static u8 state_old; // Xe[^Xωo荞 ̈ + u8 diff; + + // WJ`FbN + set_bit_if( SHELL_OPEN, vreg_ctr[VREG_C_STATUS], REG_BIT_ST_SHELL_OPEN ); + + // Xe[^XWX^֌W 荞 // + // pm.c ŁȀōs܂B + // REG_BIT_LCD_ON/OFF + // REG_BIT_BL_ON/OFF + // REG_BIT_BT_DC_CONNECT/DISC + // REG_BIT_BT_CHG_START/STOP + + diff = (u8)( vreg_ctr[VREG_C_STATUS] ^ state_old ); + if( diff != 0 ) + { + state_old = vreg_ctr[VREG_C_STATUS]; + + if( system_status.pwr_state == ON ) + { + if( diff & REG_BIT_BATT_CHARGE ) + { + // [dԔf + if( is_bt_charging ) // set_irqʁXɌĂԕRpNg + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_START ); + } + else + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_STOP ); + } + } + } + + if(( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP ) + ) + { + if( diff & REG_BIT_ST_SHELL_OPEN ) + { + // W̊J‚ + if( is_shell_open ) + { + set_irq( VREG_C_IRQ0, REG_BIT_SHELL_OPEN ); + } + else + { + set_irq( VREG_C_IRQ0, REG_BIT_SHELL_CLOSE ); + } + } + } + } +} + diff --git a/snake_tags/2.36/task_sys.c b/snake_tags/2.36/task_sys.c new file mode 100644 index 0000000..ba7733d --- /dev/null +++ b/snake_tags/2.36/task_sys.c @@ -0,0 +1,685 @@ +/* ======================================================== + task_sys + dĩ^XN + + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" + +#include "i2c_twl.h" +#include "i2c_ctr.h" +#include "led.h" +#include "accero.h" +#include "pm.h" +#include "rtc.h" +#include "sw.h" +#include "adc.h" +#include "self_flash.h" +#include "i2c_mcu.h" +#include "vreg_twl.h" + + +//========================================================= +#define WAIT_SHIROBAKO_POW_CONTROL 240 + + +//========================================================= +extern void nop8(); + + +static void chk_emergencyExit(); +static void force_off_check(); +static void send_getup_to_soc(); +#ifdef _DBG_CHK_OFF_LEAK_ +static void leak_check(); +#endif + + + +//========================================================= +extern bit info_led_off; +extern bit going_to_sleep; +extern bit bt_authorized; + +static u8 timeout_sleep; +extern u8 chg_led_override; + +#ifdef i2c_timeout_test +extern bit i2c_mcu_time_out_error; +#endif + + +//========================================================= +#define PWSW_POWON_TIME (u8)( 20 / SYS_INTERVAL_TICK ) // [ms] // INTERVAL_TSK_SW ŊȂBl珬̂ +#define PWSW_ON_CHECK_TIMEOUT 100 // K donׂ̈ɓdXCb`삳ꂽƂA̎Ԍo߂mcuȓd͂ɖ߂ + + + +/********************************************//** + d̗グX[vȂǂǗ + ***********************************************/ +void tsk_sys( ) +{ + static u8 pwsw_timeout = 0; // d{^`^OB@^CAEg܂łɓdm肵Ȃoffɖ߂ + + hal_update(); + + switch ( system_status.pwr_state ) + { + case ON_CHECK: //------------------------------------------------------- + // dfJEg_E^C}NA + clear_pow_off_countdown(); + + // ̊荞݂HALT(X[v) ^@A_v^L + + // dXCb`HALT // + if( system_status.poweron_reason == RSN_PWSW ) + { + if( PM_EXTDC_n ) + { + // A_v^Ȃ + if( SW_pow_count != 0 ) + { + pwsw_timeout = 0; + } + else + { + pwsw_timeout ++; + } + + if( pwsw_timeout > PWSW_ON_CHECK_TIMEOUT ) + { + SW_pow_count = 0; + system_status.pwr_state = OFF_TRIG; // XCb`̓mCYBQB + renge_task_interval_run_force = true; + return; + } + } + else + { + BT_chk(); + } + + + if( SW_pow_count < PWSW_POWON_TIME ) + { + // ԂZēdonɓBĂȂ + return; + } + } + // else { if( system_status.poweron_reason == RSN_TRIALAc ) d } + + SW_pow_mask = true; // pwswςȂœd/ JԂȂ悤 + + // d // + iic_mcu_start( ); + + bt_force_update = false; + BT_chk(); // @obe̔AdrcIC̐ݒ + +#ifndef _ALLOW_NOBATT_ + if( system_status.model == MODEL_JIKKI_NOBATT ) + { + renge_task_interval_run_force = true; + system_status.pwr_state = OFF_TRIG; + return; + } +#endif + + // cʃ`FbN + BT_get_left(); // ɁABT_chk()sĂKv܂B + if( +// ( vreg_ctr[VREG_C_BT_REMAIN] < 1 ) // Ŕ肷ƓdrقƂǖƂ +// // A_v^ĂNłȂȂႤ + ( vreg_ctr[VREG_C_BT_VOLTAGE] < ( V_TH_ZERO / 256 ) ) // dr + ) + { + // drȂ̂ŋNȂ(d`FbNĂ) + renge_task_interval_run_force = true; + system_status.pwr_state = OFF_TRIG; + return; + } + + // |[g̕ݒ@dOɁB + PM_SW_WIFI_n = 1; + PM_SW_HOME_n_JIKKI = 1; + PM_WL_TX = 1; + PM_SW_SEL_n = 1; + PM_ACCEL_INT1 = 1; + PM_ACC_VALID = 1; + + if( PM_sys_pow_on( ) != ERR_SUCCESS ) + { // dNsƒG[ + renge_task_interval_run_force = true; + system_status.pwr_state = OFF_TRIG; + return; + } + + // ܂ŗƁAdm // + // vAbvon + PU_BT_IN_CHG_n = 1; + PU7 = bits8(0,0,0,1, 1,1,0,1); // 4:SW_WIFI 3:SW_PWSW 2:PM_IRQ 0:PM_EXTDC_n + PU_SW_HOME_n_JIKKI = 1; // SW_HOME + + reset_release(); + + if( system_status.poweron_reason == RSN_PWSW || + system_status.poweron_reason == RSN_TRIAL ) + { + // d{^łon̎́ALED_ + vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO; + } + else + { + // Ƃ肠ALEDԂŋN + vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_OFF; + } + + system_status.pwr_state = ON_TRIG; + + PM_LCD_vcom_set( ); // LCD̑ΌdlȂǏ + + break; + + case ON_TRIG: //------------------------------------------------------- +#ifdef i2c_timeout_test + LED_duty_pow_blu = 0; // debug + LED_duty_3d = 0; + LED_duty_notify_red = 0; + LED_duty_notify_grn = 0; + LED_duty_notify_blu = 0; + LED_pow_red = 0; + LED_CAM = 0; + i2c_mcu_time_out_error = false; +#endif + + /// łׂł́H + // vAbvon + PU_BT_IN_CHG_n = 1; + PU7 = bits8(0,0,0,1, 1,1,0,1); // 4:SW_WIFI 3:SW_PWSW 2:PM_IRQ 0:PM_EXTDC_n + PU_SW_HOME_n_JIKKI = 1; // SW_HOME + + IIC_ctr_Init( ); + IIC_twl_Init( ); + + vreg_twl_init( ); + vreg_ctr_reset( ); + + KRM = bits8(0,0,0,0, 0,0,0,0); + PIF0 = 0; + + system_status.poweron_reason = NONE; + renge_task_interval_run_force = true; + + MK0 = INT_MSK0_RSV; + MK1 = INT_MSK1_RSV; + + iic_mcu_start(); + +// MK2 = ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ ); +// PMK21 = 0; // wifi gȂ + PMK6 = 0; // pm_irq + + // u[gAXe[^X덇킹 + if( system_status.reboot ) + { + u8 bl_status_temp; + + // LCD donH Xe[^X̍XVB + /// t@[XVAKtoffH + if( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ) + { + vreg_ctr[ VREG_C_STATUS ] |= REG_BIT_LCD_POW; + // LCD_AMOL_HV_CTRL = 1; svBt@[XVAsԂ͕ێ̂߁B + } + + // obNCg_ĂH@Xe[^X̍XVB + bl_status_temp = read_pmic( PM_REG_ADRS_BL ); + vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 ); + + // obe{̎ + BT_chk(); + } + + LED_init( ); // reboot́BT_Chk,BT_chkɍs + + system_status.reboot = 0; + system_status.pwr_state = ON; + + // WDTZbgAI2C̏܂Ŋ荞ݕۗ + // قƂ͂ɂׂȂ... + if( ( vreg_ctr[ VREG_C_MCU_STATUS ] & REG_BIT_STATUS_WDT_RESET ) != 0 ) + { + set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET ); + } + + break; + + case ON: //--------------------------------------------- + // PMICɂ鋭df`FbN + // fobKreset1AT[g邱ƂB̂Ƃ͑SZbg + chk_emergencyExit(); + + // SLPĎ + if( going_to_sleep ) // ΂ SLP_REQ ̑Oɗ\ + { + timeout_sleep ++; + if( timeout_sleep == 0 || // I[o[t[ҁBsleepČLjuŋNċC‚Ȃ + ( PIF0 && !SLP_REQ )) // slp荞݂CANĂ܂ + { + PIF0 = 0; + send_getup_to_soc(); + } + if( PIF0 && SLP_REQ ){ + PIF0 = 0; + PM_VDD_ecoMode(); + system_status.pwr_state = SLEEP; + renge_task_interval_run_force = true; + } + } + + // offJEg + force_off_check(); + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) // A_v^玩œdoff + { + if( PM_EXTDC_n ) + { + system_status.pwr_state = OFF_TRIG; + } + } +#endif + + break; + + case SLEEP: //------------------------------------------ + chk_emergencyExit(); + // X[v畜A + if( !SLP_REQ ){ + PM_VDD_normMode(); + wait_ms( 5 ); // tdly_sw + send_getup_to_soc(); + system_status.pwr_state = ON; + } + + force_off_check(); +// leak_check(); + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) // A_v^玩œdoff + { + if( PM_EXTDC_n ) + { + system_status.pwr_state = OFF_TRIG; + } + } + break; // ł悢B +#else + /* FALLTHROUGH */ +#endif + + default: //--------------------------------------- + system_status.pwr_state = OFF_TRIG; // 蓾ȂXe[gBfobOp +// dbg_nop(); + /* FALLTHROUGH */ + + case OFF_TRIG: //--------------------------------------- + // LED҂ + vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ILM_OFF; + vreg_ctr[ VREG_C_LED_WIFI ] = WIFI_LED_OFF; + vreg_ctr[ VREG_C_LED_3D ] = LED_3D_ILM_OFF; + info_led_off = true; + if( LED_duty_pow_blu != 0 ) + { + return; + } + + // dfJEg_E^C}NA + clear_pow_off_countdown(); + + // xZT~ + vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x00; + tski_acc_setup(); + EI(); // DIԂłė̂ŁAI2C_mcu ̂ɕKv + + // ̑ytF~ + LED_stop( ); + IIC_ctr_Stop( ); + IIC_twl_Stop( ); + RTC_32k_off(); + +// dI̊荞݃Zbg +// PWSW KR3 L +// BG24 KR4 +// ӂJ INTP5 ‚L +// ACA_v^ INTP4 A_v^L +// RTC + while( iic_mcu_busy ) + {;} + + // irq}XNݒ + KRM = ( KR_SW_POW ); // Mask ł͂ȂAModeȂ̂B킵 + MK0 = ~( INT_MSK0_EXTDC | INT_MSK0_WDTI ); + MK1 = ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL ); // INT_MSK1_RTCALARM | RTCA[ + MK2L = 0xFF; + + // irqtONA + vreg_ctr[VREG_C_IRQ0] = 0; + vreg_ctr[VREG_C_IRQ1] = 0; + vreg_ctr[VREG_C_IRQ2] = 0; + vreg_ctr[VREG_C_IRQ3] = 0; + + // PU5 ̂܂ + PU7 = bits8(0,0,0,0, 1,0,0,1); // PWSWI,PM_EXTTDC,( IRQ0_deactive(), PM_IRQ_deactive ) + PU_SW_HOME_n_JIKKI = 0; // SW_HOME ~ + + IF0 = 0; + IF1 = 0; + IF2 = 0; + + IRQ0_disable; + + PM_sys_pow_off( ); // dJbgIt + + // |[gނ~[hɁBHłALo͂ɂȂႾ߂ȁB + SW_WIFI_n_RAW = 0; + PM_SW_WIFI_n = 0; + + SW_HOME_n_JIKKI_RAW = 0; + PM_SW_HOME_n_JIKKI = 0; + + WL_TX = 0; + PM_WL_TX = 0; + + SW_SEL_n = 0; + PM_SW_SEL_n = 0; + + ACCEL_INT1 = 0; + PM_ACCEL_INT1 = 0; + ACC_VALID = 0; + PM_ACC_VALID = 0; + + system_status.pwr_state = OFF; + SW_pow_mask = true; + SW_pow_count = 0; + + // HALfobOZbg@YƓdonoȂȂ邱Ƃc + hal_reset(); + /* FALLTHROUGH */ + + case OFF: + // Fł͓d{^d͂܂B + + system_status.poweron_reason = NONE; + pwsw_timeout = 0; + LCD_AMOL_HV_CTRL = 0; // ُIAAt@XLCDpd؂YĂ܂ + + + if( !PM_EXTDC_n + || chg_led_override != 0 ) // ꂪ[ɂȂ܂ő҂ + { + // A_v^L /////////////////////////////// ܂́AA_v^ĂRb͏[dLED_Ă + + // d{^`FbN + system_status.poweron_reason = RSN_PWSW; + system_status.pwr_state = ON_CHECK; + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + // VȂ玩œdē + if( system_status.taikendai ) + { + vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0; + wait_ms(46); // pmic̓dēdl̂ + system_status.poweron_reason = RSN_TRIAL; + system_status.pwr_state = ON_CHECK; + } +#endif + } + else + { + // A_v^Ȃ /////////////////////////////// + + // ȓd͂ֈڍs + iic_mcu_stop( ); + pm_chk_adapter(); + PM_Chg_Stop(); + + bt_force_update = true; + + while( RWST ) + {;} + + // 荞ݑ҂ŐQ // + RTCIMK = 1; // systickpC^[o^C}[荞݃}XN + +#ifdef _DBG_CHK_OFF_LEAK_ + leak_check(); +#endif + CKC = bits8(0,0,0,0, 1,0,0,1); // 4MHzɗƂ(bit0)STOPȂĂ͂ȂȂ + OSMC = bits8(0,0,0,0, 0,0,0,0); // 5MHzȉ[hցB + + if( PM_EXTDC_n_RAW ) // ǂ^C~Oő}N邱ƂBHALʂȂׂioffłj + { + STOP(); + } + + // N // + // N + // EKeyReturn荞݁id{^j + // ERTCA[iݕj + + // NbNA + OSMC = bits8(0,0,0,0, 0,0,0,1); // 8MHz쏀 + renge_flg_interval = 0; + hal_update(); + + CKC = bits8(0,0,0,0, 1,0,0,0); // OSMC.FSEL = 1 3clkȏJ + + // NŔH + if( !PM_EXTDC_n ){ + system_status.pwr_state = OFF; // ĂāAON_CHECKɍs + } +/* // RTCA[B + else if( vreg_ctr[ VREG_C_IRQ1 ] & REG_BIT_RTC_ALARM ) + { + system_status.poweron_reason = RSN_RTC_ALARM; + system_status.pwr_state = ON_CHECK; + } + // else if( ̊荞݂œdon ){ + // 󑼂̗vł͋NȂ + // } +*/ + else // if( !SW_POW_n ) // iȊOȂjd{^ŋN + { + SW_pow_mask = false; + system_status.poweron_reason = RSN_PWSW; + system_status.pwr_state = ON_CHECK; + } + + RTCIMK = 0; // sys tick ^C}[L + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) + { + system_status.pwr_state = OFF_TRIG; + } +#endif + } + } +} + + + +/********************************************//** + PMICdُŎ~߂mF + + ***********************************************/ +static void chk_emergencyExit(){ + static u8 shirobako_power_control_count; + + // wifi W[Lu[V[hreset1牺ĂƂ̓`FbNpX + if( is_wifi_calib_resets_ast ) + { + return; + } + + if( shirobako_power_control_count == 0 ) + { + if( !RESET1_n ) // PM_chk_LDSW() I2C_mgpARXg + { + if( !PM_chk_LDSW() ) + { + // ZbgĂ + /// PMICُIf + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + } + else + { + // ̎d + shirobako_power_control_count = 1; + } + } + } + else + { + if( shirobako_power_control_count == WAIT_SHIROBAKO_POW_CONTROL ) // }WbNio[ + // fobKBreset1܂ł͖ + { + if( RESET1_n ) // ZbglQ[g҂ + { + shirobako_power_control_count = 0; + } + else + { + // nothing to do + } + } + else if( shirobako_power_control_count == 200 ) // * (sys_tick)[ms] + // fobK炵 + { +#ifndef _RVD_ + // ͓d؂肽炵 + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + shirobako_power_control_count = WAIT_SHIROBAKO_POW_CONTROL; +#endif + } + else + { + if( !RESET1_n ) + { + if( shirobako_power_control_count != 255 ) + shirobako_power_control_count ++; + } + else + { + // (TS{[hŎ蓮/fobK)Zbg炵 + send_cmd_pmic( PM_REG_ADRS_BL, 0 ); + vreg_ctr[VREG_C_STATUS] = ( vreg_ctr[VREG_C_STATUS] & bits8(1,0,0,1, 1,1,1,1) ); + vreg_ctr[VREG_C_COMMAND0] |= REG_BIT_RESET1_REQ; + renge_task_immed_add( tski_do_command0 ); + shirobako_power_control_count = WAIT_SHIROBAKO_POW_CONTROL; + } + } + } +} + + + +/********************************************//** + - d{^ + - dr؂ + - dr + + ł̋OFFBƉs\ + ***********************************************/ +static void force_off_check() +{ + if( force_off ) + { + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + } +} + + + +/********************************************//** + SoCN + +@@dʏɖ߂ĂĂʼnB + ***********************************************/ +void send_getup_to_soc() +{ + going_to_sleep = false; + timeout_sleep = 0; +#ifdef _MODEL_CTR_ + SLP_ACK = 1; + nop8(); + SLP_ACK = 0; +#endif +} + + + + +/********************************************//** + ȃAbvf[g firm_update() ĂԁiisrsłȂ̂Łj + + task_status_immed^ Ԃ悤ɂ΂̂ł... + ***********************************************/ +task_status_immed tski_firm_update(){ + firm_update(); + return( ERR_SUCCESS ); +} + + + +#ifdef _DBG_CHK_OFF_LEAK_ +/********************************************//** + pinݒ~X`FbN + ***********************************************/ +static void leak_check() +{ + volatile u8 ports_i[12]; + volatile u8 ports_o[12]; + + ports_i[0] = ( PM0 & PU0 & ~P0 ); // vAbv؂YH + ports_i[1] = ( PM1 & PU1 & ~P1 ); + ports_i[2] = 0; + ports_i[3] = ( PM3 & PU3 & ~P3 ); + ports_i[4] = ( PM4 & PU4 & ~P4 ); + ports_i[5] = ( PM5 & PU5 & ~P5 ); + ports_i[6] = 0; + ports_i[7] = ( PM7 & PU7 & ~P7 ); + ports_i[8] = ( PM12 & PU12 & ~P12 ); + ports_i[9] = ( PM14 & PU14 & ~P14 ); + ports_i[10] = 0; + ports_i[11] = ( PM20 & PU20 & ~P20 ); + + ports_o[0] = ( ~PM0 & P0 ); // H o͂Ă邩 + ports_o[1] = ( ~PM1 & P1 ); + ports_o[2] = ( ~PM2 & P2 ); + ports_o[3] = ( ~PM3 & P3 & ~POM3 ); + ports_o[4] = ( ~PM4 & P4 ); // bit3chg_enȂ̂1ł悢 + ports_o[5] = ( ~PM5 & P5 ); + ports_o[6] = ( ~PM6 & P6 ); + ports_o[7] = ( ~PM7 & P7 ); + ports_o[8] = ( ~PM12 & P12 ); + ports_o[9] = ( ~PM14 & P14 ); + ports_o[10] = ( ~PM15 & P15 ); + ports_o[11] = ( ~PM20 & P20 ); + NOP(); // u[Nu +} +#endif _DBG_CHK_OFF_LEAK_ diff --git a/snake_tags/2.36/user_define.h b/snake_tags/2.36/user_define.h new file mode 100644 index 0000000..413773b --- /dev/null +++ b/snake_tags/2.36/user_define.h @@ -0,0 +1,214 @@ +#ifndef _USER_DEF_ +#define _USER_DEF_ + +// $Id: asdf$ + +#define IIC_T_SLAVEADDRESS 0x4A +#define IIC_C_SLAVEADDRESS 0x4A +#define IIC_C_SLAVEADDRESS_DMY 0x4C + +//#define IIC_SLA_DCP 0x50 + +#define bits8(a,b,c,d,e,f,g,h) ( a<<7 | b<<6 | c<<5 | d<<4 | e<<3 | f<<2 | g<<1 | h ) + +#ifndef _WIN32 +// @‹ + +#ifdef _debug_led_ +/*spflΉȍ~AncłȂȂ̂Ŏg܂ +# define DBG_LED_on { PM2.1 = 0; P2.1 = 1; } +# define DBG_LED_off { P2.1 = 0; } +# define DBG_LED_toggle ( P2.1 ^= 1 ) +# define DBG_LED2_on { PM2.2 = 0; P2.2 = 1; } +# define DBG_LED2_off { P2.2 = 0; } +# define DBG_LED2_toggle ( P2.2 ^= 1 ) +*/ +#else +# define DBG_LED_on ; +# define DBG_LED_off ; +# define DBG_LED_toggle ; +# define DBG_LED2_on ; +# define DBG_LED2_off ; +# define DBG_LED2_toggle ; +#endif // _debug_led_ + +#define IIC_SLA_CODEC 0xA4 +#define IIC_SLA_ACCEL 0x30 // ST LIS331DLH + + +#define SLP_ACK P7.7 + + +// PMx0ŏo̓[h + +// SoC +#define IRQ0_ast { P7.6 = 0; PM7.6 = 0; } // B4 +#define IRQ0_neg { P7.6 = 1; } +#define IRQ0_enable { PM7.6 = 0; } +#define IRQ0_disable { PM7.6 = 1; } +#define IRQ0 ( P7.6 ) + + +// h~ +#define RESET1_n ( P0.0 ) // G7 + +#if 1 // iPM_RESET1gAWiFiW[̃eXg̎͒ +# define RESET1_ast { P0.0 = 0; PM0.0 = 0; } +# define RESET1_neg { PM0.0 = 1; } +#endif + +#define RESET2_ast { P0.1 = 0; PM0.1 = 0; } // F7 +#define RESET2_neg { PM0.1 = 1; } + +#define SLP_REQ P12.0 // H8 + +// CTR,SPFL,SNAKE,܂ʔh@ +#define DEV_DET ( P12 & 0b00000110 ) // [2:1] = D8,C8 +#define DEV_CTR ( 0b00 << 1 ) +#define DEV_SPFL ( 0b01 << 1 ) +#define DEV_SNAKE ( 0b10 << 1 ) +#define DEV_RSV2 ( 0b11 << 1 ) + +// FCRAM +#define FCRAM_RST P3.0 // B6 +#define FCRAM_RST_ast { P3.0 = 0; } +#define FCRAM_RST_neg { P3.0 = 1; } + +// CODEC +#define PM_IRQ_n P7.2 // A3 +// INTP6 + +// PM +#define PM_EXTDC_n_RAW P7.0 // B2 +// INTP7 +//#define BT_TEMP P15.0 // G3(a) +// ANI8 +//#define BT_DET P15.1 // H2(a) +// ANI9 +#define BT_DET_P P1.6 // D4 +#define BT_TEMP_P P1.7 // C4 + + +// SPFL̃At@XLCDŕKvȁ}15V̓dB +#define LCD_AMOL_HV_CTRL P20.2 // F2 + + +// [d(out) +// _łBӁB +#define BT_CHG_ENABLE() ( P4.3 = 0 ) // F6 +#define BT_CHG_DISABLE() ( P4.3 = 1 ) +#define BT_CHG_Ena_n ( P4.3 ) + +// [d(in) +#define BT_IN_CHG_n_RAW P5.1 // B1 +#define PM_BT_IN_CHG_n PM5.1 +#define PU_BT_IN_CHG_n PU5.1 + +#define SW_WIFI_n_RAW P7.4 // C3 +#define PM_SW_WIFI_n PM7.4 +// KR4 +#define SW_POW_n_RAW P7.3 // B3 +// KR3 +#define SW_SEL_n P2.3 // G5 +#define PM_SW_SEL_n PM2.3 +//#define VOL P2.7 // H4(a) +// ANI7 + +#define SW_HOME_n_JIKKI_RAW P20.4 // G2 +#define PM_SW_HOME_n_JIKKI PM20.4 +#define PU_SW_HOME_n_JIKKI PU20.4 + +// INTP22 +#define SW_HOME_n_TSBOARD_RAW P2.0 // TS}U[pull up(P2͓p.u.) // G6 +#define PM_SW_HOME_n_TSBOARD PM2.0 + +// WiFi +#define WL_TX P20.3 // INTP21 // F3 +#define PM_WL_TX PM20.3 // INTP21 + +//#define VOL_P P2.1 // E5 open +//#define VOL_N P2.2 // F5 V + +//#define LED_CAM P1.0 // TO02 // E4 +//#define LED_WIFI P1.1 // TO03 // E3 +//#define LED_NOTIFY P1.3 // TO05 // D3 +//#define LED_3D P5.2 // SLTO TO01 // A2 +//#define LED_POW2 P1.4 // TO06 ( ) // D2 +//#define LED_POW1 P1.5 // TO07 ( ) // D1 +//#define LED_CHARGE P2.4 // H5 + +// P5.3 ɉAP5.5, P140 P141 +// P140o͐pȂ̂... +#define I2C_PU_on() { P14 |= 0x03; PM5.3 = 0; PM3.3 = 0; } // P14[1:0] H6,H7 P5.3,3.3 A1,C5 +#define I2C_PU_off() { PM5.3 = 1; PM3.3 = 1; P14 &= ~0x03; } + +#define GYRO_ENABLE() P5.0 = 0 // C1 +#define GYRO_DISABLE() P5.0 = 1 + +//#define I2C_M_SDA P3.1 // SDA10 // C6 +//#define I2C_M_SCL P3.2 // SCL10 // B5 + +//#define I2C_0_SCL P6.0 // IIC_TWL SCL0 // A7 +//#define I2C_0_SDA P6.1 // SDA0 // A6 + +//#define I2C_1_SCL P20.0 // IIC CTR SCL1 // E1 +//#define I2C_1_SDA P20.1 // SDA1 // F1 + +//#define 32kHz_O P1.2 // RTCCL // E2 +//#define 32k_I1 P12.3 // XT1 // F8 +//#define 32k_I2 P12.4 // XT2 // G8 + +// @AJ@AV䔻ʁB +#define DIPSW ( P4 & 0b00000011 ) // mini cube & \tgEFAfBbvXCb` TOOL0,1B P4.0 L ӁI +#define DIPSW_CTR 0b11 // gp +#define DIPSW_ISDEV 0b00 // KuCBattGaugeŔ +#define DIPSW_TAIKENDAI 0b10 +#define DIPSW_TAIKENDAI_NBD 0b01 + + +#define SHELL_OPEN_RAW P7.1 // INTP5 ӂJ (‚L) // C2 + +#define ACC_VALID P20.5 // H3 +#define PM_ACC_VALID PM20.5 +#define ACCEL_INT1 P2.5 // F4 +#define PM_ACCEL_INT1 PM2.5 + + +#endif // _WIN32 + +// win32 sim‹Ƌ + +#define KR_SW_POW ( 1 << 3 ) +#define KR_SW_WIFI ( 1 << 4 ) + +/////////////////////////////////////////////////////////// +#ifdef _WDT_CHECK_ +# define INT_MSK0_WDTI 1<<15 +#else +# define INT_MSK0_WDTI 0 +#endif + +#define INT_MSK0_IIC_M_DMA 1<<12 +#define INT_MSK0_SHELL 1<<7 +#define INT_MSK0_EXTDC 1<<6 +//#define INT_MSK0_SLP 1<<2 +#define INT_MSK0_RSV ~( INT_MSK0_IIC_M_DMA | INT_MSK0_SHELL | INT_MSK0_EXTDC | INT_MSK0_WDTI ) + +#define INT_MSK1_KR 1<<11 +#define INT_MSK1_RTCINTVAL 1<<10 +#define INT_MSK1_RTCALARM 1<<9 +#define INT_MSK1_ADC 1<<8 +#define INT_MSK1_IIC_CTR 1<<3 +#define INT_MSK1_IIC_MCU 1<<0 +#define INT_MSK1_RSV ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL | INT_MSK1_RTCALARM | INT_MSK1_ADC \ + | INT_MSK1_IIC_CTR | INT_MSK1_IIC_MCU ) + +#define INT_MSK2_WIFI_TX_KE3 1<<4 +#define INT_MSK2L_RSV ~( INT_MSK2_WIFI_TX_KE3 ) + +#define INT_MSK2_IIC_TWL 1<<8 +#define INT_MSK2_WIFI_TX_BSR 1<<10 +#define INT_MSK2_CODEC_PMIRQ 1<<3 +#define INT_MSK2_RSV ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ ) + +#endif // dupe include guard diff --git a/snake_tags/2.36/util_funcs.c b/snake_tags/2.36/util_funcs.c new file mode 100644 index 0000000..2edea63 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/util_funcs.h b/snake_tags/2.36/util_funcs.h new file mode 100644 index 0000000..4229413 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/voltable.c b/snake_tags/2.36/voltable.c new file mode 100644 index 0000000..4d2e14a --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/voltable.h b/snake_tags/2.36/voltable.h new file mode 100644 index 0000000..6ff34ab --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/vreg_ctr.c b/snake_tags/2.36/vreg_ctr.c new file mode 100644 index 0000000..aae1669 --- /dev/null +++ b/snake_tags/2.36/vreg_ctr.c @@ -0,0 +1,638 @@ +/* ======================================================== + + CTR MCU I2CWX^ + + $Id$ + ====================================================== */ +#include "incs.h" +#include "vreg_ctr.h" +#include "rtc.h" +#include "led.h" +#include "accero.h" +#include "pm.h" +#include "pool.h" +#include "vreg_twl.h" +#include "sw.h" +#include "WDT.h" + +#include +#include "fsl_user.h" + + + + +extern u8 extinfo_read(); // task_misc.c + +extern u8 iic_burst_state; // o[XgANZX鎞̃JE^ +extern bit info_led_pattern_updated; // m点LED̃p^[擪ɖ߂ + +extern bit pedolog_overflow; +extern bit reserve_pedo_increnent; + + + +// ******************************************************** +u8 vreg_ctr[VREG_C_ENDMARK_]; + +static u8 vreg_free_adrs; // AhXł̂ł΂炭͂ +bit irq_readed; // AAA^̂߁B + + + +// ******************************************************** +extern task_status_immed tski_firm_update(); +extern task_status_immed tski_mcu_reset(); +extern unsigned char get_ei(); + + + +// ******************************************************** +#ifdef _MCU_BSR_ +#define IICAMK IICAMK1 +#endif + + +/********************************************//** + + + [̏l̎w肪KvȃAhX + + }CRZbgɌĂ΂܂ + ***********************************************/ +void vreg_ctr_init( ) +{ + vreg_ctr[ VREG_C_VCOM_T ] = VCOM_DEFAULT_T; + vreg_ctr[ VREG_C_VCOM_B ] = VCOM_DEFAULT_B; + + vreg_ctr[ VREG_C_OFF_DELAY ] = FORCEOFF_THREASHOLD; + + vreg_ctr[ VREG_C_VOL_CAL_MIN ] = 0x36; + vreg_ctr[ VREG_C_VOL_CAL_MAX ] = 0xFF - 0x36; +} + + +/********************************************//** + lZbg + + VXeZbgɌĂ΂܂ + ***********************************************/ +void vreg_ctr_reset( ) +{ + vreg_ctr[ VREG_C_MCU_VER_MAJOR ] = MCU_VER_MAJOR | 0x10; + vreg_ctr[ VREG_C_MCU_VER_MINOR ] = MCU_VER_MINOR; + +// vreg_ctr[ VREG_C_STATUS ] &= bits8(0,0,0,1, 1,1,1,1); + vreg_ctr[ VREG_C_LED_BRIGHT ] = 0xFF; + vreg_ctr[ VREG_C_LED_POW ] = 0; + vreg_ctr[ VREG_C_LED_WIFI ] = 0; + vreg_ctr[ VREG_C_LED_CAM ] = 0; + vreg_ctr[ VREG_C_LED_3D ] = 0; + { + u8 i; + for( i = 0; i < sizeof( uni_info_LED ); i++ ) + { + info_LED.bindata[ i ] = 0; + } + } + + vreg_ctr[ VREG_C_WIFI_CALIB ] = 0; + // ł̂͋Cc + RTC_32k_on(); + RESET1_neg; + RESET2_neg; + FCRAM_RST_neg; +} + + + +/********************************************//** + I2CzWX^ɏ܂B + + @ adrs ͓AhX + + @ȂAhXɃANZXꍇA܂B + + 񂾌ʁAI2C_mcuʐMꍇArenge_task_immed_add() + gpȂƁAI2C_mcugpŃG[IꍇɃgC܂B + ***********************************************/ +void vreg_ctr_write( u8 adrs, u8 data ) +{ + switch ( adrs ) + { + + case VREG_C_COMMAND0: + if( data != 0 ) + { + renge_task_immed_add( tski_do_command0 ); + vreg_ctr[ VREG_C_COMMAND0 ] |= data; + } + break; + + case VREG_C_COMMAND2: + // 炩̊荞݂҂ĂȂłB #--) ̂߂̊荞݂ + // td + if(( data & REG_BIT_CMD_LCD_ON ) != 0 ) + { + renge_task_immed_add( tski_PM_LCD_on ); + } + else if(( data & REG_BIT_CMD_LCD_OFF ) != 0 ) + { + renge_task_immed_add( tski_PM_LCD_off ); + } + + // obNCgݒ + /// ̂Ƃ낳ɍׂ͕Ȃǁc + if(( data & REG_BITS_CMD_BL ) != 0 ) + { + renge_task_immed_add( tski_PM_BL_set ); + vreg_ctr[adrs] = (u8)( data & REG_BITS_CMD_BL ); + } + break; + + case VREG_C_COMMAND1: + if( data != 0 ) + { + // u8 temp; ԕϐg΂łȂ... + // TWLɊ荞݂ + /// ۂɊ荞݂̂SoC + /// rbg̕тႤʓ| + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] = ( ( data & REG_BIT_SEND_TWL_PWSW_DET ) != 0 ) ? REG_BIT_TWL_IRQ_PWSW_DET : 0x00; //pwsw_det + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_RESET_DET ) != 0 ) ? REG_BIT_TWL_IRQ_RESET : 0x00; //reset_req + + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_OFF_DET ) != 0 ) ? REG_BIT_TWL_IRQ_OFF : 0x00; //off_req + + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_BATT_LOW ) != 0 ) ? REG_BIT_TWL_IRQ_BT_LOW : 0x00; //batt_low + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_BATT_EMPTY ) != 0 ) ? REG_BIT_TWL_IRQ_BT_EMPTY : 0x00; //batt_empty + + if(( data & REG_BIT_SEND_TWL_VOL_CLICK ) != 0 ) + { + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= REG_BIT_TWL_IRQ_VOL_CHANGE; //vol_changed + } + } + break; + + case VREG_CX_FREE_DATA: + if( vreg_free_adrs < VREG_C_FREE_SIZE ) + { + pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ] = data; + vreg_free_adrs ++; + } + else + { + dbg_nop(); + } + break; + + case VREG_CX_FREE_ADRS: + vreg_free_adrs = data; + break; + + case VREG_C_LED_POW: + if( iic_burst_state == 0 ) + { + vreg_ctr[ VREG_C_LED_POW ] = data; + iic_burst_state ++; + } + else if( iic_burst_state < 5 ) + { + led_red_batt_empty.dats[ iic_burst_state -1 ] = data; + iic_burst_state ++; + } + break; + + case VREG_C_LED_WIFI: + case VREG_C_LED_CAM: + case VREG_C_LED_3D: + vreg_ctr[adrs] = (u8)( data & 0x0F ); + break; + + case VREG_C_LED_NOTIFY_DATA: + if( iic_burst_state < sizeof( uni_info_LED ) ) + { + if(( iic_burst_state == 1 ) && ( data == 0 )) // fade_time == 0 ֎~ + { + data = 1; + } + info_LED.bindata[ iic_burst_state ] = data; + iic_burst_state ++; + if( iic_burst_state > 4 ) // p^[1ł + { + info_led_pattern_updated = true; + } + } + break; + + case VREG_C_MCU_STATUS: +// vreg_twl[ REG_TWL_INT_ADRS_MODE ] = (u8)( ( data >> 6 ) & 0x03 ); Rł悢B̑胊ZbgŃNA + vreg_ctr[ VREG_C_MCU_STATUS ] &= data; // bitNA͂邪Zbg͂ȂB + // ̕twlWX^~[͓ǂݏoꎞɍ + break; + + case VREG_C_VCOM_T: + case VREG_C_VCOM_B: + renge_task_immed_add( tski_vcom_set ); + vreg_ctr[adrs] = data; + break; + + case VREG_C_DBG03: + if( ( vreg_ctr[VREG_C_DBG01] == 'j' ) + && ( vreg_ctr[VREG_C_DBG02] == 'h' ) + && ( data == 'l' ) ) + { + renge_task_immed_add( tski_firm_update ); + IICAMK = 1; + } + vreg_ctr[ VREG_C_DBG03 ] = data; + break; + + /// 񓯊œĂ邽߂ł͏ȂB + // \񂷂邾stopŏ + case VREG_C_RTC_SEC: + case VREG_C_RTC_MIN: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x7F ); + break; + + case VREG_C_RTC_DAY: + case VREG_C_RTC_HOUR: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x3F ); + break; + + case VREG_C_RTC_YOBI: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x07 ); + break; + + case VREG_C_RTC_MONTH: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x1F ); + break; + + case VREG_C_RTC_YEAR: + set_rtc( adrs - VREG_C_RTC_SEC, data ); + break; + + case VREG_C_RTC_COMP: + WDT_Restart(); + while(1) + { + RWAIT = 1; + while( !RWST ){} + if( SEC != 0 ) + { + break; + } + RWAIT = 0; + } + SUBCUD = data; + RWAIT = 0; + vreg_ctr[ VREG_C_RTC_COMP ] = data; + break; + + case VREG_C_RTC_ALARM_MIN: + rtc_alarm_dirty = true; + vreg_ctr[ VREG_C_RTC_ALARM_MIN ] = (u8)( data & 0x7F ); + break; + + case VREG_C_RTC_ALARM_HOUR: + rtc_alarm_dirty = true; + vreg_ctr[ VREG_C_RTC_ALARM_HOUR ] = (u8)( data & 0x3F ); + break; + + // ł悢 + case VREG_C_RTC_ALARM_DAY: + vreg_ctr[ VREG_C_RTC_ALARM_DAY ] = (u8)( data & 0x3F ); + break; + + case VREG_C_RTC_ALARM_MONTH: + vreg_ctr[ VREG_C_RTC_ALARM_MONTH ] = (u8)( data & 0x1F ); + break; + + case VREG_C_ACC_CONFIG: + renge_task_immed_add( tski_acc_setup ); + vreg_ctr[ VREG_C_ACC_CONFIG ] = data; + break; + + case VREG_C_ACC_R_ADRS: + renge_task_immed_add( tski_acc_read ); + vreg_ctr[ VREG_C_ACC_R_ADRS ] = data; + break; + + case VREG_C_ACC_W_BUF: + renge_task_immed_add( tski_acc_write ); + vreg_ctr[ VREG_C_ACC_W_BUF ] = data; + break; + + case VREG_C_ACC_HOSU_SETTING: + if( ( data & 0x01 ) != 0 ) + { + clear_hosu_hist(); // NA + } + break; + + case VREG_C_WIFI_CALIB: + if( data & REG_BIT_WIFI_CALIB_32K_HI_Z ) + { + RTC_32k_HI_Z(); + } + else{ + RTC_32k_on(); + } + if( data & REG_BIT_WIFI_CALIB_RSTS_AST ) + { + RESET1_ast; + // RESET2_ast; RESET1̂݁B + // FCRAM_RST_ast; + } + else{ +/* + SoC ~܂Ă܂̂łɗȂ + RESET1_neg; + RESET2_neg; + FCRAM_RST_neg; +*/ + } + vreg_ctr[ VREG_C_WIFI_CALIB ] = data; + break; + + case VREG_C_COMMAND3: + switch ( data ) + { +#ifdef _ENABLE_COMMAND3_ + case 'r': + // 荞݃[`FSLCuĂԂ̂͋֎~ + // }CRċNB@WX^ނB + renge_task_immed_add( tski_mcu_reset ); + break; + + case 'w': + // WDTōċNieXgj +// mcu_wdt_reset; // ̃R}hgӖȂłI + while(1) + { + dbg_nop(); + } + break; +#endif //_ENABLE_COMMAND3_ + +#ifdef _ENABLE_HAL_ + case 'p': + reserve_pedo_increnent = 1; + // ő₷ɂ̓X^bNȂBŗ\̂݁Atask_miscŏ +// hosu_increment_if_necessary(); // A + break; +#endif //_ENABLE_HAL_ + + } +// vreg_ctr[ VREG_C_COMMAND3 ] = data; // KvȂ + break; + + case VREG_C_RBR_CONTROL: +// vreg_ctr[ VREG_C_RBR_CONTROL ] = data; // todo debug u[N|Cgu߁BAt[WX^ + break; + + + // read only ////////////////////////////////////////// + case VREG_C_MCU_VER_MAJOR: + case VREG_C_MCU_VER_MINOR: + case VREG_C_3D: // ɃtbV + case VREG_C_SND_VOL: // ɃtbV + case VREG_C_BT_TEMP: // ɃtbV + case VREG_C_BT_REMAIN: // ɃtbV + case VREG_C_BT_REMAIN_FINE: // ɃtbV + case VREG_C_BT_VOLTAGE: // ɃtbV + case VREG_C_STATUS_1: // KɃtbV + case VREG_C_STATUS: // KɃtbV + case VREG_C_IRQ0: // ̂‚łɊ荞݋NĂقȂ... + case VREG_C_IRQ1: + case VREG_C_IRQ2: + case VREG_C_IRQ3: + case VREG_C_IRQ4: + case VREG_C_LED_NOTIFY_FLAG: // tbV + case VREG_C_RTC_SEC_FINE_L: // tbV + case VREG_C_RTC_SEC_FINE_H: // tbV + // VREG_C_ACC_RESERVE, // NȂ + // VREG_C_ACC_HOSU_HIST = 0x4F, + case VREG_C_ACC_XH: // tbV + case VREG_C_ACC_XL: + case VREG_C_ACC_YH: + case VREG_C_ACC_YL: + case VREG_C_ACC_ZH: + case VREG_C_ACC_ZL: +// dbg_nop(); + // return( ERROR ) + break; + + case VREG_C_ACC_HOSU_L: // ĂǁAfobOpB(AhX0x4B == mcu sla(r)) +// dbg_nop(); + /* FALLTHROUGH */ + + // ʂɏ邾 ///////////////////////////////// + default: + /* + case VREG_C_IRQ_MASK0: + case VREG_C_IRQ_MASK1: + case VREG_C_IRQ_MASK2: + case VREG_C_IRQ_MASK3: + case VREG_C_IRQ_MASK4: + case VREG_C_DBG01: + case VREG_C_DBG02: + case VREG_C_LED_BRIGHT: + case VREG_C_ACC_HOSU_L: + case VREG_C_ACC_HOSU_M: + case VREG_C_ACC_HOSU_H: + case VREG_C_ACC_HOSU_HOUR_BOUNDARY: + case VREG_C_FREE_ADRS: + case VREG_C_RTC_ALARM_YEAR: + case VREG_C_ACC_W_ADRS: + case VREG_C_OFF_DELAY: + case VREG_C_HAL_OVW_CONT0: + case VREG_C_HAL_OVW_DAT0: + case VREG_C_HAL_OVW_CONT1: + case VREG_C_HAL_OVW_DAT1: + */ + if( adrs < VREG_C_ENDMARK_ ) + { + vreg_ctr[adrs] = data; + break; + } + else + { +// dbg_nop(); // `AhXɏ@Ȃ񂩃oOĂȂH + // return( ERROR ) + break; + } + } +// return( SUCCESS ) + return; +} + + + +/********************************************//** + I2CzWX^ǂ݂܂B + + ߂F xx f[^ + + ӁF̃AhX̏ŌĂ΂ ̂ŁA + [hꂽNAȂǂ͋C‚ + + ( vreg_ctr_after_read( u8 adrs ) ) + ***********************************************/ +u8 vreg_ctr_read( u8 adrs ) +{ + static u16 rsub_temp; + u8 temp; + + // RTC͓ǂݏorɌJオ̂邽 + if( ( VREG_C_RTC_SEC <= adrs ) && ( adrs <= VREG_C_RTC_YEAR ) ) + { + rtc_buf_refresh( ); + } + else if( adrs == VREG_C_MCU_STATUS ) + { + return( ( vreg_ctr[ VREG_C_MCU_STATUS ] & 0x03 ) | + ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x03 ) << 6 ) | // sys_mode + ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 ) >> 2 )); // vol32 + } + else if( adrs == VREG_C_RTC_SEC_FINE_L ) + { + rsub_temp = RSUBC; + return( (u8)( rsub_temp & 0xFF ) ); + } + else if( adrs == VREG_C_RTC_SEC_FINE_H ) + { + return( (u8)( ( rsub_temp >> 8 ) & 0xFF ) ); + } +/* + // debug I + else if( adrs == VREG_C_IRQ_MASK0 ) + { + return( vreg_ctr[ VREG_C_IRQ_MASK0 ] & 0x7F ); // `MSB0B1ȂʐMG[ + } +*/ + else if( adrs == VREG_C_ACC_HOSU_HIST ) + { + return( hosu_read() ); + } + else if( adrs == VREG_CX_FREE_DATA ) + { + if( vreg_free_adrs >= VREG_C_FREE_SIZE ) + { + temp = 0x00; + } + else + { + temp = pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ]; + // vreg_free_adrs ++; // ʼnZĂ܂ƃCfbNX + } + return( temp ); + } + else if( adrs == VREG_CX_INFO ) + { + return( extinfo_read() ); + } + else if( adrs == VREG_C_ACC_HOSU_SETTING ) + { + if( pedolog_overflow ) + { + return( 0x10 ); + } + else + { + return( 0 ); + } + } + + if( adrs >= VREG_C_ENDMARK_ ) + { + // VREG_C_INFO > VREG_C_ENDMARK_ Ȃ̂łƂ + return( 0xFF ); + } + return ( vreg_ctr[adrs] ); +} + + +/********************************************//** + I2CzWX^ǂ܂ĉ郌WX^ + ***********************************************/ +void vreg_ctr_after_read( u8 adrs, u8 data ) +{ + // 荞݃tO̓[hŃNA + switch( adrs ) + { + case VREG_C_IRQ0: + case VREG_C_IRQ1: + case VREG_C_IRQ2: + case VREG_C_IRQ3: + case VREG_C_IRQ4: + DI_wt_chk(); + vreg_ctr[ adrs ] ^= data; + EI(); + irq_readed = true; + break; + + case VREG_CX_FREE_DATA: + vreg_free_adrs ++; + break; + + default: + break; + } +} + + + + + + +/********************************************//** + 荞݂ + + - @}XNĂAtOuĂȂvA荞ݓȂB + + - @荞݂AǂݏoOɃ}XNƂ́ASoC̏L[ɂ + IRQǂރ^XNςł̂ŁAǂ݂ɂ͗B + + @ƁAÔ߁A}XNƂ͋ǂ݂Ă炤B + + łDĨ`FbNsvB + + @DIɗ̂I2C_twlARTC_A[B̒ŖڒEIĎgpȂ + ***********************************************/ +void set_irq( u8 irqreg, u8 irq_flg ) +{ + u8 tot; +//0 u8 ei_orig; // EItOۑ + + if(( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP )) + { +/*0 łDIԂȂPAKvȂ + ei_orig = get_ei(); + + //. debug + if( !ei_orig ) + { + dbg_nop(); + } + + DI_wt_chk(); +*/ + DI(); + if( ( vreg_ctr[ irqreg + 8 ] & irq_flg ) == 0 ) + { + vreg_ctr[ irqreg ] |= irq_flg; + IRQ0_neg; // uグ... +//0 if( ei_orig ) + { + EI(); + } + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} // O.D.Ȃ̂łƂ̂҂ IRQ_mcu LɔĂƍ(•s) + IRQ0_ast; // ƂBiGbW荞ׁ݂̈j + } +//0 if( ei_orig ) + { + EI(); + } + } +} + diff --git a/snake_tags/2.36/vreg_ctr.h b/snake_tags/2.36/vreg_ctr.h new file mode 100644 index 0000000..00c2140 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/vreg_twl.c b/snake_tags/2.36/vreg_twl.c new file mode 100644 index 0000000..1cb1225 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/vreg_twl.h b/snake_tags/2.36/vreg_twl.h new file mode 100644 index 0000000..63cdd94 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/yav_mcu_bsr.plg b/snake_tags/2.36/yav_mcu_bsr.plg new file mode 100644 index 0000000..cd8502b --- /dev/null +++ b/snake_tags/2.36/yav_mcu_bsr.plg @@ -0,0 +1,48 @@ +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 pm.c +pm.c(546) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(558) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(882) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(886) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(915) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(929) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1015) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1024) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1095) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1241) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1243) : CC78K0R warning W0401: Conversion may lose significant digits +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 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\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) : 25 diff --git a/snake_tags/2.36/yav_mcu_bsr.pri b/snake_tags/2.36/yav_mcu_bsr.pri new file mode 100644 index 0000000..b018509 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/yav_mcu_bsr.prj b/snake_tags/2.36/yav_mcu_bsr.prj new file mode 100644 index 0000000..4292dd6 --- /dev/null +++ b/snake_tags/2.36/yav_mcu_bsr.prj @@ -0,0 +1,1408 @@ +[ProjectManager] +Version=6.00 +Path=C:\78k_data\yav-mcu-basara\snake_trunk\ +Title=yav-mcu +Series=78K0R.PM +Device=uPD79F0104 +DeviceVer=E1.00b +DebugMode=1 +Target=bsr.lmf +[BuildMode0] +BuildModeName=Debug Build +TargetFile=0 +[BuildMode1] +BuildModeName=Release Build +TargetFile=0 +[Tools] +MakeFile=yav_mcu_bsr.mak +Debugger=C:\Program Files (x86)\NEC Electronics Tools\ID78K0R-QB\V3.61\BIN\IDK0R32G.EXE +DebOption= +DebCpuReset=1 +DebSymReset=1 +MuitiLoad=0 +LoadPrjNum=0 +CheckVersion=CC78K0R|W2.13;RA78K0R|W1.33 +[Option.IDK0R32G] +File=\\tsclient\C\78k_data\yav-mcu-basara\trunk\yav_mcu_bsr.pri +[BuildMode2] +BuildModeName=K0R_dbg +TargetFile=0 +[BuildMode3] +BuildModeName=BSR_dbg +TargetFile=0 +[BuildMode4] +BuildModeName=BSR_rel +TargetFile=0 +[BuildMode5] +BuildModeName=BSR_WM0 +TargetFile=0 +[Options.OC78K0R 0] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 1] +Version=100 +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 2] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=0 +UN=FF +UST= +USZ= +K=0 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 3] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 4] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 5] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[BuildBefore-AfterCmd] +Before1=c:\cygwin\bin\touch magic.c +After1=ruby nec_s_2_bsrbin2.rb bsr.hex +[ToolSet] +ToolSetName=(ύX)78K0R Software Package V1.10 +Tool1=CC78K0R|W2.13 +Tool2=RA78K0R|W1.33 +Tool3=SK78K0R|V3.10 +Tool4=ID78K0R-QB|V3.61 +[Options.RA78K0R 0] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 1] +Version=100 +G=0 +GA=0 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 2] +Version=100 +O0= +O1=obj +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +P0=inter_asm +KA=1 +KS=1 +KX=1 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT=-pinter_asm -ks -kx +[Options.RA78K0R 3] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 4] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 5] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[SrcFile] +Source1=loader.c +Source2=pm.c +Source3=i2c_ctr.c +Source4=main.c +Source5=magic.c +Source6=WDT.c +Source7=i2c_mcu.c +Source8=i2c_twl.c +Source9=led.c +Source10=rtc.c +Source11=vreg_ctr.c +Source12=vreg_twl.c +Source13=adc.c +Source14=renge\renge.c +Source15=accero.c +Source16=self_flash.c +Source17=sw.c +Source18=task_debug.c +Source19=task_misc.c +Source20=task_sys.c +Source21=pedo_alg_thre_det2.c +Source22=ini_VECT.c +Source23=task_status.c +Source24=led_cam.c +Source25=led_pow.c +Source26=hal.c +Source27=batt_params.c +Source28=voltable.c +Source29=pedo_lpf_coeff.c +Source30=kanaria.asm +Source31=kanaria_c.c +Source32=get_ei.asm +Source33=util_funcs.c +Source34=i2c_mcu-sub.c +[Options.CC78K0R 0] +Version=210 +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 1] +Version=210 +Memorymodel=2 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1128 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=0 +Outdebug=1153 +Outasmsrcchk=0 +Outasmsrc=1157 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1173 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=0 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=1 +FarROMization=1 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rll.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Define3=_TEG_,proc_is_ke3 +Define4=proc_is_ke3 +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include2=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1069 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 vreg_ctr.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 vreg_twl.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 renge.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 self_flash.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 3] +Version=210 +Define0=_debug_,proc_is_bsr,_TEG_ +Define1=_debug_,proc_is_bsr +Define2=proc_is_bsr +Define3=_TEG_,proc_is_ke3 +Define4=proc_is_ke3 +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 4] +Version=210 +Define0=proc_is_bsr +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 5] +Version=210 +Define0= +Define1=_debug_,proc_is_bsr,_TEG_,_WM0_ +Define2=_debug_,proc_is_bsr,_TEG_,_WM0 +Define3=_debug_,proc_is_bsr,_TEG_ +Define4=_debug_,proc_is_bsr +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[IncFile] +Include1=incs_loader.h +Include2=config.h +Include3=jhl_defs.h +Include4=user_define.h +Include5=hal.h +Include6=bsr_system.h +Include7=renge\renge.h +Include8=renge\renge_defs.h +Include9=renge\renge_task_immediate.h +Include10=vreg_ctr.h +Include11=vreg_twl.h +Include12=loader.h +Include13=i2c_mcu.h +Include14=WDT.h +Include15=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +Include16=fsl_user.h +Include17=i2c_ctr.h +Include18=pm.h +Include19=rtc.h +Include20=reboot.h +Include21=magic.h +Include22=incs.h +Include23=i2c_twl.h +Include24=accero.h +Include25=pedometer.h +Include26=sw.h +Include27=adc.h +Include28=led.h +Include29=batt_params.h +Include30=pool.h +Include31=i2c_twl_defs.h +Include32=renge\renge_task_intval.h +Include33=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h +Include34=self_flash.h +Include35=util_funcs.h +Include36=i2c_mcu_sub.h +[Options.LK78K0R 0] +Version=100 +O0=bsr_k0r.lmf +O1=bsr.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=1 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 1] +Version=100 +O0=a.lmf +G=0 +E=0 +E0=a.elk +GO=0 +GOValue= +GOStart=FC00 +GOSizeValue=1024 +GI=0 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=1 +MemInfoCheck=0 +P=1 +P0=a.map +MI=0 +GB=0 +GBValue= +KM=1 +KD=1 +KP=0 +KL=0 +LF=0 +LL=0 +S=0 +W=1 +SELFCheck=0 +SELF=0 +ZB= +CommandFile=0 +[Options.LK78K0R 2] +Version=100 +O0=bsr.lmf +O1=bsr_k0r.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=0 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=1B339499E033F240BFAA +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=7EFBFF +KM=1 +KD=0 +KP=0 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib +B1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +OFILE=C:\78k_data\yav-mcu-basara\snake_trunk\bsr.lmf +[Options.LK78K0R 3] +Version=100 +O0=bsr_bsr.lmf +O1=bsr_k0r.lmf +O2=bsr.lmf +O3=flash.lmf +O4=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_bsr.map +P1=bsr_k0r.map +P2=bsr.map +P3=flash.map +P4=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 4] +Version=100 +O0=bsr_k0r.lmf +O1=bsr.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=1 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 5] +Version=100 +O0=bsr_bsr.lmf +O1=bsr_k0r.lmf +O2=bsr.lmf +O3=flash.lmf +O4=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_bsr.map +P1=bsr_k0r.map +P2=bsr.map +P3=flash.map +P4=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LCNV78K0R 0] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 1] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 2] +Version=100 +LCNV_GO=0 +O0=inter_asm +E=0 +CommandFile=0 +[Options.LCNV78K0R 3] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 4] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 5] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.78K0R] +BuildMode=2 +BuildMode2=K0R_dbg +BuildMode3=BSR_dbg +BuildMode4=BSR_rel +BuildMode5=BSR_WM0 +DefaultMode2=1 +DefaultMode3=1 +DefaultMode4=1 +DefaultMode5=1 diff --git a/snake_tags/2.36/yav_mcu_bsr.prk b/snake_tags/2.36/yav_mcu_bsr.prk new file mode 100644 index 0000000..28aca9e --- /dev/null +++ b/snake_tags/2.36/yav_mcu_bsr.prk @@ -0,0 +1,16 @@ +[ProjectManager] +FrameMax=0 +FrameX=2 +FrameY=0 +FrameCX=1022 +FrameCY=724 +OpenFile1=ProjectWindow +PrjPos=0,0,706,0,291 +OpenFile2=config.h,0,100,100,1125,668,4,32,4,0 +OpenFile3=pm.c,0,75,75,1051,677,65,546,65,0 +OpenFile4=config.h,0,100,100,984,672,58,19,58,0 +OpenFile5=OutputWindow +OutputPos=0,85,833,249,1141 +ActivePRJ=yav_mcu_bsr.prj +[ProjectWindow] +ProjectWindowDispType=0 diff --git a/snake_tags/2.36/yav_mcu_bsr.prw b/snake_tags/2.36/yav_mcu_bsr.prw new file mode 100644 index 0000000..7c0bbd6 --- /dev/null +++ b/snake_tags/2.36/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_tags/2.36/yav_mcu_bsr.sdb b/snake_tags/2.36/yav_mcu_bsr.sdb new file mode 100644 index 0000000..597efa8 --- /dev/null +++ b/snake_tags/2.36/yav_mcu_bsr.sdb @@ -0,0 +1,325 @@ +[SdbInfo] +Ver=5 +[loader.c] +T=52b3fb69 +1=incs_loader.h +2=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +3=fsl_user.h +4=i2c_ctr.h +5=i2c_mcu.h +6=pm.h +7=rtc.h +8=reboot.h +9=WDT.h +10=magic.h +[pm.c] +T=52ef170f +1=incs.h +2=adc.h +3=led.h +4=pm.h +5=renge\renge.h +6=batt_params.h +7=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +8=fsl_user.h +9=vreg_twl.h +10=i2c_mcu.h +[i2c_ctr.c] +T=51c8f7f4 +1=incs.h +2=rtc.h +3=pedometer.h +[main.c] +T=51c8f7f4 +1=incs.h +2=rtc.h +3=pm.h +4=accero.h +5=led.h +6=adc.h +7=i2c_mcu.h +8=pool.h +[magic.c] +T=52eeee17 +1=magic.h +2=config.h +[WDT.c] +T=51c8f7fd +1=incs_loader.h +[i2c_mcu.c] +T=52e9bc95 +1=incs_loader.h +2=i2c_mcu.h +3=loader.h +4=util_funcs.h +5=i2c_mcu_sub.h +[i2c_twl.c] +T=51c8f7f9 +1=incs_loader.h +2=i2c_twl_defs.h +3=i2c_twl.h +4=vreg_twl.h +5=WDT.h +[led.c] +T=52296ef8 +1=incs.h +2=led.h +[rtc.c] +T=51c8f7f4 +1=incs.h +[vreg_ctr.c] +T=522d6d56 +1=incs.h +2=vreg_ctr.h +3=rtc.h +4=led.h +5=accero.h +6=pm.h +7=pool.h +8=vreg_twl.h +9=sw.h +10=WDT.h +11=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +12=fsl_user.h +[vreg_twl.c] +T=51c8f7f9 +1=incs.h +2=jhl_defs.h +3=led.h +4=vreg_twl.h +5=adc.h +[adc.c] +T=51c8f7fd +1=incs.h +2=adc.h +3=pm.h +4=led.h +5=vreg_twl.h +6=i2c_mcu.h +[renge\renge.c] +T=511c3fe3 +1=renge\renge.h +2=renge\renge_task_intval.h +3=renge\renge_task_immediate.h +4=WDT.h +5=config.h +6=user_define.h +7=util_funcs.h +8=bsr_system.h +[accero.c] +T=51c8f7f5 +1=incs.h +2=accero.h +3=i2c_mcu.h +4=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h +[self_flash.c] +T=51c8f7fa +1=incs_loader.h +2=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +3=fsl_user.h +4=i2c_ctr.h +5=i2c_mcu.h +6=pool.h +7=magic.h +8=pm.h +9=WDT.h +10=util_funcs.h +[sw.c] +T=51c91572 +1=incs.h +2=i2c_twl.h +3=i2c_ctr.h +4=led.h +5=pm.h +6=rtc.h +7=sw.h +[task_debug.c] +T=51c8f7f9 +1=incs_loader.h +2=renge\renge.h +3=pm.h +4=accero.h +[task_misc.c] +T=522971da +1=incs.h +2=renge\renge.h +3=pm.h +4=accero.h +5=adc.h +6=i2c_mcu.h +7=led.h +8=vreg_twl.h +[task_sys.c] +T=52e9b9fb +1=incs.h +2=i2c_twl.h +3=i2c_ctr.h +4=led.h +5=accero.h +6=pm.h +7=rtc.h +8=sw.h +9=adc.h +10=self_flash.h +11=i2c_mcu.h +12=vreg_twl.h +[pedo_alg_thre_det2.c] +T=51c8f7f9 +1=incs.h +2=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h +3=accero.h +4=pedometer.h +5=pool.h +[ini_VECT.c] +T=51c8f7fa +1=config.h +[task_status.c] +T=52a9795d +1=incs_loader.h +2=renge\renge.h +3=pm.h +4=accero.h +5=adc.h +6=i2c_mcu.h +7=led.h +[led_cam.c] +T=51c8f7f9 +1=incs.h +2=led.h +3=vreg_twl.h +[led_pow.c] +T=51c8f7f5 +1=incs.h +2=led.h +3=pm.h +[hal.c] +T=51c8f7f9 +1=incs_loader.h +[batt_params.c] +T=522d7dd3 +1=jhl_defs.h +2=batt_params.h +[voltable.c] +T=51c8f7fa +1=incs.h +[pedo_lpf_coeff.c] +T=51c8f7f9 +1=incs.h +[kanaria.asm] +T=511c3fe7 +[kanaria_c.c] +T=51c8f7f9 +1=incs.h +[get_ei.asm] +T=511c3fe3 +[util_funcs.c] +T=51c8f7fd +1=incs_loader.h +2=WDT.h +[i2c_mcu-sub.c] +T=51c8f7fa +1=incs.h +2=i2c_mcu.h +3=loader.h +4=util_funcs.h +5=i2c_mcu_sub.h +6=pm.h +[incs_loader.h] +T=51c8f7f9 +1=jhl_defs.h +2=config.h +3=user_define.h +4=hal.h +5=bsr_system.h +6=renge\renge.h +7=vreg_ctr.h +8=vreg_twl.h +[config.h] +T=52e9bb3c +[jhl_defs.h] +T=52a97827 +[user_define.h] +T=52a97392 +[hal.h] +T=51c8f7f9 +[bsr_system.h] +T=522d6d56 +[renge\renge.h] +T=511c3fe3 +1=renge\renge_defs.h +2=renge\renge_task_immediate.h +[renge\renge_defs.h] +T=511c3fe3 +[renge\renge_task_immediate.h] +T=511c3fe3 +1=renge\renge_defs.h +[vreg_ctr.h] +T=52004274 +1=config.h +[vreg_twl.h] +T=51c8f7f9 +[loader.h] +T=51c8f7fa +[i2c_mcu.h] +T=51c8f7fd +[WDT.h] +T=51c8f7fd +[..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h] +T=49a3bd4e +[fsl_user.h] +T=51c8f7fa +[i2c_ctr.h] +T=51c8f7f5 +[pm.h] +T=52e9ce36 +[rtc.h] +T=51c8f7f5 +[reboot.h] +T=51c8f7f5 +[magic.h] +T=51c8f7fa +[incs.h] +T=51c8f7f9 +1=jhl_defs.h +2=config.h +3=user_define.h +4=hal.h +5=bsr_system.h +6=renge\renge.h +7=vreg_ctr.h +8=util_funcs.h +[i2c_twl.h] +T=51c8f7f9 +[accero.h] +T=51c8f7f9 +1=jhl_defs.h +2=pedometer.h +[pedometer.h] +T=51c8f7f4 +[sw.h] +T=51c8f7fd +1=config.h +[adc.h] +T=51c8f7fd +1=jhl_defs.h +[led.h] +T=51c8f7f9 +[batt_params.h] +T=52eb3448 +1=jhl_defs.h +[pool.h] +T=51c8f7fa +1=pedometer.h +[i2c_twl_defs.h] +T=51c8f7fa +[renge\renge_task_intval.h] +T=511c3fe3 +1=renge\renge_defs.h +[..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h] +T=45f12258 +[self_flash.h] +T=51c8f7fa +[util_funcs.h] +T=51c8f7f4 +[i2c_mcu_sub.h] +T=51c8f7fa diff --git a/snake_tags/2.36/ベースからの変更.xls b/snake_tags/2.36/ベースからの変更.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_tags/2.36/覚え書き.txt b/snake_tags/2.36/覚え書き.txt new file mode 100644 index 0000000..28269c4 --- /dev/null +++ b/snake_tags/2.36/覚え書き.txt @@ -0,0 +1,9 @@ +A܂Ƃ wiki ɏȂƂȂǁB + +2.2C +SNAKE Ή (vCg) + +2.2D +SNAKE system updater mcu vZX쐬Ɍ߁A +o[Wԍ̂݁A2.2D ɂȂĂ +