diff --git a/tags/2.19_SDK4(3rdNUP)/OMakefile b/tags/2.19_SDK4(3rdNUP)/OMakefile
new file mode 100644
index 0000000..42baad6
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/OMakefile
@@ -0,0 +1,159 @@
+############################################################
+# 環境設定
+############################################################
+
+# マイコン開発環境のインストール先を環境変数で指定する
+NECEL_ROOT =
+ if $(defined-env NECEL_ROOT)
+ value $(absname $"$(getenv NECEL_ROOT)")
+ else
+ value "C:\Program Files (x86)\NEC Electronics Tools"
+
+# cygwinのインストール先を環境変数で指定する
+CYGWIN_ROOT =
+ if $(defined-env CYGWIN_ROOT)
+ value $(absname $"$(getenv CYGWIN_ROOT)")
+ else
+ value "C:\cygwin"
+
+# GCCバージョンを環境変数で指定する
+CYGWIN_GCC =
+ if $(defined-env CYGWIN_GCC)
+ value $(CYGWIN_ROOT)/bin/$"$(getenv CYGWIN_GCC)"
+ else
+ value $(CYGWIN_ROOT)/bin/gcc-4
+
+#デバイスファイルは NECEL_ROOT/dev に置くこと
+#自己アップデート用ライブラリは CC_LIBS_ROOT/以下に置くこと
+
+SUBDIR_INTER_ASM = $(dir inter_asm)
+
+CC_ROOT = $(NECEL_ROOT)/CC78K0R
+CC_VER = W2.13
+CC = $(CC_ROOT)/$(CC_VER)/bin/cc78k0r.exe
+RA = $(NECEL_ROOT)/RA78K0R/W1.33/bin/ra78k0r.exe
+LK = $(NECEL_ROOT)/RA78K0R/W1.33/bin/lk78k0r.exe
+OC = $(NECEL_ROOT)/RA78K0R/W1.33/bin/oc78k0r.exe
+LCNV = $(NECEL_ROOT)/RA78K0R/W1.33/bin/lc78k0r.exe
+DEVFILE_ROOT = $(NECEL_ROOT)/dev
+
+CC_LIBS_ROOT = $(CC_ROOT)/$(CC_VER)/lib78k0r
+CC_INCLUDES_ROOT = $(CC_ROOT)/$(CC_VER)/inc78k0r
+S0RM = s0rm.rel
+
+# セキュリティID
+GIVALUE = 1B339499E033F240BFAAh
+
+# ユーザオプションバイト
+GBValue = 7EFBFFh
+
+DEVICE_NAME = 9F0104
+
+FSL_LIB = fsl.lib
+
+TARGET_NAME = bsr
+TARGET_LMF = $(TARGET_NAME).lmf
+TARGET_HEX = $(TARGET_NAME).hex
+
+# ここまで
+############################################################
+
+############################################################
+# ソースを追加したら編集する箇所
+############################################################
+
+SRC_FILES[] =
+ loader
+ pm
+ i2c_ctr
+ main
+ magic
+ WDT
+ i2c_mcu
+ i2c_twl
+ led
+ rtc
+ vreg_ctr
+ vreg_twl
+ adc
+ renge\renge
+ accero
+ self_flash
+ sw
+ task_debug
+ task_misc
+ task_sys
+ pedo_alg_thre_det2
+ ini_VECT
+ task_status
+ led_cam
+ led_pow
+ hal
+ batt_params
+ voltable
+ pedo_lpf_coeff
+
+INCLUDES[] =
+ ./
+ renge
+
+# ここまで
+############################################################
+
+.PHONY: clean BeforeBuild
+
+AddRel(files) =
+ file_names = $(addsuffix .rel, $(files))
+ return $(file_names)
+
+# *.cからinter_asm/*.asmを作るための関数
+AsmProgram(files) =
+ foreach(filename, $(files))
+ asm_name = $(addprefix $(SUBDIR_INTER_ASM)/, $(addsuffix .asm, $(basename $(filename))))
+ c_name = $(addsuffix .c, $(filename))
+
+ .SCANNER: $(asm_name): $(c_name)
+ $(CYGWIN_GCC) -MM -w -I$(CC_INCLUDES_ROOT) $(c_name) | sed 's/$(filename)\.o/$(SUBDIR_INTER_ASM)\/$(filename)\.asm/g'
+
+ $(asm_name): $(c_name)
+ $(CC) -c$(DEVICE_NAME) -y$(DEVFILE_ROOT) -_msgoff -irenge -i$(CC_INCLUDES_ROOT) -ms -qvjl2w -sa$(SUBDIR_INTER_ASM) -zpb -no $(c_name)
+
+ return $(addsuffix .c, $(files))
+
+# inter_asm/*.asm から *.relを作るための関数
+RelProgram(files) =
+ foreach(filename, $(files))
+ rel_name = $(addsuffix .rel, $(basename $(filename)))
+ asm_name = $(addprefix $(SUBDIR_INTER_ASM)/, $(addsuffix .asm, $(basename $(filename))))
+ asm_win_name = $(addprefix $(SUBDIR_INTER_ASM)\\, $(addsuffix .asm, $(basename $(filename))))
+ c_name = $(addsuffix .c, $(filename))
+
+ .SCANNER: $(rel_name): $(asm_win_name)
+ $(CYGWIN_GCC) -MM -w -I$(CC_INCLUDES_ROOT) $(c_name) | sed 's/\.o/\.rel/g'
+
+ $(rel_name): $(asm_name)
+ $(RA) -c$(DEVICE_NAME) -y$(DEVFILE_ROOT) -_msgoff $(asm_win_name)
+
+ return $(addsuffix .rel, $(basename $(files)))
+
+$(TARGET_LMF): $(RelProgram $(SRC_FILES)) $(AsmProgram $(SRC_FILES))
+ $(LK) -y$(DEVFILE_ROOT) -_msgoff -o$(TARGET_LMF) $(CC_LIBS_ROOT)/$(S0RM) -gi$(GIVALUE) -pbsr_k0r.map -nkd -gb$(GBValue) -b$(CC_LIBS_ROOT)/$(FSL_LIB) -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i$(CC_LIBS_ROOT) -dbsr_mcu.dr -s -w0 $(AddRel $(basename $(SRC_FILES)))
+
+$(TARGET_HEX) : $(TARGET_LMF)
+ $(OC) -y$(DEVFILE_ROOT) -_msgoff -o.\\$(TARGET_HEX) -nu -ki $(TARGET_LMF)
+
+BeforeBuild:
+# ビルド前に必ず実行したい処理
+# OMakeがタイムスタンプではなくMD5でファイルの状態を管理しているので
+# 残念ながら cleanしてからビルドしなおす必要がある
+ C:\Windows\system32\cmd.exe /c $(CYGWIN_ROOT)\bin\touch magic.c
+ if $(not $(file-exists $(SUBDIR_INTER_ASM)))
+ mkdir $(SUBDIR_INTER_ASM)
+
+hoge.bin: BeforeBuild $(TARGET_HEX)
+ C:\Windows\system32\cmd.exe /c ruby nec_s_2_bsrbin2.rb $(TARGET_HEX)
+
+clean:
+ rm -rf *.prn *.rel $(SUBDIR_INTER_ASM)/*.asm *.omc .omakedb .omakedb.lock
+
+.DEFAULT: hoge.bin
diff --git a/tags/2.19_SDK4(3rdNUP)/OMakeroot b/tags/2.19_SDK4(3rdNUP)/OMakeroot
new file mode 100644
index 0000000..16f4b11
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/OMakeroot
@@ -0,0 +1,4 @@
+#
+# Include the OMakefile in this directory.
+#
+.SUBDIRS: .
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/Debug/BuildLog.htm b/tags/2.19_SDK4(3rdNUP)/VCProj/Debug/BuildLog.htm
new file mode 100644
index 0000000..826ce7c
Binary files /dev/null and b/tags/2.19_SDK4(3rdNUP)/VCProj/Debug/BuildLog.htm differ
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/Debug/bsr_trunk.lastbuildstate b/tags/2.19_SDK4(3rdNUP)/VCProj/Debug/bsr_trunk.lastbuildstate
new file mode 100644
index 0000000..ed27c09
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/VCProj/Debug/bsr_trunk.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100
+Debug|Win32|C:\78k_data\yav-mcu-basara\trunk\VCProj\|
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/Debug/bsr_trunk.log b/tags/2.19_SDK4(3rdNUP)/VCProj/Debug/bsr_trunk.log
new file mode 100644
index 0000000..e8f4cb4
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/VCProj/Debug/bsr_trunk.log
@@ -0,0 +1,76 @@
+2011/08/02 17:36:43 にビルドを開始しました。
+ 1>ノード 2 上のプロジェクト "C:\78k_data\yav-mcu-basara\branches\sim\VCProj\bsr_trunk.vcxproj" (build ターゲット)。
+ 1>InitializeBuildStatus:
+ "AlwaysCreate" が指定されたため "Debug\sim.unsuccessfulbuild" を作成しています。
+ ClCompile:
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /Z7 /nologo /W1 /WX- /Od /Oy- /D _MBCS /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TC /analyze- /errorReport:prompt ..\WDT.c ..\accero.c ..\adc.c ..\hal.c ..\i2c_ctr.c ..\i2c_mcu.c ..\i2c_twl.c ..\ini_VECT.c ..\led.c ..\led_cam.c ..\led_pow.c ..\loader.c ..\magic.c ..\main.c ..\pedo_alg_thre_det2.c ..\pm.c ..\renge\renge.c ..\rtc.c ..\self_flash.c ..\sw.c ..\task_debug.c ..\task_misc.c ..\task_status.c ..\task_sys.c ..\vreg_ctr.c ..\vreg_twl.c
+ WDT.c
+ accero.c
+ adc.c
+ hal.c
+ i2c_ctr.c
+ i2c_mcu.c
+ i2c_twl.c
+ ini_VECT.c
+ led.c
+ led_cam.c
+ led_pow.c
+ loader.c
+ magic.c
+ main.c
+ pedo_alg_thre_det2.c
+ pm.c
+ 1>..\pm.c(1274): warning C4090: '=' : 異なる 'const' 修飾子です。
+ renge.c
+ rtc.c
+ self_flash.c
+ sw.c
+ コードを生成中...
+ コンパイル中...
+ task_debug.c
+ task_misc.c
+ task_status.c
+ task_sys.c
+ vreg_ctr.c
+ vreg_twl.c
+ コードを生成中...
+ Link:
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\78k_data\yav-mcu-basara\branches\sim\VCProj\Debug\sim.exe" /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Debug\sim.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\78k_data\yav-mcu-basara\branches\sim\VCProj\Debug\sim.pdb" /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\78k_data\yav-mcu-basara\branches\sim\VCProj\Debug\sim.lib" /MACHINE:X86 Debug\accero.obj
+ Debug\adc.obj
+ Debug\hal.obj
+ Debug\i2c_ctr.obj
+ Debug\i2c_mcu.obj
+ Debug\i2c_twl.obj
+ Debug\ini_VECT.obj
+ Debug\led.obj
+ Debug\led_cam.obj
+ Debug\led_pow.obj
+ Debug\loader.obj
+ Debug\magic.obj
+ Debug\main.obj
+ Debug\pedo_alg_thre_det2.obj
+ Debug\pm.obj
+ Debug\rtc.obj
+ Debug\self_flash.obj
+ Debug\simFixture.obj
+ Debug\sw.obj
+ Debug\task_debug.obj
+ Debug\task_misc.obj
+ Debug\task_status.obj
+ Debug\task_sys.obj
+ Debug\vreg_ctr.obj
+ Debug\vreg_twl.obj
+ Debug\WDT.obj
+ Debug\renge.obj
+ LINK : 前回のインクリメンタル リンクで C:\78k_data\yav-mcu-basara\branches\sim\VCProj\Debug\sim.exe が見つからなかったか、ビルドされませんでした。フル リンクを行います。
+ bsr_trunk.vcxproj -> C:\78k_data\yav-mcu-basara\branches\sim\VCProj\Debug\sim.exe
+ Manifest:
+ C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"C:\78k_data\yav-mcu-basara\branches\sim\VCProj\Debug\sim.exe;#1" /manifest Debug\sim.exe.intermediate.manifest
+ FinalizeBuildStatus:
+ ファイル "Debug\sim.unsuccessfulbuild" を削除しています。
+ "Debug\sim.lastbuildstate" のタッチ タスクを実行しています。
+ 1>プロジェクト "C:\78k_data\yav-mcu-basara\branches\sim\VCProj\bsr_trunk.vcxproj" (build ターゲット) のビルドが完了しました。
+
+ビルドに成功しました。
+
+経過時間 00:00:04.00
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/Debug/bsr_trunk.unsuccessfulbuild b/tags/2.19_SDK4(3rdNUP)/VCProj/Debug/bsr_trunk.unsuccessfulbuild
new file mode 100644
index 0000000..e69de29
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/_UpgradeReport_Files/UpgradeReport.css b/tags/2.19_SDK4(3rdNUP)/VCProj/_UpgradeReport_Files/UpgradeReport.css
new file mode 100644
index 0000000..3411f63
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/VCProj/_UpgradeReport_Files/UpgradeReport.css
@@ -0,0 +1,207 @@
+BODY
+{
+ BACKGROUND-COLOR: white;
+ FONT-FAMILY: "Verdana", sans-serif;
+ FONT-SIZE: 100%;
+ MARGIN-LEFT: 0px;
+ MARGIN-TOP: 0px
+}
+P
+{
+ FONT-FAMILY: "Verdana", sans-serif;
+ FONT-SIZE: 70%;
+ LINE-HEIGHT: 12pt;
+ MARGIN-BOTTOM: 0px;
+ MARGIN-LEFT: 10px;
+ MARGIN-TOP: 10px
+}
+.note
+{
+ BACKGROUND-COLOR: #ffffff;
+ COLOR: #336699;
+ FONT-FAMILY: "Verdana", sans-serif;
+ FONT-SIZE: 100%;
+ MARGIN-BOTTOM: 0px;
+ MARGIN-LEFT: 0px;
+ MARGIN-TOP: 0px;
+ PADDING-RIGHT: 10px
+}
+.infotable
+{
+ BACKGROUND-COLOR: #f0f0e0;
+ BORDER-BOTTOM: #ffffff 0px solid;
+ BORDER-COLLAPSE: collapse;
+ BORDER-LEFT: #ffffff 0px solid;
+ BORDER-RIGHT: #ffffff 0px solid;
+ BORDER-TOP: #ffffff 0px solid;
+ FONT-SIZE: 70%;
+ MARGIN-LEFT: 10px
+}
+.issuetable
+{
+ BACKGROUND-COLOR: #ffffe8;
+ BORDER-COLLAPSE: collapse;
+ COLOR: #000000;
+ FONT-SIZE: 100%;
+ MARGIN-BOTTOM: 10px;
+ MARGIN-LEFT: 13px;
+ MARGIN-TOP: 0px
+}
+.issuetitle
+{
+ BACKGROUND-COLOR: #ffffff;
+ BORDER-BOTTOM: #dcdcdc 1px solid;
+ BORDER-TOP: #dcdcdc 1px;
+ COLOR: #003366;
+ FONT-WEIGHT: normal
+}
+.header
+{
+ BACKGROUND-COLOR: #cecf9c;
+ BORDER-BOTTOM: #ffffff 1px solid;
+ BORDER-LEFT: #ffffff 1px solid;
+ BORDER-RIGHT: #ffffff 1px solid;
+ BORDER-TOP: #ffffff 1px solid;
+ COLOR: #000000;
+ FONT-WEIGHT: bold
+}
+.issuehdr
+{
+ BACKGROUND-COLOR: #E0EBF5;
+ BORDER-BOTTOM: #dcdcdc 1px solid;
+ BORDER-TOP: #dcdcdc 1px solid;
+ COLOR: #000000;
+ FONT-WEIGHT: normal
+}
+.issuenone
+{
+ BACKGROUND-COLOR: #ffffff;
+ BORDER-BOTTOM: 0px;
+ BORDER-LEFT: 0px;
+ BORDER-RIGHT: 0px;
+ BORDER-TOP: 0px;
+ COLOR: #000000;
+ FONT-WEIGHT: normal
+}
+.content
+{
+ BACKGROUND-COLOR: #e7e7ce;
+ BORDER-BOTTOM: #ffffff 1px solid;
+ BORDER-LEFT: #ffffff 1px solid;
+ BORDER-RIGHT: #ffffff 1px solid;
+ BORDER-TOP: #ffffff 1px solid;
+ PADDING-LEFT: 3px
+}
+.issuecontent
+{
+ BACKGROUND-COLOR: #ffffff;
+ BORDER-BOTTOM: #dcdcdc 1px solid;
+ BORDER-TOP: #dcdcdc 1px solid;
+ PADDING-LEFT: 3px
+}
+A:link
+{
+ COLOR: #cc6633;
+ TEXT-DECORATION: underline
+}
+A:visited
+{
+ COLOR: #cc6633;
+}
+A:active
+{
+ COLOR: #cc6633;
+}
+A:hover
+{
+ COLOR: #cc3300;
+ TEXT-DECORATION: underline
+}
+H1
+{
+ BACKGROUND-COLOR: #003366;
+ BORDER-BOTTOM: #336699 6px solid;
+ COLOR: #ffffff;
+ FONT-SIZE: 130%;
+ FONT-WEIGHT: normal;
+ MARGIN: 0em 0em 0em -20px;
+ PADDING-BOTTOM: 8px;
+ PADDING-LEFT: 30px;
+ PADDING-TOP: 16px
+}
+H2
+{
+ COLOR: #000000;
+ FONT-SIZE: 80%;
+ FONT-WEIGHT: bold;
+ MARGIN-BOTTOM: 3px;
+ MARGIN-LEFT: 10px;
+ MARGIN-TOP: 20px;
+ PADDING-LEFT: 0px
+}
+H3
+{
+ COLOR: #000000;
+ FONT-SIZE: 80%;
+ FONT-WEIGHT: bold;
+ MARGIN-BOTTOM: -5px;
+ MARGIN-LEFT: 10px;
+ MARGIN-TOP: 20px
+}
+H4
+{
+ COLOR: #000000;
+ FONT-SIZE: 70%;
+ FONT-WEIGHT: bold;
+ MARGIN-BOTTOM: 0px;
+ MARGIN-TOP: 15px;
+ PADDING-BOTTOM: 0px
+}
+UL
+{
+ COLOR: #000000;
+ FONT-SIZE: 70%;
+ LIST-STYLE: square;
+ MARGIN-BOTTOM: 0pt;
+ MARGIN-TOP: 0pt
+}
+OL
+{
+ COLOR: #000000;
+ FONT-SIZE: 70%;
+ LIST-STYLE: square;
+ MARGIN-BOTTOM: 0pt;
+ MARGIN-TOP: 0pt
+}
+LI
+{
+ LIST-STYLE: square;
+ MARGIN-LEFT: 0px
+}
+.expandable
+{
+ CURSOR: hand
+}
+.expanded
+{
+ color: black
+}
+.collapsed
+{
+ DISPLAY: none
+}
+.foot
+{
+BACKGROUND-COLOR: #ffffff;
+BORDER-BOTTOM: #cecf9c 1px solid;
+BORDER-TOP: #cecf9c 2px solid
+}
+.settings
+{
+MARGIN-LEFT: 25PX;
+}
+.help
+{
+TEXT-ALIGN: right;
+margin-right: 10px;
+}
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/_UpgradeReport_Files/UpgradeReport.xslt b/tags/2.19_SDK4(3rdNUP)/VCProj/_UpgradeReport_Files/UpgradeReport.xslt
new file mode 100644
index 0000000..8277446
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/VCProj/_UpgradeReport_Files/UpgradeReport.xslt
@@ -0,0 +1,232 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | : |
+
+
+
+
+
+
+
+
+ 変換レポート
+
+
+
+
+
+
+
+ 変換レポート -
+
+
+ 変換時間:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif b/tags/2.19_SDK4(3rdNUP)/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif
new file mode 100644
index 0000000..17751cb
Binary files /dev/null and b/tags/2.19_SDK4(3rdNUP)/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif differ
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/_UpgradeReport_Files/UpgradeReport_Plus.gif b/tags/2.19_SDK4(3rdNUP)/VCProj/_UpgradeReport_Files/UpgradeReport_Plus.gif
new file mode 100644
index 0000000..f6009ca
Binary files /dev/null and b/tags/2.19_SDK4(3rdNUP)/VCProj/_UpgradeReport_Files/UpgradeReport_Plus.gif differ
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.ncb b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.ncb
new file mode 100644
index 0000000..c3df735
Binary files /dev/null and b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.ncb differ
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.opensdf b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.opensdf
new file mode 100644
index 0000000..cdfe0d5
Binary files /dev/null and b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.opensdf differ
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.sdf b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.sdf
new file mode 100644
index 0000000..b0defd5
Binary files /dev/null and b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.sdf differ
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.sln b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.sln
new file mode 100644
index 0000000..520f84d
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bsr_trunk", "bsr_trunk.vcxproj", "{9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.Build.0 = Debug|Win32
+ {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.ActiveCfg = Release|Win32
+ {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.sln.old b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.sln.old
new file mode 100644
index 0000000..2881d87
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.sln.old
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bsr_trunk", "bsr_trunk.vcproj", "{9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Debug|Win32.Build.0 = Debug|Win32
+ {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.ActiveCfg = Release|Win32
+ {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.suo b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.suo
new file mode 100644
index 0000000..c6f6301
Binary files /dev/null and b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.suo differ
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.suo.old b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.suo.old
new file mode 100644
index 0000000..63c7d49
Binary files /dev/null and b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.suo.old differ
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcproj b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcproj
new file mode 100644
index 0000000..1a6531b
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcproj
@@ -0,0 +1,594 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcproj.NCL.N2232.user b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcproj.NCL.N2232.user
new file mode 100644
index 0000000..257e4e7
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcproj.NCL.N2232.user
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcxproj b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcxproj
new file mode 100644
index 0000000..506aae7
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcxproj
@@ -0,0 +1,151 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {9DF31AC3-BD19-4158-BD6F-9CFE64AEE5D2}
+ bsr_trunk
+ sim
+
+
+
+ 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
+
+
+
+
+ Disabled
+ OldStyle
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcxproj.filters b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcxproj.filters
new file mode 100644
index 0000000..af77d25
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcxproj.filters
@@ -0,0 +1,210 @@
+
+
+
+
+ {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}
+
+
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル\renge
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+ ソース ファイル
+
+
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ソース ファイル\renge
+
+
+ ソース ファイル\renge
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+ ヘッダー ファイル
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcxproj.user b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcxproj.user
new file mode 100644
index 0000000..695b5c7
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/VCProj/bsr_trunk.vcxproj.user
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/tags/2.19_SDK4(3rdNUP)/WDT.c b/tags/2.19_SDK4(3rdNUP)/WDT.c
new file mode 100644
index 0000000..ed3daf3
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/WDT.c
@@ -0,0 +1,12 @@
+/* ========================================================
+ wdt
+
+ $Id$
+ ======================================================== */
+#include "incs_loader.h"
+
+/*
+
+ gAwb_Ƀ}N̂݁B
+
+*/
diff --git a/tags/2.19_SDK4(3rdNUP)/WDT.h b/tags/2.19_SDK4(3rdNUP)/WDT.h
new file mode 100644
index 0000000..2e28e9d
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/WDT.h
@@ -0,0 +1,20 @@
+#ifndef _WDT_
+#define _WDT_
+
+
+
+//=========================================================
+#define WDT_RESTART_MAGIC 0xAC
+
+
+
+//=========================================================
+// EHb`hbO^C}̃X^[g
+// void WDT_Restart( void );
+#define WDT_Restart() WDTE = WDT_RESTART_MAGIC
+
+// KlȊOƗOŃZbg
+#define mcu_wdt_reset WDTE = 0x0
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/accero.c b/tags/2.19_SDK4(3rdNUP)/accero.c
new file mode 100644
index 0000000..f5d4eaa
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/accero.c
@@ -0,0 +1,278 @@
+/* ========================================================
+@xZTW
+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[obNo^ĂƂȂ̂ł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( ERR_CONTINUE );
+ }
+ else
+ {
+ // xZTُɂȂ̂Ŏ~߂
+ vreg_ctr[ VREG_C_ACC_CONFIG ] &= ~( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ );
+ tski_acc_setup();
+ vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_ACCERO_ERR;
+ return ( ERR_FINISED ); // ^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( (( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_ACQ ) != 0 ) &&
+ ( 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 ))
+ &&( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_HOSU ))
+ {
+ pedometer(); // v
+ }
+ }
+ return ( ERR_FINISED );
+}
+
+
+
+
+
+/********************************************//**
+@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 ( ERR_FINISED );
+}
+
+
+
+/********************************************//**
+@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 ( ERR_FINISED );
+}
+
+
+
+/********************************************//**
+@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_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_ACCERO_ERR;
+ return ( ERR_FINISED );
+ // ܂
+ }
+ // else
+
+ // ZTݒ萬 pX
+ vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_ACCERO_ERR;
+ acc_retry_count = 0;
+
+ // ÕS~LJǂ
+ 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 ( ERR_CONTINUE ); // ƊԂčēxɂ // Ƃ悢H
+ }
+ }
+
+ // DIԂ̂܂܋A
+ return ( ERR_FINISED );
+}
+
+
+
+/********************************************//**
+ xZT荞
+
+ I2CgpȂ̂ŁAǂݏo^XN̓o^ŝ
+ ***********************************************/
+__interrupt void intp23_ACC_ready( )
+{
+ EI();
+ if( ( vreg_ctr[VREG_C_ACC_CONFIG] & 0x03 ) != 0x00 )
+ {
+ // xZT on
+ if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) )
+ {
+// if( ACC_VALID ) // mFsv
+ {
+ renge_task_immed_add( tski_cbk_accero );
+ }
+ }
+ }
+}
diff --git a/tags/2.19_SDK4(3rdNUP)/accero.h b/tags/2.19_SDK4(3rdNUP)/accero.h
new file mode 100644
index 0000000..fbf80d6
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/accero.h
@@ -0,0 +1,14 @@
+#ifndef _accero_
+#define _accero_
+
+
+#include "jhl_defs.h"
+#include "pedometer.h"
+
+
+///////////////////////////////////////////////////////////
+task_status_immed tski_cbk_accero( );
+task_status_immed tski_acc_setup( );
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/adc.c b/tags/2.19_SDK4(3rdNUP)/adc.c
new file mode 100644
index 0000000..419be87
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/adc.c
@@ -0,0 +1,470 @@
+/* ========================================================
+ 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( ERR_FINISED );
+ }
+
+ // ǂ̉ʂɂ́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( ERR_FINISED );
+}
+
+
+/********************************************//**
+ 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 ):
+ EI();
+ adc_raw_dep = adc_data;
+ break;
+
+ case ( ADC_SEL_VOL ):
+ 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 ):
+ 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 ):
+ break;
+*/
+ }
+
+// Ƃ܂Ƃȏ肻
+ if( ADS < ADC_SEL_BATT_DET )
+ {
+ ADS += 1; // ̃`l
+ }
+ else
+ {
+ ADCEN = 0; // ~߂Ă܂
+ adc_updated = true;
+ }
+ ADIF = 0; // ȂƁAÕ`l̃f[^̊ŒɊ荞މ\
+}
+
+
+
+/********************************************//**
+ adcWX^ǂݏoÂ܂ܕԒlɂB
+
+ tsk_adcƋ邱ƂlĂ܂B
+ ***********************************************/
+u8 get_adc( u8 ch )
+{
+ u8 temp;
+
+ ADMK = 1;
+ ADIF = 0;
+
+ ADCEN = 1;
+ ADM = bits8(0,0,0,0, 1,0,1,1); // ZNg[hAAfCLK/6 ///火
+
+ ADPC = 0x06; // ADC|[g̃ZNg
+ ADS = ch;
+
+ nop8();
+
+ ADCS = 1; // ADJnB /// ܂Ł@ɁA1usȏJ
+
+ ADIF = 0;
+ while( ADIF == 0 ){;}
+ temp = ADCRH;
+ ADCEN = 0;
+
+ ADMK = 0;
+ return ( temp );
+}
+
+
+
+
+
+/********************************************//**
+ VR͈̉͂lăXP[O
+
+ Volp@gȂ炻̂Ƃǂɂ
+ ***********************************************/
+static u8 adc_scaling( u8 orig_val )
+{
+ u16 temp;
+
+ if( orig_val <= vreg_ctr[ VREG_C_VOL_CAL_MIN ] )
+ {
+ return( 0 );
+ }
+ if( orig_val >= vreg_ctr[ VREG_C_VOL_CAL_MAX ] )
+ {
+ return( 255 );
+ }
+
+ temp = (u16)(( orig_val - vreg_ctr[ VREG_C_VOL_CAL_MIN ] ) * 256 ) / ( vreg_ctr[ VREG_C_VOL_CAL_MAX ] - vreg_ctr[ VREG_C_VOL_CAL_MIN ] );
+ if( temp > 255 )
+ {
+ temp = 255;
+ }
+
+ return( (u8)( temp & 0xFF ) );
+}
+
+
+
+
+/********************************************//**
+ qXeVX V2
+
+ ľܓIȓ܂
+ ***********************************************/
+#define KIKAN 16
+static void adc_filter( u8 new_val, filter_work *work )
+{
+ if( abs( new_val - *( work -> value_used )) > 2 )
+ {
+ // 傫ꂽ
+ work -> large_diff_count ++;
+ if( work -> large_diff_count > 16 )
+ {
+ *( work -> value_used ) = new_val;
+ work -> diffs = 0;
+ work -> kikan = KIKAN;
+ }
+ }
+ else
+ {
+ work -> large_diff_count = 0;
+ // ߏ̒lłAԂłςĂ炻Ɋ
+ if( *( work -> value_used ) < new_val )
+ {
+ work -> diffs ++;
+ }
+ else if( *( work -> value_used ) > new_val )
+ {
+ work -> diffs --;
+ }
+
+ if( --( work -> kikan ) == 0 )
+ {
+ if( ( work -> diffs ) == KIKAN )
+// if( ( work -> diffs ) > (s8)( KIKAN * 0.8 ) )
+ {
+ *( work -> value_used ) = *( work -> value_used ) + 1;
+ }
+ else if( ( work -> diffs ) == ( -1 * KIKAN ) )
+// else if( ( work -> diffs ) < (s8)( -1 * KIKAN * 0.8 ) )
+ {
+ *( work -> value_used ) = *( work -> value_used ) - 1;
+ }
+ work -> diffs = 0;
+ work -> kikan = KIKAN;
+ }
+ }
+}
+
diff --git a/tags/2.19_SDK4(3rdNUP)/adc.h b/tags/2.19_SDK4(3rdNUP)/adc.h
new file mode 100644
index 0000000..6f4ad04
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/adc.h
@@ -0,0 +1,48 @@
+#ifndef __adc__
+#define __adc__
+
+#include "jhl_defs.h"
+
+///////////////////////////////////////
+// ANI2 P22
+#define ADC_SEL_AMB_BRIT 0x02
+
+/*
+// ANI3 P23
+#define ADC_SEL_GYRO_YAW 0x03
+// ANI4 P24
+#define ADC_SEL_GYRO_PITCH 0x04
+// ANI5 P25
+#define ADC_SEL_GYRO_ROLL 0x05
+*/
+
+// ANI6 P26
+#define ADC_SEL_3D 0x06
+// ANI7 P27
+#define ADC_SEL_VOL 0x07
+
+// ANI8 P150
+#define ADC_SEL_BATT_TEMP 0x08
+// ANI9 P151
+#define ADC_SEL_BATT_DET 0x09
+
+
+
+///////////////////////////////////////
+#define CODEC_REG_VOL 0x13
+
+
+
+///////////////////////////////////////
+extern u8 vol_polling;
+extern u8 vol_level_twl;
+
+
+
+///////////////////////////////////////
+u8 get_adc( u8 ch );
+void vol_reset();
+
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/batt_params.c b/tags/2.19_SDK4(3rdNUP)/batt_params.c
new file mode 100644
index 0000000..75f47ab
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/batt_params.c
@@ -0,0 +1,87 @@
+/* ========================================================
+ eЃobe[p[^
+ $Id$
+ ======================================================== */
+#include "jhl_defs.h"
+
+#include "batt_params.h"
+
+
+
+const bt_param_ bt_param[ _BT_PARAM_NUM_ ] =
+{
+ // 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,
+ { 92, (u8)(-256* 0.79), (u8)(-256* 4.35) },
+ 0xD800,
+ { 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) },
+ 0xDA20,
+ { 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, (u8)(-256* 0.35), (u8)(-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, (u8)(-256* 0.30), (u8)(-256* 2.25) },
+ 0xDAA0,
+ { 0xE5, 0xE7 },
+ }
+};
+
diff --git a/tags/2.19_SDK4(3rdNUP)/batt_params.h b/tags/2.19_SDK4(3rdNUP)/batt_params.h
new file mode 100644
index 0000000..343b3f4
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/batt_params.h
@@ -0,0 +1,49 @@
+#ifndef _bt_params_h_
+#define _bt_params_h_
+
+#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_SHRIMP_MAXELL,
+ BT_PARAM_SHRIMP_PANA,
+ _BT_PARAM_NUM_
+} BT_TYPE;
+
+typedef struct
+{
+ u8 rcomp;
+ s16 up,down;
+} rcomp_;
+
+typedef struct
+{
+ u8 hi,low;
+} verify_;
+
+typedef struct
+{
+ u8 mg_param[64];
+ u8 v_scale;
+ rcomp_ rcomp;
+ u16 ocv;
+ verify_ verify;
+} bt_param_;
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/bsr.hex b/tags/2.19_SDK4(3rdNUP)/bsr.hex
new file mode 100644
index 0000000..e914f57
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/bsr.hex
@@ -0,0 +1,1001 @@
+:02000000DF0C13
+:040010000448064852
+:02001C00B249E7
+:02002400594A37
+:02002A00A44AE6
+:08003400D14B744BCD4B124E71
+:02004A00084864
+:02005A0042481A
+:02006200D04D7F
+:06008000654C9E4CE84CAB
+:0400C0007EFBFF04C0
+:0A00C4001B339499E033F240BFAA09
+:1000CE00C7C1FBF8FFCEABACC736F00071F4C6610A
+:1000DE00D8710006F98EA89C018C015C10D1DD0A46
+:1000EE007110A6FB710006F9EF0B8C015C80D161DB
+:1000FE00E8710006F98F06F931030EF6B1BBF66111
+:10010E004900DD05618900EFF5FDDF01FD3101FDDF
+:10011E008901FD8609FDBD08FD8E2FFD882CEFA5FA
+:10012E00C0C6D7C7360000674C09DE3F318E04F6D5
+:10013E000FC1317B9EFDC411897267318E04F64F5B
+:10014E0014896142DF03F6EF01E660610667318EC6
+:10015E00124900207267318E04F64F14896142DF16
+:10016E0003F6EF01E660610687EFBC40F84F3A6197
+:10017E00E88666D161E8FD2A06C6D751065B0C31CA
+:10018E001A9F08F94008F901DF05CD3705EF03CDB9
+:10019E0037078F06F95CE39F06F951035B04318E36
+:1001AE00E7240000DD1023DD0823DF0E712006F9A1
+:1001BE00D7713006F9D7714006F9D7717BFACEA008
+:1001CE0010CEA180E5F300000000CEA408F5AAFF32
+:1001DE00D78F06F9310508CD0003CD030FEF08CDFB
+:1001EE00030EF690BFB401CD0408CD0508F521FF2E
+:1001FE00CE22E9CE23F8CE24F3CE25FACE26FCCE9F
+:10020E00275FCE2EFCCF1105F8CF120511CF35008A
+:10021E0002CF370019CF530006CBEEFEFFCE38319A
+:10022E00CE3970CF38050A308700BF1801BF1A01CA
+:10023E00BF1C01BF1E01D7D7C7F616FD6A04717B1E
+:10024E00FA31329308713293717AFAEF0C717AFAAD
+:10025E00A7F647DFE95203EF01F2C6D7C7C1C1FBCC
+:10026E00F8FF17A1C1E0C18C0A70C18C0270FD8B22
+:10027E00021006629D508C01721004C6D7C7C1FBD6
+:10028E00F8FFFD4602D2DD045203EF618B70FDB71D
+:10029E0003D2DD077133935202EF528C0870FDD3F7
+:1002AE0003FD1E048B6C0170FDD303300400BF24CC
+:1002BE0001301740BF1C01300400BF22018C0A918F
+:1002CE00DF04F6BF2A01710BE2CE44FF3182E20257
+:1002DE00EFFAAC0C148E449961790C61690A8C0AA0
+:1002EE00D1DFDAFD4704710BE2713393F2C0C6D74A
+:1002FE00C7C1FBF8FFFD4602D2DD045203EF2571A4
+:10030E000AE68B70FDB703D2DD077133935202EF0D
+:10031E00138C0870FDD3038C0A70FDD303FD4704C4
+:10032E00713393F2C0C6D7C7C1FBF8FFFD4602D2A8
+:10033E00DD045203EF70710AE6710BE28B70FDB7AC
+:10034E0003D2DD077133935202EF5B710BE2312260
+:10035E009344C73422FBAC0C1652048B99A5A7927A
+:10036E00DFF9C68B9D4D8C089D4E8C0A9D4F3184B6
+:10037E00BD02EFFA717ABDCEB144CBB422FB8C0A2A
+:10038E00318EBEB8CEBB48714BE1714BE5710ABDE3
+:10039E008C089E44EF0F710BE68C089E448C0A9DD0
+:1003AE004CAC0CBD4AF2C0C6D7C716FDF603AF045F
+:1003BE0001BF0C0117FDD303D2DD07FD4704520226
+:1003CE00EF01F2C6D7C716710AE6710BE2669E44BC
+:1003DE003182E202EFFAF6420401DD09AF0401BFF9
+:1003EE000C01E2EF01F2C6D7AF2801085CFB08BF93
+:1003FE002801FD4502AF28015CFBBF280130040037
+:10040E00BF2A01301780BF1C01300400BF2201D764
+:10041E00AF2401086C0408BF2401AF28016C0F083B
+:10042E006C0B08BF2801FD4502AF2A01085CFB08D2
+:10043E00BF2A01FD4502EDF603300400BF2401F68C
+:10044E00BF2A01300B0BBF2801FD4502300B0FBF39
+:10045E002801FD4502300F0FBF2801D7314493010B
+:10046E00D77132936A0E03713B25713B23E0FD99E0
+:10047E00097120F000FD4502F6BF26015024BF147D
+:10048E0001CB440014300F0FBF2801712393710B61
+:10049E00E2710AE6FDF603CE44FF3182E202EFFA84
+:1004AE00FD4704AF0401BF0C01713393714293D722
+:1004BE0031349302EFFAFD1E04713A25713A235A34
+:1004CE000EFC7128F000714393D7C72008FBF8FF8C
+:1004DE00FD25085014C15008FD5707C0CC07048CE9
+:1004EE00074C14DE0C8C07318EFDC109615907EFE4
+:1004FE00EECC07048C074C1461C8EDC605CC060083
+:10050E008C064C0461C8EDA505300AF9BC02F6BB99
+:10051E00CEABAC31B2D109C73641057184C6DEF31C
+:10052E00F1C73641057184C661DC9C05713BD1ACC7
+:10053E0002148F400599715050056179026179005E
+:10054E00F0E1614900DD09C73641057184C6DEC39D
+:10055E00F1C73641057184C661DC0E059C0550401D
+:10056E00C18C07318E31AD128C06318E318D03BDAB
+:10057E00D831FFBDDADADAADD8FD8D0CC0D2DD0C84
+:10058E005008C15014FD5707C0FD4A0B8C05D1DF32
+:10059E0006615906ED0E058C07318EFDC509D2DDBB
+:1005AE000C5008C15014FD5707C0FD4A0B8C05D1E5
+:1005BE00DF06615907ED020571605005CC0400CCD1
+:1005CE0005008C054C09DE2B8C05318E04F61FC1FF
+:1005DE00317B9EFDC41189728C05318E04F64F1449
+:1005EE00896142DF03F6EF01E6600E049C04615957
+:1005FE0005EFCF41001140F81F3A61E86159048CB4
+:10060E0004D1DF08FD4B0BFD5D0CEF0C5008C15003
+:10061E0014FD5707C0FD4A0B1008C6D7C72004FBB0
+:10062E00F8FF712B24CC0100F6BC02AC0244090089
+:10063E00DE3EAC0204F60F144100118972AC020CBE
+:10064E005014896142DF03F6EF01E6600E019C0152
+:10065E00AC021249005072AC0204F67F148961425A
+:10066E00DF03F6EF01E6600E019C01617902EFBB3C
+:10067E0040F67FFF61F86159018C01D161F8ED23DD
+:10068E0007CC0100717AFAFD6A04711300711B2008
+:10069E00710303710205E0C15003FD492BC05013D5
+:1006AE00FD9909500FC1E0FD492BC0CEABAC61598D
+:1006BE00018C0191DD068C014C03DF03E6EF01F6A0
+:1006CE006061FB7121048C014C0861F8CC01003192
+:1006DE00320705A024FCEF03F524FC4024FC11DCBA
+:1006EE0022F524FCF0C15003FD492BC0CE3708CBB8
+:1006FE00E4FFFFCBE6FFF7CED4FFCF370008F512AD
+:10070E000561FDE6BC02F6614902DD9F00000000B6
+:10071E00617902EFF1FD2508D2DFFA5008C15014BD
+:10072E00FD5707C0D2FD4A0B1004C6D73184BD0257
+:10073E00EFFA717BBDCBE4FFFFCBE6FFFFCBD4FF1F
+:10074E00FF717ABED7717BBED7C7C1200CFBF8FFF5
+:10075E008C0C318E31ADC1317B9DD4C0BC068DD495
+:10076E009C088C149C0B8C14318E040C00128C0B78
+:10077E00318EBDD813FD1C0F61C8ED2008CEABAC79
+:10078E00CC05068C0B318EFDBD09D2DD158C0B31DF
+:10079E008EFDC1096169058C05D1DFE7FD5307E2C6
+:1007AE00EF71CC0A008C0A4C04DE54F6BC02300AFF
+:1007BE00F9BBAC06148C089EFD118972AB146299BC
+:1007CE00AC06A1BC06617900617902F0E1614902D3
+:1007DE00DFE05040C18C0B318E31AD128C0A318E60
+:1007EE00318D03BDD831FFBDDADADAADD8FD8D0C0F
+:1007FE00C0D2DD06FD5307E2EF1961590AEFA68C50
+:10080E000B318EFDC509D2DD03E2EF0761590BED09
+:10081E007407F2100EC6D7C7717B9D717BFAFD3A35
+:10082E0007300AF9FD700AFDFB09C6D7FD2508FD44
+:10083E004A0BFD5307F5ABFFF2D7C731049706718C
+:10084E0010B3FBEF047118B3FB8FB3FB7B8A76D129
+:10085E00DD5B8FB3FB9D8A4004F903DF22665C10DB
+:10086E00D1DD1C8FB3FB5C10D1DD0B5080C150115C
+:10087E00FD9D34C0EF095040C15011FD9D34C04064
+:10088E0004F903DD064004F904DF22665C02D1DDC3
+:10089E001C8FB3FB5C02D1DD0B5040C15010FD9D8F
+:1008AE0034C0EF095020C15010FD9D34C0C6D7C7CB
+:1008BE00360000665C80D1DD10675C80D1DF05718B
+:1008CE003396EF0B713296EF06710407713196660F
+:1008DE005C40D1DD10675C40D1DF05714396EF0BB4
+:1008EE00714296EF06711405714196665C01D1DD79
+:1008FE0010675C01D1DF05715396EF0B715296EFC5
+:10090E0006713407715196665C02D1DD10675C0288
+:10091E00D1DF05716396EF1D716296EF184007F9EE
+:10092E0001DF08710402716196EF0AC73610057176
+:10093E00C4C6716196665C04D1DD10675C04D1DFBC
+:10094E0005717396EF0B717296EF06714407717114
+:10095E0096665C08D1DD10675C08D1DF05710397E0
+:10096E00EF0B710297EF06711407710197665C1019
+:10097E00D161E8715AD1C6D7F5F6FBF5F8FBCFFE7B
+:10098E00FBFFCFFAFBFFCFFBFBFFD7C7C1C1FBF8C5
+:10099E00FFCEABAC8C02D1DD12616902305C03BBC1
+:0F09AE00F6614900DDEE618900EFF51004C6D750
+:1009BD005208EF065203EF025206FEE600FE1B0040
+:1009CD00DC16089F03088F0408089F040862FE24A4
+:1009DD0000089F0408EEBF00EEBA00C1C514410E19
+:1009ED0011D9D0FF118FD1FF312E45C4C0D7F231AF
+:1009FD00A2C401E2D79DE261DD4C09DF12717BFAE1
+:100A0D00C18F06089F25FDC0CF060800EE270031D7
+:100A1D00F2FA04CF0608004C00DF05D50008DD16FC
+:100A2D0061DD717BFAD50608DD0ACDE31F61CD616D
+:100A3D00CDEE160061CDFED40061FFFE9A00FCF8EC
+:100A4D00FF0EFEB20061CDFED5004C09DF0EC18F49
+:100A5D0006086F25FD9F0608C0EE0400CF060800AE
+:100A6D00F8E3D75200EF025202FE3700CF24FD000B
+:100A7D00CF060800BF0408C716629F000841001189
+:100A8D008F1A209B4100118F1B209F0108C651001A
+:100A9D00FE62FFEF025205CF060800C1510CFE0A9F
+:100AAD0000C0D7C1511DFE0200C0D761DD717BFAB8
+:100ABD0070CEC0A59EC47CFF9EC4609EC461CDD780
+:100ACD0061DD717BFAC18EC45C1BFED6FFCF0608BB
+:100ADD0001FED7FFC061CDD731F2FA1AC1AEE4BF26
+:100AED0016FDAEE6BF18FDAED4BF1AFD30FFFFBE3A
+:100AFD00E4BEE6BED4C0D731F2FA11C1AF16FDBEC9
+:100B0D00E4AF18FDBEE6AF1AFDBED4C0D7C1BF1C01
+:100B1D00FD13BF1EFD15BF20FD17BF22FDC0D7AFB2
+:100B2D001CFDDB1EFDEB20FDFB22FDD7534B305290
+:100B3D005430324E323030475631323000FFC150D2
+:100B4D00FEFEAB0061DD717BFACF060800FE0A00E8
+:100B5D00FEA4FF61CDF8E3EECF00C7FB0408BF167E
+:100B6D00FD8FC0009C05C5C337040600BF18FD35B9
+:100B7D0036AF0B300000522BFE6600C2C4C6305D8E
+:100B8D000BB800300000B8022004AF18FDB80030DB
+:100B9D000F00B802AF16FD61FF520AFE3AFFECF8E6
+:100BAD00FF0E717BFAC1C7FB04088C05C65C80FE85
+:100BBD000200C0D761DD717BFA70CFC0FFA59FC069
+:100BCD00007CFF9FC000609FC00061CDD7618BFE90
+:100BDD00E2FF717BBE410011FB000017CEFC0061EE
+:100BED00CB089EFDF31161C999A58392DFF7D7FE5E
+:100BFD00B1FED524FDDF23C1CF0308035109FEF457
+:100C0D00FDC0D2DF37FE3800A20408CF030807511C
+:100C1D0009FEE1FDD2B20408DF22C7FB04083183CF
+:100C2D0002C6D7C6510AFECCFD624C1FDF06CF248B
+:100C3D00FD01EF04CF24FD00C0EE5BFEC0EE55FEBE
+:100C4D00C7C1FB04088B31196C0161589BC0C6D715
+:100C5D00717BFAFE4DFEAF0408040600C11436C1C7
+:100C6D000B300000522DF3FE77FF8FC000FE2BFEE0
+:100C7D0061CF5C807C8073C0041900CEFC0F61CB0A
+:100C8D00C55404EF03C55417FE18FEC7360008BB44
+:100C9D00629C0288089C03D1DD334C41DE2F70F13C
+:100CAD00312DB161090033081C000851FF612A4143
+:100CBD000E118FD0FF613B118FD1FF6138DC0E8B90
+:100CCD005C03DF0964C6C4FE2BFDEECAFDC6C4EE8F
+:020CDD00C3FD55
+:100CDF0061CF5100718C7109FECBF800FEFCC90188
+:100CEF0000F6BF00F953C0F693935820FEDFF94189
+:100CFF000036224E34CCFCEF05118B99A7A5174473
+:100D0F006C4EDFF53602F930CCFCEF04CC0000A7B7
+:100D1F0047DFF94100366C4E3420FEEF05118B99F9
+:100D2F00A7A517447C4EDFF53630FE3092FEEF0458
+:100D3F00CC0000A747DFF9FCCE0000EFFE61DD71AC
+:100D4F007BFABEF0ADD8BEF200AEF661CDD7C3616F
+:100D5F00DD717BFABEF0ADD8BEF200DBF6FFADDC85
+:100D6F00BEF000AEF6BDD8AEF40312ADDABEF2009F
+:100D7F00AEF661CD03BDDAC2D7C3F33174D90883A0
+:100D8F00C1F626D8BDD8C031750683C312F623C26B
+:100D9F00FDAA0D93DF0312F623C2D7440000DD2610
+:100DAF0061DD717BFACFE80080BEF6F6BEF4BEF2CD
+:100DBF00ADD8BEF0CFE800818FE8003103FAAEF076
+:100DCF00F5E80061CDD7B1D7C3F33174D90883C12A
+:100DDF00F626D8BDD8C0317505C312F623C2FDF86B
+:100DEF000D93DF0312F623C2D7440000DD2761DD28
+:100DFF00717BFACFE80080BEF6F6BEF4BEF2ADD836
+:100E0F00BEF0CFE800818FE8003103FAAFE000F5C4
+:100E1F00E80061CDD7ADD8D7C3F33174DB0F83C1F1
+:100E2F00F626D8BDD861317026DABDDAC031750D1E
+:100E3F0083C312F626DCBDDC61317023C2FD600E68
+:100E4F0093DF0CF626D8BDD861317026DABDDAC231
+:100E5F00D7C161686BDC6BDDC0DD2F61DD717BFAA3
+:100E6F00CFE80080BEF4ADDCBEF6ADD8BEF0ADDA93
+:100E7F00BEF2CFE800818FE8003103FAAEF0BDD8A3
+:100E8F00AEF2BDDAF5E80061CDD7F6BDD8BDDAD741
+:100E9F008292DD2B61DD717BFACFE80080BEF0F628
+:100EAF00BEF2BEF46208BEF6CFE800818FE80031D3
+:100EBF0003FAAFE0006072AEF0F5E80061CDD760E5
+:100ECF0072F6B1D706DABDDAADDC06D8BDD861D877
+:100EDF00A6DAD7D1DD17C1C3DAD89DD8ADDA311C68
+:100EEF0061EEB4D8DFF8BDDA13BDD8C2C0D7D1DDFB
+:100EFF001BC1C3DADA9DDAADD8311E33311E33711F
+:100F0F00F9B4DADFF4BDD813BDDAC2C0D746D8DDE5
+:100F1F000771FF7177D971C0D75BDB9DDB605BDA3F
+:100F2F009DDAADDC5BD9085BD808BDD8D7C3C7F352
+:100F3F00728EFDC162314C410036184E1161A072A4
+:070F4F00C09EFD62C6C2D77F
+:0A0FF60031303A30353A303800004F
+:0A20000031303A30353A3038000034
+:10200A0005214F7B9EC5E9000104080D12171C1F0C
+:10201A00080100001F003B005A0078009700B50035
+:10202A00D400F300110130014E01192634445362E1
+:10203A006E777D80807D776E625344342619100A4C
+:10204A0008080808080808080A10AEF0B430B740B3
+:10205A00BA30BB50BBB0BC50BD10BD60BDB0BFE014
+:10206A00C2B0C420C7B0CAE0CE1001F014101420C8
+:10207A000630639049006E0077707B0019001900E2
+:10208A0017F01C6012001200120002005C003600F9
+:10209A00A70000D8EAE88C309C10A5E0B040B1C097
+:1020AA00B200B250B310B490B620B860BA50BFA014
+:1020BA00C6B0CE90D02000200020002000207B3027
+:1020CA00686020001700173012F00DE007F00700D3
+:1020DA00093001C001C00100AB000000670020DA2E
+:1020EA006967A120B750B9D0BB00BC30BC60BCA0A6
+:1020FA00BD10BDC0BE70BFD0C2A0C400C850CC8045
+:10210A00D0B001A0251018B017C095206FE07C60F0
+:10211A003510350037F016F01CA0173011D011F029
+:10212A0011F002005E00A7002700B0DAF5F39CF078
+:10213A00AD50AFB0B300B3E0B560B670B7A0BA00A7
+:10214A00BC00BE90C160C400C700CCA0D0A00200F1
+:10215A00191012004810251041F02FA013F01CD0BE
+:10216A0010D00FA0110010E00C100C000C0002009F
+:10217A007100B400C000A0DAE5E70000000000002A
+:10218A000000000000000000000000000000000045
+:10219A000000000000000000000000000000000035
+:1021AA000000000000000000000000000000000025
+:1021BA000000000000000000000000000000000015
+:1021CA000000000000000000000000000000000005
+:1021DA0000000000000000000000000000000000F5
+:1021EA0000000000000000000000000000000000E5
+:1021FA0000000000000000000000000000000000D5
+:10220A0000000000000000000000000000000000C4
+:10221A0000007F7E7D7C7A7978777675747271702A
+:10222A006F6E6D6C6A6968676665646261605F5E3D
+:10223A005D5C5A5958575655535251504F4E4D4B53
+:10224A004A494948474645434241403F3E3D3B3A59
+:10225A00393801020203030200FEFBF7F3F0F0F340
+:10226A00FA041225384D5F6E777A776E5F4D3825FE
+:10227A001204FAF3F0F0F3F7FBFE00020303020282
+:02228A00010051
+:10228C008D3AB43AD1DF26CD3A1EFD3E23FDE12234
+:10229C003132920D3104920931329605713304EFCB
+:1022AC0003713204FD1223FDBA22FD1526D771539A
+:1022BC0092D432DD05B432715292312292037152B2
+:1022CC0092715492714102314402057140B3FBD7B3
+:1022DC007148B3FBD74A304BDC114A30B9DE0C4A9B
+:1022EC003B28DE03A43BD7713392D74A303EDC0542
+:1022FC004A30BDDC0C4A3C28DE03A43CD771329238
+:10230C00D7F43BF43CD73142960C4A3D02DE03A491
+:10231C003DD7712392D73132041240AFFB3CDE0C17
+:10232C008FB2FB5C01D1DF04712392D7712292F43E
+:10233C003DD7C7C1FBF8FF313296067130B3FBEFC6
+:10234C00047138B3FB714492713796DE4F71349639
+:10235C007141923132960E5002C15011FD9D34C024
+:10236C00CD3229EF37E0C15011FD9D34C0F4321746
+:10237C00C15002FD312BC0D2DF0D8B318E318D0857
+:10238C000E01081C00BD34AD3444009BDC05D5AFF8
+:10239C00FBDF095020C15011FD9D34C0C0C6D78D44
+:1023AC00209D3EFDED23FD652BD507F9DD04710362
+:1023BC0092D78D3E4B2061F83164921C716392FD73
+:1023CC006A044A3E07DD054A3EFFDF098F06F931F4
+:1023DC000303FD7C24FD90247102923073256194DB
+:1023EC00D7C77162017172015003FD99095008FD44
+:1023FC001A37629D305009FD1A376276716301718C
+:10240C001806F94A30F1DC0BE507F9F508F9CD3778
+:10241C0007EF224A3004DE1ACF07F9025008C150E8
+:10242C006CFD6A02C092DF0DD450DF09711006F901
+:10243C00EF03F507F94007F901DF05710A22EF06F2
+:10244C00710B22710302CD20075700674C08DE1078
+:10245C0073090A20614EDC05679D20EF0387EFEBC3
+:10246C004A2007DF09D507F961F8CF07F903C6D76A
+:10247C00500AFD9909304000C15006FD142BC05084
+:10248C0096ED9909C72006FBF8FFD507F961E8ED31
+:10249C006F25304A57C1503EFD142BC0D2DD077159
+:1024AC0000B2FBED6F257108B2FB17040200C1509E
+:1024BC0004C1500CC1506CFD8B021006EA38AA48BE
+:1024CC00318D12AA48318E616B08616A08C1500EB9
+:1024DC00FD142BC0F690C1500CFD142BC0CC010088
+:1024EC008C014C04DE2831349302EFFA712293EA0A
+:1024FC00388C015010D605C15010C18C01D6044047
+:10250C0000C1506CFD35031006615901EFD250A586
+:10251C00FD9909EA38AA48318D12AA48318E616BAF
+:10252C0008616A08C1500EFD142BC050A5FD990915
+:10253C005004C1506CFD6A02C0629C01EA388A4B9F
+:10254C004E0161C3048A4A4E0117040200C15004B3
+:10255C00C1500CC1506CFD35031006F6C1503EFD48
+:10256C00142BC01006C6D7C78D3F4B3061F8ED1247
+:10257C00264A4128DE05A441ED1226F4418D309DFA
+:10258C003F8D305070D612307351230480001231BD
+:10259C00FF318E039D409FAEFBF68D407C804C95A9
+:1025AC00DC1B8D40318F241400EA38BDD8AA44FDC1
+:1025BC004C0D1231FF318E03318F16EF198D4031D6
+:1025CC008F241400EA38BDD8AA46FD4C0D1231FFF9
+:1025DC00318E03318F16EA388A427217F303164490
+:1025EC00000171FE61C836FF001701DE02F61617F6
+:1025FC00BD78C7500CFD142BC0D2DF068D309D3F2B
+:10260C00EF047100B2FBF2C6D7C72008FBF8FF40FD
+:10261C0007F901DD064007F902DF1C17040600FD6F
+:10262C000C2CD2DF0A8C069C058C079C04EF4ECC3C
+:10263C000563CC0400EF4617040600FD0C2CD2DD1C
+:10264C000F7100B2FB710392CC0500711293EF2D48
+:10265C007108B2FB8C06318E318D080E07081C00F8
+:10266C00BBEA388A4072ABFD9F0EBB8C019C05D136
+:10267C00DF08CC0501CC0400EF038B9C0417040687
+:10268C0000FD172CD2DD06CC06C8CC07008C069FAB
+:10269C00B1FB8C06318E318D080E07081C00BD3441
+:1026AC00AD344401A5DC08CC0364F6BD42EF48AD63
+:1026BC003426424401A0DC08CC031EF6BD42EF37A1
+:1026CC00AD3444819DDC09CC030AC942F401EF27E7
+:1026DC00AD3444019BDC09CC0305C942F401EF176E
+:1026EC00AD34440191DC09CC0300C942F401EF077D
+:1026FC00711293C942F4013132040C31249208CC8A
+:10270C000564CC0400EF0D8C034E05DE078C039C96
+:10271C0005CC04008C059FAFFB8C049FB0FBFD998E
+:10272C002B8D444E05DD2840AFFB0BDE054A440BD8
+:10273C00DE1440AFFB06DE054A4406DE09D5AFFBCE
+:10274C00DF0DD444DD095020C15011FD9D34C08FE4
+:10275C00AFFB9D44FDD62B1008C6D7C75601D83702
+:10276C00C15002FD492BC04008F901DF10500AFD91
+:10277C009909712010055008FD9909EF055012FDBB
+:10278C0099098D376C0870C15002FD492BC050035C
+:10279C00FD99098D376C1870C15002FD492BC05042
+:1027AC0016FD99095003FD5A2B625C01D1DD0F71A6
+:1027BC0070B3FB5002C15013FD9D34C056006672BD
+:1027CC00C6D7C75004FD5A2B625C03D1DD405014B0
+:1027DC00FD652834B3FB895C9F998A0C7CFF50FF04
+:1027EC005C14D1DD228A0C7CFF5C147234B7FB893B
+:1027FC00616A997162075600316207058666D1DFFE
+:10280C00F7716307716B2734C6FB895CEB99500237
+:10281C00FD5A2BD2DD398D376C1070C15002FD4939
+:10282C002BC0E0FD9909D837C15002FD492BC0508F
+:10283C0033FD99094008F901DF0971281005500A88
+:10284C00FD9909F0C15002FD492BC07178B3FBE032
+:10285C00C15013FD9D34C0C6D7C7C12004FBF8FF7F
+:10286C00CC02005004FD5A2B629C038C045C20D1DA
+:10287C00DD0E8C036C019C038C026C209C02EF130C
+:10288C008C045C10D1DD0C8C035CFE9C038C026C04
+:10289C00109C028C045C08D1DD0E8C036C029C0332
+:1028AC008C026C089C02EF138C045C04D1DD0C8C44
+:1028BC00035CFD9C038C026C049C028C03D1DD0533
+:1028CC00501AFD99098C0370C15004FD492BC08F1F
+:1028DC00B3FB5C9F728C03318E316D148C03318E83
+:1028EC00314D616D08616C5C606162629FB3FB8FFE
+:1028FC00BFFB7CFF50FF5E02D1DD278FBFFB7CFF4F
+:10290C005E027234B7FB89616A99716207CC01006F
+:10291C00316207086159018C01D1DFF471630771D1
+:10292C006B27F21006C6D7D9A7FBC15006FD492B61
+:10293C00C0D9A8FBC15007FD492BC0D7FD3329F2E4
+:10294C00D7C7711300711B20710303710205E0C11D
+:10295C005003FD492BC05013FD9909F0C15005FDE2
+:10296C00492BC0500FC1E0FD492BC0500AFD9909FD
+:10297C007103055008FD9909501FC1E0FD492BC09A
+:10298C005012FD99095003FD5A2B625C01D1DF03F3
+:10299C00E2EF25F0FD5A2B629D363602F9C750083E
+:1029AC00FD312BC05003C1FD492BC0710203711ABC
+:1029BC0020FDF12ACD310CF2C6D75003FD5A2B6203
+:1029CC005C01D1DD155014FD6528FDCE275014FD9A
+:1029DC009909E0C15003FD492BC0711300711B20F4
+:1029EC007103035014FD9909F0C1E0FD492BC0F0AF
+:1029FC00C15003FD492BC0D7C72004FBF8FFCC0204
+:102A0C00008D319C035010C150A4FD6A02C0629D20
+:102A1C0031D450DD04F2EDCE2A8C037B315C08D12D
+:102A2C00DD0F8D315C08D1DF05CC0210EF03CC0239
+:102A3C00208C037B315C04D1DD158D315C04D1DF3E
+:102A4C00088C026C049C02EF068C026C089C028FB2
+:102A5C00B2FB5CF3728D315C0C6162629FB2FB8FD6
+:102A6C00BEFB7CFF50FF5E029C02D1DD1F34B6FB27
+:102A7C00896E0299716207CC0100316207086159B5
+:102A8C00018C01D1DFF4716307716B278D315C40D0
+:102A9C00D1DD095002C15012FD9D34C08D315C0155
+:102AAC00D1DD08E0C15012FD9D34C0717AFA8D3130
+:102ABC005C41D1DD0C5A31BED831C15010FD5747A5
+:102ACC00C0F21004C6D7FD6727F2D7FDCE27F2D788
+:102ADC00C78FC6FB7617FD6528664FC6FBDFF2F580
+:102AEC00C6FBF2C6D75064FD9909FD222C6261FB2E
+:102AFC00711192F171149261DC70C15012FD574743
+:102B0C00C0FD4B36CD5F03D7C7C1C1FBF8FFAC0A84
+:102B1C00BB17C15002C18C0270C1506CFD35031043
+:102B2C00061004C6D7C7C1FBF8FFAC08C15002C1E0
+:102B3C008B70C1506CFD8B021006C0C6D7C78806BF
+:102B4C00166770C1C75084FDFE021004C6D7C716A5
+:102B5C00C75084FD6A02C0C6D7C74A2004DE04569B
+:102B6C0000EF0256014008F901DF048686EF0A40A7
+:102B7C0008F902DF045104610666318F12504CD6FD
+:102B8C0033514CD6610A045420BD38C6D740AFFB34
+:102B9C003DDC05CF04FC0FD740AFFB1FDC05CF0499
+:102BAC00FC0BD740AFFB0BDC05CF04FC07D740AFC9
+:102BBC00FB0661D831320405CF04FC03D7D5AFFB3B
+:102BCC00DD04E504FCD7F504FCD7D504F9DF04716A
+:102BDC007392D7FD222C6261FB7101937114927177
+:102BEC00079361C8317292177172927104937111CB
+:102BFC0092F171049361DC70C15012FD5747C0D73C
+:102C0C00C716C75004FD312BC0C6D7C716C7500214
+:102C1C00FD312BC0C6D740AFFB0BDE02E2D7F2D79B
+:102C2C007100010571785005713AD5713BD18F1047
+:102C3C00055CFC9F1005CF54054AE5420571104216
+:102C4C0005710042057148500571305005712050D6
+:102C5C0005CF530509CF52050B7130510571205129
+:102C6C0005713BD5717050058F11055CFC9F1105EA
+:102C7C00F422D77178500571080105D7FD4538FD50
+:102C8C006A04717AFAFDAB23F504F98F06F9310564
+:102C9C001B5003FD5A2B625C01D161E8CF04F90291
+:102CAC00CFAFFB64710407714192EF10F67104070A
+:102CBC00611012F6B1236061FB714192FD6E30FD23
+:102CCC00FB42712295712BE7618461A461EDEFF8F1
+:102CDC00D77140F00071783002713AE6713BE271C5
+:102CEC003BEA713BEE8F10055CFC9F1005CF340264
+:102CFC004AE552FF711A52710A5271483002713012
+:102D0C00300271203002CF330209CF32020B713006
+:102D1C00310271203102713BE6717030028F110566
+:102D2C005CFC9F110571603002D7717830027148DC
+:102D3C00F000D7C788061666614FDD0967614EDE65
+:102D4C000396EF01866672C6D7C7161714AA04122B
+:102D5C00A943DD29AA0412A923FD7C4EC3AC02FDB4
+:102D6C007C4E13C2BDD813FD1C0FDE0C1714AA0227
+:102D7C0012AA0403BA04EF051714A9BA04AC04127E
+:102D8C0031FF319E03317F087208C6D77100F20003
+:102D9C00304400BFB601300188BF9001300984BFB8
+:102DAC009E01BF9C01BF9A01BF9801BF9601BF94C1
+:102DBC0001BF9201F53CFF30FE00BFBE01F6BFBC67
+:102DCC0001BFB80150EEBFBA01A1BFB201C918FED4
+:102DDC00008F06F9310507F5CDFBCB6CFF00717345
+:102DEC0093716293D730EF00BFB401F6BFBA017193
+:102DFC0008F200712304715307BE6EBE64BE6A7183
+:102E0C002304715307715BD1F453F452716393D75C
+:102E1C008D54B454D1DF6931D4D105715BD1E453F5
+:102E2C00D453DD2E7140B2FBD852F1E734020023AB
+:102E3C00DD0625DD0325DF05F6BE66EF06D9CCFBE6
+:102E4C00F1BE66A4524A5220DF04F452F453CD541E
+:102E5C0019D7CD541E7148B2FBD5CEFBDF04F6BE9C
+:102E6C0066D7D9CCFBF14266FFDD15D9CCFBF1124C
+:102E7C00AE6643DE05A266FFEF03B266FFCD5403D8
+:102E8C00D7C7161714F6B9AA0412F6231231FF315C
+:102E9C00AE03316FBA02C6D7C7C1FBF8FF8C08501E
+:102EAC0080D612AB1413B9AB14AA0412A92312D9ED
+:102EBC0027FBF133BDD813FD880DBA02C0C6D7313C
+:102ECC00049401D74004F902DF10F6BE64BE6EBE56
+:102EDC006ABF8EFBBF94FBBF9AFB31749314308A8C
+:102EEC00FBFD8D2E3090FBFD8D2E3096FBFD8D2E37
+:102EFC00EF713114940D7113947108D2FBF456F4E4
+:102F0C0055EF60D455DF5A8F26FB9D554A561FDC72
+:102F1C00177100D2FB4028FBFFDD1CA4578F28FB48
+:102F2C004B57DE13F456EF0FD856F1A1605C1F9D82
+:102F3C00567108D2FBF457E856092AFB70C1308A47
+:102F4C00FBFDA42EC0E856094AFB70C13090FBFD76
+:102F5C00A42EC0E856096AFB70C13096FBFDA42E66
+:102F6C00C0B455308AFBFD552DF313BE6E3090FB6B
+:102F7C00FD552DF313BE6A3096FBFD552DF313BE94
+:102F8C0064D7C736F00071F4DC297170F000CE9D67
+:102F9C0008CE9EC0CE9F80F594FFF593FFF592FF6F
+:102FAC00E597FFE596FFE595FFE598FFCE9C7F71D1
+:102FBC0000A6FB711BE3712BE3711AE7712BE77110
+:102FCC007A9D710A9E31929E02EFFA710B9E7123CB
+:102FDC0094713394714394C6D7C73122941E7122D5
+:102FEC0094710A9E31929E02EFFA34D4FB3692FF12
+:102FFC0052078B99A5A792DFF9710B9EC6D7C7888C
+:10300C00061631329415713294C7349CFB3092FF02
+:10301C001652078B99A5A792DFF9C6667367189CA1
+:10302C00FBC6D7C77123943134941E713394710A43
+:10303C009E31929E02EFFA3492FF369CFB52078B24
+:10304C0099A5A792DFF9710B9E31449413714394A7
+:10305C00717B9E8FDCFB9E9A8FDDFB9E9B717A9E13
+:10306C00C6D7CFA7FB5CCFA8FB5FCFC8FB5DCFFC5F
+:10307C00FB36CFFDFBC9E5D3FBD7C7CFA4FB12CFE3
+:10308C00A5FB19CFCCFBFFF5CDFBF5CEFBF5CFFBAC
+:10309C00F5D0FB5600664C64DE08723826FB0086C1
+:1030AC00EFF3C6D7C788061617F1E7340300236180
+:1030BC00E3EDD5332361F8EDA131B12361E3EDAB41
+:1030CC00312561F8EDB931B1240D0061D8EDD5335E
+:1030DC00240B0061F8EDD9312361F8ED1C3223612A
+:1030EC00F8EDEC312361F8EDD03324060061F8EDF6
+:1030FC008532B12561D8EDA13224000061F8EDAE26
+:10310C00322361F8EDD5332361F8EDAE33B1236191
+:10311C00E3EDD1322361F8EDE2322361F8EDF332C5
+:10312C002361F8EDE2322361F8ED04332361F8ED0D
+:10313C0015332361F8ED24332361F8ED4633236115
+:10314C00F8ED52332361F8ED5E332361F8ED66330D
+:10315C002402002361E3EDD53324020061F8ED6E07
+:10316C00332361F8ED79332561F8ED8433B124060E
+:10317C000061D8EDD53324000061F8EDD73325611B
+:10318C00F8ED8F3324120061F8EDA9332361F8EDCB
+:10319C009A33EDD73334A6FB89615F99EDE1333077
+:1031AC004829619466736718A4FBEDE13340A9FBD1
+:1031BC006ADF1340AAFB68DF0D674C6CDF08303800
+:1031CC00406194713AD5679FABFBEDE13367D1DD7C
+:1031DC000C30693B619434C4FB89616F99EDE13328
+:1031EC00675C02D1DD0730D22A6194EF0B675C017A
+:1031FC00D1DD0530D72A6194675C3CD1DD0F30DC22
+:10320C002A6194675C3C7266736218A4FBEDE1332F
+:10321C0067D1DD625C01D1DD05300800EF01F6609D
+:10322C009F01FC675C02D1DD03E6EF01F63401FC83
+:10323C0089616899675C04D1DD04E6A1EF01F6347D
+:10324C0001FC89616899675C08D1DD05302000EFCD
+:10325C0001F63401FC89616899675C10D1DD053099
+:10326C001000EF01F63401FC89616899675C20D18C
+:10327C0061E8716001FCEDE133D446DF08679FCD56
+:10328C00FBA446EF0D4A4605DE08E846671811FD1B
+:10329C00A446EDE133675C0F7266736218A4FBED14
+:1032AC00E1334A4664DE1B4A4601DF0667D161F80A
+:1032BC005701E846671826FBA4464A460561C871C3
+:1032CC001294EDE133675C7F70C117F1243000FD7F
+:1032DC000A30C0EDE133675C3F70C117F124300058
+:1032EC00FD0A30C0EDE133675C0770C117F1243083
+:1032FC0000FD0A30C0EDE133675C1F70C117F1248B
+:10330C003000FD0A30C0EDE1336770C117F1243095
+:10331C0000FD0A30C0EDE133CEABAC710A9E3192A8
+:10332C009E02EFFAD592FFDF05710B9EEFED679EC3
+:10333C0099710B9E9FDBFBEDE133714294675C7FCF
+:10334C009FDCFBEDE133714294675C3F9FDDFBED4D
+:10335C00E133675C3F9FDEFBEF7B675C1F9FDFFB0E
+:10336C00EF733029396194679FE4FBEF6830F638CE
+:10337C006194679FE5FBEF5D300F396194679FE8BF
+:10338C00FBEF52675C01D1DD4CFDFB42EF474A5825
+:10339C00C8DE42E85867185AFAA458EF38679D58A7
+:1033AC00EF33675C01D1DD05711202EF037113027B
+:1033BC00675C02D1DD05712202EF03712302679F66
+:1033CC00D3FBEF1167318EEF0CEF0A664C5BDE0519
+:1033DC00736718A4FBC6D7C716664C30DC094C378C
+:1033EC00DE05FDE52FEF6B664C02DF1F8FA6FB5C45
+:1033FC0003728F03FC5C03318E316D08616A081215
+:10340C008F03FC5C80312A6162EF56664C3DDF080D
+:10341C00AE90BD5AF85AEF49664C3EDF04F85BEFAC
+:10342C0040664C4FDF05FD2343EF36664C61DF08E9
+:10343C00E858095AFA72EF29664C7FDF05FDDF3B2D
+:10344C00EF1F664C4EDF0B310496045210EF12F254
+:10345C00EF0F664C5BDC0452FFEF06667309A4FBAE
+:10346C0072C6D7C788061617F1241000240500DC95
+:10347C0007244C00DD17EF17717BFA17F104A4FB3E
+:10348C001489617F99717AFA715294EF02A458C62B
+:10349C00D7C7C1C1FBF8FF4004F903DD064004F9AE
+:1034AC0004DF38717BFA8C027309ACFB5E0AD1DF46
+:1034BC00278C02318E04A4FB14896E0A9971620761
+:1034CC00717AFACC0100316207086159018C01D183
+:1034DC00DFF4716307716B27717AFA1004C6D7CFCA
+:1034EC0003FC03F501FCF505FCF507FCD7C78806C2
+:1034FC001617F1E734020025DD3D23DD1725DD1C11
+:10350C0023DD0523DD2BEF3B710295679F06FCCD78
+:10351C005F03EF2F675C839F03FCEF27675C039FC0
+:10352C0005FC675C034C0261F8712296FD1145EFB6
+:10353C0012679F07FCEF0C6791DF08E0C15012FD8A
+:10354C009D34C0C6D7C71617F1E7240000DD2A2327
+:10355C00DD1E240300DD0724FB00DD24EF253132C2
+:10356C009605308000EF01F6086F04FC7208EF1925
+:10357C008F01FCF501FC72EF107152955235EF0979
+:10358C00F2EF0666730900FC72C6D7C71617F1E78F
+:10359C00240000DD38241000DD1C23DD1C23DD306D
+:1035AC00240E00DD18241100DD1B240F00DD122475
+:1035BC003000DD15EF1EE2EF1D5202EF195204EF41
+:1035CC00155206EF115205EF0D5207EF09F2EF06F7
+:1035DC005203EF0252FFC6D7C7316494377163941C
+:1035EC008D5E9FACFB8D5D9FCBFB36D2FCC7D85D4F
+:1035FC00FD4B37618A70618AFD9037C0D862F1311A
+:10360C002F609D618D5C4B61DD0A7172948D619DA3
+:10361C005CCD5F034A5F05DE083055366194CD5FA3
+:10362C006BB45F7150F000CE300BCF170006CE316B
+:10363C0006FD4502717A30710BE3710BE7C6D78D2D
+:10364C00619D5C8D619FADFBD74004F903DF0640A3
+:10365C0004F904DF02F2D73174940C717394711372
+:10366C00958D619D63EF313104951F710395711236
+:10367C0095D506FCDF04F464EF0A8F06FC5002D6E5
+:10368C00A1609D648D649D63EF0E311495068D646D
+:10369C009D63EF048D619D638D639FADFBD863FDCE
+:1036AC00BD36E863091C2270C15013FD5747C0F2A8
+:1036BC00D7C7C1C1FBF8FF8C02D1DF05F506FCEFC3
+:1036CC001A8C024C05DE06CF06FC02EF0E8C023182
+:1036DC008E1231FE03311F609F06FC8D654F06FC78
+:1036EC00DD28CC011F8F06FC9D65CC00008B4C089F
+:1036FC00DE148B730912204F06FCDC058B9C01EF4A
+:10370C0005615900EFE78C019D601004C6D7C71600
+:10371C00710AE7710BE37150F000CE300BCF17003C
+:10372C0006669E31FD4502717A30710BE33182E3FE
+:10373C0002EFFA8D1F7158F000710BE772C6D7C7F4
+:10374C00C1C1FBF8FF8FFCFB4E02DC03F2EF318CA6
+:10375C00024FFDFBDC0452FFEF268C022FFCFB70AA
+:10376C006131318D128FFDFB2FFCFB70613133BD4C
+:10377C00D813FDAA0DBB440001DC03F690BB8B7281
+:10378C001004C6D7C7C1FBF8FFAC0814A914897084
+:10379C008B6128706131FD7C4E1344030071FEDC9B
+:1037AC0023AC08148A04819A04AC08148A044C11C2
+:1037BC00DC10A9148B99AC0814CA0200AC0814CA0A
+:1037CC000310EF72AC0814CA0400AC0814A91489D5
+:1037DC004DDE0AAC08148A02819A02EF12AC08146E
+:1037EC00A914894D61D308AC08148A02919A02ACD1
+:1037FC0008148A03919A03D1DF3CAC08148A024C5A
+:10380C0010DF10A91489318EA112AC0814A914620E
+:10381C0099EF17AC08148A024CF0DF0EA914893109
+:10382C008EB112AC0814A9146299AC0814CA020027
+:10383C00AC0814CA0310C0C6D7ED4838C75600668A
+:10384C004C0ADE0BF0317E12F67810FC86EFF0C6D7
+:10385C00D7C7200CFBF8FF17040600C15006C15057
+:10386C00A8C15030FD8B021006D2DD1B4A6804DE65
+:10387C0005A468E2EF7034E4FB895CFC99FD2939FE
+:10388C007110B2FBF2EF5F717BFA300600C11704C6
+:10389C000600C130E9FBFD844E1004717AFAF4681D
+:1038AC008FE4FB5C01D1DD264004F903DF205010CE
+:1038BC00C180FD9D34C0C736100571D4C6DE0F170C
+:1038CC00C15006C150A8C15030FD8B0210064004F7
+:1038DC00F903DD064004F904DF0B8FE4FB5C02D135
+:1038EC0061E8FD3D40F2100CC6D7D9E5FBC1503064
+:1038FC00FD6A02C0629FE8FB5008C15011FD9D3467
+:10390C00C0F2D7D9E8FBC1D9E7FBC15030FDFE02AC
+:10391C0010045008C15011FD9D34C0F2D7C7200CC3
+:10392C00FBF8FFCC09004007F901DF05CC0A02EFD8
+:10393C0003CC0A10CC0B808FE4FB5C039C07D1DF1B
+:10394C0008717AD5CC0807EF06717BD5CC082F17F8
+:10395C00040800C15004C150A0C15030FD35031003
+:10396C0006624C02DF077110B2FBF2EF357118B230
+:10397C00FBF468C736100571D4C6DE164004F90393
+:10398C00DF1017A1C15006C150A8C15030FD8B02E9
+:10399C001006717BFA8FE4FB5C034E07DD03E2EF4C
+:1039AC0001F2100CC6D7D504F9DF03F6BD6A40044A
+:1039BC00F901DD0AD474DD03B474D7CD74038F041C
+:1039CC00F9318FE723DD0B24020024030061C8EDDD
+:1039DC00D73A8F06F931233E301B00466ADF0AE0E6
+:1039EC00C15010FD9D34C0EF1D307701466ADF16C3
+:1039FC005002C15010FD9D34C0F64670DF088FC8D0
+:103A0C00FB5010D6BD70F64670DD36B6704670DFD2
+:103A1C0030711293EF2B301B00466ADF13F646729F
+:103A2C00DF18E0C15010FD9D34C0C9725307EF0A76
+:103A3C00307701466A61F8711293F6467261E8B606
+:103A4C007231549608714395F6BD6AEF1431449562
+:103A5C0005F6BD6AEF0BA66AF6466A61F8C96AFFFD
+:103A6C00FF316296194A6C05DE16A46C4A6C05DFB0
+:103A7C000FA46C5004C15010FD9D34C0EF02F46CC7
+:103A8C00316496194A6E05DE16A46E4A6E05DF0F78
+:103A9C00A46E5008C15010FD9D34C0EF02F46ED4DA
+:103AAC006FDD03B46FD7317296174A6D05DE14A41F
+:103ABC006D4A6D05DF0DA46D5010C1FD9D34C0EF36
+:103ACC0002F46D4A6D0661F8CD6F25D7C736100527
+:103ADC0071D4DE0E8FB2FB5C02D1DF06305D386133
+:103AEC0094D24004F903DF1C3122070530042A610B
+:103AFC00943154950C7153955080C15012FD9D34E6
+:103B0C00C0FD153BFD3B3BC6D78F03FC5C01D1DDF3
+:103B1C001DD477DD03B477D7CD77098D604B76DD77
+:103B2C000D8D609D765040C15012FD9D34C0D74024
+:103B3C0004F903DD04F6BD1AD7D5D0FBDF08F64631
+:103B4C001ADD19B61AD7D9CCFBF1461ADD0ED9CC31
+:103B5C00FB12AD1A43DE03A61AD7B61AD7717BFA3D
+:103B6C00C78FC4FB76F5C4FB717AFA5C10D161E89F
+:103B7C00716295665C0FD1DD57665C01D1DD05F590
+:103B8C0004F9EF4C665C02D1DD11E0C15003FD4934
+:103B9C002BC0711300711B20710303665C04D1DD13
+:103BAC0011711300711B20D503FC61F8710303FD27
+:103BBC00EB34665C08D161E87103035005FD99098B
+:103BCC007102035003C1FD492BC0711A20FDF12A6B
+:103BDC00F2C6D7C756FF4A461361C8EDB93C8F06EB
+:103BEC00F9311505300400EF0F8F06F9314505301A
+:103BFC000500EF04D907F9F1609F28FC8D789F2907
+:103C0C00FC713492E661301271049261DC311961FD
+:103C1C0062629F2AFCE52BFC31140205308000EF18
+:103C2C0001F6C131449605304000EF01F6C2616BDC
+:103C3C0008616A08C131340405302000EF01F6C276
+:103C4C00616B08616A08C131240205300800EF017C
+:103C5C00F6C2616B08616A08C131749605300400C4
+:103C6C00EF01F6C2616B08616A08C131649604E623
+:103C7C00A1EF01F6C2616B08616A08C13154960369
+:103C8C00E6EF01F6C2616B08616A9F2CFCF17124AE
+:103C9C000461DC9F26FCF171540761DC9F27FCD882
+:103CAC0046F10104ECFC14A9148976A4466672C68C
+:103CBC00D7C7FDBD088F04F9318FE724000061F8E8
+:103CCC00ED973E23DD1B2361F8EDA13D2361F8ED5B
+:103CDC001D3E2361F8ED663E2361F8ED3A3FED940D
+:103CEC003EF6BD707113934005F901DF2C3134960B
+:103CFC001B466ADD04F424EF02A4244A2465DC0F7D
+:103D0C00F6BD6AF504F9712295EDBB3FFDAB23AD11
+:103D1C006A440A0061D8EDBB3F714295FD6A04719B
+:103D2C006392FDAB234007F903DF09712295F5047B
+:103D3C00F9EDBB3FFD152640B1FB9BDE09712295C9
+:103D4C00F504F9EDBB3F714A277140110571301133
+:103D5C0005713A22715A2271501105FD4D29D2DD9F
+:103D6C0009712295F504F9EDBB3F71103500CF3781
+:103D7C00001D714012054005F901DD064005F903EF
+:103D8C00DF05F5CDFBEF04CFCDFB03CF04F902FD2E
+:103D9C003329EDBB3FFD2C2CFDDD2C714A9DFDEB39
+:103DAC0034FD8630F537FF712BE0F505F97122955E
+:103DBC00CBE43FEFCBE6F6F0FD6A04713BD4711215
+:103DCC00027123028F06F93105285004FD5A2B622B
+:103DDC005C03318E315D34B3FB896168995002FD0F
+:103DEC005A2BD2DD067170B3FBEF047178B3FBFD77
+:103DFC00AB23FD982D710806F9CF04F9038FA6FBB0
+:103E0C005C02D1DD095080C15010FD9D34C0EDBB6A
+:103E1C003FFDBD3F3164952FA47AD47ADD0831A4DF
+:103E2C00E00A31020C06712BE0FD294031A4E017A9
+:103E3C0031040C13712BE05027C15005FD492BC0E8
+:103E4C00CF04F904712295FD1E408F06F931250728
+:103E5C0031349603F504F9EDBB3FFDBD3F31020C47
+:103E6C0014F0C15005FD492BC05005FD9909FD29E1
+:103E7C0040CF04F903FD1E408F06F931250731347C
+:103E8C009603F504F9EDBB3FF504F9CFCDFB03F533
+:103E9C00CEFBF5D0FB717293F6426CFF61E8EDBB83
+:103EAC003FF6BD70711393F5E4FBFD2939717AFA75
+:103EBC00FDF12DFD7F2CFD362D714B9D7113027183
+:103ECC00230231349302EFFACE3708CBE4BFFFCB99
+:103EDC00E6FFF3CED4FFF5B4FBF5B5FBF5B6FBF579
+:103EEC00B7FBCF37000971481205F6BEE0BEE2BE43
+:103EFC00D0716A27FDC629714307714B2771481091
+:103F0C0005714811057138100571381105713302AE
+:103F1C00713B22715302715B22715810057158115B
+:103F2C0005CF04F905714295F6BD6AFD8609F505C4
+:103F3C00F9F42431349604D432DD20E505F9E50496
+:103F4C00F98F06F9312568F5F8FBF5F6FB502EFDD7
+:103F5C009909CF05F903E504F9EF54FDBE04FD3EC4
+:103F6C002371730171320471430271039271629275
+:103F7C0031949E02EFFA712AE7CEA409F5F30031D1
+:103F8C0004070261FDE5F300F466FDBD08CEA4084C
+:103F9C0031329606CF04F905EF09714395E505F921
+:103FAC00E504F9712BE78F06F9312503F504F9C601
+:103FBC00D7D47BDF19310200585003FD5A2B625CB9
+:103FCC0001D1DF07F504F9712295D7E47BD74A7B41
+:103FDC00F0DF073104003AF47BD74A7BC8DF0AF5DF
+:103FEC0004F9712295CD7BF0D7310200084A7BFF92
+:103FFC00DD1FA47BD7F0C15004FD492BC08FB3FB50
+:10400C005C9F9FB3FB7110C4FB30693B6194CD7B0B
+:10401C00F0D731149306F504F9712295D771639595
+:10402C00F47A717207FD4502717307D7FDD804F25B
+:10403C00D7717BFAC7200CFBF8FF8FEAFBF0F9E98C
+:10404C00FBF303FD7C4E13BC048FECFBF0F9EBFB94
+:10405C00F303FD7C4E13BC028FEEFBF0F9EDFBF38A
+:10406C0003FD7C4E13BB717AFAAC04BDD8F6BDDAF5
+:10407C00AC04311EBDDCF6BDDEFD5D0DADD8BDDC86
+:10408C00ADDABDDEAC02BDD8F6BDDAAC02311EDA5B
+:10409C00DCC3DADEC3BDDCF6BDDEFD5D0DC0BDDE0E
+:1040AC00C0BDDCADDEFDD30EADD8BDDCADDABDDE02
+:1040BC00ABBDD8F6BDDAAB311EDADCC3DADEC3BD7C
+:1040CC00DCF6BDDEFD5D0DC0BDDEC0BDDCADDEFDD4
+:1040DC00D30EDADAADD8FD0C44C3C58D885C3FF045
+:1040EC00317E0440FC14C2C0B9A488F6BC08BC0ADA
+:1040FC009C078C074C2EDD3D8D880E0770F161DC22
+:10410C00605C3FF0317E127940FCBDD8F6BDDA8C94
+:10411C000773095C22318FBDDC70BDDEFD5D0DAC1B
+:10412C0008BDDCAC0AFDD30EADDABC0AADD8BC08B8
+:10413C00615907EFBDAC08BDD8AC0ABDDAC9DC00CB
+:10414C0004F6FD270EC9DCFFFFF6FD280FADD8BD28
+:10415C0082AF3AFC4682DD11AF3CFCBF3EFCAF3A6D
+:10416C00FCBF3CFCAD82BF3AFCAF3CFC423EFCDCED
+:10417C0046AF3AFC423CFCDE3EAD26423AFCDE3712
+:10418C004A2A16DC1A4A2AA0DE138D844B2ADE0D2D
+:10419C00AF3AFC268644691061C8FDF541F42AAF9C
+:1041AC003AFC445146DC0AAF3AFC241027BD28EFF8
+:1041BC000DC928F82AEF074A2AFF61E8A42AAF3E66
+:1041CC00FC423CFCDC18AF3CFC423AFCDE10AF3A43
+:1041DC00FC4628DE09F484AF3AFCBD86EF074A841E
+:1041EC00FF61E8A484100CC6D7717BFAC7710A9ED4
+:1041FC0031929E02EFFA8E949F34FC8E969F35FC82
+:10420C008E979F36FC8E989F37FC8E939F38FC8E32
+:10421C00929F39FC710B9E717AFA8F37FCFD3C0F23
+:10422C0076FD8A4313BD80D5EFFBDF0AD5F0FBDFAB
+:10423C0005D5F1FBDD25F6B14680DF11C9803722AB
+:10424C00665C0391DF060A80181A81009617FDAD93
+:10425C004413FDCD4231049602EF615206929269ED
+:10426C0034FC682EFCDFF6AD80BD7EF87CF3311C8F
+:10427C00790AF944FEFFDD44D87CF101040AF914F3
+:10428C00A944FFFFDF04E6B9EF0BD87CF101040A67
+:10429C00F914A9A1B9717BFAA0EFFBD5EFFBDF1CD8
+:1042AC00A0F0FBD5F0FBDF14A0F1FBD5F1FBDF0C8C
+:1042BC00CFEFFBFFCFF0FBFFCFF1FBFFC6717AFA1C
+:1042CC00D7C716D87CF10744A800DC05710296EF1D
+:1042DC001CF647DD18A47C4A7CA8DC05710296EF1D
+:1042EC000CF87CF3311CF6780AF9B7EFE4C6D7C7A3
+:1042FC0056A89666F0317E12F6B1780AF966D1DFCF
+:10430C00F1717BFAF5EFFBF5F0FBF5F1FBF47C7149
+:10431C000396C6717AFAD7C72004FBF8FFD446DFA0
+:10432C00168D7C9D89717BFA52069292692EFC68DF
+:10433C00C0FCDFF6717AFA4A4606DE0EE84609C082
+:10434C00FC9C03A4468C0372EF30F889F3311C7982
+:10435C000AF9BB311296058B9C03EF0F8C019C0361
+:10436C00D489DF05CD89A7EF02B4897180711796C6
+:10437C0061DC61FB7111968C03721004C6D7C720E7
+:10438C0008FBF8FF8F37FCFD3C0F9C078F36FCFDBC
+:10439C003C0F9C068F35FCFD3C0F9C058F34FCFDBF
+:1043AC003C0F9C048F38FC9C038F39FC9C028C06C0
+:1043BC00318E0112791A20BB8C075C03D1DF098C7A
+:1043CC00064C0361C86179008C05318EB16109001E
+:1043DC00BB313D120103BB8B0E04708C011C00BB66
+:1043EC008FF4FB4E03DC0E8C034FF4FBDC0B8C02C6
+:1043FC004FF5FBDC04AB12EF03ABB1121008C6D7C0
+:10440C00C7C3C12008FBF8FFF661490A61F861498E
+:10441C0008DF07F7340000EDA944E6BC04F6BC063F
+:10442C00AC0ABC02AC08BBAC06614902AC0461F836
+:10443C00614900DE28AC04BDD8AC06BDDAE1FDE272
+:10444C000EADDABC06ADD8BC04ABBDD8AC02BDDA3F
+:10445C00E1FDFD0EADDABC02ADD8BBEFCAAC06BCBB
+:10446C0002AC04BBAC08BDD8AC0ABDDAAC04BDDCF4
+:10447C00AC06FD600EAC04BDDCAC06FDD30EE1FD5C
+:10448C00FD0EADDABC06ADD8BC04AC06614902AC7D
+:10449C000461F8614900DCC5AC0214AB12100CC607
+:1044AC00D7C7C12004FBF8FF8F31FCFD3C0F9C03E8
+:1044BC004E04DF1CAD7E4680DE07AD80267E12EFFB
+:1044CC0040F64680DF07467EDD03E7EF34F7EF3139
+:1044DC008C04318EB1128C03318E43DF18303822AC
+:1044EC00267E0680BB8C045C0391DF05AB041800B0
+:1044FC00BBAB12EF0C8C034E04DE0532A900EF01AE
+:10450C00F71006C6D7717BFA3122960CF6468CDD75
+:10451C0007B68C717AFAEF7C712396717AFA4004A3
+:10452C00F904DF07715307F42CEF69D9CFFBF1E7DE
+:10453C00240000DD0F23DD1A23DD1023DD5323DDE2
+:10454C002723DD38715307F42CEF49715207F42CF3
+:10455C00EF42D42CDF07715207E42CEF057153079F
+:10456C00F42CC98CFA00EF2CD42CDF0B715207E41D
+:10457C002CC98CFA00EF1DF5CFFBEF18D42CDF0BF8
+:10458C00715307E42CC98CFA00EF09CFCFFB02EF73
+:10459C0003FDA145D7D905FCF1E7240000DD092373
+:1045AC00DD2123DD0923EF1B715307F42CD7D42C09
+:1045BC00DF07715207E42CEF05715307F42CC98CFB
+:1045CC002D01D7715207E42CD731629301D77103B7
+:1045DC0094D9CDFBF1E7240000DD1223DD1923DD96
+:1045EC001123DD2623DD3423DD3923DD3FFD614638
+:1045FC00EF3DFD8246EF38D9CCFBC1AE6CFD3F2DB3
+:10460C00C0F313BE6C712304EF25F0C1AE6CFD3FFB
+:10461C002DC0F313BE6C712304EF14F6BE6C712223
+:10462C0004EF0CCB6CFF00712304EF03FDF6464046
+:10463C0004F905DD064004F901DF0671230471035A
+:10464C00943104940FF6BE64BE6A31220402EF0268
+:10465C00F690BE6ED7CD2E47F48EAE6C317DBFCAB0
+:10466C00FCFDCB46D2DF0ED9CCFBC1AE6CFD3F2D91
+:10467C00C0F313BE6CD7FDCB46D2DD0DCD2E47F467
+:10468C008EAE6C317DBFCAFCD7E88E0934205080C9
+:10469C00D6BFC6FC22CAFCBDD8304700FD880DBF72
+:1046AC00C8FC30C6FCFD552DF313BE6CB42ED42EB5
+:1046BC00DF0CCD2E47A48E4A8E1F61C8F48ED740D6
+:1046CC00AFFB0BDC05712304F2D740AFFB0661D8BE
+:1046DC0031229211F0C1AE6CFD3F2DC0F313BE6CB4
+:1046EC00712204EF03FDF646E2D7710294F0C1AEDD
+:1046FC006CFD3F2DC0F313BE6CA48F4A8F40DC378A
+:10470C00F48FD890F1313F0412FD14D890F1BDD83C
+:10471C005008FDD70D087208E6D2DD040192DFFCCB
+:10472C00896158D1DD05712204EF03712304A49033
+:10473C004A902061C8F490D7C73026FDC6D7718047
+:10474C00717DFADE035201D75200D7C7C12004FB9A
+:10475C00F8FF17040300C1E0C15010C150A4FD8B39
+:10476C00021006629C02D1DD058C0272EF4C8C0C9F
+:10477C0070C18C0470FDCA47C0629C02D1DD058CEF
+:10478C000272EF368C0CD1DD3017A1C1E0C1501094
+:10479C00C150A4FD8B021006629C02D1DD058C0277
+:1047AC0072EF178C015C7CD1DD03F2EF0D8C037082
+:1047BC00C15010FDCA47C0EF01F21006C6D7C7881A
+:1047CC000616710AE650A4FDB703D2DD07713393C8
+:1047DC005202EF2217FDD3036770FDD303FD1E04B5
+:1047EC0050A4FDD3035020FDD30350AAFDD303FDE9
+:0847FC004704713393F2C6D7A4
+:1048040061FC61FCC1C3C5C7520C929269D4FEC15C
+:10481400DFF88EFD708EFCC1717AFA4004F903DF73
+:104824000530042A6194C09EFC609EFD34D4FE527F
+:1048340006C0B9A5A592DFF9C6C4C2C061FC61DF98
+:10484400520C929269D4FEC1DFF88EFD708EFCC1C9
+:104854008F4105775C04D1DD06675C01D1DD503101
+:104864005494367162077153948FB4FB5FBCFBD1CF
+:10487400DF1B8FB5FB5FBDFBD1DF128FB6FB5FBEC5
+:10488400FBD1DF098FB7FB5FBFFBD1DD0C316207C2
+:1048940002EFFA716307716B27711396FD2F30F4E1
+:1048A400227148500571605005717AFAED9E49678E
+:1048B4005C02D1DD16D422DD124A2202DD0DF4227F
+:1048C4007148500571605005717AFA717AFA8D2237
+:1048D400318FE7240000DD0823DD1423DD2CEF4AAB
+:1048E400F4467140500571505005E422ED9E498F05
+:1048F40040059D47715050058D479D49D847FDE3BC
+:1049040033629D48CD2202ED9E49675C02D1DD17DA
+:10491400675C10D1DD05CD2203EF0F71485005719E
+:10492400605005F422EF73CD22044A2203DF108D78
+:10493400489F4005D848C1D847FD6F34C0EF1F8F4A
+:10494400400576717447DC054A4702DE0671605003
+:1049540005EF47C7D847FDB030C071505005D8495E
+:10496400F1242900DD27240400DD22242200DD1D9A
+:10497400241100DD0C240100DD13241E00DD0EEFE4
+:104984000A4A4760DF07CD4761EF02A4474A220382
+:10499400DF08D847FDE333629D48C09EFC609EFD5E
+:1049A40034D4FE5206C0B9A5A592DFF961FCC1C397
+:1049B400C5C7520C929269D4FEC1DFF88EFD708E89
+:1049C400FCC1717AFA51405F0401D1DD06F616A7E5
+:1049D40047DFF2300400BF2401F6BF2A01300B0B7D
+:1049E400BF2801FD4502300B0FBF2801FD450230F1
+:1049F4000F0FBF2801710AE6F6420C01DD33AF0444
+:104A040001BF0C0131529329715293710BE2D84DBD
+:104A1400FDB7033184BD02EFFACBB422FBD84FF1CA
+:104A2400BEB8714BE1714BE5710ABD8D4E9E44EFEA
+:104A34000C715393714AE5717BBD713393C09EFC35
+:104A4400609EFD34D4FE5206C0B9A5A592DFF9C616
+:104A5400C4C2C061FCC1C5717AFAD44CDD0BEA4A08
+:104A6400899E44A64AB44CEF33710AE6300400BF71
+:104A74002401F6BF2A01300B0BBF280100000000FF
+:104A840000000000510FBF280100000000000000DA
+:104A940000500FBF2801712393713393C4C061FC8C
+:104AA40061EF520C929269D4FEC1DFF88EFD708ED4
+:104AB400FCC12006FBF8FF71503002CEABACCC0435
+:104AC40000F6BB31B2E210617900F6614900DFF310
+:104AD40071603002ED5E4B8E519C03713BE28C039E
+:104AE4005C02D1DD1E8C035C08D1DF0971503002F9
+:104AF400CC0400EFCC8C0570FD5135629E50CC0483
+:104B040002EFBE8C035C03D1DF408E509C027150D7
+:104B140030028C04D1DF0E8C0270FD9735629C0547
+:104B2400CC0401EF328C044C02DF0671603002EFDA
+:104B340029CF34025A716030028C0270C18C057026
+:104B4400FDF934C0CF34024AEF108C035C01D1DD8F
+:104B54000671603002EF03EDC54A1006C09EFC608A
+:104B64009EFD34D4FE5206C0B9A5A592DFF961FCBE
+:104B7400C1C3C5C7520C929269D4FEC1DFF88EFD41
+:104B8400708EFCC1710A9E31929E02EFFA8FDEFB99
+:104B94004F96FFDF198FDFFB4F97FFDF118FE0FB8D
+:104BA4004F98FFDF095004C15011FD9D34C0710BB3
+:104BB4009EC09EFC609EFD34D4FE5206C0B9A5A5DD
+:104BC40092DFF9C6C4C2C061FCE46661FCC1C3C51E
+:104BD400C7520C929269D4FEC1DFF88EFD708EFC30
+:104BE400C1C1FBF8FF8D1F9C018E31318EE7240675
+:104BF40000DD0823DD0E23DD22EF38717AFA8C0103
+:104C04009D5EEF2F717AFA4007F901DF068C019D52
+:104C14005DEF2051FF2E019D5DEF18717AFA8C0132
+:104C24009D304004F903DD064004F904DF053073C8
+:104C34002561944031FF09DE05A031FFEF0771586B
+:104C4400F000716294710BE3C0C09EFC609EFD3461
+:104C5400D4FE5206C0B9A5A592DFF9C6C4C2C0618C
+:104C6400FC717BFAC7D46661F831249527712395CA
+:104C7400D466DD05B466CEABAC717AFA5600664CE8
+:104C84000ADD1172F3311C79D8FCCEFC0061CA61D3
+:104C9400A486EFEA717AFAF2C6D7C7C1C1FBF8FF5E
+:104CA400CC01008C014C0ADE36717BFA8C01F031A8
+:104CB4007E0410FC14A96168DF09AC02B9717AFAA8
+:104CC400F2EF1D8C01F0317E127910FC614902DF94
+:104CD40006717AFAE2EF09717AFA615901EFC4E2D6
+:104CE4001004C6D7C72004FBF8FFF64210FC61F895
+:104CF400EDCA4D717BFA9C038C034C0ADE3C8C0399
+:104D0400F0317E0410FC14A96168DF05717AFAEFB2
+:104D140029717AFA8C0372F3311C7910FCCEFC00F1
+:104D240061CA629C02D1DF0A8C03F0317E12E678FC
+:104D340010FC717BFA615903EFBECC0200CC010177
+:104D44008C02F0317E0410FC14A96168DD788C02B9
+:104D5400F0317E127910FCE743DF658C014C0ADEEA
+:104D64005F8C01F0317E127910FCE743DD4D717BDD
+:104D7400FA8C01F0317E0410FC14A96168DF18611B
+:104D840069018C01F0317E12F67810FC8C024E0120
+:104D9400DCED717AFAEF2F8C01F0317E0410FC14F3
+:104DA400A9128C02F0317E337810FC8C01F0317E34
+:104DB40012E67810FC615902717AFA615901EF9B8D
+:104DC400615902ED444D00F21004C6D761FF520C44
+:104DD400929269D4FEC1DFF88EFD708EFCC1717AA7
+:104DE400FA8FE4FB5C03D1DD114004F903DD0640D6
+:104DF40004F904DF05305D386194C09EFC609EFDBB
+:104E040034D4FE5206C0B9A5A592DFF961FC61FC59
+:044E140061FC61FCE0
+:0A4E180000060C12181E242A303682
+:104E2200ACFB0000000062FE00000000B239E43575
+:104E32008C22D5451C2ECB2E1145D83A4808BD3CB4
+:104E420028FC36FE20FE02F903F929FC30FE2AFC7A
+:104E52002BFC08F926FC6CFF1AFF6EFF6AFF64FF49
+:0A4E620027FC66FF2CFC5555555542
+:104E6C00FF0000000000983AF82AFF0000004700FD
+:104E7C00317503F7332312D714AEF8C716AC0612EC
+:104E8C00C5AC0416F643DD078B99A7A5B3EFF5C2A5
+:024E9C00C6D777
+:024FF400324940
+:0A4FF60031303A30353A303800000F
+:00000001FF
+
\ No newline at end of file
diff --git a/tags/2.19_SDK4(3rdNUP)/bsr.lmf b/tags/2.19_SDK4(3rdNUP)/bsr.lmf
new file mode 100644
index 0000000..f30684e
Binary files /dev/null and b/tags/2.19_SDK4(3rdNUP)/bsr.lmf differ
diff --git a/tags/2.19_SDK4(3rdNUP)/bsr_k0r.map b/tags/2.19_SDK4(3rdNUP)/bsr_k0r.map
new file mode 100644
index 0000000..85f15d5
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/bsr_k0r.map
@@ -0,0 +1,896 @@
+
+
+
+78K0R Linker W1.33 Date:19 Jan 2012 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)
+ 3D6AH byte(s) real data
+ 6215 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 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 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 008EFH CSEG
+ LDR_CODE loader 000CEH 00177H
+ LDR_CODE WDT 00245H 00000H
+ LDR_CODE i2c_mcu 00245H 00293H
+ LDR_CODE self_flash
+ 004D8H 00370H
+ LDR_CODE task_debug
+ 00848H 00000H
+ LDR_CODE task_status
+ 00848H 00075H
+ LDR_CODE hal 008BDH 000DCH
+ LDR_CODE util_funcs
+ 00999H 00024H
+ FSL_CODE 009BDH 00322H CSEG
+ FSL_CODE fsl_block_cmd
+ 009BDH 0002BH
+ FSL_CODE fsl_block_check
+ 009E8H 00013H
+ FSL_CODE fsl_common
+ 009FBH 0014FH
+ FSL_CODE fsl_reset
+ 00B4AH 00001H
+ FSL_CODE fsl_si_ibf
+ 00B4BH 00064H
+ FSL_CODE fsl_phySwap
+ 00BAFH 0004DH
+ FSL_CODE fsl_si_common
+ 00BFCH 00061H
+ FSL_CODE fsl_swap 00C5DH 00030H
+ FSL_CODE fsl_write
+ 00C8DH 00052H
+ @@LCODE 00CDFH 00277H CSEG
+ @@LCODE @cstart 00CDFH 0006DH
+ @@LCODE @imul 00D4CH 00011H
+ @@LCODE @lumul 00D5DH 0002BH
+ @@LCODE @isdiv 00D88H 00022H
+ @@LCODE @iudiv 00DAAH 0002DH
+ @@LCODE @isrem 00DD7H 00021H
+ @@LCODE @iurem 00DF8H 0002FH
+ @@LCODE @lsdiv 00E27H 00039H
+ @@LCODE @ludiv 00E60H 0003FH
+ @@LCODE @divuw 00E9FH 00034H
+ @@LCODE @ladd 00ED3H 0000FH
+ @@LCODE @llsh 00EE2H 0001BH
+ @@LCODE @lursh 00EFDH 0001FH
+ @@LCODE @iscmp 00F1CH 0000CH
+ @@LCODE @lband 00F28H 00014H
+ @@LCODE @bcdtob 00F3CH 0001AH
+* gap * 00F56H 000A0H
+ 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 02578H CSEG
+ ROM_CODE pm 0228CH 009A0H
+ ROM_CODE i2c_ctr 02C2CH 0005CH
+ ROM_CODE main 02C88H 00055H
+ ROM_CODE i2c_twl 02CDDH 00062H
+ ROM_CODE led 02D3FH 0024FH
+ ROM_CODE rtc 02F8EH 000E0H
+ ROM_CODE vreg_ctr 0306EH 0047DH
+ ROM_CODE vreg_twl 034EBH 000F9H
+ ROM_CODE adc 035E4H 00261H
+ ROM_CODE renge 03845H 00018H
+ ROM_CODE accero 0385DH 00155H
+ ROM_CODE sw 039B2H 00126H
+ ROM_CODE task_misc
+ 03AD8H 001E5H
+ ROM_CODE task_sys 03CBDH 00380H
+ ROM_CODE pedo_alg_thre_det2
+ 0403DH 004D4H
+ ROM_CODE led_cam 04511H 000C4H
+ ROM_CODE led_pow 045D5H 0016FH
+ ROM_CODE voltable 04744H 00000H
+ ROM_CODE pedo_lpf_coeff
+ 04744H 00000H
+ ROM_CODE kanaria_c
+ 04744H 00006H
+ ROM_CODE get_ei 0474AH 0000DH
+ ROM_CODE i2c_mcu-sub
+ 04757H 000ADH
+ @@BASE 04804H 00614H CSEG BASE
+ @@BASE loader 04804H 00000H
+ @@BASE pm 04804H 0003EH
+ @@BASE i2c_ctr 04842H 00170H
+ @@BASE main 049B2H 00000H
+ @@BASE magic 049B2H 00000H
+ @@BASE WDT 049B2H 00000H
+ @@BASE i2c_mcu 049B2H 000F2H
+ @@BASE i2c_twl 04AA4H 000D0H
+ @@BASE led 04B74H 00000H
+ @@BASE rtc 04B74H 0005DH
+ @@BASE vreg_ctr 04BD1H 00000H
+ @@BASE vreg_twl 04BD1H 00000H
+ @@BASE adc 04BD1H 00094H
+ @@BASE renge 04C65H 0016BH
+ @@BASE accero 04DD0H 00042H
+ @@BASE self_flash
+ 04E12H 00000H
+ @@BASE sw 04E12H 00000H
+ @@BASE task_debug
+ 04E12H 00000H
+ @@BASE task_misc
+ 04E12H 00000H
+ @@BASE task_sys 04E12H 00000H
+ @@BASE pedo_alg_thre_det2
+ 04E12H 00000H
+ @@BASE ini_VECT 04E12H 00006H
+ @@BASE task_status
+ 04E18H 00000H
+ @@BASE led_cam 04E18H 00000H
+ @@BASE led_pow 04E18H 00000H
+ @@BASE hal 04E18H 00000H
+ @@BASE batt_params
+ 04E18H 00000H
+ @@BASE voltable 04E18H 00000H
+ @@BASE pedo_lpf_coeff
+ 04E18H 00000H
+ @@BASE kanaria_c
+ 04E18H 00000H
+ @@BASE util_funcs
+ 04E18H 00000H
+ @@BASE i2c_mcu-sub
+ 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL @cstart 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL pm 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL i2c_ctr 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL main 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL i2c_twl 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL led 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL rtc 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL vreg_ctr 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL vreg_twl 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL adc 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL renge 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL accero 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL sw 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL task_misc
+ 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL task_sys 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL pedo_alg_thre_det2
+ 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL ini_VECT 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL led_cam 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL led_pow 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL batt_params
+ 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL voltable 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL pedo_lpf_coeff
+ 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL kanaria_c
+ 04E18H 00000H
+ @@CNSTL 04E18H 00000H CSEG PAGE64KP
+ @@CNSTL i2c_mcu-sub
+ 04E18H 00000H
+ @@CNSTL 04E18H 0000AH CSEG PAGE64KP
+ @@CNSTL @bcdtob 04E18H 0000AH
+ @@R_INIT 04E22H 0004AH CSEG UNIT64KP
+ @@R_INIT @cstart 04E22H 00000H
+ @@R_INIT loader 04E22H 00000H
+ @@R_INIT pm 04E22H 00000H
+ @@R_INIT i2c_ctr 04E22H 00000H
+ @@R_INIT main 04E22H 00000H
+ @@R_INIT magic 04E22H 00000H
+ @@R_INIT WDT 04E22H 00000H
+ @@R_INIT i2c_mcu 04E22H 00000H
+ @@R_INIT i2c_twl 04E22H 00000H
+ @@R_INIT led 04E22H 00000H
+ @@R_INIT rtc 04E22H 00000H
+ @@R_INIT vreg_ctr 04E22H 00000H
+ @@R_INIT vreg_twl 04E22H 00000H
+ @@R_INIT adc 04E22H 0000CH
+ @@R_INIT renge 04E2EH 00014H
+ @@R_INIT accero 04E42H 00000H
+ @@R_INIT self_flash
+ 04E42H 00000H
+ @@R_INIT sw 04E42H 00000H
+ @@R_INIT task_debug
+ 04E42H 00000H
+ @@R_INIT task_misc
+ 04E42H 00026H
+ @@R_INIT task_sys 04E68H 00000H
+ @@R_INIT pedo_alg_thre_det2
+ 04E68H 00000H
+ @@R_INIT ini_VECT 04E68H 00000H
+ @@R_INIT task_status
+ 04E68H 00000H
+ @@R_INIT led_cam 04E68H 00000H
+ @@R_INIT led_pow 04E68H 00004H
+ @@R_INIT hal 04E6CH 00000H
+ @@R_INIT batt_params
+ 04E6CH 00000H
+ @@R_INIT voltable 04E6CH 00000H
+ @@R_INIT pedo_lpf_coeff
+ 04E6CH 00000H
+ @@R_INIT kanaria_c
+ 04E6CH 00000H
+ @@R_INIT util_funcs
+ 04E6CH 00000H
+ @@R_INIT i2c_mcu-sub
+ 04E6CH 00000H
+ @@R_INIT @rom 04E6CH 00000H
+ @@R_INIS 04E6CH 00010H CSEG UNIT64KP
+ @@R_INIS @cstart 04E6CH 00000H
+ @@R_INIS loader 04E6CH 00000H
+ @@R_INIS pm 04E6CH 00002H
+ @@R_INIS i2c_ctr 04E6EH 00002H
+ @@R_INIS main 04E70H 00000H
+ @@R_INIS magic 04E70H 00000H
+ @@R_INIS WDT 04E70H 00000H
+ @@R_INIS i2c_mcu 04E70H 00000H
+ @@R_INIS i2c_twl 04E70H 00000H
+ @@R_INIS led 04E70H 00000H
+ @@R_INIS rtc 04E70H 00000H
+ @@R_INIS vreg_ctr 04E70H 00000H
+ @@R_INIS vreg_twl 04E70H 00000H
+ @@R_INIS adc 04E70H 00000H
+ @@R_INIS renge 04E70H 00000H
+ @@R_INIS accero 04E70H 00000H
+ @@R_INIS self_flash
+ 04E70H 00000H
+ @@R_INIS sw 04E70H 00000H
+ @@R_INIS task_debug
+ 04E70H 00000H
+ @@R_INIS task_misc
+ 04E70H 00000H
+ @@R_INIS task_sys 04E70H 00002H
+ @@R_INIS pedo_alg_thre_det2
+ 04E72H 00006H
+ @@R_INIS ini_VECT 04E78H 00000H
+ @@R_INIS task_status
+ 04E78H 00000H
+ @@R_INIS led_cam 04E78H 00002H
+ @@R_INIS led_pow 04E7AH 00002H
+ @@R_INIS hal 04E7CH 00000H
+ @@R_INIS batt_params
+ 04E7CH 00000H
+ @@R_INIS voltable 04E7CH 00000H
+ @@R_INIS pedo_lpf_coeff
+ 04E7CH 00000H
+ @@R_INIS kanaria_c
+ 04E7CH 00000H
+ @@R_INIS util_funcs
+ 04E7CH 00000H
+ @@R_INIS i2c_mcu-sub
+ 04E7CH 00000H
+ @@R_INIS @rom 04E7CH 00000H
+ @@RLINIT 04E7CH 00000H CSEG UNIT64KP
+ @@RLINIT loader 04E7CH 00000H
+ @@RLINIT pm 04E7CH 00000H
+ @@RLINIT i2c_ctr 04E7CH 00000H
+ @@RLINIT main 04E7CH 00000H
+ @@RLINIT magic 04E7CH 00000H
+ @@RLINIT WDT 04E7CH 00000H
+ @@RLINIT i2c_mcu 04E7CH 00000H
+ @@RLINIT i2c_twl 04E7CH 00000H
+ @@RLINIT led 04E7CH 00000H
+ @@RLINIT rtc 04E7CH 00000H
+ @@RLINIT vreg_ctr 04E7CH 00000H
+ @@RLINIT vreg_twl 04E7CH 00000H
+ @@RLINIT adc 04E7CH 00000H
+ @@RLINIT renge 04E7CH 00000H
+ @@RLINIT accero 04E7CH 00000H
+ @@RLINIT self_flash
+ 04E7CH 00000H
+ @@RLINIT sw 04E7CH 00000H
+ @@RLINIT task_debug
+ 04E7CH 00000H
+ @@RLINIT task_misc
+ 04E7CH 00000H
+ @@RLINIT task_sys 04E7CH 00000H
+ @@RLINIT pedo_alg_thre_det2
+ 04E7CH 00000H
+ @@RLINIT ini_VECT 04E7CH 00000H
+ @@RLINIT task_status
+ 04E7CH 00000H
+ @@RLINIT led_cam 04E7CH 00000H
+ @@RLINIT led_pow 04E7CH 00000H
+ @@RLINIT hal 04E7CH 00000H
+ @@RLINIT batt_params
+ 04E7CH 00000H
+ @@RLINIT voltable 04E7CH 00000H
+ @@RLINIT pedo_lpf_coeff
+ 04E7CH 00000H
+ @@RLINIT kanaria_c
+ 04E7CH 00000H
+ @@RLINIT util_funcs
+ 04E7CH 00000H
+ @@RLINIT i2c_mcu-sub
+ 04E7CH 00000H
+ @@RLINIT @rom 04E7CH 00000H
+ @@CODEL 04E7CH 00000H CSEG
+ @@CODEL pm 04E7CH 00000H
+ @@CODEL i2c_ctr 04E7CH 00000H
+ @@CODEL main 04E7CH 00000H
+ @@CODEL magic 04E7CH 00000H
+ @@CODEL i2c_twl 04E7CH 00000H
+ @@CODEL led 04E7CH 00000H
+ @@CODEL rtc 04E7CH 00000H
+ @@CODEL vreg_ctr 04E7CH 00000H
+ @@CODEL vreg_twl 04E7CH 00000H
+ @@CODEL adc 04E7CH 00000H
+ @@CODEL renge 04E7CH 00000H
+ @@CODEL accero 04E7CH 00000H
+ @@CODEL sw 04E7CH 00000H
+ @@CODEL task_misc
+ 04E7CH 00000H
+ @@CODEL task_sys 04E7CH 00000H
+ @@CODEL pedo_alg_thre_det2
+ 04E7CH 00000H
+ @@CODEL ini_VECT 04E7CH 00000H
+ @@CODEL led_cam 04E7CH 00000H
+ @@CODEL led_pow 04E7CH 00000H
+ @@CODEL batt_params
+ 04E7CH 00000H
+ @@CODEL voltable 04E7CH 00000H
+ @@CODEL pedo_lpf_coeff
+ 04E7CH 00000H
+ @@CODEL kanaria_c
+ 04E7CH 00000H
+ @@CODEL i2c_mcu-sub
+ 04E7CH 00000H
+ @@LCODEL 04E7CH 00022H CSEG
+ @@LCODEL abs 04E7CH 00008H
+ @@LCODEL memcpy_n 04E84H 0001AH
+* gap * 04E9EH 00156H
+ 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 00062H DSEG SADDRP
+ @@DATS @cstart FFE30H 00000H
+ @@DATS loader FFE30H 00000H
+ @@DATS pm FFE30H 00016H
+ @@DATS i2c_ctr FFE46H 00004H
+ @@DATS main FFE4AH 00000H
+ @@DATS magic FFE4AH 00000H
+ @@DATS WDT FFE4AH 00000H
+ @@DATS i2c_mcu FFE4AH 00008H
+ @@DATS i2c_twl FFE52H 00000H
+ @@DATS led FFE52H 00006H
+ @@DATS rtc FFE58H 00000H
+ @@DATS vreg_ctr FFE58H 00004H
+ @@DATS vreg_twl FFE5CH 00000H
+ @@DATS adc FFE5CH 0000AH
+ @@DATS renge FFE66H 00002H
+ @@DATS accero FFE68H 00002H
+ @@DATS self_flash
+ FFE6AH 00000H
+ @@DATS sw FFE6AH 0000CH
+ @@DATS task_debug
+ FFE76H 00000H
+ @@DATS task_misc
+ FFE76H 00004H
+ @@DATS task_sys FFE7AH 00002H
+ @@DATS pedo_alg_thre_det2
+ FFE7CH 0000EH
+ @@DATS ini_VECT FFE8AH 00000H
+ @@DATS task_status
+ FFE8AH 00002H
+ @@DATS led_cam FFE8CH 00002H
+ @@DATS led_pow FFE8EH 00004H
+ @@DATS hal FFE92H 00000H
+ @@DATS batt_params
+ FFE92H 00000H
+ @@DATS voltable FFE92H 00000H
+ @@DATS pedo_lpf_coeff
+ FFE92H 00000H
+ @@DATS kanaria_c
+ FFE92H 00000H
+ @@DATS util_funcs
+ FFE92H 00000H
+ @@DATS i2c_mcu-sub
+ FFE92H 00000H
+ @@DATS @rom FFE92H 00000H
+ @@BITS FFE92H 00006H BSEG
+ @@BITS @cstart FFE92H.0 00000H.0
+ @@BITS loader FFE92H.0 00000H.0
+ @@BITS pm FFE92H.0 00001H.1
+ @@BITS i2c_ctr FFE93H.1 00000H.0
+ @@BITS main FFE93H.1 00000H.1
+ @@BITS magic FFE93H.2 00000H.0
+ @@BITS WDT FFE93H.2 00000H.0
+ @@BITS i2c_mcu FFE93H.2 00000H.4
+ @@BITS i2c_twl FFE93H.6 00000H.0
+ @@BITS led FFE93H.6 00000H.4
+ @@BITS rtc FFE94H.2 00000H.3
+ @@BITS vreg_ctr FFE94H.5 00000H.1
+ @@BITS vreg_twl FFE94H.6 00000H.0
+ @@BITS adc FFE94H.6 00000H.4
+ @@BITS renge FFE95H.2 00000H.2
+ @@BITS accero FFE95H.4 00000H.0
+ @@BITS self_flash
+ FFE95H.4 00000H.0
+ @@BITS sw FFE95H.4 00000H.1
+ @@BITS task_debug
+ FFE95H.5 00000H.0
+ @@BITS task_misc
+ FFE95H.5 00000H.3
+ @@BITS task_sys FFE96H.0 00000H.0
+ @@BITS pedo_alg_thre_det2
+ FFE96H.0 00000H.2
+ @@BITS ini_VECT FFE96H.2 00000H.0
+ @@BITS task_status
+ FFE96H.2 00000H.0
+ @@BITS led_cam FFE96H.2 00000H.1
+ @@BITS led_pow FFE96H.3 00000H.0
+ @@BITS hal FFE96H.3 00000H.6
+ @@BITS batt_params
+ FFE97H.1 00000H.0
+ @@BITS voltable FFE97H.1 00000H.0
+ @@BITS pedo_lpf_coeff
+ FFE97H.1 00000H.0
+ @@BITS kanaria_c
+ FFE97H.1 00000H.0
+ @@BITS util_funcs
+ FFE97H.1 00000H.0
+ @@BITS i2c_mcu-sub
+ FFE97H.1 00000H.0
+* gap * FFE98H 0003CH
+ @@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/tags/2.19_SDK4(3rdNUP)/bsr_mcu.dr b/tags/2.19_SDK4(3rdNUP)/bsr_mcu.dr
new file mode 100644
index 0000000..81aeecc
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/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/tags/2.19_SDK4(3rdNUP)/bsr_system.h b/tags/2.19_SDK4(3rdNUP)/bsr_system.h
new file mode 100644
index 0000000..bb6105f
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/bsr_system.h
@@ -0,0 +1,67 @@
+#ifndef __bsr_system__
+#define __bsr_system__
+
+// 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_SHIROBAKO,
+ MODEL_JIKKI_NOBATT,
+ MODEL_CAPTURE_BOX,
+ MODEL_ISBAKO, // Asystem_status.model MODEL_JIKKI ɂĂ̂Ŗgp
+ MODEL_RESERVED3,
+};
+
+enum family_
+{
+ FAMILY_CTR,
+ FAMILY_SPFL,
+ FAMILY_SHRIMP
+};
+
+// ^XNVXȅԏȂ
+typedef struct _system_status_
+{
+ enum pwr_state_ pwr_state;
+ enum poweron_reason_ poweron_reason;
+ unsigned char reboot:1;
+// unsigned char info_fullcolor:1;
+ unsigned char captureBox:1; // Lv` SDKɂ͎@ƕԂ
+ unsigned char taikendai:1;
+ unsigned char taikendai_nbd:1;
+ unsigned char is_dev:1;
+ enum model_ model;
+ enum family_ family;
+}system_status_;
+
+extern bit force_off;
+
+extern system_status_ system_status;
+
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/config.h b/tags/2.19_SDK4(3rdNUP)/config.h
new file mode 100644
index 0000000..28cf237
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/config.h
@@ -0,0 +1,101 @@
+#ifndef __config__
+#define __config__
+/*
+
+ $Id: config.h 418 2011-09-22 01:35:37Z n2232 $
+
+*/
+
+#define MCU_VER_MAJOR 0x02
+#define MCU_VER_MINOR 0x19
+
+
+// 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
+
+#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ɑ̌gpǂƁAA_v^ȂƓd炸ɌɎxႪ̂ňꎞt@[
+//#define _RVD_
+// fobKA^b`Ƀ^[QbgZbgœdĂ܂̂
+
+
+// ̎́CȂƑ̌̐YłȂˁI
+#ifdef _TAIKENDAI_SEISAN_SPECIAL_
+#define MCU_VER_MINOR 0x80
+#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/tags/2.19_SDK4(3rdNUP)/fsl.h b/tags/2.19_SDK4(3rdNUP)/fsl.h
new file mode 100644
index 0000000..0e806b5
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/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/tags/2.19_SDK4(3rdNUP)/fsl_user.h b/tags/2.19_SDK4(3rdNUP)/fsl_user.h
new file mode 100644
index 0000000..1018689
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/fsl_user.h
@@ -0,0 +1,113 @@
+/*==============================================================================================*/
+/* Project = Selfprogramming library for 78K0R/Ix3/Kx3-L Single Voltage SST (MF2) Flash */
+/* Module = fsl_user.h */
+/* Version = V1.01 */
+/* Date = 28.03.2008 11:45:55 */
+/*==============================================================================================*/
+/* COPYRIGHT */
+/*==============================================================================================*/
+/* Copyright (c) 2007 by NEC Electronics (Europe) GmbH, */
+/* a company of the NEC Electronics Corporation */
+/*==============================================================================================*/
+/* Purpose: */
+/* user configurable constant/macros of the selfprogramming library */
+/* */
+/*==============================================================================================*/
+/* */
+/* Warranty Disclaimer */
+/* */
+/* Because the Product(s) is licensed free of charge, there is no warranty of any kind */
+/* whatsoever and expressly disclaimed and excluded by NEC, either expressed or implied, */
+/* including but not limited to those for non-infringement of intellectual property, */
+/* merchantability and/or fitness for the particular purpose. NEC shall not have any obligation */
+/* to maintain, service or provide bug fixes for the supplied Product(s) and/or the Application.*/
+/* */
+/* Each User is solely responsible for determining the appropriateness of using the Product(s) */
+/* and assumes all risks associated with its exercise of rights under this Agreement, */
+/* including, but not limited to the risks and costs of program errors, compliance with */
+/* applicable laws, damage to or loss of data, programs or equipment, and unavailability or */
+/* interruption of operations. */
+/* */
+/* Limitation of Liability */
+/* */
+/* In no event shall NEC be liable to the User for any incidental, consequential, indirect, */
+/* or punitive damage (including but not limited to lost profits) regardless of whether */
+/* such liability is based on breach of contract, tort, strict liability, breach of warranties, */
+/* failure of essential purpose or otherwise and even if advised of the possibility of */
+/* such damages. NEC shall not be liable for any services or products provided by third party */
+/* vendors, developers or consultants identified or referred to the User by NEC in connection */
+/* with the Product(s) and/or the Application. */
+/* */
+/*==============================================================================================*/
+/* Environment: PM plus (V6.30) */
+/* RA78K0(V1.20) */
+/* CC78K0(V2.00) */
+/*==============================================================================================*/
+
+
+#ifndef __FSL_USER_H_INCLUDED
+#define __FSL_USER_H_INCLUDED
+
+
+/*==============================================================================================*/
+/* constant definitions */
+/*==============================================================================================*/
+
+
+/* specify the CPU frequency in [Hz], only 2MHz....20MHz allowed */
+#define FSL_SYSTEM_FREQUENCY 8000000
+
+/* define whether low-voltage mode is used or not */
+/* #define FSL_LOW_VOLTAGE_MODE */
+
+/* size of the common data buffer expressed in [bytes] */
+/* the data buffer is used for data-exchange between the firmware and the selflib. */
+//#define FSL_DATA_BUFFER_SIZE 256
+#define FSL_DATA_BUFFER_SIZE 0
+
+
+/* customizable interrupt controller configuration during selfprogramming period */
+/* Bit --7-------6-------5-------4-------3-------2-------1-------0---------------------- */
+/* MK0L: PMK5 PMK4 PMK3 PMK2 PMK1 PMK0 LVIMK WDTIMK */
+/* MK0H: SREMK0 SRMK0* STMK0* DMAMK1 DMAMK0 SREMK3 SRMK3 STMK3 */
+/* MK1L: TMMK03 TMMK02 TMMK01 TMMK00 IICMK0 SREMK1 SRMK1 STMK1* */
+/* MK1H: TMMK04 SREMK2 SRMK2 STMK2* KRMK RTCIMK RTCMK ADMK */
+/* MK2L: PMK10 PMK9 PMK8 PMK7 PMK6 TMMK07 TMMK06 TMMK05 */
+/* MK2H: 1 1 1 1 1 1 1 PMK11 */
+/*------------------------------------------------------------------------------------------ */
+/* */
+/* Examples: */
+/* ========= */
+/*#define FSL_MK0L_MASK 0xF7 -> allow INTP1 interrupt during selfprogramming */
+/*#define FSL_MK0H_MASK 0xEF -> allow DMA1 interrupt during selfprogramming */
+/*#define FSL_MK1L_MASK 0xBF -> allow TM02 interrupt during selfprogramming */
+/*#define FSL_MK1H_MASK 0xFF -> all interrupts disabled during selfprogramming */
+/*#define FSL_MK2L_MASK 0xF7 -> allow INTP6 interrupt during selfprogramming */
+/*#define FSL_MK2H_MASK 0xFF -> all interrupts disabled during selfprogramming */
+/*------------------------------------------------------------------------------------------ */
+#define FSL_MK0L_MASK 0xFF /* all interrupts disabled during selfprogramming */
+#define FSL_MK0H_MASK 0xFF /* all interrupts disabled during selfprogramming */
+#define FSL_MK1L_MASK 0xFF /* all interrupts disabled during selfprogramming */
+#define FSL_MK1H_MASK 0xFF /* all interrupts disabled during selfprogramming */
+#define FSL_MK2L_MASK 0xFF /* all interrupts disabled during selfprogramming */
+#define FSL_MK2H_MASK 0xFF /* all interrupts disabled during selfprogramming */
+
+
+/* FLMD0 control bit */
+#ifndef _WIN32
+#define FSL_FLMD0_HIGH {BECTL.7 = 1;}
+#define FSL_FLMD0_LOW {BECTL.7 = 0;}
+#else
+#define FSL_FLMD0_HIGH {BECTL_7 = 1;}
+#define FSL_FLMD0_LOW {BECTL_7 = 0;}
+#endif
+
+
+/*----------------------------------------------------------------------------------------------*/
+/* switch interrupt backu functionality ON/OFF using #define/#undef */
+/*----------------------------------------------------------------------------------------------*/
+/* #define FSL_INT_BACKUP */
+#undef FSL_INT_BACKUP
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/get_ei.asm b/tags/2.19_SDK4(3rdNUP)/get_ei.asm
new file mode 100644
index 0000000..29f4a6e
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/get_ei.asm
@@ -0,0 +1,26 @@
+$PROCESSOR ( 9F0104 )
+
+PUBLIC _get_ei
+;
+; PSWEIǂݏo܂B
+;
+
+
+
+ROM_CODE CSEG BASE
+
+_get_ei:
+ set1 CY
+ and1 CY,PSW.7 ; check IE bit. if 0, all interrupts are disabled.
+ bnc $ie_dis
+ mov C,#01h
+ ret
+
+ie_dis:
+ mov C,#00h
+ ret
+
+
+ end
+
+
diff --git a/tags/2.19_SDK4(3rdNUP)/hal.c b/tags/2.19_SDK4(3rdNUP)/hal.c
new file mode 100644
index 0000000..f51354f
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/hal.c
@@ -0,0 +1,182 @@
+/* ========================================================
+ ȈՃeXĝ߂HALC
+
+ $Id$
+ ======================================================== */
+#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/tags/2.19_SDK4(3rdNUP)/hal.h b/tags/2.19_SDK4(3rdNUP)/hal.h
new file mode 100644
index 0000000..245be75
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/hal.h
@@ -0,0 +1,16 @@
+#ifndef _hal_h_
+#define _hal_h_
+
+
+extern bit PM_EXTDC_n;
+extern bit BT_IN_CHG_n;
+extern bit SW_POW_n;
+extern bit SW_HOME_n;
+extern bit SW_WIFI_n;
+extern bit SHELL_OPEN;
+
+// ========================================================
+void hal_update();
+void hal_reset();
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/hoge.bin b/tags/2.19_SDK4(3rdNUP)/hoge.bin
new file mode 100644
index 0000000..1f98b4a
Binary files /dev/null and b/tags/2.19_SDK4(3rdNUP)/hoge.bin differ
diff --git a/tags/2.19_SDK4(3rdNUP)/i2c_ctr.c b/tags/2.19_SDK4(3rdNUP)/i2c_ctr.c
new file mode 100644
index 0000000..8f73a6a
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/i2c_ctr.c
@@ -0,0 +1,310 @@
+/* ========================================================
+ 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
+
+#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 = IICS1; // 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ɕsN肦
+ 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
+
+ P20 &= ~0x3;
+
+ 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;
+
+ PM20 &= ~0x3; /* set clock pin for IICA */
+
+ state = IIC_IDLE;
+}
+
+
+
+/********************************************//**
+
+ ***********************************************/
+void IIC_ctr_Stop( void )
+{
+ IICE = 0; /* IICA disable */
+ IICAEN = 0;
+}
+
+
+
diff --git a/tags/2.19_SDK4(3rdNUP)/i2c_ctr.h b/tags/2.19_SDK4(3rdNUP)/i2c_ctr.h
new file mode 100644
index 0000000..16234ff
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/i2c_ctr.h
@@ -0,0 +1,210 @@
+#ifndef _MDSERIAL_A_
+#define _MDSERIAL_A_
+
+
+/* IIC operation enable (IICE0) */
+#define IIC0_OPERATION 0x80
+#define IIC0_OPERATION_DISABLE 0x00 /* stop operation */
+#define IIC0_OPERATION_ENABLE 0x80 /* enable operation */
+
+/* Exit from communications (LREL0) */
+#define IIC0_COMMUNICATION 0x40
+#define IIC0_COMMUNICATION_NORMAL 0x00 /* normal operation */
+#define IIC0_COMMUNICATION_EXIT 0x40 /* exit from current communication */
+
+/* Wait cancellation (WREL0) */
+#define IIC0_WAITCANCEL 0x20
+#define IIC0_WAIT_NOTCANCEL 0x00 /* do not cancel wait */
+#define IIC0_WAIT_CANCEL 0x20 /* cancel wait */
+
+/* Generation of interrupt when stop condition (SPIE0) */
+#define IIC0_STOPINT 0x10
+#define IIC0_STOPINT_DISABLE 0x00 /* disable */
+#define IIC0_STOPINT_ENABLE 0x10 /* enable */
+
+/* Wait and interrupt generation (WTIM0) */
+#define IIC0_WAITINT 0x08
+#define IIC0_WAITINT_CLK8FALLING 0x00 /* generate at the eighth clocks falling edge */
+#define IIC0_WAITINT_CLK9FALLING 0x08 /* generated at the ninth clocks falling edge */
+
+/* Acknowledgement control (ACKE0) */
+#define IIC0_ACK 0x04
+#define IIC0_ACK_DISABLE 0x00 /* enable acknowledgement */
+#define IIC0_ACK_ENABLE 0x04 /* disable acknowledgement */
+
+/* Start condition trigger (STT0) */
+#define IIC0_STARTCONDITION 0x02
+#define IIC0_START_NOTGENERATE 0x00 /* do not generate start condition */
+#define IIC0_START_GENERATE 0x02 /* generate start condition */
+
+/* Stop condition trigger (SPT0) */
+#define IIC0_STOPCONDITION 0x01
+#define IIC0_STOP_NOTGENERATE 0x00 /* do not generate stop condition */
+#define IIC0_STOP_GENERATE 0x01 /* generate stop condition */
+
+/*
+ IIC Status Register 0 (IICS0)
+*/
+/* Master device status (MSTS0) */
+#define IIC0_MASTERSTATUS 0x80
+#define IIC0_STATUS_NOTMASTER 0x00 /* slave device status or communication standby status */
+#define IIC0_STATUS_MASTER 0x80 /* master device communication status */
+
+/* Detection of arbitration loss (ALD0) */
+#define IIC0_ARBITRATION 0x40
+#define IIC0_ARBITRATION_NO 0x00 /* arbitration win or no arbitration */
+#define IIC0_ARBITRATION_LOSS 0x40 /* arbitration loss */
+
+/* Detection of extension code reception (EXC0) */
+#define IIC0_EXTENSIONCODE 0x20
+#define IIC0_EXTCODE_NOT 0x00 /* extension code not received */
+#define IIC0_EXTCODE_RECEIVED 0x20 /* extension code received */
+
+/* Detection of matching addresses (COI0) */
+#define IIC0_ADDRESSMATCH 0x10
+#define IIC0_ADDRESS_NOTMATCH 0x00 /* addresses do not match */
+#define IIC0_ADDRESS_MATCH 0x10 /* addresses match */
+
+/* Detection of transmit/receive status (TRC0) */
+#define IIC0_STATUS 0x08
+#define IIC0_STATUS_RECEIVE 0x00 /* receive status */
+#define IIC0_STATUS_TRANSMIT 0x08 /* transmit status */
+
+/* Detection of acknowledge signal (ACKD0) */
+#define IIC0_ACKDETECTION 0x04
+#define IIC0_ACK_NOTDETECTED 0x00 /* ACK signal was not detected */
+#define IIC0_ACK_DETECTED 0x04 /* ACK signal was detected */
+
+/* Detection of start condition (STD0) */
+#define IIC0_STARTDETECTION 0x02
+#define IIC0_START_NOTDETECTED 0x00 /* start condition not detected */
+#define IIC0_START_DETECTED 0x02 /* start condition detected */
+
+/* Detection of stop condition (SPD0) */
+#define IIC0_STOPDETECTION 0x01
+#define IIC0_STOP_NOTDETECTED 0x00 /* stop condition not detected */
+#define IIC0_STOP_DETECTED 0x01 /* stop condition detected */
+
+/*
+ IIC Flag Register 0 (IICF0)
+*/
+/* STT0 clear flag (STCF) */
+#define IIC0_STARTFLAG 0x80
+#define IIC0_STARTFLAG_GENERATE 0x00 /* generate start condition */
+#define IIC0_STARTFLAG_UNSUCCESSFUL 0x80 /* start condition generation unsuccessful */
+
+/* IIC bus status flag (IICBSY) */
+#define IIC0_BUSSTATUS 0x40
+#define IIC0_BUS_RELEASE 0x00 /* bus release status */
+#define IIC0_BUS_COMMUNICATION 0x40 /* bus communication status */
+
+/* Initial start enable trigger (STCEN) */
+#define IIC0_STARTWITHSTOP 0x02
+#define IIC0_START_WITHSTOP 0x00 /* generation of a start condition without detecting a stop condition */
+#define IIC0_START_WITHOUTSTOP 0x02 /* generation of a start condition upon detection of a stop condition */
+
+/* Communication reservation function disable bit (IICRSV) */
+#define IIC0_RESERVATION 0x01
+#define IIC0_RESERVATION_ENABLE 0x00 /* enable communication reservation */
+#define IIC0_RESERVATION_DISABLE 0x01 /* disable communication reservation */
+
+/*
+ IIC clock selection register 0 (IICCL0)
+*/
+#define IICCL0_INITIALVALUE 0x00
+/* Detection of SCL0 pin level (CLD0) */
+#define IIC0_SCLLEVEL 0x20
+#define IIC0_SCL_LOW 0x00 /* clock line at low level */
+#define IIC0_SCL_HIGH 0x20 /* clock line at high level */
+
+/* Detection of SDA0 pin level (DAD0) */
+#define IIC0_SDALEVEL 0x10
+#define IIC0_SDA_LOW 0x00 /* data line at low level */
+#define IIC0_SDA_HIGH 0x10 /* data line at high level */
+
+/* Operation mode switching (SMC0) */
+#define IIC0_OPERATIONMODE 0x08
+#define IIC0_MODE_STANDARD 0x00 /* operates in standard mode */
+#define IIC0_MODE_HIGHSPEED 0x08 /* operates in high-speed mode */
+
+/* Digital filter operation control (DFC0) */
+#define IIC0_DIGITALFILTER 0x04
+#define IIC0_FILTER_OFF 0x00 /* digital filter off */
+#define IIC0_FILTER_ON 0x04 /* digital filter on */
+
+/* Operation mode switching (CL01, CL00) */
+#define IIC0_CLOCKSELECTION 0x03
+
+/* Combine of (SMC0, CL01, CL00)*/
+#define IIC0_CLOCK0 0x00
+#define IIC0_CLOCK1 0x01
+#define IIC0_CLOCK2 0x02
+#define IIC0_CLOCK3 0x03
+#define IIC0_CLOCK4 0x08
+#define IIC0_CLOCK5 0x09
+#define IIC0_CLOCK6 0x0a
+#define IIC0_CLOCK7 0x0b
+
+/*
+ IIC function expansion register 0 (IICX0)
+*/
+/* IIC clock expension (CLX0) */
+#define IIC0_CLOCKEXPENSION 0x01
+#define IIC0_EXPENSION0 0x00
+#define IIC0_EXPENSION1 0x01
+
+/* Operation clock (CLX0, SMC0, CL01, CL00)
+ | IIC0_EXPENSION0 | IIC0_EXPENSION1 |
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK0 | fprs/2 | prohibited | selection clock(fw)
+ | fprs/88 | | transfer clock
+ | normal | | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK1 | fprs/2 | prohibited | selection clock(fw)
+ | fprs/172 | | transfer clock
+ | normal | | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK2 | fprs/2 | prohibited | selection clock(fw)
+ | fprs/344 | | transfer clock
+ | normal | | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK3 |prohibited/fexscl0 | prohibited | selection clock(fw)
+ | fw/66 | | transfer clock
+ | normal | | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK4 | fprs/2 | fprs/2 | selection clock(fw)
+ | fprs/48 | fprs/24 | transfer clock
+ | high speed | high speed | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK5 | fprs/2 | fprs/2 | selection clock(fw)
+ | fprs/48 | fprs/24 | transfer clock
+ | high speed | high speed | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK6 | fprs/4 | fprs/4 | selection clock(fw)
+ | fprs/96 | fprs/48 | transfer clock
+ | high speed | high speed | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK7 |prohibited/fexscl0 | prohibited | selection clock(fw)
+ | fw/18 | | transfer clock
+ | high speed | | mode
+------------|-------------------|-------------------|----------------------
+*/
+
+#define ADDRESS_COMPLETE 0x80
+#define IIC_MASTER_FLAG_CLEAR 0x00
+
+/******************************************************************************
+ * Macro define
+ ******************************************************************************/
+
+
+
+/******************************************************************************
+ * Function define
+ ******************************************************************************/
+
+void IIC_ctr_Init( void );
+void IIC_ctr_Stop( void );
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/i2c_mcu-sub.c b/tags/2.19_SDK4(3rdNUP)/i2c_mcu-sub.c
new file mode 100644
index 0000000..dde1f10
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/i2c_mcu-sub.c
@@ -0,0 +1,113 @@
+/* ========================================================
+ Ȉ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
+ ***********************************************/
+i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat )
+{
+ u8 pm_reg_original;
+ u8 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( dat != 0 ) // ނ̂0`FbNȂ
+ {
+ // 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 & 0x7C ) != 0x00 )
+ {
+ return( I2C_ERR_OK );
+ }
+
+ // else {
+ return iic_mcu_codec_write_low( CODEC_REG_PM, pm_reg_original );
+ // gCȂǂ͖
+ }
+ return( I2C_ERR_OK );
+}
+
+
+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
+ // re-stŃ_~[Cg
+ {
+ 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 ); // ł悢
+ }
+
+ iic_mcu_send_sp( );
+ iic_mcu_busy = false;
+ return( I2C_ERR_OK );
+}
+
+
diff --git a/tags/2.19_SDK4(3rdNUP)/i2c_mcu.c b/tags/2.19_SDK4(3rdNUP)/i2c_mcu.c
new file mode 100644
index 0000000..50916e0
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/i2c_mcu.c
@@ -0,0 +1,652 @@
+/* ========================================================
+ ȈI2CiytFgpjʐM
+ de JHL cJZ
+ '09 Feb -
+ $Id$
+ ======================================================== */
+#ifndef _WIN32
+#pragma sfr
+#pragma di
+#pragma ei
+#pragma nop
+#pragma inline // memcpy()CCWJ(̕I)
+#endif
+
+#include "incs_loader.h"
+#include "i2c_mcu.h"
+#include "loader.h"
+#include "util_funcs.h"
+
+#include "i2c_mcu_sub.h"
+
+
+
+// ========================================================
+// WX^̃rbg
+// vtBbNXbAꕔ̃rbgWX^ɂԂ邽...
+// SMR0n
+#define bCKS0 ( 1 << 15 )
+#define bCCS0 ( 1 << 14 )
+#define bSTS0 ( 1 << 8 )
+#define bSIS0 ( 1 << 6 )
+#define bMD0n2 ( 1 << 2 )
+#define bMD0n1 ( 1 << 1 )
+#define bMD0n0 ( 1 << 0 )
+#define bSMR0n_FIXEDBIT ( 1 << 5 )
+
+// SSR0n
+#define bit_TSF0 6
+#define PEF0 ( 1 << 1 )
+
+// SIR0n
+#define PECT0 ( 1 << 1 )
+
+// SCR0n
+#define TXE0 ( 1 << 15 )
+#define RXE0 ( 1 << 14 )
+#define SLC02 4
+#define DLS02 0
+#define TSF0 ( 1 << 6 )
+
+// SOn
+#define TAUS_MASK 0x0B0B;
+
+// DMCn
+#define DRS ( 1 << 6 )
+
+
+
+
+// ========================================================
+static void iic_mcu_send_st( );
+
+// *sub炵ĂȂ
+void iic_mcu_send_re_st( );
+void iic_mcu_send_sp( );
+i2c_err iic_mcu_send_a_byte( u8 );
+i2c_err iic_mcu_call_slave( u8 slave );
+
+
+// ========================================================
+bit iic_mcu_wo_dma;
+volatile bit iic_mcu_busy;
+static volatile bit iic_mcu_initialized;
+
+
+static u8 iic_send_work[4];
+static u8 *p_iic_send_wo_dma_dat;
+static u8 iic_send_wo_dma_len;
+
+// f[^G[iROHMxZTjgĈ
+/// Ƃ肠ADMAgp}`oCgCg ̎ɂ@\Ȃ
+static u8 last_slave, last_reg_adrs, last_size;
+
+i2c_err iic_mcu_result; // ꕶ[h̎̓f[^ԂB
+
+#ifdef i2c_timeout_test
+extern bit i2c_mcu_time_out_error;
+#endif
+
+
+
+/********************************************//**
+
+ ***********************************************/
+void nop8()
+{
+ // ɗ call 3clk, return 6clk
+}
+
+
+/********************************************//**
+ ̒ʐMÎ҂B
+
+ ^CAEgL
+ ***********************************************/
+static i2c_err iic_mcu_wait_free()
+{
+ u16 tot = 0;
+
+ iic_mcu_start( );
+ while( 1 )
+ {
+ DI_wt_chk();
+ if( !iic_mcu_busy )
+ {
+ iic_mcu_busy = true;
+ EI();
+ break;
+ }
+ EI();
+ if( ++tot == 0 )
+ {
+#ifdef i2c_timeout_test
+ i2c_mcu_time_out_error = true;
+#endif
+ return( I2C_ERR_TIMEOUT );
+ }
+ }
+ return( I2C_ERR_OK );
+}
+
+
+
+/********************************************//**
+ X[u w1x [h
+
+ Ԓlf[^̂̂łB
+
+ G[R[h iic_mcu_result ɓĂ܂
+ ***********************************************/
+u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs )
+{
+ u8 dat;
+
+ iic_mcu_result = iic_mcu_read( SLA, adrs, 1, &dat );
+
+ return ( dat );
+}
+
+
+
+/********************************************//**
+ X[ũ[h
+
+ yz
+
+ X[uEFCgRfBVoƂ͋֎~łB
+
+ ̏ꍇłG[oȂǂł܂
+ ***********************************************/
+i2c_err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8 * dest )
+{
+
+#if 1
+ if( iic_mcu_wait_free() != I2C_ERR_OK )
+ {
+ // (^CAEg)
+ return( I2C_ERR_TIMEOUT );
+ }
+#else
+ // gpȂA
+#endif
+
+ // X^[gRfBVƃX[ǔĂяoAWX^AhX̑M
+ if( iic_mcu_call_slave( slave ) != 0 )
+ {
+ iic_mcu_busy = false;
+ return ( I2C_ERR_NOSLAVE );
+ }
+
+ // WX^AhX̑M
+ iic_mcu_send_a_byte( adrs ); // I܂ŋAĂȂ
+
+ // NAKAĂȂO
+
+ // f[^M //
+ iic_mcu_send_re_st( ); // X^[gRfBV
+ iic_mcu_send_a_byte( slave | 0x01 ); // M܂Ŗ߂Ă܂B
+
+ // f[^M
+ ST0 = 0x0004; // M[hɐݒς̂ŃWbN~
+ SCR02 = RXE0 | 1 << SLC02 | 7 << DLS02; // Mݒ
+ SS0 = 0x0004; // ʐMҋ@
+
+ do
+ {
+ if( len == 1 )
+ {
+ SOE0 = 0x0000; // ŌNAK
+ }
+ IICIF10 = 0;
+ SIO10 = 0xFF; // _~[f[^ƎMJn
+ while( IICIF10 == 0 )
+ {;} // M҂
+
+ *dest = SIO10;
+ dest++;
+ len--;
+ }
+ while( len != 0 );
+
+ 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^[gRfBVs
+
+ \tgEFA
+ ***********************************************/
+static void iic_mcu_send_st( )
+{
+ SO0 &= ~0x0004; // SDA
+ nop8();
+
+ SO0 &= ~0x0400; // SCL
+ SOE0 = 0x0004; // n[h
+
+ SCR02 = TXE0 | 1 << SLC02 | 7 << DLS02; // MAf[^͂WrbgP
+ SS0 = 0x0004; // ʐMҋ@
+}
+
+
+
+/********************************************//**
+ X^[gs
+ ***********************************************/
+void iic_mcu_send_re_st( )
+{
+ ST0 |= 0x0004;
+ SO0 |= 0x0400 | TAUS_MASK; // ( SDA = H ), SCL -> H
+ nop8();
+
+ SOE0 &= ~0x0004; // ( SCL = H ), SDA -> L
+ nop8();
+
+ iic_mcu_send_st( );
+}
+
+
+
+/********************************************//**
+ XgbvRfBVs
+
+ ̑OɁAuŌ̃oCg̑Mv̎ɑOKvłB
+ ***********************************************/
+void iic_mcu_send_sp( )
+{
+ ST0 = 0x0004;
+ SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo)
+ SO0 = 0x0000 | TAUS_MASK; // SCL
+ nop8();
+
+ SO0 = 0x0400 | TAUS_MASK; // SCL
+ nop8();
+
+ SO0 = 0x0404 | TAUS_MASK;
+}
+
+
+
+
+/********************************************//**
+ ytFW[̏
+ ***********************************************/
+void iic_mcu_start( )
+{
+ if( iic_mcu_initialized )
+ {
+ return;
+ }
+
+ iic_mcu_busy = true;
+// DST1 = 0;
+
+ I2C_PU_on();
+// DEN1 = 0; // DST1 = 0 2clḱADSTn==0|[OĂ
+
+ wait_ms( 1 ); // オ̂50usʂ
+
+ SAU0EN = 1;
+ nop8();
+
+ SPS0 = 0x0000; // VAjbg̃NbNOB(8M/2)/1
+ SMR02 = bSMR0n_FIXEDBIT | bMD0n2; // ȈI2Cɐݒ
+ SDR02 = 10 << 9; // {[[gݒ 8M/1/(x+1)/2
+
+ SO0 = 0x0404 | TAUS_MASK; // ŏHH
+ iic_mcu_wo_dma = false;
+
+
+ // oX̃Zbg
+ {
+ IICIF10 = 0;
+ IICMK10 = 1;
+
+ iic_mcu_send_st();
+
+ SIO10 = 0xFF;
+ while( IICIF10 == 0 ){;} // ʐM
+ iic_mcu_send_sp();
+
+ SIR02 = SSR02;
+ }
+
+ iic_mcu_busy = false;
+ iic_mcu_initialized = true;
+}
+
+
+
+/********************************************//**
+ W[̒~
+
+ ēxgƂ͏Kv
+ ***********************************************/
+void iic_mcu_stop( )
+{
+ while( iic_mcu_busy )
+ {;} // DMA쒆͂҂
+ iic_mcu_send_re_st( ); // SCL,SDALLɂ
+ I2C_PU_off();
+ SAU0EN = 0;
+ iic_mcu_initialized = false;
+}
+
diff --git a/tags/2.19_SDK4(3rdNUP)/i2c_mcu.h b/tags/2.19_SDK4(3rdNUP)/i2c_mcu.h
new file mode 100644
index 0000000..16eeba8
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/i2c_mcu.h
@@ -0,0 +1,40 @@
+#ifndef __ic2_mcu__
+#define __ic2_mcu__
+
+
+// ========================================================
+typedef enum{
+ I2C_ERR_OK = 0,
+ I2C_ERR_NAK,
+ I2C_ERR_NOSLAVE,
+ I2C_ERR_TIMEOUT,
+ I2C_ERR_UNDEF = 0xFF
+}i2c_err;
+
+
+
+// ========================================================
+extern volatile bit iic_mcu_busy;
+extern bit iic_mcu_wo_dma;
+
+extern i2c_err iic_mcu_result;
+
+
+// ========================================================
+i2c_err iic_mcu_read( u8 SLA, u8 adrs, u8 len, u8 * dest );
+u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs );
+
+i2c_err iic_mcu_write( u8 SLA, u8 adrs, u8 len, void * src );
+i2c_err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat );
+
+i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat ); // codecoO@\t
+
+
+// ̒ʐM܂B
+#define iic_mcu_set_wo_dma() { while( iic_mcu_busy ){;} iic_mcu_wo_dma = true; }
+
+void iic_mcu_start( );
+void iic_mcu_stop( );
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/i2c_mcu_sub.h b/tags/2.19_SDK4(3rdNUP)/i2c_mcu_sub.h
new file mode 100644
index 0000000..c674000
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/i2c_mcu_sub.h
@@ -0,0 +1,6 @@
+#ifndef __ic2_mcu_sub__
+#define __ic2_mcu_sub__
+
+i2c_err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat );
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/i2c_twl.c b/tags/2.19_SDK4(3rdNUP)/i2c_twl.c
new file mode 100644
index 0000000..e4014d0
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/i2c_twl.c
@@ -0,0 +1,244 @@
+/* ========================================================
+ 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.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
+
+#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 */
+ P20 &= ~0x3;
+
+ 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;
+
+ PM20 &= ~0x3; /* set clock pin for IICA */
+
+ LREL = 1;
+}
+
+
+
+/********************************************//**
+ W[~
+ ***********************************************/
+void IIC_twl_Stop( void )
+{
+ IICE = 0; /* IICA disable */
+ IICAEN = 0;
+}
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/i2c_twl.h b/tags/2.19_SDK4(3rdNUP)/i2c_twl.h
new file mode 100644
index 0000000..0f608b0
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/i2c_twl.h
@@ -0,0 +1,7 @@
+#ifndef _iic_twl_
+#define _iic_twl_
+
+void IIC_twl_Init( void );
+void IIC_twl_Stop( void );
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/i2c_twl_defs.h b/tags/2.19_SDK4(3rdNUP)/i2c_twl_defs.h
new file mode 100644
index 0000000..be5d566
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/i2c_twl_defs.h
@@ -0,0 +1,196 @@
+#ifndef _MDSERIAL_
+#define _MDSERIAL_
+
+
+/* IIC operation enable (IICE0) */
+#define IIC0_OPERATION 0x80
+#define IIC0_OPERATION_DISABLE 0x00 /* stop operation */
+#define IIC0_OPERATION_ENABLE 0x80 /* enable operation */
+
+/* Exit from communications (LREL0) */
+#define IIC0_COMMUNICATION 0x40
+#define IIC0_COMMUNICATION_NORMAL 0x00 /* normal operation */
+#define IIC0_COMMUNICATION_EXIT 0x40 /* exit from current communication */
+
+/* Wait cancellation (WREL0) */
+#define IIC0_WAITCANCEL 0x20
+#define IIC0_WAIT_NOTCANCEL 0x00 /* do not cancel wait */
+#define IIC0_WAIT_CANCEL 0x20 /* cancel wait */
+
+/* Generation of interrupt when stop condition (SPIE0) */
+#define IIC0_STOPINT 0x10
+#define IIC0_STOPINT_DISABLE 0x00 /* disable */
+#define IIC0_STOPINT_ENABLE 0x10 /* enable */
+
+/* Wait and interrupt generation (WTIM0) */
+#define IIC0_WAITINT 0x08
+#define IIC0_WAITINT_CLK8FALLING 0x00 /* generate at the eighth clocks falling edge */
+#define IIC0_WAITINT_CLK9FALLING 0x08 /* generated at the ninth clocks falling edge */
+
+/* Acknowledgement control (ACKE0) */
+#define IIC0_ACK 0x04
+#define IIC0_ACK_DISABLE 0x00 /* enable acknowledgement */
+#define IIC0_ACK_ENABLE 0x04 /* disable acknowledgement */
+
+/* Start condition trigger (STT0) */
+#define IIC0_STARTCONDITION 0x02
+#define IIC0_START_NOTGENERATE 0x00 /* do not generate start condition */
+#define IIC0_START_GENERATE 0x02 /* generate start condition */
+
+/* Stop condition trigger (SPT0) */
+#define IIC0_STOPCONDITION 0x01
+#define IIC0_STOP_NOTGENERATE 0x00 /* do not generate stop condition */
+#define IIC0_STOP_GENERATE 0x01 /* generate stop condition */
+
+/*
+ IIC Status Register 0 (IICS0)
+*/
+/* Master device status (MSTS0) */
+#define IIC0_MASTERSTATUS 0x80
+#define IIC0_STATUS_NOTMASTER 0x00 /* slave device status or communication standby status */
+#define IIC0_STATUS_MASTER 0x80 /* master device communication status */
+
+/* Detection of arbitration loss (ALD0) */
+#define IIC0_ARBITRATION 0x40
+#define IIC0_ARBITRATION_NO 0x00 /* arbitration win or no arbitration */
+#define IIC0_ARBITRATION_LOSS 0x40 /* arbitration loss */
+
+/* Detection of extension code reception (EXC0) */
+#define IIC0_EXTENSIONCODE 0x20
+#define IIC0_EXTCODE_NOT 0x00 /* extension code not received */
+#define IIC0_EXTCODE_RECEIVED 0x20 /* extension code received */
+
+/* Detection of matching addresses (COI0) */
+#define IIC0_ADDRESSMATCH 0x10
+#define IIC0_ADDRESS_NOTMATCH 0x00 /* addresses do not match */
+#define IIC0_ADDRESS_MATCH 0x10 /* addresses match */
+
+/* Detection of transmit/receive status (TRC0) */
+#define IIC0_STATUS 0x08
+#define IIC0_STATUS_RECEIVE 0x00 /* receive status */
+#define IIC0_STATUS_TRANSMIT 0x08 /* transmit status */
+
+/* Detection of acknowledge signal (ACKD0) */
+#define IIC0_ACKDETECTION 0x04
+#define IIC0_ACK_NOTDETECTED 0x00 /* ACK signal was not detected */
+#define IIC0_ACK_DETECTED 0x04 /* ACK signal was detected */
+
+/* Detection of start condition (STD0) */
+#define IIC0_STARTDETECTION 0x02
+#define IIC0_START_NOTDETECTED 0x00 /* start condition not detected */
+#define IIC0_START_DETECTED 0x02 /* start condition detected */
+
+/* Detection of stop condition (SPD0) */
+#define IIC0_STOPDETECTION 0x01
+#define IIC0_STOP_NOTDETECTED 0x00 /* stop condition not detected */
+#define IIC0_STOP_DETECTED 0x01 /* stop condition detected */
+
+/*
+ IIC Flag Register 0 (IICF0)
+*/
+/* STT0 clear flag (STCF) */
+#define IIC0_STARTFLAG 0x80
+#define IIC0_STARTFLAG_GENERATE 0x00 /* generate start condition */
+#define IIC0_STARTFLAG_UNSUCCESSFUL 0x80 /* start condition generation unsuccessful */
+
+/* IIC bus status flag (IICBSY) */
+#define IIC0_BUSSTATUS 0x40
+#define IIC0_BUS_RELEASE 0x00 /* bus release status */
+#define IIC0_BUS_COMMUNICATION 0x40 /* bus communication status */
+
+/* Initial start enable trigger (STCEN) */
+#define IIC0_STARTWITHSTOP 0x02
+#define IIC0_START_WITHSTOP 0x00 /* generation of a start condition without detecting a stop condition */
+#define IIC0_START_WITHOUTSTOP 0x02 /* generation of a start condition upon detection of a stop condition */
+
+/* Communication reservation function disable bit (IICRSV) */
+#define IIC0_RESERVATION 0x01
+#define IIC0_RESERVATION_ENABLE 0x00 /* enable communication reservation */
+#define IIC0_RESERVATION_DISABLE 0x01 /* disable communication reservation */
+
+/*
+ IIC clock selection register 0 (IICCL0)
+*/
+#define IICCL0_INITIALVALUE 0x00
+/* Detection of SCL0 pin level (CLD0) */
+#define IIC0_SCLLEVEL 0x20
+#define IIC0_SCL_LOW 0x00 /* clock line at low level */
+#define IIC0_SCL_HIGH 0x20 /* clock line at high level */
+
+/* Detection of SDA0 pin level (DAD0) */
+#define IIC0_SDALEVEL 0x10
+#define IIC0_SDA_LOW 0x00 /* data line at low level */
+#define IIC0_SDA_HIGH 0x10 /* data line at high level */
+
+/* Operation mode switching (SMC0) */
+#define IIC0_OPERATIONMODE 0x08
+#define IIC0_MODE_STANDARD 0x00 /* operates in standard mode */
+#define IIC0_MODE_HIGHSPEED 0x08 /* operates in high-speed mode */
+
+/* Digital filter operation control (DFC0) */
+#define IIC0_DIGITALFILTER 0x04
+#define IIC0_FILTER_OFF 0x00 /* digital filter off */
+#define IIC0_FILTER_ON 0x04 /* digital filter on */
+
+/* Operation mode switching (CL01, CL00) */
+#define IIC0_CLOCKSELECTION 0x03
+
+/* Combine of (SMC0, CL01, CL00)*/
+#define IIC0_CLOCK0 0x00
+#define IIC0_CLOCK1 0x01
+#define IIC0_CLOCK2 0x02
+#define IIC0_CLOCK3 0x03
+#define IIC0_CLOCK4 0x08
+#define IIC0_CLOCK5 0x09
+#define IIC0_CLOCK6 0x0a
+#define IIC0_CLOCK7 0x0b
+
+/*
+ IIC function expansion register 0 (IICX0)
+*/
+/* IIC clock expension (CLX0) */
+#define IIC0_CLOCKEXPENSION 0x01
+#define IIC0_EXPENSION0 0x00
+#define IIC0_EXPENSION1 0x01
+
+/* Operation clock (CLX0, SMC0, CL01, CL00)
+ | IIC0_EXPENSION0 | IIC0_EXPENSION1 |
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK0 | fprs/2 | prohibited | selection clock(fw)
+ | fprs/88 | | transfer clock
+ | normal | | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK1 | fprs/2 | prohibited | selection clock(fw)
+ | fprs/172 | | transfer clock
+ | normal | | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK2 | fprs/2 | prohibited | selection clock(fw)
+ | fprs/344 | | transfer clock
+ | normal | | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK3 |prohibited/fexscl0 | prohibited | selection clock(fw)
+ | fw/66 | | transfer clock
+ | normal | | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK4 | fprs/2 | fprs/2 | selection clock(fw)
+ | fprs/48 | fprs/24 | transfer clock
+ | high speed | high speed | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK5 | fprs/2 | fprs/2 | selection clock(fw)
+ | fprs/48 | fprs/24 | transfer clock
+ | high speed | high speed | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK6 | fprs/4 | fprs/4 | selection clock(fw)
+ | fprs/96 | fprs/48 | transfer clock
+ | high speed | high speed | mode
+------------|-------------------|-------------------|----------------------
+IIC0_CLOCK7 |prohibited/fexscl0 | prohibited | selection clock(fw)
+ | fw/18 | | transfer clock
+ | high speed | | mode
+------------|-------------------|-------------------|----------------------
+*/
+
+#define ADDRESS_COMPLETE 0x80
+#define IIC_MASTER_FLAG_CLEAR 0x00
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/incs.h b/tags/2.19_SDK4(3rdNUP)/incs.h
new file mode 100644
index 0000000..014e6f2
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/incs.h
@@ -0,0 +1,43 @@
+#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 "user_define.h"
+
+#include "hal.h"
+
+#include "bsr_system.h"
+#include "renge\renge.h"
+
+#include "vreg_ctr.h"
+
+#include "util_funcs.h"
+
+//=========================================================
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/incs_loader.h b/tags/2.19_SDK4(3rdNUP)/incs_loader.h
new file mode 100644
index 0000000..79d921d
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/incs_loader.h
@@ -0,0 +1,40 @@
+#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 "user_define.h"
+
+#include "hal.h"
+
+#include "bsr_system.h"
+#include "renge\renge.h"
+
+#include "vreg_ctr.h"
+#include "vreg_twl.h"
+
+
+//=========================================================
+void firm_update( );
+void firm_restore( );
diff --git a/tags/2.19_SDK4(3rdNUP)/ini_VECT.c b/tags/2.19_SDK4(3rdNUP)/ini_VECT.c
new file mode 100644
index 0000000..84da25c
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/ini_VECT.c
@@ -0,0 +1,347 @@
+/* ========================================================
+ 荞݃xN^e[u
+ $Id$
+ ======================================================== */
+
+#ifndef _WIN32
+
+#pragma nop
+
+#endif
+
+#include "config.h"
+
+#ifndef _WIN32
+
+#ifdef _WDT_CHECK_
+#pragma interrupt INTWDTI fn_intwdti // wdt debug
+#endif
+
+//#pragma interrupt INTLVI fn_intlvi // gp
+
+//#pragma interrupt INTP0 intp0_slp // SLP (CPUAv) |[O
+//#pragma interrupt INTP1 fn_intp1 // (I2C)
+//#pragma interrupt INTP2 fn_intp2 // (I2C)
+//#pragma interrupt INTP3 fn_intp3 //
+#pragma interrupt INTP4 intp4_extdc // EXTDC, doffN̂݁Bʏ̓|[O
+#pragma interrupt INTP5 intp5_shell // SHELL_CLOSE, doffN̂݁Bʏ̓|[O
+#pragma interrupt INTP6 intp6_PM_irq // CODECoRŋPMICւ̃R}h
+
+//#ifdef _MCU_BSR_ // 荞݂͎̂̂g܂
+//#pragma interrupt INTP21 intp21_RFTx // dgMpX
+//#else
+//#pragma interrupt INTP7 intp21_RFTx
+//#endif
+
+
+/*
+
+ accero
+#ifdef _MCU_BSR_
+#pragma interrupt INTP23 intp23_ACC_ready RB3 // xZTAf[^
+#endif
+*/
+
+//#pragma interrupt INTCMP0 fn_intcmp0
+//#pragma interrupt INTCMP1 fn_intcmp1
+//#pragma interrupt INTDMA0 fn_intdma0
+#pragma interrupt INTDMA1 int_dma1
+
+//#pragma interrupt INTST0 fn_intst0
+/* #pragma interrupt INTCSI00 fn_intcsi00 */
+//#pragma interrupt INTSR0 fn_intsr0
+/* #pragma interrupt INTCSI01 fn_intcsi01 */
+//#pragma interrupt INTSRE0 fn_intsre0
+
+//#pragma interrupt INTST1 fn_intst1
+/* #pragma interrupt INTCSI10 fn_intcsi10 */
+#pragma interrupt INTIIC10 int_iic10
+//#pragma interrupt INTSR1 fn_intsr1
+//#pragma interrupt INTSRE1 fn_intsre1
+
+
+/*
+// TS̓}U{ŃeRAWM͉H}eRŌLjvc
+#pragma interrupt INTIICA1 int_iic_ctr RB1
+
+#pragma interrupt INTIICA0 int_iic_twl RB2
+*/
+
+//#pragma interrupt INTTM00 fn_inttm00
+//#pragma interrupt INTTM01 fn_inttm01
+//#pragma interrupt INTTM02 fn_inttm02
+//#pragma interrupt INTTM03 fn_inttm03
+
+#pragma interrupt INTAD int_adc
+#pragma interrupt INTRTC int_rtc
+#pragma interrupt INTRTCI int_rtc_int
+#pragma interrupt INTKR int_kr
+//#pragma interrupt INTMD fn_intmd
+
+//#pragma interrupt INTTM04 fn_inttm04
+//#pragma interrupt INTTM05 fn_inttm05
+//#pragma interrupt INTTM06 fn_inttm06
+//#pragma interrupt INTTM07 fn_inttm07
+
+
+//#define _irq_debug_
+/****************************************************/
+/* gp̃_~[` */
+/****************************************************/
+#ifdef _WDT_CHECK_
+__interrupt void fn_intwdti( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+#endif
+
+#ifdef _irq_debug_
+__interrupt void fn_intlvi( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void fn_intp0(){
+while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void fn_intp1( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+} //
+__interrupt void fn_intp2( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void fn_intp3( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void intp21_RFTx( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+
+//__interrupt void fn_intp4(){ while(1){} } // pm.c
+//__interrupt void fn_intp5(){ while(1){} } // pm.c
+//__interrupt void fn_intp6(){ while(1){} } // pm.c
+//__interrupt void fn_intp7(){ while(1){} } // led.c
+//__interrupt void fn_intp21(){ while(1){} } // led.c
+
+__interrupt void fn_intcmp0( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void fn_intcmp1( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void fn_intdma0( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+//__interrupt void fn_intdma1(){} // i2c_mcu.cɂ
+
+__interrupt void fn_intst0( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+/* __interrupt void fn_intcsi00(){} */
+__interrupt void fn_intsr0( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+/* __interrupt void fn_intcsi01(){} */
+__interrupt void fn_intsre0( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void fn_intst1( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+/* __interrupt void fn_intcsi10(){} */
+//__interrupt void fn_intiic10(){ while(1){} }
+__interrupt void fn_intsr1( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void fn_intsre1( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+//__interrupt void fn_intiica(){} // i2c.cɂ
+/* __interrupt void fn_inttm00(){} *//* sub.cɂĒ` */
+__interrupt void fn_inttm01( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void fn_inttm02( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+__interrupt void fn_inttm03( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+//__interrupt void fn_intad(){ while(1){} } // adc.c
+__interrupt void fn_intrtc( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+//__interrupt void int_rtcint(){} // rtc.cɂ
+//__interrupt void fn_intkr(){} // main.c
+__interrupt void fn_intmd( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void fn_inttm04( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void fn_inttm05( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void fn_inttm06( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+__interrupt void fn_inttm07( )
+{
+ while( 1 )
+ {
+ NOP();
+ }
+}
+
+#endif
+
+
+
+/* ========================================================
+ L[^[荞
+ ======================================================== */
+__interrupt void int_kr( )
+{
+ // N邾
+}
+
+
+
+/* ========================================================
+ ext dc
+ ======================================================== */
+__interrupt void intp4( )
+{
+ // N邾
+}
+
+
+
+/* ========================================================
+ shell close
+ ======================================================== */
+__interrupt void intp5( )
+{
+ // N邾
+}
+
+
+#else
+
+#include "sim/sim_interrupt_decrare.c"
+
+#endif
+
diff --git a/tags/2.19_SDK4(3rdNUP)/jhl_defs.h b/tags/2.19_SDK4(3rdNUP)/jhl_defs.h
new file mode 100644
index 0000000..9a21ab3
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/jhl_defs.h
@@ -0,0 +1,25 @@
+#ifndef __jhl_defs_h__
+#define __jhl_defs_h__
+
+typedef unsigned char u8;
+typedef signed char s8;
+typedef unsigned short u16;
+typedef signed short s16;
+
+typedef unsigned short ux16;
+typedef signed short sx16;
+
+#define true 1
+#define false 0
+
+
+#define set_bit( cond, reg, pos ) \
+{ \
+ if( cond ){ \
+ reg |= pos; \
+ }else{ \
+ reg &= ~pos; \
+ } \
+}
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/kanaria.asm b/tags/2.19_SDK4(3rdNUP)/kanaria.asm
new file mode 100644
index 0000000..9deaddb
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/kanaria.asm
@@ -0,0 +1,12 @@
+PUBLIC _END_1,_END_2,_END_3,_END_4
+
+@@DATA DSEG BASEP
+_END_1:
+@@INIT DSEG BASEP
+_END_2:
+@@INITL DSEG UNIT64KP
+_END_3:
+@@DATAL DSEG UNIT64KP
+_END_4:
+;
+END
diff --git a/tags/2.19_SDK4(3rdNUP)/kanaria_c.c b/tags/2.19_SDK4(3rdNUP)/kanaria_c.c
new file mode 100644
index 0000000..bbb5ec7
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/kanaria_c.c
@@ -0,0 +1,18 @@
+/********************************************//**
+ X^bN̍Ō̒lǂ
+
+ X^bNĵ
+
+ $Id$
+ ***********************************************/
+#include "incs.h"
+
+extern unsigned char END_4;
+
+void f()
+{
+ unsigned char *tp;
+
+ tp = &END_4;
+}
+
diff --git a/tags/2.19_SDK4(3rdNUP)/led.c b/tags/2.19_SDK4(3rdNUP)/led.c
new file mode 100644
index 0000000..1892658
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/led.c
@@ -0,0 +1,374 @@
+/* ========================================================
+ LED.c
+
+ $Id: LED.c 418 2011-09-22 01:35:37Z n2232 $
+ ======================================================== */
+#ifndef _WIN32
+
+#pragma sfr
+
+#endif
+
+#include "incs.h"
+#include "led.h"
+
+
+
+// ========================================================
+// 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;
+
+
+// [dۂ
+extern bit BT_IN_CHG_delayed_n;
+
+
+// ========================================================
+#define led_fade_to( now, goal ) now = fade_to( now, goal )
+
+
+/********************************************//**
+ now goal ɂȂ܂ inc / dec BxĂԂƃOf[V
+
+ Ƃ肠AXebvŒ
+ ***********************************************/
+u8 fade_to( u8 now, u8 goal )
+{
+ if( now != goal )
+ {
+ if( now > goal )
+ {
+ now --;
+ }
+ else
+ {
+ now ++;
+ }
+ }
+ return( now );
+}
+
+
+
+
+/********************************************//**
+ XlăOf[V
+ ***********************************************/
+#define led_fade_to2( led, status ) \
+ led = fade_to2( status )
+
+
+u8 fade_to2( st_LED_dim_status* status )
+{
+ if( status->now != status->to )
+ {
+ if( abs(( status->to - status->now )) > abs(status->delta) )
+ {
+ status->now += status->delta;
+ }
+ else
+ {
+ status->now = status->to;
+ }
+ }
+ return( status->now / 128 );
+}
+
+
+
+
+/********************************************//**
+ LED̏
+
+ HW^C}[ĝł̏s
+ ***********************************************/
+void LED_init( )
+{
+/**
+ PWM̃ZbgAƂ肠S
+
+ }X^`lFO@(P01:/reset2)@}X^[͋`lłȂ
+ X[u@@@@P@rksnB(Rc kdcH)
+ @@@@@@@@Q@J
+ @@@@@@@@R@WiFi
+ @@@@@@@@S@(s͂qsb32kHz out Ɏgp)
+ @@@@@@@@T@[d
+ @@@@@@@@U@d k
+ @@@@@@@@V@d g
+ */
+ 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
+
+// system_status.info_fullcolor = 1; // m点1dlp~
+
+ if( system_status.reboot )
+ {
+ vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO;
+ LED_duty_pow_blu = LED_BRIGHT_MAX;
+ }
+ info_led_off = false;
+ ledInitialized = true;
+}
+
+
+/********************************************//**
+ LED̒~B
+
+ HW^C}[̒~
+ ***********************************************/
+
+void LED_stop( )
+{
+ TT0 = 0x00EF; // Ē~iȂƂ߁j
+ TOE0 = 0x0000; // TOx^C}[W[H(GPIOɂȂ)
+ TAU0EN = 0;
+ LED_pow_red = 0;
+ LED_CAM = 0;
+
+ LED_duty_notify_red = 0;
+ LED_duty_notify_blu = 0;
+ LED_duty_notify_grn = 0;
+ LED_pow_red = 0;
+ LED_CAM = 0;
+
+ WIFI_txLatch = 0;
+ flag_wifi_TX = 0;
+ state_wifi_tx = 0;
+
+ ledInitialized = false;
+}
+
+
+
+
+/********************************************//**
+ WiFi LED ̍XV
+
+ - WX^̐ݒ on / off
+ - off łĂW[̑MpX -_-_-_--------_-_-_-------̃p^[_
+ ***********************************************/
+void tsk_led_wifi( )
+{
+ static u8 task_interval;
+
+ if( task_interval-- != 0 )
+ {
+ return;
+ }
+
+ // MpX̃b`
+ if( WIFI_txLatch ) // 荞݃tÔ̂gĂ܂
+ {
+ WIFI_txLatch = 0;
+ flag_wifi_TX = 1;
+ }
+
+ if( flag_wifi_TX != 0 )
+ {
+ vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_WIFI_TX;
+ // Mp^[
+ switch ( state_wifi_tx )
+ {
+ case ( 1 ):
+ case ( 3 ):
+ case ( 5 ):
+ LED_duty_WiFi = 0;
+ break;
+ default:
+ LED_duty_WiFi = vreg_ctr[VREG_C_LED_BRIGHT];
+ }
+ state_wifi_tx ++;
+ if( state_wifi_tx == 32 ) // _ŌA_ĂԂ̒
+ {
+ state_wifi_tx = 0;
+ flag_wifi_TX = 0;
+ }
+ task_interval = 25;
+ return;
+ }
+ else
+ {
+ task_interval = 30;
+ // MtO҂
+ vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_WIFI_TX;
+
+ if( vreg_ctr[VREG_C_LED_WIFI] == WIFI_LED_OFF )
+ {
+ LED_duty_WiFi = 0;
+ return;
+ }
+ else
+ {
+ if( LED_duty_WiFi == vreg_ctr[VREG_C_LED_BRIGHT] )
+ {
+ return;
+ }
+ else if( LED_duty_WiFi < vreg_ctr[VREG_C_LED_BRIGHT] )
+ {
+ LED_duty_WiFi ++;
+ }
+ else
+ {
+ LED_duty_WiFi --;
+ }
+ }
+ task_interval = 3;
+ return;
+ }
+}
+
+
+
+
+bit info_led_pattern_updated;
+/********************************************//**
+ m点LED
+
+ tF[hAEgvZ
+ ***********************************************/
+static void calc_info_led_fade_out( st_LED_dim_status* tgt_led )
+{
+ tgt_led -> to = 0;
+ tgt_led -> delta = ( 0 - tgt_led -> now ) / 64;
+}
+
+
+/********************************************//**
+ m点LED
+
+ Of[VvZ
+ ***********************************************/
+static void calc_info_led_next_frame( st_LED_dim_status* tgt_led, u8 color )
+{
+ tgt_led -> to = color * 128;
+ // Of[Ṽf^vZ
+ tgt_led -> delta = (( tgt_led -> to - tgt_led -> now ) ) / info_LED.info_LED.fade_time;
+}
+
+
+/********************************************//**
+ m点LED
+ ***********************************************/
+void tsk_led_notify( )
+{
+ static u8 time_to_next_frame;
+ static u8 frame;
+ static u8 loops;
+ static st_LED_dim_status LED_dim_status_info_R, LED_dim_status_info_G, LED_dim_status_info_B;
+
+ if( info_led_override )
+ {
+ // drꂪD悷
+ return;
+ }
+
+ if( system_status.pwr_state == ON_TRIG )
+ {
+ LED_duty_notify_blu = 0;
+ LED_duty_notify_red = 0;
+ LED_duty_notify_grn = 0;
+ LED_dim_status_info_R.now = 0;
+ LED_dim_status_info_G.now = 0;
+ LED_dim_status_info_B.now = 0;
+ }
+
+ if( info_led_off ) // doffȂNjoff
+ {
+ // tF[hAEg
+ calc_info_led_fade_out( &LED_dim_status_info_R );
+ calc_info_led_fade_out( &LED_dim_status_info_G );
+ calc_info_led_fade_out( &LED_dim_status_info_B );
+ }
+ else
+ {
+ // ʏ^]
+ if( info_led_pattern_updated )
+ {
+ info_led_pattern_updated = false;
+ vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP;
+ frame = 0; // Ə
+ time_to_next_frame = 0;
+ }
+ else
+ {
+ // ̃t[ɐi߂H
+ if( time_to_next_frame == 0 )
+ {
+ time_to_next_frame = info_LED.info_LED.term;
+
+ if( frame >= NOTIFY_LED_TERM -1 )
+ {
+ vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] |= REG_BIT_IN_LOOP;
+ if( info_LED.info_LED.last_loop != 255 ) // 255:[v
+ {
+ loops ++;
+ if( loops > info_LED.info_LED.last_loop )
+ {
+ frame = 0;
+ }
+ }
+ }
+ else
+ {
+ frame = (( frame + 1 ) & 0x1F ); // Ń}XNĂȂƍŏIt[`擪Ԃ̃OfȂ
+ vreg_ctr[ VREG_C_LED_NOTIFY_FLAG ] &= ~REG_BIT_IN_LOOP;
+ loops = 0;
+ }
+
+ // Of[VvZ
+ calc_info_led_next_frame( &LED_dim_status_info_R, info_LED.info_LED.red[frame] );
+ calc_info_led_next_frame( &LED_dim_status_info_G, info_LED.info_LED.grn[frame] );
+ calc_info_led_next_frame( &LED_dim_status_info_B, info_LED.info_LED.blu[frame] );
+
+ }
+ time_to_next_frame --;
+ }
+ }
+
+ led_fade_to2( LED_duty_notify_red, &LED_dim_status_info_R );
+ led_fade_to2( LED_duty_notify_grn, &LED_dim_status_info_G );
+ led_fade_to2( LED_duty_notify_blu, &LED_dim_status_info_B );
+}
diff --git a/tags/2.19_SDK4(3rdNUP)/led.h b/tags/2.19_SDK4(3rdNUP)/led.h
new file mode 100644
index 0000000..ce8541f
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/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点LEDW //
+typedef struct _st_info_LED
+{
+ u8 term; // 1t[`bNH
+ u8 fade_time; // `bNŎ̃t[̐FɒB邩
+ u8 last_loop; // ŏIt[JԂH
+ u8 resv1;
+ u8 red[32];
+ u8 grn[32];
+ u8 blu[32];
+}st_info_LED;
+
+typedef union _uni_info_LED
+{
+ st_info_LED info_LED;
+ u8 bindata[ sizeof( st_info_LED ) ];
+}uni_info_LED;
+
+extern uni_info_LED info_LED;
+
+
+// LED _Ō //
+typedef struct _st_led_red_batt_empty
+{
+ u8 dats[4];
+}st_led_red_batt_empty;
+
+extern st_led_red_batt_empty led_red_batt_empty;
+
+
+/*
+ m点LED
+*/
+typedef struct _st_LED_dim_status
+{
+ sx16 to;
+ sx16 delta;
+ sx16 now; // _ȉoĂȂĂ͂ȂȂ
+}st_LED_dim_status;
+
+
+
+// ====================================
+void LED_init( );
+void LED_stop( );
+
+
+// ====================================
+extern bit ledInitialized;
+extern bit info_led_override;
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/led_cam.c b/tags/2.19_SDK4(3rdNUP)/led_cam.c
new file mode 100644
index 0000000..7d4a1eb
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/led_cam.c
@@ -0,0 +1,156 @@
+/******************************************************//**
+ LED_Cam TO02
+
+ BLINK,*_PLUSE ̎́A1͕K̏ԂɂȂ܂B
+
+ ̊Ԃ OFFBLINK ȂǂƁAOFF܂B
+
+ $Id$
+ *********************************************************/
+#ifndef _WIN32
+
+#pragma sfr
+
+#endif
+
+#include "incs.h"
+#include "led.h"
+#include "vreg_twl.h"
+
+
+// ========================================================
+static u8 state_led_cam = 0;
+static u16 task_interval;
+
+bit cam_led_update;
+
+
+
+// ========================================================
+static void cam_led_twl();
+
+
+
+
+/********************************************//**
+ C^[os^XNƁAtwlWX^ւ݂̏̂QJĂ܂B
+ ***********************************************/
+void tsk_led_cam( )
+{
+ DI_wt_chk(); // WX^ւ݂̏ŋN邱Ƃ邽
+ if( !cam_led_update )
+ {
+ if( task_interval != 0 )
+ {
+ task_interval --;
+ EI();
+ return;
+ }
+ }
+
+ cam_led_update = false; // TWL ̃uNݒiꔭ_ĵ
+ EI();
+
+ if( system_status.pwr_state == SLEEP ) // sleepA
+ {
+ LED_CAM = 0;
+ state_led_cam = 0;
+ }
+ else
+ {
+ // uN̂悤ɑ҂ƂȊO͖TN
+ // (WX^̕ύXɂɔ)
+ switch ( vreg_ctr[VREG_C_LED_CAM] )
+ {
+ case ( CAM_LED_OFF ):
+ default:
+ LED_CAM = 0;
+ state_led_cam = 0;
+ break;
+
+ case ( CAM_LED_ON ):
+ LED_CAM = 1;
+ state_led_cam = 0;
+ break;
+
+ case ( CAM_LED_BLINK ):
+ if( state_led_cam == 0 )
+ {
+ LED_CAM = 1;
+ state_led_cam = 1;
+ }
+ else
+ {
+ LED_CAM = 0;
+ state_led_cam = 0;
+ }
+ task_interval = 250;
+ break;
+
+ case ( CAM_LED_ON_PLUSE ):
+ if( state_led_cam == 0 )
+ {
+ LED_CAM = 1;
+ state_led_cam = 1;
+ task_interval = 250;
+ }
+ else
+ {
+ vreg_ctr[VREG_C_LED_CAM] = CAM_LED_OFF;
+ }
+ break;
+
+ case ( CAM_LED_OFF_PLUSE ):
+ if( state_led_cam == 0 )
+ {
+ LED_CAM = 0;
+ state_led_cam = 1;
+ task_interval = 250;
+ }
+ else
+ {
+ vreg_ctr[VREG_C_LED_CAM] = CAM_LED_ON;
+ }
+ break;
+
+ case( CAM_LED_BY_TWL ):
+ cam_led_twl();
+ }
+ } // if( system_status.pwr_state == sleep ) ... else ...
+}
+
+
+/********************************************//**
+ TWLJLED𑀍삳
+ ***********************************************/
+static void cam_led_twl()
+{
+ // TWL݊ //
+ switch ( vreg_twl[ REG_TWL_INT_ADRS_CAM ] ){
+ case( TWL_CAMLED_OFF ):
+ LED_CAM = 0;
+ state_led_cam = 0;
+ break;
+
+ case( TWL_CAMLED_BLINK ):
+ if( state_led_cam == 0 )
+ {
+ LED_CAM = 1;
+ state_led_cam = 1;
+ }
+ else
+ {
+ LED_CAM = 0;
+ state_led_cam = 0;
+ }
+ task_interval = (u8)( 600 / SYS_INTERVAL_TICK ) + 250;
+ break;
+
+ case( TWL_CAMLED_ON ):
+ case( TWL_CAMLED_DEF_ON ):
+ default:
+ LED_CAM = 1;
+ state_led_cam = 1;
+ break;
+ }
+}
diff --git a/tags/2.19_SDK4(3rdNUP)/led_pow.c b/tags/2.19_SDK4(3rdNUP)/led_pow.c
new file mode 100644
index 0000000..4e52da5
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/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$
+ ======================================================== */
+
+/* ========================================================
+ enum pwr_state_{
+ OFF_TRIG = 0,
+ ON_CHECK,
+ ON_TRIG,
+ ON,
+ SLEEP
+};
+
+enum LED_ILUM_MODE{
+ LED_POW_ILM_AUTO,
+ LED_POW_ILM_ON,
+ LED_POW_ILM_SLEEP,
+ LED_POW_ILM_CEOFF
+};
+ ======================================================== */
+#ifndef _WIN32
+
+#pragma sfr
+
+#endif
+
+#include "incs.h"
+#include "led.h"
+#include "pm.h"
+
+// ========================================================
+// X[vł̃e[uB}WB
+const u8 LED_PTN_SLEEP[] = {
+ 25, 38, 52, 68, 83, 98, 110, 119,
+ 125, 128, 128, 125, 119, 110, 98, 83,
+ 68, 52, 38, 25, 16, 10, 8, 8,
+ 8, 8, 8, 8, 8, 8, 10, 16
+ };
+
+
+// LED̓drcLED̓_Ńp^[
+st_led_red_batt_empty led_red_batt_empty = { 0x55, 0x55, 0x55, 0x55 };
+#define LED_SLEEP_FRAME_LEN 71
+#define LED_SLEEP_DIM_LEN 71
+#define LED_SLEEP_FRAME_NUM 32
+
+
+
+// ========================================================
+static void led_pow_normal( );
+static void led_pow_sleep( );
+static void led_pow_bt_empty();
+static u8 led_pow_batt_low();
+
+#define led_fade_to( now, goal ) now = fade_to( now, goal )
+extern u8 fade_to( u8 now, u8 goal );
+
+#define led_fade_to2( led, status ) led = fade_to2( status )
+extern u8 fade_to2( st_LED_dim_status* status );
+
+
+
+// ========================================================
+// dLED̃X[vp^[̃Xe[^X
+static u8 time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN;
+static u8 frame_sleep;
+static st_LED_dim_status LED_dim_status_sleep;
+
+extern bit ledInitialized;
+extern bit BT_IN_CHG_delayed_n;
+
+
+
+/********************************************//**
+ dLED
+
+ {Iɂ́A
+
+ 쎞A
+ - drc > 10% _imaster_brightness̖邳j
+ - 5% ԓ_ (100%_AHWŒs)
+ - ȉ ԓ_Am点LEDԂBAA_v^h5%`̓
+
+ X[v
+ - drc > 10% _imaster_brightness̖邳j
+ - 쎞Ɠ
+
+ X[vɂ͎ŐւȂ̂ŁAWX^삪Kvłi̕s悢ł傤Hj
+
+ ̃p^[͐Ŷ߁B
+ ***********************************************/
+void tsk_led_pow( )
+{
+ if( ! ledInitialized )
+ {
+ return;
+ // ܂
+ }
+
+ info_led_override = false;
+
+ switch ( vreg_ctr[VREG_C_LED_POW] )
+ {
+ case ( LED_POW_ILM_AUTO ):
+ default:
+ led_pow_normal( );
+ break;
+
+ case ( LED_POW_ILM_SLEEP ):
+ led_pow_sleep( );
+ break;
+
+ case ( LED_POW_ILM_ON ):
+ led_fade_to( LED_duty_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] );
+ LED_pow_red = 0;
+ break;
+
+ case ( LED_POW_ILM_OFF ):
+ led_fade_to( LED_duty_pow_blu, 0 );
+ LED_pow_red = 0;
+ break;
+
+ case ( LED_POW_ILM_ONLY_RED ):
+ LED_duty_pow_blu = 0;
+ LED_pow_red = 1;
+ break;
+
+ case ( LED_POW_ILM_ONLY_BLUE ):
+ LED_duty_pow_blu = LED_BRIGHT_MAX;
+ LED_pow_red = 0;
+ break;
+
+ case ( LED_POW_ILM_FORCE_BT_EMPTY ):
+ led_pow_bt_empty();
+ break;
+ }
+
+ if( system_status.pwr_state == OFF || system_status.pwr_state == ON_CHECK )
+ {
+ LED_pow_red = 0;
+ info_led_override = false;
+ }
+
+ if( info_led_override )
+ {
+ LED_duty_notify_blu = 0;
+ LED_duty_notify_grn = 0;
+ LED_duty_notify_red = ( LED_pow_red == 0 )? 0 : 255;
+ }
+}
+
+
+
+/********************************************//**
+ ʏ퓮쎞
+
+ drcʂŁA@ԁԓ_
+ ***********************************************/
+static void led_pow_normal( )
+{
+ time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN;
+ frame_sleep = 0;
+ LED_dim_status_sleep.now = (sx16)LED_duty_pow_blu * 128;
+
+ if( led_pow_batt_low() != 0 ) // Ԃ̓_łĂ܂
+ {
+ return;
+ // ܂
+ }
+
+ // _
+ led_fade_to( LED_duty_pow_blu, vreg_ctr[VREG_C_LED_BRIGHT] );
+}
+
+
+
+/********************************************//**
+ X[vz^p^[
+
+ drcʂŐԁԓ_łɂ
+ ***********************************************/
+static void led_pow_sleep( )
+{
+ if( led_pow_batt_low() != 0 ) // Ԃ̓_łĂ܂
+ {
+ time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN;
+ frame_sleep = 0;
+ LED_dim_status_sleep.now = (sx16)LED_duty_pow_blu * 128;
+ return;
+ // ܂
+ }
+
+ LED_dim_status_sleep.to = LED_PTN_SLEEP[frame_sleep] * 128;
+
+ // Of[Ṽf^vZ
+ LED_dim_status_sleep.delta = (( LED_dim_status_sleep.to - LED_dim_status_sleep.now ) ) / LED_SLEEP_DIM_LEN;
+ led_fade_to2( LED_duty_pow_blu, &LED_dim_status_sleep );
+
+ // ̃t[ɐi߂H
+ time_to_next_frame_sleep --;
+ if( time_to_next_frame_sleep == 0 )
+ {
+ time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN;
+
+ frame_sleep ++;
+ if( frame_sleep >= LED_SLEEP_FRAME_NUM -1 )
+ {
+ frame_sleep = 0;
+ }
+ }
+}
+
+
+
+/********************************************//**
+ drȂƂ̋
+
+@ԒlF@0@drȂȂ
+
+@@@@@1@@@@Ȃ̂ŋʃp^[ɂ
+ ***********************************************/
+static u8 led_pow_batt_low()
+{
+ if( vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_LO )
+ {
+ LED_pow_red = 0;
+ return 0;
+ // ܂
+ }
+
+ if(( vreg_ctr[VREG_C_BT_REMAIN] > BATT_TH_EMPTY ) || !BT_IN_CHG_delayed_n )
+ // drcʂ5%i`10%j@܂́Aꖢł[d
+ {
+ // ԓ_
+ led_fade_to( LED_duty_pow_blu, 0 );
+ {
+ LED_pow_red = 1;
+ }
+
+ }
+ else // dr5%@@A_v^Ȃ
+ {
+ led_pow_bt_empty();
+ }
+ return 1;
+}
+
+
+
+
+/********************************************//**
+@drȂp^[
+
+@@wp^[𗬂
+
+@@m点㏑
+ ***********************************************/
+static void led_pow_bt_empty()
+{
+ static u8 delay;
+ static u8 red_blink_poi;
+
+ info_led_override = true;
+
+ // ԓ_
+ led_fade_to( LED_duty_pow_blu, 0 );
+
+ // Ԃ̓_Ńp^[wł
+ delay ++;
+ if( delay < 64 ) // t[̕ێԉ҂
+ {
+ return;
+ }
+ delay = 0;
+
+ if( led_red_batt_empty.dats[ red_blink_poi / 8 ] & ( 1 << ( red_blink_poi % 8 )) )
+ {
+ LED_pow_red = 1;
+ }
+ else
+ {
+ LED_pow_red = 0;
+ }
+ red_blink_poi ++;
+ if( red_blink_poi >= 32 )
+ {
+ red_blink_poi = 0;
+ }
+}
+
+
diff --git a/tags/2.19_SDK4(3rdNUP)/loader.c b/tags/2.19_SDK4(3rdNUP)/loader.c
new file mode 100644
index 0000000..56a8ebb
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/loader.c
@@ -0,0 +1,392 @@
+/* ========================================================
+ 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
+
+ // V䔻
+ 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 ); /// ...
+ if( system_status.family == FAMILY_SPFL )
+ {
+ pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_AMO;
+ }
+ else
+ {
+ pm_reg_bit_vddlcd = PM_REG_BIT_VDDLCD_CGS;
+ }
+
+ // CTR̊J@ //
+ // ꉞ
+ system_status.is_dev = false;
+ system_status.taikendai = false;
+ system_status.taikendai_nbd = false;
+
+ switch( DIPSW )
+ {
+ case DIPSW_TAIKENDAI:
+ system_status.taikendai = true;
+ break;
+
+ case DIPSW_TAIKENDAI_NBD:
+ system_status.taikendai_nbd = true;
+ break;
+
+ case DIPSW_ISDEV:
+ system_status.is_dev = true;
+ break;
+ }
+#ifdef _FORCE_TAIKENDAI_
+ system_status.taikendai = true;
+#endif
+
+#ifdef _FORCE_TAIKENDAI_NBD_
+ system_status.taikendai_nbd = true;
+#endif
+}
+
+
+
+
+/********************************************//**
+ ŏ̃WX^s܂B
+
+ gݍ݃X^[gAbv[`Ă܂B
+ ***********************************************/
+void hdwinit( void )
+{ // X^[gAbv[`ɌĂт܂
+ DI( ); /* }X^荞֎~ */
+
+ CMC = bits8(0,0,0,1, 0,0,0,0); /* X1U(̓|[g)AXT1gpAd͔U͕sɕtʏ */
+ CSC = bits8(1,0,0,0, 0,0,0,0); /* X1UȂAXT1UAU */
+ OSMC = bits8(0,0,0,0, 0,0,0,1); /* BWX^ */
+ NOP();NOP();NOP(); // 3clkJ
+ CKC = bits8(0,0,0,0, 1,0,0,0); /* CPU/ӃNbN=fMAINAfMAIN=fMXAfCLK=fMX */
+
+ /*--- doH̐ݒ ---*/
+ /* Zbg̃ftHǵAIvVEoCgɂĎw肳 */
+ LVIS = 0x00; /* VLVI = 4.22}0.1V */
+// LVIM = 0x00; /* LVI֎~ */
+ /* dd(VDD)od(VLVI)Ɋ */
+ /* dd(VDD)od tempA[0][1], "offset" => tempA[0][2], "type" => tempA[0][3], "data" => tempA[0][4], "CRC" => tempA[0][5] }
+
+ break if src_in["type"].hex == 01
+ break if src_in["len"].hex == 00
+ # next if src_in["type"].hex != 00
+ if( src_in["type"].hex != 00 )
+# p dat
+ next
+ end
+
+ offset = src_in["offset"].hex
+ next if(( 0x1000 <= offset ) && ( offset < 0x2000 ))
+
+ dataTemp = src_in["data"].scan(/\w\w/)
+
+ ( 0...(src_in["len"].to_s.hex) ).each{|i|
+ bindata[ offset + i ] = ( dataTemp[ i ] ).to_s.hex
+ }
+end
+
+### debug enable bit check #############
+# fobOɂȂĂISfobKŋNȂiMCU삵Ȃj
+p bindata[0xC3]
+if( bindata[0xC3] != 0x04 )
+ print( "!E debug enable!!" )
+ exit( 1 )
+end
+
+
+### format data and output #############
+4096.times{
+ bindata.delete_at(4096)
+}
+dest.write( bindata[0..(0x4FFF - 0x1000)].pack("c*") )
+dest.close
+
+printf( "intel-HEX to bsr bin converter\n file converted!\n\n" )
diff --git a/tags/2.19_SDK4(3rdNUP)/pedo_alg_thre_det2.c b/tags/2.19_SDK4(3rdNUP)/pedo_alg_thre_det2.c
new file mode 100644
index 0000000..4e69a04
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/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++ ) // WÔ
+ 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ߎԂ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();
+}
+
+
+/********************************************//**
+̎ԂK0ɂāA
+܂ނPԂ̃f[^ʒuɃ|C^Hi߂
+ ***********************************************/
+static void fill_hosu_hist_hours( u16 hours )
+{
+ // OӂH
+ if( (u16)p_record + hours >= PEDOMETER_LOG_SIZE )
+ {
+ pedolog_overflow = true;
+ return;
+ }
+
+ // ̐Ԃ̐ݒ
+ while( hours != 0 )
+ {
+ // Vdl@ςŒ~
+ p_record ++;
+#if 1 // debug
+ if( p_record >= PEDOMETER_LOG_SIZE )
+ {
+ pedolog_overflow = true;
+// dbg_nop(); // ɗ悤ƃoO
+ break;
+ }
+ else
+#endif
+ {
+ pool.vreg_c_ext.pedo_log[ p_record ] = 0;
+ }
+ hours --;
+ }
+
+ return;
+}
+
+
+
+/********************************************//**
+NAAuf[^vɏ
+ ***********************************************/
+void clear_hosu_hist()
+{
+ u8 hours = PEDOMETER_LOG_SIZE;
+ do
+ {
+ hours --;
+ pool.vreg_c_ext.pedo_log[ hours ] = 0xFFFF;
+ }
+ while( hours != 0 );
+
+ DI_wt_chk();
+ vreg_ctr[ VREG_C_ACC_HOSU_L ] = 0;
+ vreg_ctr[ VREG_C_ACC_HOSU_M ] = 0;
+ vreg_ctr[ VREG_C_ACC_HOSU_H ] = 0;
+ p_record = 0;
+ pedolog_overflow = false;
+ EI();
+}
+
+
+extern u8 iic_burst_state;
+bit pedolog_read_msb;
+/********************************************//**
+ ṽqXgԂB
+
+ PĂԓxɁAqXg̉ʁAʁAꎞԑkĉʏ...
+ ***********************************************/
+u8 hosu_read( )
+{
+ u8 rv;
+ static u8 p_record_buffer;
+ static st_calender cal_buff; // ꉞAAg~bN
+
+ if( iic_burst_state == 0 )
+ {
+ p_record_buffer = p_record;
+ DI_wt_chk();
+ cal_buff = cal_log_latest;
+ EI();
+ }
+
+ if( iic_burst_state <= 5 )
+ {
+ rv = *( (u8*)&cal_buff + iic_burst_state ); //
+ iic_burst_state ++;
+ return( rv );
+ }
+ else
+ {
+ u16 temp;
+ // 16rbgŋL^Ă̂ł炵đ /// Ɗy@
+ temp = pool.vreg_c_ext.pedo_log[ p_record_buffer ];
+ if( !pedolog_read_msb )
+ {
+ rv = (u8)( temp & 0x00FF );
+ }
+ else
+ {
+ rv = (u8)(( temp >> 8 ) & 0x00FF );
+ if( p_record_buffer == 0 )
+ {
+ p_record_buffer = PEDOMETER_LOG_SIZE-1;
+ }
+ else
+ {
+ p_record_buffer --;
+ }
+ }
+ pedolog_read_msb ^= 1;
+ return( rv );
+ }
+
+}
+
+
+
+/********************************************//**
+ ŇǓoߎ(hour)ԂB
+
+
+
+ Ԓl u16 long_hour
+ ***********************************************/
+const u16 DAYS_FROM_HNY[] = {
+ 0,
+ 31,
+ 31+28, // =59B@cRO͂PTX
+ 31+28+31,
+ 31+28+31+30,
+ 31+28+31+30+31,
+ 31+28+31+30+31+30,
+ 31+28+31+30+31+30+31,
+ 31+28+31+30+31+30+31+31,
+ 31+28+31+30+31+30+31+31+30,
+ 31+28+31+30+31+30+31+31+30+31,
+ 31+28+31+30+31+30+31+31+30+31+30
+ };
+
+static u16 get_long_hour()
+{
+ u8 year = bcdtob( cal_temp.year_bcd );
+ u8 month = bcdtob( cal_temp.month_bcd );
+ u8 day = bcdtob( cal_temp.day_bcd );
+ u8 hour = bcdtob( cal_temp.hour_bcd );
+ u8 min_bcd = cal_temp.min_bcd; // 召rȂ̂bcd̂܂܂ł悢
+ u8 sec_bcd = cal_temp.sec_bcd;
+ u16 long_hour;
+
+ // ܂̕
+ long_hour = DAYS_FROM_HNY[ month -1 ]; // -1̓CfbNX킹
+ if( is_leapyear(year) && ( 3 <= month ))
+ {
+ // [NŁA[
+ long_hour ++;
+ }
+ long_hour += day - 1;
+ long_hour *= 24; //
+
+ long_hour += hour;
+
+ // EȆOHH
+ if( ( min_bcd > vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] )
+ || ( ( min_bcd >= vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY ] )
+ && ( sec_bcd >= vreg_ctr[ VREG_C_ACC_HOSU_HOUR_BOUNDARY_SEC ] ))
+ )
+ {
+ return( long_hour );
+ }
+ else
+ {
+ return( long_hour -1 ); // 1ԑOɊ܂߂ ӁFUōNɂƂB-1 ɂȂ
+ }
+}
+
+
+
+/********************************************//**
+@yʕB
+
+@Kv\Ȑxőł
+
+ pcŃV~[Vđv
+ ***********************************************/
+static unsigned long my_sqrt(unsigned long x)
+{
+ unsigned long s, t;
+
+ if (x <= 0) return 0;
+
+ s = 1;
+ t = x;
+ while (s < t)
+ {
+ s <<= 1;
+ t >>= 1;
+ }
+ do
+ {
+ t = s;
+ s = (x / s + s) >> 1;
+ } while (s < t);
+
+ return t;
+}
+
+
+
+
+/********************************************//**
+@ OĂꂽƁAݎ̍߂BԂ̂fill_hosu_hist_hours ɂ̂܂ܓn
+ //. year_bcd Ȃ̂Ƃ₾...
+ ***********************************************/
+static u16 calc_hours_spend( u8 year )
+{
+ u8 cal_log_latest_year = bcdtob( cal_log_latest.year_bcd );
+
+ // N̓
+ if( cal_log_latest_year == year )
+ {
+ if( now_longhour > last_hour_fny )
+ {
+ return( now_longhour - last_hour_fny );
+ }
+ else if( now_longhour == 0 && last_hour_fny != 0 )
+ {
+ // NŁAEzځBȂƍNŌɉZĂ܂B
+ return( 1 );
+ }
+ else
+ {
+ return( 0 ); // ԑ(ƁA߂B@ǂȂĂmȂ)
+ }
+ }
+ else if( cal_log_latest_year == ( year -1 ) )
+ {
+ // N܂łƂ
+ u16 temp = 365 * 24 - last_hour_fny + now_longhour;
+ if( is_firstyear(year) )
+ {
+ temp += 24;
+ }
+ return( temp );
+ }
+ else if( cal_log_latest_year < year )
+ {
+ // Nu
+ return( PEDOMETER_LOG_SIZE +1 );
+ }
+ else
+ {
+ // J_[߂Ȃ
+ // m[PAł悢cAslƂ킯ɂȂ
+ return( 0 );
+ }
+}
diff --git a/tags/2.19_SDK4(3rdNUP)/pedo_lpf_coeff.c b/tags/2.19_SDK4(3rdNUP)/pedo_lpf_coeff.c
new file mode 100644
index 0000000..877ef98
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/pedo_lpf_coeff.c
@@ -0,0 +1,87 @@
+/********************************************//**
+ vŎgpALPF̃tB^W
+ $Id$
+ ***********************************************/
+
+#include "incs.h"
+
+// =========================================================
+#define TAP 64
+#define FIL_COEFF_QUANT 10
+const s8 lpf_coeff[]={
+/*
+Window Function Algorithm LPF
+Sampling Frequency = 100.0
+cutoff1 = 6.0000000
+Tap Count =64
+Kaiser Constant = 7.000000
+Quantized by 11 [bits]
+ */
+/* 0,// [0]
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+*/
+ 1,// 8
+ 2,
+ 2,
+ 3,
+ 3,
+ 2,
+ 0,
+ -2,
+ -5,// 16
+ -9,
+ -13,
+ -16,
+ -16,
+ -13,
+ -6,
+ 4,
+ 18,// 24
+ 37,
+ 56,
+ 77,
+ 95,
+ 110,
+ 119,
+ 122,
+ 119,// 32
+ 110,
+ 95,
+ 77,
+ 56,
+ 37,
+ 18,
+ 4,
+ -6,// 40
+ -13,
+ -16,
+ -16,
+ -13,
+ -9,
+ -5,
+ -2,
+ 0,// 48
+ 2,
+ 3,
+ 3,
+ 2,
+ 2,
+ 1,
+/*
+ 0,
+ 0,// 56
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+*/
+};
diff --git a/tags/2.19_SDK4(3rdNUP)/pedo_lpf_coeff.h b/tags/2.19_SDK4(3rdNUP)/pedo_lpf_coeff.h
new file mode 100644
index 0000000..f81d6c2
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/pedo_lpf_coeff.h
@@ -0,0 +1,84 @@
+#ifndef _pedo_coeff_h_
+#define _pedo_coeff_h_
+
+// =========================================================
+#define TAP 64
+#define FIL_COEFF_QUANT 10
+const s8 lpf_coeff[]={
+/*
+Window Function Algorithm LPF
+Sampling Frequency = 100.0
+cutoff1 = 6.0000000
+Tap Count =64
+Kaiser Constant = 7.000000
+Quantized by 11 [bits]
+ */
+/* 0,// [0]
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+*/
+ 1,// 8
+ 2,
+ 2,
+ 3,
+ 3,
+ 2,
+ 0,
+ -2,
+ -5,// 16
+ -9,
+ -13,
+ -16,
+ -16,
+ -13,
+ -6,
+ 4,
+ 18,// 24
+ 37,
+ 56,
+ 77,
+ 95,
+ 110,
+ 119,
+ 122,
+ 119,// 32
+ 110,
+ 95,
+ 77,
+ 56,
+ 37,
+ 18,
+ 4,
+ -6,// 40
+ -13,
+ -16,
+ -16,
+ -13,
+ -9,
+ -5,
+ -2,
+ 0,// 48
+ 2,
+ 3,
+ 3,
+ 2,
+ 2,
+ 1,
+/*
+ 0,
+ 0,// 56
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+*/
+};
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/pedometer.h b/tags/2.19_SDK4(3rdNUP)/pedometer.h
new file mode 100644
index 0000000..8760308
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/pedometer.h
@@ -0,0 +1,36 @@
+#ifndef _pedo_
+#define _pedo_
+
+#ifdef WIN32
+typedef unsigned char bit;
+typedef unsigned char u8;
+typedef unsigned short u16;
+
+
+#endif
+
+
+// =========================================================
+extern bit pedolog_read_msb;
+
+
+
+// =========================================================
+//void hosu_read_end( ); }N
+#define hosu_read_end() pedolog_read_msb = 0
+
+u8 hosu_read( );
+void hosu_increment_if_necessary();
+void fill_hosu_hist_hours( u16 );
+void clear_hosu_hist();
+void pedometer();
+
+
+
+// =========================================================
+#define PEDOMETER_LOG_SIZE ( 24 * 7 )
+
+
+
+// =========================================================
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/pm.c b/tags/2.19_SDK4(3rdNUP)/pm.c
new file mode 100644
index 0000000..5905990
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/pm.c
@@ -0,0 +1,1444 @@
+/* ========================================================
+ 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
+
+
+
+// ========================================================
+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[YiMGICNAKjȂ
+ ***********************************************/
+static void update_chg_led()
+{
+ static bit temp_led_chg;
+
+ 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Ƃ̂łAꂪԋ
+ if( ! BT_IN_CHG_delayed_n ) // bt_get_charge_status()ōXV܂B
+ {
+ temp_led_chg = true;
+ }
+
+ LED_CHARGE = temp_led_chg;
+
+ // WX^̏[drbgLEDɓ
+ set_bit( LED_CHARGE, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE ); // set_bit̂݁B
+ /// 荞݂task_status()ōs
+}
+
+
+
+/********************************************//**
+ x`FbN
+ xtqXeVXL
+ ***********************************************/
+#define RAW_TEMP_LH 75 // 50 [degC]
+#define RAW_TEMP_LL 61 // 55
+#define RAW_TEMP_HL 184 // 1
+#define RAW_TEMP_HH 189 // -1
+#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̃oOsB
+ ***********************************************/
+void bt_get_charge_status()
+{
+ // CCIC̕ŝ߁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 )
+ && !( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR )
+ )
+ {
+ BT_IN_CHG_delayed_n = 0; // [dƈB[dIĂ͂Ȃ
+ }
+ else
+ {
+ BT_IN_CHG_delayed_n = 1;
+ anti_chatter = 0;
+ }
+ }
+}
+
+
+
+/********************************************//**
+ A_v^̗L`FbN
+ ***********************************************/
+void pm_chk_adapter()
+{
+ set_bit( !PM_EXTDC_n, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY );
+
+ if( pm_extdc_old != PM_EXTDC_n ) // HAL ʂ߁A PM_EXTDC_n volatile ɂSzȂ
+ {
+ pm_extdc_old = PM_EXTDC_n;
+ if( !PM_EXTDC_n )
+ {
+ // h
+ set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_CONNECT );
+ chg_led_override = (u8)( 2500 / INTERVAL_TSK_BATT ); // bt_chckwait_ms(5)̐ŐLBtoriaezu蓮 4.5 sec
+ }
+ 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 );
+ }
+ }
+ }
+}
+
+
+
+/********************************************************
+drW̏
+
+@@@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
+ // ʂrcompvZ邪A|C^QƂ̂₾A@ȂvZȂƂʓ|
+
+ 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;
+ }
+ else if( raw_adc_temperature < 4 )
+ {
+ // //
+ system_status.model = MODEL_SHIROBAKO;
+
+ // āFLv`{[h //
+ if(( iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VERSION ) == 0x01 ) &&
+ ( iic_mcu_result == I2C_ERR_OK ))
+ {
+ system_status.captureBox = true;
+ }
+ }
+ else
+ {
+ // @AcIC NACK( obe܂͎cIC̏ )
+ system_status.model = MODEL_JIKKI; // obe̎́ŏ㏑
+ }
+
+ // TShome{^A@͖ڑȂ̂ŗv[q /// gndɂƂ悩c
+ if( system_status.model == MODEL_TS_BOARD )
+ {
+ PM_SW_HOME_n_TSBOARD = 1;
+ }
+ else
+ {
+ PM_SW_HOME_n_TSBOARD = 0;
+ SW_HOME_n_TSBOARD_RAW = 0; /// @open ǂł
+ }
+
+ // dr[J[̎ //
+ {
+ u8 i;
+
+ battery_manufacturer = BT_VENDER_OPEN; // ftHgl
+ for(i=0; i<=7; i++)
+ {
+ if( temp <= BT_MANUF_BORDER[ i ] )
+ {
+ battery_manufacturer = (BT_VENDER)i;
+ break;
+ /*
+ BT_VENDER_MAXELL; // = 0
+ BT_VENDER_1;
+ BT_VENDER_2;
+ BT_VENDER_3;
+ BT_VENDER_4;
+ BT_VENDER_PANA;
+ BT_VENDER_6;
+
+ BT_VENDER_OPEN;
+ */
+ }
+ }
+ }
+
+
+ if( ( battery_manufacturer == BT_VENDER_OPEN ) &&
+ ( system_status.model == MODEL_JIKKI ) )
+ {
+ system_status.model = MODEL_JIKKI_NOBATT;
+ }
+}
+
+
+
+#define MGIC_CMD_QUICKSTART 0x4000
+/********************************************//**
+ MGICNCbNX^[giɃoOj
+ ***********************************************/
+static void BT_mgic_quick_start()
+{
+ wait_ms( 10 ); // MGIC̋NɊ|
+
+ // 0. obecIC NCbNX^[g
+ send_cmd_mgic_2B( BT_GAUGE_REG_MODE, swap_endian_16( MGIC_CMD_QUICKSTART ) );
+
+ wait_ms( 150 );
+}
+
+
+/********************************************//**
+ drcʑ菉
+
+ drp[^Ȃǂ]
+ ***********************************************/
+
+#define MGIC_CMD_UNLOCK_KEY 0x4A57
+#define MGIC_CMD_RESET 0x5400
+static void BT_mgic_init()
+{
+ u8 origParam[4];
+
+ /*
+ // -1. ZbgĂ݂
+ Ⴞ!
+ i2c_send_buff_2B._u16 = swap_endian_16( MGIC_CMD_RESET );
+ send_cmd_mgic_2B( BT_GAUGE_REG_COMMAND ); // NACKԂ
+ */
+
+ if( system_status.model != MODEL_JIKKI )
+ {
+ return;
+ // ܂
+ }
+
+ // 1. bN
+ if( send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( MGIC_CMD_UNLOCK_KEY ) ) != ERR_SUCCESS )
+ {
+ // cIC NACK
+ vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_MGIC_ERR;
+ return;
+ // ܂
+ }
+
+ vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_MGIC_ERR;
+
+ // 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_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_MGIC_ERR;
+ }
+ }
+ }
+ return ( ERR_FINISED );
+}
+
+
+
+/********************************************//**
+ drcICcʂ擾AWX^ɏށB
+
+ @drcICȄȂǂ̎͂Ƃ肠c99%ƂB
+
+ @@@@@@@@ status_1ŊmF\BdɃ`FbNĂ܂B
+
+ @BT_chk()sĂKv܂B
+ ***********************************************/
+void BT_get_left(){
+ u8 temp[2];
+ u8 reg_volatile_temp_bt_remain,reg_volatile_temp_bt_remain_fine; // I2C̔ǂݍ݂ł̂h~ Lbv̏
+ u8 fuel_cap_by_voltage; // dŃLbvɎg
+
+ // drc
+ if( system_status.model == MODEL_TS_BOARD
+ || system_status.model == MODEL_SHIROBAKO )
+ {
+ // TS & //
+ if( read_BT_SOC( temp ) == ERR_SUCCESS )
+ {
+ reg_volatile_temp_bt_remain = temp[0];
+ reg_volatile_temp_bt_remain_fine = temp[1];
+ }
+ else
+ {
+ // G~[V@\
+ // @œdf͕sւ邾낤
+ reg_volatile_temp_bt_remain = 99;
+ reg_volatile_temp_bt_remain_fine = 0;
+ }
+ }
+ else
+ {
+ // @ //
+ // cʃ[h
+ if( read_BT_SOC( temp ) != ERR_SUCCESS )
+ {
+ // cICNACK cobe͂ꂽ
+ vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_MGIC_ERR;
+ bt_authorized = false;
+ reg_volatile_temp_bt_remain = 0;
+ force_off = true;
+ }
+ else
+ {
+ u16 temp_u16;
+
+ vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_MGIC_ERR;
+ // 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);
+ }
+ }
+ }
+
+ // 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 )
+ {
+ 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;
+ }
+ }
+
+
+ // [diA_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.family == FAMILY_SPFL )
+ {
+ // SPFL ȂAt@XHV on Ԃɋ
+ wait_ms( 10 );
+ SPFL_LCD_AMOL_HV_CONT = 1;
+ wait_ms( DELAY_PM_TSS_50B_AND_TCOM - 10 );
+ }
+ else
+ {
+ // CTR
+ wait_ms( DELAY_PM_TSS_50B_AND_TCOM );
+ }
+
+ PM_TCOM_on( );
+
+ wait_ms( DELAY_PM_TCOM_TO_VCS );
+
+ PM_VCS_on( );
+
+ wait_ms( DELAY_PM_VCS_TO_BL );
+
+ if( PM_chk_LDSW() != 0 ) // pX
+ {
+ // dNG[ȂdĂ܂Bł̓PAȂ
+ vreg_ctr[VREG_C_STATUS] |= REG_BIT_LCD_POW;
+ set_irq( VREG_C_IRQ3, REG_BIT_LCD_ON );
+ rv = ERR_SUCCESS;
+ }
+
+ return rv;
+}
+
+
+void PM_LCD_off()
+{
+ // BLĂB// `FbN̂͊荞݂̊W
+ if( ( read_pmic( PM_REG_ADRS_BL ) & 0x03 ) != 0 )
+ {
+ u8 tot;
+
+ PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF );
+ vreg_ctr[VREG_C_STATUS] &= bits8(1,0,0,1, 1,1,1,1);
+
+ if( (( REG_BIT_BL_U_OFF | REG_BIT_BL_L_OFF ) & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] ) != 0 )
+ {
+ vreg_ctr[ VREG_C_IRQ3 ] |= ( ( REG_BIT_BL_U_OFF | REG_BIT_BL_L_OFF ) & ~vreg_ctr[ VREG_C_IRQ_MASK3 ] );
+ IRQ0_neg;
+ tot = 0;
+ while( !IRQ0 && ( ++tot != 0 ) ){;}
+ IRQ0_ast;
+ }
+ vreg_ctr[VREG_C_COMMAND2] &= ~( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF );
+ }
+
+
+
+ // 50msƂ҂AmF܂傤ˁc
+ if( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 )
+ {
+ PM_TCOM_off();
+ wait_ms( 1 );
+ PM_TCOM_VCS_off( );
+ wait_ms( DELAY_PM_LCD_OFF );
+
+ if( system_status.family == FAMILY_SPFL )
+ {
+ // td //
+ SPFL_LCD_AMOL_HV_CONT = 0; // ̃t@~łLȂ̂ŕQȂ
+ wait_ms( 10 ); // At@X15VƂ̃EFCgB
+ }
+
+ PM_VDDLCD_off( ); // cĂ̑S~߂܂B
+ vreg_ctr[VREG_C_STATUS] &= ~REG_BIT_LCD_POW;
+ }
+
+ set_irq( VREG_C_IRQ3, REG_BIT_LCD_OFF ); // ɔB}XNB
+}
+
+
+
+/********************************************//**
+@obNCǧon/off
+
+@@on/off/ێ@̃tOȂ̂Ŗʓ|
+
+@BL on/on ̏ԂŁAon/onɂƌĂAon/on荞݂܂B
+ ***********************************************/
+err PM_BL_set( u8 dat )
+{
+ u8 blset;
+ u8 intset = 0;
+ // RMWs
+
+ // Read
+ blset = read_pmic( PM_REG_ADRS_BL );
+
+ // Modify
+ // ue
+ 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;
+ }
+
+ // shita
+ 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( 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 ( ERR_FINISED );
+}
+
+
+
+/********************************************//**
+ 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ƂɎĝł
+
+ 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 );
+
+ // ZbgȂǁBVXeNI
+ PM_reset_neg();
+ FCRAM_RST_neg;
+ RESET2_neg;
+
+ codec_reg_init(); // CODEC s背WX^(reset2̌łȂƂȂ̂)
+ ntr_pm_reg_shadow = 3<<2; // @V@ȂƂ... 0x00̓}ncodecoOŏȂ̂ŁAêȂl
+
+ return ( ERR_SUCCESS );
+}
+
+
+
+
+/********************************************//**
+ dOFFV[PX
+ ***********************************************/
+void PM_sys_pow_off( )
+{
+// if( RESET1_n )
+ if( PM_chk_LDSW() )
+ {
+ // ُIłȂƂ
+ PM_BL_set( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_L_OFF );
+ PM_LCD_off(); // TCOM,VCS OFF Ă܂B
+ wait_ms( 20 );
+
+ PM_reset_ast();
+ }
+
+ RESET2_ast;
+ FCRAM_RST_ast;
+
+ wait_ms( 20 );
+
+ PM_off( );
+ PM_LDSW_off( );
+
+}
+
+
+
+/********************************************//**
+ extDC荞
+
+ dOFFNi[d̉xĎ̂߁ĵ
+
+ i̓|[O(pm)
+ ***********************************************/
+__interrupt void intp4_extdc( )
+{
+}
+
+
+
+/********************************************//**
+ t^Jߊ荞
+
+ i̓|[O(misc)
+ ***********************************************/
+__interrupt void intp5_shell( )
+{
+ ;
+}
+
+
+/********************************************//**
+ PMICւ̃R}h
+ ***********************************************/
+__interrupt void intp6_PM_irq( )
+{
+ EI();
+ if( system_status.pwr_state == ON )
+ {
+ renge_task_immed_add( tski_ntr_pmic_comm );
+ }
+}
+
+
+/********************************************//**
+ PMIC̊荞݂ā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 ( ERR_FINISED );
+ }
+
+// 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 ( ERR_FINISED );
+}
+
+
+
+/********************************************//**
+ command2 tn
+
+@ bp[IȕBERR_SUCCESSԂȂc
+ ***********************************************/
+task_status_immed tski_PM_LCD_on()
+{
+ PM_LCD_on();
+ return( ERR_FINISED );
+}
+
+task_status_immed tski_PM_LCD_off()
+{
+ PM_LCD_off();
+ return( ERR_FINISED );
+}
+
+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( ERR_FINISED );
+}
+
+
+
+/********************************************//**
+@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;
+ // ΉĂ番R[h
+ if( battery_manufacturer <= BT_VENDER_3 )
+ {
+ bt_type_temp = BT_PARAM_CTR_MAXELL;
+ }
+ else
+ {
+ bt_type_temp = BT_PARAM_CTR_PANA;
+ }
+
+ if( system_status.family == FAMILY_SPFL )
+ {
+ bt_type_temp += BT_PARAM_SPFL_MAXELL; // ItZbg cOȎŁcB
+ }
+ else if( system_status.family == FAMILY_SHRIMP )
+ {
+ bt_type_temp += BT_PARAM_SHRIMP_MAXELL;
+ }
+ p_bt_param = &bt_param[ bt_type_temp ];
+}
+
+
+
+
+#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[hpӂĂȂ̂ł
+ return ERR_SUCCESS;
+ }
+ else
+ {
+ return( read_mgic_2B( BT_GAUGE_REG_VCELL, dest ) );
+ }
+}
+
+
+/********************************************//**
+ drcʂtwlɃtOɕϊ
+ ***********************************************/
+static u8 conv_ctr_bt_to_twl_bt()
+{
+// ntr_pm_bt_low_old = ( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )? NTR_PM_BT_EMPTY: NTR_PM_BT_ENOUGH; // 1œdr
+ if( vreg_ctr[ VREG_C_BT_REMAIN ] <= BATT_TH_LO )
+ {
+ return NTR_PM_BT_EMPTY;
+ }
+ else
+ {
+ return NTR_PM_BT_ENOUGH;
+ }
+}
diff --git a/tags/2.19_SDK4(3rdNUP)/pm.h b/tags/2.19_SDK4(3rdNUP)/pm.h
new file mode 100644
index 0000000..942da87
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/pm.h
@@ -0,0 +1,216 @@
+#ifndef __PM__
+#define __PM__
+
+
+
+#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 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_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Ⴄ)
+
+
+//=========================================================
+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();
+
+
+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 ))
+#define PM_VDD50A_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, ( PM_REG_BIT_VDD | PM_REG_BIT_VDD50A )))
+#define PM_VDD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, 0 ))
+#define PM_off() PM_VDD_off()
+
+#define PM_VDD_normMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_1R15 | 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 ))
+// todo YŃRAdς邩Ȃ
+
+// ق //
+#define PM_reset_neg() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW | PM_REG_BIT_nRST1 )))
+#define PM_reset_ast() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW )))
+#define PM_chk_LDSW() ( read_pmic( PM_REG_ADRS_CONT ) & PM_REG_BIT_LDSW )
+// 1̂ƂAdon
+
+// tnd //
+#define PM_VDDLCD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, pm_reg_bit_vddlcd ))
+#define PM_TCOM_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_TCOM )))
+#define PM_VCS_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_VCS | PM_REG_BIT_LCD_TCOM )))
+#define PM_TCOM_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( pm_reg_bit_vddlcd | PM_REG_BIT_LCD_VCS )))
+#define PM_TCOM_VCS_off() PM_VDDLCD_on()
+#define PM_VDDLCD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, 0 ) )
+
+#define PM_set_BL( dat ) ( send_cmd_pmic( PM_REG_ADRS_BL, dat ) )
+#define PM_set_adc1( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC1, dat ) )
+#define PM_set_adc2( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC2, dat ) )
+
+
+#endif // __PM__
diff --git a/tags/2.19_SDK4(3rdNUP)/pool.h b/tags/2.19_SDK4(3rdNUP)/pool.h
new file mode 100644
index 0000000..81c8091
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/pool.h
@@ -0,0 +1,24 @@
+#ifndef _pool_h_
+#define _pool_h_
+
+
+#include "pedometer.h"
+
+#define VREG_C_FREE_SIZE 200
+
+// Ă郁
+typedef struct _st_vreg_c_ext{
+ unsigned short pedo_log[ PEDOMETER_LOG_SIZE ];
+ unsigned char vreg_c_free[ VREG_C_FREE_SIZE ];
+}st_vreg_c_ext;
+
+typedef union _uni_pool
+{
+ st_vreg_c_ext vreg_c_ext;
+ u8 self_update_work[ 256 ]; // 256ȏ͂܂ƂߏłȂ
+}uni_pool;
+
+extern uni_pool pool;
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/reboot.c b/tags/2.19_SDK4(3rdNUP)/reboot.c
new file mode 100644
index 0000000..53912a5
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/reboot.c
@@ -0,0 +1,23 @@
+/********************************************************//*
+ ނ胊u[g
+
+ t@CɃCCAZuƁA
+ ̃W[SœKȂȂ邽ߒǂo
+ $Id$
+ **********************************************************/
+#pragma SFR
+
+#include "incs_loader.h"
+
+
+void my_reboot(){
+#asm
+
+ MOV PSW,#06H ; _~[PSWZbg
+ MOVW AX,#000d0h ; Zbg̃xN^l荞ł܂B
+ PUSH PSW
+ PUSH AX ; RETÎ߂̃X^bN
+ RETI ; ŃZbgExN^ɕ
+
+#endasm
+}
diff --git a/tags/2.19_SDK4(3rdNUP)/reboot.h b/tags/2.19_SDK4(3rdNUP)/reboot.h
new file mode 100644
index 0000000..c20e11e
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/reboot.h
@@ -0,0 +1,6 @@
+#ifndef __MYREBOOT__
+#define __MYREBOOT__
+
+void my_reboot();
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/renge/renge.c b/tags/2.19_SDK4(3rdNUP)/renge/renge.c
new file mode 100644
index 0000000..bab45cc
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/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@ERR_FINISED@^XN폜
+@@@@ȊO ̃^C~Oł܂s
+
+ *****************************************************************************/
+
+
+/**************************************
+ **************************************/
+void renge_task_immed_init(){
+ u8 i;
+
+ for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i++ ){
+ tasks_immed[ i ] = TSK_IMM_EMPTY_;
+ }
+}
+
+
+
+/**************************************
+ s^XN̓o^
+ 荞֎~ 36us
+ **************************************/
+__callt err renge_task_immed_add( task_status_immed (*new_task)() ){
+ u8 i;
+
+ // Xg̋̐擪ɓo^
+ // 폜̃^XŃA폜}[N(TSK_IMM_DELETED_)ƂȂAƂ͖Iɋʂ
+ // do^
+ for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i ++ )
+ {
+ DI_wt_chk();
+ if( tasks_immed[ i ] == TSK_IMM_EMPTY_ )
+ {
+ //
+ tasks_immed[ i ] = new_task;
+ EI();
+ return( ERR_SUCCESS );
+ }
+ else
+ {
+ // do^`FbN
+ /// ɂȂĂȂAOl߂ĂO
+ if( tasks_immed[ i ] == new_task )
+ {
+ // do^͂Ȃ
+ EI();
+ return( ERR_ERR );
+ }
+ }
+ EI();
+ }
+ // ^XNo^(͂
+ return( ERR_ERR );
+}
+
+
+
+/**************************************
+ s^XN̎s
+ **************************************/
+__callt err renge_task_immed_run(){
+ u8 list_id;
+
+// while( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ )
+ if( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ )
+ {
+ DI_wt_chk();
+ for( list_id = 0; list_id < TASK_IMMED_RUN_LIST_MAX; list_id ++ ){
+ if( tasks_immed[ list_id ] == TSK_IMM_EMPTY_ ){
+ // Xg
+ EI();
+ break;
+ }
+#ifdef _renge_test_
+ else if( tasks_immed[ list_id ] == TSK_IMM_DELETED_ )
+ {
+ EI();
+ NOP();
+ // ^XNǗ̕s
+ // ݂Ȃ^XNs悤Ƃ
+ // ^XN̍폜̏܂
+ // \Ȃ^C~O immed_run Ăꂽ
+ }
+#endif
+ else
+ {
+ u8 rv;
+
+ EI();
+ rv = tasks_immed[ list_id ](); // ^XNs
+ if( rv == ERR_SUCCESS )
+ {
+ tasks_immed[ list_id ] = TSK_IMM_DELETED_;
+ }
+ // ǂ^C~Oœ^XN̓o^ƍ̂DIԂłė鎖
+ }
+ DI_wt_chk();
+ }
+ // Xg̃^XNʂs
+
+ // ^XN폜 //
+ {
+ u8 i = 0; // Xg̕בւ
+ u8 j = 1;
+
+ // K i < jAj < TASK_IMMED_RUN_LIST_MAX (łȂƃ^XNӂ)
+ while( 1 )
+ {
+ if( tasks_immed[ i ] == TSK_IMM_EMPTY_ )
+ {
+ // Olߊ && Xg
+ // break;
+ goto imm_list_sort_fin;
+ }
+ else if( tasks_immed[ i ] == TSK_IMM_DELETED_ )
+ {
+ for( ; j < TASK_IMMED_RUN_LIST_MAX; j++ )
+ {
+ if( tasks_immed[ j ] == TSK_IMM_DELETED_ )
+ {
+ // ׁiHj폜Ώۂ
+ // next j
+ }
+ else
+ {
+ DI_wt_chk();
+ if( tasks_immed[ j ] == TSK_IMM_EMPTY_ )
+ {
+ do{
+ j --;
+ tasks_immed[ j ] = TSK_IMM_EMPTY_;
+ // XgOlߊ
+ }while( i < j );
+ EI();
+ goto imm_list_sort_fin;
+ }
+ else
+ {
+ // Ol߂ׂ^XN
+ tasks_immed[ i ] = tasks_immed[ j ];
+ tasks_immed[ j ] = TSK_IMM_DELETED_;
+ i ++;
+ EI();
+ }
+ }
+ }
+ }
+ else
+ {
+ // ̃^XNAؗ
+ }
+ i ++;
+ }
+ }
+ }
+
+imm_list_sort_fin:
+ // ܂łŊSɑOl߂Ă
+#ifdef _renge_test_
+ /// ق?
+ {
+ u8 a,b;
+
+ a = 0;
+ for( b = 0 ; b < TASK_IMMED_RUN_LIST_MAX; b++ )
+ {
+ if( tasks_immed[ b ] == TSK_IMM_EMPTY_ )
+ {
+ a = 1;
+ }
+ else
+ {
+ if( a != 0 )
+ {
+ NOP(); // EMPTYɃ^XNdeletedL
+ }
+ }
+ }
+ }
+#else
+ NOP(); // ȂƃJ{
+#endif
+// }
+ return( ERR_SUCCESS );
+}
diff --git a/tags/2.19_SDK4(3rdNUP)/renge/renge.h b/tags/2.19_SDK4(3rdNUP)/renge/renge.h
new file mode 100644
index 0000000..9c7b2e4
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/renge/renge.h
@@ -0,0 +1,26 @@
+#ifndef __renge__
+#define __renge__
+
+//******************************************************************************
+
+
+
+//******************************************************************************
+#include "renge_defs.h"
+#include "renge_task_immediate.h"
+// #include "renge_task_interval_run.h" // O狭N֎~I
+
+//******************************************************************************
+void renge_init();
+void renge_task_immed_init();
+__callt err renge_task_immed_run();
+__callt err renge_task_immed_add( task_status_immed (*p_task_func)() );
+// static err renge_task_immed_del( u8 );
+
+
+//******************************************************************************
+__callt err renge_task_interval_run();
+extern u8 renge_flg_interval;
+extern bit renge_task_interval_run_force; // ^XNstO
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/renge/renge_defs.h b/tags/2.19_SDK4(3rdNUP)/renge/renge_defs.h
new file mode 100644
index 0000000..0199d76
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/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
+{
+ ERR_FINISED = 0,
+ ERR_CONTINUE
+}IMMED_TASK_ERR;
+
+
+
+/**************************************
+ C^[oN
+ *************************************/
+typedef void task_status;
+
+
+/**************************************
+ Ñ^XNXg
+ p~ɂȂ邩Ȃ
+ *************************************/
+typedef IMMED_TASK_ERR task_status_immed;
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/renge/renge_task_config.rb b/tags/2.19_SDK4(3rdNUP)/renge/renge_task_config.rb
new file mode 100644
index 0000000..c2de509
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/renge/renge_task_config.rb
@@ -0,0 +1,59 @@
+#!/usr/bin/ruby -Ks
+
+tasklist = Array.new
+
+
+if( ARGV[0] == nil )
+ printf( "t@C renge_tasks.txt gp܂" )
+ datfile = "renge_tasks.txt"
+else
+ datfile = ARGV[0]
+end
+
+if( !File.exist?( datfile ) )
+ printf("ݒt@C܂B")
+ exit( 1 )
+end
+
+
+setting = File.open( datfile )
+
+setting.each{|dat|
+ dat.chomp!
+ if( dat != nil )
+ tasklist << dat
+ end
+}
+
+tasklist.each{|dat|
+ printf( "\n%s" , dat )
+}
+printf( "\n----------\n^XN %d \n", tasklist.size )
+
+
+#----- ÓI^XN̗ -------------------------------------------------------
+conf = File.new( "renge_task_intval.h", "w+" )
+
+conf << "/*XNvgɂ鎩łB蓮ŏȂ悢ł*/\n\n"
+conf << "#ifndef __renge_task__\n#define __renge_task__\n\n"
+conf << "#include \"renge_defs.h\"\n\n"
+
+conf << "enum {\n "
+tasklist.each{|dat|
+ conf << "TSK_" << dat.upcase << ", "
+}
+conf << "TSK_LAST \n };\n\n"
+
+
+tasklist.each{|dat|
+ conf << "extern void tsk_" << dat << "();\n"
+}
+conf << "\n"
+
+conf << "const void ( *tasks[ TSK_LAST ] )() = {\n"
+tasklist.each{|dat|
+ conf << " tsk_" << dat << ",\n"
+}
+conf << " };\n"
+
+conf << "\n#endif\n"
diff --git a/tags/2.19_SDK4(3rdNUP)/renge/renge_task_immediate.h b/tags/2.19_SDK4(3rdNUP)/renge/renge_task_immediate.h
new file mode 100644
index 0000000..9ac3bd2
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/renge/renge_task_immediate.h
@@ -0,0 +1,25 @@
+#ifndef __tasks__
+#define __tasks__
+
+#include "renge_defs.h"
+
+// *************************************
+#define TASK_IMMED_RUN_LIST_MAX 10
+
+
+extern task_status_immed tski_do_command0( );
+extern task_status_immed tski_ntr_pmic_comm();
+extern task_status_immed tski_acc_read();
+extern task_status_immed tski_acc_write();
+//extern task_status_immed tski_acc_setup(); // accero.h
+extern task_status_immed tski_mcu_reset();
+extern task_status_immed tski_vol_update();
+
+
+// *************************************
+#define TSK_IMM_EMPTY_ ( void * )( 0x0000 )
+#define TSK_IMM_DELETED_ ( void * )( 0x0001 )
+
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/renge/renge_task_intval.h b/tags/2.19_SDK4(3rdNUP)/renge/renge_task_intval.h
new file mode 100644
index 0000000..9b0d9ea
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/renge/renge_task_intval.h
@@ -0,0 +1,37 @@
+/*XNvgɂ鎩łB蓮ŏȂ悢ł*/
+
+#ifndef __renge_task__
+#define __renge_task__
+
+#include "renge_defs.h"
+
+enum TSK
+{
+ TSK_SW, TSK_ADC, TSK_BATT, TSK_LED_POW, TSK_LED_WIFI, TSK_LED_NOTIFY, TSK_LED_CAM, TSK_MISC, TSK_STATUS, TSK_SYS, TSK_LAST
+ };
+
+extern void tsk_sw();
+extern void tsk_adc();
+extern void tsk_batt();
+extern void tsk_led_pow();
+extern void tsk_led_wifi();
+extern void tsk_led_notify();
+extern void tsk_led_cam();
+extern void tsk_misc();
+extern void tsk_status();
+extern void tsk_sys();
+
+const void ( *tasks[ TSK_LAST ] )() = {
+ tsk_sw,
+ tsk_adc,
+ tsk_batt,
+ tsk_led_pow,
+ tsk_led_wifi,
+ tsk_led_notify,
+ tsk_led_cam,
+ tsk_misc,
+ tsk_status,
+ tsk_sys,
+ };
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/renge/renge_tasks.txt b/tags/2.19_SDK4(3rdNUP)/renge/renge_tasks.txt
new file mode 100644
index 0000000..73af545
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/renge/renge_tasks.txt
@@ -0,0 +1,11 @@
+sw
+adc
+batt
+led_pow
+led_wifi
+led_notify
+led_cam
+misc
+status
+debug
+sys
diff --git a/tags/2.19_SDK4(3rdNUP)/rtc.c b/tags/2.19_SDK4(3rdNUP)/rtc.c
new file mode 100644
index 0000000..dd2d1a9
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/rtc.c
@@ -0,0 +1,182 @@
+/* ========================================================
+ RTC
+ $Id$
+ ======================================================== */
+#ifndef _WIN32
+
+#pragma sfr
+#pragma inline
+
+#endif
+
+#include "incs.h"
+
+
+#define RTC_DATA_SIZE 7
+// ========================================================
+static u8 rtc_work[RTC_DATA_SIZE];
+static bit rtc_lock;
+static bit rtc_dirty;
+bit rtc_alarm_dirty;
+
+
+/********************************************//**
+ ytF̏
+
+ WX^̓drrbg̃Zbg
+ ***********************************************/
+void RTC_init( void )
+{
+
+ if( !RTCEN ) // rbgĂ烊u[g
+ {
+ RTCEN = 1; // W[ON
+
+ // RTCݒ
+ RTCC0 = bits8(0,0,0,0, 1,0,0,0); /* ~A24ԐA32kóu܂ȂvA荞݂Ȃ */
+ // (RTCE 0 RCLOE1 RCLOE0 AMPM CT2 CT1 CT0)
+ RTCC1 = bits8(1,1,0,0, 0,0,0,0); /* A[荞ݗLJn */
+ // (WALE WALIE 0 WAFG RIFG 0 RWST RWAIT)
+ RTCC2 = bits8(1,0,0,0, 0,0,0,0); /* C^[o:32k/2^6=2msARTCDIVo͂Ȃ */
+ // (RINTE RCLOE2 RCKDIV 0 0 ICT2 ICT1 ICT0)
+
+ HOUR = 0x00;
+ MIN = 0x00;
+ SEC = 0x00;
+ MONTH = 0x01;
+ DAY = 0x01;
+ WEEK = 0x01; // Mon
+ YEAR = 0x01;
+
+ ALARMWW = 0x7F;
+
+ vreg_ctr[VREG_C_MCU_STATUS] |= REG_BIT_RTC_BLACKOUT;
+ }
+ // 荞ݐݒ
+ RTCIF = 0;
+ RTCIIF = 0;
+ RTCMK = 1; /* 荞()֎~ */
+ RTCIMK = 0; /* 荞(A[&C^[o) */
+
+ RTCE = 1; /* Jn */
+
+ RWAIT = 1;
+ while( !RWST )
+ {;}
+ RWAIT = 0;
+
+ rtc_lock = false;
+ rtc_dirty = false;
+ rtc_alarm_dirty = false;
+}
+
+
+
+/********************************************//**
+ RTC A[荞
+ ***********************************************/
+__interrupt void int_rtc( )
+{
+ RWAIT = 1;
+ while( !RWST )
+ {;}
+ // tw
+ if( ( vreg_ctr[VREG_C_RTC_ALARM_DAY] == DAY )
+ && ( vreg_ctr[VREG_C_RTC_ALARM_MONTH] == MONTH )
+ && ( vreg_ctr[VREG_C_RTC_ALARM_YEAR] == YEAR ) )
+ {
+ set_irq( VREG_C_IRQ1, REG_BIT_RTC_ALARM );
+ }
+ RWAIT = 0;
+}
+
+
+
+/********************************************//**
+ RTC ̃[h
+
+ WX^́Asec,min,hour,week,day,month,year ̏
+ ***********************************************/
+void rtc_buf_refresh( )
+{
+ if( !rtc_lock )
+ {
+ rtc_lock = true;
+ RWAIT = 1;
+ while( !RWST )
+ {;}
+
+ memcpy( &vreg_ctr[VREG_C_RTC_SEC], &SEC, RTC_DATA_SIZE );
+ RWAIT = 0;
+// renge_task_immed_add( tski_rtc_close );
+ }
+}
+
+
+
+/********************************************//**
+ RTC ̃Cg
+
+ set_rtc_close ƑŎgĉB
+
+ ̓obt@ɃRs[邾ŁA
+ ۂRTCɃZbĝset_rtc_close()łB
+ ***********************************************/
+void set_rtc( u8 adrs, u8 data )
+{
+ if( !rtc_dirty )
+ {
+ rtc_dirty = true;
+ memcpy( rtc_work, &SEC, RTC_DATA_SIZE );
+// renge_task_immed_add( tski_rtc_close ); // I2CIɍs
+ }
+ rtc_work[adrs] = data;
+}
+
+
+
+/********************************************//**
+ KvȂARTCWX^̍XV
+ ***********************************************/
+// task_status_immed tski_rtc_close(){
+void rtc_unlock( )
+{
+ // [hbN
+ rtc_lock = false;
+
+ // CgbN
+ if( rtc_dirty )
+ {
+ rtc_dirty = false;
+ RWAIT = 1;
+ while( !RWST )
+ {;}
+ memcpy( &SEC, rtc_work, RTC_DATA_SIZE );
+ RWAIT = 0;
+ }
+
+ // A[Zbg
+ if( rtc_alarm_dirty )
+ {
+ rtc_alarm_dirty = false;
+ WALE = 0;
+ ALARMWM = vreg_ctr[VREG_C_RTC_ALARM_MIN];
+ ALARMWH = vreg_ctr[VREG_C_RTC_ALARM_HOUR];
+ WALE = 1;
+ }
+}
+
+
+
+
+/********************************************//**
+ RTC VXe`bN^C}荞݃xN^
+
+ 2^6/fXTi1.953125 msj
+ ***********************************************/
+__interrupt void int_rtc_int( )
+{
+// renge_flg_interval ++; // CNg/fNg߂ĝ DI()sv
+ renge_flg_interval = 1; // set1߂ĝ DI()sv
+}
+
diff --git a/tags/2.19_SDK4(3rdNUP)/rtc.h b/tags/2.19_SDK4(3rdNUP)/rtc.h
new file mode 100644
index 0000000..6b2d9f8
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/rtc.h
@@ -0,0 +1,21 @@
+#ifndef __rtc_h__
+#define __rtc_h__
+
+
+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() { RCLOE0 = 1; }
+#define RTC_32k_off() { RCLOE0 = 0; }
+
+
+// ------------------------------------
+extern bit rtc_alarm_dirty;
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/self_flash.c b/tags/2.19_SDK4(3rdNUP)/self_flash.c
new file mode 100644
index 0000000..a662d07
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/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 gCH
+ alert(1);
+ }
+
+ /* t@[̃XgA
+ 0x4800 - 0x7FFF (ubN 18 - 27)
+ 0x2000 - 0x47FF (ubN 8 - 17) փRs[
+ */
+ if( firm_duplicate( ALTERNATE_FIRMTOP, FIRM_TOP ) != ERR_SUCCESS )
+ {
+ alert(2);
+ }
+ DBG_LED_off;
+
+ // todo XgAsALEDƂāAT[rXɂĂ炤H
+
+ FSL_ForceReset(); // ZbgA߂ĂȂ
+}
+
+
+
+/********************************************//**
+tbV̏̂߂̑O
+ ***********************************************/
+static void FSL_Open( void )
+{
+ /* save the configuration of the interrupt controller and set */
+#ifdef FSL_INT_BACKUP
+ fsl_MK0L_bak_u08 = MK0L; /* if (interrupt backup required) */
+ fsl_MK0H_bak_u08 = MK0H; /* { */
+ fsl_MK1L_bak_u08 = MK1L; /* */
+ fsl_MK1H_bak_u08 = MK1H; /* save interrupt controller */
+ fsl_MK2L_bak_u08 = MK2L; /* configuration */
+ fsl_MK2H_bak_u08 = MK2H; /* */
+ MK0L = FSL_MK0L_MASK; /* */
+ MK0H = FSL_MK0H_MASK; /* */
+ MK1L = FSL_MK1L_MASK; /* prepare interrupt controller */
+ MK1H = FSL_MK1H_MASK; /* for selfprogramming */
+ MK2L = FSL_MK2L_MASK; /* */
+ MK2H = FSL_MK2H_MASK; /* } */
+#endif
+
+ while( DST1 ){;} // DMA~
+ DEN1 = 0;
+
+ MK0 = 0xFFFF;
+ MK1 = 0xFFFF;
+ MK2 = 0xFFFF;
+/*
+ LVIM = bits8(0,0,0,0, 0,0,1,0);
+ LVIS = bits8(0,0,0,0, 1,0,0,0);
+ LVIM = bits8(1,0,0,0, 0,0,1,0);
+*/
+ FSL_FLMD0_HIGH; // tbVւ
+}
+
+
+
+/********************************************//**
+tbV̏I
+ ***********************************************/
+static void FSL_Close( void )
+{
+ // nH
+
+ FSL_FLMD0_LOW; // tbVCgveNg
+
+#ifdef FSL_INT_BACKUP
+ MK0L = fsl_MK0L_bak_u08; /* do{ */
+ MK0H = fsl_MK0H_bak_u08; /* restore interrupt controller */
+ MK1L = fsl_MK1L_bak_u08; /* configuration */
+ MK1H = fsl_MK1H_bak_u08; /* */
+ MK2L = fsl_MK2L_bak_u08; /* */
+ MK2H = fsl_MK2H_bak_u08; /* } */
+#endif
+}
+
+
+
+/********************************************//**
+@}CRŃt@[Rs[܂B
+
+ __far u8 * p_rom Rs[̐擪AhX
+
+ block_dest Rs[̐擪ubN
+
+ Rs[ɏ悤my_FSL_Init炩ߎsKv܂B
+ ***********************************************/
+static err firm_duplicate( u8 block_src,
+ u8 block_dest )
+{
+ u8 target_block;
+ u8 split_write_count; // ubNւ܂ރJE^
+ __far u8* p_src = ( __far u8* )( block_src * 0x400 );
+ u8 retry_error;
+
+ led_print(1);
+
+ // ݐubN̐JԂ
+ for( target_block = block_dest;
+ target_block < ( block_dest + FIRM_SIZE );
+ target_block ++ )
+ {
+ led_print(2);
+ WDT_Restart( );
+ // ubN
+ retry_error = 5 + 1;
+ while( FSL_BlankCheck( target_block ) != FSL_OK )
+ {
+ led_print(3);
+ FSL_Erase( target_block );
+ if( -- retry_error == 0 )
+ {
+ // tbVH
+ FSL_Close( );
+ return ( ERR_ERR ); // ZbgA݂@ǂȂ邩m
+ }
+ }
+
+ led_print(4);
+ // ݕJԂ
+ for( split_write_count = 0;
+ split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM;
+ split_write_count ++ )
+ {
+ u16 buff_written_size;
+ u8* p_buff;
+
+ // ݃f[^obt@ɂ߂
+ buff_written_size = 0;
+ p_buff = &pool.self_update_work[0];
+ do
+ {
+ *p_buff = *p_src;
+ p_src ++;
+ p_buff ++;
+ buff_written_size ++;
+ }
+ while( buff_written_size != SELF_UPDATE_BUFF_SIZE );
+
+ //
+ if( FSL_Write( ( fsl_u32 ) ( target_block * SAM_BLOCK_SIZE
+ + split_write_count * SELF_UPDATE_BUFF_SIZE ),
+ ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) )
+ != FSL_OK )
+ {
+ // Jo̓u[g //
+ FSL_Close( );
+ led_print(5);
+// while(1){}
+ return ( ERR_ERR );
+ }
+ }
+ led_print(6);
+
+ // 1ubN݊Bd`FbNs
+ while( FSL_IVerify( target_block ) != FSL_OK )
+ {
+ // Jo̓u[g //
+ led_print(7);
+ return ( ERR_ERR );
+ }
+ }
+ return( ERR_SUCCESS );
+
+}
+
+
+
+/********************************************//**
+ƔœtbV̏
+ ***********************************************/
+static err my_FSL_Init()
+{
+ u8 rv;
+
+ RTCE = 0;
+
+ // ւO //
+ DI( );
+ FSL_Open( ); // 荞֎~Ȃ
+
+ FSL_Init( &pool.self_update_work[0] ); // CuB荞ݒfl
+ rv = FSL_ModeCheck( ); // CgveNg`FbNBs邱Ƃl
+
+ return( (err)rv );
+}
+
+
+/********************************************//**
+MCUZbg
+
+system_status.reboot ܂B
+ ***********************************************/
+task_status_immed tski_mcu_reset()
+{
+ // ʂɍċN
+ my_FSL_Init();
+
+ FSL_ForceReset(); // Zbg
+ FSL_Close( );
+
+ // یH //
+ mcu_wdt_reset;
+ return( ERR_SUCCESS ); // no reach
+}
+
+
+
+/********************************************//**
+ɃG[ۂLED_łăG[ʒm
+
+l悤ł͂ȂAIVȂǂŃpX`FbN
+
+fobKgȂԂȂ̂ LEDprintf fobÔ߁B
+ ***********************************************/
+#ifdef _DBG_LED_PRINT_
+// P1.5 = led_pow_red_old
+void alert( u8 num )
+{
+ u8 i;
+
+ while(1)
+ {
+ WDT_Restart();
+ LED_POW1 = 1;
+ for( i = 0; i < num; i++ )
+ {
+ DBG_LED_on;
+ DBG_LED_off;
+ }
+ LED_POW1 = 0;
+ }
+}
+
+
+/********************************************//**
+ɃG[ۂLED_łăG[ʒmiQj
+
+l悤ł͂ȂAIVȂǂŃpX`FbN
+
+fobKgȂԂȂ̂ LEDprintf fobÔ߁B
+ ***********************************************/
+void led_print( u8 num )
+{
+ u8 i;
+
+ DBG_LED_on;
+ for( i = 0; i < num; i++ )
+ {
+ LED_POW1 = 1;
+ LED_POW1 = 0;
+ }
+ DBG_LED_off;
+}
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/self_flash.h b/tags/2.19_SDK4(3rdNUP)/self_flash.h
new file mode 100644
index 0000000..768565e
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/self_flash.h
@@ -0,0 +1,9 @@
+#ifndef _self_flash_h_
+#define _self_flash_h_
+
+
+void firm_update();
+
+
+#endif
+
diff --git a/tags/2.19_SDK4(3rdNUP)/sw.c b/tags/2.19_SDK4(3rdNUP)/sw.c
new file mode 100644
index 0000000..4cc3142
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/sw.c
@@ -0,0 +1,205 @@
+/* ========================================================
+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
+ {
+ 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;
+ }
+ }
+ }
+}
+
diff --git a/tags/2.19_SDK4(3rdNUP)/sw.h b/tags/2.19_SDK4(3rdNUP)/sw.h
new file mode 100644
index 0000000..abe9715
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/sw.h
@@ -0,0 +1,20 @@
+#ifndef _sw_
+#define _sw_
+
+#include "config.h"
+
+extern u16 SW_pow_count;
+extern bit SW_pow_mask;
+
+#define INTERVAL_TSK_SW 8
+#define CLICK_THRESHOLD 5
+
+#define HOLD_THREASHOLD (u16)( 3000 /INTERVAL_TSK_SW )
+#define TIME_PWSW_CLICK (u8)( 220 /INTERVAL_TSK_SW )
+#define FORCEOFF_THREASHOLD (u8)( 12000 /INTERVAL_TSK_SW /16 )
+
+
+extern u16 off_timeout_timer;
+#define clear_pow_off_countdown(){ off_timeout_timer = 0; force_off = false; }
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/task_debug.c b/tags/2.19_SDK4(3rdNUP)/task_debug.c
new file mode 100644
index 0000000..0fd66a7
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/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 ( ERR_FINISED );
+ // ERR_FINISED ^XN폜
+ // ERR_CONTINUE ɂȂ荞݂ȂA[U[ȂAVXe`bN
+ // Ƃɍēxs
+}
+
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/task_misc.c b/tags/2.19_SDK4(3rdNUP)/task_misc.c
new file mode 100644
index 0000000..37bb0d6
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/task_misc.c
@@ -0,0 +1,424 @@
+/* ========================================================
+ ̑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 ( ERR_CONTINUE );
+ }
+*/
+ return ( ERR_FINISED );
+}
+
+
+
+/* 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[] = {
+ &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,
+// LED_pow_red, /* 10 */
+ &infos_bits[0],
+ (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],
+// &LED_CAM,
+ (u8*)&LED_duty_WiFi,
+ &infos_temp[4] /* 18 */
+ /* ڑƂ KOUMOKU ɒ */
+};
+
+/********************************************//**
+@fobOpɃXe[^XԂBigXe[^X 0x7Fj
+
+@Ԓl̓f[^̂
+
+ oĂ鏇́A
+
+ - 1) vbgtH[
+ - 2) PMIC o[W
+ - 3) dr[J[
+ - 4) KXQ[Wo[W
+ - 5) V
+ - 6) ( rcomp & 0xFF )
+ - 7) raw_adc_temperature
+ - 8) ( !temp_zone_charge_disable | ( bt_authorized << 1 ) )
+ - 9) m点LED̓tJ[H
+ - 10) system_status.family
+ ***********************************************/
+u8 extinfo_read(void)
+{
+ u8 ret = 0xFF;
+
+ /*
+ * temp͌vZKvȃf[^Bɗ]TȂ̂ŌvZKv
+ * ϐ́Av/svɊւ炸vZ|V[
+ */
+
+ if( iic_burst_state < KOUMOKU )
+ {
+ infos_temp[0] = system_status.captureBox? MODEL_CAPTURE_BOX
+ : ( system_status.is_dev? MODEL_ISBAKO: (u8)system_status.model );
+ infos_temp[1] = (u8)( _dbg_rcomp & 0xFF );
+ infos_temp[2] = ( !temp_zone_charge_disable | ( bt_authorized << 1 ) );
+ infos_temp[3] = 1; /* dlύXɂ1ŒɂȂ */
+ infos_temp[4] = 0
+// | ( PM_EXTDC_n ? REG_BIT_HAL0_PM_EXTDC_n : 0 ) // status0ɂ
+ | ( RBR_RESET_n ? REG_BIT_HAL0_PM_EXTDC_n : 0 ) // g킹Ă炤
+ | ( 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ɂ
+ | ( RBR_FLIGHT ? REG_BIT_HAL0_SHELL_OPEN : 0 ) // g킹Ă炤
+ | ( SW_WIFI_n ? REG_BIT_HAL0_SW_WIFI_n : 0 )
+ | ( SW_HOME_n ? REG_BIT_HAL0_SW_HOME_n : 0 )
+ | ( SW_POW_n ? REG_BIT_HAL0_SW_POW_n : 0 );
+
+ infos_bits[0] = (u8)LED_pow_red;
+ infos_bits[1] = (u8)LED_CAM;
+
+ ret = *infos_table[iic_burst_state];
+ iic_burst_state ++;
+ }
+
+ return ret;
+}
+
+
+#ifdef i2c_timeout_test
+/********************************************//**
+ifobOpjI2C_mcu ɃvgRᔽ(g`)oꂽSLED_Ēʒm
+ ***********************************************/
+void i2c_mcu_error_monitor()
+{
+ LED_duty_pow_blu = 0xff;
+ LED_duty_3d = 0xff;
+ LED_duty_notify_red = 0xff;
+ LED_duty_notify_grn = 0xff;
+ LED_duty_notify_blu = 0xff;
+ LED_pow_red = 1;
+ LED_CAM = 1;
+}
+#endif
+
diff --git a/tags/2.19_SDK4(3rdNUP)/task_status.c b/tags/2.19_SDK4(3rdNUP)/task_status.c
new file mode 100644
index 0000000..644bd7a
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/task_status.c
@@ -0,0 +1,89 @@
+/* ********************************************************
+ ꕔ̃Xe[^XWX^XVAKvɉĊ荞݂܂B
+
+ $Id$
+********************************************************* */
+
+#ifndef _WIN32
+
+#pragma SFR
+#pragma NOP
+#pragma HALT
+#pragma STOP
+
+#endif
+
+#include "incs_loader.h"
+#include "renge\renge.h"
+
+#include "pm.h"
+
+#include "accero.h"
+#include "adc.h"
+#include "i2c_mcu.h"
+#include "led.h"
+
+
+/********************************************//**
+ Xe[^XWX^́A
+ - WJ
+
+ Ŋ荞݂KvłΔ܂B
+ todo: H
+ ***********************************************/
+void tsk_status( )
+{
+ static u8 state_old; // Xe[^Xωo荞 ̈
+ u8 diff;
+
+ // WJ`FbN
+ set_bit( SHELL_OPEN, vreg_ctr[VREG_C_STATUS], REG_BIT_ST_SHELL_OPEN );
+
+ // Xe[^XWX^W 荞 //
+ // pm.c ŁȀōs܂B
+ // REG_BIT_LCD_ON/OFF
+ // REG_BIT_BL_ON/OFF
+ // REG_BIT_BT_DC_CONNECT/DISC
+ // REG_BIT_BT_CHG_START/STOP
+
+ diff = (u8)( vreg_ctr[VREG_C_STATUS] ^ state_old );
+ if( diff != 0 )
+ {
+ state_old = vreg_ctr[VREG_C_STATUS];
+
+ if( system_status.pwr_state == ON )
+ {
+ if( diff & REG_BIT_BATT_CHARGE )
+ {
+ // [dԔf
+ if( vreg_ctr[VREG_C_STATUS] & REG_BIT_BATT_CHARGE ) // 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( vreg_ctr[VREG_C_STATUS] & REG_BIT_ST_SHELL_OPEN )
+ {
+ set_irq( VREG_C_IRQ0, REG_BIT_SHELL_OPEN );
+ }
+ else
+ {
+ set_irq( VREG_C_IRQ0, REG_BIT_SHELL_CLOSE );
+ }
+ }
+ }
+ }
+}
+
diff --git a/tags/2.19_SDK4(3rdNUP)/task_sys.c b/tags/2.19_SDK4(3rdNUP)/task_sys.c
new file mode 100644
index 0000000..0c464e1
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/task_sys.c
@@ -0,0 +1,665 @@
+/* ========================================================
+ 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 ) // ZbgĂ܂
+ { // dNsG[
+ 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
+
+ if( system_status.poweron_reason == RSN_PWSW ||
+ system_status.poweron_reason == RSN_TRIAL )
+ {
+ // d{^łon̎́ALED_
+ vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_AUTO;
+ }
+ else
+ {
+ // Ƃ肠ALEDԂŋN
+ vreg_ctr[VREG_C_LED_POW] = LED_POW_ILM_OFF;
+ }
+
+ system_status.pwr_state = ON_TRIG;
+
+ PM_LCD_vcom_set( ); // LCD̑ΌdlȂǏ
+
+ break;
+
+ case ON_TRIG: //-------------------------------------------------------
+#ifdef i2c_timeout_test
+ LED_duty_pow_blu = 0; // debug
+ LED_duty_3d = 0;
+ LED_duty_notify_red = 0;
+ LED_duty_notify_grn = 0;
+ LED_duty_notify_blu = 0;
+ LED_pow_red = 0;
+ LED_CAM = 0;
+ i2c_mcu_time_out_error = false;
+#endif
+ IIC_ctr_Init( );
+ IIC_twl_Init( );
+ RTC_32k_on( );
+
+ 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
+
+ // todo Iɂ͊SɃWX^
+ RBR_RESET_n = 1;
+ RBR_FLIGHT = 0;
+
+ // u[gAXe[^XƂȂXV
+ if( system_status.reboot )
+ {
+ u8 bl_status_temp;
+
+ bl_status_temp = read_pmic( PM_REG_ADRS_BL );
+ vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 );
+ set_bit( ( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ),
+ vreg_ctr[ VREG_C_STATUS ], REG_BIT_LCD_POW );
+ BT_chk();
+ }
+
+ LED_init( ); // reboot́BT_Chk,BT_chkɍs
+
+ system_status.reboot = 0;
+ system_status.pwr_state = ON;
+
+ // WDTZbgAI2C̏܂Ŋ荞ݕۗ
+ // قƂ͂ɂׂȂ...
+ if( ( vreg_ctr[ VREG_C_MCU_STATUS ] & REG_BIT_STATUS_WDT_RESET ) != 0 )
+ {
+ set_irq( VREG_C_IRQ0, REG_BIT_IRQ_WDT_RESET );
+ }
+
+ break;
+
+ case ON: //---------------------------------------------
+ // PMICɂ鋭df`FbN
+ // fobKreset1AT[g邱ƂB̂Ƃ͑SZbg
+ chk_emergencyExit();
+
+ // SLPĎ
+ if( going_to_sleep ) // SLP_REQ ̑Oɗ\
+ {
+ timeout_sleep ++;
+ if( timeout_sleep == 0 || // I[o[t[ҁBsleepČLjuŋNċCȂ
+ ( PIF0 && !SLP_REQ )) // slp荞݂CANĂ܂
+ {
+ PIF0 = 0;
+ send_getup_to_soc();
+ }
+ if( PIF0 && SLP_REQ ){
+ PIF0 = 0;
+ PM_VDD_ecoMode();
+ system_status.pwr_state = SLEEP;
+ renge_task_interval_run_force = true;
+ }
+ }
+
+ // offJEg
+ force_off_check();
+
+#ifndef _TAIKENDAI_SEISAN_SPECIAL_
+ if( system_status.taikendai ) // A_v^玩œdoff
+ {
+ if( PM_EXTDC_n )
+ {
+ system_status.pwr_state = OFF_TRIG;
+ }
+ }
+#endif
+
+ break;
+
+ case SLEEP: //------------------------------------------
+ chk_emergencyExit();
+ // X[v畜A
+ if( !SLP_REQ ){
+ PM_VDD_normMode();
+ wait_ms( 5 ); // tdly_sw
+ send_getup_to_soc();
+ system_status.pwr_state = ON;
+ }
+
+ force_off_check();
+// leak_check();
+
+#ifndef _TAIKENDAI_SEISAN_SPECIAL_
+ if( system_status.taikendai ) // A_v^玩œdoff
+ {
+ if( PM_EXTDC_n )
+ {
+ system_status.pwr_state = OFF_TRIG;
+ }
+ }
+ break; // ł悢B
+#else
+ /* FALLTHROUGH */
+#endif
+
+ default: //---------------------------------------
+ system_status.pwr_state = OFF_TRIG; // 蓾ȂXe[gBfobOp
+// dbg_nop();
+ /* FALLTHROUGH */
+
+ case OFF_TRIG: //---------------------------------------
+ // LED҂
+ vreg_ctr[ VREG_C_LED_POW ] = LED_POW_ILM_OFF;
+ vreg_ctr[ VREG_C_LED_WIFI ] = WIFI_LED_OFF;
+ vreg_ctr[ VREG_C_LED_3D ] = LED_3D_ILM_OFF;
+ info_led_off = true;
+ if( LED_duty_pow_blu != 0 )
+ {
+ return;
+ }
+
+ // dfJEg_E^C}NA
+ clear_pow_off_countdown();
+
+ // xZT~
+ vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x00;
+ tski_acc_setup();
+ EI(); // DIԂłė̂ŁAI2C_mcu ̂ɕKv
+
+ // ̑ytF~
+ LED_stop( );
+ IIC_ctr_Stop( );
+ IIC_twl_Stop( );
+ RTC_32k_off();
+
+ // todo }Nɂł
+ RBR_RESET_n = 0;
+ RBR_FLIGHT = 0;
+
+// dI̊荞݃Zbg
+// PWSW KR3 L
+// BG24 KR4
+// ӂJ INTP5 L
+// ACA_v^ INTP4 A_v^L
+// RTC
+ while( iic_mcu_busy )
+ {;}
+
+ // irq}XNݒ
+ KRM = ( KR_SW_POW ); // Mask ł͂ȂAModeȂ̂B킵
+ MK0 = ~( INT_MSK0_EXTDC | INT_MSK0_WDTI );
+ MK1 = ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL ); // INT_MSK1_RTCALARM | RTCA[
+ MK2L = 0xFF;
+
+ // irqtONA
+ vreg_ctr[VREG_C_IRQ0] = 0;
+ vreg_ctr[VREG_C_IRQ1] = 0;
+ vreg_ctr[VREG_C_IRQ2] = 0;
+ vreg_ctr[VREG_C_IRQ3] = 0;
+
+ // PU5 ̂܂
+ PU7 = bits8(0,0,0,0, 1,0,0,1); // PWSWI,PM_EXTTDC,( IRQ0_deactive(), PM_IRQ_deactive )
+ PU_SW_HOME_n_JIKKI = 0; // SW_HOME ~
+
+ IF0 = 0;
+ IF1 = 0;
+ IF2 = 0;
+
+ IRQ0_disable;
+
+ PM_sys_pow_off( ); // dJbgIt
+
+ // |[gނ~[hɁBHłALo͂ɂȂႾ߂ȁB
+ SW_WIFI_n_RAW = 0;
+ PM_SW_WIFI_n = 0;
+
+ SW_HOME_n_JIKKI_RAW = 0;
+ PM_SW_HOME_n_JIKKI = 0;
+
+ WL_TX = 0;
+ PM_WL_TX = 0;
+
+ SW_SEL_n = 0;
+ PM_SW_SEL_n = 0;
+
+ ACCEL_INT1 = 0;
+ PM_ACCEL_INT1 = 0;
+ ACC_VALID = 0;
+ PM_ACC_VALID = 0;
+
+ system_status.pwr_state = OFF;
+ SW_pow_mask = true;
+ SW_pow_count = 0;
+
+ // HALfobOZbg@YƓdonoȂȂ邱Ƃc
+ hal_reset();
+ /* FALLTHROUGH */
+
+ case OFF:
+ // Fł͓d{^d͂܂B
+
+ system_status.poweron_reason = NONE;
+ pwsw_timeout = 0;
+
+ if( !PM_EXTDC_n
+ || chg_led_override != 0 ) // ꂪ[ɂȂ܂ő҂
+ {
+ // A_v^L /////////////////////////////// ܂́AA_v^ĂRb͏[dLED_Ă
+
+ // d{^`FbN
+ system_status.poweron_reason = RSN_PWSW;
+ system_status.pwr_state = ON_CHECK;
+
+ // 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;
+ }
+ }
+ 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
+
+ if( system_status.taikendai )
+ {
+ system_status.pwr_state = OFF_TRIG;
+ }
+
+ }
+ }
+}
+
+
+
+/********************************************//**
+ PMICdُŎ~߂mF
+
+ ***********************************************/
+static void chk_emergencyExit(){
+ static u8 shirobako_power_control_count;
+
+ 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 ); // vAbvYH
+ 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/tags/2.19_SDK4(3rdNUP)/user_define.h b/tags/2.19_SDK4(3rdNUP)/user_define.h
new file mode 100644
index 0000000..15d426e
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/user_define.h
@@ -0,0 +1,214 @@
+#ifndef _USER_DEF_
+#define _USER_DEF_
+
+
+#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; }
+#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 )
+
+#if 0 // PM_RESET1`g
+# 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; }
+#define RESET2_neg { PM0.1 = 1; }
+
+#define SLP_REQ P12.0
+
+// CTR,SPFL,܂ʔh@
+#define DEV_DET ( P12 & 0b00000110 )
+#define DEV_CTR ( 0b00 << 1 )
+#define DEV_SPFL ( 0b01 << 1 )
+#define DEV_SHRIMP ( 0b10 << 1 )
+#define DEV_RSV2 ( 0b11 << 1 )
+
+// FCRAM
+#define FCRAM_RST P3.0
+#define FCRAM_RST_ast { P3.0 = 0; }
+#define FCRAM_RST_neg { P3.0 = 1; }
+
+// CODEC
+#define PM_IRQ_n P7.2
+// INTP6
+
+// PM
+#define PM_EXTDC_n_RAW P7.0
+// INTP7
+//#define BT_TEMP P15.0
+// ANI8
+//#define BT_DET P15.1
+// ANI9
+#define BT_DET_P P1.6
+#define BT_TEMP_P P1.7
+
+
+// SPFL̃At@XLCDŕKvȁ}15V̓dB
+#define SPFL_LCD_AMOL_HV_CONT P20.2
+
+
+// [d(out)
+// _łBӁB
+#define BT_CHG_ENABLE() ( P4.3 = 0 )
+#define BT_CHG_DISABLE() ( P4.3 = 1 )
+#define BT_CHG_Ena_n ( P4.3 )
+
+// [d(in)
+#define BT_IN_CHG_n_RAW P5.1
+#define PM_BT_IN_CHG_n PM5.1
+#define PU_BT_IN_CHG_n PU5.1
+
+#define SW_WIFI_n_RAW P7.4
+#define PM_SW_WIFI_n PM7.4
+// KR4
+#define SW_POW_n_RAW P7.3
+// KR3
+#define SW_SEL_n P2.3
+#define PM_SW_SEL_n PM2.3
+//#define VOL P2.7
+// ANI7
+
+#define SW_HOME_n_JIKKI_RAW P20.4
+#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.)
+#define PM_SW_HOME_n_TSBOARD PM2.0
+
+// WiFi
+#define WL_TX P20.3 // INTP21
+#define PM_WL_TX PM20.3 // INTP21
+
+// RBR
+#define RBR_RESET_n P2.1
+#define RBR_FLIGHT P2.2
+
+//#define LED_CAM P1.0 // TO02
+//#define LED_WIFI P1.1 // TO03
+//#define LED_NOTIFY P1.3 // TO05
+//#define LED_3D P5.2 // SLTO TO01
+//#define LED_POW2 P1.4 // TO06 ( )
+//#define LED_POW1 P1.5 // TO07 ( )
+//#define LED_CHARGE P2.4
+
+// P5.3 ɉAP5.5, P140 P141
+// P140o͐pȂ̂...
+#define I2C_PU_on() { P14 |= 0x03; PM5.3 = 0; PM3.3 = 0; }
+#define I2C_PU_off() { PM5.3 = 1; PM3.3 = 1; P14 &= ~0x03; }
+
+#define GYRO_ENABLE() P5.0 = 0
+#define GYRO_DISABLE() P5.0 = 1
+
+//#define I2C_M_SDA P3.1 // SDA10
+//#define I2C_M_SCL P3.2 // SCL10
+
+//#define I2C_0_SCL P6.0 // IIC_TWL SCL0
+//#define I2C_0_SDA P6.1 // SDA0
+
+//#define I2C_1_SCL P20.0 // IIC CTR SCL1
+//#define I2C_1_SDA P20.1 // SDA1
+
+//#define 32kHz_O P1.2 // RTCCL
+//#define 32k_I1 P12.3 // XT1
+//#define 32k_I2 P12.4 // XT2
+
+// @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)
+
+#define ACC_VALID P20.5
+#define PM_ACC_VALID PM20.5
+#define ACCEL_INT1 P2.5
+#define PM_ACCEL_INT1 PM2.5
+
+
+#endif // _WIN32
+
+// win32 simƋ
+
+#define KR_SW_POW ( 1 << 3 )
+#define KR_SW_WIFI ( 1 << 4 )
+
+///////////////////////////////////////////////////////////
+#ifdef _WDT_CHECK_
+# define INT_MSK0_WDTI 1<<15
+#else
+# define INT_MSK0_WDTI 0
+#endif
+
+#define INT_MSK0_IIC_M_DMA 1<<12
+#define INT_MSK0_SHELL 1<<7
+#define INT_MSK0_EXTDC 1<<6
+//#define INT_MSK0_SLP 1<<2
+#define INT_MSK0_RSV ~( INT_MSK0_IIC_M_DMA | INT_MSK0_SHELL | INT_MSK0_EXTDC | INT_MSK0_WDTI )
+
+#define INT_MSK1_KR 1<<11
+#define INT_MSK1_RTCINTVAL 1<<10
+#define INT_MSK1_RTCALARM 1<<9
+#define INT_MSK1_ADC 1<<8
+#define INT_MSK1_IIC_CTR 1<<3
+#define INT_MSK1_IIC_MCU 1<<0
+#define INT_MSK1_RSV ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL | INT_MSK1_RTCALARM | INT_MSK1_ADC \
+ | INT_MSK1_IIC_CTR | INT_MSK1_IIC_MCU )
+
+#define INT_MSK2_WIFI_TX_KE3 1<<4
+#define INT_MSK2L_RSV ~( INT_MSK2_WIFI_TX_KE3 )
+
+#define INT_MSK2_IIC_TWL 1<<8
+#define INT_MSK2_WIFI_TX_BSR 1<<10
+#define INT_MSK2_CODEC_PMIRQ 1<<3
+#define INT_MSK2_RSV ~( INT_MSK2_IIC_TWL | INT_MSK2_WIFI_TX_BSR | INT_MSK2_CODEC_PMIRQ )
+
+#endif // dupe include guard
diff --git a/tags/2.19_SDK4(3rdNUP)/util_funcs.c b/tags/2.19_SDK4(3rdNUP)/util_funcs.c
new file mode 100644
index 0000000..2edea63
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/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
+
+ NOPAw莞CPU *L܂* B
+
+ 荞݂ƂƂ̕x܂B
+
+ 덷܂B
+ ***********************************************/
+void wait_ms( u8 ms ){
+ u16 fine;
+
+ WDT_Restart();
+ while( ms != 0 ){
+ ms--;
+ fine = 860;
+ while( fine != 0 ){
+ fine --;
+ }
+ }
+}
+
+
+
+
+extern unsigned char get_ei();
+
+#ifdef _DI_WITH_CHECK_
+/********************************************//**
+ ł 荞֎~ԉ`FbNĂ犄荞֎~ɂ
+
+ ]̌ʁAA#ifdef Ń`FbN DI
+ ***********************************************/
+void DI_wt_chk()
+{
+ if( !get_ei() )
+ {
+ dbg_nop();
+ }
+ DI();
+}
+#endif // _DI_WITH_CHECK_
diff --git a/tags/2.19_SDK4(3rdNUP)/util_funcs.h b/tags/2.19_SDK4(3rdNUP)/util_funcs.h
new file mode 100644
index 0000000..4229413
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/util_funcs.h
@@ -0,0 +1,16 @@
+#ifndef _util_funcs_h_
+#define _util_funcs_h_
+
+
+void wait_ms( u8 );
+
+
+# ifdef _DI_WITH_CHECK_
+void DI_wt_chk();
+# else
+# define DI_wt_chk() DI()
+# endif /* _DI_WITH_CHECK_ */
+
+
+#endif
+
diff --git a/tags/2.19_SDK4(3rdNUP)/voltable.c b/tags/2.19_SDK4(3rdNUP)/voltable.c
new file mode 100644
index 0000000..4d2e14a
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/voltable.c
@@ -0,0 +1,64 @@
+/* ========================================================
+ voltable.c
+
+ $Id$
+ ======================================================== */
+#include "incs.h"
+
+#define _10db_
+
+
+
+/********************************************//**
+ XC_l CODEC ɃZbgہAőVol̊W
+ KɃXP[OKv
+
+ yȂ̂Ńe[u
+ ***********************************************/
+
+
+
+#ifdef _10db_
+// max -10db
+const u8 slider_to_codec[64] =
+{
+ 127, 126, 125, 124, 122, 121, 120, 119,
+ 118, 117, 116, 114, 113, 112, 111, 110,
+ 109, 108, 106, 105, 104, 103, 102, 101,
+ 100, 98, 97, 96, 95, 94, 93, 92,
+ 90, 89, 88, 87, 86, 85, 83, 82,
+ 81, 80, 79, 78, 77, 75, 74, 73,
+ 73, 72, 71, 70, 69, 67, 66, 65,
+ 64, 63, 62, 61, 59, 58, 57, 56
+ };
+#endif
+
+#ifdef _15db_
+// max -15db
+const u8 slider_to_codec[64] =
+{
+ 127, 127, 127, 127, 127, 126, 125, 123,
+ 122, 121, 120, 119, 118, 117, 116, 115,
+ 114, 113, 112, 110, 109, 108, 107, 106,
+ 105, 104, 103, 102, 101, 100, 99, 97,
+ 96, 95, 94, 93, 92, 91, 90, 89,
+ 88, 87, 86, 85, 84, 83, 82, 81,
+ 80, 79, 78, 77, 76, 75, 74, 73,
+ 71, 70, 69, 68, 67, 66, 66, 66
+};
+#endif
+
+#ifdef _4db_
+// max -4db
+const u8 slider_to_codec[64] =
+{
+ 127, 127, 126, 125, 123, 122, 121, 119,
+ 118, 117, 115, 114, 112, 111, 110, 108,
+ 107, 106, 104, 103, 101, 100, 99, 97,
+ 96, 94, 93, 92, 90, 89, 88, 86,
+ 85, 83, 82, 81, 79, 78, 77, 75,
+ 74, 72, 71, 70, 68, 67, 66, 64,
+ 64, 63, 61, 60, 59, 57, 56, 54,
+ 53, 52, 50, 49, 48, 46, 44, 44
+};
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/voltable.h b/tags/2.19_SDK4(3rdNUP)/voltable.h
new file mode 100644
index 0000000..6ff34ab
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/voltable.h
@@ -0,0 +1,57 @@
+#ifdef _10db_
+// max -10db
+/*
+const u8 slider_to_codec[64] =
+{
+ 127, 127, 127, 127, 126, 125, 123, 122,
+ 121, 120, 118, 117, 116, 115, 113, 112,
+ 111, 110, 108, 107, 106, 105, 103, 102,
+ 101, 100, 98, 97, 96, 95, 93, 92,
+ 91, 90, 88, 87, 86, 85, 83, 82,
+ 81, 80, 78, 77, 76, 75, 73, 72,
+ 72, 71, 70, 68, 67, 66, 64, 63,
+ 62, 61, 59, 58, 57, 56, 55, 55
+ };
+*/
+const u8 slider_to_codec[64] =
+{
+ 127, 126, 125, 124, 122, 121, 120, 119,
+ 118, 117, 116, 114, 113, 112, 111, 110,
+ 109, 108, 106, 105, 104, 103, 102, 101,
+ 100, 98, 97, 96, 95, 94, 93, 92,
+ 90, 89, 88, 87, 86, 85, 83, 82,
+ 81, 80, 79, 78, 77, 75, 74, 73,
+ 73, 72, 71, 70, 69, 67, 66, 65,
+ 64, 63, 62, 61, 59, 58, 57, 56
+ };
+#endif
+
+#ifdef _15db_
+// max -15db
+const u8 slider_to_codec[64] =
+{
+ 127, 127, 127, 127, 127, 126, 125, 123,
+ 122, 121, 120, 119, 118, 117, 116, 115,
+ 114, 113, 112, 110, 109, 108, 107, 106,
+ 105, 104, 103, 102, 101, 100, 99, 97,
+ 96, 95, 94, 93, 92, 91, 90, 89,
+ 88, 87, 86, 85, 84, 83, 82, 81,
+ 80, 79, 78, 77, 76, 75, 74, 73,
+ 71, 70, 69, 68, 67, 66, 66, 66
+};
+#endif
+
+#ifdef _4db_
+// max -4db
+const u8 slider_to_codec[64] =
+{
+ 127, 127, 126, 125, 123, 122, 121, 119,
+ 118, 117, 115, 114, 112, 111, 110, 108,
+ 107, 106, 104, 103, 101, 100, 99, 97,
+ 96, 94, 93, 92, 90, 89, 88, 86,
+ 85, 83, 82, 81, 79, 78, 77, 75,
+ 74, 72, 71, 70, 68, 67, 66, 64,
+ 64, 63, 61, 60, 59, 57, 56, 54,
+ 53, 52, 50, 49, 48, 46, 44, 44
+};
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/vreg_ctr.c b/tags/2.19_SDK4(3rdNUP)/vreg_ctr.c
new file mode 100644
index 0000000..5d4b915
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/vreg_ctr.c
@@ -0,0 +1,611 @@
+/* ========================================================
+
+ 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;
+
+ vreg_ctr[ VREG_C_RBR_CONTROL ] = REG_BIT_RESET_n; // todo | REG_BIT_FLIGHT;
+}
+
+
+/********************************************//**
+ 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_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;
+ }
+ }
+}
+
+
+
+/********************************************//**
+ 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_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;
+
+ 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_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;
+
+ /// œĂ邽߂ł͏Ȃ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_CX_FREE_DATA ):
+ if( vreg_free_adrs < VREG_C_FREE_SIZE )
+ {
+ pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ] = data;
+ vreg_free_adrs ++;
+ }
+ break;
+
+ case ( VREG_CX_FREE_ADRS ):
+ vreg_free_adrs = data;
+ break;
+
+ case ( VREG_C_RBR_CONTROL ):
+ if(( data & REG_BIT_RESET_n ) != 0 )
+ {
+ RBR_RESET_n = 1;
+ }
+ else
+ {
+ RBR_RESET_n = 0;
+ }
+ if(( data & REG_BIT_FLIGHT ) != 0 )
+ {
+ RBR_FLIGHT = 1;
+ }
+ else
+ {
+ RBR_FLIGHT = 0;
+ }
+ vreg_ctr[ VREG_C_RBR_CONTROL ] = 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;
+
+ // read only //////////////////////////////////////////
+ case VREG_C_MCU_VER_MAJOR:
+ case VREG_C_MCU_VER_MINOR:
+ case VREG_C_3D: // ɃtbV
+ case VREG_C_SND_VOL: // ɃtbV
+ case VREG_C_BT_TEMP: // ɃtbV
+ case VREG_C_BT_REMAIN: // ɃtbV
+ case VREG_C_BT_REMAIN_FINE: // ɃtbV
+ case VREG_C_BT_VOLTAGE: // ɃtbV
+ case VREG_C_STATUS_1: // KɃtbV
+ case VREG_C_STATUS: // KɃtbV
+ case VREG_C_IRQ0: // ̂łɊ荞NĂقȂ...
+ case VREG_C_IRQ1:
+ case VREG_C_IRQ2:
+ case VREG_C_IRQ3:
+ case VREG_C_IRQ4:
+ case VREG_C_LED_NOTIFY_FLAG: // tbV
+ case VREG_C_RTC_SEC_FINE_L: // tbV
+ case VREG_C_RTC_SEC_FINE_H: // tbV
+ // VREG_C_ACC_RESERVE, // NȂ
+ // VREG_C_ACC_HOSU_HIST = 0x4F,
+ case VREG_C_ACC_XH: // tbV
+ case VREG_C_ACC_XL:
+ case VREG_C_ACC_YH:
+ case VREG_C_ACC_YL:
+ case VREG_C_ACC_ZH:
+ case VREG_C_ACC_ZL:
+// dbg_nop();
+ // return( ERROR )
+ break;
+
+ case VREG_C_ACC_HOSU_L: // ĂǁAfobOpB(AhX0x4B == mcu sla(r))
+// dbg_nop();
+ /* FALLTHROUGH */
+
+ // ʂɏ邾 /////////////////////////////////
+ default:
+ /*
+ case VREG_C_IRQ_MASK0:
+ case VREG_C_IRQ_MASK1:
+ case VREG_C_IRQ_MASK2:
+ case VREG_C_IRQ_MASK3:
+ case VREG_C_IRQ_MASK4:
+ case VREG_C_DBG01:
+ case VREG_C_DBG02:
+ case VREG_C_LED_BRIGHT:
+ case VREG_C_ACC_HOSU_L:
+ case VREG_C_ACC_HOSU_M:
+ case VREG_C_ACC_HOSU_H:
+ case VREG_C_ACC_HOSU_HOUR_BOUNDARY:
+ case VREG_C_FREE_ADRS:
+ case VREG_C_RTC_ALARM_YEAR:
+ case VREG_C_ACC_W_ADRS:
+ case VREG_C_OFF_DELAY:
+ case VREG_C_HAL_OVW_CONT0:
+ case VREG_C_HAL_OVW_DAT0:
+ case VREG_C_HAL_OVW_CONT1:
+ case VREG_C_HAL_OVW_DAT1:
+ */
+ if( adrs < VREG_C_ENDMARK_ )
+ {
+ vreg_ctr[adrs] = data;
+ break;
+ }
+ else
+ {
+// dbg_nop(); // `AhXɏ@ȂoOĂȂH
+ // return( ERROR )
+ break;
+ }
+ }
+// return( SUCCESS )
+ return;
+}
+
+
+
+/********************************************//**
+ I2CzWX^ǂ݂܂B
+
+ ߂F xx f[^
+
+ ӁF̃AhX̏ŌĂ ̂ŁA
+ [hꂽNAȂǂ͋C
+
+ ( vreg_ctr_after_read( u8 adrs ) )
+ ***********************************************/
+u8 vreg_ctr_read( u8 adrs )
+{
+ static u16 rsub_temp;
+ u8 temp;
+
+ // RTC͓ǂݏorɌJオ̂邽
+ if( ( VREG_C_RTC_SEC <= adrs ) && ( adrs <= VREG_C_RTC_YEAR ) )
+ {
+ rtc_buf_refresh( );
+ }
+ else if( adrs == VREG_C_MCU_STATUS )
+ {
+ return( ( vreg_ctr[ VREG_C_MCU_STATUS ] & 0x03 ) |
+ ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x03 ) << 6 ) | // sys_mode
+ ( ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 ) >> 2 )); // vol32
+ }
+ else if( adrs == VREG_C_RTC_SEC_FINE_L )
+ {
+ rsub_temp = RSUBC;
+ return( (u8)( rsub_temp & 0xFF ) );
+ }
+ else if( adrs == VREG_C_RTC_SEC_FINE_H )
+ {
+ return( (u8)( ( rsub_temp >> 8 ) & 0xFF ) );
+ }
+/*
+ // debug I
+ else if( adrs == VREG_C_IRQ_MASK0 )
+ {
+ return( vreg_ctr[ VREG_C_IRQ_MASK0 ] & 0x7F ); // `MSB0B1ȂʐMG[
+ }
+*/
+ else if( adrs == VREG_C_ACC_HOSU_HIST )
+ {
+ return( hosu_read() );
+ }
+ else if( adrs == VREG_CX_FREE_DATA )
+ {
+ temp = pool.vreg_c_ext.vreg_c_free[ vreg_free_adrs ];
+ // vreg_free_adrs ++; // ʼnZĂ܂ƃCfbNX
+ return( temp );
+ }
+ else if( adrs == VREG_CX_INFO )
+ {
+ return( extinfo_read() );
+ }
+ else if( adrs == VREG_C_ACC_HOSU_SETTING )
+ {
+ if( pedolog_overflow )
+ {
+ return( 0x10 );
+ }
+ else
+ {
+ return( 0 );
+ }
+ }
+
+ if( adrs >= VREG_C_ENDMARK_ )
+ {
+ // VREG_C_INFO > VREG_C_ENDMARK_ Ȃ̂łƂ
+ return( 0xFF );
+ }
+ return ( vreg_ctr[adrs] );
+}
+
+
+/********************************************//**
+ I2CzWX^ǂ܂ĉ郌WX^
+ ***********************************************/
+void vreg_ctr_after_read( u8 adrs, u8 data )
+{
+ // 荞݃tO̓[hŃNA
+ switch( adrs )
+ {
+ case VREG_C_IRQ0:
+ case VREG_C_IRQ1:
+ case VREG_C_IRQ2:
+ case VREG_C_IRQ3:
+ case VREG_C_IRQ4:
+ DI_wt_chk();
+ vreg_ctr[ adrs ] ^= data;
+ EI();
+ irq_readed = true;
+ break;
+
+ case VREG_CX_FREE_DATA:
+ vreg_free_adrs ++;
+ break;
+
+ default:
+ break;
+ }
+}
+
+
+
+
+
+
+/********************************************//**
+ 荞݂
+
+ - @}XNĂAtOuĂȂvA荞ݓȂB
+
+ - @荞݂AǂݏoOɃ}XNƂ́ASoC̏L[ɂ
+ IRQǂރ^XNςł̂ŁAǂ݂ɂ͗B
+
+ @ƁAÔ߁A}XNƂ͋ǂ݂Ă炤B
+
+ łDĨ`FbNsvB
+
+ @DIɗ̂I2C_twlARTC_A[B̒ŖڒEIĎgpȂ
+ ***********************************************/
+void set_irq( u8 irqreg, u8 irq_flg )
+{
+ u8 tot;
+//0 u8 ei_orig; // EItOۑ
+
+ if(( system_status.pwr_state == ON ) ||
+ ( system_status.pwr_state == SLEEP ))
+ {
+/*0 łDIԂȂPAKvȂ
+ ei_orig = get_ei();
+
+ //. debug
+ if( !ei_orig )
+ {
+ dbg_nop();
+ }
+
+ DI_wt_chk();
+*/
+ DI();
+ if( ( vreg_ctr[ irqreg + 8 ] & irq_flg ) == 0 )
+ {
+ vreg_ctr[ irqreg ] |= irq_flg;
+ IRQ0_neg; // uグ...
+//0 if( ei_orig )
+ {
+ EI();
+ }
+ tot = 0;
+ while( !IRQ0 && ( ++tot != 0 ) ){;} // O.D.Ȃ̂łƂ̂҂ IRQ_mcu LɔĂƍ(s)
+ IRQ0_ast; // ƂBiGbW荞ׁ݂̈j
+ }
+//0 if( ei_orig )
+ {
+ EI();
+ }
+ }
+}
+
diff --git a/tags/2.19_SDK4(3rdNUP)/vreg_ctr.h b/tags/2.19_SDK4(3rdNUP)/vreg_ctr.h
new file mode 100644
index 0000000..9e0b11e
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/vreg_ctr.h
@@ -0,0 +1,302 @@
+#ifndef __vreg_ctr__
+#define __vreg_ctr__
+
+
+#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 tW
+#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 )
+
+/*
+ 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,
+
+ 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_ACC_CONFIG = 0x40,
+ VREG_C_ACC_R_ADRS,
+ VREG_C_ACC_RESERVE,
+ VREG_C_ACC_W_ADRS,
+ VREG_C_ACC_W_BUF,
+
+ 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 );
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/vreg_twl.c b/tags/2.19_SDK4(3rdNUP)/vreg_twl.c
new file mode 100644
index 0000000..1cb1225
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/vreg_twl.c
@@ -0,0 +1,169 @@
+/* ========================================================
+ TWL݊I2CWX^
+
+ $Id$
+ ======================================================== */
+#include "incs.h"
+#include "jhl_defs.h"
+#include "led.h"
+
+#include "vreg_twl.h"
+//#include "vreg_ctr.h"
+#include "adc.h"
+
+
+// ========================================================
+#define TWL_REG_VER_INFO 0x35
+#define NON_EXIST_REG 0xFF
+
+// ========================================================
+u8 vreg_twl[_REG_TWL_INT_ADRS_ENDMARK];
+
+
+extern bit twl_ver_read;
+extern bit cam_led_update;
+extern bit vol_changed_by_twl;
+
+
+// ========================================================
+extern void tsk_led_cam();
+
+
+
+
+/********************************************//**
+ zWX^̏
+ ***********************************************/
+void vreg_twl_init( )
+{
+ vreg_twl[ REG_TWL_INT_ADRS_MODE ] = 0x03;
+ vreg_twl[ REG_TWL_INT_ADRS_IRQ ] = 0;
+ vreg_twl[ REG_TWL_INT_ADRS_CAM ] = 0;
+ vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = 0;
+}
+
+
+
+/********************************************//**
+ I2CzWX^ɏEANV
+
+ @ adrs ͓AhX
+
+ @݂ȂAhXɃANZXꍇA܂B
+ ***********************************************/
+void vreg_twl_write( u8 adrs, u8 data )
+{
+ switch ( adrs )
+ {
+ case ( REG_TWL_INT_ADRS_VOL ):
+ {
+ vol_changed_by_twl = true;
+ vreg_twl[ REG_TWL_INT_ADRS_VOL ] = data;
+ //renge_task_immed_add( tski_vol_update );
+ vol_polling = 3;
+ break;
+ }
+
+ case ( REG_TWL_INT_ADRS_MODE ):
+ vreg_twl[ REG_TWL_INT_ADRS_MODE ] = ( data & 0x83 ); // [8]vol32 [1:0]nand
+ break;
+
+ case ( REG_TWL_INT_ADRS_CAM ):
+ vreg_twl[ REG_TWL_INT_ADRS_CAM ] = ( data & 0x03 );
+ if( ( data & 0x03 ) == TWL_CAMLED_BLINK )
+ {
+ cam_led_update = true; // łȂƈꔭɕs邽
+ }
+ tsk_led_cam(); // uN̓sŋN
+ break;
+
+ case ( REG_TWL_INT_ADRS_TEMP0 ):
+ vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = data;
+ break;
+
+ case ( REG_TWL_INT_ADRS_COMMAND ):
+/*
+ if( data <= 2 ){
+ if( ( data & REG_BIT_TWL_OFF_REQ ) != 0 )
+ {
+ set_irq( VREG_C_IRQ2, REG_BIT_TWL_OFF_REQ ); // OFFĂ炵B
+ break;
+ }
+ else if( ( data & REG_BIT_TWL_RESET_REQ ) != 0 )
+ {
+ set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); //ZbgȂB̂́ASPI痈܂B
+ break;
+ }
+ }
+*/
+ if( data == REG_BIT_TWL_RESET_REQ )
+ {
+ set_irq( VREG_C_IRQ2, REG_BIT_TWL_RESET_REQ ); //ZbgȂB̂́ASPI痈܂B
+ break;
+ }
+ }
+ return;
+}
+
+
+
+/********************************************//**
+ I2CzWX^ǂ݂܂B
+
+ @ adrs O猩Ƃ́AAhX
+
+ @߂ xx f[^
+
+ @݂ȂAhXɃANZXꍇA߂l0x5A
+ ***********************************************/
+u8 vreg_twl_read( u8 phy_adrs )
+{
+ u8 temp;
+
+ switch( phy_adrs ){
+ // 10%ȉŐԂɂȂ
+ case( REG_TWL_INT_ADRS_POWER_INFO ):
+ // x̃Zbg get_batt_left()ixĖłj
+ return( vreg_twl[ REG_TWL_INT_ADRS_POWER_INFO ] | ( !PM_EXTDC_n ? 0x80: 0x00 ) ); // A_v^bit(A_v^L)
+
+ case( REG_TWL_INT_ADRS_IRQ ):
+ temp = vreg_twl[ REG_TWL_INT_ADRS_IRQ ];
+ vreg_twl[ REG_TWL_INT_ADRS_IRQ ]= 0;
+ return( temp );
+
+ case( REG_TWL_INT_ADRS_VER_INFO ):
+// set_irq( VREG_C_IRQ2, REG_BIT_TWL_VER_READ ); // xIɖȂ̂
+ twl_ver_read = true;
+ return( TWL_REG_VER_INFO );
+
+ case( REG_TWL_ADRS_NON_EXIST ):
+ return( 0x00 );
+
+ default:
+ return( vreg_twl[ phy_adrs ] );
+ }
+}
+
+
+
+/********************************************//**
+ O猩钎HAhXA̘AAhXɓǂݑւ
+
+ 0xFF݂͑ȂAhXB
+ ***********************************************/
+u8 adrs_table_twl_ext2int( u8 img )
+{
+ switch( img ){
+ case( REG_TWL_ADRS_IRQ ): return( REG_TWL_INT_ADRS_IRQ );
+ case( REG_TWL_ADRS_COMMAND ): return( REG_TWL_INT_ADRS_COMMAND );
+ case( REG_TWL_ADRS_POWER_INFO ): return( REG_TWL_INT_ADRS_POWER_INFO );
+ case( REG_TWL_ADRS_VOL ): return( REG_TWL_INT_ADRS_VOL );
+ case( REG_TWL_ADRS_CAM ): return( REG_TWL_INT_ADRS_CAM );
+ case( REG_TWL_ADRS_TEMP0 ): return( REG_TWL_INT_ADRS_TEMP0 );
+ case( REG_TWL_ADRS_VER_INFO ): return( REG_TWL_INT_ADRS_VER_INFO );
+ case( REG_TWL_ADRS_MODE ): return( REG_TWL_INT_ADRS_MODE );
+ default: return( REG_TWL_ADRS_NON_EXIST );
+// 0ǂ߂悢AȂėǂ
+// case( REG_TWL_ADRS_WIFI ): return( REG_TWL_INT_ADRS_WIFI );
+ }
+}
diff --git a/tags/2.19_SDK4(3rdNUP)/vreg_twl.h b/tags/2.19_SDK4(3rdNUP)/vreg_twl.h
new file mode 100644
index 0000000..63cdd94
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/vreg_twl.h
@@ -0,0 +1,127 @@
+#ifndef __vreg_twl__
+#define __vreg_twl__
+/* ========================================================================= */
+extern u8 vreg_twl[];
+
+
+/*
+ * O猩Ƃ̃}CRWX^AhXB
+ * gȂǂlĔєтɂĂB
+ */
+/*
+ * 荞ݗvtO
+ * MSB:OdL/Ȃω ij
+ * 6:VolL[iύXɌ炸BMAXɁ{łBj
+ * 5:drd o
+ * 4:
+ * 3:dXCb` ꌟo
+ * 2:iݒj
+ * 1:dXCb` OFF ԉꌟo
+ * LSB: Zbg
+ */
+enum REG_TWL_ADRS
+{ // `AhX֏ۂ͖
+ REG_TWL_ADRS_VER_INFO = 0x00,
+ REG_TWL_ADRS_PMIC_INFO,
+ REG_TWL_ADRS_BATT_INFO,
+ REG_TWL_ADRS_IRQ = 0x10,
+ REG_TWL_ADRS_COMMAND,
+ REG_TWL_ADRS_MODE,
+ REG_TWL_ADRS_POWER_INFO = 0x20,
+ REG_TWL_ADRS_POWER_SAVE,
+ REG_TWL_ADRS_WIFI = 0x30,
+ REG_TWL_ADRS_CAM,
+ REG_TWL_ADRS_VOL = 0x40,
+ REG_TWL_ADRS_BL,
+ REG_TWL_ADRS_CODEC_MIC_GAIN = 0x50,
+ REG_TWL_ADRS_ADC_CALIB = 0x60,
+ REG_TWL_ADRS_ADC_CALIB_STATUS,
+ REG_TWL_ADRS_ADC_CALIB_VALUE,
+ REG_TWL_ADRS_POWER_LED,
+ REG_TWL_ADRS_TEMP0 = 0x70,
+ REG_TWL_ADRS_TEMP1,
+ REG_TWL_ADRS_TEMP2,
+ REG_TWL_ADRS_TEMP3,
+ REG_TWL_ADRS_TEMP4,
+ REG_TWL_ADRS_TEMP5,
+ REG_TWL_ADRS_TEMP6,
+ REG_TWL_ADRS_TEMP7,
+ REG_TWL_ADRS_TIME_PWSW_DELAY = 0x80,
+ REG_TWL_ADRS_TIME_PWSW_THRESHOLD
+};
+
+#define REG_TWL_ADRS_NON_EXIST 0xFF
+
+/*
+ * }CRł̃WX^̎
+ * ߂Ă
+ */
+enum REG_TWL_ADRS_INT
+{
+ REG_TWL_INT_ADRS_VER_INFO = 0x00,
+// REG_TWL_INT_ADRS_PMIC_INFO,
+// REG_TWL_INT_ADRS_BATT_INFO,
+ REG_TWL_INT_ADRS_IRQ, // 0x10,
+ REG_TWL_INT_ADRS_COMMAND,
+ REG_TWL_INT_ADRS_MODE,
+ REG_TWL_INT_ADRS_POWER_INFO, // 0x20,
+// REG_TWL_INT_ADRS_POWER_SAVE,
+// REG_TWL_INT_ADRS_WIFI, // 0x30,
+ REG_TWL_INT_ADRS_CAM,
+ REG_TWL_INT_ADRS_VOL, // 0x40,
+// REG_TWL_INT_ADRS_BL,
+// REG_TWL_INT_ADRS_CODEC_MIC_GAIN, // 0x50,
+// REG_TWL_INT_ADRS_CODEC_MIC_GAIN_RELOAD,
+// REG_TWL_INT_ADRS_ADC_CALIB, // 0x60,
+// REG_TWL_INT_ADRS_ADC_CALIB_STATUS,
+// REG_TWL_INT_ADRS_ADC_CALIB_VALUE,
+// REG_TWL_INT_ADRS_POWER_LED,
+ REG_TWL_INT_ADRS_TEMP0, // 0x70 - 0x77
+ REG_TWL_INT_ADRS_TEMP1,
+ REG_TWL_INT_ADRS_TEMP2,
+ REG_TWL_INT_ADRS_TEMP3,
+ REG_TWL_INT_ADRS_TEMP4,
+ REG_TWL_INT_ADRS_TEMP5,
+ REG_TWL_INT_ADRS_TEMP6,
+ REG_TWL_INT_ADRS_TEMP7,
+// REG_TWL_INT_ADRS_TIME_PWSW_DELAY,
+// REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD
+ _REG_TWL_INT_ADRS_ENDMARK,
+};
+
+
+
+/* ========================================================================= */
+#define is_TWL ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x01 )
+#define with_NAND ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x02 )
+#define volSteps32 ( vreg_twl[ REG_TWL_INT_ADRS_MODE ] & 0x80 )
+
+#define reg_wifi_led ( vreg_twl[ REG_TWL_INT_ADRS_WIFI ] & 0x01 )
+#define reg_wifi_led_blink ( vreg_twl[ REG_TWL_INT_ADRS_WIFI ] & 0x02 )
+
+#define REG_TWL_ADRS_MODE__VOL32 ( 1 << 7 )
+
+typedef enum CAM_LED_TWL_MODE
+{
+ TWL_CAMLED_OFF,
+ TWL_CAMLED_ON,
+ TWL_CAMLED_BLINK,
+ TWL_CAMLED_DEF_ON
+}twl_camLed_mode;
+
+
+/* ========================================================================= */
+void vreg_twl_init( );
+void vreg_twl_write( u8 adrs, u8 data );
+u8 adrs_table_twl_ext2int( u8 img );
+u8 vreg_twl_read( u8 phy_adrs );
+
+
+// ǂNAȂǂ̏
+#define vreg_twl_after_read( reg_adrs ); \
+ if( reg_adrs == REG_TWL_INT_ADRS_IRQ ) \
+ { \
+ vreg_twl[ REG_TWL_INT_ADRS_IRQ ]= 0;\
+ }
+
+#endif
diff --git a/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.plg b/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.plg
new file mode 100644
index 0000000..a2aead2
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.plg
@@ -0,0 +1,203 @@
+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(534) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(840) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(844) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(872) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(886) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(960) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(969) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(1173) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(1175) : CC78K0R warning W0401: Conversion may lose significant digits
+Compilation complete, 0 error(s) and 9 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\pm.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_ctr.c
+Compilation complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_ctr.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no main.c
+Compilation complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\main.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no magic.c
+Compilation complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\magic.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no WDT.c
+Compilation complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\WDT.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_mcu.c
+i2c_mcu.c(188) : CC78K0R warning W0401: Conversion may lose significant digits
+Compilation complete, 0 error(s) and 1 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_mcu.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_twl.c
+Compilation complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_twl.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no led.c
+led.c(90) : CC78K0R warning W0745: Expected function prototype
+led.c(356) : 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(176) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(177) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(179) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(181) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(182) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(230) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(230) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(235) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(235) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(239) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(239) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(243) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(243) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(247) : 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(305) : CC78K0R warning W0401: Conversion may lose significant digits
+adc.c(429) : CC78K0R warning W0745: Expected function prototype
+adc.c(458) : CC78K0R warning W0401: Conversion may lose significant digits
+adc.c(463) : 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(382) : CC78K0R warning W0401: Conversion may lose significant digits
+task_misc.c(384) : CC78K0R warning W0401: Conversion may lose significant digits
+task_misc.c(396) : 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(234) : CC78K0R warning W0401: Conversion may lose significant digits
+task_sys.c(569) : CC78K0R warning W0401: Conversion may lose significant digits
+Compilation complete, 0 error(s) and 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\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(119) : CC78K0R warning W0401: Conversion may lose significant digits
+led_pow.c(124) : CC78K0R warning W0401: Conversion may lose significant digits
+led_pow.c(177) : CC78K0R warning W0401: Conversion may lose significant digits
+led_pow.c(240) : CC78K0R warning W0401: Conversion may lose significant digits
+led_pow.c(271) : CC78K0R warning W0401: Conversion may lose significant digits
+Compilation complete, 0 error(s) and 5 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\led_pow.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no hal.c
+Compilation complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\hal.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no voltable.c
+Compilation complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\voltable.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no pedo_lpf_coeff.c
+Compilation complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\pedo_lpf_coeff.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no kanaria_c.c
+Compilation complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\kanaria_c.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no util_funcs.c
+Compilation complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\util_funcs.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\bin\cc78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -irenge -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r" -ms -rd2s2 -qvjl2w -sainter_asm -zpb -no i2c_mcu-sub.c
+Compilation complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\ra78k0r.exe" -c9F0104 -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -pinter_asm -ks -kx inter_asm\i2c_mcu-sub.asm
+Assembly complete, 0 error(s) and 0 warning(s) found.
+"C:\Program Files (x86)\NEC Electronics Tools\RA78K0R\W1.33\bin\lk78k0r.exe" -y"c:\program files (x86)\nec electronics tools\dev" -_msgoff -obsr.lmf "..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\s0rm.rel" -gi1B339499E033F240BFAAh -pbsr_k0r.map -nkd -gb7EFBFFh -b"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r" -dbsr_mcu.dr -s -w2 loader.rel pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_twl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel sw.rel task_debug.rel task_misc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel task_status.rel led_cam.rel led_pow.rel hal.rel batt_params.rel voltable.rel pedo_lpf_coeff.rel kanaria.rel kanaria_c.rel get_ei.rel util_funcs.rel i2c_mcu-sub.rel
+RA78K0R warning W3420: File 'loader.rel' already has had error(s)/warning(s) by 'CC78K'
+ Read Device File Directory : C:\PROGRAM FILES (X86)\NEC ELECTRONICS TOOLS\DEV\
+RA78K0R warning W3420: File 'pm.rel' already has had error(s)/warning(s) by 'CC78K'
+RA78K0R warning W3420: File 'i2c_mcu.rel' already has had error(s)/warning(s) by 'CC78K'
+RA78K0R warning W3420: File 'led.rel' already has had error(s)/warning(s) by 'CC78K'
+RA78K0R warning W3420: File 'vreg_ctr.rel' already has had error(s)/warning(s) by 'CC78K'
+RA78K0R warning W3420: File 'vreg_twl.rel' already has had error(s)/warning(s) by 'CC78K'
+RA78K0R warning W3420: File 'adc.rel' already has had error(s)/warning(s) by 'CC78K'
+RA78K0R warning W3420: File 'accero.rel' already has had error(s)/warning(s) by 'CC78K'
+RA78K0R warning W3420: File 'self_flash.rel' already has had error(s)/warning(s) by 'CC78K'
+RA78K0R warning W3420: File 'task_misc.rel' already has had error(s)/warning(s) by 'CC78K'
+RA78K0R warning W3420: File 'task_sys.rel' already has had error(s)/warning(s) by 'CC78K'
+RA78K0R warning W3420: File 'pedo_alg_thre_det2.rel' already has had error(s)/warning(s) by 'CC78K'
+RA78K0R warning W3420: File 'led_pow.rel' already has had error(s)/warning(s) by 'CC78K'
+
+Link complete, 0 error(s) and 13 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
+4
+intel-HEX to bsr bin converter
+ file converted!
+
+
+Build Total error(s) : 0 Total warning(s) : 65
diff --git a/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.pri b/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.pri
new file mode 100644
index 0000000..e3b2140
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.pri
@@ -0,0 +1,1061 @@
+[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=0
+NMI=OFF
+TRESET=OFF
+IRESET=OFF
+WAIT=OFF
+SysClock=None
+SubClock=None
+[Mapping]
+Count=0
+[Main]
+Geometry=157, 45, 1007, 931
+Window=Normal
+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=""
+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=474, 10, 769, 857
+Window=Normal
+DispStart=248
+CaretPos=277,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=282, 121, 769, 857
+Window=Normal
+DispStart=251
+CaretPos=276,24
+Mode=Normal
+DispFile=\\tsclient\C\78k_data\yav-mcu-basara\trunk\task_misc.c
+Accumulative=ON
+[Source2]
+Geometry=244, 62, 769, 802
+Window=Normal
+DispStart=499
+CaretPos=536,12
+Mode=Normal
+DispFile=\\tsclient\C\78k_data\yav-mcu-basara\trunk\task_sys.c
+Accumulative=ON
+[Assemble]
+Geometry=50, 50, 600, 400
+Window=Normal
+DispStart=15288
+CaretPos=15311,27
+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=35, 451, 309, 300
+Window=Normal
+Boundary=13762700
+0=.P0.1,P,S,A,+,1
+1=.P0.0,P,S,A,+,1
+2=.PU0,P,S,A,+,1
+3=.temp_command,P,N,A,+,1
+4=.shirobako_power_control_count,P,N,A,+,1
+5=.P2.3,P,S,A,+,1
+6=.PM0,B,S,A,+,1
+Line=7
+[Quick Watch]
+0=p00,P,A,1
+1=P0.0,P,A,1
+2=P0.1,P,A,1
+3=PM0,B,A,1
+4=P20.4,P,A,1
+5=PU0,P,A,1
+6=P2.3,P,A,1
+7=shirobako_power_control_count,P,A,1
+8=temp_command,P,A,1
+9=
+10=
+11=
+12=
+13=
+14=
+15=
+[Software Break]
+Geometry=19, 162, 500, 200
+Window=Normal
+Width=150 30 200 100
+Name0=Swb00006
+Address0=task_sys.c#_chk_emergencyExit+0x13
+Window0=ASM
+Status0=ON
+Name1=Swb00007
+Address1=task_sys.c#_force_off_check+0x4
+Window1=ASM
+Status1=ON
+Name2=Swb00003
+Address2=task_sys.c#_chk_emergencyExit+0x1a
+Window2=ASM
+Status2=ON
+Name3=Swb00008
+Address3=task_misc.c#_tski_do_command0+0x5e
+Window3=ASM
+Status3=ON
+Name4=Swb00002
+Address4=task_misc.c#_tski_do_command0+0x22
+Window4=ASM
+Status4=ON
+Name5=Swb00004
+Address5=task_misc.c#_tski_do_command0+0x44
+Window5=ASM
+Status5=ON
+Count=6
+[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/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.prj b/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.prj
new file mode 100644
index 0000000..1de53fb
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.prj
@@ -0,0 +1,1411 @@
+[ProjectManager]
+Version=6.00
+Path=C:\78k_data\yav-mcu-basara\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=
+[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 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.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\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Include4=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\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 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\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Include4=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=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\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Include4=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=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_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\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Include4=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=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.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\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
+[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
+[IncFile]
+Include1=incs_loader.h
+Include2=sim\simOnWin.h
+Include3=sim\sfrAlias.h
+Include4=config.h
+Include5=jhl_defs.h
+Include6=user_define.h
+Include7=hal.h
+Include8=bsr_system.h
+Include9=renge\renge.h
+Include10=renge\renge_defs.h
+Include11=renge\renge_task_immediate.h
+Include12=vreg_ctr.h
+Include13=vreg_twl.h
+Include14=loader.h
+Include15=i2c_mcu.h
+Include16=WDT.h
+Include17=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h
+Include18=fsl_user.h
+Include19=i2c_ctr.h
+Include20=pm.h
+Include21=rtc.h
+Include22=reboot.h
+Include23=magic.h
+Include24=incs.h
+Include25=i2c_twl.h
+Include26=accero.h
+Include27=pedometer.h
+Include28=sw.h
+Include29=adc.h
+Include30=led.h
+Include31=batt_params.h
+Include32=pool.h
+Include33=i2c_twl_defs.h
+Include34=renge\renge_task_intval.h
+Include35=..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h
+Include36=self_flash.h
+Include37=sim\sim_interrupt_decrare.c
+Include38=util_funcs.h
+Include39=i2c_mcu_sub.h
diff --git a/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.prk b/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.prk
new file mode 100644
index 0000000..29f448c
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.prk
@@ -0,0 +1,25 @@
+[ProjectManager]
+FrameMax=1
+FrameX=4
+FrameY=0
+FrameCX=1235
+FrameCY=1076
+OpenFile1=i2c_ctr.c,0,655,120,1628,751,0,1,0,0
+OpenFile2=kanaria_c.c,0,68,138,763,769,8,5,8,0
+OpenFile3=pm.c,0,373,197,1346,828,35,374,32,0
+OpenFile4=accero.c,0,200,200,1016,818,109,227,2,0
+OpenFile5=i2c_mcu.h,0,671,375,1487,993,16,7,16,0
+OpenFile6=task_sys.c,0,225,225,1471,947,0,445,0,0
+OpenFile7=loader.c,0,250,250,1841,957,6,157,1,0
+OpenFile8=main.c,0,402,105,1713,812,0,57,0,0
+OpenFile9=batt_params.c,0,300,300,1553,955,0,68,0,0
+OpenFile10=task_misc.c,0,141,193,1732,900,2,271,2,0
+OpenFile11=i2c_mcu.c,0,335,94,1196,858,0,22,0,0
+OpenFile12=ProjectWindow
+PrjPos=0,0,706,0,291
+OpenFile13=config.h,0,300,300,1891,1007,29,10,29,0
+OpenFile14=OutputWindow
+OutputPos=0,231,682,640,1903
+ActivePRJ=yav_mcu_bsr.prj
+[ProjectWindow]
+ProjectWindowDispType=0
diff --git a/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.prw b/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.prw
new file mode 100644
index 0000000..7c0bbd6
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.prw
@@ -0,0 +1,8 @@
+[System]
+System1=default
+[default]
+Project1=yav_mcu_bsr.prj
+[BATCH_BUILD]
+Build1=yav_mcu_bsr.prj,Debug Build,1
+Build2=yav_mcu_bsr.prj,Release Build,0
+Build3=yav_mcu_bsr.prj,BSR_WM0,0
diff --git a/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.sdb b/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.sdb
new file mode 100644
index 0000000..367208e
--- /dev/null
+++ b/tags/2.19_SDK4(3rdNUP)/yav_mcu_bsr.sdb
@@ -0,0 +1,335 @@
+[SdbInfo]
+Ver=5
+[loader.c]
+T=4f13d431
+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=4f176bd3
+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=4f14d104
+1=incs.h
+2=rtc.h
+3=pedometer.h
+[main.c]
+T=4e647b08
+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=4f14db68
+1=magic.h
+2=config.h
+[WDT.c]
+T=4e649146
+1=incs_loader.h
+[i2c_mcu.c]
+T=4eeed909
+1=incs_loader.h
+2=i2c_mcu.h
+3=loader.h
+4=util_funcs.h
+5=i2c_mcu_sub.h
+[i2c_twl.c]
+T=4f14db40
+1=incs.h
+2=i2c_twl_defs.h
+3=i2c_twl.h
+4=vreg_twl.h
+5=WDT.h
+[led.c]
+T=4f13d418
+1=incs.h
+2=led.h
+[rtc.c]
+T=4e647eec
+1=incs.h
+[vreg_ctr.c]
+T=4e687272
+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=4e6491f4
+1=incs.h
+2=jhl_defs.h
+3=led.h
+4=vreg_twl.h
+5=adc.h
+[adc.c]
+T=4f13b7b7
+1=incs.h
+2=adc.h
+3=pm.h
+4=led.h
+5=vreg_twl.h
+6=i2c_mcu.h
+[renge\renge.c]
+T=4e77e344
+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=sim\simOnWin.h
+9=bsr_system.h
+[accero.c]
+T=4f14cd44
+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=4e686baa
+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=4e6480e9
+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=4e647e9c
+1=incs_loader.h
+2=renge\renge.h
+3=pm.h
+4=accero.h
+[task_misc.c]
+T=4f13d472
+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=4f13d6f6
+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=4e687ba7
+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=4e6864d2
+1=config.h
+2=sim\sim_interrupt_decrare.c
+[task_status.c]
+T=4f176b91
+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=4e687272
+1=incs.h
+2=led.h
+3=vreg_twl.h
+[led_pow.c]
+T=4e648b74
+1=incs.h
+2=led.h
+3=pm.h
+[hal.c]
+T=4e648ec7
+1=incs_loader.h
+[batt_params.c]
+T=4f13b94e
+1=jhl_defs.h
+2=batt_params.h
+[voltable.c]
+T=4e649285
+1=incs.h
+[pedo_lpf_coeff.c]
+T=4e6489bd
+1=incs.h
+[kanaria.asm]
+T=4e4226a2
+[kanaria_c.c]
+T=4e6489de
+1=incs.h
+[get_ei.asm]
+T=4e5223c3
+[util_funcs.c]
+T=4e68724a
+1=incs_loader.h
+2=WDT.h
+[i2c_mcu-sub.c]
+T=4f14d9cd
+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=4e646cef
+1=sim\simOnWin.h
+2=jhl_defs.h
+3=user_define.h
+4=hal.h
+5=bsr_system.h
+6=renge\renge.h
+7=vreg_ctr.h
+8=vreg_twl.h
+[sim\simOnWin.h]
+T=4e559884
+1=sim\sfrAlias.h
+[sim\sfrAlias.h]
+T=4e5b0fa2
+1=config.h
+[config.h]
+T=4f176c3b
+[jhl_defs.h]
+T=4e647343
+[user_define.h]
+T=4e686ba9
+[hal.h]
+T=4e5229fb
+[bsr_system.h]
+T=4e409e1a
+[renge\renge.h]
+T=4e5e108a
+1=renge\renge_defs.h
+2=renge\renge_task_immediate.h
+[renge\renge_defs.h]
+T=4c073c5a
+[renge\renge_task_immediate.h]
+T=4e54ab05
+1=renge\renge_defs.h
+[vreg_ctr.h]
+T=4e5f0c2e
+1=config.h
+[vreg_twl.h]
+T=4d42202e
+[loader.h]
+T=4e646df6
+[i2c_mcu.h]
+T=4eeeb6a7
+[WDT.h]
+T=4c319dfc
+[..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h]
+T=49a3bd4e
+[fsl_user.h]
+T=4e409e62
+[i2c_ctr.h]
+T=4bf0d1e1
+[pm.h]
+T=4e5dbf8d
+[rtc.h]
+T=4e409e1c
+[reboot.h]
+T=4bf0d1e1
+[magic.h]
+T=4caab849
+[incs.h]
+T=4e646ff5
+1=sim\simOnWin.h
+2=jhl_defs.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=4bf4e29e
+[accero.h]
+T=4e54ab05
+1=jhl_defs.h
+2=pedometer.h
+[pedometer.h]
+T=4e409e19
+[sw.h]
+T=4df2001a
+1=config.h
+[adc.h]
+T=4dd5c8b2
+1=jhl_defs.h
+[led.h]
+T=4e530d97
+[batt_params.h]
+T=4e409e1c
+1=jhl_defs.h
+[pool.h]
+T=4c072cf1
+1=pedometer.h
+[i2c_twl_defs.h]
+T=4bf0d1e1
+[renge\renge_task_intval.h]
+T=4e530e07
+1=renge\renge_defs.h
+[..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h]
+T=45f12258
+[self_flash.h]
+T=4bf0d1e0
+[sim\sim_interrupt_decrare.c]
+T=4e409e19
+[util_funcs.h]
+T=4e687249
+[i2c_mcu_sub.h]
+T=4eeed7e6
diff --git a/tags/2.19_SDK4(3rdNUP)/ベースからの変更.xls b/tags/2.19_SDK4(3rdNUP)/ベースからの変更.xls
new file mode 100644
index 0000000..5212dac
Binary files /dev/null and b/tags/2.19_SDK4(3rdNUP)/ベースからの変更.xls differ