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

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

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

変換レポート -

+ +

+ 変換時間:
+

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

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

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

|eelKB2fZ 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 M2RL@s-KhWn1!%%64FCWD literal 0 HcmV?d00001 diff --git a/snake_branches/2.35/i2c_ctr.c b/snake_branches/2.35/i2c_ctr.c new file mode 100644 index 0000000..4bd238e --- /dev/null +++ b/snake_branches/2.35/i2c_ctr.c @@ -0,0 +1,312 @@ +/* ======================================================== + SoC VK`l I2CʐM + cJZ.nintendo + '09 Apr + $Id: i2c_ctr.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 +#pragma interrupt INTIICA1 int_iic_ctr RB1 +#endif + + +#include "incs.h" +#include "rtc.h" +#include "pedometer.h" + + +#ifdef _MCU_BSR_ +// #ifdef _MODEL_TS0_ || _MODEL_WM0_ + +// [LOfI2Ct +// TEG͉H}ŃeR +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR0 IICAPR11 +#define IICAPR1 IICAPR01 +#define IICCTL0 IICCTL10 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#define TRC TRC1 +#define SMC SMC1 +#define DFC DFC1 +#define PortMode PM20 +#define Port P20 + +#endif + + + +// ============================================== +enum en_IIC_STATE +{ + IIC_IDLE = 0, + IIC_RCV_REG_ADRS, + IIC_TX_OR_RX, + IIC_TX, + IIC_RX +}; + + + +// ============================================== +extern bit irq_readed; // ꂩIRQWX^ǂ܂ꂽ + +u8 iic_burst_state; +static enum en_IIC_STATE state = IIC_IDLE; + +#define bit_iics_spd (i2c_stat & (1<<0)) +#define bit_iics_std (i2c_stat & (1<<1)) +#define bit_iics_ackd (i2c_stat & (1<<2)) +#define bit_iics_trc (i2c_stat & (1<<3)) +#define bit_iics_coi (i2c_stat & (1<<4)) + + + +/********************************************//** + isr + + Xe[gɊ荞݂菈i߂ + ***********************************************/ +__interrupt void int_iic_ctr( ) +{ + static u8 reg_adrs; + static u8 tx_buf; + u8 rx_buf; + static u8 adrs_access_from; // o[XgANZX̎Ɏg + + u8 i2c_stat = IICS; // volatilê + + // ǂݏoI + if( !bit_iics_ackd // 荞ݗvNAKif[^M̍Ōj + || bit_iics_spd ) // XgbvRfBV(!ACKD ɗƂ͊荞ݗȂ (SPIE = 0)) + { + /* + I2C̔xẴtOOSTDĂ܂Ƃ + ǁAȂ삷‚ + */ + + // WX^[hŁA荞݃slQ[g + // ܂ǂ܂ĂȂ荞݂΁AēxAT[g + if( irq_readed ) + { + IRQ0_neg; + irq_readed = false; + if( !( (( vreg_ctr[VREG_C_IRQ0] & vreg_ctr[VREG_C_IRQ_MASK0 ] ) == 0 ) + && (( vreg_ctr[VREG_C_IRQ1] & vreg_ctr[VREG_C_IRQ_MASK1 ] ) == 0 ) + && (( vreg_ctr[VREG_C_IRQ2] & vreg_ctr[VREG_C_IRQ_MASK2 ] ) == 0 ) + && (( vreg_ctr[VREG_C_IRQ3] & vreg_ctr[VREG_C_IRQ_MASK3 ] ) == 0 ) )) + { + while( !IRQ0 ){;} // ԉ҂sv + IRQ0_ast; + } + } + + // I2CIɉ镨 // + hosu_read_end( ); // vǂݏoI + rtc_unlock( ); + + state = IIC_IDLE; + SPIE = 0; + LREL = 1; + EI(); + return; + } + + if( bit_iics_std ) // 荞ݗvFX^[gRfBV + { + if( !( state == IIC_IDLE || state == IIC_TX_OR_RX )) + { + // sp/nack 葹˂ +// dbg_nop(); // Ȃ͂... +/* + // pPbg̐擪stƌȂB + // ʂɑs + state = IIC_IDLE; +/*/ + // gCĂ炤 + state = IIC_IDLE; + SPIE = 0; + LREL = 1; + EI(); +//*/ + } + // ʏ + } + + EI(); + + switch ( state ) + { + case ( IIC_IDLE ): + // njĂяoɉB + // Ȃ + iic_burst_state = 0; + SPIE = 1; + WREL = 1; // EFCg + state = IIC_RCV_REG_ADRS; + return; + + case ( IIC_RCV_REG_ADRS ): // QoCgځiWX^AhXjMɗ + // WX^AhXM + reg_adrs = IICA; + + WREL = 1; + adrs_access_from = reg_adrs; + tx_buf = vreg_ctr_read( reg_adrs ); // f[^̏Ă + state = IIC_TX_OR_RX; + return; + + case ( IIC_TX_OR_RX ): // ̎ɗ銄荞݁BSTȂ瑗MAf[^珑܂ + // if( TRC ) // MtO ŋʂ̂́A荞ݒxɕsN肦 + if( bit_iics_std ) + { // X^[gRfBVotO + // [h + if( bit_iics_coi ) + { // AhXvtO + state = IIC_TX; + // no break, no return // + } + else + { + // X^[gňႤfoCXĂ΂ꂽI + SPIE = 0; + LREL = 1; // EFCg? + state = IIC_IDLE; // I + return; + } + } + else + { + state = IIC_RX; // f[^1oCgM̊荞݂ + // no break, no return // + } + /* FALLTHROUGH */ + + default: // o[Xg R/W łĂ΂邱ƂɂȂ + if( state == IIC_TX ) + { // M + IICA = tx_buf; + vreg_ctr_after_read( reg_adrs, tx_buf ); // ǂ񂾂NAȂǂ̏ + } + else + { // M + rx_buf = IICA; + +#ifdef _I2C_ERR_ABORT_ + if( reg_adrs >= 0x80 || reg_adrs <= 1 ) + { + LREL = 1; // Ȃ񂩃f[^̂ŒʐMI nakԂ̂Ȃc + return; + } +#endif + vreg_ctr_write( reg_adrs, rx_buf ); + WREL = 1; + } + + // WX^AhX̃CNg + /// ANZX|C^i߂ȂȃWX^ + switch( adrs_access_from ) + { + case( VREG_C_ACC_HOSU_HIST ): + case( VREG_C_LED_NOTIFY_DATA ): + case( VREG_C_LED_POW ): + case( VREG_CX_INFO ): + case( VREG_CX_FREE_DATA ): + break; + case( VREG_CX_FREE_ADRS ): + if( reg_adrs == VREG_CX_FREE_ADRS ) + { + reg_adrs = VREG_CX_FREE_DATA; + } + break; + default: + reg_adrs ++; + } + + if( state == IIC_TX ) + { // ɂ‚ɑf[^̏VeINBSPĎgȂȂ + tx_buf = vreg_ctr_read( reg_adrs ); + } + break; + } +} + + + +/********************************************//** +@W[ +@ +@todo twl init Ɠ? +@ +@rbg삪̂łĕsoςȂ + ***********************************************/ +void IIC_ctr_Init( void ) +{ + + IICAEN = 1; + + IICE = 0; /* IICA disable */ + + IICAMK = 1; /* INTIICA disable */ + IICAIF = 0; /* clear INTIICA interrupt flag */ + +// IICAPR0 = 1; /* set INTIICA high priority */ +// IICAPR1 = 0; /* set INTIICA high priority */ X^bNs + + Port &= ~0x03; + + SVA = IIC_C_SLAVEADDRESS; + IICF = 0x01; + + STCEN = 1; // X^[g̋ + IICRSV = 1; // ʐM\Ȃ:X[uɓO + + SPIE = 0; // XgbvRfBVł̊荞݂֎~ + WTIM = 1; // ACKԂclkLɌŒ肷 + ACKE = 1; + + IICWH = 9; + IICWL = 11; // LԂ̒ + + SMC = 1; // [h + DFC = 1; // fW^tB^on (@fast mode) + + IICAMK = 0; // 荞݂ + + IICE = 1; + + PortMode &= ~0x03; + + state = IIC_IDLE; +} + + + +/********************************************//** + + ***********************************************/ +void IIC_ctr_Stop( void ) +{ + IICE = 0; /* IICA disable */ + IICAEN = 0; +} + + + diff --git a/snake_branches/2.35/i2c_ctr.h b/snake_branches/2.35/i2c_ctr.h new file mode 100644 index 0000000..16234ff --- /dev/null +++ b/snake_branches/2.35/i2c_ctr.h @@ -0,0 +1,210 @@ +#ifndef _MDSERIAL_A_ +#define _MDSERIAL_A_ + + +/* IIC operation enable (IICE0) */ +#define IIC0_OPERATION 0x80 +#define IIC0_OPERATION_DISABLE 0x00 /* stop operation */ +#define IIC0_OPERATION_ENABLE 0x80 /* enable operation */ + +/* Exit from communications (LREL0) */ +#define IIC0_COMMUNICATION 0x40 +#define IIC0_COMMUNICATION_NORMAL 0x00 /* normal operation */ +#define IIC0_COMMUNICATION_EXIT 0x40 /* exit from current communication */ + +/* Wait cancellation (WREL0) */ +#define IIC0_WAITCANCEL 0x20 +#define IIC0_WAIT_NOTCANCEL 0x00 /* do not cancel wait */ +#define IIC0_WAIT_CANCEL 0x20 /* cancel wait */ + +/* Generation of interrupt when stop condition (SPIE0) */ +#define IIC0_STOPINT 0x10 +#define IIC0_STOPINT_DISABLE 0x00 /* disable */ +#define IIC0_STOPINT_ENABLE 0x10 /* enable */ + +/* Wait and interrupt generation (WTIM0) */ +#define IIC0_WAITINT 0x08 +#define IIC0_WAITINT_CLK8FALLING 0x00 /* generate at the eighth clocks falling edge */ +#define IIC0_WAITINT_CLK9FALLING 0x08 /* generated at the ninth clocks falling edge */ + +/* Acknowledgement control (ACKE0) */ +#define IIC0_ACK 0x04 +#define IIC0_ACK_DISABLE 0x00 /* enable acknowledgement */ +#define IIC0_ACK_ENABLE 0x04 /* disable acknowledgement */ + +/* Start condition trigger (STT0) */ +#define IIC0_STARTCONDITION 0x02 +#define IIC0_START_NOTGENERATE 0x00 /* do not generate start condition */ +#define IIC0_START_GENERATE 0x02 /* generate start condition */ + +/* Stop condition trigger (SPT0) */ +#define IIC0_STOPCONDITION 0x01 +#define IIC0_STOP_NOTGENERATE 0x00 /* do not generate stop condition */ +#define IIC0_STOP_GENERATE 0x01 /* generate stop condition */ + +/* + IIC Status Register 0 (IICS0) +*/ +/* Master device status (MSTS0) */ +#define IIC0_MASTERSTATUS 0x80 +#define IIC0_STATUS_NOTMASTER 0x00 /* slave device status or communication standby status */ +#define IIC0_STATUS_MASTER 0x80 /* master device communication status */ + +/* Detection of arbitration loss (ALD0) */ +#define IIC0_ARBITRATION 0x40 +#define IIC0_ARBITRATION_NO 0x00 /* arbitration win or no arbitration */ +#define IIC0_ARBITRATION_LOSS 0x40 /* arbitration loss */ + +/* Detection of extension code reception (EXC0) */ +#define IIC0_EXTENSIONCODE 0x20 +#define IIC0_EXTCODE_NOT 0x00 /* extension code not received */ +#define IIC0_EXTCODE_RECEIVED 0x20 /* extension code received */ + +/* Detection of matching addresses (COI0) */ +#define IIC0_ADDRESSMATCH 0x10 +#define IIC0_ADDRESS_NOTMATCH 0x00 /* addresses do not match */ +#define IIC0_ADDRESS_MATCH 0x10 /* addresses match */ + +/* Detection of transmit/receive status (TRC0) */ +#define IIC0_STATUS 0x08 +#define IIC0_STATUS_RECEIVE 0x00 /* receive status */ +#define IIC0_STATUS_TRANSMIT 0x08 /* transmit status */ + +/* Detection of acknowledge signal (ACKD0) */ +#define IIC0_ACKDETECTION 0x04 +#define IIC0_ACK_NOTDETECTED 0x00 /* ACK signal was not detected */ +#define IIC0_ACK_DETECTED 0x04 /* ACK signal was detected */ + +/* Detection of start condition (STD0) */ +#define IIC0_STARTDETECTION 0x02 +#define IIC0_START_NOTDETECTED 0x00 /* start condition not detected */ +#define IIC0_START_DETECTED 0x02 /* start condition detected */ + +/* Detection of stop condition (SPD0) */ +#define IIC0_STOPDETECTION 0x01 +#define IIC0_STOP_NOTDETECTED 0x00 /* stop condition not detected */ +#define IIC0_STOP_DETECTED 0x01 /* stop condition detected */ + +/* + IIC Flag Register 0 (IICF0) +*/ +/* STT0 clear flag (STCF) */ +#define IIC0_STARTFLAG 0x80 +#define IIC0_STARTFLAG_GENERATE 0x00 /* generate start condition */ +#define IIC0_STARTFLAG_UNSUCCESSFUL 0x80 /* start condition generation unsuccessful */ + +/* IIC bus status flag (IICBSY) */ +#define IIC0_BUSSTATUS 0x40 +#define IIC0_BUS_RELEASE 0x00 /* bus release status */ +#define IIC0_BUS_COMMUNICATION 0x40 /* bus communication status */ + +/* Initial start enable trigger (STCEN) */ +#define IIC0_STARTWITHSTOP 0x02 +#define IIC0_START_WITHSTOP 0x00 /* generation of a start condition without detecting a stop condition */ +#define IIC0_START_WITHOUTSTOP 0x02 /* generation of a start condition upon detection of a stop condition */ + +/* Communication reservation function disable bit (IICRSV) */ +#define IIC0_RESERVATION 0x01 +#define IIC0_RESERVATION_ENABLE 0x00 /* enable communication reservation */ +#define IIC0_RESERVATION_DISABLE 0x01 /* disable communication reservation */ + +/* + IIC clock selection register 0 (IICCL0) +*/ +#define IICCL0_INITIALVALUE 0x00 +/* Detection of SCL0 pin level (CLD0) */ +#define IIC0_SCLLEVEL 0x20 +#define IIC0_SCL_LOW 0x00 /* clock line at low level */ +#define IIC0_SCL_HIGH 0x20 /* clock line at high level */ + +/* Detection of SDA0 pin level (DAD0) */ +#define IIC0_SDALEVEL 0x10 +#define IIC0_SDA_LOW 0x00 /* data line at low level */ +#define IIC0_SDA_HIGH 0x10 /* data line at high level */ + +/* Operation mode switching (SMC0) */ +#define IIC0_OPERATIONMODE 0x08 +#define IIC0_MODE_STANDARD 0x00 /* operates in standard mode */ +#define IIC0_MODE_HIGHSPEED 0x08 /* operates in high-speed mode */ + +/* Digital filter operation control (DFC0) */ +#define IIC0_DIGITALFILTER 0x04 +#define IIC0_FILTER_OFF 0x00 /* digital filter off */ +#define IIC0_FILTER_ON 0x04 /* digital filter on */ + +/* Operation mode switching (CL01, CL00) */ +#define IIC0_CLOCKSELECTION 0x03 + +/* Combine of (SMC0, CL01, CL00)*/ +#define IIC0_CLOCK0 0x00 +#define IIC0_CLOCK1 0x01 +#define IIC0_CLOCK2 0x02 +#define IIC0_CLOCK3 0x03 +#define IIC0_CLOCK4 0x08 +#define IIC0_CLOCK5 0x09 +#define IIC0_CLOCK6 0x0a +#define IIC0_CLOCK7 0x0b + +/* + IIC function expansion register 0 (IICX0) +*/ +/* IIC clock expension (CLX0) */ +#define IIC0_CLOCKEXPENSION 0x01 +#define IIC0_EXPENSION0 0x00 +#define IIC0_EXPENSION1 0x01 + +/* Operation clock (CLX0, SMC0, CL01, CL00) + | IIC0_EXPENSION0 | IIC0_EXPENSION1 | +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK0 | fprs/2 | prohibited | selection clock(fw) + | fprs/88 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK1 | fprs/2 | prohibited | selection clock(fw) + | fprs/172 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK2 | fprs/2 | prohibited | selection clock(fw) + | fprs/344 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK3 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/66 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK4 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK5 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK6 | fprs/4 | fprs/4 | selection clock(fw) + | fprs/96 | fprs/48 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK7 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/18 | | transfer clock + | high speed | | mode +------------|-------------------|-------------------|---------------------- +*/ + +#define ADDRESS_COMPLETE 0x80 +#define IIC_MASTER_FLAG_CLEAR 0x00 + +/****************************************************************************** + * Macro define + ******************************************************************************/ + + + +/****************************************************************************** + * Function define + ******************************************************************************/ + +void IIC_ctr_Init( void ); +void IIC_ctr_Stop( void ); + + +#endif diff --git a/snake_branches/2.35/i2c_mcu-sub.c b/snake_branches/2.35/i2c_mcu-sub.c new file mode 100644 index 0000000..b1b468c --- /dev/null +++ b/snake_branches/2.35/i2c_mcu-sub.c @@ -0,0 +1,124 @@ +/* ======================================================== + ȈI2CiytFgpjʐM + de JHL cJZ + '09 Feb - + $Id: $ + ======================================================== */ +#ifndef _WIN32 +#pragma sfr +#pragma di +#pragma ei +#pragma nop +#pragma inline // memcpy()CCWJ(̕I) +#endif + +#include "incs.h" +#include "i2c_mcu.h" +#include "loader.h" +#include "util_funcs.h" + +#include "i2c_mcu_sub.h" +#include "pm.h" /// 肽ȂcCODEC̃WX^Ђ + + +// ======================================================== +// [NAEhp +static void iic_mcu_simple_dummy_write(); +static i2c_err iic_mcu_codec_write_low( u8 adrs, u8 dat ); + +// i2c_mcu.c ɂ +extern void iic_mcu_send_re_st( ); +extern void iic_mcu_send_sp( ); +extern i2c_err iic_mcu_send_a_byte( u8 ); +extern i2c_err iic_mcu_call_slave( u8 slave ); + + +/* + yamaha codecspӂɊ荞݂邱Ƃ邪A^XNo^ + ۂɓǂݏoƂɂ͏߂Ȃ̂ʼnȂ悤ɓ͂ +*/ + +/********************************************//** + R[fbN wPoCgx Cg + + iic_mcu_write_a_byte CODECs[NAEh + ***********************************************/ +#define YAMAHA_CODEC_ERRATA_CHECK_MASK ( 0x7D ) +i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ) +{ + u8 pm_reg_original; + i2c_err rv; + + // }ncodec[NAEh SPIƂ̋pWX^̒g擾 + if(( rv = iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 1, &pm_reg_original )) != I2C_ERR_OK ) + { + return( rv ); + } + // phase1 ܂ + + // ݁I + if( ( rv = iic_mcu_codec_write_low( adrs, dat ) ) != I2C_ERR_OK ) + { + return( rv ); + } + + // }ncodec[NAEh + if( ( pm_reg_original & YAMAHA_CODEC_ERRATA_CHECK_MASK ) == 0 ) // ͂߂狤LWX^0eXgȂ + // (& ZbgvĂǂZbĝ) + { + return( I2C_ERR_OK ); + } + + { + // LWX^ 0x00 ɏĂ(Gb^I)悤Ȃ珑߂ + u8 pm_reg_after; + + if(( rv = iic_mcu_read( IIC_SLA_CODEC, CODEC_REG_PM, 1, &pm_reg_after )) != I2C_ERR_OK ) + { + return( rv ); + } + + if( ( pm_reg_after & YAMAHA_CODEC_ERRATA_CHECK_MASK ) != 0x00 ) + { + // RtNg͂Ȃ or ZbgvȂ + return( I2C_ERR_OK ); + } + + // else { + rv = iic_mcu_codec_write_low( CODEC_REG_PM, pm_reg_original ); // ߂Aă`FbN͂Ȃ + return ( rv ); // G[Ԃ邱Ƃ邩 + // gCȂǂ͖ + } + return( rv ); // no reach // +} + + +static i2c_err iic_mcu_codec_write_low( u8 adrs, u8 dat ) +{ + IICMK10 = 1; // DMApISRɔ΂Ȃ߂Ƀ}XN + if( iic_mcu_call_slave( IIC_SLA_CODEC ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + iic_mcu_send_a_byte( adrs ); + iic_mcu_send_a_byte( dat ); + + // TI[NAEh + codec_dummy_write(); + + iic_mcu_send_sp( ); + iic_mcu_busy = false; + return( I2C_ERR_OK ); +} + + +// re-stŃ_~[Cg +void codec_dummy_write() +{ + iic_mcu_send_re_st( ); + iic_mcu_send_a_byte( IIC_SLA_CODEC ); // _~[Cg + iic_mcu_send_a_byte( 0x20 ); // S~ĂȂAhX + iic_mcu_send_a_byte( 0xAA ); // ł悢 +} + diff --git a/snake_branches/2.35/i2c_mcu.c b/snake_branches/2.35/i2c_mcu.c new file mode 100644 index 0000000..fabaece --- /dev/null +++ b/snake_branches/2.35/i2c_mcu.c @@ -0,0 +1,661 @@ +/* ======================================================== + Ȉ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 + + X[uEFCgRfBVoƂ͋֎~łB + + ̏ꍇłG[oȂǂł܂ + + DMA1gp܂B + ***********************************************/ +i2c_err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src ) +{ + if( iic_mcu_wait_free() != I2C_ERR_OK ) + { + return( I2C_ERR_TIMEOUT ); + } +#if 0 // renge^̃}`^XNɂȂłɂ + // gpȂA +#endif + + // X^[gRfBVƃX[ǔĂяo... + IICMK10 = 1; + IICIF10 = 0; + if( iic_mcu_call_slave( slave ) != I2C_ERR_OK ) + { + iic_mcu_busy = false; + return ( I2C_ERR_NOSLAVE ); + } + + IICIF10 = 0; + if( !iic_mcu_wo_dma ) + { + // DMAgpiʏj// + + // WX^AhX𑗂Af[^̏ + memcpy( iic_send_work, src, 4 ); //obt@Ƃ4oCgpӂĖ߁B + + // gĈ + last_slave = slave; + last_reg_adrs = adrs; + last_size = len; + + // DMAZbg + while( DST1 ) + {;} + + DEN1 = 1; + DSA1 = (u8)( &SIO10 ); + DRA1 = (u16)( &iic_send_work[0] ); + DBC1 = len; + DMC1 = DRS | 8; // RAM -> SFR, 8bit, IRQ, IIC10 + + DMAIF1 = 0; + DMAMK1 = 0; + DST1 = 1; // DEN1 = 12clkȏJ + + SIO10 = adrs; // ςȂI 荞݂DMAX^[g + // c͊荞݃[` + } + else + { + // DMAgpȂ // + + // WX^AhX̑M + IICMK10 = 0; + SIO10 = adrs; + + iic_send_wo_dma_len = len; + p_iic_send_wo_dma_dat = (u8*)src; + // c͊荞݃[` + } + + return ( I2C_ERR_OK ); +} + + + + +/********************************************//** + DMAP]I荞 + + IIC_mcu ̑MR[obN֐̂悤Ȃ + + FDMA]IŁAI2C̓]͏IĂ܂ + +@ 荞ݒȂǂŁADMA1̏xꍇA + IIC10̊荞݂̏łɁA荞݂𔭐ȂȂ + ꂪ܂B܂A@ɂ܂B + + @̂߁ADMAdl̍ق́AŌ̃oCg͑M + tÕ|[OŊmF܂B + ***********************************************/ +__interrupt void int_dma1( ) +{ + static bit in_retry; + + EI(); + + // Ō̃oCg̑M҂ + while( ( SSR02L & TSF0 ) != 0 ) + { + u16 i = 0; + if( ++i == 0 ) // ^CAEgH + { + break; + } + } + + // XgbvRfBVs +// iic_mcu_send_sp(); // ISRŊO̊֐ĂԂ͓̂siėpWX^ҔĵœWJ + { + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // SCL + nop8(); //. |ȂBO̊֐Ă +/* + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); +*/ + SO0 = 0x0400 | TAUS_MASK; // SCL + nop8(); +/* + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); +*/ + SO0 = 0x0404 | TAUS_MASK; + } + + IICMK10 = 1; + + // f[^̓r NAK AxgCB + /// 蔲 + if( SIR02 != 0 ) + { + SIR02 = SSR02; + + if( !in_retry ) + { + in_retry = true; + + IICIF10 = 0; + iic_mcu_call_slave( last_slave ); // NAK͍mPA + + while( DST1 ){;} + DRA1 = (u16)( &iic_send_work[0] ); // CNgĂ܂Ă̂ōăZbg + DBC1 = last_size; // fNgĂ܂Ă̂ōăZbg + // ق̐ݒ͑Ô܂ + + DMAIF1 = 0; + DMAMK1 = 0; + DST1 = 1; + + SIO10 = last_reg_adrs; // ςȂI 荞݂DMAX^[g + return; + // ܂ + } + else + { + // G[xځBmȂ + dbg_nop(); + // ̂܂܏I + } + } + + // I + in_retry = false; + DMAMK1 = 1; + DEN1 = 0; + iic_mcu_busy = false; +} + + + +/********************************************//** + IIC MCŨoCgo荞 + + DMAgp͎gp܂B + + @̊荞ݏDMÅ荞݂ɂ΂ȂꍇA + @IIC荞݂̃ZbgԂɍ킸邱Ƃ܂B + ***********************************************/ +__interrupt void int_iic10( ) +{ + EI(); + if( iic_send_wo_dma_len != 0 ) // ܂MĂȂH + { + SIO10 = *p_iic_send_wo_dma_dat; + p_iic_send_wo_dma_dat ++; + iic_send_wo_dma_len --; + return; + // ܂ // + } + + // Ō̃oCgMAXgbvRfBVs + IICMK10 = 1; +// iic_mcu_send_sp(); // ISRŊO̊֐ĂԂ͓̂siėpWX^ҔĵœWJ + { + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // clear SCL + NOP(); NOP(); NOP(); NOP(); // NOP8Ăł͂ + NOP(); NOP(); NOP(); NOP(); + SO0 = 0x0400 | TAUS_MASK; // set SCL + NOP(); NOP(); NOP(); NOP(); + NOP(); NOP(); NOP(); NOP(); + SO0 = 0x0404 | TAUS_MASK; // set CSL adn SDA + } + + iic_mcu_wo_dma = false; + iic_mcu_busy = false; +} + + + +/********************************************//** + X[ǔĂяo + +@X[uAhXĂŁAACK̊mFB + + ACK@@@@@@@@@@@@@@@@@@ԁFI2C_ERR_OK + +@NACK @XgbvRfBVoB@ԁFI2C_ERR_NOSLAVE + ***********************************************/ +i2c_err iic_mcu_call_slave( u8 slave ) +{ + iic_mcu_send_st( ); + +/* +// dbg + if( SSR02 != 0 ) + { + P1.5 = P1.0 = P1.3 = 1; + } +*/ + + SIR02 = SSR02; // NAKG[̃tONA + if( iic_mcu_send_a_byte( slave ) != I2C_ERR_OK ) + { + iic_mcu_send_sp( ); + return ( I2C_ERR_NOSLAVE ); // w̃X[uȂ + } + + return ( I2C_ERR_OK ); +} + + + +/********************************************//** + قƂɂPoCĝ + + I܂ŋA܂ + ***********************************************/ +i2c_err iic_mcu_send_a_byte( u8 dat ) +{ + IICMK10 = 1; + IICIF10 = 0; + SIO10 = dat; + while( IICIF10 == 0 ) + { +// NOP( ); + } // ʐM + + if( SSR02 != 0 ) // 炩G[? + { + SIR02 = SSR02; // G[NA + return( I2C_ERR_NAK ); + } + return( I2C_ERR_OK ); +} + + + +/********************************************//** + X^[gRfBV𔭍s + + \tgEFA + ***********************************************/ +static void iic_mcu_send_st( ) +{ + SO0 &= ~0x0004; // SDA + nop8(); + + SO0 &= ~0x0400; // SCL + SOE0 = 0x0004; // n[h + + SCR02 = TXE0 | 1 << SLC02 | 7 << DLS02; // MAf[^͂WrbgP + SS0 = 0x0004; // ʐMҋ@ +} + + + +/********************************************//** + X^[gs + ***********************************************/ +void iic_mcu_send_re_st( ) +{ + ST0 |= 0x0004; + SO0 |= 0x0400 | TAUS_MASK; // ( SDA = H ), SCL -> H + nop8(); + + SOE0 &= ~0x0004; // ( SCL = H ), SDA -> L + nop8(); + + iic_mcu_send_st( ); +} + + + +/********************************************//** + XgbvRfBVs + + ̑OɁAuŌ̃oCg̑Mv̎ɑOKvłB + ***********************************************/ +void iic_mcu_send_sp( ) +{ + ST0 = 0x0004; + SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo) + SO0 = 0x0000 | TAUS_MASK; // SCL + nop8(); + + SO0 = 0x0400 | TAUS_MASK; // SCL + nop8(); + + SO0 = 0x0404 | TAUS_MASK; +} + + + + +/********************************************//** + ytFW[̏ + ***********************************************/ +void iic_mcu_start( ) +{ + if( iic_mcu_initialized ) + { + return; + } + + iic_mcu_busy = true; +// DST1 = 0; + + I2C_PU_on(); +// DEN1 = 0; // DST1 = 0 2clḱADSTn==0|[OĂ + + wait_ms( 1 ); // オ̂50usʂ + + SAU0EN = 1; + nop8(); + + SPS0 = 0x0000; // VAjbg̃NbNOB(8M/2)/1 + SMR02 = bSMR0n_FIXEDBIT | bMD0n2; // ȈI2Cɐݒ + SDR02 = 10 << 9; // {[[gݒ 8M/1/(x+1)/2 + + SO0 = 0x0404 | TAUS_MASK; // ŏHH + iic_mcu_wo_dma = false; + + + // oX̃Zbg + { + IICIF10 = 0; + IICMK10 = 1; + + iic_mcu_send_st(); + + SIO10 = 0xFF; + while( IICIF10 == 0 ){;} // ʐM + iic_mcu_send_sp(); + + SIR02 = SSR02; + } + + iic_mcu_busy = false; + iic_mcu_initialized = true; +} + + + +/********************************************//** + W[̒~ + + ēxgƂ͏Kv + ***********************************************/ +void iic_mcu_stop( ) +{ + while( iic_mcu_busy ) + {;} // DMA쒆͂҂ + iic_mcu_send_re_st( ); // SCL,SDALLɂ + I2C_PU_off(); + SAU0EN = 0; + iic_mcu_initialized = false; +} + diff --git a/snake_branches/2.35/i2c_mcu.h b/snake_branches/2.35/i2c_mcu.h new file mode 100644 index 0000000..16eeba8 --- /dev/null +++ b/snake_branches/2.35/i2c_mcu.h @@ -0,0 +1,40 @@ +#ifndef __ic2_mcu__ +#define __ic2_mcu__ + + +// ======================================================== +typedef enum{ + I2C_ERR_OK = 0, + I2C_ERR_NAK, + I2C_ERR_NOSLAVE, + I2C_ERR_TIMEOUT, + I2C_ERR_UNDEF = 0xFF +}i2c_err; + + + +// ======================================================== +extern volatile bit iic_mcu_busy; +extern bit iic_mcu_wo_dma; + +extern i2c_err iic_mcu_result; + + +// ======================================================== +i2c_err iic_mcu_read( u8 SLA, u8 adrs, u8 len, u8 * dest ); +u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs ); + +i2c_err iic_mcu_write( u8 SLA, u8 adrs, u8 len, void * src ); +i2c_err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat ); + +i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ); // codecoO@\t + + +// ̒ʐM܂B +#define iic_mcu_set_wo_dma() { while( iic_mcu_busy ){;} iic_mcu_wo_dma = true; } + +void iic_mcu_start( ); +void iic_mcu_stop( ); + + +#endif diff --git a/snake_branches/2.35/i2c_mcu_sub.h b/snake_branches/2.35/i2c_mcu_sub.h new file mode 100644 index 0000000..a2c192e --- /dev/null +++ b/snake_branches/2.35/i2c_mcu_sub.h @@ -0,0 +1,9 @@ +#ifndef __ic2_mcu_sub__ +#define __ic2_mcu_sub__ + +// $Id: asdf$ + +i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ); +void codec_dummy_write( void ); + +#endif diff --git a/snake_branches/2.35/i2c_twl.c b/snake_branches/2.35/i2c_twl.c new file mode 100644 index 0000000..3c91ce8 --- /dev/null +++ b/snake_branches/2.35/i2c_twl.c @@ -0,0 +1,246 @@ +/* ======================================================== + TWL ݊I2C + + $Id: i2c_twl.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr /* @\WX^gp */ + +#endif + + +/*============================================================================*/ +#ifndef _WIN32 +# pragma interrupt INTIICA0 int_iic_twl RB2 +#endif + +#include "incs_loader.h" +#include "i2c_twl_defs.h" +#include "i2c_twl.h" +#include "vreg_twl.h" +#include "WDT.h" + + +#ifdef _MCU_BSR_ +//#ifdef _MODEL_TS0_ || _MODEL_WM0_ + +// [LOfI2Ct +#define ACKD ACKD0 +#define ACKE ACKE0 +#define COI COI0 +#define IICAEN IICA0EN +#define IICRSV IICRSV0 +#define IICA IICA0 +#define IICAIF IICAIF0 +#define IICAMK IICAMK0 +#define IICAPR0 IICAPR00 +#define IICAPR1 IICAPR10 +#define IICCTL0 IICCTL00 +#define IICE IICE0 +#define IICF IICF0 +#define IICS IICS0 +#define IICWH IICWH0 +#define IICWL IICWL0 +#define LREL LREL0 +#define SPD SPD0 +#define SPIE SPIE0 +#define STCEN STCEN0 +#define STD STD0 +#define SVA SVA0 +#define WREL WREL0 +#define WTIM WTIM0 +#define SMC SMC0 +#define TRC TRC0 +#define DFC DFC0 +#define PortMode PM6 +#define Port P6 + +#endif // _MCU_BSR_ + +#ifndef _MCU_BSR_ + +// ke3̎̓_~[֐ +void IIC_twl_Stop( void ) +{ +} +void IIC_twl_Init( void ) +{ +} +#else // _MCU_BSR_ + + + +enum IIC_TWL_STATE{ + WAIT_ADRS = 0, + WAIT_DATA, + DATA_READED +}; + + + + +/*============================================================================*/ + +// I@̓}NȂ̂ŁAreturn̓C[vɖ߂܂B +#define wait_next { \ + tot = 0; \ + while( IICAIF != 1 ){ \ + tot ++; \ + if( tot == 0 ){ \ + LREL = 1; \ + return; \ + } \ + } \ +} + + +/********************************************//** + isr + + TWL̓EFCg𗝉ĂꂸA܂Ao[XgR/W + ȂłĂ̂ŁAXgbvRfBV܂ňCɂĂ܂B + ***********************************************/ +__interrupt void int_iic_twl( ) +{ + u8 vreg_adrs; + u8 state; + + // @ + WREL = 1; // EFCgĎ̃oCg҂ + WDT_Restart(); + state = WAIT_ADRS; + + while( 1 ) + { + u8 my_iics; + + { + u16 tot; + wait_next; // PoCgM҂ + } + + my_iics = IICS; + IICAIF = 0; + + if( my_iics & 0x02 ) // ( STD && !SPD ) + { + // X^[gRfBV + if( ( my_iics & 0x08 ) == 0 ) // ( TRC ) MtO 0:}CRM + { + // @f}CRłATWLgCƂƂ + // ɗ̂̓X[uĂяo̎ // + WREL = 1; + state = WAIT_ADRS; + /// WX^AhX̂҂ + } + else + { + // BR Rł̃X[uĂяo(X^[gRfBV) // + IICA = vreg_twl_read( vreg_adrs ); // f[^M + // Xgbv҂ALREL = 1 ɂȂƁAMobt@j󂳂邱Ƃ + state = DATA_READED; + } + } + else if( ( my_iics & 0x03 ) == 0 ) // ( !STD && !SPD ) + { + u8 rcvd; + + // 炩M + rcvd = IICA; + WREL = 1; + + if( state == WAIT_ADRS ) + { + // A + vreg_adrs = adrs_table_twl_ext2int( rcvd ); + /// f[^邩AX^[gœǂݏô҂ + state = WAIT_DATA; + } + else if( state == DATA_READED ) + { + // f[^1oCgM㔭 + LREL = 1; + return; + } + else + { + // BW + // f[^܂ + SVA = 0x5A; // _~[ + LREL = 1; // X^[gRfBV҂(AݖΉ̂) + vreg_twl_write( vreg_adrs, rcvd ); + SVA = IIC_T_SLAVEADDRESS; + return; // M܂ // + } + } + else if( my_iics & 0x01 ) // SPD + { + // I + LREL = 1; + return; + } + else + { + // NOP(); + } + } +} + + + +/********************************************//** + W[ + ***********************************************/ +void IIC_twl_Init( void ) +{ + + IICAEN = 1; + + IICE = 0; /* IICA disable */ + + IICAMK = 1; /* INTIICA disable */ + IICAIF = 0; /* clear INTIICA interrupt flag */ + + IICAPR0 = 0; /* set INTIICA high priority */ + IICAPR1 = 0; /* set INTIICA high priority */ + Port &= ~0x03; + + SVA = IIC_T_SLAVEADDRESS; + IICF = 0x01; + + STCEN = 1; // X^[g̋ + IICRSV = 1; // ʐM\Ȃ:X[uɓO + + SPIE = 0; // XgbvRfBVł̊荞݂֎~ + WTIM = 1; // ACKԂclkLɌŒ肷 + ACKE = 1; // _CPU͖Ď̒ʐM͂߂邩ȂőclkJȂƂȂ + + IICWH = 9; + IICWL = 11; // LԂ̒iHj + + SMC = 1; + DFC = 1; // fW^tB^on (@fast mode) + + IICAMK = 0; // 荞݂ + + IICE = 1; + + PortMode &= ~0x03; + + LREL = 1; +} + + + +/********************************************//** + W[~ + ***********************************************/ +void IIC_twl_Stop( void ) +{ + IICE = 0; /* IICA disable */ + IICAEN = 0; +} + + +#endif diff --git a/snake_branches/2.35/i2c_twl.h b/snake_branches/2.35/i2c_twl.h new file mode 100644 index 0000000..0f608b0 --- /dev/null +++ b/snake_branches/2.35/i2c_twl.h @@ -0,0 +1,7 @@ +#ifndef _iic_twl_ +#define _iic_twl_ + +void IIC_twl_Init( void ); +void IIC_twl_Stop( void ); + +#endif diff --git a/snake_branches/2.35/i2c_twl_defs.h b/snake_branches/2.35/i2c_twl_defs.h new file mode 100644 index 0000000..be5d566 --- /dev/null +++ b/snake_branches/2.35/i2c_twl_defs.h @@ -0,0 +1,196 @@ +#ifndef _MDSERIAL_ +#define _MDSERIAL_ + + +/* IIC operation enable (IICE0) */ +#define IIC0_OPERATION 0x80 +#define IIC0_OPERATION_DISABLE 0x00 /* stop operation */ +#define IIC0_OPERATION_ENABLE 0x80 /* enable operation */ + +/* Exit from communications (LREL0) */ +#define IIC0_COMMUNICATION 0x40 +#define IIC0_COMMUNICATION_NORMAL 0x00 /* normal operation */ +#define IIC0_COMMUNICATION_EXIT 0x40 /* exit from current communication */ + +/* Wait cancellation (WREL0) */ +#define IIC0_WAITCANCEL 0x20 +#define IIC0_WAIT_NOTCANCEL 0x00 /* do not cancel wait */ +#define IIC0_WAIT_CANCEL 0x20 /* cancel wait */ + +/* Generation of interrupt when stop condition (SPIE0) */ +#define IIC0_STOPINT 0x10 +#define IIC0_STOPINT_DISABLE 0x00 /* disable */ +#define IIC0_STOPINT_ENABLE 0x10 /* enable */ + +/* Wait and interrupt generation (WTIM0) */ +#define IIC0_WAITINT 0x08 +#define IIC0_WAITINT_CLK8FALLING 0x00 /* generate at the eighth clocks falling edge */ +#define IIC0_WAITINT_CLK9FALLING 0x08 /* generated at the ninth clocks falling edge */ + +/* Acknowledgement control (ACKE0) */ +#define IIC0_ACK 0x04 +#define IIC0_ACK_DISABLE 0x00 /* enable acknowledgement */ +#define IIC0_ACK_ENABLE 0x04 /* disable acknowledgement */ + +/* Start condition trigger (STT0) */ +#define IIC0_STARTCONDITION 0x02 +#define IIC0_START_NOTGENERATE 0x00 /* do not generate start condition */ +#define IIC0_START_GENERATE 0x02 /* generate start condition */ + +/* Stop condition trigger (SPT0) */ +#define IIC0_STOPCONDITION 0x01 +#define IIC0_STOP_NOTGENERATE 0x00 /* do not generate stop condition */ +#define IIC0_STOP_GENERATE 0x01 /* generate stop condition */ + +/* + IIC Status Register 0 (IICS0) +*/ +/* Master device status (MSTS0) */ +#define IIC0_MASTERSTATUS 0x80 +#define IIC0_STATUS_NOTMASTER 0x00 /* slave device status or communication standby status */ +#define IIC0_STATUS_MASTER 0x80 /* master device communication status */ + +/* Detection of arbitration loss (ALD0) */ +#define IIC0_ARBITRATION 0x40 +#define IIC0_ARBITRATION_NO 0x00 /* arbitration win or no arbitration */ +#define IIC0_ARBITRATION_LOSS 0x40 /* arbitration loss */ + +/* Detection of extension code reception (EXC0) */ +#define IIC0_EXTENSIONCODE 0x20 +#define IIC0_EXTCODE_NOT 0x00 /* extension code not received */ +#define IIC0_EXTCODE_RECEIVED 0x20 /* extension code received */ + +/* Detection of matching addresses (COI0) */ +#define IIC0_ADDRESSMATCH 0x10 +#define IIC0_ADDRESS_NOTMATCH 0x00 /* addresses do not match */ +#define IIC0_ADDRESS_MATCH 0x10 /* addresses match */ + +/* Detection of transmit/receive status (TRC0) */ +#define IIC0_STATUS 0x08 +#define IIC0_STATUS_RECEIVE 0x00 /* receive status */ +#define IIC0_STATUS_TRANSMIT 0x08 /* transmit status */ + +/* Detection of acknowledge signal (ACKD0) */ +#define IIC0_ACKDETECTION 0x04 +#define IIC0_ACK_NOTDETECTED 0x00 /* ACK signal was not detected */ +#define IIC0_ACK_DETECTED 0x04 /* ACK signal was detected */ + +/* Detection of start condition (STD0) */ +#define IIC0_STARTDETECTION 0x02 +#define IIC0_START_NOTDETECTED 0x00 /* start condition not detected */ +#define IIC0_START_DETECTED 0x02 /* start condition detected */ + +/* Detection of stop condition (SPD0) */ +#define IIC0_STOPDETECTION 0x01 +#define IIC0_STOP_NOTDETECTED 0x00 /* stop condition not detected */ +#define IIC0_STOP_DETECTED 0x01 /* stop condition detected */ + +/* + IIC Flag Register 0 (IICF0) +*/ +/* STT0 clear flag (STCF) */ +#define IIC0_STARTFLAG 0x80 +#define IIC0_STARTFLAG_GENERATE 0x00 /* generate start condition */ +#define IIC0_STARTFLAG_UNSUCCESSFUL 0x80 /* start condition generation unsuccessful */ + +/* IIC bus status flag (IICBSY) */ +#define IIC0_BUSSTATUS 0x40 +#define IIC0_BUS_RELEASE 0x00 /* bus release status */ +#define IIC0_BUS_COMMUNICATION 0x40 /* bus communication status */ + +/* Initial start enable trigger (STCEN) */ +#define IIC0_STARTWITHSTOP 0x02 +#define IIC0_START_WITHSTOP 0x00 /* generation of a start condition without detecting a stop condition */ +#define IIC0_START_WITHOUTSTOP 0x02 /* generation of a start condition upon detection of a stop condition */ + +/* Communication reservation function disable bit (IICRSV) */ +#define IIC0_RESERVATION 0x01 +#define IIC0_RESERVATION_ENABLE 0x00 /* enable communication reservation */ +#define IIC0_RESERVATION_DISABLE 0x01 /* disable communication reservation */ + +/* + IIC clock selection register 0 (IICCL0) +*/ +#define IICCL0_INITIALVALUE 0x00 +/* Detection of SCL0 pin level (CLD0) */ +#define IIC0_SCLLEVEL 0x20 +#define IIC0_SCL_LOW 0x00 /* clock line at low level */ +#define IIC0_SCL_HIGH 0x20 /* clock line at high level */ + +/* Detection of SDA0 pin level (DAD0) */ +#define IIC0_SDALEVEL 0x10 +#define IIC0_SDA_LOW 0x00 /* data line at low level */ +#define IIC0_SDA_HIGH 0x10 /* data line at high level */ + +/* Operation mode switching (SMC0) */ +#define IIC0_OPERATIONMODE 0x08 +#define IIC0_MODE_STANDARD 0x00 /* operates in standard mode */ +#define IIC0_MODE_HIGHSPEED 0x08 /* operates in high-speed mode */ + +/* Digital filter operation control (DFC0) */ +#define IIC0_DIGITALFILTER 0x04 +#define IIC0_FILTER_OFF 0x00 /* digital filter off */ +#define IIC0_FILTER_ON 0x04 /* digital filter on */ + +/* Operation mode switching (CL01, CL00) */ +#define IIC0_CLOCKSELECTION 0x03 + +/* Combine of (SMC0, CL01, CL00)*/ +#define IIC0_CLOCK0 0x00 +#define IIC0_CLOCK1 0x01 +#define IIC0_CLOCK2 0x02 +#define IIC0_CLOCK3 0x03 +#define IIC0_CLOCK4 0x08 +#define IIC0_CLOCK5 0x09 +#define IIC0_CLOCK6 0x0a +#define IIC0_CLOCK7 0x0b + +/* + IIC function expansion register 0 (IICX0) +*/ +/* IIC clock expension (CLX0) */ +#define IIC0_CLOCKEXPENSION 0x01 +#define IIC0_EXPENSION0 0x00 +#define IIC0_EXPENSION1 0x01 + +/* Operation clock (CLX0, SMC0, CL01, CL00) + | IIC0_EXPENSION0 | IIC0_EXPENSION1 | +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK0 | fprs/2 | prohibited | selection clock(fw) + | fprs/88 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK1 | fprs/2 | prohibited | selection clock(fw) + | fprs/172 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK2 | fprs/2 | prohibited | selection clock(fw) + | fprs/344 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK3 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/66 | | transfer clock + | normal | | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK4 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK5 | fprs/2 | fprs/2 | selection clock(fw) + | fprs/48 | fprs/24 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK6 | fprs/4 | fprs/4 | selection clock(fw) + | fprs/96 | fprs/48 | transfer clock + | high speed | high speed | mode +------------|-------------------|-------------------|---------------------- +IIC0_CLOCK7 |prohibited/fexscl0 | prohibited | selection clock(fw) + | fw/18 | | transfer clock + | high speed | | mode +------------|-------------------|-------------------|---------------------- +*/ + +#define ADDRESS_COMPLETE 0x80 +#define IIC_MASTER_FLAG_CLEAR 0x00 + +#endif diff --git a/snake_branches/2.35/incs.h b/snake_branches/2.35/incs.h new file mode 100644 index 0000000..f9c1c4a --- /dev/null +++ b/snake_branches/2.35/incs.h @@ -0,0 +1,44 @@ +#ifndef _WIN32 +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#endif + +#ifndef _WIN32 +#pragma section @@CODE ROM_CODE +//#pragma section @@CNST ROM_CNST +#endif + +#ifdef _WIN32 +// VC̐Ԑǂɂ +#include "sim/simOnWin.h" +# endif + + + +//========================================================= +#ifndef _incs_h_ +#define _incs_h_ + +// v_pc_ƂŐ؂ւĂ܂ +#define _mcu_ + +#include "jhl_defs.h" +#include "config.h" +#include "user_define.h" + +#include "hal.h" + +#include "bsr_system.h" +#include "renge\renge.h" + +#include "vreg_ctr.h" + +#include "util_funcs.h" + +//========================================================= + +#endif diff --git a/snake_branches/2.35/incs_loader.h b/snake_branches/2.35/incs_loader.h new file mode 100644 index 0000000..0569b9f --- /dev/null +++ b/snake_branches/2.35/incs_loader.h @@ -0,0 +1,49 @@ +/* ======================================================== + @sԂvolatileȂ̂Ń^C~OˑŊ҂ȂɂȂ̂@ + + Hardware abstruct layer + + $Id: asdf$ + ======================================================== */ +#ifndef _WIN32 +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt + + +#pragma section @@CODE LDR_CODE +#pragma section @@CODEL LDR_CODL + +//#pragma section @@R_INIT FSL_RINT // ƃX^[gAbv[`l +//#pragma section @@CNST FSL_CNST // ZbgĂȂ +#pragma section @@CNSTL LDR_CNSL + +#endif + +# ifdef _WIN32 +// VC̐Ԑǂɂ +#include "sim/simOnWin.h" +# endif + + +//========================================================= +#include "jhl_defs.h" +#include "config.h" + +#include "user_define.h" + +#include "hal.h" + +#include "bsr_system.h" +#include "renge\renge.h" + +#include "vreg_ctr.h" +#include "vreg_twl.h" + + +//========================================================= +void firm_update( ); +void firm_restore( ); diff --git a/snake_branches/2.35/ini_VECT.c b/snake_branches/2.35/ini_VECT.c new file mode 100644 index 0000000..84da25c --- /dev/null +++ b/snake_branches/2.35/ini_VECT.c @@ -0,0 +1,347 @@ +/* ======================================================== + 荞݃xN^e[u + $Id$ + ======================================================== */ + +#ifndef _WIN32 + +#pragma nop + +#endif + +#include "config.h" + +#ifndef _WIN32 + +#ifdef _WDT_CHECK_ +#pragma interrupt INTWDTI fn_intwdti // wdt debug +#endif + +//#pragma interrupt INTLVI fn_intlvi // gp + +//#pragma interrupt INTP0 intp0_slp // SLP (CPUAv) |[O +//#pragma interrupt INTP1 fn_intp1 // (I2C) +//#pragma interrupt INTP2 fn_intp2 // (I2C) +//#pragma interrupt INTP3 fn_intp3 // +#pragma interrupt INTP4 intp4_extdc // EXTDC, doffN̂݁Bʏ̓|[O +#pragma interrupt INTP5 intp5_shell // SHELL_CLOSE, doffN̂݁Bʏ̓|[O +#pragma interrupt INTP6 intp6_PM_irq // CODECoRŋPMICւ̃R}h + +//#ifdef _MCU_BSR_ // 荞݂͎̂̂g܂ +//#pragma interrupt INTP21 intp21_RFTx // dgMpX +//#else +//#pragma interrupt INTP7 intp21_RFTx +//#endif + + +/* + + accero +#ifdef _MCU_BSR_ +#pragma interrupt INTP23 intp23_ACC_ready RB3 // xZTAf[^ +#endif +*/ + +//#pragma interrupt INTCMP0 fn_intcmp0 +//#pragma interrupt INTCMP1 fn_intcmp1 +//#pragma interrupt INTDMA0 fn_intdma0 +#pragma interrupt INTDMA1 int_dma1 + +//#pragma interrupt INTST0 fn_intst0 +/* #pragma interrupt INTCSI00 fn_intcsi00 */ +//#pragma interrupt INTSR0 fn_intsr0 +/* #pragma interrupt INTCSI01 fn_intcsi01 */ +//#pragma interrupt INTSRE0 fn_intsre0 + +//#pragma interrupt INTST1 fn_intst1 +/* #pragma interrupt INTCSI10 fn_intcsi10 */ +#pragma interrupt INTIIC10 int_iic10 +//#pragma interrupt INTSR1 fn_intsr1 +//#pragma interrupt INTSRE1 fn_intsre1 + + +/* +// TS̓}U{ŃeRAWM͉H}eRŌLjvc +#pragma interrupt INTIICA1 int_iic_ctr RB1 + +#pragma interrupt INTIICA0 int_iic_twl RB2 +*/ + +//#pragma interrupt INTTM00 fn_inttm00 +//#pragma interrupt INTTM01 fn_inttm01 +//#pragma interrupt INTTM02 fn_inttm02 +//#pragma interrupt INTTM03 fn_inttm03 + +#pragma interrupt INTAD int_adc +#pragma interrupt INTRTC int_rtc +#pragma interrupt INTRTCI int_rtc_int +#pragma interrupt INTKR int_kr +//#pragma interrupt INTMD fn_intmd + +//#pragma interrupt INTTM04 fn_inttm04 +//#pragma interrupt INTTM05 fn_inttm05 +//#pragma interrupt INTTM06 fn_inttm06 +//#pragma interrupt INTTM07 fn_inttm07 + + +//#define _irq_debug_ +/****************************************************/ +/* gp̃_~[֐` */ +/****************************************************/ +#ifdef _WDT_CHECK_ +__interrupt void fn_intwdti( ) +{ + while( 1 ) + { + NOP(); + } +} +#endif + +#ifdef _irq_debug_ +__interrupt void fn_intlvi( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intp0(){ +while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intp1( ) +{ + while( 1 ) + { + NOP(); + } +} // +__interrupt void fn_intp2( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intp3( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void intp21_RFTx( ) +{ + while( 1 ) + { + NOP(); + } +} + + +//__interrupt void fn_intp4(){ while(1){} } // pm.c +//__interrupt void fn_intp5(){ while(1){} } // pm.c +//__interrupt void fn_intp6(){ while(1){} } // pm.c +//__interrupt void fn_intp7(){ while(1){} } // led.c +//__interrupt void fn_intp21(){ while(1){} } // led.c + +__interrupt void fn_intcmp0( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intcmp1( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intdma0( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void fn_intdma1(){} // i2c_mcu.cɂ + +__interrupt void fn_intst0( ) +{ + while( 1 ) + { + NOP(); + } +} + +/* __interrupt void fn_intcsi00(){} */ +__interrupt void fn_intsr0( ) +{ + while( 1 ) + { + NOP(); + } +} + +/* __interrupt void fn_intcsi01(){} */ +__interrupt void fn_intsre0( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intst1( ) +{ + while( 1 ) + { + NOP(); + } +} + +/* __interrupt void fn_intcsi10(){} */ +//__interrupt void fn_intiic10(){ while(1){} } +__interrupt void fn_intsr1( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_intsre1( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void fn_intiica(){} // i2c.cɂ +/* __interrupt void fn_inttm00(){} *//* sub.cɂĒ` */ +__interrupt void fn_inttm01( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm02( ) +{ + while( 1 ) + { + NOP(); + } +} +__interrupt void fn_inttm03( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void fn_intad(){ while(1){} } // adc.c +__interrupt void fn_intrtc( ) +{ + while( 1 ) + { + NOP(); + } +} + +//__interrupt void int_rtcint(){} // rtc.cɂ +//__interrupt void fn_intkr(){} // main.c +__interrupt void fn_intmd( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm04( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm05( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm06( ) +{ + while( 1 ) + { + NOP(); + } +} + +__interrupt void fn_inttm07( ) +{ + while( 1 ) + { + NOP(); + } +} + +#endif + + + +/* ======================================================== + L[^[荞 + ======================================================== */ +__interrupt void int_kr( ) +{ + // N邾 +} + + + +/* ======================================================== + ext dc + ======================================================== */ +__interrupt void intp4( ) +{ + // N邾 +} + + + +/* ======================================================== + shell close + ======================================================== */ +__interrupt void intp5( ) +{ + // N邾 +} + + +#else + +#include "sim/sim_interrupt_decrare.c" + +#endif + diff --git a/snake_branches/2.35/jhl_defs.h b/snake_branches/2.35/jhl_defs.h new file mode 100644 index 0000000..2750983 --- /dev/null +++ b/snake_branches/2.35/jhl_defs.h @@ -0,0 +1,25 @@ +#ifndef __jhl_defs_h__ +#define __jhl_defs_h__ + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef signed short s16; + +typedef unsigned short ux16; +typedef signed short sx16; + +#define true 1 +#define false 0 + + +#define set_bit_if( cond, reg, pos ) \ +{ \ + if( cond ){ \ + reg |= pos; \ + }else{ \ + reg &= ~pos; \ + } \ +} + +#endif diff --git a/snake_branches/2.35/kanaria.asm b/snake_branches/2.35/kanaria.asm new file mode 100644 index 0000000..9deaddb --- /dev/null +++ b/snake_branches/2.35/kanaria.asm @@ -0,0 +1,12 @@ +PUBLIC _END_1,_END_2,_END_3,_END_4 + +@@DATA DSEG BASEP +_END_1: +@@INIT DSEG BASEP +_END_2: +@@INITL DSEG UNIT64KP +_END_3: +@@DATAL DSEG UNIT64KP +_END_4: +; +END diff --git a/snake_branches/2.35/kanaria_c.c b/snake_branches/2.35/kanaria_c.c new file mode 100644 index 0000000..bbb5ec7 --- /dev/null +++ b/snake_branches/2.35/kanaria_c.c @@ -0,0 +1,18 @@ +/********************************************//** + X^bN̍Ō̒lǂ + + X^bNj󌟍̂ + + $Id$ + ***********************************************/ +#include "incs.h" + +extern unsigned char END_4; + +void f() +{ + unsigned char *tp; + + tp = &END_4; +} + diff --git a/snake_branches/2.35/led.c b/snake_branches/2.35/led.c new file mode 100644 index 0000000..bf62e07 --- /dev/null +++ b/snake_branches/2.35/led.c @@ -0,0 +1,399 @@ +/* ======================================================== + LED.c + + $Id: LED.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr + +#endif + +#include "incs.h" +#include "led.h" + + +// ======================================================== +static void LED_oshirase_init(); + + + +// ======================================================== +// TPS0 +#define BIT_PRS012 ( 1 << 2 ) +#define BIT_PRS002 ( 1 << 6 ) + +// TMR0 +#define BIT_CKS0 15 +#define BIT_CCS0 12 +#define BIT_MASTER0 11 +#define BIT_STS0 8 +#define BIT_CIS0 6 +#define BIT_MD123 1 +#define BIT_MD0 0 + + + +// ======================================================== +bit ledInitialized; + + +// m点LED +uni_info_LED info_LED; // p^[f[^ +bit info_led_off; // doffȂǁAtO +bit info_led_override; // drcʋ͏_ŏ㏑rbg + +// wifi led Xe[g +static u8 state_wifi_tx; +static u8 flag_wifi_TX; + + +// ======================================================== +#define led_fade_to( now, goal ) now = fade_to( now, goal ) + + +/********************************************//** + now goal ɂȂ܂ inc / dec BxĂԂƃOf[V + + Ƃ肠AXebvŒ + ***********************************************/ +u8 fade_to( u8 now, u8 goal ) +{ + if( now != goal ) + { + if( now > goal ) + { + now --; + } + else + { + now ++; + } + } + return( now ); +} + + + + +/********************************************//** + XlăOf[V + ***********************************************/ +#define led_fade_to2( led, status ) \ + led = fade_to2( status ) + + +u8 fade_to2( st_LED_dim_status* status ) +{ + if( status->now != status->to ) + { + if( abs(( status->to - status->now )) > abs(status->delta) ) + { + status->now += status->delta; + } + else + { + // delta Ƃ to ̒lɂԂ‚Ă܂ + status->now = status->to; + } + } + return( status->now / 128 ); +} + + + + +/********************************************//** + LED̏ + + HW^C}[ĝł̏s + ***********************************************/ +void LED_init( ) +{ +/** + PWM̃ZbgAƂ肠S + + }X^`lFO@(P01:/reset2)@}X^[͋`lłȂ + X[u@@@@P@rksnB(Rc kdcH) + @@@@@@@@Q@J + @@@@@@@@R@WiFi + @@@@@@@@S@(s͂qsb32kHz out Ɏgp) + @@@@@@@@T@[d + @@@@@@@@U@d k + @@@@@@@@V@d g + */ +// LED_oshirase_init(); // m点p^[ + + /// ytF /// + TAU0EN = 1; + TPS0 = BIT_PRS012 | BIT_PRS002; // }X^[NbNCK01,8M/2 /2^4 = 250kHz + + TMR00 = + 1 << BIT_CKS0 | 0 << BIT_CCS0 | 1 << BIT_MASTER0 | 0 << BIT_STS0 | 0 + << BIT_CIS0 | 0 << BIT_MD123 | 1 << BIT_MD0; + TMR01 = TMR02 = TMR03 = TMR04 = TMR05 = TMR06 = TMR07 = + 1 << BIT_CKS0 | 0 << BIT_CCS0 | 0 << BIT_MASTER0 | 4 << BIT_STS0 | 0 + << BIT_CIS0 | 4 << BIT_MD123 | 1 << BIT_MD0; + ISC = 0; + TOM0 = 0x00FE; // o̓[hB4PWMo͂Ȃ1ɂȂTO5ȍ~ɃNbN͂Ȃ + + TOL0 = 0x0000; // o͂𔽓]邩tO + + TO0 = 0x0000; // ^C}[쒆ŁA^C}[o͂ɂĂȂƂ̃s̃b`B^C}[o͂gȂȂO + TOE0 = 0x00EE; // TOx^C}[W[H + + TS0 = 0x00EF; // Jn + + TDR00 = LED_BRIGHT_MAX - 1; // 10bit + + // Abvf[gȂǂŃ}CR̂݃u[gƂ + if( system_status.reboot ) + { + // SoC ̃R}h҂Aœd LED ‚ + vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO; + LED_duty_pow_blu = LED_BRIGHT_MAX; + } + info_led_off = false; // + ledInitialized = true; +} + + +static void LED_oshirase_init() +{ + char* p_tgt = &info_LED; + int i; + + for( i = 0; i < sizeof(info_LED); i++ ) + { + *p_tgt = 0; + p_tgt++; + } +} + + + + + +/********************************************//** + LED̒~B + + HW^C}[̒~ + ***********************************************/ + +void LED_stop( ) +{ + TT0 = 0x00EF; // Ē~iȂƂ߁j + TOE0 = 0x0000; // TOx^C}[W[H(GPIOɂȂ) + TAU0EN = 0; + LED_pow_red = 0; + LED_CAM = 0; + + LED_duty_notify_red = 0; + LED_duty_notify_blu = 0; + LED_duty_notify_grn = 0; + LED_pow_red = 0; + LED_CAM = 0; + + WIFI_txLatch = 0; + flag_wifi_TX = 0; + state_wifi_tx = 0; + + ledInitialized = false; +} + + + + +/********************************************//** + WiFi LED ̍XV + + - WX^̐ݒ on / off + - off łĂW[̑MpX -_-_-_--------_-_-_-------̃p^[_ + ***********************************************/ +void tsk_led_wifi( ) +{ + static u8 task_interval; + + if( task_interval-- != 0 ) + { + return; + } + + // MpX̃b` + if( WIFI_txLatch ) // 荞݃tÔ̂gĂ܂ + { + WIFI_txLatch = 0; + flag_wifi_TX = 1; + } + + if( flag_wifi_TX != 0 ) + { + vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_WIFI_TX; + // Mp^[ + switch ( state_wifi_tx ) + { + case ( 1 ): + case ( 3 ): + case ( 5 ): + LED_duty_WiFi = 0; + break; + default: + LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT]; + } + state_wifi_tx ++; + if( state_wifi_tx == 32 ) // _ŌA_ĂԂ̒ + { + state_wifi_tx = 0; + flag_wifi_TX = 0; + } + task_interval = 25; + return; + } + else + { + task_interval = 30; + // MtO҂ + vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_WIFI_TX; + + if( vreg_ctr[VREG_C_LED_WIFI] == WIFI_LED_OFF ) + { + LED_duty_WiFi = 0; + return; + } + else + { + if( LED_duty_WiFi == vreg_ctr[VREG_C_LED_BRIGHT] ) + { + return; + } + else if( LED_duty_WiFi < vreg_ctr[VREG_C_LED_BRIGHT] ) + { + LED_duty_WiFi ++; + } + else + { + LED_duty_WiFi --; + } + } + task_interval = 3; + return; + } +} + + + + +bit info_led_pattern_updated; +/********************************************//** + m点LED + + tF[hAEgvZ + ***********************************************/ +static void calc_info_led_fade_out( st_LED_dim_status* tgt_led ) +{ + tgt_led -> to = 0; + tgt_led -> delta = ( 0 - tgt_led -> now ) / 64; + // tF[hAEg([ɌĂB̌z肵Ă܂B) + if(( tgt_led -> now != 0 ) && ( tgt_led -> delta == 0 )) + { + tgt_led -> delta = (sx16)-1; + } +} + + +/********************************************//** + m点LED + + Of[VvZ + ***********************************************/ +static void calc_info_led_next_frame( st_LED_dim_status* tgt_led, u8 color ) +{ + tgt_led -> to = color * 128; + // Of[Ṽf^vZ + tgt_led -> delta = (( tgt_led -> to - tgt_led -> now ) ) / info_LED.info_LED.fade_time; +} + + +/********************************************//** + m点LED + ***********************************************/ +void tsk_led_notify( ) +{ + static u8 time_to_next_frame; + static u8 frame; + static u8 loops; + static st_LED_dim_status LED_dim_status_info_R, LED_dim_status_info_G, LED_dim_status_info_B; + + if( info_led_override ) + { + // dr؂ꂪD悷 + return; + } + + if( system_status.pwr_state == ON_TRIG ) + { + LED_duty_notify_blu = 0; + LED_duty_notify_red = 0; + LED_duty_notify_grn = 0; + LED_dim_status_info_R.now = 0; + LED_dim_status_info_G.now = 0; + LED_dim_status_info_B.now = 0; + } + + if( info_led_off ) // doffȂNjoff + { + // tF[hAEg + calc_info_led_fade_out( &LED_dim_status_info_R ); + calc_info_led_fade_out( &LED_dim_status_info_G ); + calc_info_led_fade_out( &LED_dim_status_info_B ); + } + else + { + // ʏ^] + if( info_led_pattern_updated ) + { + info_led_pattern_updated = false; + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP; + frame = 0; // Ə + time_to_next_frame = 0; + } + else + { + // ̃t[ɐi߂H + if( time_to_next_frame == 0 ) + { + time_to_next_frame = info_LED.info_LED.term; + + if( frame >= NOTIFY_LED_TERM -1 ) + { + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] |= REG_BIT_IN_LOOP; + if( info_LED.info_LED.last_loop != 255 ) // 255:[v + { + loops ++; + if( loops > info_LED.info_LED.last_loop ) + { + frame = 0; + } + } + } + else + { + frame = (( frame + 1 ) & 0x1F ); // Ń}XNĂȂƍŏIt[`擪Ԃ̃OfȂ + vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP; + loops = 0; + } + + // Of[VvZ + calc_info_led_next_frame( &LED_dim_status_info_R, info_LED.info_LED.red[frame] ); + calc_info_led_next_frame( &LED_dim_status_info_G, info_LED.info_LED.grn[frame] ); + calc_info_led_next_frame( &LED_dim_status_info_B, info_LED.info_LED.blu[frame] ); + + } + time_to_next_frame --; + } + } + + led_fade_to2( LED_duty_notify_red, &LED_dim_status_info_R ); + led_fade_to2( LED_duty_notify_grn, &LED_dim_status_info_G ); + led_fade_to2( LED_duty_notify_blu, &LED_dim_status_info_B ); +} diff --git a/snake_branches/2.35/led.h b/snake_branches/2.35/led.h new file mode 100644 index 0000000..ce8541f --- /dev/null +++ b/snake_branches/2.35/led.h @@ -0,0 +1,142 @@ +#ifndef __led__ +#define __led__ + + + +// ==================================== + +//#define LED_CHARGE P2.4 // PMŒ` + +// LED_DUTY +#define LED_duty_pow_blu TDR06 +#define LED_duty_WiFi TDR03 + +#define LED_duty_3d TDR01 +#define LED_duty_notify_red TDR07 +#define LED_duty_notify_grn TDR05 +#define LED_duty_notify_blu TDR02 + +// dutyς܂ +#ifndef _WIN32 +#define LED_pow_red P4.2 +#define LED_CAM P7.5 +#else +#define LED_pow_red mcuRegP[ _P4_2 ] +#define LED_CAM mcuRegP[ _P7_5 ] +#endif + +#define NOTIFY_LED_TERM 32 + + +#define LED_BRIGHT_MAX 0x00FF + +// ==================================== +#define WIFI_txLatch PIF21 // dgMpX + + + +// ==================================== +enum LED_ILUM_MODE +{ + LED_POW_ILM_AUTO = 0, + LED_POW_ILM_ON, + LED_POW_ILM_SLEEP, + LED_POW_ILM_OFF, + LED_POW_ILM_ONLY_RED, + LED_POW_ILM_ONLY_BLUE, + LED_POW_ILM_FORCE_BT_EMPTY +}; + + +enum LED_MODE_3D +{ + LED_3D_ILM_OFF = 0, + LED_3D_ILM_ON +}; + + +// VREG_C_WIFI_LED +enum WIFI_LED_MODE +{ + WIFI_LED_OFF = 0, + WIFI_LED_ON +}; + + +// VREG_C_WIFI_NOTIFY +enum NOTIFY_LED_MODE +{ + NOTIFY_LED_OFF = 0, + NOTIFY_LED_ON, + NOTIFY_LED_PTN0, + NOTIFY_LED_PTN1, + NOTIFY_LED_PTN2 +}; + + +// VREG_C_CAM_LED +enum CAM_LED_MODE +{ + CAM_LED_OFF = 0, + CAM_LED_BLINK, + CAM_LED_ON, + CAM_LED_BY_TWL, + CAM_LED_ON_PLUSE, + CAM_LED_OFF_PLUSE +}; + + + +// m点LED֌W // +typedef struct _st_info_LED +{ + u8 term; // 1t[`bNH + u8 fade_time; // `bNŎ̃t[̐FɒB邩 + u8 last_loop; // ŏIt[JԂH + u8 resv1; + u8 red[32]; + u8 grn[32]; + u8 blu[32]; +}st_info_LED; + +typedef union _uni_info_LED +{ + st_info_LED info_LED; + u8 bindata[ sizeof( st_info_LED ) ]; +}uni_info_LED; + +extern uni_info_LED info_LED; + + +// LED _Ō // +typedef struct _st_led_red_batt_empty +{ + u8 dats[4]; +}st_led_red_batt_empty; + +extern st_led_red_batt_empty led_red_batt_empty; + + +/* + m点LED +*/ +typedef struct _st_LED_dim_status +{ + sx16 to; + sx16 delta; + sx16 now; // _ȉoĂȂĂ͂ȂȂ +}st_LED_dim_status; + + + +// ==================================== +void LED_init( ); +void LED_stop( ); + + +// ==================================== +extern bit ledInitialized; +extern bit info_led_override; + + +#endif diff --git a/snake_branches/2.35/led_cam.c b/snake_branches/2.35/led_cam.c new file mode 100644 index 0000000..7d4a1eb --- /dev/null +++ b/snake_branches/2.35/led_cam.c @@ -0,0 +1,156 @@ +/******************************************************//** + LED_Cam TO02 + + BLINK,*_PLUSE ̎́A1͕K̏ԂɂȂ܂B + + ̊Ԃ OFFBLINK ȂǂƁAOFF܂B + + $Id$ + *********************************************************/ +#ifndef _WIN32 + +#pragma sfr + +#endif + +#include "incs.h" +#include "led.h" +#include "vreg_twl.h" + + +// ======================================================== +static u8 state_led_cam = 0; +static u16 task_interval; + +bit cam_led_update; + + + +// ======================================================== +static void cam_led_twl(); + + + + +/********************************************//** + C^[os^XNƁAtwlWX^ւ݂̏̂QJĂ΂܂B + ***********************************************/ +void tsk_led_cam( ) +{ + DI_wt_chk(); // WX^ւ݂̏ŋN邱Ƃ邽 + if( !cam_led_update ) + { + if( task_interval != 0 ) + { + task_interval --; + EI(); + return; + } + } + + cam_led_update = false; // TWL ̃uNݒiꔭ_ĵ + EI(); + + if( system_status.pwr_state == SLEEP ) // sleepA + { + LED_CAM = 0; + state_led_cam = 0; + } + else + { + // uN̂悤ɑ҂ƂȊO͖TN + // (WX^̕ύXɂɔ) + switch ( vreg_ctr[VREG_C_LED_CAM] ) + { + case ( CAM_LED_OFF ): + default: + LED_CAM = 0; + state_led_cam = 0; + break; + + case ( CAM_LED_ON ): + LED_CAM = 1; + state_led_cam = 0; + break; + + case ( CAM_LED_BLINK ): + if( state_led_cam == 0 ) + { + LED_CAM = 1; + state_led_cam = 1; + } + else + { + LED_CAM = 0; + state_led_cam = 0; + } + task_interval = 250; + break; + + case ( CAM_LED_ON_PLUSE ): + if( state_led_cam == 0 ) + { + LED_CAM = 1; + state_led_cam = 1; + task_interval = 250; + } + else + { + vreg_ctr[VREG_C_LED_CAM] = CAM_LED_OFF; + } + break; + + case ( CAM_LED_OFF_PLUSE ): + if( state_led_cam == 0 ) + { + LED_CAM = 0; + state_led_cam = 1; + task_interval = 250; + } + else + { + vreg_ctr[VREG_C_LED_CAM] = CAM_LED_ON; + } + break; + + case( CAM_LED_BY_TWL ): + cam_led_twl(); + } + } // if( system_status.pwr_state == sleep ) ... else ... +} + + +/********************************************//** + TWLJLED𑀍삳 + ***********************************************/ +static void cam_led_twl() +{ + // TWL݊ // + switch ( vreg_twl[ REG_TWL_INT_ADRS_CAM ] ){ + case( TWL_CAMLED_OFF ): + LED_CAM = 0; + state_led_cam = 0; + break; + + case( TWL_CAMLED_BLINK ): + if( state_led_cam == 0 ) + { + LED_CAM = 1; + state_led_cam = 1; + } + else + { + LED_CAM = 0; + state_led_cam = 0; + } + task_interval = (u8)( 600 / SYS_INTERVAL_TICK ) + 250; + break; + + case( TWL_CAMLED_ON ): + case( TWL_CAMLED_DEF_ON ): + default: + LED_CAM = 1; + state_led_cam = 1; + break; + } +} diff --git a/snake_branches/2.35/led_pow.c b/snake_branches/2.35/led_pow.c new file mode 100644 index 0000000..6773d4e --- /dev/null +++ b/snake_branches/2.35/led_pow.c @@ -0,0 +1,296 @@ +/* ======================================================== + dLED + LED_POW_B,R 6,7 + + TDR00@(0x03FFBTPS0250kHzŃJEgAbvB10bitȂ250HzʂɂȂ) + TDR0x@Duty 0ŏATDR00( =0x03FFȏ)œ_łB + + $Id: asdf$ + ======================================================== */ + +/* ======================================================== + enum pwr_state_{ + OFF_TRIG = 0, + ON_CHECK, + ON_TRIG, + ON, + SLEEP +}; + +enum LED_ILUM_MODE{ + LED_POW_ILM_AUTO, + LED_POW_ILM_ON, + LED_POW_ILM_SLEEP, + LED_POW_ILM_CEOFF +}; + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr + +#endif + +#include "incs.h" +#include "led.h" +#include "pm.h" + +// ======================================================== +// X[vł̃e[uB}WB +const u8 LED_PTN_SLEEP[] = { + 25, 38, 52, 68, 83, 98, 110, 119, + 125, 128, 128, 125, 119, 110, 98, 83, + 68, 52, 38, 25, 16, 10, 8, 8, + 8, 8, 8, 8, 8, 8, 10, 16 + }; + + +// LED̓drcLED̓_Ńp^[ +st_led_red_batt_empty led_red_batt_empty = { 0x55, 0x55, 0x55, 0x55 }; +#define LED_SLEEP_FRAME_LEN 71 +#define LED_SLEEP_DIM_LEN 71 +#define LED_SLEEP_FRAME_NUM 32 + + + +// ======================================================== +static void led_pow_normal( ); +static void led_pow_sleep( ); +static void led_pow_bt_empty(); +static u8 led_pow_batt_low(); + +#define led_fade_to( now, goal ) now = fade_to( now, goal ) +extern u8 fade_to( u8 now, u8 goal ); + +#define led_fade_to2( led, status ) led = fade_to2( status ) +extern u8 fade_to2( st_LED_dim_status* status ); + + + +// ======================================================== +// dLED̃X[vp^[̃Xe[^X +static u8 time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; +static u8 frame_sleep; +static st_LED_dim_status LED_dim_status_sleep; + +extern bit ledInitialized; +extern bit BT_IN_CHG_delayed_n; + + + +/********************************************//** + dLED + + {Iɂ́A + + 쎞A + - drc > 10% “_imaster_brightness̖邳j + - 5% ԓ_ (100%_AHWŒs) + - ȉ ԓ_Am点LEDԂBAA_v^h5%`̓ + + X[v + - drc > 10% “_imaster_brightness̖邳j + - 쎞Ɠ + + X[vɂ͎Ő؂ւȂ̂ŁAWX^삪Kvłi̕s悢ł傤Hj + + ̃p^[͐Ŷ߁B + ***********************************************/ +void tsk_led_pow( ) +{ + if( ! ledInitialized ) + { + return; + // ܂ + } + + info_led_override = false; + + switch ( vreg_ctr[VREG_C_LED_POW] ) + { + case ( LED_POW_ILM_AUTO ): + default: + led_pow_normal( ); + break; + + case ( LED_POW_ILM_SLEEP ): + led_pow_sleep( ); + break; + + case ( LED_POW_ILM_ON ): + led_fade_to( LED_duty_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] ); + LED_pow_red = 0; + break; + + case ( LED_POW_ILM_OFF ): + led_fade_to( LED_duty_pow_blu, 0 ); + LED_pow_red = 0; + break; + + case ( LED_POW_ILM_ONLY_RED ): + LED_duty_pow_blu = 0; + LED_pow_red = 1; + break; + + case ( LED_POW_ILM_ONLY_BLUE ): + LED_duty_pow_blu = LED_BRIGHT_MAX; + LED_pow_red = 0; + break; + + case ( LED_POW_ILM_FORCE_BT_EMPTY ): + led_pow_bt_empty(); + break; + } + + if( system_status.pwr_state == OFF || system_status.pwr_state == ON_CHECK ) + { + LED_pow_red = 0; + info_led_override = false; + } + + if( info_led_override ) + { + LED_duty_notify_blu = 0; + LED_duty_notify_grn = 0; + LED_duty_notify_red = ( LED_pow_red == 0 )? 0 : 255; + } +} + + + +/********************************************//** + ʏ퓮쎞 + + drcʂŁA@ԁԓ_ + ***********************************************/ +static void led_pow_normal( ) +{ + time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; + frame_sleep = 0; + LED_dim_status_sleep.now = (sx16)LED_duty_pow_blu * 128; + + if( led_pow_batt_low() != 0 ) // Ԃ̓_łĂ܂ + { + return; + // ܂ + } + + // “_ + led_fade_to( LED_duty_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] ); +} + + + +/********************************************//** + X[vz^p^[ + + drcʂŐԁԓ_łɂ + ***********************************************/ +static void led_pow_sleep( ) +{ + if( led_pow_batt_low() != 0 ) // Ԃ̓_łĂ܂ + { + time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; + frame_sleep = 0; + LED_dim_status_sleep.now = (sx16)LED_duty_pow_blu * 128; + return; + // ܂ + } + + LED_dim_status_sleep.to = LED_PTN_SLEEP[frame_sleep] * 128; + + // Of[Ṽf^vZ + LED_dim_status_sleep.delta = (( LED_dim_status_sleep.to - LED_dim_status_sleep.now ) ) / LED_SLEEP_DIM_LEN; + led_fade_to2( LED_duty_pow_blu, &LED_dim_status_sleep ); + + // ̃t[ɐi߂H + time_to_next_frame_sleep --; + if( time_to_next_frame_sleep == 0 ) + { + time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN; + + frame_sleep ++; + if( frame_sleep >= LED_SLEEP_FRAME_NUM -1 ) + { + frame_sleep = 0; + } + } +} + + + +/********************************************//** + drȂƂ̋ + +@ԒlF@0@drȂȂ +@@@@@1@Ȃ̂ŋʃp^[ɂ + ***********************************************/ +static u8 led_pow_batt_low() +{ + if( vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_LO ) + { + LED_pow_red = 0; + return 0; + // ܂ + } + + if(( vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_EMPTY ) || !BT_IN_CHG_delayed_n ) + // drcʂ5%i`10%j@܂́Aꖢł[d + { + // ԓ_ + led_fade_to( LED_duty_pow_blu, 0 ); + { + LED_pow_red = 1; + } + + } + else // dr5%@@A_v^Ȃ + { + led_pow_bt_empty(); + } + return 1; +} + + + + +/********************************************//** +@drȂp^[ + +@@wp^[𗬂 + +@@m点㏑ + ***********************************************/ +static void led_pow_bt_empty() +{ + static u8 delay; + static u8 red_blink_poi; + + info_led_override = true; + + // ԓ_ + led_fade_to( LED_duty_pow_blu, 0 ); + + // Ԃ̓_Ńp^[wł + delay ++; + if( delay < 64 ) // t[̕ێԉ҂ + { + return; + } + delay = 0; + + if( led_red_batt_empty.dats[ red_blink_poi / 8 ] & ( 1 << ( red_blink_poi % 8 )) ) + { + LED_pow_red = 1; + } + else + { + LED_pow_red = 0; + } + red_blink_poi ++; + if( red_blink_poi >= 32 ) + { + red_blink_poi = 0; + } +} + + diff --git a/snake_branches/2.35/loader.c b/snake_branches/2.35/loader.c new file mode 100644 index 0000000..78c6468 --- /dev/null +++ b/snake_branches/2.35/loader.c @@ -0,0 +1,416 @@ +/* ======================================================== + MCU CTR BSR + 2009/03/30 - + JZp c + + u[g[_[ + zXg̒ʐMƁAȏAt@[̃`FbNsB + + $Id: loader.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#pragma opc + +#endif +#include "incs_loader.h" + +#include +#include "fsl_user.h" + +#include "i2c_ctr.h" +#include "i2c_mcu.h" +#include "pm.h" +#include "rtc.h" + +#include "reboot.h" + +#include "wdt.h" +#include "magic.h" + + + +#define REG_BIT_RESF_WDT 0x10 +#define REG_BIT_RESF_TRAP 0x80 +#define REG_BIT_RESF_LVI 0x01 + + + +// ======================================================== +#if (FSL_DATA_BUFFER_SIZE>0) +fsl_u08 fsl_data_buffer[FSL_DATA_BUFFER_SIZE]; +#endif + + + +#ifdef FSL_INT_BACKUP +static fsl_u08 fsl_MK0L_bak_u08; /* if (interrupt backup required) */ +static fsl_u08 fsl_MK0H_bak_u08; /* { */ +static fsl_u08 fsl_MK1L_bak_u08; /* reserve space for backup information */ +static fsl_u08 fsl_MK1H_bak_u08; /* of interrupt mask flags */ +static fsl_u08 fsl_MK2L_bak_u08; /* */ +static fsl_u08 fsl_MK2H_bak_u08; /* } */ +#endif + + + +// ======================================================== +void hdwinit(); // static ɂcrt0猩ȂȂ܂BӁI +static void hdwinit2(); +static void chk_platform_type(); +static void chk_firm_broke(); + + +extern void main_loop(); + + +/********************************************//** + * - t@[Abvf[gAWDT̃ZbgA + * - t@[̔jA + * - {̎ނ̎ʁA + * - |[gA + * - ჌xȃytF̏A + * + * main_loop()ĂԁB + ***********************************************/ +void main( ) +{ + while( 1 ) + { + WDT_Restart( ); + + if( RTCEN ) // TRAP(update)ɂgȂBWDTł͗Ȃ + { + system_status.reboot = true; + } + + { + volatile u8 my_resf = RESF; // ǂނƏ + if( ( my_resf & REG_BIT_RESF_WDT ) != 0 ) + { + vreg_ctr[ VREG_C_MCU_STATUS ] |= REG_BIT_STATUS_WDT_RESET; + // set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET ); + // I2C̏ɍs + system_status.reboot = true; + } + else if( ( my_resf & REG_BIT_RESF_TRAP ) != 0 ) // ( FSL_ForceReset, 'r' ) + { + system_status.reboot = true; + } +/* LVIgp + else if(( my_resf & REG_BIT_RESF_LVI ) != 0 ) + { + vreg_ctr[ VREG_C_MCU_STATUS ] |= ( 1 << 2 ); + } +*/ + } +//* ROMǂɂȂȂA]̏RgAEg + if( !system_status.reboot ) + { + // ʏ̓d + // drڑAƑ҂Ă݂(`^O΍) + u16 pwup_delay0; + for( pwup_delay0 = 0xFFFF; pwup_delay0 != 0; pwup_delay0 -- ){;}; + } +//*/ + hdwinit2( ); + +#ifndef _WIN32 + // t@[̐`FbN // + chk_firm_broke(); // ĂAĂȂ +#endif + + // @픻 + chk_platform_type(); + + // HALfobOZbg + hal_reset(); + hal_update(); + + // RTC + RTC_init( ); // Ńu[g肵ď邩f܂ + + // ʏ^] + main_loop( ); + } +} + + + +/********************************************//** + * }WbNio[`FbNāA삳悤ƂĂt@[jĂȂ`FbN܂B + * + * Ăꍇ̓XgA݁AMCU̓Zbg܂B + ***********************************************/ +static void chk_firm_broke() +{ + u8 i; + u8 comp = 0; + + // [_[Ɩ{͓̂o[WH + /// ւ̃Abvf[g̓rŏIĂȂH + for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 炵 + { + comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; + comp += ( *( u8 * )( MGC_HEAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; + } + + if( *( u8 * )( MGC_FOOT +2 ) != ':' ) // ς̂܂ + { + comp ++; + } + + if( comp != 0 ) + { + // t@[XgA݂ + firm_restore( ); + // AĂȂBZbgB + } +} + + +/********************************************//** +vbgtH[̔sAsystem_statusɃZbg܂B + + fobK‚ȂłƏɔłȂƂ܂B + +CTRt@~ + + DEV_DET(P12.[2:1]) + + +CTR̊J@ + + P40,41 !! fobOLP40LMCUN܂I + + - HH @ + - HL NBDV + - LH X^hAV + - LL ISfobK + + ***********************************************/ +void chk_platform_type() +{ + // CTRt@~ // + system_status.family = (enum family_)( DEV_DET >> 1 ); /// ... + +#ifdef _DBG_FORCE_FLOWER + // Iɋ@ݒăfobOƂ +// system_status.family = FAMILY_FLOWER; +#endif + +#ifdef _MCU_ARR + if( system_status.family == FAMILY_SPFL ) + { + system_status.family = FAMILY_CLOSER; + } +#endif + + if( system_status.family == FAMILY_CTR ) + { + system_status.LCD_is_CGS = true; + } + else + { + // FAMILY_SPFL or FAMILY_SNAKE or FAMILY_FLOWER // At@XYȂ + system_status.LCD_is_CGS = false; + } + + if( system_status.LCD_is_CGS == true ) + { + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_CGS; + } + else + { + pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_AMO; + } + set_vdd_voltages( system_status.family ); + + // CTR̊J@ // + // ꉞ + system_status.is_dev = false; + system_status.taikendai = false; + system_status.taikendai_nbd = false; + + switch( DIPSW ) + { + case DIPSW_TAIKENDAI: + system_status.taikendai = true; + break; + + case DIPSW_TAIKENDAI_NBD: + system_status.taikendai_nbd = true; + break; + + case DIPSW_ISDEV: + system_status.is_dev = true; + break; + } +#ifdef _FORCE_TAIKENDAI_ + system_status.taikendai = true; +#endif + +#ifdef _FORCE_TAIKENDAI_NBD_ + system_status.taikendai_nbd = true; +#endif +} + + + + +/********************************************//** + ŏ̃WX^s܂B + + gݍ݃X^[gAbv[`Ă΂܂B + ***********************************************/ +void hdwinit( void ) +{ // X^[gAbv[`ɌĂт܂ + DI( ); /* }X^荞݋֎~ */ + + CMC = bits8(0,0,0,1, 0,0,0,0); /* X1U(̓|[g)AXT1gpAd͔U͕sɕtʏ */ + CSC = bits8(1,0,0,0, 0,0,0,0); /* X1UȂAXT1UAU */ + OSMC = bits8(0,0,0,0, 0,0,0,1); /* BWX^ */ + NOP();NOP();NOP(); // 3clkJ + CKC = bits8(0,0,0,0, 1,0,0,0); /* CPU/ӃNbN=fMAINAfMAIN=fMXAfCLK=fMX */ + + /*--- doH̐ݒ ---*/ + /* Zbg̃ftHǵAIvVEoCgɂĎw肳 */ + LVIS = 0x00; /* VLVI = 4.22}0.1V */ +// LVIM = 0x00; /* LVI֎~ */ + /* dd(VDD)od(VLVI)Ɋ */ + /* dd(VDD)od tempA[0][1], "offset" => tempA[0][2], "type" => tempA[0][3], "data" => tempA[0][4], "CRC" => tempA[0][5] } + + break if src_in["type"].hex == 01 + break if src_in["len"].hex == 00 + # next if src_in["type"].hex != 00 + if( src_in["type"].hex != 00 ) +# p dat + next + end + + offset = src_in["offset"].hex + next if(( 0x1000 <= offset ) && ( offset < 0x2000 )) + + dataTemp = src_in["data"].scan(/\w\w/) + + ( 0...(src_in["len"].to_s.hex) ).each{|i| + bindata[ offset + i ] = ( dataTemp[ i ] ).to_s.hex + } +end + +### debug enable bit check ############# +# fobO‚ɂȂĂISfobKŋNȂiMCU삵Ȃj +p bindata[0xC3] +if( bindata[0xC3] != 0x04 ) + print( "!E debug enable!!" ) + exit( 1 ) +end + + +### format data and output ############# +4096.times{ + bindata.delete_at(4096) +} +dest.write( bindata[0..(0x4FFF - 0x1000)].pack("c*") ) +dest.close + +printf( "intel-HEX to bsr bin converter\n file converted!\n\n" ) diff --git a/snake_branches/2.35/pedo_alg_thre_det2.c b/snake_branches/2.35/pedo_alg_thre_det2.c new file mode 100644 index 0000000..4e69a04 --- /dev/null +++ b/snake_branches/2.35/pedo_alg_thre_det2.c @@ -0,0 +1,567 @@ +/* ******************************************************** + v + + 3x̃A^Cf[^AxNg̃moA + 臒l𒴂鎞ԁAԊuAm̑傫臒l؂ւȂ + + $Id$ +********************************************************* */ +#ifndef _WIN32 + +#pragma mul +#pragma div +#pragma bcd + +#endif + +#include "incs.h" + +#ifndef _WIN32 +#include +#endif + +#include "accero.h" +#include "pedometer.h" + +#include "pool.h" + +// ======================================================== +// ̍ŏIL^ +// ̏Ԃ̓OǂݏȍԂł̂łȂł +// ԂɃAhX̎Ⴂ̂mۂ̂҂Ă܂... +typedef struct{ + u8 hour_bcd; + u8 day_bcd; + u8 month_bcd; + u8 year_bcd; + u8 min_bcd; + u8 sec_bcd; +}st_calender; + + + +// ======================================================== +static u16 get_long_hour(); +static u16 calc_hours_spend( u8 ); + + + +// ======================================================== +bit pedolog_overflow; // 192ԋL^ς݃tO(i2cœǂ߂) +extern uni_pool pool; // O͂̍\̂̒ +static u8 p_record; // Ȍ݈ʒu +static st_calender cal_log_latest; // ŌɕXV +static u16 last_hour_fny; // fny:from new year +static st_calender cal_temp; +static u16 now_longhour; + + + + + + +// ======================================================== +#define _use_my_sqrt_ +#ifdef _use_my_sqrt_ +static unsigned long my_sqrt( unsigned long ); +#endif + +// N͉[NH +#define is_leapyear( y ) (( y & 0x03 ) == 0 ) +// uNv͉[NH +#define is_firstyear( y ) (( y & 0x03 ) == 1 ) + + +// xZTlFIR-LPFɒʂB̌W +extern const s8 lpf_coeff[]; +#define TAP 64 +#define FIL_COEFF_QUANT 10 + + +/********************************************//** +@v + ***********************************************/ +void pedometer() +{ + static s16 th_H = 15000; // 臒lBIύX܂ + static s16 th_L = 11000; + static u16 acc_norm[3]; // x̑傫̃qXgB傫 + static u16 acc_norm_temp; + static u8 interval_hh = 0xFF; // R-RԂ̎ԁBZ߂͂B + static u8 time_l; // Őɏ̌oߎ + static u16 peak_l; // J̐[ + static u16 norm_hist[TAP]; + + static u8 hist_indx; + + signed long filterd; + + u8 i; + + u16 sx16,sy16,sz16; + + DI_wt_chk(); + sx16 = abs( (u16)vreg_ctr[VREG_C_ACC_XH] * 256 + vreg_ctr[VREG_C_ACC_XL] ); + sy16 = abs( (u16)vreg_ctr[VREG_C_ACC_YH] * 256 + vreg_ctr[VREG_C_ACC_YL] ); + sz16 = abs( (u16)vreg_ctr[VREG_C_ACC_ZH] * 256 + vreg_ctr[VREG_C_ACC_ZL] ); + EI(); + + // xNg̃m +#ifdef _mcu_ +# ifndef _use_my_sqrt_ + norm_hist[ hist_indx & TAP-1 ] = sqrt( (long)sx16 * ( sx16 / 2 ) + + (long)sy16 * ( sy16 / 2 ) + + (long)sz16 * ( sz16 / 2 ) + ); +# else + norm_hist[ hist_indx & TAP-1 ] = my_sqrt( (long)sx16 * ( sx16 / 2 ) + + (long)sy16 * ( sy16 / 2 ) + + (long)sz16 * ( sz16 / 2 ) + ); +# endif +#endif + +#ifdef _pc_ + norm_hist[ hist_indx & TAP-1 ] = normh * 256 + norml; +#endif + + hist_indx ++; + + // qXgɃtB^(fir)|āA̒l߂ // + filterd = 0; +// for( i = 8; i != 55; i++ ) // WO΂̂ + for( i = 0; i != 46; i++ ) // We[u܂Bp[^ + { + filterd += (signed long)norm_hist[ ( hist_indx + i ) & TAP-1 ] * lpf_coeff[ i ]; + } + + filterd += (4096)*512; // DCZ...Ǝv + acc_norm_temp = (s16)( filterd /1024 & 0xFFFF ); // FIL_COEFF_QUANT琳K +/* + if( acc_norm[0] < acc_norm_temp ) + { + t_rise ++; + if( t_rise == 0 ) + t_rise == 254; + } + else + { + t_rise = 0; + } +*/ + if( acc_norm[0] != acc_norm_temp ) + { + acc_norm[2] = acc_norm[1]; // qXg + acc_norm[1] = acc_norm[0]; + acc_norm[0] = acc_norm_temp; + } + + if( acc_norm[2] <= acc_norm[1] && acc_norm[1] > acc_norm[0] + && acc_norm[0] > th_H ) + // ɑŁA臒l𒴂Ă + { + if( 21 < interval_hh ) + // Őɑ傩̊Ԋuقǂ悢 + { + if(( interval_hh < 160 ) && ( time_l < interval_hh )) + // Jł + { + if( acc_norm[0] - peak_l > 4200 ){ + // ܂ + hosu_increment_if_necessary(); + } + } + interval_hh = 0; + } + // Ȃ񂿂臒l̓IύX + if( acc_norm[0] > 18000 ) + { + th_L = acc_norm[0] - 10000; + } + else + { + th_L = 11000; + } + } + else + { + if( interval_hh != 255 ) // OaZĊyɏ炢̂ + { + interval_hh ++; + } + } + + // (2) ߂̋ɏ̎ + if( acc_norm[2] >= acc_norm[1] && acc_norm[1] < acc_norm[0] + && acc_norm[0] < th_L ) + { + // ɏo + time_l = 0; + peak_l = acc_norm[0]; + } + else + { + if( time_l != 255 ) + { + time_l ++; + } + } +} + + +/********************************************//** +@{P + + - ݐςCNg + - XV + + *2011/01/20 + + dlύX@OςɂȂ炻Ŏ~߂ + ***********************************************/ +#define HOSU_NODATA 0xFFFF +#define HOSU_MAX 0xFFFE + +void hosu_increment_if_necessary() +{ + u8 year_compd; // hourE␳ς݌ݔNBcomp(ensation -ed) + + // ݎ擾 + DI_wt_chk(); + RWAIT = 1; + while( !RWST ){;} + + cal_temp.hour_bcd = HOUR; + cal_temp.day_bcd = DAY; + cal_temp.month_bcd = MONTH; + cal_temp.year_bcd = YEAR; + cal_temp.min_bcd = MIN; + cal_temp.sec_bcd = SEC; + + RWAIT = 0; + EI(); + + year_compd = bcdtob( cal_temp.year_bcd ); + + now_longhour = get_long_hour(); + + // ݃|C^̍XV + if( ! ( vreg_ctr[ VREG_C_ACC_HOSU_L ] == 0 && // vonAŏ̈܂ł͑O񂩂̌oߎԂvZȂ + vreg_ctr[ VREG_C_ACC_HOSU_M ] == 0 && + vreg_ctr[ VREG_C_ACC_HOSU_H ] == 0 )) //. SrbgORŃ[肷̂̓fW^H݂̕ + { + // v~܂ĂԂlĕKvȂi߂ + // ␳vZ@U뎞ōɂȂꍇAA23ɏ㏑ + if( now_longhour == (u16)-1 ) // NA23䈵̂ƂAvZʂ -1 ɂȂĂ + { + now_longhour = 365 * 24 -1; + if( is_firstyear(year_compd) ) + { + now_longhour += 24; + } + year_compd --; + } + fill_hosu_hist_hours( calc_hours_spend( year_compd ) ); // ݃|C^̍XVs + + // OӂŋL^~H + if( pedolog_overflow ) + { + return; + // ܂BO̍XVȂB + } + } + + // CNgėǂ + cal_log_latest = cal_temp; // OXV + last_hour_fny = now_longhour; + + // O@CNg + if( pool.vreg_c_ext.pedo_log[ p_record ] == HOSU_MAX ) + { + // Ȃł܂ + //. v̍vƗ݌vȂȂ̂邽߂낤ǁAǂȂ́H + return; + } + else if( pool.vreg_c_ext.pedo_log[ p_record ] == HOSU_NODATA ) // ̎ԑэŏ̃JEg̎ + { // ꂵȂ1Ȃ + pool.vreg_c_ext.pedo_log[ p_record ] = 1; + } + else + { + // ʏpX + pool.vreg_c_ext.pedo_log[ p_record ] ++; + } + + // ݐς̍XV // + DI_wt_chk(); + if( ++vreg_ctr[ VREG_C_ACC_HOSU_L ] == 0 ) // JXg`FbN + { + if( ++vreg_ctr[ VREG_C_ACC_HOSU_M ] == 0 ) + { + if( ++vreg_ctr[ VREG_C_ACC_HOSU_H ] == 0 ){ + vreg_ctr[ VREG_C_ACC_HOSU_L ] = 255; //. 낢뎸s... + vreg_ctr[ VREG_C_ACC_HOSU_M ] = 255; + vreg_ctr[ VREG_C_ACC_HOSU_H ] = 255; + } + } + } + EI(); +} + + +/********************************************//** +󔒂̎ԂK؂0ɂāA +܂ނPԂ̃f[^ʒuɃ|C^Hi߂ + ***********************************************/ +static void fill_hosu_hist_hours( u16 hours ) +{ + // OӂH + if( (u16)p_record + hours >= PEDOMETER_LOG_SIZE ) + { + pedolog_overflow = true; + return; + } + + // 󔒂̐Ԃ̐ݒ + while( hours != 0 ) + { + // Vdl@ςŒ~ + p_record ++; +#if 1 // debug + if( p_record >= PEDOMETER_LOG_SIZE ) + { + pedolog_overflow = true; +// dbg_nop(); // ɗ悤ƃoO + break; + } + else +#endif + { + pool.vreg_c_ext.pedo_log[ p_record ] = 0; + } + hours --; + } + + return; +} + + + +/********************************************//** +NAAuf[^vɏ + ***********************************************/ +void clear_hosu_hist() +{ + u8 hours = PEDOMETER_LOG_SIZE; + do + { + hours --; + pool.vreg_c_ext.pedo_log[ hours ] = 0xFFFF; + } + while( hours != 0 ); + + DI_wt_chk(); + vreg_ctr[ VREG_C_ACC_HOSU_L ] = 0; + vreg_ctr[ VREG_C_ACC_HOSU_M ] = 0; + vreg_ctr[ VREG_C_ACC_HOSU_H ] = 0; + p_record = 0; + pedolog_overflow = false; + EI(); +} + + +extern u8 iic_burst_state; +bit pedolog_read_msb; +/********************************************//** + ṽqXgԂB + + PĂԓxɁAqXg̉ʁAʁAꎞԑkĉʏ... + ***********************************************/ +u8 hosu_read( ) +{ + u8 rv; + static u8 p_record_buffer; + static st_calender cal_buff; // ꉞAAg~bN + + if( iic_burst_state == 0 ) + { + p_record_buffer = p_record; + DI_wt_chk(); + cal_buff = cal_log_latest; + EI(); + } + + if( iic_burst_state <= 5 ) + { + rv = *( (u8*)&cal_buff + iic_burst_state ); // + iic_burst_state ++; + return( rv ); + } + else + { + u16 temp; + // 16rbgŋL^Ă̂ł΂炵đ /// Ɗy@񂶂 + temp = pool.vreg_c_ext.pedo_log[ p_record_buffer ]; + if( !pedolog_read_msb ) + { + rv = (u8)( temp & 0x00FF ); + } + else + { + rv = (u8)(( temp >> 8 ) & 0x00FF ); + if( p_record_buffer == 0 ) + { + p_record_buffer = PEDOMETER_LOG_SIZE-1; + } + else + { + p_record_buffer --; + } + } + pedolog_read_msb ^= 1; + return( rv ); + } + +} + + + +/********************************************//** + ŇǓoߎ(hour)ԂB + + + + Ԓl u16 long_hour + ***********************************************/ +const u16 DAYS_FROM_HNY[] = { + 0, + 31, + 31+28, // =59B@cRO͂PTX + 31+28+31, + 31+28+31+30, + 31+28+31+30+31, + 31+28+31+30+31+30, + 31+28+31+30+31+30+31, + 31+28+31+30+31+30+31+31, + 31+28+31+30+31+30+31+31+30, + 31+28+31+30+31+30+31+31+30+31, + 31+28+31+30+31+30+31+31+30+31+30 + }; + +static u16 get_long_hour() +{ + u8 year = bcdtob( cal_temp.year_bcd ); + u8 month = bcdtob( cal_temp.month_bcd ); + u8 day = bcdtob( cal_temp.day_bcd ); + u8 hour = bcdtob( cal_temp.hour_bcd ); + u8 min_bcd = cal_temp.min_bcd; // 召rȂ̂bcd̂܂܂ł悢 + u8 sec_bcd = cal_temp.sec_bcd; + u16 long_hour; + + // ܂̕ + long_hour = DAYS_FROM_HNY[ month -1 ]; // -1̓CfbNX킹 + if( is_leapyear(year) && ( 3 <= month )) + { + // [NŁA[ + long_hour ++; + } + long_hour += day - 1; + long_hour *= 24; // + + long_hour += hour; + + // EȆOHH + if( ( min_bcd > vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] ) + || ( ( min_bcd >= vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] ) + && ( sec_bcd >= vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC ] )) + ) + { + return( long_hour ); + } + else + { + return( long_hour -1 ); // 1ԑOɊ܂߂ ӁFUōNɂƂB-1 ɂȂ + } +} + + + +/********************************************//** +@yʕB + +@Kv\Ȑxőł؂ + + pcŃV~[Vđv + ***********************************************/ +static unsigned long my_sqrt(unsigned long x) +{ + unsigned long s, t; + + if (x <= 0) return 0; + + s = 1; + t = x; + while (s < t) + { + s <<= 1; + t >>= 1; + } + do + { + t = s; + s = (x / s + s) >> 1; + } while (s < t); + + return t; +} + + + + +/********************************************//** +@‚ OĂ΂ꂽƁAݎ̍߂BԂ̂fill_hosu_hist_hours ɂ̂܂ܓn + //. year_bcd Ȃ̂Ƃ₾... + ***********************************************/ +static u16 calc_hours_spend( u8 year ) +{ + u8 cal_log_latest_year = bcdtob( cal_log_latest.year_bcd ); + + // N̓ + if( cal_log_latest_year == year ) + { + if( now_longhour > last_hour_fny ) + { + return( now_longhour - last_hour_fny ); + } + else if( now_longhour == 0 && last_hour_fny != 0 ) + { + // N΂ŁAEzځBȂƍNŌɉZĂ܂B + return( 1 ); + } + else + { + return( 0 ); // ԑ(ƁA߂B@ǂȂĂmȂ) + } + } + else if( cal_log_latest_year == ( year -1 ) ) + { + // N܂łƂ + u16 temp = 365 * 24 - last_hour_fny + now_longhour; + if( is_firstyear(year) ) + { + temp += 24; + } + return( temp ); + } + else if( cal_log_latest_year < year ) + { + // Nu + return( PEDOMETER_LOG_SIZE +1 ); + } + else + { + // J_[߂Ȃ + // m[PAł悢cAslƂ킯ɂȂ + return( 0 ); + } +} diff --git a/snake_branches/2.35/pedo_lpf_coeff.c b/snake_branches/2.35/pedo_lpf_coeff.c new file mode 100644 index 0000000..877ef98 --- /dev/null +++ b/snake_branches/2.35/pedo_lpf_coeff.c @@ -0,0 +1,87 @@ +/********************************************//** + vŎgpALPF̃tB^W + $Id$ + ***********************************************/ + +#include "incs.h" + +// ========================================================= +#define TAP 64 +#define FIL_COEFF_QUANT 10 +const s8 lpf_coeff[]={ +/* +Window Function Algorithm LPF +Sampling Frequency = 100.0 +cutoff1 = 6.0000000 +Tap Count =64 +Kaiser Constant = 7.000000 +Quantized by 11 [bits] + */ +/* 0,// [0] + 0, + 0, + 0, + 0, + 0, + 0, + 0, +*/ + 1,// 8 + 2, + 2, + 3, + 3, + 2, + 0, + -2, + -5,// 16 + -9, + -13, + -16, + -16, + -13, + -6, + 4, + 18,// 24 + 37, + 56, + 77, + 95, + 110, + 119, + 122, + 119,// 32 + 110, + 95, + 77, + 56, + 37, + 18, + 4, + -6,// 40 + -13, + -16, + -16, + -13, + -9, + -5, + -2, + 0,// 48 + 2, + 3, + 3, + 2, + 2, + 1, +/* + 0, + 0,// 56 + 0, + 0, + 0, + 0, + 0, + 0, + 0 +*/ +}; diff --git a/snake_branches/2.35/pedo_lpf_coeff.h b/snake_branches/2.35/pedo_lpf_coeff.h new file mode 100644 index 0000000..f81d6c2 --- /dev/null +++ b/snake_branches/2.35/pedo_lpf_coeff.h @@ -0,0 +1,84 @@ +#ifndef _pedo_coeff_h_ +#define _pedo_coeff_h_ + +// ========================================================= +#define TAP 64 +#define FIL_COEFF_QUANT 10 +const s8 lpf_coeff[]={ +/* +Window Function Algorithm LPF +Sampling Frequency = 100.0 +cutoff1 = 6.0000000 +Tap Count =64 +Kaiser Constant = 7.000000 +Quantized by 11 [bits] + */ +/* 0,// [0] + 0, + 0, + 0, + 0, + 0, + 0, + 0, +*/ + 1,// 8 + 2, + 2, + 3, + 3, + 2, + 0, + -2, + -5,// 16 + -9, + -13, + -16, + -16, + -13, + -6, + 4, + 18,// 24 + 37, + 56, + 77, + 95, + 110, + 119, + 122, + 119,// 32 + 110, + 95, + 77, + 56, + 37, + 18, + 4, + -6,// 40 + -13, + -16, + -16, + -13, + -9, + -5, + -2, + 0,// 48 + 2, + 3, + 3, + 2, + 2, + 1, +/* + 0, + 0,// 56 + 0, + 0, + 0, + 0, + 0, + 0, + 0 +*/ +}; +#endif diff --git a/snake_branches/2.35/pedometer.h b/snake_branches/2.35/pedometer.h new file mode 100644 index 0000000..8760308 --- /dev/null +++ b/snake_branches/2.35/pedometer.h @@ -0,0 +1,36 @@ +#ifndef _pedo_ +#define _pedo_ + +#ifdef WIN32 +typedef unsigned char bit; +typedef unsigned char u8; +typedef unsigned short u16; + + +#endif + + +// ========================================================= +extern bit pedolog_read_msb; + + + +// ========================================================= +//void hosu_read_end( ); }N +#define hosu_read_end() pedolog_read_msb = 0 + +u8 hosu_read( ); +void hosu_increment_if_necessary(); +void fill_hosu_hist_hours( u16 ); +void clear_hosu_hist(); +void pedometer(); + + + +// ========================================================= +#define PEDOMETER_LOG_SIZE ( 24 * 7 ) + + + +// ========================================================= +#endif diff --git a/snake_branches/2.35/pm.c b/snake_branches/2.35/pm.c new file mode 100644 index 0000000..d4114d0 --- /dev/null +++ b/snake_branches/2.35/pm.c @@ -0,0 +1,1497 @@ +/* ======================================================== + PMIC + cJZ + nintendo + '08 Dec + + $Id: pm.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma nop + +#endif + +#include "incs.h" +#include "adc.h" +#include "led.h" +#include "pm.h" +#include "renge\renge.h" + +#include "batt_params.h" + +#include +#include "fsl_user.h" + +#include "vreg_twl.h" +#include "i2c_mcu.h" + +// ======================================================== +u8 raw_adc_temperature; +BT_VENDER battery_manufacturer = BT_VENDER_NOT_CHECKED; +static u8 ntr_pm_reg_shadow; // NTR PMIC WX^~[ +bit bt_authorized; // obep[^MρB[dJn +u8 chg_led_override; // A_v^ƂA[d邵ȂɊւ炸΂炭_ + +static u16 bt_volt16; + +static bit ntr_pm_bt_low_old; + +bit BT_IN_CHG_delayed_n; +bit temp_zone_charge_disable; // xŏ[d~鎞ɃqXeVXt邽 + +u8 pmic_version; +u8 mgic_version[2]; + +u8 pm_reg_bit_vddlcd; + +static bt_param_* p_bt_param; +extern const bt_param_ bt_param[]; + +bit pm_extdc_old; // OA_v^`FbNƂhĂH + +u8 pmreg_v_core; // SoC̃RAdݒBSNAKE(LAGER)ŕύX邽߁B + +// [d~x֌W +static u8 raw_temp_lh; +static u8 raw_temp_ll; +#define RAW_TEMP_HL 184 // 1 +#define RAW_TEMP_HH 189 // -1 +#define RAW_TEMP_LH_CTR 75 // 50 [degC] +#define RAW_TEMP_LL_CTR 61 // 59 +#define RAW_TEMP_LH_SNAKE 84 // 45 +#define RAW_TEMP_LL_SNAKE 68 // 54 + + +// ======================================================== +static void BT_model_detect(); +static void BT_mgic_quick_start(); +static void BT_mgic_init(); +static void bt_chk_temparature(); +static void bt_get_charge_status(); +static void bt_param_select(); +static void bt_batt_update_twl(); +static void bt_batt_update_ntr(); +static void update_chg_led(); + + +// bp[ +static err send_cmd_mgic_2B( u8 reg, u16 dat ); +static err read_mgic_2B( u8 reg, u8* dat ); +static err read_BT_SOC( u8* dest ); +static err read_BT_voltage( u8* dest ); +static u8 conv_ctr_bt_to_twl_bt(); + + + +// ======================================================== +#define swap_endian_16( x ) (unsigned int)(( x << 8 ) | ( x >> 8 )) + + + +// ======================================================== +const u8 BT_MANUF_BORDER[] = { + 5, 33, 79, 123, 158, 197, 233 + }; + + + +/********************************************//** + dr̊Ǘ + + ȉ̃s͎ɂőEĎ܂B + - PM_BT_AUTH AGPI in + - PM_CHARGE_n CCIC /CHG in + - PM_EXTDC_n /DOK INTP4 in + - PM_CHARGE_EN_n /CEN out + + ȉ͊̕֌W肻łʂ̂ƂŊĎĂ܂B + - LED Charge tsk_LED + - BT_TEMP,_P tsk_ADC + + PM_EXTDC͊荞݃Cɂ邩 + ***********************************************/ +#define INTERVAL_TSK_BATT 60 +// 100Ə[dG[ɂ܂_łȂ̂ + +/********************************************//** + d̊Ď + - A_v^̊Ď + - [dALEDXV + - cʎ擾ALEDXV + ***********************************************/ +void tsk_batt( ) +{ + static u8 task_interval; + + if( task_interval -- != 0 ) + { + return; + } + else + { + task_interval = (u8)( INTERVAL_TSK_BATT / SYS_INTERVAL_TICK ); + } + + // A_v^Xe[^XXV // + pm_chk_adapter(); + + // [d // + bt_chk_temparature(); // x`FbN + if( !temp_zone_charge_disable && bt_authorized && !PM_EXTDC_n ) + { + BT_CHG_ENABLE(); // x͈OKŏ[dĊJ + } + else + { + BT_CHG_DISABLE(); // x댯I@[d~ + } + + bt_get_charge_status(); // [d󋵃`FbN + update_chg_led(); // chg ledXV + + // drc // + BT_get_left(); +} + + +/********************************************//** + [dLEDXV + + - CCIC[dƂΓ_B + - łȂĂAA_v^h΂Ȃ5b_ + - Aw^drΉʼnR[d̎Aq[Y؂iMGICNAKjȂ + ***********************************************/ +static void update_chg_led() +{ + static bit temp_led_chg; // static ‚ȂƃRpCʂ炸 + + temp_led_chg = false; + + // A_v^‚ȂuԁA[dłb킴Ɠ_BdĂ邱Ƃ킩点邽߁B + if( chg_led_override != 0 ) + { + chg_led_override --; + temp_led_chg = true; + } + + // CCIC ͏[dƌĂ邩H + if( ! BT_IN_CHG_delayed_n // bt_get_charge_status()ōXV܂B + && ! PM_EXTDC_n ) + { + temp_led_chg = true; + } + + LED_CHARGE = temp_led_chg; + + // WX^̏[drbgLEDɓ + set_bit_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 +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[^ꎞۑ + iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam ); + + // 3. ꎞIOCVύX + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( p_bt_param->ocv )); // }WbNio[IȂ́B[J[w + + // 4. ꎞIRCOMPύX + send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, swap_endian_16( 0xFF00 ) ); + + // 5.[J[ʃp[^̃[h + { + u8 loop; + + // 16oCgƂɋ؂Ƃ̂Ɓ@imCY΍Ƃ񂾂ǁAӖ񂩁Hj + for( loop = 0; loop < 4; loop ++ ) + { + iic_mcu_set_wo_dma( ); + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_BT_PARAM + loop*16, 16, p_bt_param->mg_param + loop*16 ); + } + } + + // 6. 150msȏ҂ + wait_ms( 150 + 15 ); + + // 7. OCVɁuƂlv + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( p_bt_param->ocv ) ); // }WbNio[IȂ́B[J[w + + // 8. 150`600ms҂B600ms͌ + wait_ms( 150 + 15 ); + + // 9. SOCǂށBxt@Ĉ߁B + { + u8 temp; + temp = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC ); + + if(( p_bt_param->verify.low <= temp ) && ( temp <= p_bt_param->verify.hi )) + { + // JX^fOKI + }else{ + // s烊gĈH + // dbg_nop(); + } + } + + // 10.RCOMPOCV߂ + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam ); + + // 11. bN + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( 0x0000 ) ); // lock key +} + + + +extern u16 _dbg_rcomp; +/********************************************//** + raw_adc_temperatureɓĂlɕϊƂƂɁA + - WX^ɃZbg + - cICɃZbg + ***********************************************/ +task_status_immed tski_BT_temp_update( ) +{ + static u8 rawdat_old; + static s8 temperature; + s16 newrcomp; + static u8 heikinka; + +/* + T[~X^ - 10k_̎A + pxł͕̃J[uقڃjAŁA + c T[] = 81.48 - 111.97 x ratio + TDK T = 81.406 - 111.81 x ratio +*/ + + if( rawdat_old != raw_adc_temperature ) + { + if( heikinka < 40 ) + { + heikinka ++; + } + else + { + heikinka = 0; + rawdat_old = raw_adc_temperature; + // temperature = 81.45 - 111.9 * raw_adc_temperature/256.0; + // ꂼ256{Ă + temperature = (u8)(( 20851 - 112 * raw_adc_temperature + (256/2) ) /256); + vreg_ctr[VREG_C_BT_TEMP] = temperature; + + newrcomp = 0; + if( temperature > 20 ) + { + newrcomp = ( ( temperature - 20 ) * p_bt_param->rcomp.up )/256; + } + else + { + newrcomp = ( ( temperature - 20 ) * p_bt_param->rcomp.down )/256; + } + newrcomp = p_bt_param->rcomp.rcomp + newrcomp; + + if( newrcomp > 255 ) + { + newrcomp = 255; + } + if( newrcomp < 0 ) + { + newrcomp = 0; + } + _dbg_rcomp = newrcomp; + + if( send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, newrcomp ) == ERR_SUCCESS ) // swapsv + { + rawdat_old = raw_adc_temperature; + } + else + { + vreg_set_mgic_error; + } + } + } + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + drcICcʂ擾AWX^ɏށB + + @drcICȄȂǂ̎͂Ƃ肠c99%ƂB + + @@@@@@@@ status_1ŊmF”\BdɃ`FbNĂ܂B + + @BT_chk()sĂKv܂B + ***********************************************/ +void BT_get_left(){ + u8 temp[2]; + u8 reg_volatile_temp_bt_remain,reg_volatile_temp_bt_remain_fine; // I2C̔񓯊ǂݍ݂ł̂‚h~ Lbv̏ + u8 fuel_cap_by_voltage; // dŃLbvɎg + + // drc + if( system_status.model == MODEL_TS_BOARD + || system_status.model == MODEL_KUC_DEBUGGER ) + { + // TS & // + if( read_BT_SOC( temp ) == ERR_SUCCESS ) + { + reg_volatile_temp_bt_remain = temp[0]; + reg_volatile_temp_bt_remain_fine = temp[1]; + } + else + { + // G~[V@\ + // @œdf͕sւ邾낤 + reg_volatile_temp_bt_remain = 99; + reg_volatile_temp_bt_remain_fine = 0; + } + } + else + { + // @ // + // cʃ[h + if( read_BT_SOC( temp ) != ERR_SUCCESS ) + { + // cICNACK cobe͂ꂽ + vreg_set_mgic_error; + bt_authorized = false; + reg_volatile_temp_bt_remain = 0; + force_off = true; + } + else + { + u16 temp_u16; + + vreg_clear_mgic_error; + // obep[^̊֌WŃrbgVtgKv + temp_u16 = temp[0] * 256 + temp[1]; + temp_u16 /= p_bt_param->v_scale; + reg_volatile_temp_bt_remain = (u8)(( temp_u16 >> 8 ) & 0xFF ); + if( reg_volatile_temp_bt_remain == 0 ) + { + // 0%̎1.00%ɏグ + // [dJn΂炭͓drcʂ̂ + // 0%ɓBĂ܂Ƃ̂ + reg_volatile_temp_bt_remain = 1; + reg_volatile_temp_bt_remain_fine = 0; + } + else + { + reg_volatile_temp_bt_remain_fine = (u8)(temp_u16 & 0xFF); + } +#ifdef _DBG_BT_FULL_ + reg_volatile_temp_bt_remain = 100; + reg_volatile_temp_bt_remain_fine = 0; +#endif + } + } + + // drd + { + if( read_BT_voltage( temp ) != ERR_SUCCESS ) // 2byte read + { + temp[0] = (u8)( V_BT_4000MV / 256 ); // drdǂ߂Ȃ4000mVƂɂĂB + temp[1] = 0; + } + vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp[0]; + bt_volt16 = ( temp[0] * 256 + temp[1] ); + } + + + // dŃLbv...̏ + { + static u16 hysteresis; + + if( bt_volt16 > V_TH_30 ) + { + fuel_cap_by_voltage = 100; + hysteresis = 0; + } + else if( bt_volt16 - hysteresis > V_TH_LO ) // lqXeVXĂBǂނƂӁB + { + fuel_cap_by_voltage = 30; + hysteresis = 0; + } + else if( bt_volt16 > V_TH_EMPTY ) + { + fuel_cap_by_voltage = BATT_TH_LO; // + hysteresis = 500; + } + else if( bt_volt16 > V_TH_ZERO ) + { + fuel_cap_by_voltage = BATT_TH_EMPTY; + hysteresis = 500; + } + else if( bt_volt16 > V_TH_FORCE_OFF ) + { + fuel_cap_by_voltage = 0; + hysteresis = 500; + } + else + { + force_off = true; + hysteresis = 500; + } + } + + + // [diA_v^hĂĵɏ[dĂȂ + // AiȂƂjf̓drcʂ60%ȏiCCICoOABT_IN_CHG_delayed_nɐD荞ݍς݁j + // = [dBdrւĂMGIC100%ԂȂ + if( !BT_CHG_Ena_n && BT_IN_CHG_delayed_n ){ + reg_volatile_temp_bt_remain = 100; + reg_volatile_temp_bt_remain_fine = 0; + } + else + { // dł̃Lbv|邩H + if( fuel_cap_by_voltage < reg_volatile_temp_bt_remain ) + { + reg_volatile_temp_bt_remain = fuel_cap_by_voltage; + reg_volatile_temp_bt_remain_fine = 0; + } + } + + /* + \ɖȂdĂ炵̂ŃPAł悵 + if( system_status.taikendai_nbd && system_status.model != MODEL_TS_BOARD ) // dr[qɓd‚ȂĂĒlsȂߏ㏑B + { + reg_volatile_temp_bt_remain = 100; + } + */ + + vreg_ctr[ VREG_C_BT_REMAIN ] = reg_volatile_temp_bt_remain; + vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = reg_volatile_temp_bt_remain_fine; + + // twl̃WX^XV@(CTRɊ荞ݓOɍXVȂƊ荞݂̃^C~O܂Ȃ) + bt_batt_update_twl(); + + // cʂŊ荞݁B}ɌƔԂƂ // + { + static u8 bt_remain_old_ctr; + + if( bt_remain_old_ctr != reg_volatile_temp_bt_remain ) + // CTRɒʒm + { + if( (( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO ) && ( BATT_TH_LO < bt_remain_old_ctr ))|| + (( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_EMPTY ) && ( BATT_TH_EMPTY < bt_remain_old_ctr ))|| + (( vreg_ctr[ VREG_C_BT_REMAIN ] == 0 ) && ( bt_remain_old_ctr != 0 )) ) + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_REMAIN ); + } + } + bt_remain_old_ctr = vreg_ctr[ VREG_C_BT_REMAIN ]; + } + + // PMIC-NTRɓdrcʂĂ + bt_batt_update_ntr(); +} + + + +/********************************************//** + tn̓d + + @Xe[^XtO͂ɗĂĂ܂B + + @sԂ邵A + + NsłΓd + + ʂ̃^XNœd͊ĎĂāAXe[^XNA + ***********************************************/ +err PM_LCD_on( ) +{ + err rv = ERR_ERR; + + PM_VDDLCD_on( ); // CGS AMO ؂ւĂ܂ + + if( system_status.LCD_is_CGS == true ) + { + // CTR + wait_ms( DELAY_PM_TSS_50B_AND_TCOM ); + } + else + { + // SPFL/SNAKE ȂAt@XHV on Ԃɋ + wait_ms( 10 ); + 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_branches/2.35/pm.h b/snake_branches/2.35/pm.h new file mode 100644 index 0000000..b6cb8bc --- /dev/null +++ b/snake_branches/2.35/pm.h @@ -0,0 +1,220 @@ +#ifndef __PM__ +#define __PM__ + +// $Id: asdf$ + + +#define IIC_SLA_PMIC 0x84 +#define IIC_SLA_BT_GAUGE 0x6C + +#define VCOM_DEFAULT_T 92 +#define VCOM_DEFAULT_B 95 + + + +#define BATT_TH_LO 10 +#define BATT_TH_EMPTY 5 + +// dWX^ƒڔrłpɃItZbg +#define V_BT_4000MV (u16)( 4000 * 12.8 ) // dǂݏosp 4000mVݒ +#define V_TH_30 (u16)( 3300 * 12.8 ) // 30% +#define V_TH_LO (u16)( 3200 * 12.8 ) // 10% +#define V_TH_EMPTY (u16)( 3150 * 12.8 ) // 5% +#define V_TH_ZERO (u16)( 3100 * 12.8 ) // 0% +#define V_TH_FORCE_OFF (u16)( 2900 * 12.8 ) // 2.9V ŏIf + + +//========================================================= +#ifdef _WIN32 +#define LED_CHARGE mcuRegP[ _P2_4 ] +#else +#define LED_CHARGE P2.4 +#endif + + +//========================================================= +enum PMIC_REG_ADRS +{ + PM_REG_ADRS_VER = 0x00, // verinfo Ȃ + PM_REG_ADRS_VDD_SYS, // VXegpd + PM_REG_ADRS_VDD_LCD, // td + PM_REG_ADRS_CONT, // /RESET1, LoadSwitch + PM_REG_ADRS_BL, // obNCg on/off + PM_REG_ADRS_POW_SAVE, // ȓd͐ݒ + PM_REG_ADRS_POW_DAC1, + PM_REG_ADRS_POW_DAC2 +}; + +enum BT_GAUGE_REG_ADRS +{ + BT_GAUGE_REG_VCELL = 0x02, // ꂼ16rbĝ + BT_GAUGE_REG_SOC = 0x04, + BT_GAUGE_REG_MODE = 0x06, + BT_GAUGE_REG_VERSION = 0x08, + BT_GAUGE_REG_OCV = 0x0E, + BT_GAUGE_REG_RCOMP = 0x0C, + BT_GAUGE_REG_LOCK = 0x3E, + BT_GAUGE_REG_BT_PARAM = 0x40, + BT_GAUGE_REG_COMMAND = 0xFE +}; + + +typedef enum BT_VENDER +{ + BT_VENDER_MAXELL = 0, // V[g + BT_VENDER_1, // 120 + BT_VENDER_2, // 360 + BT_VENDER_3, // 750 + BT_VENDER_4, // 1.3k + BT_VENDER_PANA = 5, // 2.7k + BT_VENDER_6, // 8.2k + BT_VENDER_OPEN = 7, // open + BT_VENDER_NOT_CHECKED = 0xFF, +}BT_VENDER; + + + +enum NTR_PM_BT_STATUS{ + NTR_PM_BT_ENOUGH, + NTR_PM_BT_EMPTY, + NTR_PM_BT_NOT_INITIALIZED = 0xFF +}; + + + +//========================================================= +// CODECPMIC݊WX^ +#define CODEC_REG_PM 0x10 +#define CODEC_REG_BL 0x11 +#define CODEC_REG_BT 0x12 +//#define CODEC_REG_VOL 0x13 // ...sɂAadc.hŒ` + +// TWLSPIPMICɓR}h +#define REG_BIT_TWL_REQ_OFF_REQ ( 1 << 6 ) +#define REG_BIT_TWL_REQ_RST_REQ ( 1 << 0 ) +#define REG_BIT_TWL_REQ_BL ( 3 << 2 ) + + + +// 0x03 pw cnt3 +#define PM_REG_BIT_LDSW ( 1 << 0 ) +#define PM_REG_BIT_nRST1 ( 1 << 1 ) + +// 0x01 pw cnt1 +#define PM_REG_BIT_VDD_CTR 0x0F +#define PM_REG_BIT_VDD50A ( 1 << 4 ) + +// 0x02 pw cnt2 +#define PM_REG_BIT_VDDLCD_CGS 0x07 +#define PM_REG_BIT_VDDLCD_AMO 0x05 +#define PM_REG_BIT_LCD_VCS ( 0x01 << 4 ) +#define PM_REG_BIT_LCD_TCOM ( 0x01 << 3 ) + +// 0x04 bl cnt +#define PM_REG_BIT_BL_U 0x01 +#define PM_REG_BIT_BL_L 0x02 + + +// 0x05 pow save +#define PM_REG_BIT_VDD1P_1R15 bits8(0,0,0,0, 0,0,0,0) +#define PM_REG_BIT_VDD1P_1R05 bits8(0,0,0,0, 1,0,0,0) +#define PM_REG_BIT_VDD1P_1R00 bits8(0,0,0,1, 0,0,0,0) +#define PM_REG_BIT_VDD1P_0R90 bits8(0,0,1,0, 0,0,0,0) +#define PM_REG_BIT_VDD_AUTO bits8(0,0,0,0, 0,1,1,1) +#define PM_REG_BIT_VDD_PWM bits8(0,0,0,0, 0,0,0,0) + + +#define DELAY_PM_TW_PWUP 16 + 2 +#define DELAY_PM_TSS_50B_AND_TCOM 17 + 1 +#define DELAY_PM_5V_TO_TCOM 17 + 1 +#define DELAY_PM_TCOM_TO_VCS 3 +#define DELAY_PM_VCS_TO_BL ( 17 + 5 ) +#define DELAY_PM_LCD_OFF ( 50 + 1 ) + + +//========================================================= +extern u8 raw_adc_temperature; +extern BT_VENDER battery_manufacturer; +extern bit bt_force_update; + +extern u8 pmic_version; +extern u8 mgic_version[]; + +extern u8 pm_reg_bit_vddlcd; // At@XΉ(dV[PXႤ) + +extern u8 pmreg_v_core; // SoC̃RAdݒBSNAKE(LAGER)ŕύX邽߁B + +//========================================================= +err PM_sys_pow_on( ); +void PM_sys_pow_off( ); +//err PM_bt_auth( ); +void PM_LCD_vcom_set( ); + +err PM_LCD_on( ); +void PM_LCD_off( ); +err PM_BL_set( u8 ); + +void BT_chk(); +void BT_get_left(); +void pm_chk_adapter(); + +void codec_reg_init(); + +void set_vdd_voltages( enum family_ family ); + +void reset_release(); + +task_status_immed tski_BT_temp_update( ); +task_status_immed tski_vcom_set( ); +task_status_immed tski_PM_LCD_on(); +task_status_immed tski_PM_LCD_off(); +task_status_immed tski_PM_BL_set(); + + +err send_cmd_pmic( u8 reg, u8 dat ); +u8 read_pmic( u8 reg ); + + +#define PM_Chg_Stop() { BT_TEMP_P = 0; BT_CHG_DISABLE(); LED_CHARGE = 0; bt_authorized = false; } +// @ĂԑOɁA݉xĂKv܂B +#define PM_reset() ( send_cmd_pmic( PM_REG_ADRS_CONT, 0x00 ) ) + + +//========================================================= + + +// // +#define PM_LDSW_on() ( send_cmd_pmic( PM_REG_ADRS_CONT, PM_REG_BIT_LDSW )) +#define PM_LDSW_off() ( send_cmd_pmic( PM_REG_ADRS_CONT, 0 )) + + +// VXed // +#define PM_VDD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, PM_REG_BIT_VDD_CTR )) +#define PM_VDD50A_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, ( PM_REG_BIT_VDD_CTR | PM_REG_BIT_VDD50A ))) +#define PM_VDD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, 0 )) +#define PM_off() PM_VDD_off() + +// CPUd +#define PM_VDD_normMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, pmreg_v_core | PM_REG_BIT_VDD_PWM )) +#define PM_VDD_ecoMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_0R90 | PM_REG_BIT_VDD_AUTO )) + +// ق // +#define PM_reset_neg() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW | PM_REG_BIT_nRST1 ))) +#define PM_reset_ast() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW ))) +#define PM_chk_LDSW() ( read_pmic( PM_REG_ADRS_CONT ) & PM_REG_BIT_LDSW ) +// 1̂ƂAdon + +// tnd // +#define PM_VDDLCD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, pm_reg_bit_vddlcd )) +#define PM_TCOM_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_TCOM ))) +#define PM_VCS_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_VCS | PM_REG_BIT_LCD_TCOM ))) +#define PM_TCOM_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_VCS ))) +#define PM_TCOM_VCS_off() PM_VDDLCD_on() +#define PM_VDDLCD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, 0 ) ) + +#define PM_set_BL( dat ) ( send_cmd_pmic( PM_REG_ADRS_BL, dat ) ) +#define PM_set_adc1( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC1, dat ) ) +#define PM_set_adc2( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC2, dat ) ) + + +#endif // __PM__ diff --git a/snake_branches/2.35/pool.h b/snake_branches/2.35/pool.h new file mode 100644 index 0000000..81c8091 --- /dev/null +++ b/snake_branches/2.35/pool.h @@ -0,0 +1,24 @@ +#ifndef _pool_h_ +#define _pool_h_ + + +#include "pedometer.h" + +#define VREG_C_FREE_SIZE 200 + +// 󂢂Ă郁 +typedef struct _st_vreg_c_ext{ + unsigned short pedo_log[ PEDOMETER_LOG_SIZE ]; + unsigned char vreg_c_free[ VREG_C_FREE_SIZE ]; +}st_vreg_c_ext; + +typedef union _uni_pool +{ + st_vreg_c_ext vreg_c_ext; + u8 self_update_work[ 256 ]; // 256ȏ͂܂ƂߏłȂ +}uni_pool; + +extern uni_pool pool; + + +#endif diff --git a/snake_branches/2.35/reboot.c b/snake_branches/2.35/reboot.c new file mode 100644 index 0000000..53912a5 --- /dev/null +++ b/snake_branches/2.35/reboot.c @@ -0,0 +1,23 @@ +/********************************************************//* + ނ胊u[g + + t@CɃCCAZuƁA + ̃W[SœKȂȂ邽ߒǂo + $Id$ + **********************************************************/ +#pragma SFR + +#include "incs_loader.h" + + +void my_reboot(){ +#asm + + MOV PSW,#06H ; _~[PSWZbg + MOVW AX,#000d0h ; Zbg̃xN^l荞ł܂B + PUSH PSW + PUSH AX ; RETÎ߂̃X^bN + RETI ; ŃZbgExN^ɕ + +#endasm +} diff --git a/snake_branches/2.35/reboot.h b/snake_branches/2.35/reboot.h new file mode 100644 index 0000000..c20e11e --- /dev/null +++ b/snake_branches/2.35/reboot.h @@ -0,0 +1,6 @@ +#ifndef __MYREBOOT__ +#define __MYREBOOT__ + +void my_reboot(); + +#endif diff --git a/snake_branches/2.35/renge/renge.c b/snake_branches/2.35/renge/renge.c new file mode 100644 index 0000000..19bee20 --- /dev/null +++ b/snake_branches/2.35/renge/renge.c @@ -0,0 +1,313 @@ +#ifndef _WIN32 + +#pragma section @@CODE ROM_CODE +#pragma nop +#pragma ei +#pragma di +#pragma sfr + +#endif + + +#ifdef _WIN32 +typedef unsigned char bit; +typedef unsigned char u8; +#endif + +/****************************************************************************** + ^XNVXeH + ȂقǁAiTRONɂ̓RtBM[^͂B + ܂ + ctr_mcu_config.rb QƁB task_config.h쐬܂B + *****************************************************************************/ +#include "renge.h" +#include "renge_task_intval.h" +#include "renge_task_immediate.h" +#include "..\WDT.h" +#include "..\config.h" +#include "..\user_define.h" +#include "..\util_funcs.h" + + +#ifdef _WIN32 +#include "../sim/simOnWin.h" +#endif +//#define _renge_test_ + +#define true 1 +#define false 0 + +//****************************************************************************** +u8 renge_flg_interval; +bit renge_task_interval_run_force; +bit renge_task_immediate_not_empty; + + +#include "..\bsr_system.h" +extern system_status_ system_status; + + +//****************************************************************************** +static void renge_task_immed_init(); +static void renge_task_immed_del(); + + + +//****************************************************************************** +task_status_immed ( *tasks_immed[ TASK_IMMED_RUN_LIST_MAX ] )(); + + + +/****************************************************************************** + +E^XNVXe̓Ȉ +EC^[o^C} + *****************************************************************************/ +void renge_init(){ + renge_task_immed_init(); + /* + Cxg^C}̃ZbgȂ + RTC𗬗pĂ̂ŃRgAEg + #define renge_tick 19xxxxxxx [ms] + renge_interval_init(); RTC_init(); + */ +} + + + +/****************************************************************************** + VXe`bNi߂ + *****************************************************************************/ +/* +void renge_interval(){ +// RTCĂ +__interrupt void int_rtc_int(); +} +*/ + + + +/****************************************************************************** + RpCɌ܂ĂAC^[oÑ^XN + ̂ANƍ邩ȂB + *****************************************************************************/ +__callt err renge_task_interval_run(){ + u8 i; + + // C^[oN + DI_wt_chk(); + if(( renge_flg_interval != 0 ) || + ( renge_task_interval_run_force )) /// ȁc + { + renge_task_interval_run_force = false; // N^XNA荞ރ^XNŃtO‚Ȃ̂ + if( renge_flg_interval != 0 ) + { + renge_flg_interval --; + WDT_Restart( ); + } + EI(); + for( i = 0; i != TSK_LAST; i ++ ) + { + tasks[ i ](); + // N^XNԂɋ + renge_task_immed_run(); + } + } + EI(); + return( ERR_SUCCESS ); +} + + + +/***************************************************************************** + N^XN + + task_immed Ԃ֐B + VXetickA炩̊荞݁iI2CʐMȂǁj + X[v畜A^C~OŎs܂B + +Ԓl@TSKI_FINISHED@^XN폜 +@@@@ȊO ̃^C~Oł܂s + + *****************************************************************************/ + + +/************************************** + **************************************/ +void renge_task_immed_init(){ + u8 i; + + for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i++ ){ + tasks_immed[ i ] = TSK_IMM_EMPTY_; + } +} + + + +/************************************** + s^XN̓o^ + 荞݋֎~ 36us + **************************************/ +__callt err renge_task_immed_add( task_status_immed (*new_task)() ){ + u8 i; + + // Xg̋󂫂̐擪ɓo^ + // 폜΂̃^XŃA폜}[N(TSK_IMM_DELETED_)ƂȂA󂫂Ƃ͖Iɋʂ + // do^ + for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i ++ ) + { + DI_wt_chk(); + if( tasks_immed[ i ] == TSK_IMM_EMPTY_ ) + { + // 󂫂‚ + tasks_immed[ i ] = new_task; + EI(); + return( ERR_SUCCESS ); + } + else + { + // do^`FbN + /// ɂȂĂȂAOl߂ĂO + if( tasks_immed[ i ] == new_task ) + { + // do^͂Ȃ + EI(); + return( ERR_ERR ); + } + } + EI(); + } + // ^XNo^(͂ + return( ERR_ERR ); +} + + + +/************************************** + s^XN̎s + **************************************/ +__callt err renge_task_immed_run(){ + u8 list_id; + +// while( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ ) + if( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ ) + { + DI_wt_chk(); + for( list_id = 0; list_id < TASK_IMMED_RUN_LIST_MAX; list_id ++ ){ + if( tasks_immed[ list_id ] == TSK_IMM_EMPTY_ ){ + // Xg + EI(); + break; + } +#ifdef _renge_test_ + else if( tasks_immed[ list_id ] == TSK_IMM_DELETED_ ) + { + EI(); + NOP(); + // ^XNǗ̕s + // ݂Ȃ^XNs悤Ƃ + // ^XN̍폜̏܂ + // \Ȃ^C~O immed_run Ă΂ꂽ + } +#endif + else + { + u8 rv; + + EI(); + rv = tasks_immed[ list_id ](); // ^XNs + if( rv == ERR_SUCCESS ) + { + tasks_immed[ list_id ] = TSK_IMM_DELETED_; + } + // ǂ^C~Oœ^XN̓o^ƍ̂DIԂłė鎖 + } + DI_wt_chk(); + } + // Xg̃^XNʂs + + // ^XN폜 // + { + u8 i = 0; // Xg̕בւ + u8 j = 1; + + // K i < jAj < TASK_IMMED_RUN_LIST_MAX (łȂƃ^XNӂ) + while( 1 ) + { + if( tasks_immed[ i ] == TSK_IMM_EMPTY_ ) + { + // Olߊ && Xg + // break; + goto imm_list_sort_fin; + } + else if( tasks_immed[ i ] == TSK_IMM_DELETED_ ) + { + for( ; j < TASK_IMMED_RUN_LIST_MAX; j++ ) + { + if( tasks_immed[ j ] == TSK_IMM_DELETED_ ) + { + // ׁiHj폜Ώۂ + // next j + } + else + { + DI_wt_chk(); + if( tasks_immed[ j ] == TSK_IMM_EMPTY_ ) + { + do{ + j --; + tasks_immed[ j ] = TSK_IMM_EMPTY_; + // XgOlߊ + }while( i < j ); + EI(); + goto imm_list_sort_fin; + } + else + { + // Ol߂ׂ^XN‚ + tasks_immed[ i ] = tasks_immed[ j ]; + tasks_immed[ j ] = TSK_IMM_DELETED_; + i ++; + EI(); + } + } + } + } + else + { + // ̃^XNAؗ + } + i ++; + } + } + } + +imm_list_sort_fin: + // ܂łŊSɑOl߂Ă +#ifdef _renge_test_ + /// ق? + { + u8 a,b; + + a = 0; + for( b = 0 ; b < TASK_IMMED_RUN_LIST_MAX; b++ ) + { + if( tasks_immed[ b ] == TSK_IMM_EMPTY_ ) + { + a = 1; + } + else + { + if( a != 0 ) + { + NOP(); // EMPTYɃ^XNdeletedL + } + } + } + } +#else + NOP(); // Ȃ񂩖ƃJ{ +#endif +// } + return( ERR_SUCCESS ); +} diff --git a/snake_branches/2.35/renge/renge.h b/snake_branches/2.35/renge/renge.h new file mode 100644 index 0000000..9c7b2e4 --- /dev/null +++ b/snake_branches/2.35/renge/renge.h @@ -0,0 +1,26 @@ +#ifndef __renge__ +#define __renge__ + +//****************************************************************************** + + + +//****************************************************************************** +#include "renge_defs.h" +#include "renge_task_immediate.h" +// #include "renge_task_interval_run.h" // O狭N֎~I + +//****************************************************************************** +void renge_init(); +void renge_task_immed_init(); +__callt err renge_task_immed_run(); +__callt err renge_task_immed_add( task_status_immed (*p_task_func)() ); +// static err renge_task_immed_del( u8 ); + + +//****************************************************************************** +__callt err renge_task_interval_run(); +extern u8 renge_flg_interval; +extern bit renge_task_interval_run_force; // ^XNstO + +#endif diff --git a/snake_branches/2.35/renge/renge_defs.h b/snake_branches/2.35/renge/renge_defs.h new file mode 100644 index 0000000..03c98a6 --- /dev/null +++ b/snake_branches/2.35/renge/renge_defs.h @@ -0,0 +1,55 @@ +#ifndef __renge_defs__ +#define __renge_defs__ +/****************************************************************************** + Renge Ver.0 (2009/04/09) + 2009- 7k4jhl R.Fujita @ RED.nintendo + + OSɂ͂قljAȈՓIȃ^XNVXeB + Range Typo ł͂ȂłBQłB + + Ȃ Q ͑̂œ{ QQ + ǖɗ–𑐂łB + 傫ĂˁI + ******************************************************************************/ + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef signed short s16; + + +// ************************************ +#define SYS_INTERVAL_TICK 1.953 + + + +// ************************************ +typedef enum _ERR +{ + ERR_SUCCESS = 0, + ERR_ERR +}err; + + +typedef enum _IMMED_TASK_ERR +{ + TSKI_FINISHED = 0, + TSKI_CONTINUE +}IMMED_TASK_ERR; + + + +/************************************** + C^[oN + *************************************/ +typedef void task_status; + + +/************************************** + Ñ^XNXg + p~ɂȂ邩Ȃ + *************************************/ +typedef IMMED_TASK_ERR task_status_immed; + + +#endif diff --git a/snake_branches/2.35/renge/renge_task_config.rb b/snake_branches/2.35/renge/renge_task_config.rb new file mode 100644 index 0000000..c2de509 --- /dev/null +++ b/snake_branches/2.35/renge/renge_task_config.rb @@ -0,0 +1,59 @@ +#!/usr/bin/ruby -Ks + +tasklist = Array.new + + +if( ARGV[0] == nil ) + printf( "t@C renge_tasks.txt gp܂" ) + datfile = "renge_tasks.txt" +else + datfile = ARGV[0] +end + +if( !File.exist?( datfile ) ) + printf("ݒt@C‚܂B") + exit( 1 ) +end + + +setting = File.open( datfile ) + +setting.each{|dat| + dat.chomp! + if( dat != nil ) + tasklist << dat + end +} + +tasklist.each{|dat| + printf( "\n%s" , dat ) +} +printf( "\n----------\n^XN %d \n", tasklist.size ) + + +#----- ÓI^XN̗ ------------------------------------------------------- +conf = File.new( "renge_task_intval.h", "w+" ) + +conf << "/*XNvgɂ鎩łB蓮ŏȂ悢ł*/\n\n" +conf << "#ifndef __renge_task__\n#define __renge_task__\n\n" +conf << "#include \"renge_defs.h\"\n\n" + +conf << "enum {\n " +tasklist.each{|dat| + conf << "TSK_" << dat.upcase << ", " +} +conf << "TSK_LAST \n };\n\n" + + +tasklist.each{|dat| + conf << "extern void tsk_" << dat << "();\n" +} +conf << "\n" + +conf << "const void ( *tasks[ TSK_LAST ] )() = {\n" +tasklist.each{|dat| + conf << " tsk_" << dat << ",\n" +} +conf << " };\n" + +conf << "\n#endif\n" diff --git a/snake_branches/2.35/renge/renge_task_immediate.h b/snake_branches/2.35/renge/renge_task_immediate.h new file mode 100644 index 0000000..9ac3bd2 --- /dev/null +++ b/snake_branches/2.35/renge/renge_task_immediate.h @@ -0,0 +1,25 @@ +#ifndef __tasks__ +#define __tasks__ + +#include "renge_defs.h" + +// ************************************* +#define TASK_IMMED_RUN_LIST_MAX 10 + + +extern task_status_immed tski_do_command0( ); +extern task_status_immed tski_ntr_pmic_comm(); +extern task_status_immed tski_acc_read(); +extern task_status_immed tski_acc_write(); +//extern task_status_immed tski_acc_setup(); // accero.h +extern task_status_immed tski_mcu_reset(); +extern task_status_immed tski_vol_update(); + + +// ************************************* +#define TSK_IMM_EMPTY_ ( void * )( 0x0000 ) +#define TSK_IMM_DELETED_ ( void * )( 0x0001 ) + + + +#endif diff --git a/snake_branches/2.35/renge/renge_task_intval.h b/snake_branches/2.35/renge/renge_task_intval.h new file mode 100644 index 0000000..9b0d9ea --- /dev/null +++ b/snake_branches/2.35/renge/renge_task_intval.h @@ -0,0 +1,37 @@ +/*XNvgɂ鎩łB蓮ŏȂ悢ł*/ + +#ifndef __renge_task__ +#define __renge_task__ + +#include "renge_defs.h" + +enum TSK +{ + TSK_SW, TSK_ADC, TSK_BATT, TSK_LED_POW, TSK_LED_WIFI, TSK_LED_NOTIFY, TSK_LED_CAM, TSK_MISC, TSK_STATUS, TSK_SYS, TSK_LAST + }; + +extern void tsk_sw(); +extern void tsk_adc(); +extern void tsk_batt(); +extern void tsk_led_pow(); +extern void tsk_led_wifi(); +extern void tsk_led_notify(); +extern void tsk_led_cam(); +extern void tsk_misc(); +extern void tsk_status(); +extern void tsk_sys(); + +const void ( *tasks[ TSK_LAST ] )() = { + tsk_sw, + tsk_adc, + tsk_batt, + tsk_led_pow, + tsk_led_wifi, + tsk_led_notify, + tsk_led_cam, + tsk_misc, + tsk_status, + tsk_sys, + }; + +#endif diff --git a/snake_branches/2.35/renge/renge_tasks.txt b/snake_branches/2.35/renge/renge_tasks.txt new file mode 100644 index 0000000..73af545 --- /dev/null +++ b/snake_branches/2.35/renge/renge_tasks.txt @@ -0,0 +1,11 @@ +sw +adc +batt +led_pow +led_wifi +led_notify +led_cam +misc +status +debug +sys diff --git a/snake_branches/2.35/rtc.c b/snake_branches/2.35/rtc.c new file mode 100644 index 0000000..dd2d1a9 --- /dev/null +++ b/snake_branches/2.35/rtc.c @@ -0,0 +1,182 @@ +/* ======================================================== + RTC + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma sfr +#pragma inline + +#endif + +#include "incs.h" + + +#define RTC_DATA_SIZE 7 +// ======================================================== +static u8 rtc_work[RTC_DATA_SIZE]; +static bit rtc_lock; +static bit rtc_dirty; +bit rtc_alarm_dirty; + + +/********************************************//** + ytF̏ + + WX^̓drrbg̃Zbg + ***********************************************/ +void RTC_init( void ) +{ + + if( !RTCEN ) // rbgĂ烊u[g + { + RTCEN = 1; // W[ON + + // RTCݒ + RTCC0 = bits8(0,0,0,0, 1,0,0,0); /* ~A24ԐA32kóu܂ȂvA荞݂Ȃ */ + // (RTCE 0 RCLOE1 RCLOE0 AMPM CT2 CT1 CT0) + RTCC1 = bits8(1,1,0,0, 0,0,0,0); /* A[荞ݗLJn */ + // (WALE WALIE 0 WAFG RIFG 0 RWST RWAIT) + RTCC2 = bits8(1,0,0,0, 0,0,0,0); /* C^[o:32k/2^6=2msARTCDIVo͂Ȃ */ + // (RINTE RCLOE2 RCKDIV 0 0 ICT2 ICT1 ICT0) + + HOUR = 0x00; + MIN = 0x00; + SEC = 0x00; + MONTH = 0x01; + DAY = 0x01; + WEEK = 0x01; // Mon + YEAR = 0x01; + + ALARMWW = 0x7F; + + vreg_ctr[VREG_C_MCU_STATUS] |= REG_BIT_RTC_BLACKOUT; + } + // 荞ݐݒ + RTCIF = 0; + RTCIIF = 0; + RTCMK = 1; /* 荞()֎~ */ + RTCIMK = 0; /* 荞(A[&C^[o) */ + + RTCE = 1; /* Jn */ + + RWAIT = 1; + while( !RWST ) + {;} + RWAIT = 0; + + rtc_lock = false; + rtc_dirty = false; + rtc_alarm_dirty = false; +} + + + +/********************************************//** + RTC A[荞 + ***********************************************/ +__interrupt void int_rtc( ) +{ + RWAIT = 1; + while( !RWST ) + {;} + // tw + if( ( vreg_ctr[VREG_C_RTC_ALARM_DAY] == DAY ) + && ( vreg_ctr[VREG_C_RTC_ALARM_MONTH] == MONTH ) + && ( vreg_ctr[VREG_C_RTC_ALARM_YEAR] == YEAR ) ) + { + set_irq( VREG_C_IRQ1, REG_BIT_RTC_ALARM ); + } + RWAIT = 0; +} + + + +/********************************************//** + RTC ̃[h + + WX^́Asec,min,hour,week,day,month,year ̏ + ***********************************************/ +void rtc_buf_refresh( ) +{ + if( !rtc_lock ) + { + rtc_lock = true; + RWAIT = 1; + while( !RWST ) + {;} + + memcpy( &vreg_ctr[VREG_C_RTC_SEC], &SEC, RTC_DATA_SIZE ); + RWAIT = 0; +// renge_task_immed_add( tski_rtc_close ); + } +} + + + +/********************************************//** + RTC ̃Cg + + set_rtc_close Ƒ΂ŎgĉB + + ‚̓obt@ɃRs[邾ŁA + ۂRTCɃZbĝset_rtc_close()łB + ***********************************************/ +void set_rtc( u8 adrs, u8 data ) +{ + if( !rtc_dirty ) + { + rtc_dirty = true; + memcpy( rtc_work, &SEC, RTC_DATA_SIZE ); +// renge_task_immed_add( tski_rtc_close ); // I2CIɍs + } + rtc_work[adrs] = data; +} + + + +/********************************************//** + KvȂ΁ARTCWX^̍XV + ***********************************************/ +// task_status_immed tski_rtc_close(){ +void rtc_unlock( ) +{ + // [hbN + rtc_lock = false; + + // CgbN + if( rtc_dirty ) + { + rtc_dirty = false; + RWAIT = 1; + while( !RWST ) + {;} + memcpy( &SEC, rtc_work, RTC_DATA_SIZE ); + RWAIT = 0; + } + + // A[Zbg + if( rtc_alarm_dirty ) + { + rtc_alarm_dirty = false; + WALE = 0; + ALARMWM = vreg_ctr[VREG_C_RTC_ALARM_MIN]; + ALARMWH = vreg_ctr[VREG_C_RTC_ALARM_HOUR]; + WALE = 1; + } +} + + + + +/********************************************//** + RTC VXe`bN^C}荞݃xN^ + + 2^6/fXTi1.953125 msj + ***********************************************/ +__interrupt void int_rtc_int( ) +{ +// renge_flg_interval ++; // CNg/fNg߂ĝ DI()sv + renge_flg_interval = 1; // set1߂ĝ DI()sv +} + diff --git a/snake_branches/2.35/rtc.h b/snake_branches/2.35/rtc.h new file mode 100644 index 0000000..a203e83 --- /dev/null +++ b/snake_branches/2.35/rtc.h @@ -0,0 +1,24 @@ +#ifndef __rtc_h__ +#define __rtc_h__ + +// $Id: asdf$ + + +void RTC_init( void ); +void rtc_buf_refresh( ); +void set_rtc( u8 adrs, u8 data ); + +//task_status_immed tski_rtc_close(); +void rtc_unlock( ); + +// ------------------------------------ +#define RTC_32k_on() { /*RCLOE2 = 0;*/ RCLOE0 = 1; /*P1.2 = 0;*/ PM1.2 = 0; } +#define RTC_32k_off() { PM1.2 = 0; RCLOE0 = 0; } +#define RTC_32k_HI_Z() { PM1.2 = 1; } + + +// ------------------------------------ +extern bit rtc_alarm_dirty; + + +#endif diff --git a/snake_branches/2.35/self_flash.c b/snake_branches/2.35/self_flash.c new file mode 100644 index 0000000..a662d07 --- /dev/null +++ b/snake_branches/2.35/self_flash.c @@ -0,0 +1,635 @@ +/* ======================================================== + ȃAbvf[^ + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt + +#endif + +#include "incs_loader.h" + +#include +#include "fsl_user.h" +#include "i2c_ctr.h" +#include "i2c_mcu.h" + +#include "pool.h" +#include "magic.h" + +#include "pm.h" +#include "WDT.h" +#include "util_funcs.h" + + +// ======================================================== +const u8 fsl_fx_MHz_u08 = 8; +const u8 fsl_low_voltage_u08 = 1; + + +// ȃtbVp[^ +#define SAM_BLOCK_SIZE 1024 + // 256oCgȏ͂܂Ƃ߂Ă܂B +#define SELF_UPDATE_BUFF_SIZE 256 +#define SELF_UPDATE_SPLIT_WRITE_NUM ( SAM_BLOCK_SIZE / SELF_UPDATE_BUFF_SIZE ) +#define SAM_WORD_SIZE 4 + +// ubNԍi1ubN1kBj +#define INACTIVE_BOOTSECT_TOP 4 +#define FIRM_TOP 8 +#define FIRM_SIZE 12 +#define ALTERNATE_FIRMTOP 20 + + +#ifdef _MCU_BSR_ +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICAPR0 IICAPR10 +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR1 IICAPR11 +#define IICCTL0 IICCTL01 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#endif + +#ifndef _WIN32 +#define LED_POW1 P4.2 +#define LED_PM_POW1 PM4.2 +#else +#define LED_POW1 mcuRegP[ _P4_2 ] +#define LED_PM_POW1 mcuRegPM[ _P4_2 ] +#endif + +// ======================================================== +static void FSL_Open( void ); +static void FSL_Close( void ); +void firm_restore( ); + +static err my_FSL_Init(); +static err firm_duplicate( u8 block_src, u8 block_dest ); + +#ifdef _DBG_LED_PRINT_ +void alert( u8 ); +void led_print( u8 ); +#else +# define alert( x ) ; +# define led_print( x ) ; +#endif + + +// ======================================================== +extern uni_pool pool; + + +// 0.Dȍ~ VAbvf[^ +// Vt@[͑vH +#define N_MGC_L 0x1FF6 +#define N_MGC_T 0x4FF6 + + + +/********************************************//** + I2CŎMāA + + ݁A + + `FbNOK@@Vt@[ɐ؂ւčċN + + @@@@NG@@ijt@[ɖ߂čċN + + i̊֐͖߂܂j + ***********************************************/ +void firm_update( ) +{ + u8 target_block; + u8 split_write_count; // ubNւ܂܏ރJE^ + + // ւO ///////////////////////////////////// + my_FSL_Init(); + + /* t@[̃obNAbv + JnAhXAݐ̐擪hubNԍh (TCY FIRM_SIZE) + 0x2000 - 0x4FFF + 0x5000 - 0x7FFF (ubN 20 - 31) ɃRs[ + */ + firm_duplicate( FIRM_TOP, + ALTERNATE_FIRMTOP ); + + // SubN폜 ///////////////////////////////////// + // df𔻒肷邽߁AŏɑSNX^ + //iVt@[ƂɎcĂAȑÕt@[̃tb^j + for( target_block = INACTIVE_BOOTSECT_TOP; + target_block < ALTERNATE_FIRMTOP; + target_block ++ ) + { + FSL_Erase( target_block ); + } + + + // ւ /////////////////////////////////////////// + // XgbvRfBV܂ő + // IAX^[gAbv[`ɔ + for( target_block = INACTIVE_BOOTSECT_TOP; + target_block < ALTERNATE_FIRMTOP; + target_block ++ ) + { + u8 my_spd; + +/* łɏĂBłȂƒfꂽƂIĂ邩ʏoȂ +// // Vt@[̈폜 +// FSL_Erase( target_block ); +*/ + // + for( split_write_count = 0; + split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; + split_write_count ++ ) + { + u8* p_buffer = &pool.self_update_work[0]; + u16 buff_written_size = 0; + + WDT_Restart( ); + + // I2C珑݃f[^obt@ɂ߂ + do + { + while( !IICAIF && !SPD ) + {;} + my_spd = SPD; + IICAIF = 0; + *p_buffer = IICA; + WREL = 1; + p_buffer ++; + buff_written_size ++; + } + while( ( buff_written_size != SELF_UPDATE_BUFF_SIZE ) + && !SPD ); + + my_spd += SPD; + + // + // ŌゾƁAS~pfBO邪ʂɂ܂Ȃ + if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE + + split_write_count * SELF_UPDATE_BUFF_SIZE ), + ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ) + + != FSL_OK ) + { + alert(1); + // ݌̃`FbNG[ + // XgA + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // Zbg + // FSL_SwapBootCluster( ); // u[gXbvuɁvċNďoȂ炵 + // ߂ĂȂ // + } + + if( my_spd != 0 ) + { + break; + } + } + + // 1ubN݊Bxt@Cs + if( FSL_IVerify( target_block ) != FSL_OK ){ + alert(2); + // ēx xt@CJԂ_ł... /// ďׂ݂H + // XgA + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // Zbg + // FSL_SwapBootCluster( ); // u[gXbvuɁvċNďoȂ炵 + // ߂ĂȂ // + } + + if( my_spd != 0 ) + { + break; + } + } + + LREL = 1; + + // 񂾃t@[̃`FbN // + { + u8 i; + u8 comp = 0; + + // [_[̃}WbNƁA{̖̃}WbN͓mF + for( i = 0; i < sizeof( __TIME__ ); i++ ) + { + comp += (u8)(( (*( __far u8 * ) ( N_MGC_L + i )) == (*( u8 * ) ( N_MGC_T + i ) )) ? 0 : 1); + } + if( *( __far u8 * )( N_MGC_L +2 ) != ':' ) // ς̂܂ + { + comp ++; + } + + if( comp == 0 ) + { + // OK! + FSL_InvertBootFlag( ); + FSL_SwapBootCluster( ); // ZbgɓBFSL_Close͕sv + } + else + { + // f[^(}WbNio[ĂȂ)G[ + // XgA + alert(3); + + firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ); + FSL_ForceReset(); // Zbg + // FSL_SwapBootCluster( ); // u[gXbvuɁvċNďoȂ炵 + } + // ߂ĂȂ // + } +} + + + + +/********************************************//** +t@[obNAbv̈悩烊XgA܂B + +`FbNAŌ̍ŌŃu[gXbv̂ŁA +ł̓u[gXbv͕svłB + ***********************************************/ +void firm_restore( ) +{ + DBG_LED_on; + LED_PM_POW1 = 0; + + // obNAbv͐H // + { + u16 i; + u8 comp = 0; + + for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 炵 + { + comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_HEAD_BKUP + i ) ) ? 0 : 1; + comp += ( *( u8 * )( MGC_HEAD_BKUP + i ) == *( u8 * )( MGC_FOOT_BKUP + i ) ) ? 0 : 1; + } + if( *( u8 * )( MGC_FOOT_BKUP ) == 0xFF ) + { + comp ++; + } + + if( comp != 0 ) + { + // obNAbv̈ꂽ... + comp = 0; + + // 3.3VオȂƍ + EI( ); + iic_mcu_start( ); + RESET2_ast; + FCRAM_RST_ast; + GYRO_DISABLE(); + PM_LDSW_on(); + wait_ms( 1 + DELAY_PM_TW_PWUP ); + PM_VDD_on( ); + + while(1) + { + WDT_Restart(); + + { + // LED sRsR + comp++; + LED_POW1 = ( comp == 1 || comp == 3 )? 1: 0; + if( comp == 8 ) + { + comp = 0; + } + } + + { + // d{^œdoff + static u8 sw_hold_count; + + if( !SW_POW_n_RAW ) + { + sw_hold_count++; + } + else + { + sw_hold_count = 0; + } + + if( sw_hold_count > 16 ) + { + sw_hold_count = 0; + // doff + PM_LDSW_off( ); + + // pwsw҂ŐQ + KRM = ( KR_SW_POW ); // Mask ł͂ȂAMode + MK0 = 0xFFFF; + MK1 = ~( INT_MSK1_KR ); + MK2L = 0xFF; + + // PU5 ̂܂ + PU7 = bits8(0,0,0,0, 1,0,0,0); // PWSWI + PU20 = bits8(0,0,0,0, 0,0,0,0); // SW_HOME ~ + + STOP( ); + +// mcu_wdt_reset; // [v̂͂悭ȂƎv + +// while(1){ +// NOP(); // Ȃ +// } + } + } + + // EFCg + for( i = 1; i != 0; i++ ) + { + NOP(); + NOP(); + NOP(); + NOP(); + } + } + } + } + + // else{ // obNAbv͐Ă + + while( my_FSL_Init() != ERR_SUCCESS ){ // FSLs悤Ȃ~Ȃ... + // todo gC񐔏H + alert(1); + } + + /* t@[̃XgA + 0x4800 - 0x7FFF (ubN 18 - 27) + 0x2000 - 0x47FF (ubN 8 - 17) փRs[ + */ + if( firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ) != ERR_SUCCESS ) + { + alert(2); + } + DBG_LED_off; + + // todo XgAsALEDƂāAT[rXɂĂ炤H + + FSL_ForceReset(); // ZbgA߂ĂȂ +} + + + +/********************************************//** +tbV̏̂߂̑O + ***********************************************/ +static void FSL_Open( void ) +{ + /* save the configuration of the interrupt controller and set */ +#ifdef FSL_INT_BACKUP + fsl_MK0L_bak_u08 = MK0L; /* if (interrupt backup required) */ + fsl_MK0H_bak_u08 = MK0H; /* { */ + fsl_MK1L_bak_u08 = MK1L; /* */ + fsl_MK1H_bak_u08 = MK1H; /* save interrupt controller */ + fsl_MK2L_bak_u08 = MK2L; /* configuration */ + fsl_MK2H_bak_u08 = MK2H; /* */ + MK0L = FSL_MK0L_MASK; /* */ + MK0H = FSL_MK0H_MASK; /* */ + MK1L = FSL_MK1L_MASK; /* prepare interrupt controller */ + MK1H = FSL_MK1H_MASK; /* for selfprogramming */ + MK2L = FSL_MK2L_MASK; /* */ + MK2H = FSL_MK2H_MASK; /* } */ +#endif + + while( DST1 ){;} // DMA~ + DEN1 = 0; + + MK0 = 0xFFFF; + MK1 = 0xFFFF; + MK2 = 0xFFFF; +/* + LVIM = bits8(0,0,0,0, 0,0,1,0); + LVIS = bits8(0,0,0,0, 1,0,0,0); + LVIM = bits8(1,0,0,0, 0,0,1,0); +*/ + FSL_FLMD0_HIGH; // tbVւ +} + + + +/********************************************//** +tbV̏I + ***********************************************/ +static void FSL_Close( void ) +{ + // nH + + FSL_FLMD0_LOW; // tbVCgveNg + +#ifdef FSL_INT_BACKUP + MK0L = fsl_MK0L_bak_u08; /* do{ */ + MK0H = fsl_MK0H_bak_u08; /* restore interrupt controller */ + MK1L = fsl_MK1L_bak_u08; /* configuration */ + MK1H = fsl_MK1H_bak_u08; /* */ + MK2L = fsl_MK2L_bak_u08; /* */ + MK2H = fsl_MK2H_bak_u08; /* } */ +#endif +} + + + +/********************************************//** +@}CRŃt@[Rs[܂B + + __far u8 * p_rom Rs[̐擪AhX + + block_dest Rs[̐擪ubN + + Rs[ɏ悤my_FSL_Init炩ߎsKv܂B + ***********************************************/ +static err firm_duplicate( u8 block_src, + u8 block_dest ) +{ + u8 target_block; + u8 split_write_count; // ubNւ܂܏ރJE^ + __far u8* p_src = ( __far u8* )( block_src * 0x400 ); + u8 retry_error; + + led_print(1); + + // ݐubN̐JԂ + for( target_block = block_dest; + target_block < ( block_dest + FIRM_SIZE ); + target_block ++ ) + { + led_print(2); + WDT_Restart( ); + // ubN + retry_error = 5 + 1; + while( FSL_BlankCheck( target_block ) != FSL_OK ) + { + led_print(3); + FSL_Erase( target_block ); + if( -- retry_error == 0 ) + { + // tbVH + FSL_Close( ); + return ( ERR_ERR ); // ZbgA݂@ǂȂ邩m + } + } + + led_print(4); + // ݕJԂ + for( split_write_count = 0; + split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; + split_write_count ++ ) + { + u16 buff_written_size; + u8* p_buff; + + // ݃f[^obt@ɂ߂ + buff_written_size = 0; + p_buff = &pool.self_update_work[0]; + do + { + *p_buff = *p_src; + p_src ++; + p_buff ++; + buff_written_size ++; + } + while( buff_written_size != SELF_UPDATE_BUFF_SIZE ); + + // + if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE + + split_write_count * SELF_UPDATE_BUFF_SIZE ), + ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ) + != FSL_OK ) + { + // Jo̓u[g // + FSL_Close( ); + led_print(5); +// while(1){} + return ( ERR_ERR ); + } + } + led_print(6); + + // 1ubN݊Bd`FbNs + while( FSL_IVerify( target_block ) != FSL_OK ) + { + // Jo̓u[g // + led_print(7); + return ( ERR_ERR ); + } + } + return( ERR_SUCCESS ); + +} + + + +/********************************************//** +ƔœtbV̏ + ***********************************************/ +static err my_FSL_Init() +{ + u8 rv; + + RTCE = 0; + + // ւO // + DI( ); + FSL_Open( ); // 荞݋֎~Ȃ + + FSL_Init( &pool.self_update_work[0] ); // CuB荞ݒfl + rv = FSL_ModeCheck( ); // CgveNg`FbNBs邱Ƃl + + return( (err)rv ); +} + + +/********************************************//** +MCUZbg + +system_status.reboot ܂B + ***********************************************/ +task_status_immed tski_mcu_reset() +{ + // ʂɍċN + my_FSL_Init(); + + FSL_ForceReset(); // Zbg + FSL_Close( ); + + // یH // + mcu_wdt_reset; + return( ERR_SUCCESS ); // no reach +} + + + +/********************************************//** +ɃG[ۂLED_łăG[ʒm + +l悤ł͂ȂAIVȂǂŃpX`FbN + +fobKgȂԂȂ̂ LEDprintf fobÔ߁B + ***********************************************/ +#ifdef _DBG_LED_PRINT_ +// P1.5 = led_pow_red_old +void alert( u8 num ) +{ + u8 i; + + while(1) + { + WDT_Restart(); + LED_POW1 = 1; + for( i = 0; i < num; i++ ) + { + DBG_LED_on; + DBG_LED_off; + } + LED_POW1 = 0; + } +} + + +/********************************************//** +ɃG[ۂLED_łăG[ʒmiQj + +l悤ł͂ȂAIVȂǂŃpX`FbN + +fobKgȂԂȂ̂ LEDprintf fobÔ߁B + ***********************************************/ +void led_print( u8 num ) +{ + u8 i; + + DBG_LED_on; + for( i = 0; i < num; i++ ) + { + LED_POW1 = 1; + LED_POW1 = 0; + } + DBG_LED_off; +} +#endif diff --git a/snake_branches/2.35/self_flash.h b/snake_branches/2.35/self_flash.h new file mode 100644 index 0000000..768565e --- /dev/null +++ b/snake_branches/2.35/self_flash.h @@ -0,0 +1,9 @@ +#ifndef _self_flash_h_ +#define _self_flash_h_ + + +void firm_update(); + + +#endif + diff --git a/snake_branches/2.35/sw.c b/snake_branches/2.35/sw.c new file mode 100644 index 0000000..be26b65 --- /dev/null +++ b/snake_branches/2.35/sw.c @@ -0,0 +1,213 @@ +/* ======================================================== +XCb` +EHOME +EPOWER +EWiFi +̊Ď^XN + + $Id$ +======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" + +#include "i2c_twl.h" +#include "i2c_ctr.h" +#include "led.h" +#include "pm.h" +#include "rtc.h" +#include "sw.h" + + +//========================================================= +/* + vreg_ctrǂ݂̂Ńwb_ +#define INTERVAL_TSK_SW +#define CLICK_THRESHOLD + +#define HOLD_THREASHOLD +#define FORCEOFF_THREASHOLD +*/ +#define TIME_MUKAN ( u8)( 300 / INTERVAL_TSK_SW ) +#define TIME_MUKAN_PWSW_RED_TRIAL (u16)( 15000 / INTERVAL_TSK_SW ) // VAhome}XN + +//========================================================= +u16 SW_pow_count; +bit SW_pow_mask; + +static u8 SW_home_count, SW_wifi_count, SW_home_count_rel; +static u8 sw_wifi_mukan_time; + +u16 off_timeout_timer; + +static u16 sw_pwsw_mukan_time; + + + +/********************************************//** + Ԃ𐔂BςȂł0ɖ߂Ȃ + + mask0̎́Ax܂Ŗ + ***********************************************/ +#define count_sw_n( sw, counter, mask ) \ + { \ + if( sw ){ \ + mask = 0; \ + counter = 0; \ + }else{ \ + if( mask != 0 ){ \ + counter = 0; \ + }else{ \ + counter ++; \ + if( counter == 0 ) counter = -1; \ + } \ + } \ + } + + +/********************************************//** + NbN(`^O)BKvɉĊ荞 + ***********************************************/ +#define chk_clicked( button, count, irq_bit_name ) \ + if( !button ) \ + { \ + if( count < CLICK_THRESHOLD ) \ + { \ + count ++; \ + if( count == CLICK_THRESHOLD ) \ + { \ + count ++; \ + set_irq( VREG_C_IRQ0, irq_bit_name ); \ + } \ + } \ + } \ + else \ + { \ + count = 0; \ + } + + + +/********************************************//** + XCb`̊Ď + + @`^O͂˂AAgKȂǂ̌os + ***********************************************/ +void tsk_sw( ) +{ + static u8 task_interval; + + if( system_status.pwr_state == OFF_TRIG ) + { + SW_pow_count = 0; // dɔăNA +// task_interval = 0; + } + + if( system_status.pwr_state != ON_CHECK ) // 莞(PWSW_POWON_TIME)ẐŃvXP[@łȂƃ`^܂肫Ȃ + { + if( task_interval != 0 ) + { + task_interval--; + return; + // ܂ + } + + task_interval = (u8)( INTERVAL_TSK_SW / SYS_INTERVAL_TICK ) -1; // vXP[ɎgĂ܂ˁc + // -1̓|XgfNĝ߂̒ + } + + // 8ms ɂ܂ + switch ( system_status.pwr_state ) + { + case ( ON ): + case ( SLEEP ): + case ( OFF ): + case ( ON_CHECK ): + // @̏ꍇ + if( ! system_status.taikendai ) + { + + // dXCb`̊Ď // + if( SW_pow_count == ( TIME_PWSW_CLICK ) ) // NbNԂɓB + { + if( is_wifi_calib_resets_ast ) // wifi Lu[VȂASoCɒʒmoffɑJ + { + system_status.pwr_state = OFF_TRIG; + } + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_CLICK ); + } + else if( SW_pow_count == ( HOLD_THREASHOLD ) ) // ɓB + { + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_HOLD ); + if( off_timeout_timer == 0 ) // dfJEg_EJnAxȂ悤ɁB + { + off_timeout_timer = vreg_ctr[ VREG_C_OFF_DELAY ] * 16; + } + } + + if( off_timeout_timer != 0 ) // 荞݌A^CAEgŋItB + { + off_timeout_timer --; + if( off_timeout_timer == 0 ) + { + force_off = true; + } + } + + }else{ + // X^hAV + // dXCb`̊Ď // + if( SW_pow_count == ( TIME_PWSW_CLICK ) ) + { + if( sw_pwsw_mukan_time == 0 ) + { + set_irq( VREG_C_IRQ0, REG_BIT_SW_POW_CLICK ); + // ȃ^C~OPWSWHOMEj[ɓĂ܂̂邽߂̃}XN^C}[ + sw_pwsw_mukan_time = TIME_MUKAN_PWSW_RED_TRIAL; + } + } + else if( SW_pow_count == ( HOLD_THREASHOLD ) ) + { + force_off = true; + } + + if( sw_pwsw_mukan_time != 0 ) + { + sw_pwsw_mukan_time--; + } + } + + // @Ě䋤 + count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask ); // {^Ԃ̃JEg + + // HOME sw // + chk_clicked( SW_HOME_n, SW_home_count, REG_BIT_SW_HOME_CLICK ); + chk_clicked( !SW_HOME_n, SW_home_count_rel, REG_BIT_SW_HOME_RELEASE ); + + // wifi sw // + /// ňȎȂ̂͂킩Ă邪AsɏoĂ܂sǃXCb`~ + if( sw_wifi_mukan_time != 0 ) + { + sw_wifi_mukan_time--; + } + else + { + chk_clicked( SW_WIFI_n, SW_wifi_count, REG_BIT_SW_WIFI_CLICK ); + if( SW_wifi_count == CLICK_THRESHOLD +1 ) // 蔭I + { + sw_wifi_mukan_time = TIME_MUKAN; + } + } + break; + default: + break; + }// switch() +} + diff --git a/snake_branches/2.35/sw.h b/snake_branches/2.35/sw.h new file mode 100644 index 0000000..abe9715 --- /dev/null +++ b/snake_branches/2.35/sw.h @@ -0,0 +1,20 @@ +#ifndef _sw_ +#define _sw_ + +#include "config.h" + +extern u16 SW_pow_count; +extern bit SW_pow_mask; + +#define INTERVAL_TSK_SW 8 +#define CLICK_THRESHOLD 5 + +#define HOLD_THREASHOLD (u16)( 3000 /INTERVAL_TSK_SW ) +#define TIME_PWSW_CLICK (u8)( 220 /INTERVAL_TSK_SW ) +#define FORCEOFF_THREASHOLD (u8)( 12000 /INTERVAL_TSK_SW /16 ) + + +extern u16 off_timeout_timer; +#define clear_pow_off_countdown(){ off_timeout_timer = 0; force_off = false; } + +#endif diff --git a/snake_branches/2.35/task_debug.c b/snake_branches/2.35/task_debug.c new file mode 100644 index 0000000..e5b502c --- /dev/null +++ b/snake_branches/2.35/task_debug.c @@ -0,0 +1,122 @@ +/* ======================================================== + fobO^XN + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs_loader.h" +//#include "incs.h" +#include "renge\renge.h" +#include "pm.h" +#include "accero.h" + + +// ======================================================== +// 7ZO 4oCg +#define IIC_SLA_DBG_MONITOR 0x44 + + + +#if 0 // fobOj^p^XN + +ӁI@^XNXgOĂ܂̂ŁAgȂ畜ĉI + +/********************************************//** + fobOp^XN + ***********************************************/ +void tsk_debug( ) +{ +// u8 temp; + + /* + if( system_status.pwr_state == ON_TRIG ){ + { + static u8 count = 0; + // fobOLEDi8bitj̏ + temp = iic_mcu_read_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO ); + count ++; + iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, count ); + iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, count ); + } + } + */ + +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_IRQ1 ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, boot_ura ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_SND_VOL ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_3D ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, vreg_ctr[ VREG_C_3D ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_SND_VOL ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_STATUS ] ); +// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] ); + + /* + { + u8 str[4]; + + if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) ) + { + str[3] = vreg_ctr[ VREG_C_FREE0 ]; + str[2] = vreg_ctr[ VREG_C_FREE1 ]; + str[1] = vreg_ctr[ VREG_C_STATUS ]; + str[0] = vreg_ctr[ VREG_C_RTC_SEC ]; + + str[3] = vreg_ctr[ VREG_C_SND_VOL ]; + str[2] = vreg_ctr[ VREG_C_3D ]; + str[1] = vreg_ctr[ VREG_C_ACC_CONFIG ]; + str[0] = SEC; + iic_mcu_write( IIC_SLA_DBG_MONITOR, 0x03, 4, &str ); + } + } + */ +} + +#endif + + +#if 0 // ^XNЂȌ` +/********************************************//** +^XNЂȌ` + ***********************************************/ +task_interval tsk_hina( ) +{ + switch ( system_status.pwr_state ) + { + case ON_CHECK: + case ON_TRIG: + case ON: + case SLEEP: + case OFF_TRIG: + default: + } + + return; // tic Ă΂邱ƂɂȂ܂ +} + + +// |C^ʼn炤̂͊댯ȋCĂ +/* ̂悤Ɏg + renge_task_immed_add( ^XN֐ւ̃|C^ ); +*/ + +/********************************************//** +^XNЂȌ`(s) + ***********************************************/ +task_status_immed tski_hina( u8 * arg ) +{ + return ( TSKI_FINISHED ); + // TSKI_FINISHED ^XN폜 + // TSKI_CONTINUE ɂȂ񂩊荞݂ȂA[U[ȂAVXe`bN + // Ƃɍēxs +} + + +#endif diff --git a/snake_branches/2.35/task_misc.c b/snake_branches/2.35/task_misc.c new file mode 100644 index 0000000..edbecca --- /dev/null +++ b/snake_branches/2.35/task_misc.c @@ -0,0 +1,429 @@ +/* ======================================================== + ̑Gȃ^XN + ^XN𕪂₷ȂC邪A\[X̖ŕȂ + + $Id: task_misc.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ + +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs.h" +#include "renge\renge.h" +#include "pm.h" + +#include "accero.h" +#include "adc.h" +#include "i2c_mcu.h" +#include "led.h" +#include "vreg_twl.h" + + + +#ifdef _MCU_BSR_ +#define ACKD ACKD1 +#define ACKE ACKE1 +#define COI COI1 +#define IICAEN IICA1EN +#define IICRSV IICRSV1 +#define IICA IICA1 +#define IICAIF IICAIF1 +#define IICAMK IICAMK1 +#define IICAPR0 IICAPR11 +#define IICAPR1 IICAPR01 +#define IICCTL0 IICCTL10 +#define IICE IICE1 +#define IICF IICF1 +#define IICS IICS1 +#define IICWH IICWH1 +#define IICWL IICWL1 +#define LREL LREL1 +#define SPD SPD1 +#define SPIE SPIE1 +#define STCEN STCEN1 +#define STD STD1 +#define SVA SVA1 +#define WREL WREL1 +#define WTIM WTIM1 +#define TRC TRC1 +#define SMC SMC1 +#define DFC DFC1 +#endif + +// ======================================================== +extern void f(); // X^bN̍Ō𓾂 + + +// ======================================================== +bit twl_ver_read; // twl home menuverǂ񂾂݊J[lɊ荞݂邽 +bit going_to_sleep; // SoCAsleepɓʒm炤Bslp_i HԂ0ɂȂ + // X[v畜AłȂȂ̂h + + +// eXgp +bit reserve_pedo_increnent; + + +// ======================================================== +static void update_LED_3D(); +static void check_twl_vol_irq(); + + + +/********************************************//** + PiŃ^XNɂȂGȏ + - xZT荞݂̎肱ڂmF(Ö) + - TWL PM݊WX^ւ݂̏Γǂ݂ɍs + - ݊J[lTWL`[̋Nʒm + - TWL̉ʕω荞݂`FbN + - 3Dv̍XV + - (HAL) vA₷ + - (fobO) SELWDTZbg𔭐 + ***********************************************/ +void tsk_misc( ) +{ + // 荞݂̎肱ڂH + if( ACC_VALID && ( ( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_ACCERO_ERR ) == 0 )) + { + if( renge_task_immed_add( tski_cbk_accero ) == ERR_SUCCESS ){ + // dbg_nop(); + } + } + + if( system_status.pwr_state == ON ) + { + /* ======================================================== + PM݊WX^ւ̏ + |[OőΉ + ======================================================== */ + if( !PM_IRQ_n ) + { + renge_task_immed_add( tski_ntr_pmic_comm ); + // dbg_nop(); + } + + /* ======================================================== + TWL`[NƂCTRm肽炵 + ======================================================== */ + if( twl_ver_read ) + { + twl_ver_read = false; + set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); + } + + // TWL ̉ʕω荞݃`FbN // + check_twl_vol_irq(); + } + + // 3D vXV // + update_LED_3D(); + +#ifdef _ENABLE_HAL_ + // fobOHAL ₷ // + if( reserve_pedo_increnent ) + { + reserve_pedo_increnent = 0; + hosu_increment_if_necessary(); + } +#endif + +#ifdef _ENABLE_PRESS_SEL_TO_WDT_ + if(( system_status.pwr_state == ON ) + || ( system_status.pwr_state == SLEEP )) + { + static u16 timer; + if( !SW_SEL_n ) + { + timer += 1; + if( timer == 2000 ) + { + DI(); + timer = 0; + while(1) + { + NOP(); // ̂WDT + } + } + } + } +#endif + + //. X^bNeXg +// f(); +} + + + +/********************************************//** +TWLVol̂ƁAXC_̑삪obeBO +sN鎖Ah + + TWLł͒ʏ펞A{^8iKBɍ킹Ċ荞݂B + ***********************************************/ +void check_twl_vol_irq() +{ + static u8 vol_level_twl_sent; + static u8 mabiki; + + if( !is_TWL ) + { + return; + // ܂ + } + + if( mabiki != 0 ) + { + mabiki--; + return; + // ܂ + } + + mabiki = 9; // 1t[͊J + if( vol_level_twl != vol_level_twl_sent ) + { + vol_level_twl_sent = vol_level_twl; + set_irq( VREG_C_IRQ2, REG_BIT_SLIDE_VOL_ACROSS_TWL_BOUNDARY ); + } +} + + +/********************************************//** +3DvXV + ***********************************************/ +void update_LED_3D() +{ + if( system_status.pwr_state != ON ) + { + LED_duty_3d = 0; + return; + // ܂ // + } + + if( vreg_ctr[VREG_C_LED_3D] == LED_3D_ILM_OFF ) + { + if( LED_duty_3d != 0 ) + { + LED_duty_3d --; + } + } + else + { + if( LED_duty_3d != vreg_ctr[VREG_C_LED_BRIGHT] ) + { + if( LED_duty_3d < vreg_ctr[VREG_C_LED_BRIGHT] ) + { + LED_duty_3d ++; + } + else + { + LED_duty_3d --; + } + } + } +} + + + + +/********************************************//** + COMMANDWX^ւ̏ + + 0ȂĂ΂܂BPAsv + + - sleep ʒm() + - ZbgnR}h + ***********************************************/ +task_status_immed tski_do_command0( ) +{ + u8 temp_command; + + // command0 {̓dȂ + DI_wt_chk(); + temp_command = vreg_ctr[VREG_C_COMMAND0]; + vreg_ctr[VREG_C_COMMAND0] = 0; + EI(); + + // SLPO(SoC->mcu) 񓯊̂߁ApX[ɂȂĂ܂Amcu SoC̈u + // X[vooASLPIgOoȂB炩ߒʒmĂ炢A + // ^CAEgsB + if( temp_command & REG_BIT_GOING_TO_SLEEP ) + { + going_to_sleep = true; + } + + // ZbgñR}h // + if( ( temp_command & ( REG_BIT_OFF_REQ | REG_BIT_RESET1_REQ | REG_BIT_FCRAM_RESET_REQ | REG_BIT_RESET2_REQ )) != 0x00 ) + { + if( temp_command & REG_BIT_OFF_REQ ) + { + system_status.pwr_state = OFF_TRIG; + } + else + { + if( temp_command & REG_BIT_RESET1_REQ ) + { + PM_reset_ast( ); + RESET2_ast; + FCRAM_RST_ast; + } + if( temp_command & REG_BIT_RESET2_REQ ) + { + RESET2_ast; + if( vreg_twl[ REG_TWL_INT_ADRS_MODE ] == 0 ) + { + FCRAM_RST_ast; // twlntr[hœ삵Ă + } + // TWL[hDS[hւ̐؂ւɃZbg + // IRQǂ܂Ȃꍇ̂TWLWX^ + vreg_twl_init(); + } + if( temp_command & REG_BIT_FCRAM_RESET_REQ ) + { + FCRAM_RST_ast; + } + wait_ms( 5 ); // ԉ҂ + FCRAM_RST_neg; + PM_reset_neg(); + RESET2_neg; + + // CODEC s背WX^ // + codec_reg_init(); + } + } +/* + X[vvɓdOFFEZbgR}h͗܂ + if( vreg_ctr[VREG_C_COMMAND0] != 0 ) + { + return ( TSKI_CONTINUE ); + } +*/ + return ( TSKI_FINISHED ); +} + + + +/* fobOEeXgp ============================== */ +u16 _dbg_rcomp; +extern u8 raw_adc_temperature; + +extern u8 iic_burst_state; +extern bit temp_zone_charge_disable; +extern bit bt_authorized; + + + + +#define KOUMOKU 19 + +static u8 infos_bits[2]; +static u8 infos_temp[5]; + +static const u8 *infos_table[ KOUMOKU ] = { + &infos_temp[0], /* 0 */ + &pmic_version, + (u8*)&battery_manufacturer, + &mgic_version[0], + &mgic_version[1], + &infos_temp[1], /* 5 */ + &raw_adc_temperature, + &infos_temp[2], + &infos_temp[3], + (u8*)&system_status.family, /* 9 */ + &infos_bits[0], /* 10 */ + (u8*)&LED_duty_pow_blu, + (u8*)&LED_duty_3d, + (u8*)&LED_duty_notify_red, + (u8*)&LED_duty_notify_grn, + (u8*)&LED_duty_notify_blu, /* 15 */ + &infos_bits[1], + (u8*)&LED_duty_WiFi, + &infos_temp[4] /* 18 */ + /* ڑƂ KOUMOKU ɒ */ +}; + +/********************************************//** +@fobOpɃXe[^XԂBigXe[^X 0x7Fj + +@Ԓl̓f[^̂ + + oĂ鏇́A + + - 1) vbgtH[ + - 2) PMIC o[W + - 3) dr[J[ + - 4) KXQ[Wo[W + - 5) V + - 6) ( rcomp & 0xFF ) + - 7) raw_adc_temperature + - 8) ( !temp_zone_charge_disable | ( bt_authorized << 1 ) ) + - 9) m点LED̓tJ[H + - 10) system_status.family + ***********************************************/ +u8 extinfo_read(void) +{ + u8 ret = 0xFF; + + /* + * temp͌vZKvȃf[^Bɗ]TȂ̂ŌvZKv + * ϐ́Av/svɊւ炸vZ|V[ + */ + + if( iic_burst_state < KOUMOKU ) + { + infos_temp[0] = system_status.captureBox? ( system_status.is_dev? MODEL_IS_CAPTURE :MODEL_KUC_CAPTURE ) + : ( system_status.is_dev? MODEL_IS_DEBUGGER: (u8)system_status.model ); + infos_temp[1] = (u8)( _dbg_rcomp & 0xFF ); + infos_temp[2] = ( !temp_zone_charge_disable | ( bt_authorized << 1 ) ); + infos_temp[3] = 1; /* dlύXɂ1ŒɂȂ */ + infos_temp[4] = 0 +// | ( PM_EXTDC_n ? REG_BIT_HAL0_PM_EXTDC_n : 0 ) // status0ɂ + | ( BT_IN_CHG_n ? REG_BIT_HAL0_BT_IN_CHG_n : 0 ) + | ( BT_CHG_Ena_n ? REG_BIT_HAL0_RSV_5 : 0 ) // 󂫃rbggp,out pin + | 0 // WL_TX gȂ +// | ( SHELL_OPEN ? REG_BIT_HAL0_SHELL_OPEN : 0 ) // status0ɂ + | ( SW_WIFI_n ? REG_BIT_HAL0_SW_WIFI_n : 0 ) + | ( SW_HOME_n ? REG_BIT_HAL0_SW_HOME_n : 0 ) + | ( SW_POW_n ? REG_BIT_HAL0_SW_POW_n : 0 ); + + infos_bits[0] = (u8)LED_pow_red; + infos_bits[1] = (u8)LED_CAM; + + ret = *infos_table[iic_burst_state]; + +#if 0 +// debug // + /// VXeɋ@펯ʂʼnR‚ + if( iic_burst_state == 9 ) + { + ret = (u8)FAMILY_FLOWER; + } +#endif + iic_burst_state ++; + } + + return ret; +} + + +#ifdef i2c_timeout_test +/********************************************//** +ifobOpjI2C_mcu ɃvgRᔽ(g`)oꂽSLED_Ēʒm + ***********************************************/ +void i2c_mcu_error_monitor() +{ + LED_duty_pow_blu = 0xff; + LED_duty_3d = 0xff; + LED_duty_notify_red = 0xff; + LED_duty_notify_grn = 0xff; + LED_duty_notify_blu = 0xff; + LED_pow_red = 1; + LED_CAM = 1; +} +#endif + diff --git a/snake_branches/2.35/task_status.c b/snake_branches/2.35/task_status.c new file mode 100644 index 0000000..0de3bf4 --- /dev/null +++ b/snake_branches/2.35/task_status.c @@ -0,0 +1,89 @@ +/* ******************************************************** + ꕔ̃Xe[^XWX^XVAKvɉĊ荞݂܂B + + $Id$ +********************************************************* */ + +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP + +#endif + +#include "incs_loader.h" +#include "renge\renge.h" + +#include "pm.h" + +#include "accero.h" +#include "adc.h" +#include "i2c_mcu.h" +#include "led.h" + + +/********************************************//** + Xe[^XWX^́A + - WJ + + Ŋ荞݂KvłΔ܂B + todo: H + ***********************************************/ +void tsk_status( ) +{ + static u8 state_old; // Xe[^Xωo荞 ̈ + u8 diff; + + // WJ`FbN + set_bit_if( SHELL_OPEN, vreg_ctr[VREG_C_STATUS], REG_BIT_ST_SHELL_OPEN ); + + // Xe[^XWX^֌W 荞 // + // pm.c ŁȀōs܂B + // REG_BIT_LCD_ON/OFF + // REG_BIT_BL_ON/OFF + // REG_BIT_BT_DC_CONNECT/DISC + // REG_BIT_BT_CHG_START/STOP + + diff = (u8)( vreg_ctr[VREG_C_STATUS] ^ state_old ); + if( diff != 0 ) + { + state_old = vreg_ctr[VREG_C_STATUS]; + + if( system_status.pwr_state == ON ) + { + if( diff & REG_BIT_BATT_CHARGE ) + { + // [dԔf + if( is_bt_charging ) // set_irqʁXɌĂԕRpNg + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_START ); + } + else + { + set_irq( VREG_C_IRQ1, REG_BIT_BT_CHG_STOP ); + } + } + } + + if(( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP ) + ) + { + if( diff & REG_BIT_ST_SHELL_OPEN ) + { + // W̊J‚ + if( is_shell_open ) + { + set_irq( VREG_C_IRQ0, REG_BIT_SHELL_OPEN ); + } + else + { + set_irq( VREG_C_IRQ0, REG_BIT_SHELL_CLOSE ); + } + } + } + } +} + diff --git a/snake_branches/2.35/task_sys.c b/snake_branches/2.35/task_sys.c new file mode 100644 index 0000000..ba035b5 --- /dev/null +++ b/snake_branches/2.35/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ƂȂXVA덇킹 + if( system_status.reboot ) + { + u8 bl_status_temp; + + // LCD dXe[^X + /// 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; + } + + // obNCg_ĂȂ_ + bl_status_temp = read_pmic( PM_REG_ADRS_BL ); + vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 ); + + // obe{̎ + BT_chk(); + } + + LED_init( ); // reboot́BT_Chk,BT_chkɍs + + system_status.reboot = 0; + system_status.pwr_state = ON; + + // WDTZbgAI2C̏܂Ŋ荞ݕۗ + // قƂ͂ɂׂȂ... + if( ( vreg_ctr[ VREG_C_MCU_STATUS ] & REG_BIT_STATUS_WDT_RESET ) != 0 ) + { + set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET ); + } + + break; + + case ON: //--------------------------------------------- + // PMICɂ鋭df`FbN + // fobKreset1AT[g邱ƂB̂Ƃ͑SZbg + chk_emergencyExit(); + + // SLPĎ + if( going_to_sleep ) // ΂ SLP_REQ ̑Oɗ\ + { + timeout_sleep ++; + if( timeout_sleep == 0 || // I[o[t[ҁBsleepČLjuŋNċC‚Ȃ + ( PIF0 && !SLP_REQ )) // slp荞݂CANĂ܂ + { + PIF0 = 0; + send_getup_to_soc(); + } + if( PIF0 && SLP_REQ ){ + PIF0 = 0; + PM_VDD_ecoMode(); + system_status.pwr_state = SLEEP; + renge_task_interval_run_force = true; + } + } + + // offJEg + force_off_check(); + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) // A_v^玩œdoff + { + if( PM_EXTDC_n ) + { + system_status.pwr_state = OFF_TRIG; + } + } +#endif + + break; + + case SLEEP: //------------------------------------------ + chk_emergencyExit(); + // X[v畜A + if( !SLP_REQ ){ + PM_VDD_normMode(); + wait_ms( 5 ); // tdly_sw + send_getup_to_soc(); + system_status.pwr_state = ON; + } + + force_off_check(); +// leak_check(); + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) // A_v^玩œdoff + { + if( PM_EXTDC_n ) + { + system_status.pwr_state = OFF_TRIG; + } + } + break; // ł悢B +#else + /* FALLTHROUGH */ +#endif + + default: //--------------------------------------- + system_status.pwr_state = OFF_TRIG; // 蓾ȂXe[gBfobOp +// dbg_nop(); + /* FALLTHROUGH */ + + case OFF_TRIG: //--------------------------------------- + // LED҂ + vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ILM_OFF; + vreg_ctr[ VREG_C_LED_WIFI ] = WIFI_LED_OFF; + vreg_ctr[ VREG_C_LED_3D ] = LED_3D_ILM_OFF; + info_led_off = true; + if( LED_duty_pow_blu != 0 ) + { + return; + } + + // dfJEg_E^C}NA + clear_pow_off_countdown(); + + // xZT~ + vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x00; + tski_acc_setup(); + EI(); // DIԂłė̂ŁAI2C_mcu ̂ɕKv + + // ̑ytF~ + LED_stop( ); + IIC_ctr_Stop( ); + IIC_twl_Stop( ); + RTC_32k_off(); + +// dI̊荞݃Zbg +// PWSW KR3 L +// BG24 KR4 +// ӂJ INTP5 ‚L +// ACA_v^ INTP4 A_v^L +// RTC + while( iic_mcu_busy ) + {;} + + // irq}XNݒ + KRM = ( KR_SW_POW ); // Mask ł͂ȂAModeȂ̂B킵 + MK0 = ~( INT_MSK0_EXTDC | INT_MSK0_WDTI ); + MK1 = ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL ); // INT_MSK1_RTCALARM | RTCA[ + MK2L = 0xFF; + + // irqtONA + vreg_ctr[VREG_C_IRQ0] = 0; + vreg_ctr[VREG_C_IRQ1] = 0; + vreg_ctr[VREG_C_IRQ2] = 0; + vreg_ctr[VREG_C_IRQ3] = 0; + + // PU5 ̂܂ + PU7 = bits8(0,0,0,0, 1,0,0,1); // PWSWI,PM_EXTTDC,( IRQ0_deactive(), PM_IRQ_deactive ) + PU_SW_HOME_n_JIKKI = 0; // SW_HOME ~ + + IF0 = 0; + IF1 = 0; + IF2 = 0; + + IRQ0_disable; + + PM_sys_pow_off( ); // dJbgIt + + // |[gނ~[hɁBHłALo͂ɂȂႾ߂ȁB + SW_WIFI_n_RAW = 0; + PM_SW_WIFI_n = 0; + + SW_HOME_n_JIKKI_RAW = 0; + PM_SW_HOME_n_JIKKI = 0; + + WL_TX = 0; + PM_WL_TX = 0; + + SW_SEL_n = 0; + PM_SW_SEL_n = 0; + + ACCEL_INT1 = 0; + PM_ACCEL_INT1 = 0; + ACC_VALID = 0; + PM_ACC_VALID = 0; + + system_status.pwr_state = OFF; + SW_pow_mask = true; + SW_pow_count = 0; + + // HALfobOZbg@YƓdonoȂȂ邱Ƃc + hal_reset(); + /* FALLTHROUGH */ + + case OFF: + // Fł͓d{^d͂܂B + + system_status.poweron_reason = NONE; + pwsw_timeout = 0; + LCD_AMOL_HV_CTRL = 0; // ُIAAt@XLCDpd؂YĂ܂ + + + if( !PM_EXTDC_n + || chg_led_override != 0 ) // ꂪ[ɂȂ܂ő҂ + { + // A_v^L /////////////////////////////// ܂́AA_v^ĂRb͏[dLED_Ă + + // d{^`FbN + system_status.poweron_reason = RSN_PWSW; + system_status.pwr_state = ON_CHECK; + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + // VȂ玩œdē + if( system_status.taikendai ) + { + vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0; + wait_ms(46); // pmic̓dēdl̂ + system_status.poweron_reason = RSN_TRIAL; + system_status.pwr_state = ON_CHECK; + } +#endif + } + else + { + // A_v^Ȃ /////////////////////////////// + + // ȓd͂ֈڍs + iic_mcu_stop( ); + pm_chk_adapter(); + PM_Chg_Stop(); + + bt_force_update = true; + + while( RWST ) + {;} + + // 荞ݑ҂ŐQ // + RTCIMK = 1; // systickpC^[o^C}[荞݃}XN + +#ifdef _DBG_CHK_OFF_LEAK_ + leak_check(); +#endif + CKC = bits8(0,0,0,0, 1,0,0,1); // 4MHzɗƂ(bit0)STOPȂĂ͂ȂȂ + OSMC = bits8(0,0,0,0, 0,0,0,0); // 5MHzȉ[hցB + + if( PM_EXTDC_n_RAW ) // ǂ^C~Oő}N邱ƂBHALʂȂׂioffłj + { + STOP(); + } + + // N // + // N + // EKeyReturn荞݁id{^j + // ERTCA[iݕj + + // NbNA + OSMC = bits8(0,0,0,0, 0,0,0,1); // 8MHz쏀 + renge_flg_interval = 0; + hal_update(); + + CKC = bits8(0,0,0,0, 1,0,0,0); // OSMC.FSEL = 1 3clkȏJ + + // NŔH + if( !PM_EXTDC_n ){ + system_status.pwr_state = OFF; // ĂāAON_CHECKɍs + } +/* // RTCA[B + else if( vreg_ctr[ VREG_C_IRQ1 ] & REG_BIT_RTC_ALARM ) + { + system_status.poweron_reason = RSN_RTC_ALARM; + system_status.pwr_state = ON_CHECK; + } + // else if( ̊荞݂œdon ){ + // 󑼂̗vł͋NȂ + // } +*/ + else // if( !SW_POW_n ) // iȊOȂjd{^ŋN + { + SW_pow_mask = false; + system_status.poweron_reason = RSN_PWSW; + system_status.pwr_state = ON_CHECK; + } + + RTCIMK = 0; // sys tick ^C}[L + +#ifndef _TAIKENDAI_SEISAN_SPECIAL_ + if( system_status.taikendai ) + { + system_status.pwr_state = OFF_TRIG; + } +#endif + } + } +} + + + +/********************************************//** + PMICdُŎ~߂mF + + ***********************************************/ +static void chk_emergencyExit(){ + static u8 shirobako_power_control_count; + + // wifi W[Lu[V[hreset1牺ĂƂ̓`FbNpX + if( is_wifi_calib_resets_ast ) + { + return; + } + + if( shirobako_power_control_count == 0 ) + { + if( !RESET1_n ) // PM_chk_LDSW() I2C_mgpARXg + { + if( !PM_chk_LDSW() ) + { + // ZbgĂ + /// PMICُIf + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + } + else + { + // ̎d + shirobako_power_control_count = 1; + } + } + } + else + { + if( shirobako_power_control_count == WAIT_SHIROBAKO_POW_CONTROL ) // }WbNio[ + // fobKBreset1܂ł͖ + { + if( RESET1_n ) // ZbglQ[g҂ + { + shirobako_power_control_count = 0; + } + else + { + // nothing to do + } + } + else if( shirobako_power_control_count == 200 ) // * (sys_tick)[ms] + // fobK炵 + { +#ifndef _RVD_ + // ͓d؂肽炵 + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + shirobako_power_control_count = WAIT_SHIROBAKO_POW_CONTROL; +#endif + } + else + { + if( !RESET1_n ) + { + if( shirobako_power_control_count != 255 ) + shirobako_power_control_count ++; + } + else + { + // (TS{[hŎ蓮/fobK)Zbg炵 + send_cmd_pmic( PM_REG_ADRS_BL, 0 ); + vreg_ctr[VREG_C_STATUS] = ( vreg_ctr[VREG_C_STATUS] & bits8(1,0,0,1, 1,1,1,1) ); + vreg_ctr[VREG_C_COMMAND0] |= REG_BIT_RESET1_REQ; + renge_task_immed_add( tski_do_command0 ); + shirobako_power_control_count = WAIT_SHIROBAKO_POW_CONTROL; + } + } + } +} + + + +/********************************************//** + - d{^ + - dr؂ + - dr + + ł̋OFFBƉs\ + ***********************************************/ +static void force_off_check() +{ + if( force_off ) + { + system_status.pwr_state = OFF_TRIG; + renge_task_interval_run_force = true; + } +} + + + +/********************************************//** + SoCN + +@@dʏɖ߂ĂĂʼnB + ***********************************************/ +void send_getup_to_soc() +{ + going_to_sleep = false; + timeout_sleep = 0; +#ifdef _MODEL_CTR_ + SLP_ACK = 1; + nop8(); + SLP_ACK = 0; +#endif +} + + + + +/********************************************//** + ȃAbvf[g firm_update() ĂԁiisrsłȂ̂Łj + + task_status_immed^ Ԃ悤ɂ΂̂ł... + ***********************************************/ +task_status_immed tski_firm_update(){ + firm_update(); + return( ERR_SUCCESS ); +} + + + +#ifdef _DBG_CHK_OFF_LEAK_ +/********************************************//** + pinݒ~X`FbN + ***********************************************/ +static void leak_check() +{ + volatile u8 ports_i[12]; + volatile u8 ports_o[12]; + + ports_i[0] = ( PM0 & PU0 & ~P0 ); // vAbv؂YH + ports_i[1] = ( PM1 & PU1 & ~P1 ); + ports_i[2] = 0; + ports_i[3] = ( PM3 & PU3 & ~P3 ); + ports_i[4] = ( PM4 & PU4 & ~P4 ); + ports_i[5] = ( PM5 & PU5 & ~P5 ); + ports_i[6] = 0; + ports_i[7] = ( PM7 & PU7 & ~P7 ); + ports_i[8] = ( PM12 & PU12 & ~P12 ); + ports_i[9] = ( PM14 & PU14 & ~P14 ); + ports_i[10] = 0; + ports_i[11] = ( PM20 & PU20 & ~P20 ); + + ports_o[0] = ( ~PM0 & P0 ); // H o͂Ă邩 + ports_o[1] = ( ~PM1 & P1 ); + ports_o[2] = ( ~PM2 & P2 ); + ports_o[3] = ( ~PM3 & P3 & ~POM3 ); + ports_o[4] = ( ~PM4 & P4 ); // bit3chg_enȂ̂1ł悢 + ports_o[5] = ( ~PM5 & P5 ); + ports_o[6] = ( ~PM6 & P6 ); + ports_o[7] = ( ~PM7 & P7 ); + ports_o[8] = ( ~PM12 & P12 ); + ports_o[9] = ( ~PM14 & P14 ); + ports_o[10] = ( ~PM15 & P15 ); + ports_o[11] = ( ~PM20 & P20 ); + NOP(); // u[Nu +} +#endif _DBG_CHK_OFF_LEAK_ diff --git a/snake_branches/2.35/user_define.h b/snake_branches/2.35/user_define.h new file mode 100644 index 0000000..413773b --- /dev/null +++ b/snake_branches/2.35/user_define.h @@ -0,0 +1,214 @@ +#ifndef _USER_DEF_ +#define _USER_DEF_ + +// $Id: asdf$ + +#define IIC_T_SLAVEADDRESS 0x4A +#define IIC_C_SLAVEADDRESS 0x4A +#define IIC_C_SLAVEADDRESS_DMY 0x4C + +//#define IIC_SLA_DCP 0x50 + +#define bits8(a,b,c,d,e,f,g,h) ( a<<7 | b<<6 | c<<5 | d<<4 | e<<3 | f<<2 | g<<1 | h ) + +#ifndef _WIN32 +// @‹ + +#ifdef _debug_led_ +/*spflΉȍ~AncłȂȂ̂Ŏg܂ +# define DBG_LED_on { PM2.1 = 0; P2.1 = 1; } +# define DBG_LED_off { P2.1 = 0; } +# define DBG_LED_toggle ( P2.1 ^= 1 ) +# define DBG_LED2_on { PM2.2 = 0; P2.2 = 1; } +# define DBG_LED2_off { P2.2 = 0; } +# define DBG_LED2_toggle ( P2.2 ^= 1 ) +*/ +#else +# define DBG_LED_on ; +# define DBG_LED_off ; +# define DBG_LED_toggle ; +# define DBG_LED2_on ; +# define DBG_LED2_off ; +# define DBG_LED2_toggle ; +#endif // _debug_led_ + +#define IIC_SLA_CODEC 0xA4 +#define IIC_SLA_ACCEL 0x30 // ST LIS331DLH + + +#define SLP_ACK P7.7 + + +// PMx0ŏo̓[h + +// SoC +#define IRQ0_ast { P7.6 = 0; PM7.6 = 0; } // B4 +#define IRQ0_neg { P7.6 = 1; } +#define IRQ0_enable { PM7.6 = 0; } +#define IRQ0_disable { PM7.6 = 1; } +#define IRQ0 ( P7.6 ) + + +// h~ +#define RESET1_n ( P0.0 ) // G7 + +#if 1 // iPM_RESET1gAWiFiW[̃eXg̎͒ +# define RESET1_ast { P0.0 = 0; PM0.0 = 0; } +# define RESET1_neg { PM0.0 = 1; } +#endif + +#define RESET2_ast { P0.1 = 0; PM0.1 = 0; } // F7 +#define RESET2_neg { PM0.1 = 1; } + +#define SLP_REQ P12.0 // H8 + +// CTR,SPFL,SNAKE,܂ʔh@ +#define DEV_DET ( P12 & 0b00000110 ) // [2:1] = D8,C8 +#define DEV_CTR ( 0b00 << 1 ) +#define DEV_SPFL ( 0b01 << 1 ) +#define DEV_SNAKE ( 0b10 << 1 ) +#define DEV_RSV2 ( 0b11 << 1 ) + +// FCRAM +#define FCRAM_RST P3.0 // B6 +#define FCRAM_RST_ast { P3.0 = 0; } +#define FCRAM_RST_neg { P3.0 = 1; } + +// CODEC +#define PM_IRQ_n P7.2 // A3 +// INTP6 + +// PM +#define PM_EXTDC_n_RAW P7.0 // B2 +// INTP7 +//#define BT_TEMP P15.0 // G3(a) +// ANI8 +//#define BT_DET P15.1 // H2(a) +// ANI9 +#define BT_DET_P P1.6 // D4 +#define BT_TEMP_P P1.7 // C4 + + +// SPFL̃At@XLCDŕKvȁ}15V̓dB +#define LCD_AMOL_HV_CTRL P20.2 // F2 + + +// [d(out) +// _łBӁB +#define BT_CHG_ENABLE() ( P4.3 = 0 ) // F6 +#define BT_CHG_DISABLE() ( P4.3 = 1 ) +#define BT_CHG_Ena_n ( P4.3 ) + +// [d(in) +#define BT_IN_CHG_n_RAW P5.1 // B1 +#define PM_BT_IN_CHG_n PM5.1 +#define PU_BT_IN_CHG_n PU5.1 + +#define SW_WIFI_n_RAW P7.4 // C3 +#define PM_SW_WIFI_n PM7.4 +// KR4 +#define SW_POW_n_RAW P7.3 // B3 +// KR3 +#define SW_SEL_n P2.3 // G5 +#define PM_SW_SEL_n PM2.3 +//#define VOL P2.7 // H4(a) +// ANI7 + +#define SW_HOME_n_JIKKI_RAW P20.4 // G2 +#define PM_SW_HOME_n_JIKKI PM20.4 +#define PU_SW_HOME_n_JIKKI PU20.4 + +// INTP22 +#define SW_HOME_n_TSBOARD_RAW P2.0 // TS}U[pull up(P2͓p.u.) // G6 +#define PM_SW_HOME_n_TSBOARD PM2.0 + +// WiFi +#define WL_TX P20.3 // INTP21 // F3 +#define PM_WL_TX PM20.3 // INTP21 + +//#define VOL_P P2.1 // E5 open +//#define VOL_N P2.2 // F5 V + +//#define LED_CAM P1.0 // TO02 // E4 +//#define LED_WIFI P1.1 // TO03 // E3 +//#define LED_NOTIFY P1.3 // TO05 // D3 +//#define LED_3D P5.2 // SLTO TO01 // A2 +//#define LED_POW2 P1.4 // TO06 ( ) // D2 +//#define LED_POW1 P1.5 // TO07 ( ) // D1 +//#define LED_CHARGE P2.4 // H5 + +// P5.3 ɉAP5.5, P140 P141 +// P140o͐pȂ̂... +#define I2C_PU_on() { P14 |= 0x03; PM5.3 = 0; PM3.3 = 0; } // P14[1:0] H6,H7 P5.3,3.3 A1,C5 +#define I2C_PU_off() { PM5.3 = 1; PM3.3 = 1; P14 &= ~0x03; } + +#define GYRO_ENABLE() P5.0 = 0 // C1 +#define GYRO_DISABLE() P5.0 = 1 + +//#define I2C_M_SDA P3.1 // SDA10 // C6 +//#define I2C_M_SCL P3.2 // SCL10 // B5 + +//#define I2C_0_SCL P6.0 // IIC_TWL SCL0 // A7 +//#define I2C_0_SDA P6.1 // SDA0 // A6 + +//#define I2C_1_SCL P20.0 // IIC CTR SCL1 // E1 +//#define I2C_1_SDA P20.1 // SDA1 // F1 + +//#define 32kHz_O P1.2 // RTCCL // E2 +//#define 32k_I1 P12.3 // XT1 // F8 +//#define 32k_I2 P12.4 // XT2 // G8 + +// @AJ@AV䔻ʁB +#define DIPSW ( P4 & 0b00000011 ) // mini cube & \tgEFAfBbvXCb` TOOL0,1B P4.0 L ӁI +#define DIPSW_CTR 0b11 // gp +#define DIPSW_ISDEV 0b00 // KuCBattGaugeŔ +#define DIPSW_TAIKENDAI 0b10 +#define DIPSW_TAIKENDAI_NBD 0b01 + + +#define SHELL_OPEN_RAW P7.1 // INTP5 ӂJ (‚L) // C2 + +#define ACC_VALID P20.5 // H3 +#define PM_ACC_VALID PM20.5 +#define ACCEL_INT1 P2.5 // F4 +#define PM_ACCEL_INT1 PM2.5 + + +#endif // _WIN32 + +// win32 sim‹Ƌ + +#define KR_SW_POW ( 1 << 3 ) +#define KR_SW_WIFI ( 1 << 4 ) + +/////////////////////////////////////////////////////////// +#ifdef _WDT_CHECK_ +# define INT_MSK0_WDTI 1<<15 +#else +# define INT_MSK0_WDTI 0 +#endif + +#define INT_MSK0_IIC_M_DMA 1<<12 +#define INT_MSK0_SHELL 1<<7 +#define INT_MSK0_EXTDC 1<<6 +//#define INT_MSK0_SLP 1<<2 +#define INT_MSK0_RSV ~( INT_MSK0_IIC_M_DMA | INT_MSK0_SHELL | INT_MSK0_EXTDC | INT_MSK0_WDTI ) + +#define INT_MSK1_KR 1<<11 +#define INT_MSK1_RTCINTVAL 1<<10 +#define INT_MSK1_RTCALARM 1<<9 +#define INT_MSK1_ADC 1<<8 +#define INT_MSK1_IIC_CTR 1<<3 +#define INT_MSK1_IIC_MCU 1<<0 +#define INT_MSK1_RSV ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL | INT_MSK1_RTCALARM | INT_MSK1_ADC \ + | INT_MSK1_IIC_CTR | INT_MSK1_IIC_MCU ) + +#define INT_MSK2_WIFI_TX_KE3 1<<4 +#define INT_MSK2L_RSV ~( INT_MSK2_WIFI_TX_KE3 ) + +#define INT_MSK2_IIC_TWL 1<<8 +#define INT_MSK2_WIFI_TX_BSR 1<<10 +#define INT_MSK2_CODEC_PMIRQ 1<<3 +#define INT_MSK2_RSV ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ ) + +#endif // dupe include guard diff --git a/snake_branches/2.35/util_funcs.c b/snake_branches/2.35/util_funcs.c new file mode 100644 index 0000000..2edea63 --- /dev/null +++ b/snake_branches/2.35/util_funcs.c @@ -0,0 +1,65 @@ +/* ======================================================== + util_funcs + + Gȃ[eBeB֐ + + $Id$ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma di +#pragma ei +#pragma nop +#pragma stop +#pragma halt +#pragma opc + +#endif +#include "incs_loader.h" +#include "wdt.h" + + + +/********************************************//** + Pʂ ms + + NOP񂷂Aw莞CPU *L܂* B + + 荞݂ƂƂ̕x܂B + + 덷܂B + ***********************************************/ +void wait_ms( u8 ms ){ + u16 fine; + + WDT_Restart(); + while( ms != 0 ){ + ms--; + fine = 860; + while( fine != 0 ){ + fine --; + } + } +} + + + + +extern unsigned char get_ei(); + +#ifdef _DI_WITH_CHECK_ +/********************************************//** + ł 荞݋֎~ԉ`FbNĂ犄荞݋֎~ɂ + + ]̌ʁAA#ifdef Ń`FbN DI + ***********************************************/ +void DI_wt_chk() +{ + if( !get_ei() ) + { + dbg_nop(); + } + DI(); +} +#endif // _DI_WITH_CHECK_ diff --git a/snake_branches/2.35/util_funcs.h b/snake_branches/2.35/util_funcs.h new file mode 100644 index 0000000..4229413 --- /dev/null +++ b/snake_branches/2.35/util_funcs.h @@ -0,0 +1,16 @@ +#ifndef _util_funcs_h_ +#define _util_funcs_h_ + + +void wait_ms( u8 ); + + +# ifdef _DI_WITH_CHECK_ +void DI_wt_chk(); +# else +# define DI_wt_chk() DI() +# endif /* _DI_WITH_CHECK_ */ + + +#endif + diff --git a/snake_branches/2.35/voltable.c b/snake_branches/2.35/voltable.c new file mode 100644 index 0000000..4d2e14a --- /dev/null +++ b/snake_branches/2.35/voltable.c @@ -0,0 +1,64 @@ +/* ======================================================== + voltable.c + + $Id$ + ======================================================== */ +#include "incs.h" + +#define _10db_ + + + +/********************************************//** + XC_l CODEC ɃZbgہAőVol̊֌W + KɃXP[OKv + + yȂ̂Ńe[u + ***********************************************/ + + + +#ifdef _10db_ +// max -10db +const u8 slider_to_codec[64] = +{ + 127, 126, 125, 124, 122, 121, 120, 119, + 118, 117, 116, 114, 113, 112, 111, 110, + 109, 108, 106, 105, 104, 103, 102, 101, + 100, 98, 97, 96, 95, 94, 93, 92, + 90, 89, 88, 87, 86, 85, 83, 82, + 81, 80, 79, 78, 77, 75, 74, 73, + 73, 72, 71, 70, 69, 67, 66, 65, + 64, 63, 62, 61, 59, 58, 57, 56 + }; +#endif + +#ifdef _15db_ +// max -15db +const u8 slider_to_codec[64] = +{ + 127, 127, 127, 127, 127, 126, 125, 123, + 122, 121, 120, 119, 118, 117, 116, 115, + 114, 113, 112, 110, 109, 108, 107, 106, + 105, 104, 103, 102, 101, 100, 99, 97, + 96, 95, 94, 93, 92, 91, 90, 89, + 88, 87, 86, 85, 84, 83, 82, 81, + 80, 79, 78, 77, 76, 75, 74, 73, + 71, 70, 69, 68, 67, 66, 66, 66 +}; +#endif + +#ifdef _4db_ +// max -4db +const u8 slider_to_codec[64] = +{ + 127, 127, 126, 125, 123, 122, 121, 119, + 118, 117, 115, 114, 112, 111, 110, 108, + 107, 106, 104, 103, 101, 100, 99, 97, + 96, 94, 93, 92, 90, 89, 88, 86, + 85, 83, 82, 81, 79, 78, 77, 75, + 74, 72, 71, 70, 68, 67, 66, 64, + 64, 63, 61, 60, 59, 57, 56, 54, + 53, 52, 50, 49, 48, 46, 44, 44 +}; +#endif diff --git a/snake_branches/2.35/voltable.h b/snake_branches/2.35/voltable.h new file mode 100644 index 0000000..6ff34ab --- /dev/null +++ b/snake_branches/2.35/voltable.h @@ -0,0 +1,57 @@ +#ifdef _10db_ +// max -10db +/* +const u8 slider_to_codec[64] = +{ + 127, 127, 127, 127, 126, 125, 123, 122, + 121, 120, 118, 117, 116, 115, 113, 112, + 111, 110, 108, 107, 106, 105, 103, 102, + 101, 100, 98, 97, 96, 95, 93, 92, + 91, 90, 88, 87, 86, 85, 83, 82, + 81, 80, 78, 77, 76, 75, 73, 72, + 72, 71, 70, 68, 67, 66, 64, 63, + 62, 61, 59, 58, 57, 56, 55, 55 + }; +*/ +const u8 slider_to_codec[64] = +{ + 127, 126, 125, 124, 122, 121, 120, 119, + 118, 117, 116, 114, 113, 112, 111, 110, + 109, 108, 106, 105, 104, 103, 102, 101, + 100, 98, 97, 96, 95, 94, 93, 92, + 90, 89, 88, 87, 86, 85, 83, 82, + 81, 80, 79, 78, 77, 75, 74, 73, + 73, 72, 71, 70, 69, 67, 66, 65, + 64, 63, 62, 61, 59, 58, 57, 56 + }; +#endif + +#ifdef _15db_ +// max -15db +const u8 slider_to_codec[64] = +{ + 127, 127, 127, 127, 127, 126, 125, 123, + 122, 121, 120, 119, 118, 117, 116, 115, + 114, 113, 112, 110, 109, 108, 107, 106, + 105, 104, 103, 102, 101, 100, 99, 97, + 96, 95, 94, 93, 92, 91, 90, 89, + 88, 87, 86, 85, 84, 83, 82, 81, + 80, 79, 78, 77, 76, 75, 74, 73, + 71, 70, 69, 68, 67, 66, 66, 66 +}; +#endif + +#ifdef _4db_ +// max -4db +const u8 slider_to_codec[64] = +{ + 127, 127, 126, 125, 123, 122, 121, 119, + 118, 117, 115, 114, 112, 111, 110, 108, + 107, 106, 104, 103, 101, 100, 99, 97, + 96, 94, 93, 92, 90, 89, 88, 86, + 85, 83, 82, 81, 79, 78, 77, 75, + 74, 72, 71, 70, 68, 67, 66, 64, + 64, 63, 61, 60, 59, 57, 56, 54, + 53, 52, 50, 49, 48, 46, 44, 44 +}; +#endif diff --git a/snake_branches/2.35/vreg_ctr.c b/snake_branches/2.35/vreg_ctr.c new file mode 100644 index 0000000..aae1669 --- /dev/null +++ b/snake_branches/2.35/vreg_ctr.c @@ -0,0 +1,638 @@ +/* ======================================================== + + CTR MCU I2CWX^ + + $Id$ + ====================================================== */ +#include "incs.h" +#include "vreg_ctr.h" +#include "rtc.h" +#include "led.h" +#include "accero.h" +#include "pm.h" +#include "pool.h" +#include "vreg_twl.h" +#include "sw.h" +#include "WDT.h" + +#include +#include "fsl_user.h" + + + + +extern u8 extinfo_read(); // task_misc.c + +extern u8 iic_burst_state; // o[XgANZX鎞̃JE^ +extern bit info_led_pattern_updated; // m点LED̃p^[擪ɖ߂ + +extern bit pedolog_overflow; +extern bit reserve_pedo_increnent; + + + +// ******************************************************** +u8 vreg_ctr[VREG_C_ENDMARK_]; + +static u8 vreg_free_adrs; // AhXł̂ł΂炭͂ +bit irq_readed; // AAA^̂߁B + + + +// ******************************************************** +extern task_status_immed tski_firm_update(); +extern task_status_immed tski_mcu_reset(); +extern unsigned char get_ei(); + + + +// ******************************************************** +#ifdef _MCU_BSR_ +#define IICAMK IICAMK1 +#endif + + +/********************************************//** + + + [̏l̎w肪KvȃAhX + + }CRZbgɌĂ΂܂ + ***********************************************/ +void vreg_ctr_init( ) +{ + vreg_ctr[ VREG_C_VCOM_T ] = VCOM_DEFAULT_T; + vreg_ctr[ VREG_C_VCOM_B ] = VCOM_DEFAULT_B; + + vreg_ctr[ VREG_C_OFF_DELAY ] = FORCEOFF_THREASHOLD; + + vreg_ctr[ VREG_C_VOL_CAL_MIN ] = 0x36; + vreg_ctr[ VREG_C_VOL_CAL_MAX ] = 0xFF - 0x36; +} + + +/********************************************//** + lZbg + + VXeZbgɌĂ΂܂ + ***********************************************/ +void vreg_ctr_reset( ) +{ + vreg_ctr[ VREG_C_MCU_VER_MAJOR ] = MCU_VER_MAJOR | 0x10; + vreg_ctr[ VREG_C_MCU_VER_MINOR ] = MCU_VER_MINOR; + +// vreg_ctr[ VREG_C_STATUS ] &= bits8(0,0,0,1, 1,1,1,1); + vreg_ctr[ VREG_C_LED_BRIGHT ] = 0xFF; + vreg_ctr[ VREG_C_LED_POW ] = 0; + vreg_ctr[ VREG_C_LED_WIFI ] = 0; + vreg_ctr[ VREG_C_LED_CAM ] = 0; + vreg_ctr[ VREG_C_LED_3D ] = 0; + { + u8 i; + for( i = 0; i < sizeof( uni_info_LED ); i++ ) + { + info_LED.bindata[ i ] = 0; + } + } + + vreg_ctr[ VREG_C_WIFI_CALIB ] = 0; + // ł̂͋Cc + RTC_32k_on(); + RESET1_neg; + RESET2_neg; + FCRAM_RST_neg; +} + + + +/********************************************//** + I2CzWX^ɏ܂B + + @ adrs ͓AhX + + @ȂAhXɃANZXꍇA܂B + + 񂾌ʁAI2C_mcuʐMꍇArenge_task_immed_add() + gpȂƁAI2C_mcugpŃG[IꍇɃgC܂B + ***********************************************/ +void vreg_ctr_write( u8 adrs, u8 data ) +{ + switch ( adrs ) + { + + case VREG_C_COMMAND0: + if( data != 0 ) + { + renge_task_immed_add( tski_do_command0 ); + vreg_ctr[ VREG_C_COMMAND0 ] |= data; + } + break; + + case VREG_C_COMMAND2: + // 炩̊荞݂҂ĂȂłB #--) ̂߂̊荞݂ + // td + if(( data & REG_BIT_CMD_LCD_ON ) != 0 ) + { + renge_task_immed_add( tski_PM_LCD_on ); + } + else if(( data & REG_BIT_CMD_LCD_OFF ) != 0 ) + { + renge_task_immed_add( tski_PM_LCD_off ); + } + + // obNCgݒ + /// ̂Ƃ낳ɍׂ͕Ȃǁc + if(( data & REG_BITS_CMD_BL ) != 0 ) + { + renge_task_immed_add( tski_PM_BL_set ); + vreg_ctr[adrs] = (u8)( data & REG_BITS_CMD_BL ); + } + break; + + case VREG_C_COMMAND1: + if( data != 0 ) + { + // u8 temp; ԕϐg΂łȂ... + // TWLɊ荞݂ + /// ۂɊ荞݂̂SoC + /// rbg̕тႤʓ| + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] = ( ( data & REG_BIT_SEND_TWL_PWSW_DET ) != 0 ) ? REG_BIT_TWL_IRQ_PWSW_DET : 0x00; //pwsw_det + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_RESET_DET ) != 0 ) ? REG_BIT_TWL_IRQ_RESET : 0x00; //reset_req + + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_OFF_DET ) != 0 ) ? REG_BIT_TWL_IRQ_OFF : 0x00; //off_req + + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_BATT_LOW ) != 0 ) ? REG_BIT_TWL_IRQ_BT_LOW : 0x00; //batt_low + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= ( ( data & REG_BIT_SEND_TWL_BATT_EMPTY ) != 0 ) ? REG_BIT_TWL_IRQ_BT_EMPTY : 0x00; //batt_empty + + if(( data & REG_BIT_SEND_TWL_VOL_CLICK ) != 0 ) + { + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] |= REG_BIT_TWL_IRQ_VOL_CHANGE; //vol_changed + } + } + break; + + case VREG_CX_FREE_DATA: + if( vreg_free_adrs < VREG_C_FREE_SIZE ) + { + pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ] = data; + vreg_free_adrs ++; + } + else + { + dbg_nop(); + } + break; + + case VREG_CX_FREE_ADRS: + vreg_free_adrs = data; + break; + + case VREG_C_LED_POW: + if( iic_burst_state == 0 ) + { + vreg_ctr[ VREG_C_LED_POW ] = data; + iic_burst_state ++; + } + else if( iic_burst_state < 5 ) + { + led_red_batt_empty.dats[ iic_burst_state -1 ] = data; + iic_burst_state ++; + } + break; + + case VREG_C_LED_WIFI: + case VREG_C_LED_CAM: + case VREG_C_LED_3D: + vreg_ctr[adrs] = (u8)( data & 0x0F ); + break; + + case VREG_C_LED_NOTIFY_DATA: + if( iic_burst_state < sizeof( uni_info_LED ) ) + { + if(( iic_burst_state == 1 ) && ( data == 0 )) // fade_time == 0 ֎~ + { + data = 1; + } + info_LED.bindata[ iic_burst_state ] = data; + iic_burst_state ++; + if( iic_burst_state > 4 ) // p^[1ł + { + info_led_pattern_updated = true; + } + } + break; + + case VREG_C_MCU_STATUS: +// vreg_twl[ REG_TWL_INT_ADRS_MODE ] = (u8)( ( data >> 6 ) & 0x03 ); Rł悢B̑胊ZbgŃNA + vreg_ctr[ VREG_C_MCU_STATUS ] &= data; // bitNA͂邪Zbg͂ȂB + // ̕twlWX^~[͓ǂݏoꎞɍ + break; + + case VREG_C_VCOM_T: + case VREG_C_VCOM_B: + renge_task_immed_add( tski_vcom_set ); + vreg_ctr[adrs] = data; + break; + + case VREG_C_DBG03: + if( ( vreg_ctr[VREG_C_DBG01] == 'j' ) + && ( vreg_ctr[VREG_C_DBG02] == 'h' ) + && ( data == 'l' ) ) + { + renge_task_immed_add( tski_firm_update ); + IICAMK = 1; + } + vreg_ctr[ VREG_C_DBG03 ] = data; + break; + + /// 񓯊œĂ邽߂ł͏ȂB + // \񂷂邾stopŏ + case VREG_C_RTC_SEC: + case VREG_C_RTC_MIN: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x7F ); + break; + + case VREG_C_RTC_DAY: + case VREG_C_RTC_HOUR: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x3F ); + break; + + case VREG_C_RTC_YOBI: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x07 ); + break; + + case VREG_C_RTC_MONTH: + set_rtc( adrs - VREG_C_RTC_SEC, data & 0x1F ); + break; + + case VREG_C_RTC_YEAR: + set_rtc( adrs - VREG_C_RTC_SEC, data ); + break; + + case VREG_C_RTC_COMP: + WDT_Restart(); + while(1) + { + RWAIT = 1; + while( !RWST ){} + if( SEC != 0 ) + { + break; + } + RWAIT = 0; + } + SUBCUD = data; + RWAIT = 0; + vreg_ctr[ VREG_C_RTC_COMP ] = data; + break; + + case VREG_C_RTC_ALARM_MIN: + rtc_alarm_dirty = true; + vreg_ctr[ VREG_C_RTC_ALARM_MIN ] = (u8)( data & 0x7F ); + break; + + case VREG_C_RTC_ALARM_HOUR: + rtc_alarm_dirty = true; + vreg_ctr[ VREG_C_RTC_ALARM_HOUR ] = (u8)( data & 0x3F ); + break; + + // ł悢 + case VREG_C_RTC_ALARM_DAY: + vreg_ctr[ VREG_C_RTC_ALARM_DAY ] = (u8)( data & 0x3F ); + break; + + case VREG_C_RTC_ALARM_MONTH: + vreg_ctr[ VREG_C_RTC_ALARM_MONTH ] = (u8)( data & 0x1F ); + break; + + case VREG_C_ACC_CONFIG: + renge_task_immed_add( tski_acc_setup ); + vreg_ctr[ VREG_C_ACC_CONFIG ] = data; + break; + + case VREG_C_ACC_R_ADRS: + renge_task_immed_add( tski_acc_read ); + vreg_ctr[ VREG_C_ACC_R_ADRS ] = data; + break; + + case VREG_C_ACC_W_BUF: + renge_task_immed_add( tski_acc_write ); + vreg_ctr[ VREG_C_ACC_W_BUF ] = data; + break; + + case VREG_C_ACC_HOSU_SETTING: + if( ( data & 0x01 ) != 0 ) + { + clear_hosu_hist(); // NA + } + break; + + case VREG_C_WIFI_CALIB: + if( data & REG_BIT_WIFI_CALIB_32K_HI_Z ) + { + RTC_32k_HI_Z(); + } + else{ + RTC_32k_on(); + } + if( data & REG_BIT_WIFI_CALIB_RSTS_AST ) + { + RESET1_ast; + // RESET2_ast; RESET1̂݁B + // FCRAM_RST_ast; + } + else{ +/* + SoC ~܂Ă܂̂łɗȂ + RESET1_neg; + RESET2_neg; + FCRAM_RST_neg; +*/ + } + vreg_ctr[ VREG_C_WIFI_CALIB ] = data; + break; + + case VREG_C_COMMAND3: + switch ( data ) + { +#ifdef _ENABLE_COMMAND3_ + case 'r': + // 荞݃[`FSLCuĂԂ̂͋֎~ + // }CRċNB@WX^ނB + renge_task_immed_add( tski_mcu_reset ); + break; + + case 'w': + // WDTōċNieXgj +// mcu_wdt_reset; // ̃R}hgӖȂłI + while(1) + { + dbg_nop(); + } + break; +#endif //_ENABLE_COMMAND3_ + +#ifdef _ENABLE_HAL_ + case 'p': + reserve_pedo_increnent = 1; + // ő₷ɂ̓X^bNȂBŗ\̂݁Atask_miscŏ +// hosu_increment_if_necessary(); // A + break; +#endif //_ENABLE_HAL_ + + } +// vreg_ctr[ VREG_C_COMMAND3 ] = data; // KvȂ + break; + + case VREG_C_RBR_CONTROL: +// vreg_ctr[ VREG_C_RBR_CONTROL ] = data; // todo debug u[N|Cgu߁BAt[WX^ + break; + + + // read only ////////////////////////////////////////// + case VREG_C_MCU_VER_MAJOR: + case VREG_C_MCU_VER_MINOR: + case VREG_C_3D: // ɃtbV + case VREG_C_SND_VOL: // ɃtbV + case VREG_C_BT_TEMP: // ɃtbV + case VREG_C_BT_REMAIN: // ɃtbV + case VREG_C_BT_REMAIN_FINE: // ɃtbV + case VREG_C_BT_VOLTAGE: // ɃtbV + case VREG_C_STATUS_1: // KɃtbV + case VREG_C_STATUS: // KɃtbV + case VREG_C_IRQ0: // ̂‚łɊ荞݋NĂقȂ... + case VREG_C_IRQ1: + case VREG_C_IRQ2: + case VREG_C_IRQ3: + case VREG_C_IRQ4: + case VREG_C_LED_NOTIFY_FLAG: // tbV + case VREG_C_RTC_SEC_FINE_L: // tbV + case VREG_C_RTC_SEC_FINE_H: // tbV + // VREG_C_ACC_RESERVE, // NȂ + // VREG_C_ACC_HOSU_HIST = 0x4F, + case VREG_C_ACC_XH: // tbV + case VREG_C_ACC_XL: + case VREG_C_ACC_YH: + case VREG_C_ACC_YL: + case VREG_C_ACC_ZH: + case VREG_C_ACC_ZL: +// dbg_nop(); + // return( ERROR ) + break; + + case VREG_C_ACC_HOSU_L: // ĂǁAfobOpB(AhX0x4B == mcu sla(r)) +// dbg_nop(); + /* FALLTHROUGH */ + + // ʂɏ邾 ///////////////////////////////// + default: + /* + case VREG_C_IRQ_MASK0: + case VREG_C_IRQ_MASK1: + case VREG_C_IRQ_MASK2: + case VREG_C_IRQ_MASK3: + case VREG_C_IRQ_MASK4: + case VREG_C_DBG01: + case VREG_C_DBG02: + case VREG_C_LED_BRIGHT: + case VREG_C_ACC_HOSU_L: + case VREG_C_ACC_HOSU_M: + case VREG_C_ACC_HOSU_H: + case VREG_C_ACC_HOSU_HOUR_BOUNDARY: + case VREG_C_FREE_ADRS: + case VREG_C_RTC_ALARM_YEAR: + case VREG_C_ACC_W_ADRS: + case VREG_C_OFF_DELAY: + case VREG_C_HAL_OVW_CONT0: + case VREG_C_HAL_OVW_DAT0: + case VREG_C_HAL_OVW_CONT1: + case VREG_C_HAL_OVW_DAT1: + */ + if( adrs < VREG_C_ENDMARK_ ) + { + vreg_ctr[adrs] = data; + break; + } + else + { +// dbg_nop(); // `AhXɏ@Ȃ񂩃oOĂȂH + // return( ERROR ) + break; + } + } +// return( SUCCESS ) + return; +} + + + +/********************************************//** + I2CzWX^ǂ݂܂B + + ߂F xx f[^ + + ӁF̃AhX̏ŌĂ΂ ̂ŁA + [hꂽNAȂǂ͋C‚ + + ( vreg_ctr_after_read( u8 adrs ) ) + ***********************************************/ +u8 vreg_ctr_read( u8 adrs ) +{ + static u16 rsub_temp; + u8 temp; + + // RTC͓ǂݏorɌJオ̂邽 + if( ( VREG_C_RTC_SEC <= adrs ) && ( adrs <= VREG_C_RTC_YEAR ) ) + { + rtc_buf_refresh( ); + } + else if( adrs == VREG_C_MCU_STATUS ) + { + return( ( vreg_ctr[ VREG_C_MCU_STATUS ] & 0x03 ) | + ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x03 ) << 6 ) | // sys_mode + ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 ) >> 2 )); // vol32 + } + else if( adrs == VREG_C_RTC_SEC_FINE_L ) + { + rsub_temp = RSUBC; + return( (u8)( rsub_temp & 0xFF ) ); + } + else if( adrs == VREG_C_RTC_SEC_FINE_H ) + { + return( (u8)( ( rsub_temp >> 8 ) & 0xFF ) ); + } +/* + // debug I + else if( adrs == VREG_C_IRQ_MASK0 ) + { + return( vreg_ctr[ VREG_C_IRQ_MASK0 ] & 0x7F ); // `MSB0B1ȂʐMG[ + } +*/ + else if( adrs == VREG_C_ACC_HOSU_HIST ) + { + return( hosu_read() ); + } + else if( adrs == VREG_CX_FREE_DATA ) + { + if( vreg_free_adrs >= VREG_C_FREE_SIZE ) + { + temp = 0x00; + } + else + { + temp = pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ]; + // vreg_free_adrs ++; // ʼnZĂ܂ƃCfbNX + } + return( temp ); + } + else if( adrs == VREG_CX_INFO ) + { + return( extinfo_read() ); + } + else if( adrs == VREG_C_ACC_HOSU_SETTING ) + { + if( pedolog_overflow ) + { + return( 0x10 ); + } + else + { + return( 0 ); + } + } + + if( adrs >= VREG_C_ENDMARK_ ) + { + // VREG_C_INFO > VREG_C_ENDMARK_ Ȃ̂łƂ + return( 0xFF ); + } + return ( vreg_ctr[adrs] ); +} + + +/********************************************//** + I2CzWX^ǂ܂ĉ郌WX^ + ***********************************************/ +void vreg_ctr_after_read( u8 adrs, u8 data ) +{ + // 荞݃tO̓[hŃNA + switch( adrs ) + { + case VREG_C_IRQ0: + case VREG_C_IRQ1: + case VREG_C_IRQ2: + case VREG_C_IRQ3: + case VREG_C_IRQ4: + DI_wt_chk(); + vreg_ctr[ adrs ] ^= data; + EI(); + irq_readed = true; + break; + + case VREG_CX_FREE_DATA: + vreg_free_adrs ++; + break; + + default: + break; + } +} + + + + + + +/********************************************//** + 荞݂ + + - @}XNĂAtOuĂȂvA荞ݓȂB + + - @荞݂AǂݏoOɃ}XNƂ́ASoC̏L[ɂ + IRQǂރ^XNςł̂ŁAǂ݂ɂ͗B + + @ƁAÔ߁A}XNƂ͋ǂ݂Ă炤B + + łDĨ`FbNsvB + + @DIɗ̂I2C_twlARTC_A[B̒ŖڒEIĎgpȂ + ***********************************************/ +void set_irq( u8 irqreg, u8 irq_flg ) +{ + u8 tot; +//0 u8 ei_orig; // EItOۑ + + if(( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP )) + { +/*0 łDIԂȂPAKvȂ + ei_orig = get_ei(); + + //. debug + if( !ei_orig ) + { + dbg_nop(); + } + + DI_wt_chk(); +*/ + DI(); + if( ( vreg_ctr[ irqreg + 8 ] & irq_flg ) == 0 ) + { + vreg_ctr[ irqreg ] |= irq_flg; + IRQ0_neg; // uグ... +//0 if( ei_orig ) + { + EI(); + } + tot = 0; + while( !IRQ0 && ( ++tot != 0 ) ){;} // O.D.Ȃ̂łƂ̂҂ IRQ_mcu LɔĂƍ(•s) + IRQ0_ast; // ƂBiGbW荞ׁ݂̈j + } +//0 if( ei_orig ) + { + EI(); + } + } +} + diff --git a/snake_branches/2.35/vreg_ctr.h b/snake_branches/2.35/vreg_ctr.h new file mode 100644 index 0000000..00c2140 --- /dev/null +++ b/snake_branches/2.35/vreg_ctr.h @@ -0,0 +1,327 @@ +#ifndef __vreg_ctr__ +#define __vreg_ctr__ +/* + + + $Id$ +*/ + +#include "config.h" + +// VREG_C_MCU_STATUS +// bit[7.6] twl.sys_mode[1.0] ctr珑ȂAfcr_resetɓKɃZbg +// bit[5] V [7] ctr珑ȂAfcr_resetɓKɃZbg +#define REG_BIT_STATUS_WDT_RESET ( 1 << 1 ) +#define REG_BIT_RTC_BLACKOUT ( 1 << 0 ) + + +// VREG_C_STATUS, +#define REG_BIT_LCD_POW ( 1 << 7 ) +#define REG_BIT_BL_U ( 1 << 6 ) +#define REG_BIT_BL_L ( 1 << 5 ) +#define REG_BIT_BATT_CHARGE ( 1 << 4 ) +#define REG_BIT_POW_SUPPLY ( 1 << 3 ) +// gp ( 1 << 2 ) +#define REG_BIT_ST_SHELL_OPEN ( 1 << 1 ) +// gp ( 1 << 0 ) + + +// VREG_C_STATUS_X +// gp ( 1 << 6 ) +// gp ( 1 << 5 ) +#define REG_BIT_WIFI_TX ( 1 << 4 ) +// twl bl ̃~[[1: ( 1 << 3 ) +// 0]( 1 << 2 ) +#define REG_BIT_ACCERO_ERR ( 1 << 1 ) +#define REG_BIT_MGIC_ERR ( 1 << 0 ) + +#define REG_BIT_MASK_STATUS1_NTR_PM_REG 0x0C + + +// VREG_C_IRQ0 +#define REG_BIT_IRQ_WDT_RESET ( 1 << 7 ) +#define REG_BIT_SHELL_OPEN ( 1 << 6 ) +#define REG_BIT_SHELL_CLOSE ( 1 << 5 ) +#define REG_BIT_SW_WIFI_CLICK ( 1 << 4 ) +#define REG_BIT_SW_HOME_RELEASE ( 1 << 3 ) +#define REG_BIT_SW_HOME_CLICK ( 1 << 2 ) +#define REG_BIT_SW_POW_HOLD ( 1 << 1 ) +#define REG_BIT_SW_POW_CLICK ( 1 << 0 ) + +// VREG_C_IRQ1 +#define REG_BIT_BT_CHG_START ( 1 << 7 ) +#define REG_BIT_BT_CHG_STOP ( 1 << 6 ) +#define REG_BIT_BT_REMAIN ( 1 << 5 ) +#define REG_BIT_ACC_DAT_RDY ( 1 << 4 ) +#define REG_BIT_ACC_ACK ( 1 << 3 ) +#define REG_BIT_RTC_ALARM ( 1 << 2 ) +#define REG_BIT_BT_DC_CONNECT ( 1 << 1 ) +#define REG_BIT_BT_DC_DISC ( 1 << 0 ) + +// VREG_C_IRQ2 +#define REG_BIT_TWL_VER_READ ( 1 << 7 ) +//#define REG_BIT_TWL_SNDVOL_CHANGE ( 1 << 6 ) p~ +#define REG_BIT_SLIDE_VOL_ACROSS_TWL_BOUNDARY ( 1 << 6 ) +#define REG_BIT_TWL_BL_U_ON ( 1 << 5 ) +#define REG_BIT_TWL_BL_U_OFF ( 1 << 4 ) +#define REG_BIT_TWL_BL_L_ON ( 1 << 3 ) +#define REG_BIT_TWL_BL_L_OFF ( 1 << 2 ) +#define REG_BIT_TWL_OFF_REQ ( 1 << 1 ) +#define REG_BIT_TWL_RESET_REQ ( 1 << 0 ) + +// VREG_C_IRQ3 +#define REG_BIT_BL_U_ON ( 1 << 5 ) +#define REG_BIT_BL_U_OFF ( 1 << 4 ) +#define REG_BIT_BL_L_ON ( 1 << 3 ) +#define REG_BIT_BL_L_OFF ( 1 << 2 ) +#define REG_BIT_LCD_ON ( 1 << 1 ) +#define REG_BIT_LCD_OFF ( 1 << 0 ) + + +// ̂ǂ... +//#define REG_BIT_VR_3D_CHANGE ( 1 << 7 ) + + + +// VREG_C_COMMAND0 +//#define REG_BIT_CMD_LCD_ON ( 1 << 7 ) +//#define REG_BIT_CMD_LCD_OFF ( 1 << 6 ) +//#define REG_BIT_CMD_BL_ON ( 1 << 5 ) +//#define REG_BIT_CMD_BL_OFF ( 1 << 4 ) +#define REG_BIT_GOING_TO_SLEEP ( 1 << 4 ) +#define REG_BIT_FCRAM_RESET_REQ ( 1 << 3 ) +#define REG_BIT_RESET2_REQ ( 1 << 2 ) +#define REG_BIT_RESET1_REQ ( 1 << 1 ) +#define REG_BIT_OFF_REQ ( 1 << 0 ) + +// VREG_C_COMMAND1 (TWLɊ荞݂) +// gp ( 1 << 7 ) +// gp ( 1 << 6 ) +#define REG_BIT_SEND_TWL_VOL_CLICK ( 1 << 5 ) +#define REG_BIT_SEND_TWL_BATT_EMPTY ( 1 << 4 ) +#define REG_BIT_SEND_TWL_BATT_LOW ( 1 << 3 ) +#define REG_BIT_SEND_TWL_OFF_DET ( 1 << 2 ) +#define REG_BIT_SEND_TWL_RESET_DET ( 1 << 1 ) +#define REG_BIT_SEND_TWL_PWSW_DET ( 1 << 0 ) + +// VREG_C_COMMAND2 t֌W +#define REG_BIT_CMD_BL_U_ON ( 1 << 5 ) +#define REG_BIT_CMD_BL_U_OFF ( 1 << 4 ) +#define REG_BIT_CMD_BL_L_ON ( 1 << 3 ) +#define REG_BIT_CMD_BL_L_OFF ( 1 << 2 ) +#define REG_BIT_CMD_LCD_ON ( 1 << 1 ) +#define REG_BIT_CMD_LCD_OFF ( 1 << 0 ) +#define REG_BITS_CMD_BL ( REG_BIT_CMD_BL_U_ON | REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_ON | REG_BIT_CMD_BL_L_OFF ) + + +// TWLɒʒmIRQWX^ +#define REG_BIT_TWL_IRQ_PWSW_DET 0x08 +#define REG_BIT_TWL_IRQ_RESET 0x01 +#define REG_BIT_TWL_IRQ_OFF 0x02 +#define REG_BIT_TWL_IRQ_BT_LOW 0x20 +#define REG_BIT_TWL_IRQ_BT_EMPTY 0x10 +#define REG_BIT_TWL_IRQ_VOL_CHANGE 0x40 + + +// CODECPMIC NTR ̑㗝WX^ +#define REG_BIT_TWL_REQ_OFF ( 1 << 6 ) +#define REG_BIT_TWL_REQ_BL_U ( 1 << 3 ) +#define REG_BIT_TWL_REQ_BL_L ( 1 << 2 ) +#define REG_BIT_TWL_REQ_RESET ( 1 << 0 ) + + +// VREG_C_LED_NOTIFY_FLAG +#define REG_BIT_IN_LOOP ( 1 << 0 ) + +// RBR control (0x57) +#define REG_BIT_FLIGHT ( 1 << 1 ) +#define REG_BIT_RESET_n ( 1 << 0 ) + + +// HAL bitfields 0 +#define REG_BIT_HAL0_PM_EXTDC_n ( 1 << 7 ) +#define REG_BIT_HAL0_BT_IN_CHG_n ( 1 << 6 ) +//#define REG_BIT_HAL0_PM_IRQ_n // gȂ +#define REG_BIT_HAL0_RSV_5 ( 1 << 5 ) +#define REG_BIT_HAL0_WL_TX ( 1 << 4 ) +#define REG_BIT_HAL0_SHELL_OPEN ( 1 << 3 ) // statusɂ܂ +#define REG_BIT_HAL0_SW_WIFI_n ( 1 << 2 ) +#define REG_BIT_HAL0_SW_HOME_n ( 1 << 1 ) +#define REG_BIT_HAL0_SW_POW_n ( 1 << 0 ) + + +// HAL bitfields 1 +#define REG_BIT_HAL1_DIPSW_1 ( 1 << 3 ) +#define REG_BIT_HAL1_DIPSW_0 ( 1 << 2 ) +#define REG_BIT_HAL1_HW_DET_1 ( 1 << 1 ) +#define REG_BIT_HAL1_HW_DET_0 ( 1 << 0 ) + + +// VREG_C_WIFI_CALIB +#define REG_BIT_WIFI_CALIB_32K_HI_Z ( 1 << 1 ) +#define REG_BIT_WIFI_CALIB_RSTS_AST ( 1 << 0 ) + + +/* + ev +#define REG_BIT_ ( 1 << 7 ) +#define REG_BIT_ ( 1 << 6 ) +#define REG_BIT_ ( 1 << 5 ) +#define REG_BIT_ ( 1 << 4 ) +#define REG_BIT_ ( 1 << 3 ) +#define REG_BIT_ ( 1 << 2 ) +#define REG_BIT_ ( 1 << 1 ) +#define REG_BIT_ ( 1 << 0 ) +*/ + + + +/*============================================================================*/ +extern u8 vreg_ctr[]; + +/*============================================================================*/ +enum VREG_C_ADRS +{ // `AhX֏񂾍ۂ͕̓s + VREG_C_MCU_VER_MAJOR = 0x00, + VREG_C_MCU_VER_MINOR, + VREG_C_MCU_STATUS, + + VREG_C_VCOM_T = 0x03, + VREG_C_VCOM_B, + + VREG_C_DBG01 = 0x05, + VREG_C_DBG02, + VREG_C_DBG03, + + VREG_C_3D = 0x08, + VREG_C_SND_VOL, + VREG_C_BT_TEMP, + VREG_C_BT_REMAIN, + VREG_C_BT_REMAIN_FINE, + VREG_C_BT_VOLTAGE, + + VREG_C_STATUS_1 = 0x0E, + VREG_C_STATUS = 0x0F, + + VREG_C_IRQ0 = 0x10, + VREG_C_IRQ1, + VREG_C_IRQ2, + VREG_C_IRQ3, + VREG_C_IRQ4, + + VREG_C_IRQ_MASK0 = 0x18, + VREG_C_IRQ_MASK1, + VREG_C_IRQ_MASK2, + VREG_C_IRQ_MASK3, + VREG_C_IRQ_MASK4, + + VREG_C_COMMAND0 = 0x20, + VREG_C_COMMAND1, + VREG_C_COMMAND2, + VREG_C_COMMAND3, // 'r' Ń}CRZbgA 'w' WDTZbg + + VREG_C_OFF_DELAY = 0x24, +// VREG_C_VOL_DIGITAL = 0x25, // todo +// VREG_C_VOL_OPTION, + VREG_C_VOL_ADC_RAW = 0x27, + + VREG_C_LED_BRIGHT = 0x28, + VREG_C_LED_POW, + VREG_C_LED_WIFI, + VREG_C_LED_CAM, + VREG_C_LED_3D, + VREG_C_LED_NOTIFY_DATA, + VREG_C_LED_NOTIFY_FLAG, + + VREG_C_RBR_CONTROL = 0x2F, // p~ + + VREG_C_RTC_SEC = 0x30, + VREG_C_RTC_MIN, + VREG_C_RTC_HOUR, + VREG_C_RTC_YOBI, + VREG_C_RTC_DAY, + VREG_C_RTC_MONTH, + VREG_C_RTC_YEAR, + + VREG_C_RTC_COMP, + + VREG_C_RTC_ALARM_MIN = 0x38, + VREG_C_RTC_ALARM_HOUR, + VREG_C_RTC_ALARM_DAY, + VREG_C_RTC_ALARM_MONTH, + VREG_C_RTC_ALARM_YEAR, + + VREG_C_RTC_SEC_FINE_L, + VREG_C_RTC_SEC_FINE_H, + + VREG_C_WIFI_CALIB = 0x3F, + + VREG_C_ACC_CONFIG = 0x40, + VREG_C_ACC_R_ADRS, + VREG_C_ACC_RESERVE, + VREG_C_ACC_W_ADRS, + VREG_C_ACC_W_BUF, // r,w p + + VREG_C_ACC_XL = 0x45, + VREG_C_ACC_XH, + VREG_C_ACC_YL, + VREG_C_ACC_YH, + VREG_C_ACC_ZL, + VREG_C_ACC_ZH, + + VREG_C_ACC_HOSU_L = 0x4B, + VREG_C_ACC_HOSU_M, + VREG_C_ACC_HOSU_H, + VREG_C_ACC_HOSU_SETTING, + VREG_C_ACC_HOSU_HIST = 0x4F, + + VREG_C_ACC_HOSU_HOUR_BOUNDARY = 0x50, + VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC, + + VREG_C_HAL_OVW_CONT0 = 0x52, + VREG_C_HAL_OVW_DAT0, + VREG_C_HAL_OVW_CONT1, // reserved + VREG_C_HAL_OVW_DAT1, // reserved + + VREG_C_HAL_OVW_BT_FUEL = 0x56, + VREG_C_HAL_OVW_BT_VOLTAGE, + + VREG_C_VOL_CAL_MIN = 0x58, + VREG_C_VOL_CAL_MAX, + + VREG_C_HAL_OVW_TEMPERATURE = 0x5A, + + VREG_C_ENDMARK_ +}; + +// Ԃ͔ɂāAmۂȂ߂ ʂ define Ă +#define VREG_CX_INFO 0x7F +#define VREG_CX_FREE_ADRS 0x60 +#define VREG_CX_FREE_DATA 0x61 +// VREG_C_AMBIENT_BRIGHTNESS = 0xXX, + + + + +/*============================================================================*/ +void vreg_ctr_init( ); +void vreg_ctr_reset( ); +void vreg_ctr_write( u8 adrs, u8 data ); +u8 vreg_ctr_read( u8 phy_adrs ); +void vreg_ctr_after_read( u8 adrs, u8 data ); +void set_irq( u8 irqreg, u8 irq_flg ); + + +#define is_wifi_calib_resets_ast ( vreg_ctr[ VREG_C_WIFI_CALIB ] & REG_BIT_WIFI_CALIB_RSTS_AST ) +#define vreg_stop_acc ( vreg_ctr[ VREG_C_ACC_CONFIG ] &= ~( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ) ) +#define vreg_set_acc_error ( vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_ACCERO_ERR ) +#define is_acc_on ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_ACQ ) +#define is_pedo_on ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_HOSU ) +#define is_mgic_error ( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR ) +#define vreg_set_mgic_error ( vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_MGIC_ERR ) +#define vreg_clear_mgic_error ( vreg_ctr[ VREG_C_STATUS_1 ] &= ~(REG_BIT_MGIC_ERR) ) +#define is_bt_charging ( vreg_ctr[VREG_C_STATUS] & REG_BIT_BATT_CHARGE ) +#define is_shell_open ( vreg_ctr[VREG_C_STATUS] & REG_BIT_ST_SHELL_OPEN ) + + +#endif diff --git a/snake_branches/2.35/vreg_twl.c b/snake_branches/2.35/vreg_twl.c new file mode 100644 index 0000000..1cb1225 --- /dev/null +++ b/snake_branches/2.35/vreg_twl.c @@ -0,0 +1,169 @@ +/* ======================================================== + TWL݊I2CWX^ + + $Id$ + ======================================================== */ +#include "incs.h" +#include "jhl_defs.h" +#include "led.h" + +#include "vreg_twl.h" +//#include "vreg_ctr.h" +#include "adc.h" + + +// ======================================================== +#define TWL_REG_VER_INFO 0x35 +#define NON_EXIST_REG 0xFF + +// ======================================================== +u8 vreg_twl[_REG_TWL_INT_ADRS_ENDMARK]; + + +extern bit twl_ver_read; +extern bit cam_led_update; +extern bit vol_changed_by_twl; + + +// ======================================================== +extern void tsk_led_cam(); + + + + +/********************************************//** + zWX^̏ + ***********************************************/ +void vreg_twl_init( ) +{ + vreg_twl[ REG_TWL_INT_ADRS_MODE ] = 0x03; + vreg_twl[ REG_TWL_INT_ADRS_IRQ ] = 0; + vreg_twl[ REG_TWL_INT_ADRS_CAM ] = 0; + vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = 0; +} + + + +/********************************************//** + I2CzWX^ɏEANV + + @ adrs ͓AhX + + @݂ȂAhXɃANZXꍇA܂B + ***********************************************/ +void vreg_twl_write( u8 adrs, u8 data ) +{ + switch ( adrs ) + { + case ( REG_TWL_INT_ADRS_VOL ): + { + vol_changed_by_twl = true; + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = data; + //renge_task_immed_add( tski_vol_update ); + vol_polling = 3; + break; + } + + case ( REG_TWL_INT_ADRS_MODE ): + vreg_twl[ REG_TWL_INT_ADRS_MODE ] = ( data & 0x83 ); // [8]vol32 [1:0]nand + break; + + case ( REG_TWL_INT_ADRS_CAM ): + vreg_twl[ REG_TWL_INT_ADRS_CAM ] = ( data & 0x03 ); + if( ( data & 0x03 ) == TWL_CAMLED_BLINK ) + { + cam_led_update = true; // łȂƈꔭɕs邽 + } + tsk_led_cam(); // uN̓sŋN + break; + + case ( REG_TWL_INT_ADRS_TEMP0 ): + vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = data; + break; + + case ( REG_TWL_INT_ADRS_COMMAND ): +/* + if( data <= 2 ){ + if( ( data & REG_BIT_TWL_OFF_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_OFF_REQ ); // OFFĂ炵B + break; + } + else if( ( data & REG_BIT_TWL_RESET_REQ ) != 0 ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); //ZbgȂB̂́ASPI痈܂B + break; + } + } +*/ + if( data == REG_BIT_TWL_RESET_REQ ) + { + set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); //ZbgȂB̂́ASPI痈܂B + break; + } + } + return; +} + + + +/********************************************//** + I2CzWX^ǂ݂܂B + + @ adrs O猩Ƃ́AAhX + + @߂ xx f[^ + + @݂ȂAhXɃANZXꍇA߂l0x5A + ***********************************************/ +u8 vreg_twl_read( u8 phy_adrs ) +{ + u8 temp; + + switch( phy_adrs ){ + // 10%ȉŐԂɂȂ + case( REG_TWL_INT_ADRS_POWER_INFO ): + // x̃Zbg get_batt_left()ixĖłj + return( vreg_twl[ REG_TWL_INT_ADRS_POWER_INFO ] | ( !PM_EXTDC_n ? 0x80: 0x00 ) ); // A_v^bit(A_v^L) + + case( REG_TWL_INT_ADRS_IRQ ): + temp = vreg_twl[ REG_TWL_INT_ADRS_IRQ ]; + vreg_twl[ REG_TWL_INT_ADRS_IRQ ]= 0; + return( temp ); + + case( REG_TWL_INT_ADRS_VER_INFO ): +// set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); // xIɖȂ̂ + twl_ver_read = true; + return( TWL_REG_VER_INFO ); + + case( REG_TWL_ADRS_NON_EXIST ): + return( 0x00 ); + + default: + return( vreg_twl[ phy_adrs ] ); + } +} + + + +/********************************************//** + O猩钎HAhXA̘AAhXɓǂݑւ + + 0xFF݂͑ȂAhXB + ***********************************************/ +u8 adrs_table_twl_ext2int( u8 img ) +{ + switch( img ){ + case( REG_TWL_ADRS_IRQ ): return( REG_TWL_INT_ADRS_IRQ ); + case( REG_TWL_ADRS_COMMAND ): return( REG_TWL_INT_ADRS_COMMAND ); + case( REG_TWL_ADRS_POWER_INFO ): return( REG_TWL_INT_ADRS_POWER_INFO ); + case( REG_TWL_ADRS_VOL ): return( REG_TWL_INT_ADRS_VOL ); + case( REG_TWL_ADRS_CAM ): return( REG_TWL_INT_ADRS_CAM ); + case( REG_TWL_ADRS_TEMP0 ): return( REG_TWL_INT_ADRS_TEMP0 ); + case( REG_TWL_ADRS_VER_INFO ): return( REG_TWL_INT_ADRS_VER_INFO ); + case( REG_TWL_ADRS_MODE ): return( REG_TWL_INT_ADRS_MODE ); + default: return( REG_TWL_ADRS_NON_EXIST ); +// 0ǂ߂΂悢AȂėǂ +// case( REG_TWL_ADRS_WIFI ): return( REG_TWL_INT_ADRS_WIFI ); + } +} diff --git a/snake_branches/2.35/vreg_twl.h b/snake_branches/2.35/vreg_twl.h new file mode 100644 index 0000000..63cdd94 --- /dev/null +++ b/snake_branches/2.35/vreg_twl.h @@ -0,0 +1,127 @@ +#ifndef __vreg_twl__ +#define __vreg_twl__ +/* ========================================================================= */ +extern u8 vreg_twl[]; + + +/* + * O猩Ƃ̃}CRWX^AhXB + * gȂǂlĔєтɂĂB + */ +/* + * 荞ݗvtO + * MSB:OdL/Ȃω ij + * 6:VolL[iύXɌ炸BMAXɁ{łBj + * 5:drd o + * 4: + * 3:dXCb` ꌟo + * 2:iݒj + * 1:dXCb` OFF ԉꌟo + * LSB: Zbg + */ +enum REG_TWL_ADRS +{ // `AhX֏񂾍ۂ͖ + REG_TWL_ADRS_VER_INFO = 0x00, + REG_TWL_ADRS_PMIC_INFO, + REG_TWL_ADRS_BATT_INFO, + REG_TWL_ADRS_IRQ = 0x10, + REG_TWL_ADRS_COMMAND, + REG_TWL_ADRS_MODE, + REG_TWL_ADRS_POWER_INFO = 0x20, + REG_TWL_ADRS_POWER_SAVE, + REG_TWL_ADRS_WIFI = 0x30, + REG_TWL_ADRS_CAM, + REG_TWL_ADRS_VOL = 0x40, + REG_TWL_ADRS_BL, + REG_TWL_ADRS_CODEC_MIC_GAIN = 0x50, + REG_TWL_ADRS_ADC_CALIB = 0x60, + REG_TWL_ADRS_ADC_CALIB_STATUS, + REG_TWL_ADRS_ADC_CALIB_VALUE, + REG_TWL_ADRS_POWER_LED, + REG_TWL_ADRS_TEMP0 = 0x70, + REG_TWL_ADRS_TEMP1, + REG_TWL_ADRS_TEMP2, + REG_TWL_ADRS_TEMP3, + REG_TWL_ADRS_TEMP4, + REG_TWL_ADRS_TEMP5, + REG_TWL_ADRS_TEMP6, + REG_TWL_ADRS_TEMP7, + REG_TWL_ADRS_TIME_PWSW_DELAY = 0x80, + REG_TWL_ADRS_TIME_PWSW_THRESHOLD +}; + +#define REG_TWL_ADRS_NON_EXIST 0xFF + +/* + * }CRł̃WX^̎ + * ‚߂Ă + */ +enum REG_TWL_ADRS_INT +{ + REG_TWL_INT_ADRS_VER_INFO = 0x00, +// REG_TWL_INT_ADRS_PMIC_INFO, +// REG_TWL_INT_ADRS_BATT_INFO, + REG_TWL_INT_ADRS_IRQ, // 0x10, + REG_TWL_INT_ADRS_COMMAND, + REG_TWL_INT_ADRS_MODE, + REG_TWL_INT_ADRS_POWER_INFO, // 0x20, +// REG_TWL_INT_ADRS_POWER_SAVE, +// REG_TWL_INT_ADRS_WIFI, // 0x30, + REG_TWL_INT_ADRS_CAM, + REG_TWL_INT_ADRS_VOL, // 0x40, +// REG_TWL_INT_ADRS_BL, +// REG_TWL_INT_ADRS_CODEC_MIC_GAIN, // 0x50, +// REG_TWL_INT_ADRS_CODEC_MIC_GAIN_RELOAD, +// REG_TWL_INT_ADRS_ADC_CALIB, // 0x60, +// REG_TWL_INT_ADRS_ADC_CALIB_STATUS, +// REG_TWL_INT_ADRS_ADC_CALIB_VALUE, +// REG_TWL_INT_ADRS_POWER_LED, + REG_TWL_INT_ADRS_TEMP0, // 0x70 - 0x77 + REG_TWL_INT_ADRS_TEMP1, + REG_TWL_INT_ADRS_TEMP2, + REG_TWL_INT_ADRS_TEMP3, + REG_TWL_INT_ADRS_TEMP4, + REG_TWL_INT_ADRS_TEMP5, + REG_TWL_INT_ADRS_TEMP6, + REG_TWL_INT_ADRS_TEMP7, +// REG_TWL_INT_ADRS_TIME_PWSW_DELAY, +// REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD + _REG_TWL_INT_ADRS_ENDMARK, +}; + + + +/* ========================================================================= */ +#define is_TWL ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x01 ) +#define with_NAND ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x02 ) +#define volSteps32 ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 ) + +#define reg_wifi_led ( vreg_twl[ REG_TWL_INT_ADRS_WIFI ] & 0x01 ) +#define reg_wifi_led_blink ( vreg_twl[ REG_TWL_INT_ADRS_WIFI ] & 0x02 ) + +#define REG_TWL_ADRS_MODE__VOL32 ( 1 << 7 ) + +typedef enum CAM_LED_TWL_MODE +{ + TWL_CAMLED_OFF, + TWL_CAMLED_ON, + TWL_CAMLED_BLINK, + TWL_CAMLED_DEF_ON +}twl_camLed_mode; + + +/* ========================================================================= */ +void vreg_twl_init( ); +void vreg_twl_write( u8 adrs, u8 data ); +u8 adrs_table_twl_ext2int( u8 img ); +u8 vreg_twl_read( u8 phy_adrs ); + + +// ǂ񂾂NAȂǂ̏ +#define vreg_twl_after_read( reg_adrs ); \ + if( reg_adrs == REG_TWL_INT_ADRS_IRQ ) \ + { \ + vreg_twl[ REG_TWL_INT_ADRS_IRQ ]= 0;\ + } + +#endif diff --git a/snake_branches/2.35/yav_mcu_bsr.plg b/snake_branches/2.35/yav_mcu_bsr.plg new file mode 100644 index 0000000..0563381 --- /dev/null +++ b/snake_branches/2.35/yav_mcu_bsr.plg @@ -0,0 +1,218 @@ +C:\Windows\system32\cmd.exe /c c:\cygwin\bin\touch magic.c +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no loader.c +loader.c(160) : CC78K0R warning W0401: Conversion may lose significant digits +loader.c(161) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 2 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\loader.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no pm.c +pm.c(538) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(849) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(853) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(882) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(896) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(982) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(991) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1062) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1208) : CC78K0R warning W0401: Conversion may lose significant digits +pm.c(1210) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 10 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\pm.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_ctr.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_ctr.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no main.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\main.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no magic.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\magic.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no WDT.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\WDT.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_mcu.c +i2c_mcu.c(192) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_mcu.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_twl.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_twl.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no led.c +led.c(90) : CC78K0R warning W0745: Expected function prototype +led.c(381) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 2 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\led.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no rtc.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\rtc.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2m -qvjl2w -sainter_asm -zpb -no vreg_ctr.c +vreg_ctr.c(159) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(160) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(162) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(164) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(165) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(252) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(252) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(257) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(257) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(261) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(261) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(265) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(265) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_ctr.c(269) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 14 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\vreg_ctr.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2m -qvjl2w -sainter_asm -zpb -no vreg_twl.c +vreg_twl.c(68) : CC78K0R warning W0401: Conversion may lose significant digits +vreg_twl.c(72) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 2 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\vreg_twl.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no adc.c +adc.c(104) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(190) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(241) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(308) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(434) : CC78K0R warning W0745: Expected function prototype +adc.c(463) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(468) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 7 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\adc.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2m -qvjl2w -sainter_asm -zpb -no renge\renge.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\renge.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no accero.c +accero.c(121) : CC78K0R warning W0745: Expected function prototype +Compilation complete, 0 error(s) and 1 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\accero.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2 -qvjl2w -sainter_asm -zpb -no self_flash.c +self_flash.c(289) : CC78K0R warning W0401: Conversion may lose significant digits +self_flash.c(290) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 2 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\self_flash.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no sw.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\sw.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no task_debug.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\task_debug.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no task_misc.c +task_misc.c(380) : CC78K0R warning W0401: Conversion may lose significant digits +task_misc.c(382) : CC78K0R warning W0401: Conversion may lose significant digits +task_misc.c(392) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 3 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\task_misc.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no task_sys.c +task_sys.c(247) : CC78K0R warning W0401: Conversion may lose significant digits +task_sys.c(309) : CC78K0R warning W0401: Conversion may lose significant digits +task_sys.c(589) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 3 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\task_sys.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no pedo_alg_thre_det2.c +pedo_alg_thre_det2.c(104) : CC78K0R warning W0745: Expected function prototype +pedo_alg_thre_det2.c(120) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 2 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\pedo_alg_thre_det2.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no ini_VECT.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\ini_VECT.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no task_status.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\task_status.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no led_cam.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\led_cam.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no led_pow.c +led_pow.c(120) : CC78K0R warning W0401: Conversion may lose significant digits +led_pow.c(125) : CC78K0R warning W0401: Conversion may lose significant digits +led_pow.c(178) : CC78K0R warning W0401: Conversion may lose significant digits +led_pow.c(240) : CC78K0R warning W0401: Conversion may lose significant digits +led_pow.c(271) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 5 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\led_pow.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no hal.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\hal.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no batt_params.c +batt_params.c(63) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.c(63) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.c(81) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.c(100) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.c(100) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.c(118) : CC78K0R warning W0401: Conversion may lose significant digits +batt_params.c(118) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 7 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\batt_params.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no voltable.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\voltable.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no pedo_lpf_coeff.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\pedo_lpf_coeff.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no kanaria_c.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\kanaria_c.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no util_funcs.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\util_funcs.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_mcu-sub.c +Compilation complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_mcu-sub.asm +Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\lk78k0r.exe" -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -obsr.lmf "..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\s0rm.rel" -gi1B339499E033F240BFAAh -pbsr_k0r.map -nkd -gb7EFBFFh -b"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r" -dbsr_mcu.dr -s -w2 loader.rel pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_twl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel sw.rel task_debug.rel task_misc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel task_status.rel led_cam.rel led_pow.rel hal.rel batt_params.rel voltable.rel pedo_lpf_coeff.rel kanaria.rel kanaria_c.rel get_ei.rel util_funcs.rel i2c_mcu-sub.rel +RA78K0R warning W3420: File 'loader.rel' already has had error(s)/warning(s) by 'CC78K' + Read Device File Directory : C:\PROGRAM FILES (X86)\NEC ELECTRONICS TOOLS\DEV\ +RA78K0R warning W3420: File 'pm.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'i2c_mcu.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'led.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'vreg_ctr.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'vreg_twl.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'adc.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'accero.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'self_flash.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'task_misc.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'task_sys.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'pedo_alg_thre_det2.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'led_pow.rel' already has had error(s)/warning(s) by 'CC78K' +RA78K0R warning W3420: File 'batt_params.rel' already has had error(s)/warning(s) by 'CC78K' + +Link complete, 0 error(s) and 14 warning(s) found. +"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\oc78k0r.exe" -y"C:\Program Files (x86)\NEC Electronics Tools\DEV" -_msgoff -o.\bsr.hex -nu -ki bsr.lmf +Object Conversion Complete, 0 error(s) and 0 warning(s) found. +C:\Windows\system32\cmd.exe /c ruby nec_s_2_bsrbin2.rb bsr.hex +nec_s_2_bsrbin2.rb:2: warning: variable $KCODE is no longer effective; ignored +4 +intel-HEX to bsr bin converter + file converted! + + +Build Total error(s) : 0 Total warning(s) : 75 diff --git a/snake_branches/2.35/yav_mcu_bsr.pri b/snake_branches/2.35/yav_mcu_bsr.pri new file mode 100644 index 0000000..b018509 --- /dev/null +++ b/snake_branches/2.35/yav_mcu_bsr.pri @@ -0,0 +1,1031 @@ +[Project.ID] +Ver=200 +Target=IDK0R32G +[Configuration] +Chip=uPD79F0104 +Internal Rom=32KB +Internal Ram=1536B +Clock=Target +Sub Clock=Target +Peripheral Break=0x3 +Firm Clock=System +Flash Programming=Permit +Low-voltage Flash Rewriting=On +Fail Safe Break=0x2000 +Port=1 +NMI=OFF +TRESET=OFF +IRESET=OFF +WAIT=OFF +SysClock=None +SubClock=None +[Mapping] +Count=0 +[Main] +Geometry=154, 154, 1188, 812 +Window=Max +MDI_MAX=OFF +Button=ON +Mode=Auto +Trace=Uncond ON +Trace2=Non Stop +Coverage=OFF +Timer=OFF +Tracer=OFF +[Load File] +Dir=\\tsclient\C\78k_data\yav-mcu-basara\trunk\ +SaveFilter=0 +Start=0 +End=0 +LoadFilter=5 +Offset=0 +Object=ON +Symbol=ON +Erase=OFF +HighSpeed=OFF +Symbol Reset=ON +CPU Reset=ON +File1=\\tsclient\C\78k_data\yav-mcu-basara\trunk\bsr.lmf +LoadFilter1=5 +Offset1=0 +Object1=ON +Symbol1=ON +Erase1=OFF +HighSpeed1=OFF +CPU Reset1=ON +Symbol Reset1=ON +[View File] +Dir=\\tsclient\C\78k_data\yav-mcu-basara\trunk\ +Filter=Source +[Debugger Option] +Source Path="\\tsclient\C\78k_data\yav-mcu-basara\trunk\renge" +Symbol Size=Byte +Symbol Format=Hex +Register Name=Func +Offset Label=OFF +Offset Mnemonic=ON +Tab Count=4 +Tab Size1=*.*, 8 +Tab Size2=*.c, 8 +Tab Size3=*.s, 8 +Tab Size4=*.asm, 8 +Default Source=*.c;*.s;*.asm +Default Module=*.lnk;*.lmf +Startup Start=_@cstart +Startup End=_@cend +Main Symbol=_main +Symbol Type=OFF +Language=C +Kanji=SJIS +[Source] +Geometry=762, 184, 689, 822 +Window=Normal +DispStart=82 +CaretPos=83,0 +Mode=Normal +DispFile= +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Data1= +Data2= +Data3= +Data4= +Data5= +Data6= +Data7= +Data8= +Data9= +Data10= +Data11= +Data12= +Data13= +Data14= +Data15= +Data16= +Option=0 +Case=ON +Direction=Down +File1= +File2= +File3= +File4= +File5= +File6= +File7= +File8= +File9= +File10= +File11= +File12= +File13= +File14= +File15= +File16= +SaveRange=Screen +SaveStart= +SaveEnd= +Accumulative=ON +[Source1] +Geometry=100, 100, 689, 822 +Window=Normal +DispStart=55 +CaretPos=1,0 +Mode=Normal +DispFile=\\tsclient\C\78k_data\yav-mcu-basara\trunk\hal.c +Accumulative=ON +[Assemble] +Geometry=0, 0, 0, 0 +Window=Hide +DispStart=847627264 +CaretPos=0,0 +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Data1= +Data2= +Data3= +Data4= +Data5= +Data6= +Data7= +Data8= +Data9= +Data10= +Data11= +Data12= +Data13= +Data14= +Data15= +Data16= +Case=ON +Scan=OFF +Direction=Down +FindStart= +FindEnd= +SaveRange=Screen +SaveStart= +SaveEnd= +[Memory] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Format=Hex +Mode=Byte +Endian= +Ascii=OFF +Idtag=OFF +Address= +DispStart=FFFFFFFF +CaretPosData=0, 0 +CaretPosAscii=0, 0 +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Data1= +Data2= +Data3= +Data4= +Data5= +Data6= +Data7= +Data8= +Data9= +Data10= +Data11= +Data12= +Data13= +Data14= +Data15= +Data16= +Binary=ON +Scan=OFF +Direction=DOWN +FindStart= +FindEnd= +Unit=Byte +SaveRange=Screen +SaveStart= +SaveEnd= +Accumulative=ON +[Memory fill] +Scope=0, 0 +Code=0 +[Memory copy] +Scope=0, 0 +To=0 +[Memory compare] +Source=0, 0 +Destination=0 +[I/O Port] +Line=0 +[Stack] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Mode=Proper +[Sfr] +Geometry=0, 0, 0, 0 +Window=Hide +Address1= +Address2= +Address3= +Address4= +Address5= +Address6= +Address7= +Address8= +Address9= +Address10= +Address11= +Address12= +Address13= +Address14= +Address15= +Address16= +Boundary=0, 0 +Mode=Hex +Attribute=Show +Sort=Address +Pickup=OFF +SelectSort=Address +Last Name= +Line=531 +L1=P0 +L2=P1 +L3=P2 +L4=P3 +L5=P4 +L6=P5 +L7=P6 +L8=P7 +L9=P12 +L10=P14 +L11=P15 +L12=SDR00 +L13=SIO00 +L14=TXD0 +L15=SDR01 +L16=RXD0 +L17=SIO01 +L18=TDR00 +L19=TDR01 +L20=ADCRH +L21=PM0 +L22=PM1 +L23=PM2 +L24=PM3 +L25=PM4 +L26=PM5 +L27=PM6 +L28=PM7 +L29=PM12 +L30=PM14 +L31=PM15 +L32=ADM +L33=ADCE +L34=ADCS +L35=ADS +L36=KRM +L37=EGP0 +L38=EGN0 +L39=ISC +L40=TIS0 +L41=SDR02 +L42=SIO10 +L43=TXD1 +L44=SDR03 +L45=RXD1 +L46=IICA0 +L47=IICS0 +L48=SPD0 +L49=STD0 +L50=ACKD0 +L51=TRC0 +L52=COI0 +L53=EXC0 +L54=ALD0 +L55=MSTS0 +L56=IICF0 +L57=IICRSV0 +L58=STCEN0 +L59=IICBSY0 +L60=STCF0 +L61=TDR02 +L62=TDR03 +L63=TDR04 +L64=TDR05 +L65=TDR06 +L66=TDR07 +L67=RSUBC +L68=SEC +L69=MIN +L70=HOUR +L71=WEEK +L72=DAY +L73=MONTH +L74=YEAR +L75=SUBCUD +L76=ALARMWM +L77=ALARMWH +L78=ALARMWW +L79=RTCC0 +L80=RCLOE0 +L81=RCLOE1 +L82=RTCE +L83=RTCC1 +L84=RWAIT +L85=RWST +L86=RIFG +L87=WAFG +L88=WALIE +L89=WALE +L90=RTCC2 +L91=RCKDIV +L92=RCLOE2 +L93=RINTE +L94=CMC +L95=CSC +L96=HIOSTOP +L97=XTSTOP +L98=MSTOP +L99=OSTC +L100=OSTS +L101=CKC +L102=MCM0 +L103=MCS +L104=CSS +L105=CLS +L106=CKS0 +L107=PCLOE0 +L108=CKS1 +L109=PCLOE1 +L110=RESF +L111=LVIM +L112=LVIF +L113=LVIMD +L114=LVISEL +L115=LVION +L116=LVIS +L117=WDTE +L118=DSA0 +L119=DSA1 +L120=DRA0 +L121=DRA0L +L122=DRA0H +L123=DRA1 +L124=DRA1L +L125=DRA1H +L126=DBC0 +L127=DBC0L +L128=DBC0H +L129=DBC1 +L130=DBC1L +L131=DBC1H +L132=DMC0 +L133=DWAIT0 +L134=DS0 +L135=DRS0 +L136=STG0 +L137=DMC1 +L138=DWAIT1 +L139=DS1 +L140=DRS1 +L141=STG1 +L142=DRC0 +L143=DST0 +L144=DEN0 +L145=DRC1 +L146=DST1 +L147=DEN1 +L148=BECTL +L149=FLMDPUP +L150=PFCMD +L151=PFS +L152=FPRERR +L153=FLPMC +L154=BFAEN +L155=FWEPR +L156=BRAMEN +L157=IF2 +L158=IF2L +L159=TMIF05 +L160=TMIF06 +L161=TMIF07 +L162=PIF6 +L163=IF2H +L164=IICAIF1 +L165=PIF20 +L166=PIF21 +L167=PIF22 +L168=PIF23 +L169=MK2 +L170=MK2L +L171=TMMK05 +L172=TMMK06 +L173=TMMK07 +L174=PMK6 +L175=MK2H +L176=IICAMK1 +L177=PMK20 +L178=PMK21 +L179=PMK22 +L180=PMK23 +L181=PR02 +L182=PR02L +L183=TMPR005 +L184=TMPR006 +L185=TMPR007 +L186=PPR06 +L187=PR02H +L188=IICAPR01 +L189=PPR020 +L190=PPR021 +L191=PPR022 +L192=PPR023 +L193=PR12 +L194=PR12L +L195=TMPR105 +L196=TMPR106 +L197=TMPR107 +L198=PPR16 +L199=PR12H +L200=IICAPR11 +L201=PPR120 +L202=PPR121 +L203=PPR122 +L204=PPR123 +L205=IF0 +L206=IF0L +L207=WDTIIF +L208=LVIIF +L209=PIF0 +L210=PIF1 +L211=PIF2 +L212=PIF4 +L213=PIF5 +L214=IF0H +L215=DMAIF0 +L216=DMAIF1 +L217=CSIIF00 +L218=STIF0 +L219=CSIIF01 +L220=SRIF0 +L221=SREIF0 +L222=IF1 +L223=IF1L +L224=CSIIF10 +L225=IICIF10 +L226=STIF1 +L227=SRIF1 +L228=SREIF1 +L229=IICAIF0 +L230=TMIF00 +L231=TMIF01 +L232=TMIF02 +L233=TMIF03 +L234=IF1H +L235=ADIF +L236=RTCIF +L237=RTCIIF +L238=KRIF +L239=MDIF +L240=TMIF04 +L241=MK0 +L242=MK0L +L243=WDTIMK +L244=LVIMK +L245=PMK0 +L246=PMK1 +L247=PMK2 +L248=PMK4 +L249=PMK5 +L250=MK0H +L251=DMAMK0 +L252=DMAMK1 +L253=CSIMK00 +L254=STMK0 +L255=CSIMK01 +L256=SRMK0 +L257=SREMK0 +L258=MK1 +L259=MK1L +L260=CSIMK10 +L261=IICMK10 +L262=STMK1 +L263=SRMK1 +L264=SREMK1 +L265=IICAMK0 +L266=TMMK00 +L267=TMMK01 +L268=TMMK02 +L269=TMMK03 +L270=MK1H +L271=ADMK +L272=RTCMK +L273=RTCIMK +L274=KRMK +L275=MDMK +L276=TMMK04 +L277=PR00 +L278=PR00L +L279=WDTIPR0 +L280=LVIPR0 +L281=PPR00 +L282=PPR01 +L283=PPR02 +L284=PPR04 +L285=PPR05 +L286=PR00H +L287=DMAPR00 +L288=DMAPR01 +L289=CSIPR000 +L290=STPR00 +L291=CSIPR001 +L292=SRPR00 +L293=SREPR00 +L294=PR01 +L295=PR01L +L296=CSIPR010 +L297=IICPR010 +L298=STPR01 +L299=SRPR01 +L300=SREPR01 +L301=IICAPR00 +L302=TMPR000 +L303=TMPR001 +L304=TMPR002 +L305=TMPR003 +L306=PR01H +L307=ADPR0 +L308=RTCPR0 +L309=RTCIPR0 +L310=KRPR0 +L311=MDPR0 +L312=TMPR004 +L313=PR10 +L314=PR10L +L315=WDTIPR1 +L316=LVIPR1 +L317=PPR10 +L318=PPR11 +L319=PPR12 +L320=PPR14 +L321=PPR15 +L322=PR10H +L323=DMAPR10 +L324=DMAPR11 +L325=CSIPR100 +L326=STPR10 +L327=CSIPR101 +L328=SRPR10 +L329=SREPR10 +L330=PR11 +L331=PR11L +L332=CSIPR110 +L333=IICPR110 +L334=STPR11 +L335=SRPR11 +L336=SREPR11 +L337=IICAPR10 +L338=TMPR100 +L339=TMPR101 +L340=TMPR102 +L341=TMPR103 +L342=PR11H +L343=ADPR1 +L344=RTCPR1 +L345=RTCIPR1 +L346=KRPR1 +L347=MDPR1 +L348=TMPR104 +L349=MDAL +L350=MULA +L351=MDAH +L352=MULB +L353=MDBH +L354=MULOH +L355=MDBL +L356=MULOL +L357=PMC +L358=MAA +L359=ADPC +L360=PU0 +L361=PU1 +L362=PU3 +L363=PU4 +L364=PU5 +L365=PU7 +L366=PU12 +L367=PU14 +L368=PIM3 +L369=PIM7 +L370=POM3 +L371=POM7 +L372=NFEN0 +L373=NFEN1 +L374=NFEN2 +L375=MDCL +L376=MDCH +L377=MDUC +L378=DIVST +L379=DIVMODE +L380=PER0 +L381=SAU0EN +L382=IICA0EN +L383=ADCEN +L384=RTCEN +L385=PER2 +L386=TAU0EN +L387=OSMC +L388=BCDADJ +L389=SSR00 +L390=SSR00L +L391=SSR01 +L392=SSR01L +L393=SSR02 +L394=SSR02L +L395=SSR03 +L396=SSR03L +L397=SIR00 +L398=SIR00L +L399=SIR01 +L400=SIR01L +L401=SIR02 +L402=SIR02L +L403=SIR03 +L404=SIR03L +L405=SMR00 +L406=SMR01 +L407=SMR02 +L408=SMR03 +L409=SCR00 +L410=SCR01 +L411=SCR02 +L412=SCR03 +L413=SE0 +L414=SE0L +L415=SS0 +L416=SS0L +L417=ST0 +L418=ST0L +L419=SPS0 +L420=SPS0L +L421=SO0 +L422=SOE0 +L423=SOE0L +L424=SOL0 +L425=SOL0L +L426=TCR00 +L427=TCR01 +L428=TCR02 +L429=TCR03 +L430=TCR04 +L431=TCR05 +L432=TCR06 +L433=TCR07 +L434=TMR00 +L435=TMR01 +L436=TMR02 +L437=TMR03 +L438=TMR04 +L439=TMR05 +L440=TMR06 +L441=TMR07 +L442=TSR00 +L443=TSR00L +L444=TSR01 +L445=TSR01L +L446=TSR02 +L447=TSR02L +L448=TSR03 +L449=TSR03L +L450=TSR04 +L451=TSR04L +L452=TSR05 +L453=TSR05L +L454=TSR06 +L455=TSR06L +L456=TSR07 +L457=TSR07L +L458=TE0 +L459=TE0L +L460=TS0 +L461=TS0L +L462=TT0 +L463=TT0L +L464=TPS0 +L465=TPS0L +L466=TO0 +L467=TO0L +L468=TOE0 +L469=TOE0L +L470=TOL0 +L471=TOL0L +L472=TOM0 +L473=TOM0L +L474=IICCTL00 +L475=SPT0 +L476=STT0 +L477=ACKE0 +L478=WTIM0 +L479=SPIE0 +L480=WREL0 +L481=LREL0 +L482=IICE0 +L483=IICCTL10 +L484=DFC0 +L485=SMC0 +L486=DAD0 +L487=CLD0 +L488=WUP0 +L489=IICWL0 +L490=IICWH0 +L491=SVA0 +L492=PER3 +L493=IICA1EN +L494=P20 +L495=PM20 +L496=PU20 +L497=EGP2 +L498=EGN2 +L499=IICA1 +L500=IICS1 +L501=SPD1 +L502=STD1 +L503=ACKD1 +L504=TRC1 +L505=COI1 +L506=EXC1 +L507=ALD1 +L508=MSTS1 +L509=IICF1 +L510=IICRSV1 +L511=STCEN1 +L512=IICBSY1 +L513=STCF1 +L514=IICCTL01 +L515=SPT1 +L516=STT1 +L517=ACKE1 +L518=WTIM1 +L519=SPIE1 +L520=WREL1 +L521=LREL1 +L522=IICE1 +L523=IICCTL11 +L524=DFC1 +L525=SMC1 +L526=DAD1 +L527=CLD1 +L528=WUP1 +L529=IICWL1 +L530=IICWH1 +L531=SVA1 +[Local Variable] +Geometry=0, 0, 0, 0 +Window=Hide +Boundary=0 +Mode=Proper +[Trace View] +Geometry=0, 0, 0, 0 +Window=Hide +Mode=Normal +Frame=Show +Timetag=Clock +Address=Show +Data=Hex +Status=Show +Address2=Show +Data2=Hex +Status2=Show +Disasm=Show +Pick Up=Off +Synchronize=0 0 0 0 +Frameno= +Frameno1= +Frameno2= +Frameno3= +Frameno4= +Frameno5= +Frameno6= +Frameno7= +Frameno8= +Frameno9= +Frameno10= +Frameno11= +Frameno12= +Frameno13= +Frameno14= +Frameno15= +Frameno16= +ScanStatus=ALL +Access Size=B +ScanAddress=<>-<> +Mask Address= +ScanData= +Mask Data= +ScanExternal= +Mask External= +Scan=OFF +Direction=Down +FindStart= +FindEnd= +SaveRange=Screen +SaveStart= +SaveEnd= +[Register] +Geometry=0, 0, 0, 0 +Window=Hide +Mode=Hex +Boundary=0 +Pickup=OFF +Name=Functional +Register Bank=0 +RP0=3 +RP1=3 +RP2=3 +RP3=3 +PC=3 +SP=3 +PSW=3 +ES=3 +CS=3 +[Event Manager] +Geometry=0, 0, 0, 0 +Window=Hide +Sort by=Unsort +Detail=OFF +[Event Set] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Event Link] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Break] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Trace] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Delay Count0=2 +Count=0 +[Snap] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Stub] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Timer] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +TimerRateRunBreak=0011 +TimerBreakOutRunBreak=OFF +Count=0 +[Timer Monitor] +Count=0 +[Dmm] +Geometry=0, 0, 0, 0 +Window=Hide +Manager=ON +Sort by=Unsort +Detail=OFF +Last Name= +Count=0 +[Variable] +Geometry=1153, 8, 440, 300 +Window=Normal +Boundary=13762700 +0=.BT_IN_CHG_n,P,N,A,+,1 +Line=1 +[Quick Watch] +0=BT_IN_CHG_n,P,A,1 +1= +2= +3= +4= +5= +6= +7= +8= +9= +10= +11= +12= +13= +14= +15= +[Software Break] +Geometry=0, 0, 0, 0 +Window=Hide +Width=150 30 200 100 +Name0=Swb00002 +Address0=pm.c#_tsk_batt+0x27 +Window0=ASM +Status0=ON +Name1=Swb00001 +Address1=pm.c#_tsk_batt+0x24 +Window1=ASM +Status1=ON +Count=2 +[Reset] +Debugger=ON +Symbol=OFF +Target CPU=OFF +[Extended Option] +OnClick Software Break=ON +TraceTimetag=x1 +Redraw=500 +Break When Access Function=OFF +Break When Access Whole=Select +Verify=ON +Break Sound=ON +TraceAutoClear=OFF +RRM Clock=Internal +CKC Register Value=0x09 +RRM Internal Clock Frequency=8.000 +[About] +Version=Program +[Pseudo Emulation] +Geometry=0, 0, 0, 0 +Window=Hide +[Data Flash Option] +Data Flash Emulation=OFF +[List] +Geometry=0, 0, 0, 0 +Window=Hide +[Console] +Geometry=0, 0, 0, 0 +Window=Hide diff --git a/snake_branches/2.35/yav_mcu_bsr.prj b/snake_branches/2.35/yav_mcu_bsr.prj new file mode 100644 index 0000000..13f655f --- /dev/null +++ b/snake_branches/2.35/yav_mcu_bsr.prj @@ -0,0 +1,1408 @@ +[ProjectManager] +Version=6.00 +Path=C:\78k_data\yav-mcu-basara\snake_trunk\ +Title=yav-mcu +Series=78K0R.PM +Device=uPD79F0104 +DeviceVer=E1.00b +DebugMode=1 +Target=bsr.lmf +[BuildMode0] +BuildModeName=Debug Build +TargetFile=0 +[BuildMode1] +BuildModeName=Release Build +TargetFile=0 +[Tools] +MakeFile=yav_mcu_bsr.mak +Debugger=C:\Program Files (x86)\NEC Electronics Tools\ID78K0R-QB\V3.61\BIN\IDK0R32G.EXE +DebOption= +DebCpuReset=1 +DebSymReset=1 +MuitiLoad=0 +LoadPrjNum=0 +CheckVersion=CC78K0R|W2.13;RA78K0R|W1.33 +[Option.IDK0R32G] +File=\\tsclient\C\78k_data\yav-mcu-basara\trunk\yav_mcu_bsr.pri +[BuildMode2] +BuildModeName=K0R_dbg +TargetFile=0 +[BuildMode3] +BuildModeName=BSR_dbg +TargetFile=0 +[BuildMode4] +BuildModeName=BSR_rel +TargetFile=0 +[BuildMode5] +BuildModeName=BSR_WM0 +TargetFile=0 +[Options.OC78K0R 0] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 1] +Version=100 +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 2] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=0 +UN=FF +UST= +USZ= +K=0 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 3] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 4] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[Options.OC78K0R 5] +Version=100 +O0=.\bsr.hex +O1=bsr.hex +UC=1 +UN=FF +UST= +USZ= +K=1 +ZF=0 +S=1 +E=0 +CommandFile=0 +[BuildBefore-AfterCmd] +Before1=c:\cygwin\bin\touch magic.c +After1=ruby nec_s_2_bsrbin2.rb bsr.hex +[ToolSet] +ToolSetName=(ύX)78K0R Software Package V1.10 +Tool1=CC78K0R|W2.13 +Tool2=RA78K0R|W1.33 +Tool3=SK78K0R|V3.10 +Tool4=ID78K0R-QB|V3.61 +[Options.RA78K0R 0] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 1] +Version=100 +G=0 +GA=0 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 2] +Version=100 +O0= +O1=obj +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +P0=inter_asm +KA=1 +KS=1 +KX=1 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT=-pinter_asm -ks -kx +[Options.RA78K0R 3] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 4] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[Options.RA78K0R 5] +Version=100 +G=1 +GA=1 +E=0 +COMMON=0 +COMPATI=0 +P=1 +KA=1 +KS=0 +KX=0 +LF=0 +LW=132 +LL=0 +LT=8 +Z=0 +CommandFile=0 +RA_OPT= +[SrcFile] +Source1=loader.c +Source2=pm.c +Source3=i2c_ctr.c +Source4=main.c +Source5=magic.c +Source6=WDT.c +Source7=i2c_mcu.c +Source8=i2c_twl.c +Source9=led.c +Source10=rtc.c +Source11=vreg_ctr.c +Source12=vreg_twl.c +Source13=adc.c +Source14=renge\renge.c +Source15=accero.c +Source16=self_flash.c +Source17=sw.c +Source18=task_debug.c +Source19=task_misc.c +Source20=task_sys.c +Source21=pedo_alg_thre_det2.c +Source22=ini_VECT.c +Source23=task_status.c +Source24=led_cam.c +Source25=led_pow.c +Source26=hal.c +Source27=batt_params.c +Source28=voltable.c +Source29=pedo_lpf_coeff.c +Source30=kanaria.asm +Source31=kanaria_c.c +Source32=get_ei.asm +Source33=util_funcs.c +Source34=i2c_mcu-sub.c +[Options.CC78K0R 0] +Version=210 +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 1] +Version=210 +Memorymodel=2 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1128 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=0 +Outdebug=1153 +Outasmsrcchk=0 +Outasmsrc=1157 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1173 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=0 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=1 +FarROMization=1 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rll.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Define3=_TEG_,proc_is_ke3 +Define4=proc_is_ke3 +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include2=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1069 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 vreg_ctr.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 vreg_twl.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 renge.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=1 +Saddrstatic=1075 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 2 self_flash.c] +Version=210 +Define0= +Define1=_debug_,_TEG_,proc_is_ke3 +Define2=_debug_,_TEG_,proc_is_ke3,%time% +Undefine0= +Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include1=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include2=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include3=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Include4=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=1 +Saddrglobal=1063 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=0 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=1 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=0 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outobjectcmb0= +Outobjectcmb1=obj +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=1 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=1 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=1 +Startupchk=1 +Fixation=0 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rm.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 3] +Version=210 +Define0=_debug_,proc_is_bsr,_TEG_ +Define1=_debug_,proc_is_bsr +Define2=proc_is_bsr +Define3=_TEG_,proc_is_ke3 +Define4=proc_is_ke3 +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 4] +Version=210 +Define0=proc_is_bsr +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.CC78K0R 5] +Version=210 +Define0= +Define1=_debug_,proc_is_bsr,_TEG_,_WM0_ +Define2=_debug_,proc_is_bsr,_TEG_,_WM0 +Define3=_debug_,proc_is_bsr,_TEG_ +Define4=_debug_,proc_is_bsr +Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r +Memorymodel=1 +Flashobj=0 +FlashStartadr= +FlashBranchStartadr= +Mirror=0 +Saddrglobalchk=0 +Saddrglobal=1066 +Saddrstaticchk=0 +Saddrstatic=1072 +Bitfieldmsb=0 +Onebytechk=0 +Pacstructchk=0 +AssignROMchk=0 +AssignROM=0 +Maxoptimizechk=0 +Maxoptimize=1104 +Charunexpandchk=1 +Unsignedchar=0 +Usesaddrchk=0 +Autoallocationchk=1 +Jumpoptimize=1 +Librarycallchk=0 +Librarycall=1129 +Aggressivechk=1 +Relativebranchchk=1 +Debugoptchk=0 +Outdebugchk=1 +Outdebug=1153 +Outasmsrccmb0=inter_asm +Outasmsrccmb1=bsr.asm +Outasmsrcchk=1 +Outasmsrc=1158 +Outasmoptall=1 +Common=0 +Outerrlistchk=0 +Outerrlist=1174 +Xreference=0 +Preprocess=0 +Prenocomment=0 +Predefine=0 +Preifdef=1 +Preinclude=0 +Preline=1 +Prenumber=1 +Formfeed=0 +Columns=132 +Lines=0 +Tablength=8 +Ansi=0 +Cpraspras=1 +Commentnest=0 +Intunexpand=0 +Kanjicode=1210 +Verbose=0 +CommandFile=0 +Warninglevel=0 +Startupchk=1 +Fixation=1 +FarROMization=0 +Objectsel=1305 +Librarychk=1 +Floatingpoint=0 +Muldivunit=1 +Mulunit=1 +Startup=s0rml.rel +Library1=cl0rdm.lib +Library2=cl0rm.lib +Library3=cl0rmf.lib +VfiFileBoot0= +VfiFileBoot1=boot.vfi +VF78K0Rchk=0 +VF78K0Rvs= +[Options.LK78K0R 0] +Version=100 +O0=bsr_k0r.lmf +O1=bsr.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=1 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 1] +Version=100 +O0=a.lmf +G=0 +E=0 +E0=a.elk +GO=0 +GOValue= +GOStart=FC00 +GOSizeValue=1024 +GI=0 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=1 +MemInfoCheck=0 +P=1 +P0=a.map +MI=0 +GB=0 +GBValue= +KM=1 +KD=1 +KP=0 +KL=0 +LF=0 +LL=0 +S=0 +W=1 +SELFCheck=0 +SELF=0 +ZB= +CommandFile=0 +[Options.LK78K0R 2] +Version=100 +O0=bsr.lmf +O1=bsr_k0r.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=0 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=1B339499E033F240BFAA +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=7EFBFF +KM=1 +KD=0 +KP=0 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib +B1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +OFILE=C:\78k_data\yav-mcu-basara\snake_trunk\bsr.lmf +[Options.LK78K0R 3] +Version=100 +O0=bsr_bsr.lmf +O1=bsr_k0r.lmf +O2=bsr.lmf +O3=flash.lmf +O4=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_bsr.map +P1=bsr_k0r.map +P2=bsr.map +P3=flash.map +P4=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 4] +Version=100 +O0=bsr_k0r.lmf +O1=bsr.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=1 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 5] +Version=100 +O0=bsr_bsr.lmf +O1=bsr_k0r.lmf +O2=bsr.lmf +O3=flash.lmf +O4=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_bsr.map +P1=bsr_k0r.map +P2=bsr.map +P3=flash.map +P4=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LCNV78K0R 0] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 1] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 2] +Version=100 +LCNV_GO=0 +O0=inter_asm +E=0 +CommandFile=0 +[Options.LCNV78K0R 3] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 4] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 5] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.78K0R] +BuildMode=2 +BuildMode2=K0R_dbg +BuildMode3=BSR_dbg +BuildMode4=BSR_rel +BuildMode5=BSR_WM0 +DefaultMode2=1 +DefaultMode3=1 +DefaultMode4=1 +DefaultMode5=1 +[IncFile] +Include1=incs_loader.h +Include2=config.h +Include3=jhl_defs.h +Include4=user_define.h +Include5=hal.h +Include6=bsr_system.h +Include7=renge\renge.h +Include8=renge\renge_defs.h +Include9=renge\renge_task_immediate.h +Include10=vreg_ctr.h +Include11=vreg_twl.h +Include12=loader.h +Include13=i2c_mcu.h +Include14=WDT.h +Include15=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +Include16=fsl_user.h +Include17=i2c_ctr.h +Include18=pm.h +Include19=rtc.h +Include20=reboot.h +Include21=magic.h +Include22=incs.h +Include23=i2c_twl.h +Include24=accero.h +Include25=pedometer.h +Include26=sw.h +Include27=adc.h +Include28=led.h +Include29=batt_params.h +Include30=pool.h +Include31=i2c_twl_defs.h +Include32=renge\renge_task_intval.h +Include33=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h +Include34=self_flash.h +Include35=util_funcs.h +Include36=i2c_mcu_sub.h diff --git a/snake_branches/2.35/yav_mcu_bsr.prk b/snake_branches/2.35/yav_mcu_bsr.prk new file mode 100644 index 0000000..bab3fb7 --- /dev/null +++ b/snake_branches/2.35/yav_mcu_bsr.prk @@ -0,0 +1,14 @@ +[ProjectManager] +FrameMax=0 +FrameX=30 +FrameY=18 +FrameCX=1358 +FrameCY=849 +OpenFile1=OutputWindow +OutputPos=0,48,579,311,1203 +OpenFile2=ProjectWindow +PrjPos=0,0,706,0,291 +OpenFile3=config.h,0,50,50,1163,530,0,1,0,0 +ActivePRJ=yav_mcu_bsr.prj +[ProjectWindow] +ProjectWindowDispType=0 diff --git a/snake_branches/2.35/yav_mcu_bsr.prw b/snake_branches/2.35/yav_mcu_bsr.prw new file mode 100644 index 0000000..7c0bbd6 --- /dev/null +++ b/snake_branches/2.35/yav_mcu_bsr.prw @@ -0,0 +1,8 @@ +[System] +System1=default +[default] +Project1=yav_mcu_bsr.prj +[BATCH_BUILD] +Build1=yav_mcu_bsr.prj,Debug Build,1 +Build2=yav_mcu_bsr.prj,Release Build,0 +Build3=yav_mcu_bsr.prj,BSR_WM0,0 diff --git a/snake_branches/2.35/yav_mcu_bsr.sdb b/snake_branches/2.35/yav_mcu_bsr.sdb new file mode 100644 index 0000000..244e8a4 --- /dev/null +++ b/snake_branches/2.35/yav_mcu_bsr.sdb @@ -0,0 +1,325 @@ +[SdbInfo] +Ver=5 +[loader.c] +T=51c8f978 +1=incs_loader.h +2=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +3=fsl_user.h +4=i2c_ctr.h +5=i2c_mcu.h +6=pm.h +7=rtc.h +8=reboot.h +9=WDT.h +10=magic.h +[pm.c] +T=52298668 +1=incs.h +2=adc.h +3=led.h +4=pm.h +5=renge\renge.h +6=batt_params.h +7=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h +8=fsl_user.h +9=vreg_twl.h +10=i2c_mcu.h +[i2c_ctr.c] +T=51c8f7f4 +1=incs.h +2=rtc.h +3=pedometer.h +[main.c] +T=51c8f7f4 +1=incs.h +2=rtc.h +3=pm.h +4=accero.h +5=led.h +6=adc.h +7=i2c_mcu.h +8=pool.h +[magic.c] +T=522d7dfa +1=magic.h +2=config.h +[WDT.c] +T=51c8f7fd +1=incs_loader.h +[i2c_mcu.c] +T=51c8f7fa +1=incs_loader.h +2=i2c_mcu.h +3=loader.h +4=util_funcs.h +5=i2c_mcu_sub.h +[i2c_twl.c] +T=51c8f7f9 +1=incs_loader.h +2=i2c_twl_defs.h +3=i2c_twl.h +4=vreg_twl.h +5=WDT.h +[led.c] +T=52296ef8 +1=incs.h +2=led.h +[rtc.c] +T=51c8f7f4 +1=incs.h +[vreg_ctr.c] +T=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=51c91572 +1=incs.h +2=i2c_twl.h +3=i2c_ctr.h +4=led.h +5=accero.h +6=pm.h +7=rtc.h +8=sw.h +9=adc.h +10=self_flash.h +11=i2c_mcu.h +12=vreg_twl.h +[pedo_alg_thre_det2.c] +T=51c8f7f9 +1=incs.h +2=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h +3=accero.h +4=pedometer.h +5=pool.h +[ini_VECT.c] +T=51c8f7fa +1=config.h +[task_status.c] +T=51c8f7f9 +1=incs_loader.h +2=renge\renge.h +3=pm.h +4=accero.h +5=adc.h +6=i2c_mcu.h +7=led.h +[led_cam.c] +T=51c8f7f9 +1=incs.h +2=led.h +3=vreg_twl.h +[led_pow.c] +T=51c8f7f5 +1=incs.h +2=led.h +3=pm.h +[hal.c] +T=51c8f7f9 +1=incs_loader.h +[batt_params.c] +T=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=522d7dd8 +[jhl_defs.h] +T=51c8f7f9 +[user_define.h] +T=51c8f7f9 +[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=51c8f7fa +[rtc.h] +T=51c8f7f5 +[reboot.h] +T=51c8f7f5 +[magic.h] +T=51c8f7fa +[incs.h] +T=51c8f7f9 +1=jhl_defs.h +2=config.h +3=user_define.h +4=hal.h +5=bsr_system.h +6=renge\renge.h +7=vreg_ctr.h +8=util_funcs.h +[i2c_twl.h] +T=51c8f7f9 +[accero.h] +T=51c8f7f9 +1=jhl_defs.h +2=pedometer.h +[pedometer.h] +T=51c8f7f4 +[sw.h] +T=51c8f7fd +1=config.h +[adc.h] +T=51c8f7fd +1=jhl_defs.h +[led.h] +T=51c8f7f9 +[batt_params.h] +T=52004273 +1=jhl_defs.h +[pool.h] +T=51c8f7fa +1=pedometer.h +[i2c_twl_defs.h] +T=51c8f7fa +[renge\renge_task_intval.h] +T=511c3fe3 +1=renge\renge_defs.h +[..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h] +T=45f12258 +[self_flash.h] +T=51c8f7fa +[util_funcs.h] +T=51c8f7f4 +[i2c_mcu_sub.h] +T=51c8f7fa diff --git a/snake_branches/2.35/ベースからの変更.xls b/snake_branches/2.35/ベースからの変更.xls new file mode 100644 index 0000000000000000000000000000000000000000..5212dac6485080dca2bfd246e855585895ff82af GIT binary patch literal 26624 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 literal 0 HcmV?d00001 diff --git a/snake_branches/2.35/覚え書き.txt b/snake_branches/2.35/覚え書き.txt new file mode 100644 index 0000000..28269c4 --- /dev/null +++ b/snake_branches/2.35/覚え書き.txt @@ -0,0 +1,9 @@ +A܂Ƃ wiki ɏȂƂȂǁB + +2.2C +SNAKE Ή (vCg) + +2.2D +SNAKE system updater mcu vZX쐬Ɍ߁A +o[Wԍ̂݁A2.2D ɂȂĂ +

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 G`TrZQ!y6|6 literal 0 HcmV?d00001 diff --git a/snake_branches/2.35/VCProj/bsr_trunk.sln b/snake_branches/2.35/VCProj/bsr_trunk.sln new file mode 100644 index 0000000..520f84d --- /dev/null +++ b/snake_branches/2.35/VCProj/bsr_trunk.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C++ Express 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bsr_trunk", "bsr_trunk.vcxproj", "{9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.Build.0 = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.ActiveCfg = Release|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/snake_branches/2.35/VCProj/bsr_trunk.sln.old b/snake_branches/2.35/VCProj/bsr_trunk.sln.old new file mode 100644 index 0000000..2881d87 --- /dev/null +++ b/snake_branches/2.35/VCProj/bsr_trunk.sln.old @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bsr_trunk", "bsr_trunk.vcproj", "{9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.Build.0 = Debug|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.ActiveCfg = Release|Win32 + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/snake_branches/2.35/VCProj/bsr_trunk.suo b/snake_branches/2.35/VCProj/bsr_trunk.suo new file mode 100644 index 0000000000000000000000000000000000000000..8d26f775db9306cfe131bfd2d1c08030cc1c05f7 GIT binary patch literal 78336 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 W(gpWsWKv7q^dpmFaJhto|Nj99FE?`l literal 0 HcmV?d00001 diff --git a/snake_branches/2.35/VCProj/bsr_trunk.suo.old b/snake_branches/2.35/VCProj/bsr_trunk.suo.old new file mode 100644 index 0000000000000000000000000000000000000000..63c7d4933d79ca0accc71ed0f4a53a79cefc3493 GIT binary patch literal 45056 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 literal 0 HcmV?d00001 diff --git a/snake_branches/2.35/VCProj/bsr_trunk.vcproj b/snake_branches/2.35/VCProj/bsr_trunk.vcproj new file mode 100644 index 0000000..1a6531b --- /dev/null +++ b/snake_branches/2.35/VCProj/bsr_trunk.vcproj @@ -0,0 +1,594 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/snake_branches/2.35/VCProj/bsr_trunk.vcproj.NCL.N2232.user b/snake_branches/2.35/VCProj/bsr_trunk.vcproj.NCL.N2232.user new file mode 100644 index 0000000..257e4e7 --- /dev/null +++ b/snake_branches/2.35/VCProj/bsr_trunk.vcproj.NCL.N2232.user @@ -0,0 +1,65 @@ + + + + + + + + + + + diff --git a/snake_branches/2.35/VCProj/bsr_trunk.vcxproj b/snake_branches/2.35/VCProj/bsr_trunk.vcxproj new file mode 100644 index 0000000..a4fc5a6 --- /dev/null +++ b/snake_branches/2.35/VCProj/bsr_trunk.vcxproj @@ -0,0 +1,162 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2} + bsr_trunk + arr_trunk + + + + Application + MultiByte + true + + + Application + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + nmake -f yav_mcu_bsr.mak + + + + $(NMakePreprocessorDefinitions) + $(NMakeIncludeSearchPath) + $(NMakeForcedIncludes) + $(NMakeAssemblySearchPath) + $(NMakeForcedUsingAssemblies) + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r;$(IncludePath) + + + + MaxSpeed + true + MultiThreadedDLL + true + Level3 + ProgramDatabase + + + true + true + true + MachineX86 + + + + + _MBCS;%(PreprocessorDefinitions); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/snake_branches/2.35/VCProj/bsr_trunk.vcxproj.filters b/snake_branches/2.35/VCProj/bsr_trunk.vcxproj.filters new file mode 100644 index 0000000..d168232 --- /dev/null +++ b/snake_branches/2.35/VCProj/bsr_trunk.vcxproj.filters @@ -0,0 +1,258 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + {4e2142a2-478d-4e47-ab3f-7ae7d1e531bd} + + + {3bd01c87-17d0-4cf4-93a8-fb6bde3060a4} + + + + + + ソース ファイル\renge + + + ソース ファイル\renge + + + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル\renge + + + ヘッダー ファイル\sim + + + ヘッダー ファイル\sim + + + ソース ファイル + + + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ヘッダー ファイル + + + ソース ファイル\renge + + + ソース ファイル\renge + + + ソース ファイル\renge + + + ソース ファイル\renge + + + ヘッダー ファイル\sim + + + ヘッダー ファイル\sim + + + \ No newline at end of file diff --git a/snake_branches/2.35/VCProj/bsr_trunk.vcxproj.user b/snake_branches/2.35/VCProj/bsr_trunk.vcxproj.user new file mode 100644 index 0000000..695b5c7 --- /dev/null +++ b/snake_branches/2.35/VCProj/bsr_trunk.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/snake_branches/2.35/WDT.c b/snake_branches/2.35/WDT.c new file mode 100644 index 0000000..ed3daf3 --- /dev/null +++ b/snake_branches/2.35/WDT.c @@ -0,0 +1,12 @@ +/* ======================================================== + wdt + + $Id$ + ======================================================== */ +#include "incs_loader.h" + +/* + + gAwb_Ƀ}N̂݁B + +*/ diff --git a/snake_branches/2.35/WDT.h b/snake_branches/2.35/WDT.h new file mode 100644 index 0000000..2e28e9d --- /dev/null +++ b/snake_branches/2.35/WDT.h @@ -0,0 +1,20 @@ +#ifndef _WDT_ +#define _WDT_ + + + +//========================================================= +#define WDT_RESTART_MAGIC 0xAC + + + +//========================================================= +// EHb`hbO^C}̃X^[g +// void WDT_Restart( void ); +#define WDT_Restart() WDTE = WDT_RESTART_MAGIC + +// KlȊOƗOŃZbg +#define mcu_wdt_reset WDTE = 0x0 + + +#endif diff --git a/snake_branches/2.35/accero.c b/snake_branches/2.35/accero.c new file mode 100644 index 0000000..aa584ec --- /dev/null +++ b/snake_branches/2.35/accero.c @@ -0,0 +1,274 @@ +/* ======================================================== +@xZT֌W +Ef[^XVŃf[^zグ背WX^XVACPUɊ荞 +EtOĂΕJEg +ExZT荞݂^XNo^ĉBiI2C̋Ȃǂ̂Łj + + $Id: accero.c 418 2011-09-22 01:35:37Z n2232 $ + ======================================================== */ +#ifndef _WIN32 + +#pragma SFR +#pragma NOP +#pragma HALT +#pragma STOP +#pragma ROT +// rorb, rolb, rorw, rolw +#pragma MUL +#pragma BCD + +#endif + +#ifndef _WIN32 + +#pragma interrupt INTP23 intp23_ACC_ready RB3 // xZTAf[^ + +#endif + +#include "incs.h" +#include "accero.h" +#include "i2c_mcu.h" + + +#ifndef _WIN32 +#include +#endif +// ======================================================== +// WX^ +#define ACC_REG_WHOAMI 0x0F +#define ACC_REG_CTRL1 0x20 +#define ACC_REG_CTRL5 0x24 +#define ACC_REG_X 0x28 + +#define ACC_REG_FLG_BURST_ACCESS 0x80 + +// rbgʒu +#define ACC_bP_PM0 5 +#define ACC_bP_DR0 3 + +// rbgݒl +#define ACC_BITS_PM_PDN 0 +#define ACC_BITS_PM_NORM 1 +#define ACC_BITS_PM_LP0R5 2 +#define ACC_BITS_PM_LP1 3 +#define ACC_BITS_PM_LP2 4 +#define ACC_BITS_PM_LP5 5 +#define ACC_BITS_PM_LP10 6 + +#define ACC_BITS_DR_50Hz 0 +#define ACC_BITS_DR_100Hz 1 +#define ACC_BITS_DR_400Hz 2 +#define ACC_BITS_DR_1000Hz 3 + +#define ACC_BITS_ALL_AXIS_ON 7 + + +#define VREG_BITMASK_ACC_CONF_ACQ ( 1 << 0 ) +#define VREG_BITMASK_ACC_CONF_HOSU ( 1 << 1 ) + + + +// ======================================================== +#define ACC_RAW_DATA_SIZE 6 + + +// ======================================================== +static u8 acc_retry_count; // xZTǂݏoAG[ƂgCB񐔐 + + + +// ======================================================== +task_status tsk_soft_int( ); + + + +/********************************************//** +@E荞݂mFăf[^zグAWX^ɏo܂ + + E{ł΃R[obN֐o^Ă΂ƂȂ̂łA + I2CgpHƂlƎł͂܂łłȂ̂łB + + EvƂł + ***********************************************/ +task_status_immed tski_cbk_accero( ) +{ // i^jisro^܂ + u8 acc_dat_buff[ ACC_RAW_DATA_SIZE ]; + + // xZTf[^WX^ւ̔f + if( iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | ACC_REG_FLG_BURST_ACCESS ), ACC_RAW_DATA_SIZE, acc_dat_buff ) + != ERR_SUCCESS ) + { + // SLA NAK // + if( acc_retry_count < 4 ) + { + acc_retry_count ++; + // gC + return( TSKI_CONTINUE ); + } + else + { + // xZTُɂȂ̂Ŏ~߂ + vreg_stop_acc; + tski_acc_setup(); + vreg_set_acc_error; + return ( TSKI_FINISHED ); // ^XN̍폜͕Kv + } + } + else + { + // 펞pX // + DI_wt_chk(); + memcpy( &vreg_ctr[VREG_C_ACC_XL], acc_dat_buff, ACC_RAW_DATA_SIZE ); + EI(); + + acc_retry_count = 0; + // xXV荞 + if( is_acc_on && ( system_status.pwr_state == ON )) + { + set_irq( VREG_C_IRQ1, REG_BIT_ACC_DAT_RDY ); + // S~f[^̃Jǂ + if( ACC_VALID ) + { + u8 temp[ACC_RAW_DATA_SIZE]; + iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | ACC_REG_FLG_BURST_ACCESS ), ACC_RAW_DATA_SIZE, temp ); + } + } + if( (( system_status.pwr_state == ON )||( system_status.pwr_state == SLEEP )) + &&( is_pedo_on ) + ) + { + pedometer(); // v + } + } + return ( TSKI_FINISHED ); +} + + + + + +/********************************************//** +@xZT߃ANZX@[h + ***********************************************/ +task_status_immed tski_acc_read( ) +{ + vreg_ctr[VREG_C_ACC_W_BUF] = iic_mcu_read_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_R_ADRS] ); + set_irq( VREG_C_IRQ1, REG_BIT_ACC_ACK ); + return ( TSKI_FINISHED ); +} + + + +/********************************************//** +@xZT߃ANZX@Cg + ***********************************************/ +task_status_immed tski_acc_write( ) +{ + iic_mcu_write_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_W_ADRS], vreg_ctr[VREG_C_ACC_W_BUF] ); + set_irq( VREG_C_IRQ1, REG_BIT_ACC_ACK ); + return ( TSKI_FINISHED ); +} + + + +/********************************************//** +@xZT̐ݒ + ***********************************************/ +task_status_immed tski_acc_setup( ) +{ + + // x on/offݒ肷 + u8 str_send_buf[4]; + + str_send_buf[1] = 0x00; // ctrl2 HPF:normal, filterd, HPF for IRQ : dis/dis, HPF coeff:norm + + // sŝ߁ATSƂȊOiHႢjʂĐݒ + if( system_status.model == MODEL_TS_BOARD ) + { + str_send_buf[2] = bits8(0,0,0,0, 0,0,1,0); + } + else + { + str_send_buf[2] = bits8(0,0,0,1, 0,0,0,0); + } + str_send_buf[3] = 0x80; // ctrl3 block update:enable, MSB first, scale: +-2G(default), selftest: dis + + { + u8 acc_setting_sent = ( vreg_ctr[VREG_C_ACC_CONFIG] & ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ )); + + if( acc_setting_sent == 0 ) + { + // S~ + PMK23 = 1; + str_send_buf[0] = + ( ACC_BITS_PM_PDN << ACC_bP_PM0 | 0 << ACC_bP_DR0 | ACC_BITS_ALL_AXIS_ON ); + } + else + { + // on 100Hz 荞 + PMK23 = 0; + str_send_buf[0] = + ( ACC_BITS_PM_NORM << ACC_bP_PM0 + | ACC_BITS_DR_100Hz << ACC_bP_DR0 + | ACC_BITS_ALL_AXIS_ON ); + } + + // ݌AʐMłtOXV + if( iic_mcu_write( IIC_SLA_ACCEL, ( ACC_REG_CTRL1 | ACC_REG_FLG_BURST_ACCESS ), 4, str_send_buf ) == I2C_ERR_NOSLAVE ) + { + // ZTB^XN͍폜ȂĂ͂ȂȂB + vreg_set_acc_error; + return ( TSKI_FINISHED ); + // ܂ + } + // else + + // ZTݒ萬 pX + vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_ACCERO_ERR; + acc_retry_count = 0; + + // ÕS~L΃Jǂ + if( ACC_VALID ) + { + if( system_status.pwr_state == ON ) + { + u8 temp[ACC_RAW_DATA_SIZE]; + iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | ACC_REG_FLG_BURST_ACCESS ), 6, temp ); + } + } + + // ZTɏɂĂŒSoC܂Ă܂Ȃ + DI_wt_chk(); + if( acc_setting_sent != ( vreg_ctr[VREG_C_ACC_CONFIG] & ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ))) + { + // DIԂ̂܂܋A + return ( TSKI_CONTINUE ); // ƊԂčēxɂ // Ƃ悢H + } + } + + // DIԂ̂܂܋A + return ( TSKI_FINISHED ); +} + + + +/********************************************//** + xZT荞 + + I2CgpȂ̂ŁAǂݏo^XN̓o^ŝ + ***********************************************/ +__interrupt void intp23_ACC_ready( ) +{ + EI(); + if( ( vreg_ctr[VREG_C_ACC_CONFIG] & ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ) ) != 0x00 ) + { + // xZT on + if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) ) + { +// if( ACC_VALID ) // mFsv + { + renge_task_immed_add( tski_cbk_accero ); + } + } + } +} diff --git a/snake_branches/2.35/accero.h b/snake_branches/2.35/accero.h new file mode 100644 index 0000000..fbf80d6 --- /dev/null +++ b/snake_branches/2.35/accero.h @@ -0,0 +1,14 @@ +#ifndef _accero_ +#define _accero_ + + +#include "jhl_defs.h" +#include "pedometer.h" + + +/////////////////////////////////////////////////////////// +task_status_immed tski_cbk_accero( ); +task_status_immed tski_acc_setup( ); + + +#endif diff --git a/snake_branches/2.35/adc.c b/snake_branches/2.35/adc.c new file mode 100644 index 0000000..94920c7 --- /dev/null +++ b/snake_branches/2.35/adc.c @@ -0,0 +1,475 @@ +/* ======================================================== + adc.c + + cJZ + nintendo + '09 Apr + $Id$ + ======================================================== */ +#include "incs.h" +#include "adc.h" +#include "pm.h" + +#include "led.h" + +#include "vreg_twl.h" +#include "i2c_mcu.h" + + +// ===================================================== // +static bit adc_updated; +static bit vol_changed_by_ctr; +bit vol_changed_by_twl; +static u8 vol_old; + +static u8 adc_raw_vol; +static u8 adc_raw_dep; + +u8 vol_polling; +u8 vol_level_twl; + +extern const u8 slider_to_codec[]; + + + +// ===================================================== // +typedef struct filter_work +{ + u8* value_used; + s8 diffs; // KIKAN̕΂ + s8 kikan; + u8 large_diff_count; +}filter_work; + + +static filter_work work_vr_3d = { + &vreg_ctr[ VREG_C_3D ] + // ͕̂slł悵Bconstɂ_ + }; + + +static u8 vol_data_ctr; +static u8 vol_data_ctr_tmp; +static filter_work work_vr_vol = { + &vol_data_ctr_tmp + // ͕̂slł悵Bconstɂ_ + }; + + +// twl 8iKvol̃jAl̋E +/* + twl32 -> 8 e[u + 0`1,`4,`8,`13,`18,`23,`28,31 + */ +static const u8 TWL_VOL_BOUNDARY[] = { + 1, 4, 8, 13, 18, 23, 28, 31 +}; + +// ===================================================== // +extern void nop8(); +static void adc_filter( u8 new_val, filter_work* work ); +static u8 adc_scaling( u8 ); +static void update_twl_vol( u8 sent_index ); + + + +// ===================================================== // +#define INTERVAL_TSK_ADC 15 + + + +/********************************************//** + ADCݒƁAJn + + ȉ̃s͎ɂőEĎ܂B + - BT_TEMP,_P + - ADIN1 + - VOL + + ***********************************************/ +void tsk_adc( ) +{ + if( adc_updated ) + { + adc_updated = false; + + // 3D ///////////////////////////////////////// + vreg_ctr[ VREG_C_3D ] = adc_raw_dep; // l + + // Volume ///////////////////////////////////// + { + vreg_ctr[ VREG_C_VOL_ADC_RAW ] = adc_raw_vol; + + adc_filter( adc_scaling( adc_raw_vol ), &work_vr_vol ); // ʂ*work_vr_volwvol_data_ctr ǂ݂ɂ... + vol_data_ctr = vol_data_ctr_tmp / 4; + + if( vol_old != vol_data_ctr ) + { + vol_changed_by_ctr = true; + vol_old = vol_data_ctr; + vol_polling = 3; +// renge_task_immed_add( tski_vol_update ); œo^ + } + } + + // obe /////////////////////////// + /* Ă΂܂ */ + } + + // YꂪƂȂ̂Ń|[O orz + if( vol_polling < 5 ) + { + renge_task_immed_add( tski_vol_update ); + vol_polling = (u8)(200 / SYS_INTERVAL_TICK) + 5; // 5/sec + } + vol_polling --; + + + ADCEN = 1; + ADM = bits8(0,0,0,0, 1,0,1,1); // ZNg[hAAfCLK/6 // + + ADPC = 0x06; // ADC|[g̃ZNg + ADS = ADC_SEL_3D; + nop8(); + ADCS = 1; // ADJnB // ܂Ł@@܂ł1us=8clkȏJ + + ADIF = 0; + ADMK = 0; +} + + + +/********************************************//** + vol݂̃XC_̈ʒuɋXV + ***********************************************/ +void vol_reset() +{ + vol_old = vol_data_ctr; + vreg_ctr[ VREG_C_SND_VOL ] = vol_data_ctr; // 64i +} + + +/********************************************//** +@VolXV܂B + + @Ȏɓo^܂B + + - [U[VolXC_𓮂 + - HorizonɋXVwꂽ@icodecZbgj + - TWLAvVol + ***********************************************/ +task_status_immed tski_vol_update() +{ + static u8 sent_index, sent_index_twl; + static bit last_modifyer_is_twl; // false = ctr + + if( !( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP )){ + return( TSKI_FINISHED ); + } + + // ǂ̉ʂɂ́H // + if( vol_changed_by_ctr ) + { + // XC_ + vol_changed_by_ctr = false; + last_modifyer_is_twl = false; + sent_index = vol_data_ctr; + } + else if( vol_changed_by_twl ) + { + // TWLAv + vol_changed_by_twl = false; + last_modifyer_is_twl = true; + if( vreg_twl[ REG_TWL_INT_ADRS_VOL ] == 0 ) + { + sent_index_twl = 0; + } + else + { + sent_index_twl = vreg_twl[ REG_TWL_INT_ADRS_VOL ] *2 +1; + } + sent_index = sent_index_twl; + } + else + { + // force_slider0ɂƂ & ܂Ƃ + // XC_TWL̍ŌɃZbgZbg + if( last_modifyer_is_twl ) + { + sent_index = sent_index_twl; + } + else + { + sent_index = vol_data_ctr; + } + } + + // WX^̍XV // + vreg_ctr[ VREG_C_SND_VOL ] = sent_index; + + // twlXV + update_twl_vol( sent_index ); + + // codecɓ` + /// lł + iic_mcu_write_a_byte_codec( CODEC_REG_VOL, slider_to_codec[ sent_index ] ); + + // set_irq( VREG_C_IRQ0, REG_BIT_VR_SNDVOL_CHANGE ); // 荞ݔp~ + return( TSKI_FINISHED ); +} + + +/********************************************//** + TWL ։ʂʒmB + + iKႤ̂ŁÃPAs + ***********************************************/ +static void update_twl_vol( u8 sent_index ) +{ + // XP[O + if( sent_index == 0 ) + { + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = 0; + } + else if( sent_index <= 4 ) + { + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = 2; // P̓~bVOŐ + } + else + { + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = sent_index/2 ; + } + + // 8iK̃xB@荞݂̂ɕKv + { + static u8 vol_twl_old; + + if( vol_twl_old != vreg_twl[ REG_TWL_INT_ADRS_VOL ] ) + { + // 8ixɕϊ + u8 new_level = 31; + u8 i; + + vol_twl_old = vreg_twl[ REG_TWL_INT_ADRS_VOL ]; + + for( i=0; i<=7; i++ ) + { + if( vreg_twl[ REG_TWL_INT_ADRS_VOL ] <= TWL_VOL_BOUNDARY[ i ] ) + { + new_level = i; + break; + } + } + vol_level_twl = new_level; + } + } +} + + + +/********************************************//** +@ADC isr + +@}`vNT̏Ԃ`FbNĂׂ֓]A + +@OŎ̃`lN + +@@ʂI~߂ + ***********************************************/ +__interrupt void int_adc( ) +{ + volatile u8 adc_data = ADCRH; + + switch ( ADS ) + { +/* + case ( ADC_SEL_AMB_BRIT ): + // ‹邳 // + vreg_ctr[ VREG_C_AMBIENT_BRIGHTNESS ] = adc_data; + break; +*/ + + case ( ADC_SEL_3D ): + // 3D{[ // + EI(); + adc_raw_dep = adc_data; + break; + + case ( ADC_SEL_VOL ): + // ʃXC_ // + EI(); + if( system_status.model == MODEL_TS_BOARD ) + { + adc_raw_vol = adc_data; + } + else + { + adc_raw_vol = 255 - adc_data; + } + + break; + + case ( ADC_SEL_BATT_TEMP ): + // obex // + EI(); +#ifdef _ENABLE_HAL_ + if( vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] == 0xFF ) // HAL +#else + if( 1 ) +#endif + { + raw_adc_temperature = adc_data; + } + else + { + raw_adc_temperature = vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ]; + } + + if(// (( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR ) == 0 ) && + (( system_status.pwr_state == ON ) || + ( system_status.pwr_state == SLEEP ) + ) + ) + { + renge_task_immed_add( tski_BT_temp_update ); + } + break; + +/* Ă΂܂ + case ( ADC_SEL_BATT_DET ): + // obe[J[ // + break; +*/ + } + +// Ƃ܂Ƃȏ肻 + if( ADS < ADC_SEL_BATT_DET ) + { + ADS += 1; // ̃`l + } + else + { + ADCEN = 0; // ~߂Ă܂ + adc_updated = true; + } + ADIF = 0; // ȂƁAÕ`l̃f[^̊ŒɊ荞މ”\ +} + + + +/********************************************//** + adcWX^ǂݏoÂ܂ܕԒlɂB + + tsk_adcƋ邱ƂlĂ܂B + ***********************************************/ +u8 get_adc( u8 ch ) +{ + u8 temp; + + ADMK = 1; + ADIF = 0; + + ADCEN = 1; + ADM = bits8(0,0,0,0, 1,0,1,1); // ZNg[hAAfCLK/6 ///火 + + ADPC = 0x06; // ADC|[g̃ZNg + ADS = ch; + + nop8(); + + ADCS = 1; // ADJnB /// ܂Ł@ɁA1usȏJ + + ADIF = 0; + while( ADIF == 0 ){;} + temp = ADCRH; + ADCEN = 0; + + ADMK = 0; + return ( temp ); +} + + + + + +/********************************************//** + VR̉“͈͂lăXP[O + + Volp@g񂷂Ȃ炻̂Ƃǂɂ + ***********************************************/ +static u8 adc_scaling( u8 orig_val ) +{ + u16 temp; + + if( orig_val <= vreg_ctr[ VREG_C_VOL_CAL_MIN ] ) + { + return( 0 ); + } + if( orig_val >= vreg_ctr[ VREG_C_VOL_CAL_MAX ] ) + { + return( 255 ); + } + + temp = (u16)(( orig_val - vreg_ctr[ VREG_C_VOL_CAL_MIN ] ) * 256 ) / ( vreg_ctr[ VREG_C_VOL_CAL_MAX ] - vreg_ctr[ VREG_C_VOL_CAL_MIN ] ); + if( temp > 255 ) + { + temp = 255; + } + + return( (u8)( temp & 0xFF ) ); +} + + + + +/********************************************//** + qXeVX V2 + + ľܓIȓ܂ + ***********************************************/ +#define KIKAN 16 +static void adc_filter( u8 new_val, filter_work *work ) +{ + if( abs( new_val - *( work -> value_used )) > 2 ) + { + // 傫ꂽ + work -> large_diff_count ++; + if( work -> large_diff_count > 16 ) + { + *( work -> value_used ) = new_val; + work -> diffs = 0; + work -> kikan = KIKAN; + } + } + else + { + work -> large_diff_count = 0; + // ߏ̒lłAԂłς΂Ă炻Ɋ񂹂 + if( *( work -> value_used ) < new_val ) + { + work -> diffs ++; + } + else if( *( work -> value_used ) > new_val ) + { + work -> diffs --; + } + + if( --( work -> kikan ) == 0 ) + { + if( ( work -> diffs ) == KIKAN ) +// if( ( work -> diffs ) > (s8)( KIKAN * 0.8 ) ) + { + *( work -> value_used ) = *( work -> value_used ) + 1; + } + else if( ( work -> diffs ) == ( -1 * KIKAN ) ) +// else if( ( work -> diffs ) < (s8)( -1 * KIKAN * 0.8 ) ) + { + *( work -> value_used ) = *( work -> value_used ) - 1; + } + work -> diffs = 0; + work -> kikan = KIKAN; + } + } +} + diff --git a/snake_branches/2.35/adc.h b/snake_branches/2.35/adc.h new file mode 100644 index 0000000..6f4ad04 --- /dev/null +++ b/snake_branches/2.35/adc.h @@ -0,0 +1,48 @@ +#ifndef __adc__ +#define __adc__ + +#include "jhl_defs.h" + +/////////////////////////////////////// +// ANI2 P22 +#define ADC_SEL_AMB_BRIT 0x02 + +/* +// ANI3 P23 +#define ADC_SEL_GYRO_YAW 0x03 +// ANI4 P24 +#define ADC_SEL_GYRO_PITCH 0x04 +// ANI5 P25 +#define ADC_SEL_GYRO_ROLL 0x05 +*/ + +// ANI6 P26 +#define ADC_SEL_3D 0x06 +// ANI7 P27 +#define ADC_SEL_VOL 0x07 + +// ANI8 P150 +#define ADC_SEL_BATT_TEMP 0x08 +// ANI9 P151 +#define ADC_SEL_BATT_DET 0x09 + + + +/////////////////////////////////////// +#define CODEC_REG_VOL 0x13 + + + +/////////////////////////////////////// +extern u8 vol_polling; +extern u8 vol_level_twl; + + + +/////////////////////////////////////// +u8 get_adc( u8 ch ); +void vol_reset(); + + + +#endif diff --git a/snake_branches/2.35/batt_params.c b/snake_branches/2.35/batt_params.c new file mode 100644 index 0000000..13bdb83 --- /dev/null +++ b/snake_branches/2.35/batt_params.c @@ -0,0 +1,130 @@ +/* ======================================================== + eЃobe[p[^ + $Id: asdf$ + ======================================================== */ +#include "jhl_defs.h" + +#include "batt_params.h" + + +const bt_param_ bt_param[ /*_BT_PARAM_NUM_*/ ] = // drg񂷂̂ f~drp[^ +{ + // ctr //////////////////////////////////////////////// + // BT_PARAM_CTR_MAXELL + { + { + 0xAE, 0xF0, 0xB4, 0x30, 0xB7, 0x40, 0xBA, 0x30, + 0xBB, 0x50, 0xBB, 0xB0, 0xBC, 0x50, 0xBD, 0x10, + 0xBD, 0x60, 0xBD, 0xB0, 0xBF, 0xE0, 0xC2, 0xB0, + 0xC4, 0x20, 0xC7, 0xB0, 0xCA, 0xE0, 0xCE, 0x10, + 0x01, 0xF0, 0x14, 0x10, 0x14, 0x20, 0x06, 0x30, + 0x63, 0x90, 0x49, 0x00, 0x6E, 0x00, 0x77, 0x70, + 0x7B, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0xF0, + 0x1C, 0x60, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00 + }, + 2, // 2 = 19 bit mode + { 92, (u8)(-256* 0.79), (u8)(-256* 4.35) }, // @(u8)LXǧp[^̂܂܂̕ + 0xD800, // VXeƂĂ͗ǍDȓ + { 0xEA, 0xE8 } + }, + + // BT_PARAM_CTR_PANA + { + { + 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, + 0xB1, 0xC0, 0xB2, 0x00, 0xB2, 0x50, 0xB3, 0x10, + 0xB4, 0x90, 0xB6, 0x20, 0xB8, 0x60, 0xBA, 0x50, + 0xBF, 0xA0, 0xC6, 0xB0, 0xCE, 0x90, 0xD0, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x7B, 0x30, 0x68, 0x60, 0x20, 0x00, 0x17, 0x00, + 0x17, 0x30, 0x12, 0xF0, 0x0D, 0xE0, 0x07, 0xF0, + 0x07, 0x00, 0x09, 0x30, 0x01, 0xC0, 0x01, 0xC0 + }, + 1, + { 171, (u8)(-256* 1.00), (u8)(-256* 2.60) }, // @(u8)LXǧp[^̂܂܂̕ + 0xDA20, // VXeƂĂ͗ǍDȓ + { 0x69, 0x67 }, + }, + + // SPFL /////////////////////////////////////////////// + // BT_PARAM_SPFL_MAXELL + { + { + 0xA1, 0x20, 0xB7, 0x50, 0xB9, 0xD0, 0xBB, 0x00, + 0xBC, 0x30, 0xBC, 0x60, 0xBC, 0xA0, 0xBD, 0x10, + 0xBD, 0xC0, 0xBE, 0x70, 0xBF, 0xD0, 0xC2, 0xA0, + 0xC4, 0x00, 0xC8, 0x50, 0xCC, 0x80, 0xD0, 0xB0, + 0x01, 0xA0, 0x25, 0x10, 0x18, 0xB0, 0x17, 0xC0, + 0x95, 0x20, 0x6F, 0xE0, 0x7C, 0x60, 0x35, 0x10, + 0x35, 0x00, 0x37, 0xF0, 0x16, 0xF0, 0x1C, 0xA0, + 0x17, 0x30, 0x11, 0xD0, 0x11, 0xF0, 0x11, 0xF0 + }, + 2, + { 94, (-256* 0.35), (-256* 3.85) }, + 0xDAB0, + { 0xF5, 0xF3 } + }, + + // BT_PARAM_SPFL_PANA + { + { + 0x9C, 0xF0, 0xAD, 0x50, 0xAF, 0xB0, 0xB3, 0x00, + 0xB3, 0xE0, 0XB5, 0x60, 0XB6, 0x70, 0xB7, 0xA0, + 0xBA, 0x00, 0xBC, 0x00, 0xBE, 0x90, 0xC1, 0x60, + 0xC4, 0x00, 0xC7, 0x00, 0xCC, 0xA0, 0xD0, 0xA0, + 0x02, 0x00, 0x19, 0x10, 0x12, 0x00, 0x48, 0x10, + 0x25, 0x10, 0x41, 0xF0, 0x2F, 0xA0, 0x13, 0xF0, + 0x1C, 0xD0, 0x10, 0xD0, 0x0F, 0xA0, 0x11, 0x00, + 0x10, 0xE0, 0x0C, 0x10, 0x0C, 0x00, 0x0C, 0x00 + }, + 2, + { 113, (-256* 0.30), (-256* 2.25) }, + 0xDAA0, + { 0xE7, 0xE5 }, + }, + + // SNAKE ///////////////////////////////////////////// + // BT_PARAM_SNAKE_MAXELL + { + { + 0x9D, 0x80, 0xB7, 0xB0, 0xB8, 0xA0, 0xB9, 0xA0, + 0xBB, 0x40, 0xBC, 0x50, 0xBC, 0xA0, 0xBD, 0x00, + 0xBD, 0x90, 0xBF, 0x30, 0xC0, 0xE0, 0xC3, 0x30, + 0xC5, 0x40, 0xC7, 0x50, 0xCD, 0x40, 0xD0, 0xA0, + 0x01, 0x90, 0x35, 0x10, 0x2F, 0x30, 0x11, 0x00, + 0x29, 0x40, 0x88, 0x50, 0x71, 0xA0, 0x5F, 0xE0, + 0x32, 0xD0, 0x1C, 0xF0, 0x14, 0xF0, 0x1A, 0x80, + 0x1A, 0x80, 0x11, 0x10, 0x12, 0x00, 0x12, 0x00 + }, + 2, + { 86, (-256* 0.6), (-256* 3.675) }, // rcomp, r-hot, r-cold + 0xDAA0, // ocv + { 0xF5, 0xF3 } // compare max, min + }, + + // bt_PARAM_SNAKE_PANA 3ŁH130909XV + { + { + 0x9D, 0xD0, 0xA6, 0x20, 0xAC, 0xE0, 0xAE, 0x20, + 0xB0, 0x40, 0xB2, 0x10, 0xB3, 0xC0, 0xB5, 0x00, + 0xB6, 0x70, 0xB7, 0xD0, 0xB9, 0x20, 0xBC, 0x00, + 0xBE, 0xD0, 0xC4, 0x70, 0xCA, 0x40, 0xD0, 0xA0, + 0x02, 0x00, 0x02, 0x00, 0x24, 0x00, 0x14, 0x00, + 0x16, 0x00, 0x1A, 0x00, 0x38, 0xC0, 0x2D, 0xE0, + 0x29, 0xC0, 0x27, 0xE0, 0x0F, 0xE0, 0x11, 0xE0, + 0x0F, 0xE0, 0x0F, 0x40, 0x0C, 0x00, 0x0C, 0x00 + }, + 2, // 2:19bit 1:18bit + { 95, (-256* 0.85), (-256* 1.9) }, + 55968, + { 230, 228 }, + } + + + // FLOWER ///////////////////////////////////////////// + // BCTR̃obe[gB + + // CLOSER ///////////////////////////////////////////// + // BSPFL̃obe[gB +}; + diff --git a/snake_branches/2.35/batt_params.h b/snake_branches/2.35/batt_params.h new file mode 100644 index 0000000..264bcb7 --- /dev/null +++ b/snake_branches/2.35/batt_params.h @@ -0,0 +1,56 @@ +#ifndef _bt_params_h_ +#define _bt_params_h_ + +// $Id: asdf$ + +#include "jhl_defs.h" +/* + dr CTR | SPFL | YBS + 0 ID = 0 maxell + 120 1 + 360 2 + 750 @ 3 + 1.3k@ 4 + 2.7k 5 pana + 8.2k@ 6 +*/ + + +typedef enum +{ + BT_PARAM_CTR_MAXELL = 0, + BT_PARAM_CTR_PANA, + BT_PARAM_SPFL_MAXELL, + BT_PARAM_SPFL_PANA, + BT_PARAM_SNAKE_MAXELL, + BT_PARAM_SNAKE_PANA, + BT_PARAM_FLOWER_MAXELL, + BT_PARAM_FLOWER_PANA, + BT_PARAM_CLOSER_MAXELL, + BT_PARAM_CLOSER_PANA, + _BT_PARAM_NUM_ +} BT_TYPE; + +typedef struct +{ + u8 rcomp; + s16 up,down; +} rcomp_; + +typedef struct +{ + u8 hi; + u8 low; +} verify_; + +typedef struct +{ + u8 mg_param[64]; + u8 v_scale; + rcomp_ rcomp; + u16 ocv; + verify_ verify; +} bt_param_; + + +#endif diff --git a/snake_branches/2.35/bsr.hex b/snake_branches/2.35/bsr.hex new file mode 100644 index 0000000..27344fa --- /dev/null +++ b/snake_branches/2.35/bsr.hex @@ -0,0 +1,1014 @@ +:02000000680D89 +:0400100046484848CE +:02001C00F449A5 +:020024009B4AF5 +:02002A00E64AA4 +:08003400134CB64B0F4C544E67 +:02004A004A4822 +:02005A008448D8 +:02006200124E3C +:06008000A74CE04C2A4DE4 +:0400C0007EFBFF04C0 +:0A00C4001B339499E033F240BFAA09 +:1000CE00C7C1FBF8FFCEABACC736F00071F4C6610A +:1000DE00D8710006F98EA89C018C015C10D1DD0A46 +:1000EE007110A6FB710006F9EF0B8C015C80D161DB +:1000FE00E8710006F98F06F931030EF6B1BBF66111 +:10010E004900DD05618900EFF5FDFE01FD3101FDC0 +:10011E008901FD0F0AFD4609FDAA2FFDD12CEFA581 +:10012E00C0C6D7C7360000674C09DE3F318E04F6D5 +:10013E000FC1317B9EFDC411897267318E04F64F5B +:10014E0014896142DF03F6EF01E660610667318EC6 +:10015E00124900207267318E04F64F14896142DF16 +:10016E0003F6EF01E660610687EFBC40F84F3A6197 +:10017E00E88666D161E8FDB306C6D751065B0C3141 +:10018E001A9F08F94008F90161F8CF08F904D5085B +:10019E00F9DF06710009F9EF04710809F98F09F901 +:1001AE00310505CD3707EF03CD3705D908F9FD61C8 +:1001BE00298F06F95CE39F06F951035B04318EE744 +:1001CE00240000DD1023DD0823DF0E712006F9D791 +:1001DE00713006F9D7714006F9D7717BFACEA010AF +:1001EE00CEA180E5F300000000CEA408F5AAFFD74B +:1001FE008F06F9310508CD0003CD030FEF08CD03AF +:10020E000EF690BFB401CD0408CD0508F521FFCE42 +:10021E0022E9CE23F8CE24F3CE25FACE26FCCE2725 +:10022E005FCE2EFCCF1105F8CF120511CF3500028F +:10023E00CF370019CF530006CBEEFEFFCE3831CEAE +:10024E003970CF38050A308700BF1801BF1A01BFB9 +:10025E001C01BF1E01D7D7C7F616FD9804717BFA95 +:10026E0031329708713297717AFAEF0C717AFAA7D8 +:10027E00F647DFE95203EF01F2C6D7C7C1C1FBF85B +:10028E00FF17A1C1E0C18C0A70C18C0270FDB102D2 +:10029E001006629D54D45461E8CC01FF8C0172109B +:1002AE0004C6D7C7C1FBF8FFFD6502D2DD045203B9 +:1002BE00EF698B70FDE503D2DD077133975202EFC4 +:1002CE005A8C0870FD0104FD4C048B6C0170FD010D +:1002DE0004300400BF2401301740BF1C013004005D +:1002EE00BF22018C0A91DF04F6BF2A01710BE2CE08 +:1002FE0044FF3182E202EFFAAC0C148E449961791C +:10030E000C61690A8C0AD1DFDA8B4CA461F8FD34DA +: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 +:10072E00C15003FD672BC05013FD220A500FC1E0CC +:10073E00FD672BC0CEABAC6159018C0191DD068CEF +:10074E00014C03DF03E6EF01F66061FB7121048CBF +:10075E00014C0861F8CC010031320705A024FCEFF2 +:10076E0003F524FC4024FC11DC22F524FCF0C150DE +:10077E0003FD672BC0CE3708CBE4FFFFCBE6FFF7B8 +:10078E00CED4FFCF370008F5120561FDE6BC02F6A8 +:10079E00614902DD9F00000000617902EFF1FDAEBC +:1007AE0008D2DFFA5008C15014FDE007C0D2FDD3C5 +:1007BE000B1004C6D73184BD02EFFA717BBDCBE4BA +:1007CE00FFFFCBE6FFFFCBD4FFFF717ABED7717B65 +:1007DE00BED7C7C1200CFBF8FF8C0C318E31ADC1DA +:1007EE00317B9DD4C0BC068DD49C088C149C0B8C84 +:1007FE0014318E040C00128C0B318EBDD813FDA556 +:10080E000F61C8EDA908CEABACCC05068C0B318EB2 +:10081E00FD460AD2DD158C0B318EFD4A0A61690543 +:10082E008C05D1DFE7FDDC07E2EF71CC0A008C0A04 +:10083E004C04DE54F6BC02300AF9BBAC06148C082C +:10084E009EFD118972AB146299AC06A1BC0661794A +:10085E0000617902F0E1614902DFE05040C18C0B8A +:10086E00318E31AD128C0A318E318D03BDD831FFF0 +:10087E00BDDADADAADD8FD160DC0D2DD06FDDC0725 +:10088E00E2EF1961590AEFA68C0B318EFD4E0AD29A +:10089E00DD03E2EF0761590BEDFD07F2100EC6D72F +:1008AE00C7717B9D717BFAFDC307300AF9FDF90A0A +:1008BE00FD840AC6D7FDAE08FDD30BFDDC07F5ABF4 +:1008CE00FFF2D7C731049B067110B3FBEF0471180A +:1008DE00B3FB8FB3FB7B8E76D1DD5B8FB3FB9D8E2F +:1008EE004004F903DF22665C10D1DD1C8FB3FB5C84 +:1008FE0010D1DD0B5080C15011FDDA34C0EF09501C +:10090E0040C15011FDDA34C04004F903DD06400445 +:10091E00F904DF22665C02D1DD1C8FB3FB5C02D1D1 +:10092E00DD0B5040C15010FDDA34C0EF095020C12C +:10093E005010FDDA34C0C6D7C7360000665C80D1D1 +: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 +:100D88000036644E34CCFCEF05118B99A7A51744A7 +:100D9800AE4EDFF53602F930CCFCEF04CC0000A7EC +:100DA80047DFF9410036AE4E3420FEEF05118B992E +:100DB800A7A51744BE4EDFF53630FE3096FEEF0489 +: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 +:100FC800728EFDC162314C4100365A4E1161A072D9 +:070FD800C09EFD62C6C2D7F6 +:0A0FF60030393A30393A3532000044 +:0A20000030393A30393A3532000029 +: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 +:1022AC0003713204FD1823FDBA22FD1B26D771538E +:1022BC0096D432DD05B43271529631229607313202 +:1022CC009A03715296715496714102314402057110 +:1022DC0040B3FBD77148B3FBD78D304B3BDC114A75 +:1022EC0030B9DE0C4A3E28DE03A43ED7713396D7B4 +:1022FC008D3C4B30DE054A30BDDC0C4A3F28DE03FA +:10230C00A43FD7713296D7F43EF43FD731429A0CA2 +:10231C004A4002DE03A440D7712396D7313204120F +:10232C0040AFFB3CDE0C8FB2FB5C01D1DF047123B0 +:10233C0096D7712296F440D7C7C1FBF8FF31329A79 +:10234C00067130B3FBEF047138B3FB7144967137EF +:10235C009ADE4F71349A71419631329A0E5002C105 +:10236C005011FDDA34C0CD3229EF37E0C15011FDE8 +:10237C00DA34C0F43217C15002FD4F2BC0D2DF0D3E +:10238C008B318E318D080E01081C00BD34AD3444E8 +:10239C00009BDC05D5AFFBDF095020C15011FDDAE5 +:1023AC0034C0C0C6D78D209D41FDF323FD832BD5B2 +:1023BC0007F9DD04710396D78D414B2061F8316428 +:1023CC00961C716396FD98044A4107DD054A41FF4E +:1023DC00DF098F06F9310303FD8224FD9624710277 +:1023EC00963079256194D7C77162017172015003DF +:1023FC00FD220A5008FD5737629D305009FD5737B2 +:10240C006276716301711806F94A30F1DC0BE5074D +:10241C00F9F508F9CD3707EF0E4A3004DE06CF0781 +:10242C00F902EF03F507F95008C1506CFD8902C0A1 +:10243C0092DF08D45461F8711006F94007F901DFF6 +:10244C0005710A22EF06710B22710302CD2007578A +:10245C0000674C08DE1073090A20614EDC05679D8D +:10246C0020EF0387EFEB4A2007DF09D507F961F866 +:10247C00CF07F903C6D7500AFD220A304000C150DD +:10248C0006FD322BC05096ED220AC72006FBF8FF42 +:10249C00D507F961E8ED7525304A57C1503EFD323C +:1024AC002BC0D2DD077100B2FBED75257108B2FBB4 +:1024BC0017040200C15004C1500CC1506CFDB10294 +:1024CC001006EA38AA48318D12AA48318E616B0881 +:1024DC00616A08C1500EFD322BC0F690C1500CFD44 +:1024EC00322BC0CC01008C014C04DE283134970215 +:1024FC00EFFA712297EA388C015010D605C15010B2 +:10250C00C18C01D6044000C1506CFD630310066100 +:10251C005901EFD250A5FD220AEA38AA48318D1292 +:10252C00AA48318E616B08616A08C1500EFD322BCE +:10253C00C050A5FD220A5004C1506CFD8902C06236 +:10254C009C01EA388A4B4E0161C3048A4A4E01173A +:10255C00040200C15004C1500CC1506CFD63031047 +:10256C0006F6C1503EFD322BC01006C6D7C78D42B1 +:10257C004B3061F8ED18264A4428DE05A444ED18CA +:10258C0026F4448D309D428D305070D612307351EC +:10259C00230480001231FF318E039D439FAEFBF666 +:1025AC008D437C804C95DC1B8D43318F241400EAC9 +:1025BC0038BDD8AA44FDD50D1231FF318E03318FB1 +:1025CC0016EF198D43318F241400EA38BDD8AA4672 +:1025DC00FDD50D1231FF318E03318F16EA388A4248 +:1025EC007217F3031644000171FE61C836FF001721 +:1025FC0001DE02F61617BD7CC7500CFD322BC0D283 +:10260C00DF068D309D42EF047100B2FBF2C6D7C7D6 +:10261C002008FBF8FF4007F901DD064007F902DF4F +:10262C001C17040600FD552CD2DF0A8C069C058C69 +:10263C00079C04EF4ECC0563CC0400EF4617040650 +:10264C0000FD552CD2DD0F7100B2FB710396CC0549 +:10265C0000711297EF2D7108B2FB8C06318E318D03 +:10266C00080E07081C00BBEA388A4072ABFD280F25 +:10267C00BB8C019C05D1DF08CC0501CC0400EF0319 +:10268C008B9C0417040600FD602CD2DD06CC06C81A +:10269C00CC07008C069FB1FB8C06318E318D080E59 +:1026AC0007081C00BD34AD344401A5DC08CC036420 +:1026BC00F6BD46EF48AD3426464401A0DC08CC03F9 +:1026CC001EF6BD46EF37AD3444819DDC09CC030AC0 +:1026DC00C946F401EF27AD3444019BDC09CC03055A +:1026EC00C946F401EF17AD34440191DC09CC030069 +:1026FC00C946F401EF07711297C946F4013132044F +:10270C000C31249608CC0564CC0400EF0D8C034EE0 +:10271C0005DE078C039C05CC04008C059FAFFB8C5D +:10272C00049FB0FBFDE22B8D484E05DD2840AFFB2E +:10273C000BDE054A480BDE1440AFFB06DE054A48AB +:10274C0006DE09D5AFFBDF0DD448DD095020C150A2 +:10275C0011FDDA34C08FAFFB9D48FD1F2C1008C64D +:10276C00D7C75601D837C15002FD672BC08F09F966 +:10277C003105075012FD220AEF0E500AFD220A7194 +:10278C002010055008FD220A8D376C0870C15002CC +:10279C00FD672BC05003FD220A8D376C1870C15099 +:1027AC0002FD672BC05016FD220A5003FD782B62E8 +:1027BC005C01D1DD0F7170B3FB5002C15013FDDA17 +:1027CC0034C056006672C6D7C75004FD782B625CC5 +:1027DC0003D1DD405014FD6B2834B3FB895C9F9909 +:1027EC008A0C7CFF50FF5C14D1DD228A0C7CFF5CD0 +:1027FC00147234B7FB89616A9971620756003162B1 +:10280C0007058666D1DFF7716307716B2734C6FB4A +:10281C00895CEB995002FD782BD2DD398D376C1029 +:10282C0070C15002FD672BC0E0FD220AD837C150A1 +:10283C0002FD672BC05033FD220A8F09F9310309C1 +:10284C0071281005500AFD220AF0C15002FD672BB9 +:10285C00C07178B3FBE0C15013FDDA34C0C6D7C7E2 +:10286C00C12004FBF8FFCC02005004FD782B629CC5 +:10287C00038C045C20D1DD0E8C036C019C038C0258 +:10288C006C209C02EF138C045C10D1DD0C8C035C6F +:10289C00FE9C038C026C109C028C045C08D1DD0E37 +:1028AC008C036C029C038C026C089C02EF138C044E +:1028BC005C04D1DD0C8C035CFD9C038C026C049CD1 +:1028CC00024008F903DF088C03D161E8CC03028CC9 +:1028DC0003D1DD05501AFD220A8C0370C15004FD92 +:1028EC00672BC08FB3FB5C9F728C03318E316D14E0 +:1028FC008C03318E314D616D08616C5C606162627C +:10290C009FB3FB8FBFFB7CFF50FF5E02D1DD278F97 +:10291C00BFFB7CFF5E027234B7FB89616A997162FE +:10292C0007CC0100316207086159018C01D1DFF439 +:10293C00716307716B27F21006C6D7D9A7FBC1507C +:10294C0006FD672BC0D9A8FBC15007FD672BC0D76C +:10295C00FD4729F2D7C716664C02DD044C04DF058F +:10296C00CD3A08EF02F43AC6D7C7711300711B2099 +:10297C00710303710205E0C15003FD672BC05013B6 +:10298C00FD220AD83AC15005FD672BC0500FC1E09B +:10299C00FD672BC0500AFD220A7103055008FD2269 +:1029AC000A501FC1E0FD672BC05012FD220A5003D4 +:1029BC00FD782B625C01D1DF03E2EF12F0FD782B86 +:1029CC00629D363602F9C75008FD4F2BC0F2C6D7B0 +:1029DC005003C1FD672BC0710203711A20FD0F2B30 +:1029EC00F431D75014FD6B28FDD4275014FD220A66 +:1029FC00E0C15003FD672BC0711300711B207103E4 +:102A0C00035014FD220AF0C1E0FD672BC0F0C15049 +:102A1C0003FD672BC0D7C72004FBF8FFCC02008D49 +:102A2C00319C035010C150A4FD8902C0629D31D469 +:102A3C0054DD04F2EDEC2A8C037B315C08D1DD0F04 +:102A4C008D315C08D1DF05CC0210EF03CC02208C59 +:102A5C00037B315C04D1DD158D315C04D1DF088C36 +:102A6C00026C049C02EF068C026C089C028FB2FB79 +:102A7C005CF3728D315C0C6162629FB2FB8FBEFBAA +:102A8C007CFF50FF5E029C02D1DD1F34B6FB896EC9 +:102A9C000299716207CC0100316207086159018CFF +:102AAC0001D1DFF4716307716B278D315C40D1DD8F +:102ABC00095002C15012FDDA34C08D315C01D1DDF8 +:102ACC0008E0C15012FDDA34C0717AFA8D315C41E4 +:102ADC00D1DD0C5A31BED831C15010FD9147C0F236 +:102AEC001004C6D7FD6D27F2D7FDD427F2D7C78FB8 +:102AFC00C6FB7617FD6B28664FC6FBDFF2F5C6FBEF +:102B0C00F2C6D75064FD220AFD6B2C6261FB711179 +:102B1C0096F171149661DC70C15012FD9147C0FDA5 +:102B2C008836CD6303D7C7C1C1FBF8FFAC0ABB170E +:102B3C00C15002C18C0270C1506CFD6303100610B1 +:102B4C0004C6D7C7C1FBF8FFAC08C15002C18B70DB +:102B5C00C1506CFDB1021006C0C6D7C788061667F7 +:102B6C0070C1C75084FD2C031004C6D7C716C750BC +:102B7C0084FD8902C0C6D7C74A2004DE045600EF84 +:102B8C000256018F08F9318FE7240000DD1A23DD8E +:102B9C000B23DD0C23DD1123DD0CEF0C8686EF08F7 +:102BAC0051046106EF02868666318F12504CD63383 +:102BBC00514CD6610A045420BD384008F902DD0698 +:102BCC004008F904DF08CD3B54CD3C44EF06CD3B27 +:102BDC004BCD3C3DC6D740AFFB3DDC05CF04FC0FD5 +:102BEC00D740AFFB1FDC05CF04FC0BD740AFFB0B72 +:102BFC00DC05CF04FC07D740AFFB0661D8313204AB +:102C0C0005CF04FC03D7D5AFFBDD04E504FCD7F5F9 +:102C1C0004FCD7D504F9DF04717396D7FD6B2C62D5 +:102C2C0061FB71019771149671079761C8317296A7 +:102C3C0017717296710497711196F171049761DC9A +:102C4C0070C15012FD9147C0D7C716C75004FD4F35 +:102C5C002BC0C6D7C716C75002FD4F2BC0C6D740D6 +:102C6C00AFFB0BDE02E2D7F2D77100010571785091 +:102C7C0005713AD5713BD18F10055CFC9F1005CFC7 +:102C8C0054054AE542057110420571004205714830 +:102C9C0050057130500571205005CF530509CF52A6 +:102CAC00050B7130510571205105713BD571705078 +:102CBC00058F11055CFC9F1105F422D77178500526 +:102CCC0071080105D7FD8238FD9804717AFAFDB1BF +:102CDC0023F504F98F06F931051B5003FD782B629F +:102CEC005C01D161E8CF04F902CFAFFB647104073A +:102CFC00714196EF10F6710407611012F6B1236062 +:102D0C0061FB714196FD8A30FD3543712299712B1F +:102D1C00E7618461A461EDEFF8D7C7880616666198 +:102D2C004FDD0967614EDE0396EF01866672C6D7EA +:102D3C00C7161714AA0412A943DD29AA0412A92341 +:102D4C00FDBE4EC3AC02FDBE4E13C2BDD813FDA5D5 +:102D5C000FDE0C1714AA0212AA0403BA04EF05170B +:102D6C0014A9BA04AC041231FF319E03317F0872EE +:102D7C0008C6D77100F200304400BFB6013001889C +:102D8C00BF9001300984BF9E01BF9C01BF9A01BF57 +:102D9C009801BF9601BF9401BF9201F53CFF30FE34 +:102DAC0000BFBE01F6BFBC01BFB80150EEBFBA01F7 +:102DBC00A1BFB201C918FE008F06F9310507F5CD88 +:102DCC00FBCB6CFF00717397716297D7C72004FB24 +:102DDC00F8FF3026FBBC02F6BBAB446400DE0EAC45 +:102DEC000214CA0000617902617900EFEC1004C68C +:102DFC00D730EF00BFB401F6BFBA017108F2007111 +:102E0C002304715307BE6EBE64BE6A7123047153F2 +:102E1C0007715BD1F457F456716397D78D58B4583A +:102E2C00D1DF6931D4D105715BD1E457D457DD2E94 +:102E3C007140B2FBD856F1E734020023DD0625DDE4 +:102E4C000325DF05F6BE66EF06D9CCFBF1BE66A402 +:102E5C00564A5620DF04F456F457CD5819D7CD589E +:102E6C001E7148B2FBD5CEFBDF04F6BE66D7D9CCBB +:102E7C00FBF14266FFDD15D9CCFBF112AE6643DEE9 +:102E8C0005A266FFEF03B266FFCD5803D7C716172E +:102E9C0014F6B9AA0412F6231231FF31AE03316FC6 +:102EAC00BA02AA046168DD0AAA026168DF04F6B1FD +:102EBC00BA02C6D7C7C1FBF8FF8C085080D612AB3C +:102ECC001413B9AB14AA0412A92312D927FBF1339A +:102EDC00BDD813FD110EBA02C0C6D731049801D764 +:102EEC004004F902DF10F6BE64BE6EBE6ABF8EFBF4 +:102EFC00BF94FBBF9AFB31749714308AFBFD992E5B +:102F0C003090FBFD992E3096FBFD992EEF7131140C +:102F1C00980D7113987108D2FBF45AF459EF60D4E0 +:102F2C0059DF5A8F26FB9D594A5A1FDC177100D264 +:102F3C00FB4028FBFFDD1CA45B8F28FB4B5BDE13E7 +:102F4C00F45AEF0FD85AF1A1605C1F9D5A7108D248 +:102F5C00FBF45BE85A092AFB70C1308AFBFDC02EDA +:102F6C00C0E85A094AFB70C13090FBFDC02EC0E886 +:102F7C005A096AFB70C13096FBFDC02EC0B45930A3 +:102F8C008AFBFD3C2DF313BE6E3090FBFD3C2DF304 +:102F9C0013BE6A3096FBFD3C2DF313BE64D7C736C7 +:102FAC00F00071F4DC297170F000CE9D08CE9EC04B +:102FBC00CE9F80F594FFF593FFF592FFE597FFE523 +:102FCC0096FFE595FFE598FFCE9C7F7100A6FB71FF +:102FDC001BE3712BE3711AE7712BE7717A9D710A70 +:102FEC009E31929E02EFFA710B9E71239871339869 +:102FFC00714398C6D7C73122981E712298710A9EC8 +:10300C0031929E02EFFA34D4FB3692FF52078B9921 +:10301C00A5A792DFF9710B9EC6D7C7880616313269 +:10302C009815713298C7349CFB3092FF1652078B5F +:10303C0099A5A792DFF9C6667367189CFBC6D7C71C +:10304C007123983134981E713398710A9E31929E77 +:10305C0002EFFA3492FF369CFB52078B99A5A7928C +:10306C00DFF9710B9E31449813714398717B9E8FDD +:10307C00DCFB9E9A8FDDFB9E9B717A9EC6D7CFA7F9 +:10308C00FB5CCFA8FB5FCFC8FB5DCFFCFB36CFFD55 +:10309C00FBC9D7C7CFA4FB12CFA5FB33CFCCFBFF0B +:1030AC00F5CDFBF5CEFBF5CFFBF5D0FB5600664C12 +:1030BC0064DE08723826FB0086EFF3F5E3FB714AF9 +:1030CC009D712B21710A20711A20710203C6D7C77A +:1030DC0088061617F1E73403002361E3ED07342368 +:1030EC0061F8EDDE32B12361E3EDE8322561F8EDF4 +:1030FC00F632B1240D0061D8ED0734240B0061F8D1 +:10310C00EDD0312361F8ED13322361F8EDE3312377 +:10311C0061F8ED003424060061F8ED9232B12561BE +:10312C00D8EDAE3224000061F8EDBB322361F8ED2E +:10313C0007342361F8ED0534B12361E3ED16332335 +:10314C0061F8ED27332361F8ED38332361F8ED276F +:10315C00332361F8ED49332361F8ED5A332361F8D9 +:10316C00ED69332361F8ED8B332361F8ED9633234E +:10317C0061F8EDA1332361F8EDA93324020023613A +:10318C00E3ED07342361F8EDDD332361F8EDB13362 +:10319C002361F8EDBC332561F8EDC733B12406008B +:1031AC0061D8ED073424000061F8ED09342561F88D +:1031BC00EDD23324120061F8ED8C322361F8ED7CF2 +:1031CC0032ED093467D1DD0C30B13B619434C4FB72 +:1031DC0089616F99ED1334675C02D1DD0730F02AF9 +:1031EC006194EF0B675C01D1DD0530F52A619467C2 +:1031FC005C3CD1DD0F30FA2A6194675C3C726673DB +:10320C006218A4FBED133467D1DD625C01D1DD05DE +:10321C00300800EF01F6609F01FC675C02D1DD0312 +:10322C00E6EF01F63401FC89616899675C04D1DD35 +:10323C0004E6A1EF01F63401FC89616899675C082A +:10324C00D1DD05302000EF01F63401FC896168996D +:10325C00675C10D1DD05301000EF01F63401FC89FC +:10326C00616899675C20D161E8716001FCED1334F1 +:10327C004A5CC8DE08E85C67185AFAA45CED1334A3 +:10328C00679D5CED1334D44ADF08679FCDFBA44ADD +:10329C00EF0D4A4A05DE08E84A671811FDA44AED0D +:1032AC001334675C0F7266736218A4FBED13344A17 +:1032BC004A64DE1B4A4A01DF0667D161F85701E810 +:1032CC004A671826FBA44A4A4A0561C8711298ED50 +:1032DC00133434A6FB89615F99ED1334305C29619A +:1032EC009466736718A4FBED133440A9FB6ADF13D3 +:1032FC0040AAFB68DF0D674C6CDF083072406194AC +:10330C00713AD5679FABFBED1334675C7F70C117C7 +:10331C00F1243000FD2630C0ED1334675C3F70C1E2 +:10332C0017F1243000FD2630C0ED1334675C0770B4 +:10333C00C117F1243000FD2630C0ED1334675C1F3B +:10334C0070C117F1243000FD2630C0ED13346770C6 +:10335C00C117F1243000FD2630C0ED1334CEABACD8 +:10336C00710A9E31929E02EFFAD592FFDF05710B26 +:10337C009EEFED679E99710B9E9FDBFBED133471F5 +:10338C004298675C7F9FDCFBEF7D714298675C3FE6 +:10339C009FDDFBEF72675C3F9FDEFBEF6A675C1F94 +:1033AC009FDFFBEF623066396194679FE4FBEF5758 +:1033BC003033396194679FE5FBEF4C304C396194A5 +:1033CC00679FE8FBEF41675C01D1DD3BFD3543EFC7 +:1033DC0036675C02D1DD05712A21EF06714A9D71B9 +:1033EC002B21675C01D1DD06710300710B20679FF7 +:1033FC00E3FBEF1367318EEF0EEF0CEF0A664C5BBD +:10340C00DE05736718A4FBC6D7C716664C30DC09FB +:10341C004C37DE05FD0130EF76664C02DF1F8FA6C0 +:10342C00FB5C03728F03FC5C03318E316D08616AA7 +:10343C0008128F03FC5C80312A6162EF61664C3D9F +:10344C00DF08AE90BD5EF85EEF54664C3EDF04F8CC +:10345C005FEF4B664C4FDF05FD5D43EF41664C6102 +:10346C00DF134A5CC8DC045700EF06E85C095AFA23 +:10347C00776772EF29664C7FDF05FD273CEF1F66EF +:10348C004C4EDF0B31049A045210EF12F2EF0F6620 +:10349C004C5BDC0452FFEF06667309A4FB72C6D7C3 +:1034AC00C788061617F1241000240500DC07244CED +:1034BC0000DD17EF17717BFA17F104A4FB14896177 +:1034CC007F99717AFA715298EF02A45CC6D7C7C182 +:1034DC00C1FBF8FF4004F903DD064004F904DF38B2 +:1034EC00717BFA8C027309ACFB5E0AD1DF278C026C +:1034FC00318E04A4FB14896E0A99716207717AFAF1 +:10350C00CC0100316207086159018C01D1DFF471E3 +:10351C006307716B27717AFA1004C6D7CF03FC03CB +:10352C00F501FCF505FCF507FCD7C788061617F165 +:10353C00E734020025DD3D23DD1725DD1C23DD05E9 +:10354C0023DD2BEF3B710299679F06FCCD6303EFE4 +:10355C002F675C839F03FCEF27675C039F05FC6769 +:10356C005C034C0261F871229AFD4B45EF12679F88 +:10357C0007FCEF0C6791DF08E0C15012FDDA34C094 +:10358C00C6D7C71617F1E7240000DD2A23DD1E2459 +:10359C000300DD0724FB00DD24EF2531329A0530D2 +:1035AC008000EF01F6086F04FC7208EF198F01FC24 +:1035BC00F501FC72EF107152995235EF09F2EF06DA +:1035CC0066730900FC72C6D7C71617F1E724000012 +:1035DC00DD38241000DD1C23DD1C23DD30240E001F +:1035EC00DD18241100DD1B240F00DD12243000DD5A +:1035FC0015EF1EE2EF1D5202EF195204EF155206A1 +:10360C00EF115205EF0D5207EF09F2EF065203EFDF +:10361C000252FFC6D7C7316498377163988D629F89 +:10362C00ACFB8D619FCBFB36D2FCC7D861FD8837D4 +:10363C00618A70618AFDCD37C0D866F1312F609DEB +:10364C00658D604B65DD0A7172988D659D60CD63EB +:10365C00034A6305DE083092366194CD636BB46324 +:10366C007150F000CE300BCF170006CE3106FD6442 +:10367C0002717A30710BE3710BE7C6D78D659D60D3 +:10368C008D659FADFBD74004F903DF064004F904B8 +:10369C00DF02F2D73174980C7173987113998D65A0 +:1036AC009D67EF313104991F710399711299D506F9 +:1036BC00FCDF04F468EF0A8F06FC5002D6A1609D73 +:1036CC00688D689D67EF0E311499068D689D67EFC4 +:1036DC00048D659D678D679FADFBD867FDFA36E855 +:1036EC0067091C2270C15013FD9147C0F2D7C7C1A6 +:1036FC00C1FBF8FF8C02D1DF05F506FCEF1A8C023A +:10370C004C05DE06CF06FC02EF0E8C02318E123118 +:10371C00FE03311F609F06FC8D694F06FCDD28CC33 +:10372C00011F8F06FC9D69CC00008B4C08DE148BAE +:10373C00730912204F06FCDC058B9C01EF056159C7 +:10374C0000EFE78C019D641004C6D7C716710AE719 +:10375C00710BE37150F000CE300BCF170006669E54 +:10376C0031FD6402717A30710BE33182E302EFFABE +:10377C008D1F7158F000710BE772C6D7C7C1C1FB22 +:10378C00F8FF8FFCFB4E02DC03F2EF318C024FFD95 +:10379C00FBDC0452FFEF268C022FFCFB70613131F5 +:1037AC008D128FFDFB2FFCFB70613133BDD813FDE7 +:1037BC00330EBB440001DC03F690BB8B721004C6C5 +:1037CC00D7C7C1FBF8FFAC0814A91489708B61280A +:1037DC00706131FDBE4E1344030071FEDC23AC0856 +:1037EC00148A04819A04AC08148A044C11DC10A9C4 +:1037FC00148B99AC0814CA0200AC0814CA0310EF5D +:10380C0072AC0814CA0400AC0814A914894DDE0A61 +:10381C00AC08148A02819A02EF12AC0814A914891C +:10382C004D61D308AC08148A02919A02AC08148A30 +:10383C0003919A03D1DF3CAC08148A024C10DF10C0 +:10384C00A91489318EA112AC0814A9146299EF172E +:10385C00AC08148A024CF0DF0EA91489318EB11217 +:10386C00AC0814A9146299AC0814CA0200AC081470 +:10387C00CA0310C0C6D7ED8538C75600664C0ADEA1 +:10388C000BF0317E12F67810FC86EFF0C6D7C7200D +:10389C000CFBF8FF17040600C15006C150A8C1501C +:1038AC0030FDB1021006D2DD1B4A6C04DE05A46C9F +:1038BC00E2EF7034E4FB895CFC99FD66397110B25F +:1038CC00FBF2EF5F717BFA300600C117040600C1F2 +:1038DC0030E9FBFDC64E1004717AFAF46C8FE4FBF0 +:1038EC005C01D1DD264004F903DF205010C180FDBE +:1038FC00DA34C0C736100571D4C6DE0F17C15006B6 +:10390C00C150A8C15030FDB10210064004F903DDCE +:10391C00064004F904DF0B8FE4FB5C02D161E8FD87 +:10392C007740F2100CC6D7D9E5FBC15030FD8902A7 +:10393C00C0629FE8FB5008C15011FDDA34C0F2D7C9 +:10394C00D9E8FBC1D9E7FBC15030FD2C0310045062 +:10395C0008C15011FDDA34C0F2D7C7200CFBF8FFB8 +:10396C00CC09004007F901DF05CC0A02EF03CC0AB1 +:10397C0010CC0B808FE4FB5C039C07D1DF08717AC1 +:10398C00D5CC0807EF06717BD5CC082F170408009F +:10399C00C15004C150A0C15030FD63031006624CED +:1039AC0002DF077110B2FBF2EF357118B2FBF46C49 +:1039BC00C736100571D4C6DE164004F903DF1017A4 +:1039CC00A1C15006C150A8C15030FDB10210067102 +:1039DC007BFA8FE4FB5C034E07DD03E2EF01F21090 +:1039EC000CC6D7D504F9DF03F6BD6E4004F901DD32 +:1039FC000AD478DD03B478D7CD78038F04F9318FEE +:103A0C00E723DD0B24020024030061C8ED1F3B8F6C +:103A1C0006F9312349301B00466EDF158FE3FB5C42 +:103A2C0001D161E8F504F9E0C15010FDDA34C0EFC2 +:103A3C001D307701466EDF165002C15010FDDA348E +:103A4C00C0F64674DF088FC8FB5010D6BD74F6461E +:103A5C0074DD36B6744674DF30711297EF2B301B61 +:103A6C0000466EDF13F64676DF18E0C15010FDDA23 +:103A7C0034C0C9765307EF0A307701466E61F8718E +:103A8C001297F6467661E8B67631549A08714399E6 +:103A9C00F6BD6EEF1431449905F6BD6EEF0BA66EB4 +:103AAC00F6466E61F8C96EFFFF31629A194A7005CD +:103ABC00DE16A4704A7005DF0FA4705004C15010BC +:103ACC00FDDA34C0EF02F47031649A194A7205DEE3 +:103ADC0016A4724A7205DF0FA4725008C15010FD73 +:103AEC00DA34C0EF02F472D473DD03B473D73172DD +:103AFC009A174A7105DE14A4714A7105DF0DA47181 +:103B0C005010C1FDDA34C0EF02F4714A710661F84D +:103B1C00CD7325D7C736100571D4DE0E8FB2FB5C82 +:103B2C0002D1DF06309A386194D24004F903DF1CCD +:103B3C003122070530222A61943154990C71539922 +:103B4C005080C15012FDDA34C0FD5D3BFD833BC695 +:103B5C00D78F03FC5C01D1DD1DD47BDD03B47BD797 +:103B6C00CD7B098D644B7ADD0D8D649D7A5040C1FF +:103B7C005012FDDA34C0D74004F903DD04F6BD1A47 +:103B8C00D7D5D0FBDF08F6461ADD19B61AD7D9CC33 +:103B9C00FBF1461ADD0ED9CCFB12AD1A43DE03A69F +:103BAC001AD7B61AD7717BFAC78FC4FB76F5C4FB4C +:103BBC00717AFA5C10D161E8716299665C0FD1DDA3 +:103BCC0057665C01D1DD05F504F9EF4C665C02D15A +:103BDC00DD11E0C15003FD672BC0711300711B2078 +:103BEC00710303665C04D1DD11711300711B20D5C8 +:103BFC0003FC61F8710303FD2835665C08D161E8AC +:103C0C007103035005FD220A7102035003C1FD67C5 +:103C1C002BC0711A20FD0F2BF2C6D7C756FF4A4A8C +:103C2C001361C8EDE53C8F06F931150D31450530B2 +:103C3C000600EF14300400EF0F8F06F93145053004 +:103C4C000500EF04D907F9F1609F28FC8D7C9F29B2 +:103C5C00FC713496E661301271049661DC311961A5 +:103C6C0062629F2AFCE52BFC31449A05304000EF40 +:103C7C0001F6C131340405302000EF01F6C2616B4E +:103C8C0008616A08C131749A05300400EF01F6C26C +:103C9C00616B08616A08C131649A04E6A1EF01F610 +:103CAC00C2616B08616A08C131549A03E6EF01F6F0 +:103CBC00C2616B08616A9F2CFCF171240461DC9F6A +:103CCC0026FCF171540761DC9F27FCD84AF10104F2 +:103CDC00ECFC14A9148976A44A6672C6D7C7FD46B3 +:103CEC00098F04F9318FE724000061F8EDC83E23F9 +:103CFC00DD1B2361F8EDD03D2361F8ED4D3E2361D2 +:103D0C00F8ED963E2361F8ED683FEDC53EF6BD74C7 +:103D1C007113974005F901DF2C31349A1B466EDD87 +:103D2C0004F424EF02A4244A2465DC0FF6BD6EF5DE +:103D3C0004F9712299EDED3FFDB123AD6E440A00FB +:103D4C0061D8EDED3F714299FD9804716396FDB118 +:103D5C00234007F903DF09712299F504F9EDED3FD2 +:103D6C00FD1B2640B1FB9BDE09712299F504F9ED90 +:103D7C00ED3F714A277140110571301105713A22DE +:103D8C00715A2271501105FD7529D2DD09712299E4 +:103D9C00F504F9EDED3F71103500CF37001D714082 +:103DAC001205FDDC294005F901DD064005F903DFAC +:103DBC0005F5CDFBEF04CFCDFB03CF04F902FD4796 +:103DCC0029EDED3F71103500CF37001D7140120504 +:103DDC00FD752CFD0605FD2835FD9F30F537FF716F +:103DEC002BE0F505F9712299CBE43FEFCBE6F6F029 +:103DFC00FD9804713BD48F06F93105265002FD78ED +:103E0C002BD2DD087170B3FB712010055004FD78C6 +:103E1C002B625C03318E315D34B3FB89616899FD93 +:103E2C00B123FD7F2D710806F9CF04F9038FA6FB92 +:103E3C005C02D1DD095080C15010FDDA34C0EDEDCB +:103E4C003FFDEF3F3164992FA47ED47EDD0831A471 +:103E5C00E00A31020C06712BE0FD634031A4E0173F +:103E6C0031040C13712BE05027C15005FD672BC09A +:103E7C00CF04F904712299FD58408F06F9312507BA +:103E8C0031349A03F504F9EDED3FFDEF3F31020CAF +:103E9C0015D83AC15005FD672BC05005FD220AFD0F +:103EAC006340CF04F903FD58408F06F931250731E3 +:103EBC00349A03F504F9EDED3FF504F9CFCDFB038E +:103ECC00F5CEFBF5D0FB717297F6426CFF61E8ED15 +:103EDC00ED3FF6BD74711397F5E4FBFD6639717A0D +:103EEC00FAFDFD2DFDC82CFD5805712B21714B9D44 +:103EFC0031349702EFFACE3708CBE4BFFFCBE6FFA5 +:103F0C00F3CED4FFF5B4FBF5B5FBF5B6FBF5B7FB7B +:103F1C00CF37000971481205F6BEE0BEE2BED07183 +:103F2C006A27FDEF29714307714B27714810057102 +:103F3C004811057138100571381105713302713B48 +:103F4C0022715302715B227158100571581105CF03 +:103F5C0004F905714299F6BD6EFD0F0AF505F9F4E9 +:103F6C00247128100531349A04D432DD20E505F98A +:103F7C00E504F98F06F9312568F5F8FBF5F6FB50E9 +:103F8C002EFD220ACF05F903E504F9EF54FDEC04EC +:103F9C00FD442371730171320471430271039671F4 +:103FAC00629631949E02EFFA712AE7CEA409F5F3DA +:103FBC00003104070261FDE5F300F46AFD4609CE09 +:103FCC00A40831329A06CF04F905EF09714399E53B +:103FDC0005F9E504F9712BE78F06F9312503F50492 +:103FEC00F9C6D78FE3FB5C01D1DF60D47FDF1931D9 +:103FFC000200585003FD782B625C01D1DF07F504F9 +:10400C00F9712299D7E47FD74A7FF0DF073104009A +:10401C003AF47FD74A7FC8DF0AF504F9712299CDAB +:10402C007FF0D7310200084A7FFFDD1FA47FD7F055 +:10403C00C15004FD672BC08FB3FB5C9F9FB3FB711A +:10404C0010C4FB30B13B6194CD7FF0D7311497068F +:10405C00F504F9712299D7716399F47E717207FD99 +:10406C006402717307D7FD6105F2D7717BFAC72023 +:10407C000CFBF8FF8FEAFBF0F9E9FBF303FDBE4EF6 +:10408C0013BC048FECFBF0F9EBFBF303FDBE4E13FA +:10409C00BC028FEEFBF0F9EDFBF303FDBE4E13BB40 +:1040AC00717AFAAC04BDD8F6BDDAAC04311EBDDCB5 +:1040BC00F6BDDEFDE60DADD8BDDCADDABDDEAC0285 +:1040CC00BDD8F6BDDAAC02311EDADCC3DADEC3BD14 +:1040DC00DCF6BDDEFDE60DC0BDDEC0BDDCADDEFD3B +:1040EC005C0FADD8BDDCADDABDDEABBDD8F6BDDA4C +:1040FC00AB311EDADCC3DADEC3BDDCF6BDDEFDE6B9 +:10410C000DC0BDDEC0BDDCADDEFD5C0FDADAADD8B6 +:10411C00FD4644C3C58D8C5C3FF0317E0440FC14DD +:10412C00C2C0B9A48CF6BC08BC0A9C078C074C2EE8 +:10413C00DD3D8D8C0E0770F161DC605C3FF0317EF3 +:10414C00127940FCBDD8F6BDDA8C0773095C2231BC +:10415C008FBDDC70BDDEFDE60DAC08BDDCAC0AFD30 +:10416C005C0FADDABC0AADD8BC08615907EFBDAC29 +:10417C0008BDD8AC0ABDDAC9DC0004F6FDB00EC926 +:10418C00DCFFFFF6FDB10FADD8BD86AF3AFC46861D +:10419C00DD11AF3CFCBF3EFCAF3AFCBF3CFCAD8636 +:1041AC00BF3AFCAF3CFC423EFCDC46AF3AFC423C26 +:1041BC00FCDE3EAD26423AFCDE374A2A16DC1A4AB1 +:1041CC002AA0DE138D884B2ADE0DAF3AFC268A44DA +:1041DC00691061C8FD2F42F42AAF3AFC445146DC09 +:1041EC000AAF3AFC241027BD28EF0DC928F82AEF96 +:1041FC00074A2AFF61E8A42AAF3EFC423CFCDC18CB +:10420C00AF3CFC423AFCDE10AF3AFC4628DE09F427 +:10421C0088AF3AFCBD8AEF074A88FF61E8A4881092 +:10422C000CC6D7717BFAC7710A9E31929E02EFFAC7 +:10423C008E949F34FC8E969F35FC8E979F36FC8E09 +:10424C00989F37FC8E939F38FC8E929F39FC710B94 +:10425C009E717AFA8F37FCFDC50F76FDC44313BDF2 +:10426C0084D5EFFBDF0AD5F0FBDF05D5F1FBDD25AF +:10427C00F6B14684DF11C9843722665C0391DF06F0 +:10428C000A84181A85009617FDE74413FD0743317D +:10429C00049A02EF61520692926934FC682EFCDF9C +:1042AC00F6AD84BD82F880F3311C790AF944FEFF27 +:1042BC00DD44D880F101040AF914A944FFFFDF049E +:1042CC00E6B9EF0BD880F101040AF914A9A1B97170 +:1042DC007BFAA0EFFBD5EFFBDF1CA0F0FBD5F0FBCE +:1042EC00DF14A0F1FBD5F1FBDF0CCFEFFBFFCFF020 +:1042FC00FBFFCFF1FBFFC6717AFAD7C716D880F156 +:10430C000744A800DC0571029AEF1CF647DD18A4DF +:10431C00804A80A8DC0571029AEF0CF880F3311CFE +:10432C00F6780AF9B7EFE4C6D7C756A89666F03107 +:10433C007E12F6B1780AF966D1DFF1717BFAF5EFEE +:10434C00FBF5F0FBF5F1FBF48071039AC6717AFA78 +:10435C00D7C72004FBF8FFD44ADF168D809D8D71E2 +:10436C007BFA52069292692EFC68C0FCDFF6717AD9 +:10437C00FA4A4A06DE0EE84A09C0FC9C03A44A8CA1 +:10438C000372EF30F88DF3311C790AF9BB31129AB4 +:10439C00058B9C03EF0F8C019C03D48DDF05CD8D19 +:1043AC00A7EF02B48D718071179A61DC61FB7111FA +:1043BC009A8C03721004C6D7C72008FBF8FF8F37FE +:1043CC00FCFDC50F9C078F36FCFDC50F9C068F3579 +:1043DC00FCFDC50F9C058F34FCFDC50F9C048F386C +:1043EC00FC9C038F39FC9C028C06318E0112791ACD +:1043FC0020BB8C075C03D1DF098C064C0361C861C0 +:10440C0079008C05318EB1610900BB313D1201037D +:10441C00BB8B0E04708C011C00BB8FF4FB4E03DCB9 +:10442C000E8C034FF4FBDC0B8C024FF5FBDC04AB66 +:10443C0012EF03ABB1121008C6D7C7C3C12008FBDB +:10444C00F8FFF661490A61F8614908DF07F73400A3 +:10445C0000EDE344E6BC04F6BC06AC0ABC02AC08B6 +:10446C00BBAC06614902AC0461F8614900DE28ACC2 +:10447C0004BDD8AC06BDDAE1FD6B0FADDABC06AD00 +:10448C00D8BC04ABBDD8AC02BDDAE1FD860FADDA09 +:10449C00BC02ADD8BBEFCAAC06BC02AC04BBAC08CA +:1044AC00BDD8AC0ABDDAAC04BDDCAC06FDE90EAC83 +:1044BC0004BDDCAC06FD5C0FE1FD860FADDABC067D +:1044CC00ADD8BC04AC06614902AC0461F86149008A +:1044DC00DCC5AC0214AB12100CC6D7C7C12004FB50 +:1044EC00F8FF8F31FCFDC50F9C034E04DF1CAD8221 +:1044FC004684DE07AD84268212EF40F64684DF0741 +:10450C004682DD03E7EF34F7EF318C04318EB112C4 +:10451C008C03318E43DF1830382226820684BB8C04 +:10452C00045C0391DF05AB041800BBAB12EF0C8CE1 +:10453C00034E04DE0532A900EF01F71006C6D77151 +:10454C007BFA31229A0CF64690DD07B690717AFA16 +:10455C00EF7C71239A717AFA4004F904DF077153E6 +:10456C0007F42CEF69D9CFFBF1E7240000DD0F2312 +:10457C00DD1A23DD1023DD5323DD2723DD387153B2 +:10458C0007F42CEF49715207F42CEF42D42CDF07BF +:10459C00715207E42CEF05715307F42CC990FA0003 +:1045AC00EF2CD42CDF0B715207E42CC990FA00EFDE +:1045BC001DF5CFFBEF18D42CDF0B715307E42CC97E +:1045CC0090FA00EF09CFCFFB02EF03FDDB45D7D903 +:1045DC0005FCF1E7240000DD0923DD2123DD09239F +:1045EC00EF1B715307F42CD7D42CDF07715207E45F +:1045FC002CEF05715307F42CC9902D01D77152077C +:10460C00E42CD731629701D7710398D9CDFBF1E730 +:10461C00240000DD1223DD1923DD1123DD2623DD2B +:10462C003423DD3923DD3FFD9B46EF3DFDBC46EFDA +:10463C0038D9CCFBC1AE6CFD262DC0F313BE6C710A +:10464C002304EF25F0C1AE6CFD262DC0F313BE6C18 +:10465C00712304EF14F6BE6C712204EF0CCB6CFFCB +:10466C0000712304EF03FD30474004F905DD0640DB +:10467C0004F901DF067123047103983104980FF6D5 +:10468C00BE64BE6A31220402EF02F690BE6ED7CD34 +:10469C002E47F492AE6C317DBFCAFCFD0547D2DFCC +:1046AC000ED9CCFBC1AE6CFD262DC0F313BE6CD75E +:1046BC00FD0547D2DD0DCD2E47F492AE6C317DBF9A +:1046CC00CAFCD7E8920934205080D6BFC6FC22CA57 +:1046DC00FCBDD8304700FD110EBFC8FC30C6FCFD38 +:1046EC003C2DF313BE6CB42ED42EDF0CCD2E47A470 +:1046FC00924A921F61C8F492D740AFFB0BDC057154 +:10470C002304F2D740AFFB0661D831229611F0C1D9 +:10471C00AE6CFD262DC0F313BE6C712204EF03FDAD +:10472C003047E2D7710298F0C1AE6CFD262DC0F374 +:10473C0013BE6CA4934A9340DC37F493D894F131B4 +:10474C003F0412FD14D894F1BDD85008FD600E083A +:10475C007208E6D2DD040192DFFC896158D1DD05D7 +:10476C00712204EF03712304A4944A942061C8F4C9 +:10477C0094D7C73026FDC6D77180717DFADE0352FF +:10478C0001D75200D7C7C12004FBF8FF1704030060 +:10479C00C1E0C15010C150A4FDB1021006629C02D0 +:1047AC00D1DD058C0272EF518C0C70C18C0470FD44 +:1047BC000948C0629C02D1DD058C0272EF3B8C0370 +:1047CC005C7DD1DF03F2EF3117A1C1E0C15010C104 +:1047DC0050A4FDB1021006629C02D1DD058C027260 +:1047EC00EF178C015C7DD1DD03F2EF0D8C0370C1F2 +:1047FC005010FD0948C0629C021006C6D7C7880637 +:10480C0016710AE650A4FDE503D2DD077133975209 +:10481C0002EF1317FD01046770FD0104FD3448FD20 +:10482C007504713397F2C6D7FD4C0450A4FD0104F6 +:0A483C005020FD010450AAED010414 +:1048460061FC61FCC1C3C5C7520C929269D4FEC11A +:10485600DFF88EFD708EFCC1717AFA4004F903DF31 +:104866000530222A6194C09EFC609EFD34D4FE521F +:1048760006C0B9A5A592DFF9C6C4C2C061FC61DF56 +:10488600520C929269D4FEC1DFF88EFD708EFCC187 +:104896008F4105775C04D1DD06675C01D1DD5031BF +:1048A6005498367162077153988FB4FB5FBCFBD185 +:1048B600DF1B8FB5FB5FBDFBD1DF128FB6FB5FBE83 +:1048C600FBD1DF098FB7FB5FBFFBD1DD0C31620780 +:1048D60002EFFA716307716B2771139AFD4B30F47F +:1048E600227148500571605005717AFAEDE049670A +:1048F6005C02D1DD16D422DD124A2202DD0DF4223D +:104906007148500571605005717AFA717AFA8D22F4 +:10491600318FE7240000DD0823DD1423DD2CEF4A68 +:10492600F44A7140500571505005E422EDE0498F7C +:1049360040059D4B715050058D4B9D4DD84BFD1537 +:1049460034629D4CCD2202EDE049675C02D1DD1751 +:10495600675C10D1DD05CD2203EF0F71485005715C +:10496600605005F422EF73CD22044A2203DF108D36 +:104976004C9F4005D84CC1D84BFDAC34C0EF1F8FBF +:1049860040057671744BDC054A4B02DE06716050B9 +:1049960005EF47C7D84BFDDB30C071505005D84DE9 +:1049A600F1242900DD27240400DD22242200DD1D58 +:1049B600241100DD0C240100DD13241E00DD0EEFA2 +:1049C6000A4A4B60DF07CD4B61EF02A44B4A220334 +:1049D600DF08D84BFD1534629D4CC09EFC609EFDE1 +:1049E60034D4FE5206C0B9A5A592DFF961FCC1C355 +:1049F600C5C7520C929269D4FEC1DFF88EFD708E47 +:104A0600FCC1717AFA51405F0401D1DD06F616A7A2 +:104A160047DFF2300400BF2401F6BF2A01300B0B3A +:104A2600BF2801FD6402300B0FBF2801FD64023070 +:104A36000F0FBF2801710AE6F6420C01DD33AF0401 +:104A460001BF0C0131529729715297710BE2D8516F +:104A5600FDE5033184BD02EFFACBB422FBD853F156 +:104A6600BEB8714BE1714BE5710ABD8D529E44EFA4 +:104A76000C715397714AE5717BBD713397C09EFCEB +:104A8600609EFD34D4FE5206C0B9A5A592DFF9C6D4 +:104A9600C4C2C061FCC1C5717AFAD450DD0BEA4EBE +:104AA600899E44A64EB450EF33710AE6300400BF27 +:104AB6002401F6BF2A01300B0BBF280100000000BD +:104AC60000000000510FBF28010000000000000098 +:104AD60000500FBF2801712397713397C4C061FC42 +:104AE60061EF520C929269D4FEC1DFF88EFD708E92 +:104AF600FCC12006FBF8FF71503002CEABACCC04F3 +:104B060000F6BB31B2E210617900F6614900DFF3CD +:104B160071603002EDA04B8E519C03713BE28C0319 +:104B26005C02D1DD1E8C035C08D1DF0971503002B6 +:104B3600CC0400EFCC8C0570FD8E35629E50CC0403 +:104B460002EFBE8C035C03D1DF408E509C02715095 +:104B560030028C04D1DF0E8C0270FDD435629C05C8 +:104B6600CC0401EF328C044C02DF0671603002EF98 +:104B760029CF34025A716030028C0270C18C0570E4 +:104B8600FD3635C0CF34024AEF108C035C01D1DD0F +:104B96000671603002EF03ED074B1006C09EFC6005 +:104BA6009EFD34D4FE5206C0B9A5A592DFF961FC7C +:104BB600C1C3C5C7520C929269D4FEC1DFF88EFDFF +:104BC600708EFCC1710A9E31929E02EFFA8FDEFB57 +:104BD6004F96FFDF198FDFFB4F97FFDF118FE0FB4B +:104BE6004F98FFDF095004C15011FDDA34C0710B34 +:104BF6009EC09EFC609EFD34D4FE5206C0B9A5A59B +:104C060092DFF9C6C4C2C061FCE46A61FCC1C3C5D7 +:104C1600C7520C929269D4FEC1DFF88EFD708EFCED +:104C2600C1C1FBF8FF8D1F9C018E31318EE7240632 +:104C360000DD0823DD0E23DD22EF38717AFA8C01C0 +:104C46009D62EF2F717AFA4007F901DF068C019D0C +:104C560061EF2051FF2E019D61EF18717AFA8C01E8 +:104C66009D304004F903DD064004F904DF05307980 +:104C76002561944031FF09DE05A031FFEF07715829 +:104C8600F000716298710BE3C0C09EFC609EFD341B +:104C9600D4FE5206C0B9A5A592DFF9C6C4C2C0614A +:104CA600FC717BFAC7D46A61F8312499277123997C +:104CB600D46ADD05B46ACEABAC717AFA5600664C9E +:104CC6000ADD1172F3311C79D8FCCEFC0061CA6191 +:104CD600A486EFEA717AFAF2C6D7C7C1C1FBF8FF1C +:104CE600CC01008C014C0ADE36717BFA8C01F03166 +:104CF6007E0410FC14A96168DF09AC02B9717AFA66 +:104D0600F2EF1D8C01F0317E127910FC614902DF51 +:104D160006717AFAE2EF09717AFA615901EFC4E293 +:104D26001004C6D7C72004FBF8FFF64210FC61F852 +:104D3600ED0C4E717BFA9C038C034C0ADE3C8C0313 +:104D4600F0317E0410FC14A96168DF05717AFAEF70 +:104D560029717AFA8C0372F3311C7910FCCEFC00AF +:104D660061CA629C02D1DF0A8C03F0317E12E678BA +:104D760010FC717BFA615903EFBECC0200CC010135 +:104D86008C02F0317E0410FC14A96168DD788C0277 +:104D9600F0317E127910FCE743DF658C014C0ADEA8 +:104DA6005F8C01F0317E127910FCE743DD4D717B9B +:104DB600FA8C01F0317E0410FC14A96168DF1861D9 +:104DC60069018C01F0317E12F67810FC8C024E01DE +:104DD600DCED717AFAEF2F8C01F0317E0410FC14B1 +:104DE600A9128C02F0317E337810FC8C01F0317EF2 +:104DF60012E67810FC615902717AFA615901EF9B4B +:104E0600615902ED864D00F21004C6D761FF520CBF +:104E1600929269D4FEC1DFF88EFD708EFCC1717A64 +:104E2600FA8FE4FB5C03D1DD114004F903DD064093 +:104E360004F904DF05309A386194C09EFC609EFD3B +:104E460034D4FE5206C0B9A5A592DFF961FC61FC17 +:044E560061FC61FC9E +:0A4E5A0000060C12181E242A303640 +:104E6400ACFB0000000066FE00000000EF392136B4 +:104E74008C220F46282EE72E4B45203BD108E93CD7 +:104E840028FC36FE20FE02F903F929FC30FE2AFC38 +:104E94002BFC08F926FC6CFF1AFF6EFF6AFF64FF07 +:0A4EA40027FC66FF2CFC5555555500 +:104EAE00FF0000000000983AF82AFF0000004700BB +:104EBE00317503F7332312D714AEF8C716AC0612AA +:104ECE00C5AC0416F643DD078B99A7A5B3EFF5C263 +:024EDE00C6D735 +:024FF400326326 +:0A4FF60030393A30393A3532000004 +:00000001FF + \ No newline at end of file diff --git a/snake_branches/2.35/bsr.lmf b/snake_branches/2.35/bsr.lmf new file mode 100644 index 0000000000000000000000000000000000000000..1d3a90136fe64ff5ddd24cdcb4a05737b22d0c5c GIT binary patch literal 183344 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 Dc}t^_ literal 0 HcmV?d00001 diff --git a/snake_branches/2.35/bsr_k0r.map b/snake_branches/2.35/bsr_k0r.map new file mode 100644 index 0000000..a1c3aaf --- /dev/null +++ b/snake_branches/2.35/bsr_k0r.map @@ -0,0 +1,896 @@ + + + +78K0R Linker W1.33 Date:18 Dec 2013 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) + 3E35H byte(s) real data + 6406 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 025BAH CSEG + ROM_CODE pm 0228CH 009E9H + ROM_CODE i2c_ctr 02C75H 0005CH + ROM_CODE main 02CD1H 00055H + ROM_CODE led 02D26H 00284H + ROM_CODE rtc 02FAAH 000E0H + ROM_CODE vreg_ctr 0308AH 0049EH + ROM_CODE vreg_twl 03528H 000F9H + ROM_CODE adc 03621H 00261H + ROM_CODE renge 03882H 00018H + ROM_CODE accero 0389AH 00155H + ROM_CODE sw 039EFH 00131H + ROM_CODE task_misc + 03B20H 001C9H + ROM_CODE task_sys 03CE9H 0038EH + ROM_CODE pedo_alg_thre_det2 + 04077H 004D4H + ROM_CODE led_cam 0454BH 000C4H + ROM_CODE led_pow 0460FH 0016FH + ROM_CODE voltable 0477EH 00000H + ROM_CODE pedo_lpf_coeff + 0477EH 00000H + ROM_CODE kanaria_c + 0477EH 00006H + ROM_CODE get_ei 04784H 0000DH + ROM_CODE i2c_mcu-sub + 04791H 000B5H + @@BASE 04846H 00614H CSEG BASE + @@BASE loader 04846H 00000H + @@BASE pm 04846H 0003EH + @@BASE i2c_ctr 04884H 00170H + @@BASE main 049F4H 00000H + @@BASE magic 049F4H 00000H + @@BASE WDT 049F4H 00000H + @@BASE i2c_mcu 049F4H 000F2H + @@BASE i2c_twl 04AE6H 000D0H + @@BASE led 04BB6H 00000H + @@BASE rtc 04BB6H 0005DH + @@BASE vreg_ctr 04C13H 00000H + @@BASE vreg_twl 04C13H 00000H + @@BASE adc 04C13H 00094H + @@BASE renge 04CA7H 0016BH + @@BASE accero 04E12H 00042H + @@BASE self_flash + 04E54H 00000H + @@BASE sw 04E54H 00000H + @@BASE task_debug + 04E54H 00000H + @@BASE task_misc + 04E54H 00000H + @@BASE task_sys 04E54H 00000H + @@BASE pedo_alg_thre_det2 + 04E54H 00000H + @@BASE ini_VECT 04E54H 00006H + @@BASE task_status + 04E5AH 00000H + @@BASE led_cam 04E5AH 00000H + @@BASE led_pow 04E5AH 00000H + @@BASE hal 04E5AH 00000H + @@BASE batt_params + 04E5AH 00000H + @@BASE voltable 04E5AH 00000H + @@BASE pedo_lpf_coeff + 04E5AH 00000H + @@BASE kanaria_c + 04E5AH 00000H + @@BASE util_funcs + 04E5AH 00000H + @@BASE i2c_mcu-sub + 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL @cstart 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL pm 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL i2c_ctr 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL main 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL led 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL rtc 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL vreg_ctr 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL vreg_twl 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL adc 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL renge 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL accero 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL sw 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL task_misc + 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL task_sys 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL pedo_alg_thre_det2 + 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL ini_VECT 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL led_cam 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL led_pow 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL batt_params + 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL voltable 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL pedo_lpf_coeff + 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL kanaria_c + 04E5AH 00000H + @@CNSTL 04E5AH 00000H CSEG PAGE64KP + @@CNSTL i2c_mcu-sub + 04E5AH 00000H + @@CNSTL 04E5AH 0000AH CSEG PAGE64KP + @@CNSTL @bcdtob 04E5AH 0000AH + @@R_INIT 04E64H 0004AH CSEG UNIT64KP + @@R_INIT @cstart 04E64H 00000H + @@R_INIT loader 04E64H 00000H + @@R_INIT pm 04E64H 00000H + @@R_INIT i2c_ctr 04E64H 00000H + @@R_INIT main 04E64H 00000H + @@R_INIT magic 04E64H 00000H + @@R_INIT WDT 04E64H 00000H + @@R_INIT i2c_mcu 04E64H 00000H + @@R_INIT i2c_twl 04E64H 00000H + @@R_INIT led 04E64H 00000H + @@R_INIT rtc 04E64H 00000H + @@R_INIT vreg_ctr 04E64H 00000H + @@R_INIT vreg_twl 04E64H 00000H + @@R_INIT adc 04E64H 0000CH + @@R_INIT renge 04E70H 00014H + @@R_INIT accero 04E84H 00000H + @@R_INIT self_flash + 04E84H 00000H + @@R_INIT sw 04E84H 00000H + @@R_INIT task_debug + 04E84H 00000H + @@R_INIT task_misc + 04E84H 00026H + @@R_INIT task_sys 04EAAH 00000H + @@R_INIT pedo_alg_thre_det2 + 04EAAH 00000H + @@R_INIT ini_VECT 04EAAH 00000H + @@R_INIT task_status + 04EAAH 00000H + @@R_INIT led_cam 04EAAH 00000H + @@R_INIT led_pow 04EAAH 00004H + @@R_INIT hal 04EAEH 00000H + @@R_INIT batt_params + 04EAEH 00000H + @@R_INIT voltable 04EAEH 00000H + @@R_INIT pedo_lpf_coeff + 04EAEH 00000H + @@R_INIT kanaria_c + 04EAEH 00000H + @@R_INIT util_funcs + 04EAEH 00000H + @@R_INIT i2c_mcu-sub + 04EAEH 00000H + @@R_INIT @rom 04EAEH 00000H + @@R_INIS 04EAEH 00010H CSEG UNIT64KP + @@R_INIS @cstart 04EAEH 00000H + @@R_INIS loader 04EAEH 00000H + @@R_INIS pm 04EAEH 00002H + @@R_INIS i2c_ctr 04EB0H 00002H + @@R_INIS main 04EB2H 00000H + @@R_INIS magic 04EB2H 00000H + @@R_INIS WDT 04EB2H 00000H + @@R_INIS i2c_mcu 04EB2H 00000H + @@R_INIS i2c_twl 04EB2H 00000H + @@R_INIS led 04EB2H 00000H + @@R_INIS rtc 04EB2H 00000H + @@R_INIS vreg_ctr 04EB2H 00000H + @@R_INIS vreg_twl 04EB2H 00000H + @@R_INIS adc 04EB2H 00000H + @@R_INIS renge 04EB2H 00000H + @@R_INIS accero 04EB2H 00000H + @@R_INIS self_flash + 04EB2H 00000H + @@R_INIS sw 04EB2H 00000H + @@R_INIS task_debug + 04EB2H 00000H + @@R_INIS task_misc + 04EB2H 00000H + @@R_INIS task_sys 04EB2H 00002H + @@R_INIS pedo_alg_thre_det2 + 04EB4H 00006H + @@R_INIS ini_VECT 04EBAH 00000H + @@R_INIS task_status + 04EBAH 00000H + @@R_INIS led_cam 04EBAH 00002H + @@R_INIS led_pow 04EBCH 00002H + @@R_INIS hal 04EBEH 00000H + @@R_INIS batt_params + 04EBEH 00000H + @@R_INIS voltable 04EBEH 00000H + @@R_INIS pedo_lpf_coeff + 04EBEH 00000H + @@R_INIS kanaria_c + 04EBEH 00000H + @@R_INIS util_funcs + 04EBEH 00000H + @@R_INIS i2c_mcu-sub + 04EBEH 00000H + @@R_INIS @rom 04EBEH 00000H + @@RLINIT 04EBEH 00000H CSEG UNIT64KP + @@RLINIT loader 04EBEH 00000H + @@RLINIT pm 04EBEH 00000H + @@RLINIT i2c_ctr 04EBEH 00000H + @@RLINIT main 04EBEH 00000H + @@RLINIT magic 04EBEH 00000H + @@RLINIT WDT 04EBEH 00000H + @@RLINIT i2c_mcu 04EBEH 00000H + @@RLINIT i2c_twl 04EBEH 00000H + @@RLINIT led 04EBEH 00000H + @@RLINIT rtc 04EBEH 00000H + @@RLINIT vreg_ctr 04EBEH 00000H + @@RLINIT vreg_twl 04EBEH 00000H + @@RLINIT adc 04EBEH 00000H + @@RLINIT renge 04EBEH 00000H + @@RLINIT accero 04EBEH 00000H + @@RLINIT self_flash + 04EBEH 00000H + @@RLINIT sw 04EBEH 00000H + @@RLINIT task_debug + 04EBEH 00000H + @@RLINIT task_misc + 04EBEH 00000H + @@RLINIT task_sys 04EBEH 00000H + @@RLINIT pedo_alg_thre_det2 + 04EBEH 00000H + @@RLINIT ini_VECT 04EBEH 00000H + @@RLINIT task_status + 04EBEH 00000H + @@RLINIT led_cam 04EBEH 00000H + @@RLINIT led_pow 04EBEH 00000H + @@RLINIT hal 04EBEH 00000H + @@RLINIT batt_params + 04EBEH 00000H + @@RLINIT voltable 04EBEH 00000H + @@RLINIT pedo_lpf_coeff + 04EBEH 00000H + @@RLINIT kanaria_c + 04EBEH 00000H + @@RLINIT util_funcs + 04EBEH 00000H + @@RLINIT i2c_mcu-sub + 04EBEH 00000H + @@RLINIT @rom 04EBEH 00000H + @@CODEL 04EBEH 00000H CSEG + @@CODEL pm 04EBEH 00000H + @@CODEL i2c_ctr 04EBEH 00000H + @@CODEL main 04EBEH 00000H + @@CODEL magic 04EBEH 00000H + @@CODEL led 04EBEH 00000H + @@CODEL rtc 04EBEH 00000H + @@CODEL vreg_ctr 04EBEH 00000H + @@CODEL vreg_twl 04EBEH 00000H + @@CODEL adc 04EBEH 00000H + @@CODEL renge 04EBEH 00000H + @@CODEL accero 04EBEH 00000H + @@CODEL sw 04EBEH 00000H + @@CODEL task_misc + 04EBEH 00000H + @@CODEL task_sys 04EBEH 00000H + @@CODEL pedo_alg_thre_det2 + 04EBEH 00000H + @@CODEL ini_VECT 04EBEH 00000H + @@CODEL led_cam 04EBEH 00000H + @@CODEL led_pow 04EBEH 00000H + @@CODEL batt_params + 04EBEH 00000H + @@CODEL voltable 04EBEH 00000H + @@CODEL pedo_lpf_coeff + 04EBEH 00000H + @@CODEL kanaria_c + 04EBEH 00000H + @@CODEL i2c_mcu-sub + 04EBEH 00000H + @@LCODEL 04EBEH 00022H CSEG + @@LCODEL abs 04EBEH 00008H + @@LCODEL memcpy_n 04EC6H 0001AH +* gap * 04EE0H 00114H + 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_branches/2.35/bsr_mcu.dr b/snake_branches/2.35/bsr_mcu.dr new file mode 100644 index 0000000..81aeecc --- /dev/null +++ b/snake_branches/2.35/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_branches/2.35/bsr_system.h b/snake_branches/2.35/bsr_system.h new file mode 100644 index 0000000..3bf1acd --- /dev/null +++ b/snake_branches/2.35/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_branches/2.35/config.h b/snake_branches/2.35/config.h new file mode 100644 index 0000000..ef24663 --- /dev/null +++ b/snake_branches/2.35/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 0x33 + + +// 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_branches/2.35/fsl.h b/snake_branches/2.35/fsl.h new file mode 100644 index 0000000..0e806b5 --- /dev/null +++ b/snake_branches/2.35/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_branches/2.35/fsl_user.h b/snake_branches/2.35/fsl_user.h new file mode 100644 index 0000000..1018689 --- /dev/null +++ b/snake_branches/2.35/fsl_user.h @@ -0,0 +1,113 @@ +/*==============================================================================================*/ +/* Project = Selfprogramming library for 78K0R/Ix3/Kx3-L Single Voltage SST (MF2) Flash */ +/* Module = fsl_user.h */ +/* Version = V1.01 */ +/* Date = 28.03.2008 11:45:55 */ +/*==============================================================================================*/ +/* COPYRIGHT */ +/*==============================================================================================*/ +/* Copyright (c) 2007 by NEC Electronics (Europe) GmbH, */ +/* a company of the NEC Electronics Corporation */ +/*==============================================================================================*/ +/* Purpose: */ +/* user configurable constant/macros of the selfprogramming library */ +/* */ +/*==============================================================================================*/ +/* */ +/* Warranty Disclaimer */ +/* */ +/* Because the Product(s) is licensed free of charge, there is no warranty of any kind */ +/* whatsoever and expressly disclaimed and excluded by NEC, either expressed or implied, */ +/* including but not limited to those for non-infringement of intellectual property, */ +/* merchantability and/or fitness for the particular purpose. NEC shall not have any obligation */ +/* to maintain, service or provide bug fixes for the supplied Product(s) and/or the Application.*/ +/* */ +/* Each User is solely responsible for determining the appropriateness of using the Product(s) */ +/* and assumes all risks associated with its exercise of rights under this Agreement, */ +/* including, but not limited to the risks and costs of program errors, compliance with */ +/* applicable laws, damage to or loss of data, programs or equipment, and unavailability or */ +/* interruption of operations. */ +/* */ +/* Limitation of Liability */ +/* */ +/* In no event shall NEC be liable to the User for any incidental, consequential, indirect, */ +/* or punitive damage (including but not limited to lost profits) regardless of whether */ +/* such liability is based on breach of contract, tort, strict liability, breach of warranties, */ +/* failure of essential purpose or otherwise and even if advised of the possibility of */ +/* such damages. NEC shall not be liable for any services or products provided by third party */ +/* vendors, developers or consultants identified or referred to the User by NEC in connection */ +/* with the Product(s) and/or the Application. */ +/* */ +/*==============================================================================================*/ +/* Environment: PM plus (V6.30) */ +/* RA78K0(V1.20) */ +/* CC78K0(V2.00) */ +/*==============================================================================================*/ + + +#ifndef __FSL_USER_H_INCLUDED +#define __FSL_USER_H_INCLUDED + + +/*==============================================================================================*/ +/* constant definitions */ +/*==============================================================================================*/ + + +/* specify the CPU frequency in [Hz], only 2MHz....20MHz allowed */ +#define FSL_SYSTEM_FREQUENCY 8000000 + +/* define whether low-voltage mode is used or not */ +/* #define FSL_LOW_VOLTAGE_MODE */ + +/* size of the common data buffer expressed in [bytes] */ +/* the data buffer is used for data-exchange between the firmware and the selflib. */ +//#define FSL_DATA_BUFFER_SIZE 256 +#define FSL_DATA_BUFFER_SIZE 0 + + +/* customizable interrupt controller configuration during selfprogramming period */ +/* Bit --7-------6-------5-------4-------3-------2-------1-------0---------------------- */ +/* MK0L: PMK5 PMK4 PMK3 PMK2 PMK1 PMK0 LVIMK WDTIMK */ +/* MK0H: SREMK0 SRMK0* STMK0* DMAMK1 DMAMK0 SREMK3 SRMK3 STMK3 */ +/* MK1L: TMMK03 TMMK02 TMMK01 TMMK00 IICMK0 SREMK1 SRMK1 STMK1* */ +/* MK1H: TMMK04 SREMK2 SRMK2 STMK2* KRMK RTCIMK RTCMK ADMK */ +/* MK2L: PMK10 PMK9 PMK8 PMK7 PMK6 TMMK07 TMMK06 TMMK05 */ +/* MK2H: 1 1 1 1 1 1 1 PMK11 */ +/*------------------------------------------------------------------------------------------ */ +/* */ +/* Examples: */ +/* ========= */ +/*#define FSL_MK0L_MASK 0xF7 -> allow INTP1 interrupt during selfprogramming */ +/*#define FSL_MK0H_MASK 0xEF -> allow DMA1 interrupt during selfprogramming */ +/*#define FSL_MK1L_MASK 0xBF -> allow TM02 interrupt during selfprogramming */ +/*#define FSL_MK1H_MASK 0xFF -> all interrupts disabled during selfprogramming */ +/*#define FSL_MK2L_MASK 0xF7 -> allow INTP6 interrupt during selfprogramming */ +/*#define FSL_MK2H_MASK 0xFF -> all interrupts disabled during selfprogramming */ +/*------------------------------------------------------------------------------------------ */ +#define FSL_MK0L_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK0H_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK1L_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK1H_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK2L_MASK 0xFF /* all interrupts disabled during selfprogramming */ +#define FSL_MK2H_MASK 0xFF /* all interrupts disabled during selfprogramming */ + + +/* FLMD0 control bit */ +#ifndef _WIN32 +#define FSL_FLMD0_HIGH {BECTL.7 = 1;} +#define FSL_FLMD0_LOW {BECTL.7 = 0;} +#else +#define FSL_FLMD0_HIGH {BECTL_7 = 1;} +#define FSL_FLMD0_LOW {BECTL_7 = 0;} +#endif + + +/*----------------------------------------------------------------------------------------------*/ +/* switch interrupt backu functionality ON/OFF using #define/#undef */ +/*----------------------------------------------------------------------------------------------*/ +/* #define FSL_INT_BACKUP */ +#undef FSL_INT_BACKUP + + +#endif diff --git a/snake_branches/2.35/get_ei.asm b/snake_branches/2.35/get_ei.asm new file mode 100644 index 0000000..29f4a6e --- /dev/null +++ b/snake_branches/2.35/get_ei.asm @@ -0,0 +1,26 @@ +$PROCESSOR ( 9F0104 ) + +PUBLIC _get_ei +; +; PSWEIǂݏo܂B +; + + + +ROM_CODE CSEG BASE + +_get_ei: + set1 CY + and1 CY,PSW.7 ; check IE bit. if 0, all interrupts are disabled. + bnc $ie_dis + mov C,#01h + ret + +ie_dis: + mov C,#00h + ret + + + end + + diff --git a/snake_branches/2.35/hal.c b/snake_branches/2.35/hal.c new file mode 100644 index 0000000..e2e72ec --- /dev/null +++ b/snake_branches/2.35/hal.c @@ -0,0 +1,182 @@ +/* ======================================================== + ȈՃeXĝ߂HALC + + $Id: asdf$ + ======================================================== */ +#ifndef _WIN32 +#pragma SFR +#endif + +#include "incs_loader.h" + + +#define WIFI_txLatch PIF21 // dgMpX { led.h Œ` + + +// HALłԂ //////////////////////////////////////// +// ȎȂ琳_ɂr...≽łȂ +bit PM_EXTDC_n; +bit BT_IN_CHG_n; +bit SW_POW_n; +bit SW_HOME_n; +bit SW_WIFI_n; +bit SHELL_OPEN; + +/* +#define REG_BIT_HAL0_PM_EXTDC_n ( 1 << 7 ) +#define REG_BIT_HAL0_BT_IN_CHG_n ( 1 << 6 ) +//#define REG_BIT_HAL0_PM_IRQ_n ( 1 << 5 ) // gȂ +#define REG_BIT_HAL0_WL_TX ( 1 << 4 ) +#define REG_BIT_HAL0_SHELL_OPEN ( 1 << 3 ) +#define REG_BIT_HAL0_SW_WIFI_n ( 1 << 2 ) +#define REG_BIT_HAL0_SW_HOME_n ( 1 << 1 ) +#define REG_BIT_HAL0_SW_POW_n ( 1 << 0 ) + +#define REG_BIT_HAL1_DIPSW_1 ( 1 << 3 ) +#define REG_BIT_HAL1_DIPSW_0 ( 1 << 2 ) +#define REG_BIT_HAL1_HW_DET_1 ( 1 << 1 ) +#define REG_BIT_HAL1_HW_DET_0 ( 1 << 0 ) +*/ + + +// ڂւ +// `^OȂ炱ł(ԃJEg͕) +void hal_update() +{ +#ifdef _ENABLE_HAL_ + u8 temp_conf = vreg_ctr[ VREG_C_HAL_OVW_CONT0 ]; + u8 temp_dat = vreg_ctr[ VREG_C_HAL_OVW_DAT0 ]; +#else + u8 temp_conf = 0x00; + u8 temp_dat = 0; // łǂ +#endif + + // A_v^L + if( temp_conf & REG_BIT_HAL0_PM_EXTDC_n ) + { + // O͂Ȃ񂾂傫Ȃ肪 + if(( temp_dat & REG_BIT_HAL0_PM_EXTDC_n ) == 0 ) + { + PM_EXTDC_n = 0; + } + else + { + PM_EXTDC_n = 1; + } + } + else + { + PM_EXTDC_n = PM_EXTDC_n_RAW; + } + + // [dH + if( temp_conf & REG_BIT_HAL0_BT_IN_CHG_n ) + { + if(( temp_dat & REG_BIT_HAL0_BT_IN_CHG_n ) == 0 ) + { + BT_IN_CHG_n = 0; + } + else + { + BT_IN_CHG_n = 1; + } + } + else + { + BT_IN_CHG_n = BT_IN_CHG_n_RAW; + } + + // dt + if( temp_conf & REG_BIT_HAL0_SW_POW_n ) + { + if(( temp_dat & REG_BIT_HAL0_SW_POW_n ) == 0 ) + { + SW_POW_n = 0 ; + } + else + { + SW_POW_n = 1; + } + } + else + { + SW_POW_n = SW_POW_n_RAW; + } + + // Ɩt + if( temp_conf & REG_BIT_HAL0_SW_HOME_n ) + { + if(( temp_dat & REG_BIT_HAL0_SW_HOME_n ) == 0 ) + { + SW_HOME_n = 0; + } + else + { + SW_HOME_n = 1; + } + } + else + { + if( system_status.model == MODEL_TS_BOARD )// ڑ̃|[gႤ + { + SW_HOME_n = SW_HOME_n_TSBOARD_RAW; + } + else + { + SW_HOME_n = SW_HOME_n_JIKKI_RAW; + } + } + + // J + if( temp_conf & REG_BIT_HAL0_SW_WIFI_n ) + { + if(( temp_dat & REG_BIT_HAL0_SW_WIFI_n ) == 0 ) + { + SW_WIFI_n = 0; + } + else + { + SW_WIFI_n = 1; + } + } + else + { + SW_WIFI_n = SW_WIFI_n_RAW; + } + + // + if( temp_conf & REG_BIT_HAL0_SHELL_OPEN ) + { + if(( temp_dat & REG_BIT_HAL0_SHELL_OPEN ) == 0 ) + { + SHELL_OPEN = 0; + } + else + { + SHELL_OPEN = 1; + } + } + else + { + SHELL_OPEN = SHELL_OPEN_RAW; + } + + // dg + if( temp_conf & REG_BIT_HAL0_WL_TX ) + { + WIFI_txLatch = 1; + } + +} + + + +void hal_reset() +{ + vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = 0; + vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0; + vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] = 0xFF; + vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] = 0xFF; + vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] = 0xFF; +} + diff --git a/snake_branches/2.35/hal.h b/snake_branches/2.35/hal.h new file mode 100644 index 0000000..245be75 --- /dev/null +++ b/snake_branches/2.35/hal.h @@ -0,0 +1,16 @@ +#ifndef _hal_h_ +#define _hal_h_ + + +extern bit PM_EXTDC_n; +extern bit BT_IN_CHG_n; +extern bit SW_POW_n; +extern bit SW_HOME_n; +extern bit SW_WIFI_n; +extern bit SHELL_OPEN; + +// ======================================================== +void hal_update(); +void hal_reset(); + +#endif diff --git a/snake_branches/2.35/hoge.bin b/snake_branches/2.35/hoge.bin new file mode 100644 index 0000000000000000000000000000000000000000..729f1802d32dddf09f229fe16bf5d2743796b84b GIT binary patch literal 16387 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