diff --git a/tags/SDK3.0(2.00)/VCProj/Debug/BuildLog.htm b/tags/SDK3.0(2.00)/VCProj/Debug/BuildLog.htm
new file mode 100644
index 0000000..826ce7c
Binary files /dev/null and b/tags/SDK3.0(2.00)/VCProj/Debug/BuildLog.htm differ
diff --git a/tags/SDK3.0(2.00)/VCProj/Debug/bsr_trunk.lastbuildstate b/tags/SDK3.0(2.00)/VCProj/Debug/bsr_trunk.lastbuildstate
new file mode 100644
index 0000000..ed27c09
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/VCProj/Debug/bsr_trunk.log b/tags/SDK3.0(2.00)/VCProj/Debug/bsr_trunk.log
new file mode 100644
index 0000000..58c1bd7
--- /dev/null
+++ b/tags/SDK3.0(2.00)/VCProj/Debug/bsr_trunk.log
@@ -0,0 +1,71 @@
+2011/08/02 14:10:42 にビルドを開始しました。
+ 1>ノード 2 上のプロジェクト "C:\78k_data\yav-mcu-basara\branches\sim\VCProj\bsr_trunk.vcxproj" (build ターゲット)。
+ 1>InitializeBuildStatus:
+ "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 ..\accero.c ..\adc.c ..\i2c_ctr.c ..\i2c_twl.c ..\led.c ..\led_cam.c ..\led_pow.c ..\loader.c ..\magic.c ..\main.c ..\pedo_alg_thre_det2.c ..\pm.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
+ accero.c
+ adc.c
+ i2c_ctr.c
+ i2c_twl.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(1279): warning C4090: '=' : 異なる 'const' 修飾子です。
+ 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:03.96
diff --git a/tags/SDK3.0(2.00)/VCProj/Debug/bsr_trunk.unsuccessfulbuild b/tags/SDK3.0(2.00)/VCProj/Debug/bsr_trunk.unsuccessfulbuild
new file mode 100644
index 0000000..e69de29
diff --git a/tags/SDK3.0(2.00)/VCProj/_UpgradeReport_Files/UpgradeReport.css b/tags/SDK3.0(2.00)/VCProj/_UpgradeReport_Files/UpgradeReport.css
new file mode 100644
index 0000000..3411f63
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/VCProj/_UpgradeReport_Files/UpgradeReport.xslt b/tags/SDK3.0(2.00)/VCProj/_UpgradeReport_Files/UpgradeReport.xslt
new file mode 100644
index 0000000..8277446
--- /dev/null
+++ b/tags/SDK3.0(2.00)/VCProj/_UpgradeReport_Files/UpgradeReport.xslt
@@ -0,0 +1,232 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | : |
+
+
+
+
+
+
+
+
+ 変換レポート
+
+
+
+
+
+
+
+ 変換レポート -
+
+
+ 変換時間:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tags/SDK3.0(2.00)/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif b/tags/SDK3.0(2.00)/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif
new file mode 100644
index 0000000..17751cb
Binary files /dev/null and b/tags/SDK3.0(2.00)/VCProj/_UpgradeReport_Files/UpgradeReport_Minus.gif differ
diff --git a/tags/SDK3.0(2.00)/VCProj/_UpgradeReport_Files/UpgradeReport_Plus.gif b/tags/SDK3.0(2.00)/VCProj/_UpgradeReport_Files/UpgradeReport_Plus.gif
new file mode 100644
index 0000000..f6009ca
Binary files /dev/null and b/tags/SDK3.0(2.00)/VCProj/_UpgradeReport_Files/UpgradeReport_Plus.gif differ
diff --git a/tags/SDK3.0(2.00)/VCProj/bsr_trunk.ncb b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.ncb
new file mode 100644
index 0000000..c3df735
Binary files /dev/null and b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.ncb differ
diff --git a/tags/SDK3.0(2.00)/VCProj/bsr_trunk.opensdf b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.opensdf
new file mode 100644
index 0000000..cdfe0d5
Binary files /dev/null and b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.opensdf differ
diff --git a/tags/SDK3.0(2.00)/VCProj/bsr_trunk.sdf b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.sdf
new file mode 100644
index 0000000..c3d9657
Binary files /dev/null and b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.sdf differ
diff --git a/tags/SDK3.0(2.00)/VCProj/bsr_trunk.sln b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.sln
new file mode 100644
index 0000000..520f84d
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/VCProj/bsr_trunk.sln.old b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.sln.old
new file mode 100644
index 0000000..2881d87
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/VCProj/bsr_trunk.suo b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.suo
new file mode 100644
index 0000000..3b84754
Binary files /dev/null and b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.suo differ
diff --git a/tags/SDK3.0(2.00)/VCProj/bsr_trunk.suo.old b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.suo.old
new file mode 100644
index 0000000..63c7d49
Binary files /dev/null and b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.suo.old differ
diff --git a/tags/SDK3.0(2.00)/VCProj/bsr_trunk.vcproj b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.vcproj
new file mode 100644
index 0000000..1a6531b
--- /dev/null
+++ b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.vcproj
@@ -0,0 +1,594 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tags/SDK3.0(2.00)/VCProj/bsr_trunk.vcproj.NCL.N2232.user b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.vcproj.NCL.N2232.user
new file mode 100644
index 0000000..257e4e7
--- /dev/null
+++ b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.vcproj.NCL.N2232.user
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tags/SDK3.0(2.00)/VCProj/bsr_trunk.vcxproj b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.vcxproj
new file mode 100644
index 0000000..506aae7
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/VCProj/bsr_trunk.vcxproj.filters b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.vcxproj.filters
new file mode 100644
index 0000000..af77d25
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/VCProj/bsr_trunk.vcxproj.user b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.vcxproj.user
new file mode 100644
index 0000000..695b5c7
--- /dev/null
+++ b/tags/SDK3.0(2.00)/VCProj/bsr_trunk.vcxproj.user
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/tags/SDK3.0(2.00)/WDT.c b/tags/SDK3.0(2.00)/WDT.c
new file mode 100644
index 0000000..dd9a332
--- /dev/null
+++ b/tags/SDK3.0(2.00)/WDT.c
@@ -0,0 +1 @@
+#include "incs_loader.h"
\ No newline at end of file
diff --git a/tags/SDK3.0(2.00)/WDT.h b/tags/SDK3.0(2.00)/WDT.h
new file mode 100644
index 0000000..2e28e9d
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/accero.c b/tags/SDK3.0(2.00)/accero.c
new file mode 100644
index 0000000..dc52759
--- /dev/null
+++ b/tags/SDK3.0(2.00)/accero.c
@@ -0,0 +1,261 @@
+/* ========================================================
+@xZTW
+Ef[^XVŃf[^zグ背WX^XVACPUɊ荞
+EtOĂΕJEg
+ExZT荞݂^XNo^ĉBiI2C̋Ȃǂ̂Łj
+
+ ======================================================== */
+#ifndef _WIN32
+
+#pragma SFR
+#pragma NOP
+#pragma HALT
+#pragma STOP
+#pragma ROT
+// rorb, rolb, rorw, rolw
+#pragma MUL
+#pragma BCD
+
+#endif
+
+#include "config.h"
+#ifndef _WIN32
+
+#pragma interrupt INTP23 intp23_ACC_ready RB3 // xZTAf[^
+
+#endif
+
+
+#include "incs.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
+
+// 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 )
+
+
+
+
+// ========================================================
+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^܂
+ static u8 err_count;
+ u8 acc_dat_buff[6];
+
+ // xZTf[^WX^ւ̔f
+ if( iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | 0x80 ), 6, acc_dat_buff )
+ != ERR_SUCCESS )
+ {
+ err_count ++;
+ if( err_count < 8 )
+ {
+ // gC
+ return( ERR_CONTINUE );
+ }
+ else
+ {
+ // xZTُɂȂ̂Ŏ~߂
+ vreg_ctr[ VREG_C_ACC_CONFIG ] &= ~( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ );
+ tski_acc_hosu_set();
+ vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_ACCERO_ERR;
+ return ( ERR_FINISED ); // ^XN̍폜͕Kv
+ }
+ }
+ else
+ {
+ memcpy( &vreg_ctr[VREG_C_ACC_XL], acc_dat_buff, 6 );
+
+ err_count = 0;
+ // 펞pX //
+ // 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[6];
+ iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | 0x80 ), 6, temp );
+ }
+ }
+ if(( system_status.pwr_state != ON_CHECK )
+ &&( system_status.pwr_state != OFF )
+#ifndef _DBG_PEDO_AUTO_ENABLE_
+ &&( ( vreg_ctr[VREG_C_ACC_CONFIG] & VREG_BITMASK_ACC_CONF_HOSU ) != 0 )
+#endif
+ )
+ {
+ 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] );
+// vreg_ctr[ VREG_C_ACC_R_BUF ] = iic_mcu_read_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_R_ADRS] );
+ vreg_ctr[VREG_C_IRQ1] |= REG_BIT_ACC_ACK;
+ if( ( vreg_ctr[VREG_C_IRQ_MASK1] & REG_BIT_ACC_ACK ) == 0 )
+ {
+ IRQ0_ast;
+ }
+ 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] );
+ vreg_ctr[VREG_C_IRQ1] |= REG_BIT_ACC_ACK;
+ if( ( vreg_ctr[VREG_C_IRQ_MASK1] & REG_BIT_ACC_ACK ) == 0 )
+ {
+ IRQ0_ast;
+ }
+ return ( ERR_FINISED );
+}
+
+
+
+/*=========================================================
+@xZT̐ݒ
+ ========================================================*/
+task_status_immed tski_acc_hosu_set( )
+{
+ u8 str_send_buf[4];
+
+ iic_mcu_read_a_byte( IIC_SLA_ACCEL, ACC_REG_WHOAMI );
+ if( iic_mcu_result == ERR_NOSLAVE )
+ {
+ vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_ACCERO_ERR;
+ return ( ERR_FINISED ); // Ƃ肠A^XN͍폜ȂĂ͂ȂȂ
+ }else{
+ vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_ACCERO_ERR;
+ }
+
+ str_send_buf[1] = 0x00; // ctrl2 HPF:normal, filterd, HPF for IRQ : dis/dis, HPF coeff:norm
+/*
+if( system_status.model == MODEL_TS_BOARD )
+ {
+ // TS Final SoC
+ str_send_buf[2] = 0x02; // 3 IRQ pol :Active HI, Drive:Pushpull,
+ }
+ else
+ {
+ // @hA
+ str_send_buf[2] = 0x10; // 3 IRQ pol :Active HI, Drive:Pushpull,
+ }
+*/
+ if( system_status.model == MODEL_TS_BOARD )
+ {
+ str_send_buf[2] = bits8(0,0,0,0, 0,0,1,0); // sŝ߁Aƕ
+ }
+ 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
+
+ if( ( vreg_ctr[VREG_C_ACC_CONFIG] &
+ ( VREG_BITMASK_ACC_CONF_HOSU | VREG_BITMASK_ACC_CONF_ACQ ) ) == 0 )
+ {
+ PMK23 = 1;
+ // S~
+ str_send_buf[0] =
+ ( ACC_BITS_PM_PDN << ACC_bP_PM0 | 0 << ACC_bP_DR0 | ACC_BITS_ALL_AXIS_ON );
+ }
+ else
+ {
+ PMK23 = 0;
+ // 100Hz 荞
+ str_send_buf[0] =
+ ( ACC_BITS_PM_NORM << ACC_bP_PM0
+ | ACC_BITS_DR_100Hz << ACC_bP_DR0
+ | ACC_BITS_ALL_AXIS_ON );
+ }
+ iic_mcu_write( IIC_SLA_ACCEL, ( ACC_REG_CTRL1 | 0x80 ), 4, str_send_buf );
+
+ // Jǂ
+ if( ACC_VALID )
+ {
+ if( system_status.pwr_state == ON )
+ {
+ u8 temp[6];
+ iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | 0x80 ), 6, temp );
+ }
+ }
+ return ( ERR_FINISED );
+}
+
+
+
+/* ========================================================
+ xZT荞
+ I2CgpȂ̂ŁAǂݏo^XN̓o^ŝ
+ ======================================================== */
+__interrupt void intp23_ACC_ready( )
+{
+ EI();
+ if( ( vreg_ctr[VREG_C_ACC_CONFIG] & 0x03 ) != 0x00 )
+ {
+ if( ( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) )
+ {
+ if( ACC_VALID )
+ {
+ renge_task_immed_add( tski_cbk_accero );
+ }
+ }
+ }
+}
diff --git a/tags/SDK3.0(2.00)/accero.h b/tags/SDK3.0(2.00)/accero.h
new file mode 100644
index 0000000..20494b9
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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_hosu_set( );
+
+
+#endif
diff --git a/tags/SDK3.0(2.00)/adc.c b/tags/SDK3.0(2.00)/adc.c
new file mode 100644
index 0000000..20769fa
--- /dev/null
+++ b/tags/SDK3.0(2.00)/adc.c
@@ -0,0 +1,515 @@
+/* ========================================================
+ cJZ
+ nintendo
+ '09 Apr
+ ======================================================== */
+#include "incs.h"
+#include "adc.h"
+#include "pm.h"
+
+#include "led.h"
+
+#include "vreg_twl.h"
+
+#define _10db_
+#include "voltable.h"
+
+
+// ===================================================== //
+bit adc_updated;
+bit vol_changed_by_ctr;
+bit vol_changed_by_twl;
+u8 vol_old;
+
+
+u8 adc_raw_vol;
+u8 adc_raw_dep;
+
+u8 vol_polling;
+
+u8 vol_level_twl;
+
+
+typedef struct filter_work
+{
+ u8* value_used;
+ s8 diffs; // KIKAN̕
+ s8 kikan;
+ u8 large_diff_count;
+}filter_work;
+
+
+filter_work work_vr_3d = {
+ &vreg_ctr[ VREG_C_3D ]
+ };
+
+
+u8 vol_data_ctr;
+u8 vol_data_ctr_tmp;
+filter_work work_vr_vol = {
+ &vol_data_ctr_tmp
+ };
+
+
+// twl 8iKvol̃jAl̋E
+/*
+ twl32 -> 8 e[u
+ 0`1,`4,`8,`13,`18,`23,`28,31
+ */
+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
+ EBT_TEMP,_P
+ EADIN1
+ EVOL
+
+ W肻łʂ̂ƂŊǗĂ܂
+ EPM_BT_DET,_P BT_chk
+ ======================================================== */
+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;
+}
+
+
+
+void vol_reset()
+{
+ vol_old = vol_data_ctr;
+ vreg_ctr[ VREG_C_SND_VOL ] = vol_data_ctr; // 64i
+}
+
+
+/* ========================================================
+@VolXV܂B
+ @Ȏɓo^܂B
+@@E[U[VolXC_
+@@EHorizonɋXVwꂽ@icodecZbgj
+@@ETWLAvVol
+======================================================== */
+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 );
+}
+
+
+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;
+ }
+ }
+}
+
+
+/* ========================================================
+@ߋRminłMAXłȂlԂ
+ @˔IȃmCYB
+ @^ƐU
+======================================================== */
+static u8 getmean3( u8 * hist )
+{
+/*
+// ͑傫Ēx
+ u16 temp = 0;
+ u8 min = 255;
+ u8 max = 0;
+ u8 i;
+
+ for( i=0; i!= 3; i++ )
+ {
+ temp += *(hist+i);
+ if( min > *(hist+i) ){ min = *(hist+i); }
+ if( max < *(hist+i) ){ max = *(hist+i); }
+ }
+ return (u8)(temp - min - max);
+*/
+
+ if( *hist > *( hist + 1 ) )
+ {
+ if( *hist > *( hist + 2 ) )
+ {
+ if( *( hist + 1 ) > *( hist + 2 ) )
+ {
+ return( *( hist + 1 ) );
+ }
+ else
+ {
+ return( *( hist + 2 ) );
+ }
+ }
+ else
+ {
+ return( *hist );
+ }
+
+ }else{
+ if( *hist > *( hist + 2 ) )
+ {
+ return( *hist );
+ }
+ else
+ {
+ if( *( hist + 1 ) < *( hist + 2 ) )
+ {
+ return( *( hist + 1 ) );
+ }
+ else
+ {
+ return( *( hist + 2 ) );
+ }
+ }
+ }
+}
+
+
+
+/* ========================================================
+@OŎ̃`l
+@@ʂI~߂
+ ======================================================== */
+__interrupt void int_adc( )
+{
+ static u8 index;
+
+ volatile u8 adc_data;
+
+ 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();
+ if( vreg_ctr[ VREG_C_HAL_OVW_TEMPERATURE ] == 0xFF )
+ {
+ 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;
+
+ if( ++index > 2 ) // mCY̔zCfbNX
+ {
+ index = 0;
+ }
+ }
+ ADIF = 0; // ȂƁAÕ`l̃f[^̊ŒɊ荞މ\
+}
+
+
+
+/* ========================================================
+ 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/SDK3.0(2.00)/adc.h b/tags/SDK3.0(2.00)/adc.h
new file mode 100644
index 0000000..6f4ad04
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/batt_params.h b/tags/SDK3.0(2.00)/batt_params.h
new file mode 100644
index 0000000..3807441
--- /dev/null
+++ b/tags/SDK3.0(2.00)/batt_params.h
@@ -0,0 +1,132 @@
+#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_;
+
+
+
+
+/* ========================================================
+ eЃobe[p[^
+ ======================================================== */
+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 !!dummy!!
+ {
+ {
+ 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 },
+ }
+};
+
+
+#endif
diff --git a/tags/SDK3.0(2.00)/bsr.hex b/tags/SDK3.0(2.00)/bsr.hex
new file mode 100644
index 0000000..2ff6e9f
--- /dev/null
+++ b/tags/SDK3.0(2.00)/bsr.hex
@@ -0,0 +1,1008 @@
+:02000000660D8B
+:0400100079497B4966
+:02001C003B4B5C
+:02002400884B07
+:02002A00D34BB6
+:08003400FB4C9E4CF74C2D4ED5
+:02004A007D49EE
+:02005A00B849A3
+:02006200B14D9E
+:0400C0007EFBFF04C0
+:0A00C4001B339499E033F240BFAA09
+:1000CE00C7C1FBF8FFCEABACC736F00071F4C6610A
+:1000DE00D8710014F98EA89C018C015C10D1DD0A38
+:1000EE007110BCFB710014F9EF0B8C015C80D161B7
+:1000FE00E8710014F98F14F931030EF6B1BBF661F5
+:10010E004900DD05618900EFF5FDD401FD2801FDF3
+:10011E008001FD6402EFAEC0C6D7C7360000674C43
+:10012E0009DE3F318E04F60FC1317B9EFDC411896D
+:10013E007267318E04F64F14896142DF03F6EF01C8
+:10014E00E660610667318E124900207267318E04B7
+:10015E00F64F14896142DF03F6EF01E66061068710
+:10016E00EFBC40F84F3A61E88666D161E8FDDE06E5
+:10017E00C6D751105B0C319E609F16F94016F901DF
+:10018E00DF05CD3205EF03CD32078F14F95CE39F07
+:10019E0014F951035B04318EE7240000DD1023DDDA
+:1001AE000823DF0E712014F9D7713014F9D771407E
+:1001BE0014F9D7717BFACEA010CEA180E5F300CE54
+:1001CE00A408F5AAFFD78F14F9310508CD0003CD89
+:1001DE000307EF03CD030ECE23F88F14F931030B73
+:1001EE00CD0408CD0508F690BFB401CF1105F8F582
+:1001FE0021FFCE22E9CE24F3CE25FACE26FCCE2741
+:10020E005FCE2EFCCF120511CF350002CF3700196D
+:10021E00CF530006CBEEFEFFCE3831CE3970CF383D
+:10022E00050A308700BF1801BF1A01BF1C01BF1E8F
+:10023E0001D7C7C1C1FBF8FFCEABAC8C02D1DD122A
+:10024E00616902305C03BBF6614900DDEE61890035
+:10025E00EFF51004C6D7F50CFCF50EFCCF14FCFF21
+:10026E00CF10FCFFCF11FCFFFD6D2FFD9938FDCE99
+:10027E0004717AFAFDB123F512F98F14F9310513D1
+:10028E005003FD5A2B625C01D161E8CF12F902CF07
+:10029E00C5FB64FD4D30FD2645710261712BE7FDF6
+:1002AE009C38FD3B3961EDEFF6D7D7C7F616FDCE7C
+:1002BE0004717BFA31225F0871225F717AFAEF0BBB
+:1002CE00717AFAA7F647DFE9E2EF01F2C6D7C7C1A6
+:1002DE00C1FBF8FF17A1C1E0C18C0A70C18C02707E
+:1002EE00FD04031006D2DF04F439EF03CD39028C7E
+:1002FE0001721004C6D7C7C1FBF8FFFDB902D2DDEB
+:10030E0003E2EF618B70FD2204D2DD0771235F5291
+:10031E0002EF528C0870FD3704FD82048B6C017065
+:10032E00FD3704300400BF2401301740BF1C0130DC
+:10033E000400BF22018C0A91DF04F6BF2A01710B63
+:10034E00E2CE44FF3182E202EFFAAC0C148E4499F5
+:10035E0061790C61690A8C0AD1DFDAFDAB04710B8D
+:10036E00E271235FF2C0C6D7C7C1FBF8FFFDB90229
+:10037E00D2DD03E2EF25710AE68B70FD2204D2DD99
+:10038E000771235F5202EF138C0870FD37048C0A3D
+:10039E0070FD3704FDAB0471235FF2C0C6D7C7C131
+:1003AE00FBF8FFFDB902D2DD03E2EF65710AE671DB
+:1003BE000BE28B70FD2204D2DD0771235F5202EF38
+:1003CE0050710BE231125F39C73430FBAC0C165250
+:1003DE00048B99A5A792DFF9C63184BD02EFFA719D
+:1003EE007ABDCEB144CBB430FB8C0A318EBEB8CEC2
+:1003FE00BB48714BE1714BE5710ABD8C089E44EF11
+:10040E000F710BE68C089E448C0A9D38AC0CBD36E1
+:10041E00F2C0C6D7C716FD5A0417FD3704D2DD0643
+:10042E00FDAB04E2EF01F2C6D7C716710AE6710BF7
+:10043E00E2669E443182E202EFFAF6420401DD09E1
+:10044E00AF0401BF0C01E2EF01F2C6D7AF280108DD
+:10045E005CFB08BF2801FDB802AF28015CFBBF287A
+:10046E0001300400BF2A01301780BF1C0130040088
+:10047E00BF2201D7AF2401086C0408BF2401AF28A6
+:10048E00016C0F086C0B08BF2801FDB802AF2A01E2
+:10049E00085CFB08BF2A01FDB802ED5A04300400C7
+:1004AE00BF2401F6BF2A01300B0BBF2801FDB80295
+:1004BE00300B0FBF2801FDB802300F0FBF2801D738
+:1004CE0031345F01D771225F710BBD0000717BBDAE
+:1004DE006A0E03713B25713B23500AFD40027120C9
+:1004EE00F000FDB802F6BF26015024BF1401CB4424
+:1004FE000014300F0FBF280171135F710BE2710AE8
+:10050E00E6FD5A04CE44FF3182E202EFFAFDAB045F
+:10051E00AF0401BF0C0171235F71325FD731245FCD
+:10052E0002EFFAFD8204713A25713A235A0EFC71DC
+:10053E0028F00071335FD7C7880616FDB902D2DDE9
+:10054E0003E2EF38710AE650A4FD2204D2DD0771F2
+:10055E00235F5202EF2617FD37046770FD3704FD47
+:10056E00820450A4FD37045020FD3704D934FBFD1E
+:10057E003704A034FBFDAB0471235FF2C6D7C7204E
+:10058E0008FBF8FFFDDC085014C15008FD0E08C032
+:10059E00CC07048C074C14DE0C8C07318EFD480AF8
+:1005AE00615907EFEECC07048C074C1461C8ED7A45
+:1005BE0006CC06008C064C0461C8ED59063018F9BD
+:1005CE00BC02F6BBCEABAC31B2D109C73641057118
+:1005DE0084C6DEF3F1C73641057184C661DC9C0525
+:1005EE00713BD1AC02148F40059971505005617961
+:1005FE0002617900F0E1614900DD09C736410571FC
+:10060E0084C6DEC3F1C73641057184C661DC0E05B2
+:10061E009C055040C18C07318E31AD128C06318E47
+:10062E00318D03BDD831FFBDDADADAADD8FD140D48
+:10063E00C0D2DD0C5008C15014FD0E08C0FDD10B08
+:10064E008C05D1DF06615906EDC2058C07318EFD92
+:10065E004C0AD2DD0C5008C15014FD0E08C0FDD15D
+:10066E000B8C05D1DF06615907EDB605716050059B
+:10067E00CC0400CC05008C054C09DE2B8C05318E8C
+:10068E0004F61FC1317B9EFDC41189728C05318E1B
+:10069E0004F64F14896142DF03F6EF01E6600E04A3
+:1006AE009C04615905EFCF41001140F81F3A61E8F3
+:1006BE006159048C04D1DF08FDD20BFDE40CEF0C64
+:1006CE005008C15014FD0E08C0FDD10B1008C6D73E
+:1006DE00C72004FBF8FF715B21CC0100F6BC02AC15
+:1006EE0002440900DE3EAC0204F60F1441001189EB
+:1006FE0072AC020C5014896142DF03F6EF01E66022
+:10070E000E019C01AC021249005072AC0204F67F3D
+:10071E0014896142DF03F6EF01E6600E019C016170
+:10072E007902EFBB40F67FFF61F86159018C01D170
+:10073E0061F8EDDC07CC0100717AFAFDCE0471137D
+:10074E0000711B20710303710205E0C15003FD49C6
+:10075E002BC05013FD4002500FC1E0FD492BC0CEFF
+:10076E00ABAC6159018C0191DD068C014C03DF03AA
+:10077E00E6EF01F66061FB7151018C014C0861F8E6
+:10078E00CC010031320705A042FCEF03F542FC40DC
+:10079E0042FC11DC0DF542FCF0C15003FD492BC0AB
+:1007AE00EF12E6BC02F6614902DDB4000000006102
+:1007BE007902EFF1CE3708CBE4FFFFCBE6FFF7CEA1
+:1007CE00D4FFCF370008F5120561FDF5ABFFFDDC58
+:1007DE0008D25008C15014FD0E08C0D2FDD10B1026
+:1007EE0004C6D73184BD02EFFA717BBDCBE4FFFFA7
+:1007FE00CBE6FFFFCBD4FFFF717ABED7717BBED79E
+:10080E00C7C1200CFBF8FF8C0C318E31ADC1317B92
+:10081E009DD4C0BC068DD49C088C149C0B8C1431BA
+:10082E008E040C00128C0B318EBDD813FDA30F61FC
+:10083E00C8EDD708CEABACCC05068C0B318EFD4483
+:10084E000AD2DD158C0B318EFD480A6169058C05C7
+:10085E00D1DFE7FD0A08E2EF71CC0A008C0A4C04E6
+:10086E00DE54F6BC023018F9BBAC06148C089EFDA3
+:10087E00118972AB146299AC06A1BC066179006154
+:10088E007902F0E1614902DFE05040C18C0B318EFC
+:10089E0031AD128C0A318E318D03BDD831FFBDDAE8
+:1008AE00DADAADD8FD140DC0D2DD06FD0A08E2EF8E
+:1008BE001961590AEFA68C0B318EFD4C0AD2DD035D
+:1008CE00E2EF0761590BED2B08F2100EC6D7C77178
+:1008DE007B9D717BFAFDF1073018F9FDF70AFD8259
+:1008EE000AC6D7FDDC08FDD10BFD0A08F5ABFFF2F9
+:1008FE00D7C7316462067110C9FBEF047118C9FBCA
+:10090E008FC9FB7FEAFC76D1DD5C8FC9FB9FEAFCC9
+:10091E004012F903DF22665C10D1DD1C8FC9FB5C2F
+:10092E0010D1DD0B5080C15011FDA434C0EF095021
+:10093E0040C15011FDA434C04012F903DD0640122F
+:10094E00F904DF22665C02D1DD1C8FC9FB5C02D18B
+:10095E00DD0B5040C15010FDA434C0EF095020C132
+:10096E005010FDA434C0C6D7C78F0CFC768F0DFC7B
+:10097E0077665C80D1DD10675C80D1DF0571136214
+:10098E00EF0B711262EF06710407711162665C4023
+:10099E00D1DD10675C40D1DF05712362EF0B712250
+:1009AE0062EF06711405712162665C01D1DD10677C
+:1009BE005C01D1DF05713362EF0B713262EF0671AC
+:1009CE003407713162665C02D1DD10675C02D1DFE3
+:1009DE0005714362EF1D714262EF184015F901DF98
+:1009EE0008710402714162EF0AC736100571C4C660
+:1009FE00714162665C04D1DD10675C04D1DF057164
+:100A0E005362EF0B715262EF0671440771516266C9
+:100A1E005C08D1DD10675C08D1DF05716362EF0BF6
+:100A2E00716262EF06711407716162665C10D161CA
+:060A3E00E8715AD1C6D791
+:100A44005208EF065203EF025206FEE600FE1B00B8
+:100A5400DC16089F03088F0408089F040862FE241C
+:100A640000089F0408EEBF00EEBA00C1C514410E91
+:100A740011D9D0FF118FD1FF312E45C4C0D7F23127
+:100A8400A2C401E2D79DE261DD4C09DF12717BFA59
+:100A9400C18F06089F31FDC0CF060800EE27003144
+:100AA400F2FA04CF0608004C00DF05D50008DD1675
+:100AB40061DD717BFAD50608DD0ACDE31F61CD61E6
+:100AC400CDEE160061CDFED40061FFFE9A00FCF865
+:100AD400FF0EFEB20061CDFED5004C09DF0EC18FC2
+:100AE40006086F31FD9F0608C0EE0400CF0608001B
+:100AF400F8E3D75200EF025202FE3700CF30FD0078
+:100B0400CF060800BF0408C716629F000841001101
+:100B14008F22229B4100118F23229F0108C651007E
+:100B2400FE62FFEF025205CF060800C1510CFE0A17
+:100B340000C0D7C1511DFE0200C0D761DD717BFA30
+:100B440070CEC0A59EC47CFF9EC4609EC461CDD7F8
+:100B540061DD717BFAC18EC45C1BFED6FFCF060833
+:100B640001FED7FFC061CDD731F2FA1AC1AEE4BF9E
+:100B740022FDAEE6BF24FDAED4BF26FD30FFFFBE8E
+:100B8400E4BEE6BED4C0D731F2FA11C1AF22FDBE35
+:100B9400E4AF24FDBEE6AF26FDBED4C0D7C1BF2856
+:100BA400FD13BF2AFD15BF2CFD17BF2EFDC0D7AF07
+:100BB40028FDDB2AFDEB2CFDFB2EFDD7534B3052D9
+:100BC4005430324E323030475631323000FFC1504B
+:100BD400FEFEAB0061DD717BFACF060800FE0A0061
+:100BE400FEA4FF61CDF8E3EECF00C7FB0408BF22EB
+:100BF400FD8FC0009C05C5C337040600BF24FD3526
+:100C040036360C300000522BFE6600C2C4C630E4F7
+:100C14000BB800300000B8022004AF24FDB8003047
+:100C24000F00B802AF22FD61FF520AFE3AFFECF852
+:100C3400FF0E717BFAC1C7FB04088C05C65C80FEFD
+:100C44000200C0D761DD717BFA70CFC0FFA59FC0E1
+:100C5400007CFF9FC000609FC00061CDD7618BFE08
+:100C6400E2FF717BBE410011FB000017CEFC006166
+:100C7400CB089EFDF31161C999A58392DFF7D7FED6
+:100C8400B1FED530FDDF23C1CF0308035109FEF4C3
+:100C9400FDC0D2DF37FE3800A20408CF0308075195
+:100CA40009FEE1FDD2B20408DF22C7FB0408318348
+:100CB40002C6D7C6510AFECCFD624C1FDF06CF30F8
+:100CC400FD01EF04CF30FD00C0EE5BFEC0EE55FE2B
+:100CD400C7C1FB04088B31196C0161589BC0C6D78E
+:100CE400717BFAFE4DFEAF0408040600C1143648B9
+:100CF4000C300000522DF3FE77FF8FC000FE2BFE58
+:100D040061CF5C807C8073C0041900CEFC0F61CB82
+:100D1400C55404EF03C55417FE18FEC7360008BBBC
+:100D2400629C0288089C03D1DD334C41DE2F70F1B4
+:100D3400312DB161090033081C000851FF612A41BB
+:100D44000E118FD0FF613B118FD1FF6138DC0E8B08
+:100D54005C03DF0964C6C4FE2BFDEECAFDC6C4EE07
+:020D6400C3FDCD
+:100D660061CF5100718C7109FECBF800FEFCC10108
+:100D760000F6BF00F953C0F693935820FEDFF94101
+:100D860000363E4E34F4FCEF05118B99A7A51744A7
+:100D96006C4EDFF53602F930F4FCEF04CC0000A708
+:100DA60047DFF94100366C4E3420FEEF05118B9972
+:100DB600A7A51744744EDFF53628FE305EFEEF0415
+:100DC600CC0000A747DFF9FCCE0000EFFE61DD7125
+:100DD6007BFABEF0ADD8BEF200AEF661CDD7C361E8
+:100DE600DD717BFABEF0ADD8BEF200DBF6FFADDCFE
+:100DF600BEF000AEF6BDD8AEF40312ADDABEF20018
+:100E0600AEF661CD03BDDAC2D7C3F33174D9088318
+:100E1600C1F626D8BDD8C031750683C312F623C2E3
+:100E2600FD310E93DF0312F623C2D7440000DD2600
+:100E360061DD717BFACFE80080BEF6F6BEF4BEF245
+:100E4600ADD8BEF0CFE800818FE8003103FAAEF0EE
+:100E5600F5E80061CDD7B1D7C3F33174D90883C1A2
+:100E6600F626D8BDD8C0317505C312F623C2FD7F5C
+:100E76000E93DF0312F623C2D7440000DD2761DD9F
+:100E8600717BFACFE80080BEF6F6BEF4BEF2ADD8AE
+:100E9600BEF0CFE800818FE8003103FAAFE000F53D
+:100EA600E80061CDD7ADD8D7C3F33174DB0F83C16A
+:100EB600F626D8BDD861317026DABDDAC031750D97
+:100EC60083C312F626DCBDDC61317023C2FDE70E5A
+:100ED60093DF0CF626D8BDD861317026DABDDAC2AA
+:100EE600D7C161686BDC6BDDC0DD2F61DD717BFA1C
+:100EF600CFE80080BEF4ADDCBEF6ADD8BEF0ADDA0C
+:100F0600BEF2CFE800818FE8003103FAAEF0BDD81B
+:100F1600AEF2BDDAF5E80061CDD7F6BDD8BDDAD7B9
+:100F26008292DD2B61DD717BFACFE80080BEF0F6A0
+:100F3600BEF2BEF46208BEF6CFE800818FE800314B
+:100F460003FAAFE0006072AEF0F5E80061CDD7605D
+:100F560072F6B1D706DABDDAADDC06D8BDD861D8EF
+:100F6600A6DAD7D1DD17C1C3DAD89DD8ADDA311CE0
+:100F760061EEB4D8DFF8BDDA13BDD8C2C0D7D1DD73
+:100F86001BC1C3DADA9DDAADD8311E33311E337197
+:100F9600F9B4DADFF4BDD813BDDAC2C0D746D8DD5E
+:100FA6000771FF7177D971C0D75BDB9DDB605BDAB8
+:100FB6009DDAADDC5BD9085BD808BDD8D7C3C7F3CB
+:100FC600728EFDC162314C410036344E1161A07201
+:070FD600C09EFD62C6C2D7F8
+:0A0FF60031343A32343A3238000048
+:0A20000031343A32343A323800002D
+:10200A00AEF0B430B740BA30BB50BBB0BC50BD1014
+:10201A00BD60BDB0BFE0C2B0C420C7B0CAE0CE1038
+:10202A0001F0141014200630639049006E00777096
+:10203A007B001900190017F01C6012001200120030
+:10204A0002005C003600A70000D8EAE88C309C1039
+:10205A00A5E0B040B1C0B200B250B310B490B620FF
+:10206A00B860BA50BFA0C6B0CE90D02000200020E1
+:10207A00002000207B30686020001700173012F023
+:10208A000DE007F00700093001C001C00100AB00F4
+:10209A000000670020DA6967A120B750B9D0BB00F9
+:1020AA00BC30BC60BCA0BD10BDC0BE70BFD0C2A059
+:1020BA00C400C850CC80D0B001A0251018B017C0F9
+:1020CA0095206FE07C603510350037F016F01CA0C3
+:1020DA00173011D011F011F002005E00A70027009E
+:1020EA00B0DAF5F38C309C10A5E0B040B1C0B20074
+:1020FA00B250B310B490B620B860BA50BFA0C6B000
+:10210A00CE90D02000200020002000207B30686084
+:10211A0020001700173012F00DE007F00700093011
+:10212A0001C001C00100AB000000670020DA696746
+:10213A000000000000000000000000000000000095
+:10214A000000000000000000000000000000000085
+:10215A000000000000000000000000000000000075
+:10216A000000000000000000000000000000000065
+:10217A000000000000000000000000000000000055
+:10218A000000000000000000000000000000000045
+:10219A000000000000000000000000000000000035
+:1021AA000000000000000000000000000000000025
+:1021BA000000000000000000000000000000000015
+:1021CA00000000000000000005214F7B9EC5E900C9
+:1021DA007F7E7D7C7A7978777675747271706F6E8E
+:1021EA006D6C6A6968676665646261605F5E5D5CA2
+:1021FA005A5958575655535251504F4E4D4B4A49BA
+:10220A004948474645434241403F3E3D3B3A3938BB
+:10221A000104080D12171C1F080101020203030220
+:10222A0000FEFBF7F3F0F0F3FA041225384D5F6E67
+:10223A00777A776E5F4D38251204FAF3F0F0F3F7E8
+:10224A00FBFE000203030202010000001F003B0024
+:10225A005A0078009700B500D400F300110130014C
+:10226A004E011926344453626E777D80807D776EE5
+:10227A00625344342619100A08080808080808088E
+:02228A000A1038
+:10228C00D512F9DF04F42AEF0D8FF4FCB0F4FCD175
+:10229C00DF4DCFF4FC1EFD4A23FDEC2231325E0DE6
+:1022AC0031045E0931126205713304EF037132049B
+:1022BC00FD232331225E05714202EF03714302D4E8
+:1022CC002ADD05B42A714202314402067140C9FB71
+:1022DC00EF047148C9FB4012F90161E8FD1826D7DB
+:1022EC004A284BDC134A28B9DE0E4004F928DE04D8
+:1022FC00A004F9D771335ED74A283EDC054A28BDC5
+:10230C00DC0E4005F928DE04A005F9D771325ED742
+:10231C00F504F9F505F9D73122620E4006F902DE13
+:10232C0004A006F9D771235ED73132040A40C5FBED
+:10233C003CDE0471235ED771225EF506F9D7C7C166
+:10234C00FBF8FF71445E711762DE577114627141C4
+:10235C005E311262127130C9FB5002C15011FDA4E2
+:10236C0034C0CD2A32EF3B7138C9FBE0C15011FDAE
+:10237C00A434C0F42A17C15002FD312BC0D2DF0D9A
+:10238C008B318E318D080E01081C00BD2CAD2C44F8
+:10239C00009BDC05D5C5FBDF095020C15011FDA405
+:1023AC0034C0C0C6D7C78D2076FDF323FD652BD571
+:1023BC0015F9DD0571035EEF2C664B2061F8315485
+:1023CC005E1A71535EFDCE04664C07DD0381DF0996
+:1023DC008F14F9310303FD7C24FD902471025E30CF
+:1023EC006C25FDF138C6D7C77162017172015005B9
+:1023FC00FD40025008FD6E37629D285009FD6E3776
+:10240C006276716301711814F94A28F1DC05E5153F
+:10241C00F9EF224A2804DE1ACF15F9025008C150F0
+:10242C006CFDDC02C092DF0DD439DF09711014F998
+:10243C00EF03F515F94015F901DF05710A22EF06D6
+:10244C00710B22710302CD20075700674C08DE1078
+:10245C007309D221614EDC05679D20EF0387EFEBFA
+:10246C004A2007DF09D515F961F8CF15F903C6D74E
+:10247C00500AFD4002304000C15006FD142BC050E4
+:10248C0096ED4002C72006FBF8FFD515F961E8ED83
+:10249C006825304A57C1503EFD142BC0D2DD077160
+:1024AC0000C8FBED68257108C8FB17A1C15004C119
+:1024BC00500CC1506CFD04031006EA30AA48318D53
+:1024CC0012AA48318E616B08616A08C1500EFD1466
+:1024DC002BC0F690C1500CFD142BC0CC00008B4CC3
+:1024EC0004DE2631245F02EFFA71125FEA308B5062
+:1024FC0010D605C15010C18BD6044000C1506CFDE4
+:10250C00AC031006615900EFD550A5FD4002EA302E
+:10251C00AA48318D12AA48318E616B08616A08C1D4
+:10252C00500EFD142BC050A5FD40025004C1506C40
+:10253C00FDDC02C0629C05EA308A4B4E0561C30487
+:10254C008A4A4E0517A1C15004C1500CC1506CFDF4
+:10255C00AC031006F6C1503EFD142BC01006C6D7B6
+:10256C00C78F07F94B2861F8ED15264009F928DECD
+:10257C0006A009F9ED1526F509F98D289F07F98DA7
+:10258C00285070D612307351230480001231FF3161
+:10259C008E039F08F99FC4FBF68F08F97C804C953D
+:1025AC00DC1C8F08F9318F241400EA30BDD8AA4402
+:1025BC00FDD30D1231FF318E03318F16EF1A8F08B8
+:1025CC00F9318F241400EA30BDD8AA46FDD30D1280
+:1025DC0031FF318E03318F16EA308A427217F303C2
+:1025EC001644000171FE61C836FF001701DE02F6C9
+:1025FC001617BD50C7500CFD142BC0D2DF078D2809
+:10260C009F07F9EF047100C8FBF2C6D7C72008FB7F
+:10261C00F8FF4015F901DD064015F902DF1C17041F
+:10262C000600FD0C2CD2DF0A8C069C058C079C0442
+:10263C00EF4ACC0563CC0400EF4217040600FD0CF6
+:10264C002CD2DD0F7100C8FB71035ECC050071024A
+:10265C005FEF298C06318E318D080E07081C00BBEC
+:10266C00EA308A4072ABFD260FBB8C019C05D1DF92
+:10267C0008CC0501CC0400EF038B9C041704060066
+:10268C00FD292CD2DD06CC06C8CC07008C069FC7D2
+:10269C00FB8C06318E318D080E07081C00BD2CAD4D
+:1026AC002C4401A5DC09CC0364F6BF0AF9EF52AD4A
+:1026BC002C220AF94401A0DC09CC031EF6BF0AF94E
+:1026CC00EF3FAD2C44819DDC0BCC030A30F401BFF1
+:1026DC000AF9EF2DAD2C44019BDC0BCC030530F437
+:1026EC0001BF0AF9EF1BAD2C440191DC0BCC0300AC
+:1026FC0030F401BF0AF9EF0971025F30F401BF0A2F
+:10270C00F93132040C31245E08CC0564CC0400EFA2
+:10271C000D8C034E05DE078C039C05CC04008C0548
+:10272C009FC5FB8C049FC6FBFD992B8F0CF94E05A6
+:10273C00DD2B40C5FB0BDE06400CF90BDE1640C54D
+:10274C00FB06DE06400CF906DE0AD5C5FBDF0ED50E
+:10275C000CF9DD095020C15011FDA434C08FC5FB0C
+:10276C009F0CF9FDD62B1008C6D7C7D832C1500222
+:10277C00FD492BC04016F90161F87120100550126B
+:10278C00FD40028D326C0870C15002FD492BC050C7
+:10279C0003FD40028D326C1870C15002FD492BC0F4
+:1027AC005016FD40025003FD5A2B625C01D1DD1026
+:1027BC007170C9FB5002C15013FDA434C0F2EF017B
+:1027CC00E2C6D7C75004FD5A2B625C03D1DD4050E2
+:1027DC0014FD662834C9FB895C9F998A0C7CFF50D8
+:1027EC00FF5C14D1DD228A0C7CFF5C147234CDFBAF
+:1027FC0089616A997162075600316207058666D154
+:10280C00DFF7716307716B2734DCFB895CEB997123
+:10281C002810055002FD5A2BD2DD354016F901DF88
+:10282C0005500AFD40028D326C1070C15002FD49FA
+:10283C002BC0E0FD4002D832C15002FD492BC050E4
+:10284C0033FD4002F0C15002FD492BC07178C9FB29
+:10285C00E0C15013FDA434C0C6D7C7C12004FBF897
+:10286C00FFCC02005004FD5A2B629C038C045C20AC
+:10287C00D1DD0E8C036C019C038C026C209C02EF4E
+:10288C00138C045C10D1DD0C8C035CFE9C038C025D
+:10289C006C109C028C045C08D1DD0E8C036C029CC9
+:1028AC00038C026C089C02EF138C045C04D1DD0CCD
+:1028BC008C035CFD9C038C026C049C028C03D1DDAC
+:1028CC0005501AFD40028C0370C15004FD492BC009
+:1028DC008FC9FB5C9F728C03318E316D148C03316C
+:1028EC008E314D616D08616C5C606162629FC9FBE9
+:1028FC008FD5FB7CFF50FF5E02D1DD278FD5FB7C93
+:10290C00FF5E027234CDFB89616A99716207CC015A
+:10291C0000316207086159018C01D1DFF471630742
+:10292C00716B27F21006C6D7D9BDFBC15006FD4905
+:10293C002BC0D9BEFBC15007FD492BC0D7FD342994
+:10294C00F2D7C7711300711B20710303710205E0EC
+:10295C00C15003FD492BC05013FD4002F0C150057E
+:10296C00FD492BC0500FC1E0FD492BC0500AFD4062
+:10297C00027103055008FD4002501FC1E0FD492BB8
+:10298C00C05012FD40025003FD5A2B625C01D1DF96
+:10299C0003E2EF24F0FD5A2B629D2E3602F9C7504C
+:1029AC0008FD312BC05003C1FD492BC071020371CE
+:1029BC001A20FDF12AF429F2C6D75003FD5A2B62D6
+:1029CC005C01D1DD155014FD6628FDCF275014FD98
+:1029DC004002E0C15003FD492BC0711300711B2054
+:1029EC007103035014FD4002F0C1E0FD492BC0F00F
+:1029FC00C15003FD492BC0D7C72004FBF8FFCC0204
+:102A0C00008D299C035010C150A4FDDC02C0629DB6
+:102A1C0029D439DD04F2EDCE2A8C037B295C08D154
+:102A2C00DD0F8D295C08D1DF05CC0210EF03CC0241
+:102A3C00208C037B295C04D1DD158D295C04D1DF4E
+:102A4C00088C026C049C02EF068C026C089C028FB2
+:102A5C00C8FB5CF3728D295C0C6162629FC8FB8FB2
+:102A6C00D4FB7CFF50FF5E029C02D1DD1F34CCFBFB
+:102A7C00896E0299716207CC0100316207086159B5
+:102A8C00018C01D1DFF4716307716B278D295C40D8
+:102A9C00D1DD095002C15012FDA434C08D295C0156
+:102AAC00D1DD08E0C15012FDA434C0717AFA8D2931
+:102ABC005C41D1DD0C5A29BED829C15010FD450509
+:102ACC00C0F21004C6D7FD7627F2D7FDCF27F2D778
+:102ADC00C78FDCFB7617FD6628664FDCFBDFF2F553
+:102AEC00DCFBF2C6D75064FD4002FD412C6261FB59
+:102AFC0071115EF171145E61DC70C15012FD4505FF
+:102B0C00C0FD4A36CD3F03D7C7C1C1FBF8FFAC0AA5
+:102B1C00BB17C15002C18C0270C1506CFDAC0310CC
+:102B2C00061004C6D7C7C1FBF8FFAC08C15002C1E0
+:102B3C008B70C1506CFD04031006C0C6D7C7880645
+:102B4C00166770C1C75084FD76031004C6D7C7162C
+:102B5C00C75084FDDC02C0C6D7C74A2004DE045629
+:102B6C0000EF0256014016F901DF048686EF0A4099
+:102B7C0016F902DF045104610666318F12504CD6EF
+:102B8C0033514CD6610A040A20BD30C6D740C5FB70
+:102B9C0051DC05CF1CFC0FD740C5FB33DC05CF1C2B
+:102BAC00FC0BD740C5FB0BDC05CF1CFC07D740C585
+:102BBC00FB0661D831320405CF1CFC03D7D5C5FB0D
+:102BCC00DD04E51CFCD7F51CFCD7D512F9DF04712C
+:102BDC00635ED7FD412C6261FB71715E71145E7195
+:102BEC00775E61C831625E1771625E71745E7111DD
+:102BFC005EF171745E61DC70C15012FD4505C0D789
+:102C0C00C7164010FCFFDD0C8F10FC9B1714CA017B
+:102C1C0000F2EF07C75004FD312BC0C6D7C71640D2
+:102C2C0011FCFFDD078F11FC9BF2EF07C75002FD73
+:102C3C00312BC0C6D740C5FB0BDE02E2D7F2D771F1
+:102C4C0000010571785005713AD5713BD1713BD9B2
+:102C5C008F10055CFC9F1005CF54054AE5420571A9
+:102C6C0010420571004205714850057130500571D4
+:102C7C00205005CF530505CF52050A71305105710F
+:102C8C00205105713BD5717050058F11055CFC9F6F
+:102C9C001105F422D77178500571080105D77140E0
+:102CAC00F00071783002713AE6713BE2713BEA71E7
+:102CBC003BEE8F10055CFC9F1005CF34024AE552A9
+:102CCC00FF711A52710A5271483002713030027120
+:102CDC00203002CF330205CF32020A71303102713B
+:102CEC003BE6717030028F11055CFC9F1105716021
+:102CFC003002D7717830027148F000D7C7880616B9
+:102D0C0066614FDD0967614EDE0396EF01866672E0
+:102D1C00C6D7C7161714AA0412A943DD29AA041290
+:102D2C00A923FD744EC3AC02FD744E13C2BDD8135F
+:102D3C00FDA30FDE0C1714AA0212AA0403BA04EFA7
+:102D4C00051714A9BA04AC041231FF319E03317F6C
+:102D5C00087208C6D77100F200304400BFB60130CB
+:102D6C000188BF9001300984BF9E01BF9C01BF9AAE
+:102D7C0001BF9801BF9601BF9401BF9201F53CFFC2
+:102D8C0030FE00BFBE01F6BFBC01BFB80150EEBFA4
+:102D9C00BA01A1BFB201C918FE00F6BE6EBE64BE78
+:102DAC006A7123047153078F14F9310507F5E3FB9E
+:102DBC00CB6CFF0071535F71425FD730EF00BFB433
+:102DCC0001F6BFBA017108F2007123047153077147
+:102DDC00435FD78F9AFBB09AFBD1DF7331D4D10606
+:102DEC00715BD1E59CFBD59CFBDD347140C8FBD9F4
+:102DFC009BFBF1E734020023DD0625DD0325DF050F
+:102E0C00F6BE66EF06D9E2FBF1BE66A09BFB409BCB
+:102E1C00FB20DF06F59BFBB09CFBCF9AFB19D7CFB1
+:102E2C009AFB1E7148C8FBD5E4FBDF04F6BE66D7DF
+:102E3C00D9E2FBF14266FFDD16D9E2FBF112AE6678
+:102E4C0043DE05A266FFEF03B266FFCF9AFB03D702
+:102E5C00C7161714F6B9AA0412F6231231FF31AEB5
+:102E6C0003316FBA02C6D7C7C1FBF8FF8C0850807C
+:102E7C00D612AB1413B9AB14AA0412A92312D93766
+:102E8C00FBF133BDD813FD0F0EBA02C0C6D73164A7
+:102E9C005F01D74012F902DF10F6BE64BE6EBE6A47
+:102EAC00BFA4FBBFAAFBBFB0FB31545F1530A0FB26
+:102EBC00FD5C2E30A6FBFD5C2E30ACFBFD5C2EEDDC
+:102ECC004E2F31745F0F71735F7108E8FBF59EFB39
+:102EDC00F59DFBEF6DD59DFBDF658F36FB9F9DFB55
+:102EEC00409EFB1FDC1A7100E8FB4038FBFFDD2223
+:102EFC00A09FFB8F38FB4F9FFBDE17F59EFBEF125D
+:102F0C00D99EFBF1A1605C1F9F9EFB7108E8FBF54D
+:102F1C009FFBE99EFB093AFB70C130A0FBFD732EB1
+:102F2C00C0E99EFB095AFB70C130A6FBFD732EC095
+:102F3C00E99EFB097AFB70C130ACFBFD732EC0B06F
+:102F4C009DFB30A0FBFD1E2DF313BE6E30A6FBFDCA
+:102F5C001E2DF313BE6A30ACFBFD1E2DF313BE64A5
+:102F6C00D7C736F00071F4DC297170F000CE9D08E3
+:102F7C00CE9EC0CE9F80F594FFF593FFF592FFE5B2
+:102F8C0097FFE596FFE595FFE598FFCE9C7F7100D6
+:102F9C00BCFB711BE3712BE3711AE7712BE7717AA0
+:102FAC009D710A9E31929E02EFFA710B9E71036025
+:102FBC00711360712360C6D7C73102601E71026045
+:102FCC00710A9E31929E02EFFA34EAFB3692FF525E
+:102FDC00078B99A5A792DFF9710B9EC6D7C78806F8
+:102FEC001631126015711260C734B2FB3092FF16A5
+:102FFC0052078B99A5A792DFF9C666736718B2FBC7
+:10300C00C6D7C77103603114601E711360710A9EBC
+:10301C0031929E02EFFA3492FF36B2FB52078B9933
+:10302C00A5A792DFF9710B9E312460137123607197
+:10303C007B9E8FF2FB9E9A8FF3FB9E9B717A9EC6B2
+:10304C00D7CFBDFB5CCFBEFB5FCFDEFB5DCF12FCF1
+:10305C0036CF13FCC9E5E9FBD7C7CFBAFB12F5BBDA
+:10306C00FBCFE2FBFFF5E3FBF5E4FBF5E5FBF5E657
+:10307C00FB5600664C64DE08723836FB0086EFF3B4
+:10308C00C6D7C788061617F1E73403002361E3EDB2
+:10309C00D4332361F8ED7F31B12361E3ED89312520
+:1030AC0061F8ED9831B1240D0061D8EDD433240BC7
+:1030BC000061F8EDB9312361F8ED00322361F8EDD0
+:1030CC00CD312361F8ED983324060061F8ED6932B7
+:1030DC00B12561D8ED853224000061F8ED923223E0
+:1030EC0061F8EDD4332361F8EDB233B12361E3ED34
+:1030FC00B5322361F8EDC6322361F8EDD732236186
+:10310C00F8EDC6322361F8EDE8322361F8EDF932BF
+:10311C002361F8ED08332361F8ED2A332361F8EDD0
+:10312C0036332361F8ED42332361F8ED4B3324023F
+:10313C00002361E3EDD43324020061F8ED54332312
+:10314C0061F8ED61332561F8ED6D33B12406006152
+:10315C00D8EDD43324000061F8EDD7332561F8EDB8
+:10316C00793324120061F8ED93332361F8ED843345
+:10317C00EDD83334BCFB89615F99EDE533304929D7
+:10318C00FDF13866736718BAFBEDE53340BFFB6A97
+:10319C00DF1440C0FB68DF0E674C6CDF09304C421B
+:1031AC00FDF138713AD5679FC1FBEDE53367D1DD91
+:1031BC000D30323DFDF13834DAFB89616F99EDE564
+:1031CC0033675C02D1DD0830D22AFDF138EF0C6791
+:1031DC005C01D1DD0630D72AFDF138675C3CD1DDCE
+:1031EC001030DC2AFDF138675C3C7266736218BAE9
+:1031FC00FBEDE53367D1DD625C01D1DD0530080004
+:10320C00EF01F6609F19FC675C02D1DD03E6EF016C
+:10321C00F63419FC89616899675C04D1DD04E6A178
+:10322C00EF01F63419FC89616899675C08D1DD05FA
+:10323C00302000EF01F63419FC89616899675C1045
+:10324C00D1DD05301000EF01F63419FC8961689965
+:10325C00675C20D161E8716019FCEDE533D434DF93
+:10326C0008679FE3FBA434EF0D4A3405DE08E8340D
+:10327C0067181DFDA434EDE533675C0F726673624D
+:10328C0018BAFBEDE5334A3464DE1B4A3401DF0621
+:10329C0067D161F85701E834671836FBA4344A3417
+:1032AC000561C871725FEDE533675C7F70C117F122
+:1032BC00243000FDE92FC0EDE533675C3F70C1178A
+:1032CC00F1243000FDE92FC0EDE533675C0770C1D8
+:1032DC0017F1243000FDE92FC0EDE533675C1F705A
+:1032EC00C117F1243000FDE92FC0EDE5336770C143
+:1032FC0017F1243000FDE92FC0EDE533CEABAC71F6
+:10330C000A9E31929E02EFFAD592FFDF05710B9E59
+:10331C00EFED679E99710B9E9FF1FBEDE5337122EA
+:10332C0060675C7F9FF2FBEDE533712260675C3F69
+:10333C009FF3FBEDE533675C3F9FF4FBEDE53367F3
+:10334C005C1F9FF5FBEDE53330FE3AFDF138679FCE
+:10335C00FAFBEDE53330B93AFDF138679FFBFBEF33
+:10336C007830DB3AFDF138679FFEFBEF6C675C0150
+:10337C00D161E8FD2645EF614A3AC8DE08E83A67B4
+:10338C001868FAA43AEF52679D3AEF4D67318E24D4
+:10339C007000DD0D240200DF4030F108FDF138EF44
+:1033AC0038FD2044EF33675C01D1DD05711202EF6B
+:1033BC0003711302675C02D1DD05712202EF037108
+:1033CC002302679FE9FBEF1100EF0E00664C5BDEFA
+:1033DC0007736718BAFBEF0100C6D7C716664C30E7
+:1033EC00DC094C37DE05FDC42FEF6E664C02DF1F87
+:1033FC008FBCFB5C03728F1BFC5C03318E316D0840
+:10340C00616A08128F1BFC5C80312A6162EF59667D
+:10341C004C3DDF0AAE90BF16FCF916FCEF4A664C29
+:10342C003EDF05F917FCEF40664C4FDF05FD4E45BE
+:10343C00EF36664C61DF08E83A0968FA72EF2966E4
+:10344C004C7FDF05FDA83DEF1F664C4EDF0B316452
+:10345C0061045210EF12F2EF0F664C5BDC0452FF6A
+:10346C00EF06667309BAFB72C6D7C788061617F142
+:10347C00241000240500DC07244C00DD17EF177125
+:10348C007BFA17F104BAFB1489617F99717AFA718E
+:10349C003260EF02A43AC6D7C7C1C1FBF8FF401295
+:1034AC00F903DD064012F904DF2F8C027309C2FB0D
+:1034BC005E0AD1DF248C02318E04BAFB14896E0AA9
+:1034CC0099716207CC0100316207086159018C01C6
+:1034DC00D1DFF4716307716B271004C6D7CF1BFCC7
+:1034EC0003F519FCF51DFCF51FFCD7C7880616174C
+:1034FC00F1E734020025DD3D23DD1725DD1C23DD3E
+:10350C000523DD2BEF3B716260679F1EFCCD3F03F3
+:10351C00EF2F675C839F1BFCEF27675C039F1DFCF1
+:10352C00675C034C0261F8710262FD4147EF126760
+:10353C009F1FFCEF0C6791DF08E0C15012FDA43413
+:10354C00C0C6D7C71617F1E7240000DD2A23DD1EFD
+:10355C00240300DD0724FB00DD24EF253112620576
+:10356C00308000EF01F6086F1CFC7208EF198F1900
+:10357C00FCF519FC72EF107142615235EF09F2EF54
+:10358C000666730918FC72C6D7C71617F1E7240034
+:10359C0000DD38241000DD1C23DD1C23DD30240E5F
+:1035AC0000DD18241100DD1B240F00DD1224300077
+:1035BC00DD15EF1EE2EF1D5202EF195204EF15520A
+:1035CC0006EF115205EF0D5207EF09F2EF06520309
+:1035DC00EF0252FFC6D7C7314460377143608D3E4E
+:1035EC009FC2FB8D3D9FE1FB36FCFCC7D83DFD9F88
+:1035FC0037618A70618AFDE437C0D842F1312F609F
+:10360C009D418D3C4B41DD0A7152608D419D3CCDFD
+:10361C003F034A3F05DE09305436FDF138CD3F6B90
+:10362C00B43F7150F000CE300BCF170006CE3106F0
+:10363C00FDB802717A30710BE3710BE7C6D78D417F
+:10364C009D3C8D419FC3FBD74012F903DF0640120E
+:10365C00F904DF02F2D73154600D7153607173605D
+:10366C008D419F28FCEF3831646023716360717267
+:10367C0060D51EFCDF05F529FCEF0B8F1EFC5002FC
+:10368C00D6A1609F29FC8F29FC9F28FCEF11317477
+:10369C0060088F29FC9F28FCEF058D419F28FC8F2B
+:1036AC0028FC9FC3FBD928FCFDC736E928FC09DAA6
+:1036BC002170C15013FD4505C0F2D7C7C1C1FBF83D
+:1036CC00FF8C02D1DF05F51EFCEF1A8C024C05DED7
+:1036DC0006CF1EFC02EF0E8C02318E1231FE03312E
+:1036EC001F609F1EFC8F2AFC4F1EFCDD29CC011F86
+:1036FC008F1EFC9F2AFCCC00008B4C08DE148B73B5
+:10370C00091A224F1EFCDC058B9C01EF0561590048
+:10371C00EFE78C019D401004C6D7C7168B728C0145
+:10372C00614ADE1F8B728C02614ADE138C01728C33
+:10373C0002614ADE058C0172EF268C0272EF218B3E
+:10374C0072EF1D8B728C02614ADE048B72EF118C4E
+:10375C0001728C026142DE058C0172EF038C0272E5
+:10376C00C6D7C716710AE7710BE37150F000CE3063
+:10377C000BCF170006669E31FDB802717A30710BC3
+:10378C00E33182E302EFFA8D1F7158F000710BE701
+:10379C0072C6D7C7C1C1FBF8FF8F12FC4E02DC0307
+:1037AC00F2EF318C024F13FCDC0452FFEF268C023B
+:1037BC002F12FC706131318D128F13FC2F12FC70A3
+:1037CC00613133BDD813FD310EBB440001DC03F66F
+:1037DC0090BB8B721004C6D7C7C1FBF8FFAC0814A2
+:1037EC00A91489708B6128706131FD744E134403E8
+:1037FC000071FEDC23AC08148A04819A04AC081412
+:10380C008A044C11DC10A9148B99AC0814CA020060
+:10381C00AC0814CA0310EF72AC0814CA0400AC084C
+:10382C0014A914894DDE0AAC08148A02819A02EF9D
+:10383C0012AC0814A914894D61D308AC08148A027F
+:10384C00919A02AC08148A03919A03D1DF3CAC081C
+:10385C00148A024C10DF10A91489318EA112AC0805
+:10386C0014A9146299EF17AC08148A024CF0DF0EFD
+:10387C00A91489318EB112AC0814A9146299AC0840
+:10388C0014CA0200AC0814CA0310C0C6D7EDDC3849
+:10389C00717BFAC7D44461F83104612E71046171F3
+:1038AC002161710361D444DD05B444CEABAC717AB3
+:1038BC00FA5600664C0ADD1272F3311C7902FDCE09
+:1038CC00FC0061CAFD3B3986EFE9717AFAF2C6D782
+:1038DC00C75600664C0ADE0BF0317E12F6782CFCD3
+:1038EC0086EFF0C6D7C7C1C1FBF8FFCC01008C0135
+:1038FC004C0ADE36717BFA8C01F0317E042CFC1400
+:10390C00A96168DF09AC02B9717AFAF2EF1D8C017A
+:10391C00F0317E12792CFC614902DF06717AFAE2F1
+:10392C00EF09717AFA615901EFC4E21004C6D7C7E6
+:10393C002004FBF8FFF6422CFC61F8ED1D3A717B7C
+:10394C00FA9C038C034C0ADE3C8C03F0317E042C75
+:10395C00FC14A96168DF05717AFAEF29717AFA8C87
+:10396C000372F3311C792CFCCEFC0061CA629C0200
+:10397C00D1DF0A8C03F0317E12E6782CFC717BFAD5
+:10398C00615903EFBECC0200CC01018C02F0317EF8
+:10399C00042CFC14A96168DD788C02F0317E12795C
+:1039AC002CFCE743DF658C014C0ADE5F8C01F031A7
+:1039BC007E12792CFCE743DD4D717BFA8C01F031E2
+:1039CC007E042CFC14A96168DF186169018C01F07C
+:1039DC00317E12F6782CFC8C024E01DCED717AFAF9
+:1039EC00EF2F8C01F0317E042CFC14A9128C02F008
+:1039FC00317E33782CFC8C01F0317E12E6782CFC75
+:103A0C00615902717AFA615901EF9B615902ED9784
+:103A1C003900F21004C6D7C7200CFBF8FF170406B8
+:103A2C0000C15006C150A8C15030FD04031006D28D
+:103A3C00DD1DA040FC4040FC08DE03E2EF6B34FAD5
+:103A4C00FB895CFC99FDFE3A7110C8FBF2EF5A3011
+:103A5C000600C117040600C130FFFBFD7C4E1004AC
+:103A6C00F540FC8FFAFB5C01D1DD264012F903DF37
+:103A7C00205010C180FDA434C0C736100571D4C6C7
+:103A8C00DE0F17C15006C150A8C15030FD04031001
+:103A9C00064012F901DD114012F905DD0B8FFAFB1E
+:103AAC005C02D161E8FD5142F2100CC6D7D9FBFB88
+:103ABC00C15030FDDC02C0629FFEFB7130CBFB8F2E
+:103ACC00D3FB5C08D1DF06716307716B27F2D7D982
+:103ADC00FEFBC1D9FDFBC15030FD760310047130E3
+:103AEC00CBFB8FD3FB5C08D1DF06716307716B27AF
+:103AFC00F2D7C7200AFBF8FF500FC15030FDDC0293
+:103B0C00C04A3902DF077110C8FBF2EF5F7118C8A9
+:103B1C00FBCC07004015F901DF05CC0802EF03CC04
+:103B2C000810CC09808FFAFB5C03D1DF08717AD5C1
+:103B3C00CC0607EF06717BD5CC062F17040600C107
+:103B4C005004C150A0C15030FDAC031006C7361054
+:103B5C000571D4C6DE154012F903DF0F17C15006EC
+:103B6C00C150A8C15030FD04031006F2100AC6D78C
+:103B7C00D512F9DF06F6BD46F544FCD544FCDD0450
+:103B8C00B044FCD7CF44FC048F12F9318FE723DD0E
+:103B9C000B24020024030061C8EDA13C8F14F93101
+:103BAC00233E301B004646DF0AE0C15010FDA43412
+:103BBC00C0EF1D3077014646DF165002C15010FD94
+:103BCC00A434C0F6464CDF088FDEFB5010D6BD4C3B
+:103BDC00F6464CDD36B64C464CDF3071025FEF2BAF
+:103BEC00301B004646DF13F6464EDF18E0C150107E
+:103BFC00FDA434C0C94E5307EF0A30770146466125
+:103C0C00F871025FF6464E61E8B64E3134620871C7
+:103C1C003361F6BD46EF1431346105F6BD46EF0B4A
+:103C2C00A646F6464661F8C946FFFF314262194A7C
+:103C3C004805DE16A4484A4805DF0FA4485004C1C5
+:103C4C005010FDA434C0EF02F448314462194A4AC2
+:103C5C0005DE16A44A4A4A05DF0FA44A5008C15093
+:103C6C0010FDA434C0EF02F44AD44BDD03B44BD79F
+:103C7C00315262174A4905DE14A4494A4905DF0D41
+:103C8C00A4495010C1FDA434C0EF02F4494A4906BE
+:103C9C0061F8CD4B25D7C736100571D4DE0730231C
+:103CAC003AFDF138D24012F903DF1D3122070630FC
+:103CBC00042AFDF1383144610C7143615080C150CC
+:103CCC0012FDA434C0FDD93CFD043DC6D78F1BFCAE
+:103CDC005C01D1DD22D547FCDD04B047FCD7CF47D2
+:103CEC00FC098D404F46FCDD0E8D409F46FC50403C
+:103CFC00C15012FDA434C0D74012F903DD04F6BD47
+:103D0C001AD7D5E6FBDF08F6461ADD19B61AD7D94D
+:103D1C00E2FBF1461ADD0ED9E2FB12AD1A43DE03CB
+:103D2C00A61AD7B61AD7717BFAC78FDAFB76F5DAF3
+:103D3C00FB717AFA5C10D161E8715261665C0FD14B
+:103D4C00DD57665C01D1DD05F512F9EF4C665C02BE
+:103D5C00D1DD11E0C15003FD492BC0711300711B63
+:103D6C0020710303665C04D1DD11711300711B20FB
+:103D7C00D51BFC61F8710303FDE934665C08D16165
+:103D8C00E87103035005FD40027102035003C1FDAD
+:103D9C00492BC0711A20FDF12AF2C6D7C72014FB9B
+:103DAC00F8FF4A3413DC0552FFEDB73E8F14F9319E
+:103DBC001505300400EF0F8F14F93145053005005F
+:103DCC00EF04D915F9F1609C018D2E9C028D209C7D
+:103DDC00038F02F99C048F03F99C058D509C068D72
+:103DEC00289C0771345EE661301271045E61DC312F
+:103DFC00196162629C08CC09018F16F99C0AF17159
+:103E0C00240461DC9C0BAE6C609C0CAD1A609C0DA8
+:103E1C00AE6E609C0EAE6A609C0FAE64609C10F13E
+:103E2C0071540761DC9C11AE66609C123114020562
+:103E3C00308000EF01F6C131246205304000EF0103
+:103E4C00F6C2616B08616A08C13134040530200088
+:103E5C00EF01F6C2616B08616A08C13124020530BA
+:103E6C000800EF01F6C2616B08616A08C131546247
+:103E7C0005300400EF01F6C2616B08616A08C131BC
+:103E8C00446204E6A1EF01F6C2616B08616A08C1E5
+:103E9C0031346203E6EF01F6C2616B08616A9C1370
+:103EAC00A434D834F1B107A11489721014C6D7C741
+:103EBC00FD76098F12F9318FE724000061F8ED8649
+:103ECC004023DD1B2361F8ED903F2361F8ED0C409E
+:103EDC002361F8ED55402361F8ED3541ED83404009
+:103EEC0013F901DF29F64646DD05F516FDEF03A0B3
+:103EFC0016FD4016FD65DC0CF6BD46F512F9710297
+:103F0C0061EDC541AD4644060061D8EDC541713245
+:103F1C0061FDCE0471535EFDB1234015F903DF0939
+:103F2C00710261F512F9EDC541FD182640C7FB9BE6
+:103F3C00DE09710261F512F9EDC541714A27714034
+:103F4C00110571301105713A22715A227150110507
+:103F5C00FD4E29D2DD09710261F512F9EDC54171F1
+:103F6C00103500CF37001D714012054013F901DFE9
+:103F7C0005F5E3FBEF04CFE3FB03CF12F902FD34AD
+:103F8C0029EDC541FD4B2CFDAA2C714A9DFDE93450
+:103F9C00FD6530F537FF712BE0F513F9710261CB3C
+:103FAC00E43FEFCBE6F6F0FDCE04713BD471120288
+:103FBC007123028F14F93105285004FD5A2B625CD1
+:103FCC0003318E315D34C9FB896168995002FD5A09
+:103FDC002BD2DD067170C9FBEF047178C9FBFDB102
+:103FEC0023FD612D710814F9CF12F9038FBCFB5C12
+:103FFC0002D1DD095080C15010FDA434C0EDC54183
+:10400C00FDC7413154612FA452D452DD0831A4E0D4
+:10401C000A31020C06712BE0FD3D4231A4E0173150
+:10402C00040C13712BE05027C15005FD492BC0CF58
+:10403C0012F904710261FD32428F14F931250731F6
+:10404C00146203F512F9EDC541FDC74131020C14A0
+:10405C00F0C15005FD492BC05005FD4002FD3D420D
+:10406C00CF12F903FD32428F14F931250731146256
+:10407C0003F512F9EDC541F512F9CFE3FB03F5E4B5
+:10408C00FBF5E6FB71525FF6426CFF61E8EDC54152
+:10409C00F6BD4C71035FF5FAFBFDFE3AFDC72DFD35
+:1040AC00A12CFDFF2C714B9D711302712302F5CADB
+:1040BC00FBF5CBFBF5CCFBF5CDFB31245F02EFFA26
+:1040CC00CE3708CBE4BFFFCBE6FFF3CED4FFCF3720
+:1040DC00000971481205F6BEE0BEE2BED0716A2737
+:1040EC00FDC629714307714B2771481005714811A2
+:1040FC00057138100571381105713302713B22714D
+:10410C005302715B227158100571581105CF12F9C9
+:10411C0005713261F6BD46F50CFCF50EFCCF14FCB6
+:10412C00FFCF10FCFFCF11FCFFF513F9F516FD3195
+:10413C0012622EFDB123AD4644070061C8E512F9A9
+:10414C00D515F961E8FD2B058F14F9312511F50E04
+:10415C00FCF50CFC502EFD4002E513F9E512F9EFCD
+:10416C0058D42ADF54FD2B05FD4A2371730171329B
+:10417C000471430271035E71525E31949E02EFFA38
+:10418C00712AE7CEA409F5F3003114620261FDF443
+:10419C0044FD7609E5F300CEA40831126206CF1275
+:1041AC00F905EF09713361E513F9E512F9712BE7A4
+:1041BC008F14F9312503F512F9C6D7D548FCDF1A4F
+:1041CC00310200155003FD5A2B625C01D1DF07F55B
+:1041DC0012F9710261D7E548FCD74048FCF0DF08C2
+:1041EC0031040041F548FCD74048FCC8DF0BF51200
+:1041FC00F9710261CF48FCF0D73102000A4048FC4B
+:10420C00FFDD22A048FCD7F0C15004FD492BC08F24
+:10421C00C9FB5C9F9FC9FB7110DAFB30323DFDF18D
+:10422C0038CF48FCF0D731045F06F512F971026102
+:10423C00D7715361F452717207FDB802717307D7CD
+:10424C00FD8C05F2D7717BFAC7200CFBF8FF8F00B1
+:10425C00FCF0F9FFFBF303FD744E13BC048F02FC5E
+:10426C00F0F901FCF303FD744E13BC028F04FCF057
+:10427C00F903FCF303FD744E13BB717AFAAC04BD65
+:10428C00D8F6BDDAAC04311EBDDCF6BDDEFDE40DA6
+:10429C00ADD8BDDCADDABDDEAC02BDD8F6BDDAAC56
+:1042AC0002311EDADCC3DADEC3BDDCF6BDDEFDE4B2
+:1042BC000DC0BDDEC0BDDCADDEFD5A0FADD8BDDC22
+:1042CC00ADDABDDEABBDD8F6BDDAAB311EDADCC380
+:1042DC00DADEC3BDDCF6BDDEFDE40DC0BDDEC0BD67
+:1042EC00DCADDEFD5A0FDADAADD8FD3C46C3C58F26
+:1042FC00E2FC5C3FF0317E0462FC14C2C0B9A0E267
+:10430C00FCF6BC08BC0A9C078C074C2EDD3E8FE2E9
+:10431C00FC0E0770F161DC605C3FF0317E1279625B
+:10432C00FCBDD8F6BDDA8C0773092422318FBDDCB5
+:10433C0070BDDEFDE40DAC08BDDCAC0AFD5A0FAD62
+:10434C00DABC0AADD8BC08615907EFBCAC08BDD8C3
+:10435C00AC0ABDDAC9DC0004F6FDAE0EC9DCFFFF09
+:10436C00F6FDAF0FADD8BF5CFCAF56FC425CFCDD7C
+:10437C0012AF58FCBF5AFCAF56FCBF58FCAF5CFCEC
+:10438C00BF56FCAF58FC425AFCDC50AF56FC4258AE
+:10439C00FCDE48AF18FD4256FCDE40401CFD16DC2E
+:1043AC001F401CFDA0DE168F5EFC4F1CFDDE0EAF09
+:1043BC0056FC2260FC44691061C8FD2044F51CFDCC
+:1043CC00AF56FC445146DC0BAF56FC241027BF1AE9
+:1043DC00FDEF1130F82ABF1AFDEF09401CFDFF61FB
+:1043EC00E8A01CFDAF5AFC4258FCDC1BAF58FC4249
+:1043FC0056FCDE13AF56FC421AFDDE0BF55EFCAF2D
+:10440C0056FCBF60FCEF09405EFCFF61E8A05EFC5F
+:10441C00100CC6D7717BFAC7710A9E31929E02EFBF
+:10442C00FA8E949F50FC8E969F51FC8E979F52FC57
+:10443C008E989F53FC8E939F54FC8E929F55FC71CB
+:10444C000B9E717AFA8F53FCFDC30F76FDBA4513A0
+:10445C00BD58D505FCDF0AD506FCDF05D507FCDD0C
+:10446C0025F6B14658DF11C9583722665C0391DF37
+:10447C00060A58181A59009617FDDD4613FDF84424
+:10448C0031646102EF61520692926950FC684AFCF9
+:10449C00DFF6AD58BD56F854F3311C7918F944FECB
+:1044AC00FFDD44D854F1010418F914A944FFFFDFCF
+:1044BC0004E6B9EF0BD854F1010418F914A9A1B909
+:1044CC00717BFAA005FCD505FCDF1CA006FCD5060B
+:1044DC00FCDF14A007FCD507FCDF0CCF05FCFFCFDD
+:1044EC0006FCFFCF07FCFFC6717AFAD7C716D85463
+:1044FC00F10744A800DC05716261EF1CF647DD187A
+:10450C00A4544A54A8DC05716261EF0CF854F331E1
+:10451C001CF67818F9B7EFE4C6D7C756A89666F01C
+:10452C00317E12F6B17818F966D1DFF1717BFAF5AC
+:10453C0005FCF506FCF507FCF454716361C6717A51
+:10454C00FAD7C72004FBF8FFD434DF178D549FE350
+:10455C00FC717BFA52069292694AFC68E4FCDFF625
+:10456C00717AFA4A3406DE0EE83409E4FC9C03A4A2
+:10457C00348C0372EF34F9E3FCF3311C7918F9BB7A
+:10458C00317261058B9C03EF128C019C03D5E3FC0B
+:10459C00DF06CFE3FCA7EF03B0E3FC71807177611A
+:1045AC0061DC61FB7171618C03721004C6D7C7208A
+:1045BC0008FBF8FF8F53FCFDC30F9C078F52FCFDCB
+:1045CC00C30F9C068F51FCFDC30F9C058F50FCFD47
+:1045DC00C30F9C048F54FC9C038F55FC9C028C06CF
+:1045EC00318E0112795222BB8C075C03D1DF098C0E
+:1045FC00064C0361C86179008C05318EB1610900EC
+:10460C00BB313D120103BB8B0E04708C011C00BB33
+:10461C008F0AFC4E03DC0E8C034F0AFCDC0B8C0265
+:10462C004F0BFCDC04AB12EF03ABB1121008C6D776
+:10463C00C7C3C12008FBF8FFF661490A61F861495C
+:10464C0008DF07F7340000EDD946E6BC04F6BC06DB
+:10465C00AC0ABC02AC08BBAC06614902AC0461F804
+:10466C00614900DE28AC04BDD8AC06BDDAE1FD69B9
+:10467C000FADDABC06ADD8BC04ABBDD8AC02BDDA0C
+:10468C00E1FD840FADDABC02ADD8BBEFCAAC06BC01
+:10469C0002AC04BBAC08BDD8AC0ABDDAAC04BDDCC2
+:1046AC00AC06FDE70EAC04BDDCAC06FD5A0FE1FD1B
+:1046BC00840FADDABC06ADD8BC04AC06614902ACC3
+:1046CC000461F8614900DCC5AC0214AB12100CC6D5
+:1046DC00D7C7C12004FBF8FF8F4DFCFDC30F9C0313
+:1046EC004E04DF1CAD564658DE07AD58265612EF69
+:1046FC0040F64658DF074656DD03E7EF34F7EF3157
+:10470C008C04318EB1128C03318E43DF1830382279
+:10471C0026560658BB8C045C0391DF05AB041800CD
+:10472C00BBAB12EF0C8C034E04DE0532A900EF017B
+:10473C00F71006C6D7717BFA31026209F6465ADDCC
+:10474C0004B65AEF7C710362717AFA4012F904DFF5
+:10475C0007715307F424EF69D9E5FBF1E724000056
+:10476C00DD0F23DD1A23DD1023DD5323DD2723DDAD
+:10477C0038715307F424EF49715207F424EF42D4F3
+:10478C0024DF07715207E424EF05715307F424C9A1
+:10479C005AFA00EF2CD424DF0B715207E424C95AC7
+:1047AC00FA00EF1DF5E5FBEF18D424DF0B7153076E
+:1047BC00E424C95AFA00EF09CFE5FB02EF03FDCE62
+:1047CC0047D7D91DFCF1E7240000DD0923DD2123A7
+:1047DC00DD0923EF1B715307F424D7D424DF0771B1
+:1047EC005207E424EF05715307F424C95A2D01D75D
+:1047FC00715207E424D731425F01D771635FD9E36B
+:10480C00FBF1E7240000DD1223DD1923DD1123DD8C
+:10481C002623DD3423DD3923DD3FFD8E48EF3DFDBE
+:10482C00AF48EF38D9E2FBC1AE6CFD082DC0F313D5
+:10483C00BE6C712304EF25F0C1AE6CFD082DC0F3E6
+:10484C0013BE6C712304EF14F6BE6C712204EF0CD2
+:10485C00CB6CFF00712304EF03FD23494012F905D3
+:10486C00DD064012F901DF0671230471635F3164C8
+:10487C005F0FF6BE64BE6A31220402EF02F690BEF0
+:10488C006ED7CD2647F45CAE6C317DBFF0FCFDF8E5
+:10489C0048D2DF0ED9E2FBC1AE6CFD082DC0F3137C
+:1048AC00BE6CD7FDF848D2DD0DCD2647F45CAE6C5E
+:1048BC00317DBFF0FCD7E85C096C225080D6BFEC90
+:1048CC00FC22F0FCBDD8304700FD0F0EBFEEFC30D3
+:1048DC00ECFCFD1E2DF313BE6CB426D426DF0CCDE0
+:1048EC002647A45C4A5C1F61C8F45CD740C5FB0B2F
+:1048FC00DC05712304F2D740C5FB0661D831225E7A
+:10490C0011F0C1AE6CFD082DC0F313BE6C71220406
+:10491C00EF03FD2349E2D771625FF0C1AE6CFD0875
+:10492C002DC0F313BE6CA0F2FC40F2FC40DC3DF554
+:10493C00F2FCD9F3FCF1313F041EFD14D9F3FCF168
+:10494C00BDD85008FD5E0E087208E6D2DD04019257
+:10495C00DFFC896158D1DD05712204EF037123045A
+:0D496C00A0F3FC40F3FC2061C8F5F3FCD77C
+:1049790061FC61FCC1C3C5C7520C929269D4FEC1E6
+:10498900DFF88EFD708EFCC1717AFA4012F903DFEF
+:104999000630042AFDF138C09EFC609EFD34D4FE29
+:1049A9005206C0B9A5A592DFF9C6C4C2C061FC61AF
+:1049B900DF520C929269D4FEC1DFF88EFD708EFC35
+:1049C900C18F4105775C04D1DD06675C01D1DD50FB
+:1049D900313460367162077133608FCAFB5FD2FB75
+:1049E900D1DF1B8FCBFB5FD3FBD1DF128FCCFB5FFA
+:1049F900D4FBD1DF098FCDFB5FD5FBD1DD0C316253
+:104A09000702EFFA716307716B27717361FD0E304D
+:104A1900F4227148500571605005717AFAED274BFF
+:104A2900675C02D1DD17D422DD134A2202DD0E00B4
+:104A3900F4227148500571605005717AFA717AFA59
+:104A49008D22318FE7240000DD0823DD1423DD31B9
+:104A5900EF50F4347140500571505005E422ED27B0
+:104A69004B8F40059F0EF9715050058F0EF99F101D
+:104A7900F9D90EF9FDE733629F0FF9CD2202ED272F
+:104A89004B675C02D1DD18675C10D1DD05CD2203CF
+:104A9900EF107148500571605005F422ED274BCD98
+:104AA90022044A2203DF138F0FF99F4005D90FF91A
+:104AB900C1D90EF9FD7634C0EF228F4005768F0EED
+:104AC900F901DC06400EF902DE0671605005EF4E71
+:104AD900C7D90EF9FD8E30C071505005D910F9F1C2
+:104AE900242900DD2A240400DD25242200DD2024D8
+:104AF9001100DD0C240100DD16241E00DD11EF0C70
+:104B0900400EF960DF09CF0EF961EF03A00EF94AF3
+:104B19002203DF0AD90EF9FDE733629F0FF9C09E20
+:104B2900FC609EFD34D4FE5206C0B9A5A592DFF9FA
+:104B390061FCC1C7717AFA714AE5717BBD51405F69
+:104B49000401D1DD06F616A747DFF2300400BF24C1
+:104B590001F6BF2A01300B0BBF280100000000003D
+:104B6900000000510FBF28010000000000000000F4
+:104B7900500FBF2801710AE671235FC6C061FCC1ED
+:104B8900C5717AFAD438DD0BEA36899E44A636B463
+:104B990038EF33710AE6300400BF2401F6BF2A0159
+:104BA900300B0BBF28010000000000000000510F6E
+:104BB900BF28010000000000000000500FBF2801BD
+:104BC90071135F71235FC4C061FC61EF520C929253
+:104BD90069D4FEC1DFF88EFD708EFCC12006FBF89A
+:104BE900FF71503002CEABACCC0100F6BC0231B241
+:104BF900E20F617902F6614902DFF371603002EF79
+:104C09007E8E519B713BE28B5C02D1DD1D8B5C0872
+:104C1900D1DF0971503002CC0100EFCF8C0570FD56
+:104C29004F35629E50CC0102EFC18B5C03D1DF404E
+:104C39008E509C04715030028C01D1DF0E8C0470AF
+:104C4900FD9535629C05CC0101EF318C014C02DFE9
+:104C59000671603002EF28CF34025A716030028C3D
+:104C69000470C18C0570FDF734C0CF34024AEF0FD0
+:104C79008B5C01D1DD0671603002EF03EDF44B105E
+:104C890006C09EFC609EFD34D4FE5206C0B9A5A59F
+:104C990092DFF961FCC1C3C5C7520C929269D4FE77
+:104CA900C1DFF88EFD708EFCC1710A9E31929E02A1
+:104CB900EFFA8FF4FB4F96FFDF198FF5FB4F97FF44
+:104CC900DF118FF6FB4F98FFDF095004C15011FD2A
+:104CD900A434C0710B9EC09EFC609EFD34D4FE526C
+:104CE90006C0B9A5A592DFF9C6C4C2C061FCA44437
+:104CF90061FCC1C3C5C7520C929269D4FEC1DFF8E9
+:104D09008EFD708EFCC1C1FBF8FF8D1F9C018E3199
+:104D1900318EE7240600DD0823DD0E23DD22EF4E68
+:104D2900717AFA8C019D3EEF45717AFA4015F901C5
+:104D3900DF068C019D3DEF3651FF2E019D3DEF2E83
+:104D4900717AFA4014FCFFDF068C019D28EF058F6C
+:104D590014FC9D288FC8FB5C01D1DF124012F903B6
+:104D6900DD064012F904DF06306C25FDF1384031CB
+:104D7900FF09DE05A031FFEF137158F000714260A1
+:104D8900A02BFC402BFC0361C8F52BFC710BE3C085
+:104D9900C09EFC609EFD34D4FE5206C0B9A5A59202
+:104DA900DFF9C6C4C2C061FC61FF520C929269D49A
+:104DB900FEC1DFF88EFD708EFCC1717AFA8FFAFBA5
+:104DC9005C03D1DD194012F903DD064012F904DF55
+:104DD9000D36100571D4DE0630233AFDF138C09E38
+:104DE900FC609EFD34D4FE5206C0B9A5A592DFF938
+:104DF90061FC61FC61FC61FC61FC61FC61FC61FCC2
+:104E090061FC61FC61FC61FC61FC61FC61FC61FCB1
+:104E190061FC61FC61FC61FC61FC61FC61FC61FCA1
+:0A4E290061FC61FC61FC61FC61FCAE
+:0A4E340000060C12181E242A303666
+:104E3E000000C2FB0000000042FE000000007C3BB0
+:104E4E00E2358C220248DF2D9A2E4147A23CFF0804
+:0E4E5E00BB3E0000983AF82AFF005555555506
+:084E6C00FF00000000004700F8
+:104E7400317503F7332312D714AEF8C716AC0612F4
+:104E8400C5AC0416F643DD078B99A7A5B3EFF5C2AD
+:024E9400C6D77F
+:024FF4000200B9
+:0A4FF60031343A32343A3238000008
+:00000001FF
+
\ No newline at end of file
diff --git a/tags/SDK3.0(2.00)/bsr.lmf b/tags/SDK3.0(2.00)/bsr.lmf
new file mode 100644
index 0000000..b7a297f
Binary files /dev/null and b/tags/SDK3.0(2.00)/bsr.lmf differ
diff --git a/tags/SDK3.0(2.00)/bsr_k0r.map b/tags/SDK3.0(2.00)/bsr_k0r.map
new file mode 100644
index 0000000..35ee013
--- /dev/null
+++ b/tags/SDK3.0(2.00)/bsr_k0r.map
@@ -0,0 +1,707 @@
+
+
+
+78K0R Linker W1.33 Date: 2 Aug 2011 Page: 1
+
+Command: -yc:\program files (x86)\nec electronics tools\dev -_msgoff -
+ obsr.lmf ..\..\..\..\Program Files (x86)\NEC Electronics Tool
+ s\CC78K0R\W2.13\lib78k0r\s0rm.rel -gi1B339499E033F240BFAAh -p
+ bsr_k0r.map -nkd -gb7EFBFFh -bC:\Program Files (x86)\NEC Elec
+ tronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib -bcl0rdm.lib -bc
+ l0rm.lib -bcl0rmf.lib -iC:\Program Files (x86)\NEC Electronic
+ s Tools\CC78K0R\W2.13\lib78k0r -dbsr_mcu.dr -s -w0 loader.rel
+ pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2
+ c_twl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel r
+ enge.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 ta
+ sk_status.rel led_cam.rel led_pow.rel hal.rel
+Para-file:
+Out-file: bsr.lmf
+Map-file: bsr_k0r.map
+Direc-file:bsr_mcu.dr
+
+
+*** Link information ***
+
+ 67 output segment(s)
+ 3DE2H byte(s) real data
+ 6164 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 main 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
+* 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 0005CH
+ ?CSEGOB0 000C0H 00004H CSEG OPT_BYTE
+ @@CODE 000C4H 00000H CSEG BASE
+ @@CODE magic 000C4H 00000H
+ @@CODE ini_VECT 000C4H 00000H
+ LDR_CODL 000C4H 00000H CSEG
+ LDR_CODL loader 000C4H 00000H
+ LDR_CODL main 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
+ ?CSEGSI 000C4H 0000AH CSEG
+ LDR_CODE 000CEH 00976H CSEG
+ LDR_CODE loader 000CEH 00196H
+ LDR_CODE main 00264H 00054H
+ LDR_CODE WDT 002B8H 00000H
+ LDR_CODE i2c_mcu 002B8H 002D4H
+ LDR_CODE self_flash
+ 0058CH 00373H
+ LDR_CODE task_debug
+ 008FFH 00000H
+ LDR_CODE task_status
+ 008FFH 00077H
+ LDR_CODE hal 00976H 000CEH
+ FSL_CODE 00A44H 00322H CSEG
+ FSL_CODE fsl_block_cmd
+ 00A44H 0002BH
+ FSL_CODE fsl_block_check
+ 00A6FH 00013H
+ FSL_CODE fsl_common
+ 00A82H 0014FH
+ FSL_CODE fsl_reset
+ 00BD1H 00001H
+ FSL_CODE fsl_si_ibf
+ 00BD2H 00064H
+ FSL_CODE fsl_phySwap
+ 00C36H 0004DH
+ FSL_CODE fsl_si_common
+ 00C83H 00061H
+ FSL_CODE fsl_swap 00CE4H 00030H
+ FSL_CODE fsl_write
+ 00D14H 00052H
+ @@LCODE 00D66H 00277H CSEG
+ @@LCODE @cstart 00D66H 0006DH
+ @@LCODE @imul 00DD3H 00011H
+ @@LCODE @lumul 00DE4H 0002BH
+ @@LCODE @isdiv 00E0FH 00022H
+ @@LCODE @iudiv 00E31H 0002DH
+ @@LCODE @isrem 00E5EH 00021H
+ @@LCODE @iurem 00E7FH 0002FH
+ @@LCODE @lsdiv 00EAEH 00039H
+ @@LCODE @ludiv 00EE7H 0003FH
+ @@LCODE @divuw 00F26H 00034H
+ @@LCODE @ladd 00F5AH 0000FH
+ @@LCODE @llsh 00F69H 0001BH
+ @@LCODE @lursh 00F84H 0001FH
+ @@LCODE @iscmp 00FA3H 0000CH
+ @@LCODE @lband 00FAFH 00014H
+ @@LCODE @bcdtob 00FC3H 0001AH
+* gap * 00FDDH 00019H
+ 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 001D0H
+ @@CNST i2c_ctr 021DAH 00000H
+ @@CNST main 021DAH 00000H
+ @@CNST magic 021DAH 00000H
+ @@CNST WDT 021DAH 00000H
+ @@CNST i2c_mcu 021DAH 00000H
+ @@CNST i2c_twl 021DAH 00000H
+ @@CNST led 021DAH 00000H
+ @@CNST rtc 021DAH 00000H
+ @@CNST vreg_ctr 021DAH 00000H
+ @@CNST vreg_twl 021DAH 00000H
+ @@CNST adc 021DAH 00048H
+ @@CNST renge 02222H 00000H
+ @@CNST accero 02222H 00000H
+ @@CNST self_flash
+ 02222H 00002H
+ @@CNST sw 02224H 00000H
+ @@CNST task_debug
+ 02224H 00000H
+ @@CNST task_misc
+ 02224H 00000H
+ @@CNST task_sys 02224H 00000H
+ @@CNST pedo_alg_thre_det2
+ 02224H 00048H
+ @@CNST ini_VECT 0226CH 00000H
+ @@CNST task_status
+ 0226CH 00000H
+ @@CNST led_cam 0226CH 00000H
+ @@CNST led_pow 0226CH 00020H
+ @@CNST hal 0228CH 00000H
+ ROM_CODE 0228CH 026EDH CSEG
+ ROM_CODE pm 0228CH 009BFH
+ ROM_CODE i2c_ctr 02C4BH 0005FH
+ ROM_CODE i2c_twl 02CAAH 0005EH
+ ROM_CODE led 02D08H 00265H
+ ROM_CODE rtc 02F6DH 000E0H
+ ROM_CODE vreg_ctr 0304DH 0049CH
+ ROM_CODE vreg_twl 034E9H 000F9H
+ ROM_CODE adc 035E2H 002B7H
+ ROM_CODE renge 03899H 0018AH
+ ROM_CODE accero 03A23H 00159H
+ ROM_CODE sw 03B7CH 00126H
+ ROM_CODE task_misc
+ 03CA2H 00219H
+ ROM_CODE task_sys 03EBBH 00396H
+ ROM_CODE pedo_alg_thre_det2
+ 04251H 004F0H
+ ROM_CODE led_cam 04741H 000C1H
+ ROM_CODE led_pow 04802H 00177H
+ @@BASE 04979H 004BAH CSEG BASE
+ @@BASE loader 04979H 00000H
+ @@BASE pm 04979H 0003FH
+ @@BASE i2c_ctr 049B8H 00183H
+ @@BASE main 04B3BH 00000H
+ @@BASE magic 04B3BH 00000H
+ @@BASE WDT 04B3BH 00000H
+ @@BASE i2c_mcu 04B3BH 00098H
+ @@BASE i2c_twl 04BD3H 000CBH
+ @@BASE led 04C9EH 00000H
+ @@BASE rtc 04C9EH 0005DH
+ @@BASE vreg_ctr 04CFBH 00000H
+ @@BASE vreg_twl 04CFBH 00000H
+ @@BASE adc 04CFBH 000B6H
+ @@BASE renge 04DB1H 00000H
+ @@BASE accero 04DB1H 0004AH
+ @@BASE self_flash
+ 04DFBH 00000H
+ @@BASE sw 04DFBH 00000H
+ @@BASE task_debug
+ 04DFBH 00000H
+ @@BASE task_misc
+ 04DFBH 00000H
+ @@BASE task_sys 04DFBH 00000H
+ @@BASE pedo_alg_thre_det2
+ 04DFBH 00000H
+ @@BASE ini_VECT 04DFBH 00038H
+ @@BASE task_status
+ 04E33H 00000H
+ @@BASE led_cam 04E33H 00000H
+ @@BASE led_pow 04E33H 00000H
+ @@BASE hal 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL @cstart 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL pm 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL i2c_ctr 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL i2c_twl 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL led 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL rtc 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL vreg_ctr 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL vreg_twl 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL adc 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL renge 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL accero 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL sw 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL task_misc
+ 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL task_sys 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL pedo_alg_thre_det2
+ 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL ini_VECT 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL led_cam 04E33H 00000H
+ @@CNSTL 04E33H 00000H CSEG PAGE64KP
+ @@CNSTL led_pow 04E33H 00000H
+ @@CALT 04E33H 00000H CSEG
+ @@CALT @cstart 04E33H 00000H
+ @@CALT loader 04E33H 00000H
+ @@CALT pm 04E33H 00000H
+ @@CALT i2c_ctr 04E33H 00000H
+ @@CALT main 04E33H 00000H
+ @@CALT magic 04E33H 00000H
+ @@CALT WDT 04E33H 00000H
+ @@CALT i2c_mcu 04E33H 00000H
+ @@CALT i2c_twl 04E33H 00000H
+ @@CALT led 04E33H 00000H
+ @@CALT rtc 04E33H 00000H
+ @@CALT vreg_ctr 04E33H 00000H
+ @@CALT vreg_twl 04E33H 00000H
+ @@CALT adc 04E33H 00000H
+ @@CALT renge 04E33H 00000H
+ @@CALT accero 04E33H 00000H
+ @@CALT self_flash
+ 04E33H 00000H
+ @@CALT sw 04E33H 00000H
+ @@CALT task_debug
+ 04E33H 00000H
+ @@CALT task_misc
+ 04E33H 00000H
+ @@CALT task_sys 04E33H 00000H
+ @@CALT pedo_alg_thre_det2
+ 04E33H 00000H
+ @@CALT ini_VECT 04E33H 00000H
+ @@CALT task_status
+ 04E33H 00000H
+ @@CALT led_cam 04E33H 00000H
+ @@CALT led_pow 04E33H 00000H
+ @@CALT hal 04E33H 00000H
+ @@RLINIT 04E33H 00000H CSEG UNIT64KP
+ @@RLINIT loader 04E33H 00000H
+ @@RLINIT pm 04E33H 00000H
+ @@RLINIT i2c_ctr 04E33H 00000H
+ @@RLINIT main 04E33H 00000H
+ @@RLINIT magic 04E33H 00000H
+ @@RLINIT WDT 04E33H 00000H
+ @@RLINIT i2c_mcu 04E33H 00000H
+ @@RLINIT i2c_twl 04E33H 00000H
+ @@RLINIT led 04E33H 00000H
+ @@RLINIT rtc 04E33H 00000H
+ @@RLINIT vreg_ctr 04E33H 00000H
+ @@RLINIT vreg_twl 04E33H 00000H
+ @@RLINIT adc 04E33H 00000H
+ @@RLINIT renge 04E33H 00000H
+ @@RLINIT accero 04E33H 00000H
+ @@RLINIT self_flash
+ 04E33H 00000H
+ @@RLINIT sw 04E33H 00000H
+ @@RLINIT task_debug
+ 04E33H 00000H
+ @@RLINIT task_misc
+ 04E33H 00000H
+ @@RLINIT task_sys 04E33H 00000H
+ @@RLINIT pedo_alg_thre_det2
+ 04E33H 00000H
+ @@RLINIT ini_VECT 04E33H 00000H
+ @@RLINIT task_status
+ 04E33H 00000H
+ @@RLINIT led_cam 04E33H 00000H
+ @@RLINIT led_pow 04E33H 00000H
+ @@RLINIT hal 04E33H 00000H
+ @@RLINIT @rom 04E33H 00000H
+ @@CODEL 04E33H 00000H CSEG
+ @@CODEL pm 04E33H 00000H
+ @@CODEL i2c_ctr 04E33H 00000H
+ @@CODEL magic 04E33H 00000H
+ @@CODEL i2c_twl 04E33H 00000H
+ @@CODEL led 04E33H 00000H
+ @@CODEL rtc 04E33H 00000H
+ @@CODEL vreg_ctr 04E33H 00000H
+ @@CODEL vreg_twl 04E33H 00000H
+ @@CODEL adc 04E33H 00000H
+ @@CODEL renge 04E33H 00000H
+ @@CODEL accero 04E33H 00000H
+ @@CODEL sw 04E33H 00000H
+ @@CODEL task_misc
+ 04E33H 00000H
+ @@CODEL task_sys 04E33H 00000H
+ @@CODEL pedo_alg_thre_det2
+ 04E33H 00000H
+ @@CODEL ini_VECT 04E33H 00000H
+ @@CODEL led_cam 04E33H 00000H
+ @@CODEL led_pow 04E33H 00000H
+* gap * 04E33H 00001H
+ @@CNSTL 04E34H 0000AH CSEG PAGE64KP
+ @@CNSTL @bcdtob 04E34H 0000AH
+ @@R_INIT 04E3EH 0002EH CSEG UNIT64KP
+ @@R_INIT @cstart 04E3EH 00000H
+ @@R_INIT loader 04E3EH 00000H
+ @@R_INIT pm 04E3EH 00002H
+ @@R_INIT i2c_ctr 04E40H 00000H
+ @@R_INIT main 04E40H 00000H
+ @@R_INIT magic 04E40H 00000H
+ @@R_INIT WDT 04E40H 00000H
+ @@R_INIT i2c_mcu 04E40H 00000H
+ @@R_INIT i2c_twl 04E40H 00000H
+ @@R_INIT led 04E40H 00000H
+ @@R_INIT rtc 04E40H 00000H
+ @@R_INIT vreg_ctr 04E40H 00000H
+ @@R_INIT vreg_twl 04E40H 00000H
+ @@R_INIT adc 04E40H 0000CH
+ @@R_INIT renge 04E4CH 00014H
+ @@R_INIT accero 04E60H 00000H
+ @@R_INIT self_flash
+ 04E60H 00000H
+ @@R_INIT sw 04E60H 00000H
+ @@R_INIT task_debug
+ 04E60H 00000H
+ @@R_INIT task_misc
+ 04E60H 00000H
+ @@R_INIT task_sys 04E60H 00002H
+ @@R_INIT pedo_alg_thre_det2
+ 04E62H 00006H
+ @@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 @rom 04E6CH 00000H
+ @@R_INIS 04E6CH 00008H 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 00000H
+ @@R_INIS pedo_alg_thre_det2
+ 04E70H 00000H
+ @@R_INIS ini_VECT 04E70H 00000H
+ @@R_INIS task_status
+ 04E70H 00000H
+ @@R_INIS led_cam 04E70H 00002H
+ @@R_INIS led_pow 04E72H 00002H
+ @@R_INIS hal 04E74H 00000H
+ @@R_INIS @rom 04E74H 00000H
+ @@LCODEL 04E74H 00022H CSEG
+ @@LCODEL abs 04E74H 00008H
+ @@LCODEL memcpy_n 04E7CH 0001AH
+* gap * 04E96H 0015EH
+ 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 003F4H DSEG BASEP
+ @@DATA @cstart FF900H 00002H
+ @@DATA loader FF902H 00000H
+ @@DATA pm FF902H 0000CH
+ @@DATA i2c_ctr FF90EH 00004H
+ @@DATA main FF912H 0021EH
+ @@DATA magic FFB30H 00000H
+ @@DATA WDT FFB30H 00000H
+ @@DATA i2c_mcu FFB30H 00006H
+ @@DATA i2c_twl FFB36H 00000H
+ @@DATA led FFB36H 0007CH
+ @@DATA rtc FFBB2H 00008H
+ @@DATA vreg_ctr FFBBAH 0005EH
+ @@DATA vreg_twl FFC18H 00010H
+ @@DATA adc FFC28H 00004H
+ @@DATA renge FFC2CH 00014H
+ @@DATA accero FFC40H 00002H
+ @@DATA self_flash
+ FFC42H 00002H
+ @@DATA sw FFC44H 00002H
+ @@DATA task_debug
+ FFC46H 00000H
+ @@DATA task_misc
+ FFC46H 00002H
+ @@DATA task_sys FFC48H 00002H
+ @@DATA pedo_alg_thre_det2
+ FFC4AH 000A0H
+ @@DATA ini_VECT FFCEAH 00000H
+ @@DATA task_status
+ FFCEAH 00002H
+ @@DATA led_cam FFCECH 00000H
+ @@DATA led_pow FFCECH 00008H
+ @@DATA hal FFCF4H 00000H
+ @@DATA @rom FFCF4H 00000H
+ @@INIT FFCF4H 0002EH DSEG BASEP
+ @@INIT @cstart FFCF4H 00000H
+ @@INIT loader FFCF4H 00000H
+ @@INIT pm FFCF4H 00002H
+ @@INIT i2c_ctr FFCF6H 00000H
+ @@INIT main FFCF6H 00000H
+ @@INIT magic FFCF6H 00000H
+ @@INIT WDT FFCF6H 00000H
+ @@INIT i2c_mcu FFCF6H 00000H
+ @@INIT i2c_twl FFCF6H 00000H
+ @@INIT led FFCF6H 00000H
+ @@INIT rtc FFCF6H 00000H
+ @@INIT vreg_ctr FFCF6H 00000H
+ @@INIT vreg_twl FFCF6H 00000H
+ @@INIT adc FFCF6H 0000CH
+ @@INIT renge FFD02H 00014H
+ @@INIT accero FFD16H 00000H
+ @@INIT self_flash
+ FFD16H 00000H
+ @@INIT sw FFD16H 00000H
+ @@INIT task_debug
+ FFD16H 00000H
+ @@INIT task_misc
+ FFD16H 00000H
+ @@INIT task_sys FFD16H 00002H
+ @@INIT pedo_alg_thre_det2
+ FFD18H 00006H
+ @@INIT ini_VECT FFD1EH 00000H
+ @@INIT task_status
+ FFD1EH 00000H
+ @@INIT led_cam FFD1EH 00000H
+ @@INIT led_pow FFD1EH 00004H
+ @@INIT hal FFD22H 00000H
+ @@INIT @rom FFD22H 00000H
+ FSL_DATA FFD22H 00010H DSEG UNITP
+ FSL_DATA fsl_common
+ FFD22H 00010H
+ @@INITL FFD32H 00000H DSEG UNIT64KP
+ @@INITL loader FFD32H 00000H
+ @@INITL pm FFD32H 00000H
+ @@INITL i2c_ctr FFD32H 00000H
+ @@INITL main FFD32H 00000H
+ @@INITL magic FFD32H 00000H
+ @@INITL WDT FFD32H 00000H
+ @@INITL i2c_mcu FFD32H 00000H
+ @@INITL i2c_twl FFD32H 00000H
+ @@INITL led FFD32H 00000H
+ @@INITL rtc FFD32H 00000H
+ @@INITL vreg_ctr FFD32H 00000H
+ @@INITL vreg_twl FFD32H 00000H
+ @@INITL adc FFD32H 00000H
+ @@INITL renge FFD32H 00000H
+ @@INITL accero FFD32H 00000H
+ @@INITL self_flash
+ FFD32H 00000H
+ @@INITL sw FFD32H 00000H
+ @@INITL task_debug
+ FFD32H 00000H
+ @@INITL task_misc
+ FFD32H 00000H
+ @@INITL task_sys FFD32H 00000H
+ @@INITL pedo_alg_thre_det2
+ FFD32H 00000H
+ @@INITL ini_VECT FFD32H 00000H
+ @@INITL task_status
+ FFD32H 00000H
+ @@INITL led_cam FFD32H 00000H
+ @@INITL led_pow FFD32H 00000H
+ @@INITL hal FFD32H 00000H
+ @@INITL @rom FFD32H 00000H
+ @@DATAL FFD32H 00000H DSEG UNIT64KP
+ @@DATAL loader FFD32H 00000H
+ @@DATAL pm FFD32H 00000H
+ @@DATAL i2c_ctr FFD32H 00000H
+ @@DATAL main FFD32H 00000H
+ @@DATAL magic FFD32H 00000H
+ @@DATAL WDT FFD32H 00000H
+ @@DATAL i2c_mcu FFD32H 00000H
+ @@DATAL i2c_twl FFD32H 00000H
+ @@DATAL led FFD32H 00000H
+ @@DATAL rtc FFD32H 00000H
+ @@DATAL vreg_ctr FFD32H 00000H
+ @@DATAL vreg_twl FFD32H 00000H
+ @@DATAL adc FFD32H 00000H
+ @@DATAL renge FFD32H 00000H
+ @@DATAL accero FFD32H 00000H
+ @@DATAL self_flash
+ FFD32H 00000H
+ @@DATAL sw FFD32H 00000H
+ @@DATAL task_debug
+ FFD32H 00000H
+ @@DATAL task_misc
+ FFD32H 00000H
+ @@DATAL task_sys FFD32H 00000H
+ @@DATAL pedo_alg_thre_det2
+ FFD32H 00000H
+ @@DATAL ini_VECT FFD32H 00000H
+ @@DATAL task_status
+ FFD32H 00000H
+ @@DATAL led_cam FFD32H 00000H
+ @@DATAL led_pow FFD32H 00000H
+ @@DATAL hal FFD32H 00000H
+ @@DATAL @rom FFD32H 00000H
+* gap * FFD32H 000CEH
+
+ MEMORY=RAM2
+ BASE ADDRESS=FFE20H SIZE=000C0H
+ OUTPUT INPUT INPUT BASE SIZE
+ SEGMENT SEGMENT MODULE ADDRESS
+ @@INIS FFE20H 00008H 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 00000H
+ @@INIS pedo_alg_thre_det2
+ FFE24H 00000H
+ @@INIS ini_VECT FFE24H 00000H
+ @@INIS task_status
+ FFE24H 00000H
+ @@INIS led_cam FFE24H 00002H
+ @@INIS led_pow FFE26H 00002H
+ @@INIS hal FFE28H 00000H
+ @@INIS @rom FFE28H 00000H
+ @@DATS FFE28H 00036H DSEG SADDRP
+ @@DATS @cstart FFE28H 00000H
+ @@DATS loader FFE28H 00000H
+ @@DATS pm FFE28H 0000CH
+ @@DATS i2c_ctr FFE34H 00002H
+ @@DATS main FFE36H 00000H
+ @@DATS magic FFE36H 00000H
+ @@DATS WDT FFE36H 00000H
+ @@DATS i2c_mcu FFE36H 00004H
+ @@DATS i2c_twl FFE3AH 00000H
+ @@DATS led FFE3AH 00000H
+ @@DATS rtc FFE3AH 00000H
+ @@DATS vreg_ctr FFE3AH 00002H
+ @@DATS vreg_twl FFE3CH 00000H
+ @@DATS adc FFE3CH 00008H
+ @@DATS renge FFE44H 00002H
+ @@DATS accero FFE46H 00000H
+ @@DATS self_flash
+ FFE46H 00000H
+ @@DATS sw FFE46H 0000AH
+ @@DATS task_debug
+ FFE50H 00000H
+ @@DATS task_misc
+ FFE50H 00002H
+ @@DATS task_sys FFE52H 00002H
+ @@DATS pedo_alg_thre_det2
+ FFE54H 00006H
+ @@DATS ini_VECT FFE5AH 00000H
+ @@DATS task_status
+ FFE5AH 00000H
+ @@DATS led_cam FFE5AH 00002H
+ @@DATS led_pow FFE5CH 00002H
+ @@DATS hal FFE5EH 00000H
+ @@DATS @rom FFE5EH 00000H
+ @@BITS FFE5EH 00005H BSEG
+ @@BITS @cstart FFE5EH.0 00000H.0
+ @@BITS loader FFE5EH.0 00000H.0
+ @@BITS pm FFE5EH.0 00001H.0
+ @@BITS i2c_ctr FFE5FH.0 00000H.0
+ @@BITS main FFE5FH.0 00000H.1
+ @@BITS magic FFE5FH.1 00000H.0
+ @@BITS WDT FFE5FH.1 00000H.0
+ @@BITS i2c_mcu FFE5FH.1 00000H.3
+ @@BITS i2c_twl FFE5FH.4 00000H.0
+ @@BITS led FFE5FH.4 00000H.4
+ @@BITS rtc FFE60H.0 00000H.3
+ @@BITS vreg_ctr FFE60H.3 00000H.1
+ @@BITS vreg_twl FFE60H.4 00000H.0
+ @@BITS adc FFE60H.4 00000H.4
+ @@BITS renge FFE61H.0 00000H.3
+ @@BITS accero FFE61H.3 00000H.0
+ @@BITS self_flash
+ FFE61H.3 00000H.0
+ @@BITS sw FFE61H.3 00000H.1
+ @@BITS task_debug
+ FFE61H.4 00000H.0
+ @@BITS task_misc
+ FFE61H.4 00000H.2
+ @@BITS task_sys FFE61H.6 00000H.0
+ @@BITS pedo_alg_thre_det2
+ FFE61H.6 00000H.2
+ @@BITS ini_VECT FFE62H.0 00000H.0
+ @@BITS task_status
+ FFE62H.0 00000H.0
+ @@BITS led_cam FFE62H.0 00000H.1
+ @@BITS led_pow FFE62H.1 00000H.0
+ @@BITS hal FFE62H.1 00000H.6
+* gap * FFE63H 00071H
+ @@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/SDK3.0(2.00)/bsr_mcu.dr b/tags/SDK3.0(2.00)/bsr_mcu.dr
new file mode 100644
index 0000000..bd8099c
--- /dev/null
+++ b/tags/SDK3.0(2.00)/bsr_mcu.dr
@@ -0,0 +1,48 @@
+;;; ̈̒`
+;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 RAM2 : (0FFE20H, 00C0H) ; ZtvOAgp֎~̈
+;memory SLF_RAM : (0FFE00H, 0020H) ; Slef Program\̈[gp֎~]
+memory RAM : (0FF900H, 0500H) ; [U[q`l̈
+;memory SLF_RAM : (0FF900H, 0020H) ; Slef Program\̈[gp֎~]
+
+
diff --git a/tags/SDK3.0(2.00)/bsr_system.h b/tags/SDK3.0(2.00)/bsr_system.h
new file mode 100644
index 0000000..54d2b75
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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_RSV3,
+ 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/SDK3.0(2.00)/config.h b/tags/SDK3.0(2.00)/config.h
new file mode 100644
index 0000000..5335532
--- /dev/null
+++ b/tags/SDK3.0(2.00)/config.h
@@ -0,0 +1,89 @@
+#ifndef __config__
+#define __config__
+
+
+#define MCU_VER_MAJOR 0x02
+#define MCU_VER_MINOR 0x00
+
+
+// fobOXCb`
+
+//#define _debug_led_ // LED print fobOƂ
+//#define _ALLOW_NOBATT_ // @drȂi=A_v^̂݁jł̋N
+//#define _DBG_PEDO_AUTO_ENABLE_ // d̏uԂvon
+//#define _DBG_LED_PRINT_ // LED print fobOƂ(ȃAbvf[gp)
+//#define _ENABLE_WDT_TEST_
+//#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 _I2C_ERR_ABORT_
+
+
+#ifdef _DBG_NOP_
+# define dbg_nop() NOP()
+#else
+# define dbg_nop() ;
+#endif
+
+
+// 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/SDK3.0(2.00)/fsl.h b/tags/SDK3.0(2.00)/fsl.h
new file mode 100644
index 0000000..0e806b5
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/fsl_user.h b/tags/SDK3.0(2.00)/fsl_user.h
new file mode 100644
index 0000000..60a41be
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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 4000000
+
+/* 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/SDK3.0(2.00)/hal.c b/tags/SDK3.0(2.00)/hal.c
new file mode 100644
index 0000000..101faf2
--- /dev/null
+++ b/tags/SDK3.0(2.00)/hal.c
@@ -0,0 +1,160 @@
+#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()
+{
+ u8 temp_conf = vreg_ctr[ VREG_C_HAL_OVW_CONT0 ];
+ u8 temp_dat = vreg_ctr[ VREG_C_HAL_OVW_DAT0 ];
+
+ // 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;
+ }
+
+}
diff --git a/tags/SDK3.0(2.00)/hal.h b/tags/SDK3.0(2.00)/hal.h
new file mode 100644
index 0000000..c6decf3
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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();
+
+#endif
diff --git a/tags/SDK3.0(2.00)/hoge.bin b/tags/SDK3.0(2.00)/hoge.bin
new file mode 100644
index 0000000..9673de6
Binary files /dev/null and b/tags/SDK3.0(2.00)/hoge.bin differ
diff --git a/tags/SDK3.0(2.00)/i2c_ctr.c b/tags/SDK3.0(2.00)/i2c_ctr.c
new file mode 100644
index 0000000..3359a67
--- /dev/null
+++ b/tags/SDK3.0(2.00)/i2c_ctr.c
@@ -0,0 +1,297 @@
+/* ========================================================
+ SoC VK`l I2CʐM
+ cJZ.nintendo
+ '09 Apr
+ ======================================================== */
+
+#include "config.h"
+
+// TS̓}U{ŃeRAWM͉H}eRŌLjvc
+
+#ifndef _WIN32
+#pragma interrupt INTIICA1 int_iic_ctr RB1
+#endif
+
+
+#include "incs.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))
+
+// ==============================================
+__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;
+ }
+}
+
+
+
+// ========================================================
+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 */
+
+ 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 = 5;
+ IICWL = 10; // 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/SDK3.0(2.00)/i2c_ctr.h b/tags/SDK3.0(2.00)/i2c_ctr.h
new file mode 100644
index 0000000..16234ff
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/i2c_mcu.c b/tags/SDK3.0(2.00)/i2c_mcu.c
new file mode 100644
index 0000000..aa2abd9
--- /dev/null
+++ b/tags/SDK3.0(2.00)/i2c_mcu.c
@@ -0,0 +1,655 @@
+/* ========================================================
+ ȈI2CiytFgpjʐM
+ de JHL cJZ
+ '09 Feb -
+ ======================================================== */
+#ifndef _WIN32
+#pragma sfr
+#pragma di
+#pragma ei
+#pragma nop
+#pragma inline // memcpy()CCWJ(̕I)
+#endif
+
+#include "incs_loader.h"
+#include "i2c_mcu.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( );
+static void iic_mcu_send_re_st( );
+static void iic_mcu_send_sp( );
+static err iic_mcu_send_a_byte( u8 );
+static err iic_mcu_call_slave( u8 slave );
+
+
+
+// ========================================================
+bit iic_mcu_wo_dma;
+volatile bit iic_mcu_busy;
+volatile bit iic_mcu_initialized;
+
+
+u8 iic_send_work[4];
+u8 *p_iic_send_wo_dma_dat;
+u8 iic_send_wo_dma_len;
+
+u8 iic_mcu_result; // ꕶ[h̎̓f[^ԂB
+ // Xe[^XKvȂ炱Ă
+
+#ifdef i2c_timeout_test
+extern bit i2c_mcu_time_out_error;
+#endif
+
+// ========================================================
+void nop8()
+{
+ // ɗ call 3clk, return 6clk
+}
+
+
+static err iic_mcu_wait_free()
+{
+ u16 tot = 0;
+
+ iic_mcu_start( );
+ while( 1 )
+ {
+ DI();
+ 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( ERR_ERR );
+ }
+ }
+ return( ERR_SUCCESS );
+}
+
+
+/* ========================================================
+ X[u w1x [h
+ Ԓlf[^̂̂łB
+ ======================================================== */
+u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs )
+{
+ u8 dat;
+
+#if 1
+ // bp[
+ if( iic_mcu_read( SLA, adrs, 1, &dat ) == ERR_SUCCESS )
+ {
+ iic_mcu_result = ERR_OK;
+ }
+ else
+ {
+ iic_mcu_result = ERR_NOSLAVE;
+ }
+ return ( dat );
+
+#else
+ iic_mcu_wait_free();
+
+ // X^[gRfBVƃX[ǔĂяoAWX^AhX̑M
+ if( iic_mcu_call_slave( SLA ) != 0 )
+ {
+ iic_mcu_result = ERR_NOSLAVE;
+ iic_mcu_busy = false;
+ return ( 0 );
+ }
+
+ // WX^AhX̑M
+ iic_mcu_send_a_byte( adrs ); // I܂ŋAĂȂ
+ // if( err != ERR_SUCCESS )`
+
+ // f[^M //
+ iic_mcu_send_re_st( ); // X^[gRfBV
+ iic_mcu_send_a_byte( SLA | 0x01 ); // M܂Ŗ߂Ă܂B
+
+ ST0 = 0x0004; // M[hɐݒς̂ŃWbN~
+ SCR02 = RXE0 | 1 << SLC02 | 7 << DLS02; // Mݒ
+ SS0 = 0x0004; // ʐMҋ@
+
+ SOE0 = 0x0000; // 1oCgMȂ̂ŁAŌNAK𑗂
+ IICIF10 = 0;
+ SIO10 = 0xFF; // _~[f[^ƎMJn
+
+ while( IICIF10 == 0 )
+ { // M҂
+ ;
+ }
+ dat = SIO10;
+
+ iic_mcu_send_sp( );
+ IICIF10 = 0; // Ȃ
+ iic_mcu_busy = false;
+ return ( dat );
+#endif
+}
+
+
+
+/* ========================================================
+ X[ũ[h
+ 0 I
+ 1 X[uȂ
+ 2 oXNɐLĂă^CAEg
+ 3 ӖsG[
+ yz
+ X[uEFCgRfBVoƂ͋֎~łB
+ ̏ꍇłG[oȂǂł܂
+ ======================================================== */
+err iic_mcu_read( u8 slave, u8 adrs, u8 len, u8 * dest )
+{
+
+#if 1
+ if( iic_mcu_wait_free() != ERR_SUCCESS )
+ {
+ return( ERR_ERR );
+ }
+#else
+ // gpȂA
+#endif
+
+ // X^[gRfBVƃX[ǔĂяoAWX^AhX̑M
+ if( iic_mcu_call_slave( slave ) != 0 )
+ {
+ iic_mcu_busy = false;
+ return ( ERR_NOSLAVE );
+ }
+
+ // WX^AhX̑M
+ iic_mcu_send_a_byte( adrs ); // I܂ŋAĂȂ
+ // if( err != ERR_SUCCESS )`
+
+ // 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 ( ERR_SUCCESS );
+}
+
+
+
+
+/* ========================================================
+ X[u wPoCgx Cg
+ O̓]Î҂āACg܂B
+ Ԓl@iic_mcu_write@ɓ
+ ======================================================== */
+err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat )
+{
+
+#if 0
+ static u8 temp; // ςȂŏIɊi\ĵstatic
+
+ // ȂƁAđɏƂɑÕf[^jĂ܂
+ while( iic_mcu_busy )
+ {
+ NOP( );
+ }
+
+ temp = dat;
+ iic_mcu_wo_dma = true;
+ return ( iic_mcu_write( SLA, adrs, 1, &temp ) );
+#else
+ // P̎DMAƂNȂłƏI点
+ if( iic_mcu_wait_free() != ERR_SUCCESS )
+ {
+ return( ERR_ERR );
+ }
+
+ // X^[gRfBVƃX[ǔĂяo...
+ IICMK10 = 1;
+ if( iic_mcu_call_slave( SLA ) != ERR_SUCCESS )
+ {
+ iic_mcu_busy = false;
+ return ( ERR_NOSLAVE );
+ }
+ iic_mcu_send_a_byte( adrs );
+ iic_mcu_send_a_byte( dat );
+ iic_mcu_send_sp( );
+ iic_mcu_busy = false;
+ return ( ERR_SUCCESS );
+#endif
+}
+
+
+
+/* ========================================================
+ X[uփCg
+ WX^ adrs 擪ɁA
+ *str
+ len܂B
+
+ 0 I
+ 1 X[uȂ
+ 2 oXNɐLĂă^CAEg
+ 3 OɎwꂽʐM܂IĂȂ
+ yz
+ X[uEFCgRfBVoƂ͋֎~łB
+ ̏ꍇłG[oȂǂł܂
+ DMA1gp܂B
+ ******************************************************************************/
+err iic_mcu_write( u8 slave, u8 adrs, u8 len, void * src )
+{
+ if( iic_mcu_wait_free() != ERR_SUCCESS )
+ {
+ return( ERR_ERR );
+ }
+#if 0
+ // gpȂA
+#endif
+
+ // X^[gRfBVƃX[ǔĂяo...
+ IICMK10 = 1;
+ IICIF10 = 0;
+ if( iic_mcu_call_slave( slave ) != ERR_SUCCESS )
+ {
+ iic_mcu_busy = false;
+ return ( ERR_NOSLAVE );
+ }
+
+ IICIF10 = 0;
+ if( !iic_mcu_wo_dma )
+ {
+ // DMAgpiʏj
+
+ // WX^AhX𑗂Af[^̏
+ memcpy( iic_send_work, src, 4 ); //obt@Ƃ4oCgpӂĖ߁B
+ // 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;
+
+ 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 = src;
+ // c͊荞݃[`
+ }
+
+ return ( ERR_SUCCESS );
+}
+
+
+
+
+/* ========================================================
+ 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( )
+{
+ EI();
+
+ DMAMK1 = 1;
+ DEN1 = 0;
+ while( ( SSR02L & TSF0 ) != 0 )
+ {
+ u16 i = 0;
+ if( ++i == 0 ) // ^CAEgH
+ {
+ break;
+ }
+ }
+
+// iic_mcu_send_sp(); // ISRŊO̊ĂԂ͓̂siėpWX^ҔĵœWJ
+ {
+ ST0 = 0x0004;
+ SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo)
+ SO0 = 0x0000 | TAUS_MASK; // SCL
+// nop8(); ĂႾ
+ NOP(); NOP(); NOP(); NOP();
+ NOP(); NOP(); NOP(); NOP();
+ SO0 = 0x0400 | TAUS_MASK; // SCL
+ NOP(); NOP(); NOP(); NOP();
+ NOP(); NOP(); NOP(); NOP();
+ SO0 = 0x0404 | TAUS_MASK;
+ }
+
+ IICMK10 = 1;
+ 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 )
+ {
+ SIO10 = *p_iic_send_wo_dma_dat;
+ p_iic_send_wo_dma_dat ++;
+ iic_send_wo_dma_len --;
+ return;
+ }
+
+ // Ō̃oCgM
+ IICMK10 = 1;
+// iic_mcu_send_sp(); // ISRŊO̊ĂԂ͓̂siėpWX^ҔĵœWJ
+ {
+ ST0 = 0x0004;
+ SOE0 = 0; // M̎͂ƑOɁuvݒ肵ĂB(NACKo)
+ SO0 = 0x0000 | TAUS_MASK; // SCL
+ NOP(); NOP(); NOP(); NOP();
+ NOP(); NOP(); NOP(); NOP();
+ SO0 = 0x0400 | TAUS_MASK; // SCL
+ NOP(); NOP(); NOP(); NOP();
+ NOP(); NOP(); NOP(); NOP();
+ SO0 = 0x0404 | TAUS_MASK;
+ }
+
+ iic_mcu_wo_dma = false;
+ iic_mcu_busy = false;
+}
+
+
+
+/* ========================================================
+ X[ǔĂяo
+@X[uAhXĂŁAACK̊mFB
+ ACK@@@@@@@@@@@@@@@@@@ԁF0
+@NACK @XgbvRfBVoB@ԁF1
+ ======================================================== */
+static err iic_mcu_call_slave( u8 slave )
+{
+ iic_mcu_send_st( );
+
+// SIR02 = SSR02; // NAKG[̃tONA
+ if( iic_mcu_send_a_byte( slave ) != ERR_SUCCESS )
+ {
+ iic_mcu_send_sp( );
+ return ( ERR_NAK ); // w̃X[uȂ / busy
+ }
+
+ return ( ERR_SUCCESS );
+}
+
+
+
+/* ========================================================
+ قƂɂPoCĝ
+ I܂ŋA܂
+ ======================================================== */
+static err iic_mcu_send_a_byte( u8 dat )
+{
+ IICMK10 = 1;
+ IICIF10 = 0;
+ SIO10 = dat;
+ while( IICIF10 == 0 )
+ {
+// NOP( );
+ } // ʐM
+ if( SSR02 != 0 )
+ {
+ SIR02 = SSR02;
+ return ( ERR_NAK );
+ }
+ return ( ERR_SUCCESS );
+}
+
+
+
+/* ========================================================
+ 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
+ ======================================================== */
+static 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
+ ======================================================== */
+static 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;
+ NOP( ); // 2clḱADSTn==0|[O
+ NOP( );
+ DEN1 = 0;
+
+ I2C_PU_on();
+ wait_ms( 10 ); // オ̂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;
+}
+
+
+
+
+
+
+
+
+
+
+/* ========================================================
+ R[fbN wPoCgx Cg
+ iic_mcu_write_a_byte CODECs[NAEh
+ ======================================================== */
+err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat )
+{
+ static u8 count;
+
+ // P̎DMAƂNȂłƏI点
+ if( iic_mcu_wait_free() != ERR_SUCCESS )
+ {
+ return( ERR_ERR );
+ }
+
+ // X^[gRfBVƃX[ǔĂяo...
+ IICMK10 = 1;
+ if( iic_mcu_call_slave( IIC_SLA_CODEC ) != ERR_SUCCESS )
+ {
+ iic_mcu_busy = false;
+ return ( ERR_NOSLAVE );
+ }
+ iic_mcu_send_a_byte( adrs );
+ iic_mcu_send_a_byte( dat );
+
+ // [NAEh
+ /// X^[gɂă_~[Cg
+ iic_mcu_send_re_st( );
+ iic_mcu_send_a_byte( IIC_SLA_CODEC ); // _~[Cg
+ iic_mcu_send_a_byte( 0x20 );
+ iic_mcu_send_a_byte( count );
+
+ count ++;
+
+ iic_mcu_send_sp( );
+ iic_mcu_busy = false;
+ return ( ERR_SUCCESS );
+}
diff --git a/tags/SDK3.0(2.00)/i2c_mcu.h b/tags/SDK3.0(2.00)/i2c_mcu.h
new file mode 100644
index 0000000..af2b1d1
--- /dev/null
+++ b/tags/SDK3.0(2.00)/i2c_mcu.h
@@ -0,0 +1,36 @@
+#ifndef __ic2_mcu__
+#define __ic2_mcu__
+
+
+// ========================================================
+#define ERR_OK 0
+#define ERR_NAK 1
+#define ERR_NOSLAVE 2
+
+
+
+// ========================================================
+extern volatile bit iic_mcu_busy;
+extern bit iic_mcu_wo_dma;
+
+extern u8 iic_mcu_result;
+
+
+// ========================================================
+err iic_mcu_read( u8 SLA, u8 adrs, u8 len, u8 * dest );
+u8 iic_mcu_read_a_byte( u8 SLA, u8 adrs );
+
+err iic_mcu_write( u8 SLA, u8 adrs, u8 len, void * src );
+err iic_mcu_write_a_byte( u8 SLA, u8 adrs, u8 dat );
+
+err iic_mcu_write_a_byte_codec( u8 adrs, u8 dat );
+
+
+// ̒ʐM܂B
+#define iic_mcu_set_wo_dma() { while( iic_mcu_busy ){;} iic_mcu_wo_dma = 1; }
+
+void iic_mcu_start( );
+void iic_mcu_stop( );
+
+
+#endif
diff --git a/tags/SDK3.0(2.00)/i2c_twl.c b/tags/SDK3.0(2.00)/i2c_twl.c
new file mode 100644
index 0000000..5971b37
--- /dev/null
+++ b/tags/SDK3.0(2.00)/i2c_twl.c
@@ -0,0 +1,228 @@
+#ifndef _WIN32
+
+#pragma sfr /* @\WX^gp */
+
+#endif
+
+
+/*============================================================================*/
+
+#include "config.h"
+
+#ifndef _WIN32
+
+#pragma interrupt INTIICA0 int_iic_twl RB2
+
+#endif
+
+#include "incs.h"
+#include "i2c_twl_defs.h"
+#include "i2c_twl.h"
+
+extern u8 vreg_twl[];
+
+#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
+
+#endif
+
+#ifndef _MCU_BSR_
+
+// ke3̎̓_~[
+void IIC_twl_Stop( void )
+{
+}
+void IIC_twl_Init( void )
+{
+}
+#else
+
+
+
+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; \
+ } \
+ } \
+}
+
+
+__interrupt void int_iic_twl( )
+{
+ u8 vreg_adrs;
+ u8 rcvd;
+ u16 tot;
+ u8 state;
+
+ // @
+ WREL = 1; // EFCgĎ̃oCg҂
+ WDT_Restart();
+ state = WAIT_ADRS;
+
+ while( 1 )
+ {
+ u8 my_iics;
+
+ 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 )
+ {
+ // 炩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();
+ }
+ }
+}
+
+
+
+/*****************************************************/
+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 = 5;
+ IICWL = 10; // LԂ̒iHj
+
+ SMC = 1;
+
+ IICAMK = 0; // 荞݂
+
+ IICE = 1;
+
+ PM20 &= ~0x3; /* set clock pin for IICA */
+
+ LREL = 1;
+}
+
+
+
+//****************************************************************************
+void IIC_twl_Stop( void )
+{
+ IICE = 0; /* IICA disable */
+ IICAEN = 0;
+}
+
+
+#endif
diff --git a/tags/SDK3.0(2.00)/i2c_twl.h b/tags/SDK3.0(2.00)/i2c_twl.h
new file mode 100644
index 0000000..0f608b0
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/i2c_twl_defs.h b/tags/SDK3.0(2.00)/i2c_twl_defs.h
new file mode 100644
index 0000000..be5d566
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/incs.h b/tags/SDK3.0(2.00)/incs.h
new file mode 100644
index 0000000..cd33a79
--- /dev/null
+++ b/tags/SDK3.0(2.00)/incs.h
@@ -0,0 +1,58 @@
+#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 "loader.h"
+
+#include "vreg_ctr.h"
+#include "vreg_twl.h"
+
+#include "i2c_mcu.h"
+#include "i2c_twl.h"
+
+#include "rtc.h"
+
+#include "accero.h"
+
+#include "pm.h"
+
+#include "sw.h"
+
+#include "adc.h"
+
+#include "wdt.h"
+
+//=========================================================
+
+#endif
diff --git a/tags/SDK3.0(2.00)/incs_loader.h b/tags/SDK3.0(2.00)/incs_loader.h
new file mode 100644
index 0000000..4bb13b5
--- /dev/null
+++ b/tags/SDK3.0(2.00)/incs_loader.h
@@ -0,0 +1,47 @@
+#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"
+
+#include "loader.h"
+
+#include "i2c_mcu.h"
+
+#include "WDT.h"
+
+
+
+//=========================================================
+void firm_update( );
+void firm_restore( );
diff --git a/tags/SDK3.0(2.00)/ini_VECT.c b/tags/SDK3.0(2.00)/ini_VECT.c
new file mode 100644
index 0000000..10ea9ea
--- /dev/null
+++ b/tags/SDK3.0(2.00)/ini_VECT.c
@@ -0,0 +1,383 @@
+#ifndef _WIN32
+
+#pragma nop
+
+#endif
+
+#include "config.h"
+
+#ifndef _WIN32
+//#pragma interrupt INTWDTI fn_intwdti // gp
+//#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̃_~[` */
+/****************************************************/
+__interrupt void fn_intwdti( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+__interrupt void fn_intlvi( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+__interrupt void fn_intp0(){
+#ifdef _irq_debug_
+while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+__interrupt void fn_intp1( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+} //
+__interrupt void fn_intp2( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+__interrupt void fn_intp3( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+
+__interrupt void intp21_RFTx( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+
+//__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( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+__interrupt void fn_intcmp1( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+__interrupt void fn_intdma0( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+//__interrupt void fn_intdma1(){} // i2c_mcu.cɂ
+
+__interrupt void fn_intst0( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+/* __interrupt void fn_intcsi00(){} */
+__interrupt void fn_intsr0( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+/* __interrupt void fn_intcsi01(){} */
+__interrupt void fn_intsre0( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+__interrupt void fn_intst1( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+/* __interrupt void fn_intcsi10(){} */
+//__interrupt void fn_intiic10(){ while(1){} }
+__interrupt void fn_intsr1( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+__interrupt void fn_intsre1( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+//__interrupt void fn_intiica(){} // i2c.cɂ
+/* __interrupt void fn_inttm00(){} *//* sub.cɂĒ` */
+__interrupt void fn_inttm01( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+__interrupt void fn_inttm02( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+__interrupt void fn_inttm03( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+//__interrupt void fn_intad(){ while(1){} } // adc.c
+__interrupt void fn_intrtc( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+//__interrupt void int_rtcint(){} // rtc.cɂ
+//__interrupt void fn_intkr(){} // main.c
+__interrupt void fn_intmd( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+__interrupt void fn_inttm04( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+__interrupt void fn_inttm05( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+__interrupt void fn_inttm06( )
+{
+#ifdef _irq_debug_
+ while( 1 )
+ {
+ NOP();
+ }
+#endif
+}
+
+__interrupt void fn_inttm07( )
+{
+#ifdef _irq_debug_
+ 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/SDK3.0(2.00)/jhl_defs.h b/tags/SDK3.0(2.00)/jhl_defs.h
new file mode 100644
index 0000000..b0b36c6
--- /dev/null
+++ b/tags/SDK3.0(2.00)/jhl_defs.h
@@ -0,0 +1,29 @@
+#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
+
+
+// typedef unsigned char err;
+
+#include "config.h"
+
+#define set_bit( cond, reg, pos ) \
+{ \
+ if( cond ){ \
+ reg |= pos; \
+ }else{ \
+ reg &= ~pos; \
+ } \
+}
+
+#endif
diff --git a/tags/SDK3.0(2.00)/led.c b/tags/SDK3.0(2.00)/led.c
new file mode 100644
index 0000000..65d4bba
--- /dev/null
+++ b/tags/SDK3.0(2.00)/led.c
@@ -0,0 +1,350 @@
+/* ========================================================
+ LED.c
+ ======================================================== */
+#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̃p^[f[^
+uni_info_LED info_LED;
+
+
+bit info_led_off;
+bit info_led_override;
+
+
+// [dۂ
+extern bit BT_IN_CHG_delayed_n;
+
+
+// ========================================================
+#define led_fade_to( now, goal ) now = fade_to( now, goal )
+
+/* ========================================================
+ reg_ledgoalɂȂ܂ŃOf[V
+ Ƃ肠AXebvŒ
+ ====================================================== */
+u8 fade_to( u8 now, u8 goal )
+{
+ if( now != goal )
+ {
+ if( now > goal )
+ {
+ now --;
+ }
+ else
+ {
+ now ++;
+ }
+ }
+ return( now );
+}
+
+
+
+
+// ========================================================
+#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 );
+}
+
+
+
+
+// ========================================================
+
+
+// ========================================================
+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;
+
+ LED_duty_notify_red = 0;
+ LED_duty_notify_blu = 0;
+ LED_duty_notify_grn = 0;
+ LED_pow_red = 0;
+ LED_CAM = 0;
+
+ 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;
+}
+
+
+
+void LED_stop( )
+{
+ TT0 = 0x00EF; // Ē~iȂƂ߁j
+ TOE0 = 0x0000; // TOx^C}[W[H(GPIOɂȂ)
+ TAU0EN = 0;
+ LED_pow_red = 0;
+ LED_CAM = 0;
+ ledInitialized = false;
+}
+
+
+
+
+
+
+
+/* ========================================================
+ * 荞݂͎̂̂g܂ *
+ LED_Wifi 3
+ ======================================================== */
+void tsk_led_wifi( )
+{
+ static u8 task_interval;
+ static u8 state_wifi_tx;
+ static u8 flag_wifi_TX;
+
+ 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 --;
+ }
+ 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
+ ======================================================== */
+// Of[VvZȂ
+void calc_info_led_fade_out( st_LED_dim_status* tgt_led )
+{
+ tgt_led -> to = 0;
+ tgt_led -> delta = ( 0 - tgt_led -> now ) / 64;
+}
+
+
+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;
+}
+
+
+// {
+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/SDK3.0(2.00)/led.h b/tags/SDK3.0(2.00)/led.h
new file mode 100644
index 0000000..e92d209
--- /dev/null
+++ b/tags/SDK3.0(2.00)/led.h
@@ -0,0 +1,146 @@
+#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 void tsk_led_cam();
+
+
+
+// ====================================
+extern bit ledInitialized;
+extern bit info_led_override;
+
+
+#endif
diff --git a/tags/SDK3.0(2.00)/led_cam.c b/tags/SDK3.0(2.00)/led_cam.c
new file mode 100644
index 0000000..5e1c76e
--- /dev/null
+++ b/tags/SDK3.0(2.00)/led_cam.c
@@ -0,0 +1,145 @@
+/******************************************************//**
+ LED_Cam TO02
+\n BLINK,*_PLUSE ̎́A1͕K̏ԂɂȂ܂B
+\n ̊Ԃ OFFBLINK ȂǂƁAOFF܂B
+ *********************************************************/
+#ifndef _WIN32
+
+#pragma sfr
+
+#endif
+
+#include "incs.h"
+#include "led.h"
+
+
+
+// ========================================================
+static u8 state_led_cam = 0;
+static u16 task_interval;
+
+bit cam_led_update;
+
+
+
+// ========================================================
+static void cam_led_twl();
+
+
+
+// ========================================================
+void tsk_led_cam( )
+{
+ DI(); // WX^ւ݂̏ŋN邱Ƃ邽
+ if( !cam_led_update )
+ {
+ if( task_interval != 0 )
+ {
+ task_interval --;
+ 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 ...
+}
+
+
+
+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/SDK3.0(2.00)/led_pow.c b/tags/SDK3.0(2.00)/led_pow.c
new file mode 100644
index 0000000..08afc5c
--- /dev/null
+++ b/tags/SDK3.0(2.00)/led_pow.c
@@ -0,0 +1,269 @@
+/* ========================================================
+ // dLED
+ LED_POW_B,R 6,7
+
+ TDR00@(0x03FFBTPS0250kHzŃJEgAbvB10bitȂ250HzʂɂȂ)
+ TDR0x@Duty 0ŏATDR00( =0x03FFȏ)œ_łB
+
+ 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"
+
+
+// ========================================================
+// 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
+u8 time_to_next_frame_sleep = LED_SLEEP_FRAME_LEN;
+u8 frame_sleep;
+st_LED_dim_status LED_dim_status_sleep;
+
+extern bit ledInitialized;
+extern bit BT_IN_CHG_delayed_n;
+
+
+
+// ========================================================
+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] );
+}
+
+
+
+/* ========================================================
+ z^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/SDK3.0(2.00)/loader.c b/tags/SDK3.0(2.00)/loader.c
new file mode 100644
index 0000000..403ab61
--- /dev/null
+++ b/tags/SDK3.0(2.00)/loader.c
@@ -0,0 +1,382 @@
+/* ========================================================
+ MCU CTR BSR
+ 2009/03/30
+ JZp c
+
+ u[g[_[
+ zXg̒ʐMƁAȏAt@[̃`FbNsB
+
+ ======================================================== */
+#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 "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 FSL_Open( void );
+void FSL_Close( void );
+void hdwinit( void );
+static void hdwinit2( );
+static void chk_platform_type();
+static void chk_firm_broke();
+
+
+extern void main_loop( );
+
+
+
+// ========================================================
+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;
+ }
+/*
+ else if(( my_resf & REG_BIT_RESF_LVI ) != 0 )
+ {
+ vreg_ctr[ VREG_C_MCU_STATUS ] |= ( 1 << 2 );
+ }
+*/
+ }
+
+ 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();
+#endif
+
+ // V䔻
+ chk_platform_type();
+
+ // ʏ^]
+ main_loop( );
+ }
+}
+
+
+
+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
+ }
+}
+
+
+/* ========================================================
+ 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
+}
+
+
+
+
+// ========================================================
+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 = 0x01; /* BWX^ */
+ 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/SDK3.0(2.00)/pedo_alg_thre_det2.c b/tags/SDK3.0(2.00)/pedo_alg_thre_det2.c
new file mode 100644
index 0000000..8a136b0
--- /dev/null
+++ b/tags/SDK3.0(2.00)/pedo_alg_thre_det2.c
@@ -0,0 +1,569 @@
+/* ********************************************************
+ v
+ 3x̃A^Cf[^AxNg̃moA
+ 臒l鎞ԁAԊuAm̑傫臒lւȂ
+********************************************************* */
+#ifndef _WIN32
+
+#pragma mul
+#pragma div
+#pragma bcd
+
+#endif
+
+#include "incs.h"
+
+#ifndef _WIN32
+#include
+#endif
+
+#include "accero.h"
+#include "pedometer.h"
+
+#include "pedo_lpf_coeff.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_
+unsigned long my_sqrt();
+#endif
+
+// N͉[NH
+#define is_leapyear( y ) (( y & 0x03 ) == 0 )
+// uNv͉[NH
+#define is_firstyear( y ) (( y & 0x03 ) == 1 )
+
+
+
+/*=========================================================
+@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();
+ 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();
+ 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 ) // }WbNio[Ƃł͂ȂĎۂɌvZʂ-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();
+ 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;
+}
+
+
+
+/* ========================================================
+̎ԂK0ɂāA
+܂ނPԂ̃f[^ʒuɃ|C^Hi߂
+======================================================== */
+void clear_hosu_hist()
+{
+ u8 hours = PEDOMETER_LOG_SIZE;
+ do
+ {
+ hours --;
+ pool.vreg_c_ext.pedo_log[ hours ] = 0xFFFF;
+ }
+ while( hours != 0 );
+
+ DI();
+ 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;
+/* ========================================================
+ vqXgǂݏǒ㏈()
+ ǂݏo|C^̃NA
+======================================================== */
+/* }Nɂ܂
+void hosu_read_end( )
+{
+ pedolog_read_msb = 0;
+}
+*/
+
+
+
+/* ========================================================
+ ṽ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();
+ 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/SDK3.0(2.00)/pedo_lpf_coeff.h b/tags/SDK3.0(2.00)/pedo_lpf_coeff.h
new file mode 100644
index 0000000..f81d6c2
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/pedometer.h b/tags/SDK3.0(2.00)/pedometer.h
new file mode 100644
index 0000000..8760308
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/pm.c b/tags/SDK3.0(2.00)/pm.c
new file mode 100644
index 0000000..d86e7e1
--- /dev/null
+++ b/tags/SDK3.0(2.00)/pm.c
@@ -0,0 +1,1387 @@
+/* ========================================================
+ PMIC
+ cJZ
+ nintendo
+ '08 Dec
+ ======================================================== */
+#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"
+
+
+
+// ========================================================
+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];
+
+static bt_param_* p_bt_param;
+
+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();
+
+u8 pm_reg_bit_vddlcd;
+
+
+// ========================================================
+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();
+
+
+
+// ========================================================
+#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
+ EPM_BT_AUTH AGPI in
+ EPM_CHARGE_n CCIC /CHG in
+ EPM_CHARGE_ERR_n /FLT in
+ EPM_EXTDC_n /DOK INTP4 in
+ EPM_CHARGE_EN_n /CEN out
+
+ ȉ͊̕W肻łʂ̂ƂŎɊĎĂ܂B
+ ELED_Pow R, B, Charge tsk_LED
+ EBT_TEMP,_P tsk_ADC
+
+ PM_EXTDC͊荞݃Cɂ邩
+ ======================================================== */
+#define INTERVAL_TSK_BATT 60
+// 100Ə[dG[ɂ܂_łȂ̂
+
+void tsk_batt( )
+{
+ static u8 task_interval = 0;
+
+ if( system_status.pwr_state == OFF_TRIG ) // OFF_TRIG͈Ȃ̂
+ { // [d̂ɎhuԓdƁA5secdēłsցBႤ
+ chg_led_override = 0;
+ }
+ else
+ {
+ 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(); // CCIC
+
+ if( ! BT_IN_CHG_delayed_n ) // LEDɔf
+ {
+ LED_CHARGE = 1;
+ }
+ else
+ {
+ LED_CHARGE = 0;
+ }
+
+ // A_v^ȂuԁA[dłb킴Ɠ_BdĂ邱Ƃ킩点邽߁B
+ if( chg_led_override != 0 ){ // 猩킩邪Au(NbN)鎖BCl邩ȁcH
+ chg_led_override --;
+ LED_CHARGE = 1;
+ }
+
+ // WX^̏[drbgLEDɓ
+ set_bit( LED_CHARGE, vreg_ctr[VREG_C_STATUS], REG_BIT_BATT_CHARGE ); // set_bit̂݁B
+
+ // 荞
+ // tsk_misc
+
+ // drc //
+ if( system_status.pwr_state != ON_CHECK )
+ {
+ BT_get_left();
+ }
+}
+
+
+#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
+
+/* *******************************************************
+ x`FbN
+ xtqXeVX
+ ******************************************************* */
+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;
+ }
+}
+
+
+
+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
+ {
+ // "Jɒx" todo:Ƃ@H
+ if( !BT_CHG_Ena_n && vreg_ctr[ VREG_C_BT_REMAIN ] < 60 )
+ {
+ BT_IN_CHG_delayed_n = 0; // [dƈB[dIĂ͂Ȃ
+ }
+ else
+ {
+ BT_IN_CHG_delayed_n = 1;
+ anti_chatter = 0;
+ }
+ }
+}
+
+
+
+/********************************************************
+A_v^̗L`FbN
+ doff̃A_v^ŊOĂ邽ߕ
+ ***********************************************************/
+void pm_chk_adapter()
+{
+ static bit pm_extdc_old;
+
+ 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_bit( 1, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY );
+ set_irq( VREG_C_IRQ1, REG_BIT_BT_DC_CONNECT );
+ chg_led_override = (u8)( 3000 / INTERVAL_TSK_BATT );
+ }
+ else
+ {
+ u8 temp_v[2];
+
+ //
+ set_bit( 0, vreg_ctr[VREG_C_STATUS], REG_BIT_POW_SUPPLY );
+ 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;
+
+void BT_chk()
+{
+ 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ĎX^[g
+}
+
+
+
+
+void BT_model_detect()
+{
+ u8 temp;
+
+ BT_DET_P = 1;
+ BT_TEMP_P = 1;
+ wait_ms( 5 ); // dオ̂ɎԂ|
+
+ raw_adc_temperature = get_adc( ADC_SEL_BATT_TEMP );
+ temp = get_adc( ADC_SEL_BATT_DET );
+ BT_DET_P = 0;
+
+ system_status.captureBox = 0;
+ // vbgtH[ //
+ if( raw_adc_temperature > 0xF0 )
+ {
+ // TS //
+ system_status.model = MODEL_TS_BOARD;
+ }
+ 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 == ERR_OK ))
+ {
+ system_status.captureBox = 1;
+ }
+ }
+ 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;
+ }
+}
+
+
+
+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( 0x4000 ) );
+
+ wait_ms( 150 );
+}
+
+
+#define MGIC_CMD_UNLOCK_KEY 0x4A57
+#define MGIC_CMD_RESET 0x5400
+static void BT_mgic_init()
+{
+ u8 temp;
+ 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
+ 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
+ EWX^ɃZbg
+ EcICɃ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] = (u8)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;
+
+ // 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%ȏiCCICoOj
+ // = [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
+ ======================================================== */
+// BSR //
+err PM_LCD_on( )
+{
+ u8 rv;
+
+ PM_VDDLCD_on( );
+
+ if( system_status.family == FAMILY_SPFL )
+ {
+ SPFL_LCD_AMOL_HV_CONT = 1;
+ }
+
+ 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 );
+
+ rv = (u8)PM_chk_LDSW( );
+
+ if( rv != 0 ) // pX
+ {
+ // dNG[ȂdĂ܂Bł̓PAȂ
+ vreg_ctr[VREG_C_STATUS] |= REG_BIT_LCD_POW;
+ set_irq( VREG_C_IRQ3, REG_BIT_LCD_ON );
+ return ( ERR_SUCCESS );
+ }
+
+ return ( ERR_ERR );
+}
+
+// BSR //
+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 );
+ }
+
+
+ // td //
+ SPFL_LCD_AMOL_HV_CONT = 0; // ̃t@~łLȂ̂ŕQȂ
+
+ // 50msƂ҂AmF܂傤ˁc
+ if( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 )
+ {
+ if( system_status.family == FAMILY_SPFL )
+ {
+ wait_ms( 10 ); // At@X15VƂ̃EFCgB
+ }
+
+ PM_TCOM_off();
+ wait_ms( 1 );
+ PM_TCOM_VCS_off( );
+ wait_ms( DELAY_PM_LCD_OFF );
+
+ 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Ȃ̂Ŗʓ|
+@@ႦABL 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 );
+
+#if 0
+// SoCPWMo悤WX^ZbgĂxL邽߁AXe[^X
+// XVĂ܂B
+#endif
+ // 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܂Ƃ߂čŝŁÅgps
+ {
+ 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肫Ȃ
+
+ ȉ̃s͎ɂőEĎ܂B
+ EPOW_CONT1,2 TEGd̂
+ ======================================================== */
+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 = 0; // @V@ȂƂ...
+
+ return ( ERR_SUCCESS );
+}
+
+
+
+
+/* ========================================================
+ dOFFV[PX
+ ======================================================== */
+void PM_sys_pow_off( )
+{
+// if( RESET1_n )
+ if( PM_chk_LDSW() )
+ {
+ // ُ펞͌ĂȂ
+ 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( );
+
+ return;
+}
+
+
+
+/*=========================================================
+ extDC荞
+ dOFFNi[d̉xĎ̂߁ĵ
+ i̓|[O(pm)
+ =========================================================*/
+__interrupt void intp4_extdc( )
+{
+// chg_led_override = (u8)( 1000 / INTERVAL_TSK_BATT / SYS_INTERVAL_TICK );
+// chg_led_override = 4;
+}
+
+
+
+/*=========================================================
+ 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 ] & ~0x0C ) | ( ntr_pm_reg_shadow & 0x0C ); // 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;
+ }
+
+#if 0
+ // obNCgݒ
+ // ɏĂ
+ /// ̂Ƃ낳ɍׂ͕Ȃǁc
+ if( ( ntr_pm_reg_shadow & ( REG_BIT_TWL_REQ_BL_U | REG_BIT_TWL_REQ_BL_U ) ) == 0 )
+ {
+ vreg_ctr[ VREG_C_COMMAND2 ] = ( REG_BIT_CMD_BL_U_OFF | REG_BIT_CMD_BL_U_OFF );
+ renge_task_immed_add( tski_PM_BL_set );
+ }
+#endif
+
+ // 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 )
+ {
+#if 0
+ // CODECoO
+ // ZbgPiłȂ疳
+ if( ( reg1_old ^ ntr_pm_reg_shadow ) == REG_BIT_TWL_REQ_RST_REQ )
+#endif
+ {
+ 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 ) // Mobt@
+{
+ u16 temp = dat;
+ 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 ];
+}
+
+
+
+/* ============================================================
+ TWLɓdrcʂĂ
+ ============================================================ */
+static void bt_batt_update_twl()
+{
+ if (vreg_ctr[VREG_C_BT_REMAIN] > 80)
+ {
+ vreg_twl[REG_TWL_INT_ADRS_POWER_INFO] = 0x0F;
+ }
+ else if (vreg_ctr[VREG_C_BT_REMAIN] > 50)
+ {
+ 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] > 0)
+ {
+ 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 );
+ }
+ }
+}
+
+
+/* ========================================================
+========================================================= */
+static err read_BT_SOC( u8* dest )
+{
+ if( vreg_ctr[ VREG_C_HAL_OVW_BT_FUEL ] != 0xFF )
+ {
+ *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 ) );
+ }
+}
+
+
+/* ========================================================
+========================================================= */
+static err read_BT_voltage( u8* dest )
+{
+ if( vreg_ctr[ VREG_C_HAL_OVW_BT_VOLTAGE ] != 0xFF )
+ {
+ *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/SDK3.0(2.00)/pm.h b/tags/SDK3.0(2.00)/pm.h
new file mode 100644
index 0000000..423d771
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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 )
+// 0 ƈُ
+
+// 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/SDK3.0(2.00)/pool.h b/tags/SDK3.0(2.00)/pool.h
new file mode 100644
index 0000000..81c8091
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/reboot.c b/tags/SDK3.0(2.00)/reboot.c
new file mode 100644
index 0000000..b784f15
--- /dev/null
+++ b/tags/SDK3.0(2.00)/reboot.c
@@ -0,0 +1,24 @@
+/********************************************************//*
+
+ ނ胊u[g
+
+ t@CɃCCAZuƁA
+ ̃W[SœKȂȂ邽ߒǂo
+
+ **********************************************************/
+#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/SDK3.0(2.00)/reboot.h b/tags/SDK3.0(2.00)/reboot.h
new file mode 100644
index 0000000..c20e11e
--- /dev/null
+++ b/tags/SDK3.0(2.00)/reboot.h
@@ -0,0 +1,6 @@
+#ifndef __MYREBOOT__
+#define __MYREBOOT__
+
+void my_reboot();
+
+#endif
diff --git a/tags/SDK3.0(2.00)/renge/renge.c b/tags/SDK3.0(2.00)/renge/renge.c
new file mode 100644
index 0000000..1c7562a
--- /dev/null
+++ b/tags/SDK3.0(2.00)/renge/renge.c
@@ -0,0 +1,315 @@
+#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"
+
+#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;
+
+bit renge_task_interval_in_force;
+
+
+#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
+ *****************************************************************************/
+err renge_task_interval_run(){
+ u8 i;
+
+ // C^[oN
+ DI();
+ if(( renge_flg_interval != 0 ) ||
+ ( renge_task_interval_run_force )) /// ȁc
+ {
+ renge_task_interval_in_force = renge_task_interval_run_force;
+ 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
+ **************************************/
+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();
+ 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
+ **************************************/
+err renge_task_immed_run(){
+ u8 list_id;
+
+// while( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ )
+ if( tasks_immed[ 0 ] != TSK_IMM_EMPTY_ )
+ {
+ DI();
+ 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 ]();
+ if( rv == ERR_SUCCESS )
+ {
+ tasks_immed[ list_id ] = TSK_IMM_DELETED_;
+ }
+ }
+ DI();
+ }
+ // 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();
+ 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/SDK3.0(2.00)/renge/renge.h b/tags/SDK3.0(2.00)/renge/renge.h
new file mode 100644
index 0000000..ee1d9f9
--- /dev/null
+++ b/tags/SDK3.0(2.00)/renge/renge.h
@@ -0,0 +1,28 @@
+#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();
+err renge_task_immed_run();
+err renge_task_immed_add( task_status_immed (*p_task_func)() );
+// static err renge_task_immed_del( u8 );
+
+
+
+//******************************************************************************
+err renge_task_interval_run();
+extern u8 renge_flg_interval;
+extern bit renge_task_interval_run_force; // ^XNstO
+extern bit renge_task_interval_in_force; // stO
+
+#endif
diff --git a/tags/SDK3.0(2.00)/renge/renge_defs.h b/tags/SDK3.0(2.00)/renge/renge_defs.h
new file mode 100644
index 0000000..0199d76
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/renge/renge_task_config.rb b/tags/SDK3.0(2.00)/renge/renge_task_config.rb
new file mode 100644
index 0000000..c2de509
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/renge/renge_task_immediate.h b/tags/SDK3.0(2.00)/renge/renge_task_immediate.h
new file mode 100644
index 0000000..7c5016d
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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_hosu_set(); // 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/SDK3.0(2.00)/renge/renge_task_intval.h b/tags/SDK3.0(2.00)/renge/renge_task_intval.h
new file mode 100644
index 0000000..9b0d9ea
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/renge/renge_tasks.txt b/tags/SDK3.0(2.00)/renge/renge_tasks.txt
new file mode 100644
index 0000000..73af545
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/rtc.c b/tags/SDK3.0(2.00)/rtc.c
new file mode 100644
index 0000000..69b4050
--- /dev/null
+++ b/tags/SDK3.0(2.00)/rtc.c
@@ -0,0 +1,175 @@
+/* ========================================================
+ RTC
+ ======================================================== */
+#ifndef _WIN32
+
+#pragma sfr
+#pragma inline
+
+#endif
+
+#include "incs.h"
+
+
+
+// ========================================================
+u8 rtc_work[7];
+bit rtc_lock;
+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, 7 );
+ 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, 7 );
+// 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, 7 );
+ 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
+}
diff --git a/tags/SDK3.0(2.00)/rtc.h b/tags/SDK3.0(2.00)/rtc.h
new file mode 100644
index 0000000..6b2d9f8
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/self_flash.c b/tags/SDK3.0(2.00)/self_flash.c
new file mode 100644
index 0000000..d1ff4dd
--- /dev/null
+++ b/tags/SDK3.0(2.00)/self_flash.c
@@ -0,0 +1,608 @@
+/* ========================================================
+ ȃAbvf[^
+ ======================================================== */
+#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 "pool.h"
+#include "magic.h"
+
+#include "pm.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 P1.5
+#define LED_PM_POW1 PM1.5
+#else
+#define LED_POW1 mcuRegP[ _P1_5 ]
+#define LED_PM_POW1 mcuRegPM[ _P1_5 ]
+#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( );
+ break;
+ }
+ }
+
+ // EFCg
+ for( i = 1; i != 0; i++ )
+ {
+ NOP();
+ NOP();
+ NOP();
+ NOP();
+ }
+ }
+ {
+ // ǁAǂ悤cB
+
+ KRM = ( KR_SW_POW ); // Mask ł͂ȂAModeȂ̂B킵
+ 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;
+ }
+ }
+ }
+
+
+ if( my_FSL_Init() != ERR_SUCCESS ){
+ 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
+
+/*
+// u[g
+ if( FSL_InvertBootFlag() != ERR_SUCCESS )
+ {
+ alert(3);
+ }
+*/
+ FSL_ForceReset(); // Zbg
+ // FSL_SwapBootCluster( ); // u[gXbvuɁvċNď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ւ
+}
+
+
+
+/*----------------------------------------------------------------------------------------------*/
+/* leave the "user room" and restore previous conditions */
+/*----------------------------------------------------------------------------------------------*/
+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( __far u8 * p_rom,
+// u8 block_dest )
+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 );
+
+}
+
+
+
+/* ========================================================
+ ======================================================== */
+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 );
+}
+
+
+task_status_immed tski_mcu_reset()
+{
+ // ʂɍċN
+ my_FSL_Init();
+
+ FSL_ForceReset(); // Zbg
+ FSL_Close( );
+
+ // یH //
+ mcu_wdt_reset;
+ return( ERR_SUCCESS ); // no reach
+}
+
+
+#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;
+ }
+}
+
+
+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/SDK3.0(2.00)/self_flash.h b/tags/SDK3.0(2.00)/self_flash.h
new file mode 100644
index 0000000..768565e
--- /dev/null
+++ b/tags/SDK3.0(2.00)/self_flash.h
@@ -0,0 +1,9 @@
+#ifndef _self_flash_h_
+#define _self_flash_h_
+
+
+void firm_update();
+
+
+#endif
+
diff --git a/tags/SDK3.0(2.00)/sim/sfrAlias.h b/tags/SDK3.0(2.00)/sim/sfrAlias.h
new file mode 100644
index 0000000..1e77313
--- /dev/null
+++ b/tags/SDK3.0(2.00)/sim/sfrAlias.h
@@ -0,0 +1,200 @@
+#ifndef _sfrAlias_
+#define _sfrAlias_
+
+#include "../config.h"
+
+#ifdef _debug_led_
+# define DBG_LED_on { mcuRegPM[ _P2_1 ] = 0; mcuRegP[ _P2_1 ] = 1; }
+# define DBG_LED_off { mcuRegP[ _P2_1 ] = 0; }
+# define DBG_LED_toggle ( mcuRegP[ _P2_1 ] ^= 1 )
+# define DBG_LED2_on { mcuRegPM[ _P2_2 ] = 0; mcuRegP[ _P2_2 ] = 1; }
+# define DBG_LED2_off { mcuRegP[ _P2_2 ] = 0; }
+# define DBG_LED2_toggle ( mcuRegP[ _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
+
+#ifdef _PMIC_CTR_
+# define SLP_ACK mcuRegP[ _P7_7 ]
+#endif
+
+
+#define IIC_SLA_CODEC 0xA4
+#define IIC_SLA_ACCEL 0x30 // ST LIS331DLH
+
+
+// PMx0ŏo̓[h
+
+// SoC
+#define IRQ0_ast { mcuRegP[ _P7_6 ] = 0; mcuRegPM[ _P7_6 ] = 0; }
+#define IRQ0_neg { mcuRegP[ _P7_6 ] = 1; }
+#define IRQ0_enable { mcuRegPM[ _P7_6 ] = 0; }
+#define IRQ0_disable { mcuRegPM[ _P7_6 ] = 1; }
+#define IRQ0 ( mcuRegP[ _P7_6 ] )
+
+// h~
+#define RESET1_n ( mcuRegP[ _P0_0 ] )
+
+#if 0 // PM_RESET1`g
+#define RESET1_ast { mcuRegP[ _P0_0 ] = 0; mcuRegPM[ _P0_0 ] = 0; }
+#define RESET1_neg { mcuRegPM[ _P0_0 ] = 1; }
+#endif
+
+#define RESET2_ast { mcuRegP[ _P0_1 ] = 0; mcuRegPM[ _P0_1 ] = 0; }
+#define RESET2_neg { mcuRegPM[ _P0_1 ] = 1; }
+
+#define SLP_REQ mcuRegP[ _P12_0 ]
+
+// CTR,SPFL,܂ʔh@
+#define DEV_DET ( P12 & 0x00000110 )
+#define DEV_CTR ( 0 << 1 )
+#define DEV_SPFL ( 1 << 1 )
+#define DEV_SHRIMP ( 2 << 1 )
+#define DEV_RSV2 ( 3 << 1 )
+
+// FCRAM
+#define FCRAM_RST mcuRegP[ _P3_0 ]
+#define FCRAM_RST_ast { mcuRegP[ _P3_0 ] = 0; }
+#define FCRAM_RST_neg { mcuRegP[ _P3_0 ] = 1; }
+
+// CODEC
+#define PM_IRQ_n mcuRegP[ _P7_2 ]
+// INTP6
+
+// PM
+#define PM_EXTDC_n_RAW mcuRegP[ _P7_0 ]
+// INTP7
+//#define BT_TEMP mcuRegP[ _P15_0 ]
+// ANI8
+//#define BT_DET mcuRegP[ _P15_1 ]
+// ANI9
+#define BT_DET_P mcuRegP[ _P1_6 ]
+#define BT_TEMP_P mcuRegP[ _P1_7 ]
+
+
+// SPFL̃At@XLCDŕKvȁ}15V̓dB
+#define SPFL_LCD_AMOL_HV_CONT mcuRegP[ _P20_2 ]
+
+
+// [d(out)
+// _łBӁB
+#define BT_CHG_ENABLE() ( mcuRegP[ _P4_3 ] = 0 )
+#define BT_CHG_DISABLE() ( mcuRegP[ _P4_3 ] = 1 )
+#define BT_CHG_Ena_n ( mcuRegP[ _P4_3 ] )
+
+// [d(in)
+#define BT_IN_CHG_n_RAW mcuRegP[ _P5_1 ]
+#define PU_BT_IN_CHG_n mcuRegPU[ _P5_1 ]
+
+#define SW_WIFI_n_RAW mcuRegP[ _P7_4 ]
+#define PM_SW_WIFI_n mcuRegPM[ _P7_4 ]
+// KR4
+#define SW_POW_n_RAW mcuRegP[ _P7_3 ]
+// KR3
+#define SW_SEL_n mcuRegP[ _P2_3 ]
+#define PM_SW_SEL_n mcuRegPM[ _P2_3 ]
+//#define VOL mcuRegP[ _P2_7 ]
+// ANI7
+
+#define SW_HOME_n_JIKKI_RAW mcuRegP[ _P20_4 ]
+#define PM_SW_HOME_n_JIKKI mcuRegPM[ _P20_4 ]
+#define PU_SW_HOME_n_JIKKI mcuRegPU[ _P20_4 ]
+
+// INTP22
+#define SW_HOME_n_TSBOARD_RAW mcuRegP[ _P2_0 ]
+#define PM_SW_HOME_n_TSBOARD mcuRegPM[ _P2_0 ]
+
+// WiFi
+#define WL_TX mcuRegP[ _P20_3 ] // INTP21
+#define PM_WL_TX mcuRegPM[ _P20_3 ] // INTP21
+
+// RBR
+#define RBR_RESET_n mcuRegP[ _P2_1 ]
+#define RBR_FLIGHT mcuRegP[ _P2_2 ]
+
+//#define LED_CAM mcuRegP[ _P1_0 ] // TO02
+//#define LED_WIFI mcuRegP[ _P1_1 ] // TO03
+//#define LED_NOTIFY mcuRegP[ _P1_3 ] // TO05
+//#define LED_3D mcuRegP[ _P5_2 ] // SLTO TO01
+//#define LED_POW2 mcuRegP[ _P1_4 ] // TO06 ( )
+//#define LED_POW1 mcuRegP[ _P1_5 ] // TO07 ( )
+//#define LED_CHARGE mcuRegP[ _P2_4 ]
+
+
+#ifdef _MODEL_CTR_
+// mcuRegP[ _P5_3 ] ɉAmcuRegP[ _P5_5 ], P140 P141
+// P140o͐pȂ̂...
+#define I2C_PU_on() { P14 |= 0x03; mcuRegPM[ _P5_3 ] = 0; mcuRegPM[ _P3_3 ] = 0; }
+#define I2C_PU_off() { mcuRegPM[ _P5_3 ] = 1; mcuRegPM[ _P3_3 ] = 1; P14 &= ~0x03; }
+#endif
+
+#define GYRO_ENABLE() mcuRegP[ _P5_0 ] = 0
+#define GYRO_DISABLE() mcuRegP[ _P5_0 ] = 1
+
+//#define I2C_M_SDA mcuRegP[ _P3_1 ] // SDA10
+//#define I2C_M_SCL mcuRegP[ _P3_2 ] // SCL10
+
+//#define I2C_0_SCL mcuRegP[ _P6_0 ] // IIC_TWL SCL0
+//#define I2C_0_SDA mcuRegP[ _P6_1 ] // SDA0
+
+//#define I2C_1_SCL mcuRegP[ _P20_0 ] // IIC CTR SCL1
+//#define I2C_1_SDA mcuRegP[ _P20_1 ] // SDA1
+
+//#define 32kHz_O mcuRegP[ _P1_2 ] // RTCCL
+//#define 32k_I1 mcuRegP[ _P12_3 ] // XT1
+//#define 32k_I2 mcuRegP[ _P12_4 ] // XT2
+
+// @AJ@AV䔻ʁB
+#define DIPSW ( P4 & bits8(0,0,0,0, 0,0,1,1) ) // mini cube & \tgEFAfBbvXCb` TOOL0,1B mcuRegP[ _P4_0 ] L ӁI
+#define DIPSW_CTR 3 // gp
+#define DIPSW_ISDEV 0 // KuCBattGaugeŔ
+#define DIPSW_TAIKENDAI 2
+#define DIPSW_TAIKENDAI_NBD 1
+
+
+#define SHELL_OPEN_RAW mcuRegP[ _P7_1 ] // INTP5 ӂJ (L)
+
+//#define DBG_VR mcuRegP[ _P2_6 ]
+// ANI6
+
+#define ACC_VALID mcuRegP[ _P20_5 ]
+#define PM_ACC_VALID mcuRegPM[ _P20_5 ]
+#define ACCEL_INT1 mcuRegP[ _P2_5 ] // todo P2.5ʖړIŎgȂȎ(AIN5)ꂢɂ
+#define PM_ACCEL_INT1 mcuRegPM[ _P2_5 ]
+
+#define KR_SW_POW ( 1 << 3 )
+#define KR_SW_WIFI ( 1 << 4 )
+
+
+///////////////////////////////////////////////////////////
+
+#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 )
+
+#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/SDK3.0(2.00)/sim/simFixture.c b/tags/SDK3.0(2.00)/sim/simFixture.c
new file mode 100644
index 0000000..847b119
--- /dev/null
+++ b/tags/SDK3.0(2.00)/sim/simFixture.c
@@ -0,0 +1,149 @@
+#ifdef _WIN32
+
+#include
+
+void EI(){;}
+void DI(){;}
+void HALT(){;}
+void NOP(){;}
+void STOP(){;}
+
+unsigned char bcdtob( unsigned char arg )
+{
+ return 0; // v[Xz_
+}
+
+
+/*
+typedef unsigned char fsl_u08;
+typedef unsigned int fsl_u16;
+typedef unsigned long int fsl_u32;
+*/
+/*
+#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
+*/
+fsl_u08 FSL_Init(fsl_u08* data_buffer_pu08)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_Init_cont(fsl_u08* data_buffer_pu08)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_ModeCheck(void)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_BlankCheck(fsl_u16 block_u16)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_Erase(fsl_u16 block_u16)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_IVerify(fsl_u16 block_u16)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_Write(fsl_u32 s_address_u32, fsl_u08 word_count_u08)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_EEPROMWrite(fsl_u32 s_address_u32, fsl_u08 word_count_u08)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_GetSecurityFlags(fsl_u16* destination_pu16)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_GetActiveBootCluster(fsl_u08* destination_pu08)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_GetBlockEndAddr(fsl_u32* destination_pu32, fsl_u16 block_u16)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_GetFlashShieldWindow(fsl_u16* start_block_pu16, fsl_u16* end_block_pu16)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_InvertBootFlag(void)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_SetFlashShieldWindow(fsl_u16 start_block_u16, fsl_u16 end_block_u16)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_SetChipEraseProtectFlag(void)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_SetBlockEraseProtectFlag(void)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_SetWriteProtectFlag(void)
+{
+ return FSL_OK;
+}
+
+fsl_u08 FSL_SetBootClusterProtectFlag(void)
+{
+ return FSL_OK;
+}
+
+void FSL_SwapBootCluster(void)
+{
+ ;
+}
+
+fsl_u08 FSL_SwapActiveBootCluster(void)
+{
+ return FSL_OK;
+}
+
+void FSL_ForceReset(void)
+{
+ ;
+}
+
+void FSL_SetInterruptMode(void)
+{
+ ;
+}
+
+
+
+
+
+#endif
diff --git a/tags/SDK3.0(2.00)/sim/simOnWin.h b/tags/SDK3.0(2.00)/sim/simOnWin.h
new file mode 100644
index 0000000..d6349b8
--- /dev/null
+++ b/tags/SDK3.0(2.00)/sim/simOnWin.h
@@ -0,0 +1,701 @@
+#ifndef _sim_on_win_
+#define _sim_on_win_
+//#pragma warning(disable:4068)
+
+
+// gݍ݊ ///////////////////////////////////////////
+void HALT();
+void STOP();
+void NOP();
+void EI();
+void DI();
+
+unsigned char bcdtob( unsigned char );
+
+
+
+// pragmaIȕ
+#define __interrupt
+#define __far
+
+
+enum // sfr
+{
+ sfr_ADCRH = 0,
+ sfr_ADM,
+ sfr_ADS,
+ sfr_KRM,
+ sfr_EGP0,
+ sfr_EGN0,
+ sfr_ISC,
+ sfr_TIS0,
+ sfr_IICA0,
+ sfr_IICS0,
+ sfr_IICF0,
+ sfr_SEC,
+ sfr_MIN,
+ sfr_HOUR,
+ sfr_WEEK,
+ sfr_DAY,
+ sfr_MONTH,
+ sfr_YEAR,
+ sfr_SUBCUD,
+ sfr_ALARMWM,
+ sfr_ALARMWH,
+ sfr_ALARMWW,
+ sfr_RTCC0,
+ sfr_RTCC1,
+ sfr_RTCC2,
+ sfr_CMC,
+ sfr_CSC,
+ sfr_OSTC,
+ sfr_OSTS,
+ sfr_CKC,
+ sfr_CKS0,
+ sfr_CKS1,
+ sfr_RESF,
+ sfr_LVIM,
+ sfr_LVIS,
+ sfr_WDTE,
+ sfr_DSA0,
+ sfr_DSA1,
+ sfr_DMC0,
+ sfr_DMC1,
+ sfr_DRC0,
+ sfr_DRC1,
+ sfr_BECTL,
+ sfr_PFCMD,
+ sfr_PFS,
+ sfr_FLPMC,
+ sfr_PMC,
+ sfr_TXD0_SIO00,
+ sfr_RXD0_SIO01,
+ sfr_TDR00,
+ sfr_TDR01,
+ sfr_TXD1,
+ sfr_SIO10,
+ sfr_RXD1,
+ sfr_TDR03,
+ sfr_TDR04,
+ sfr_TDR05,
+ sfr_TDR06,
+ sfr_TDR07,
+ sfr_RSUBC,
+ sfr_DRA0L,
+ sfr_DRA0H,
+ sfr_DRA1L,
+ sfr_DRA1H,
+ sfr_DBC0L,
+ sfr_DBC0H,
+ sfr_DBC1L,
+ sfr_DBC1H,
+ sfr_IF2L,
+ sfr_IF2H,
+ sfr_MK2L,
+ sfr_MK2HL,
+ sfr_PR02L,
+ sfr_PR02H,
+ sfr_PR12L,
+ sfr_PR12H,
+ sfr_IF0,
+// sfr_IF0L,
+// sfr_IF0H,
+ sfr_IF1,
+// sfr_IF1L,
+// sfr_IF1H,
+ sfr_MK0,
+// sfr_MK0L,
+// sfr_MK0H,
+ sfr_MK1,
+// sfr_MK1L,
+// sfr_MK1H,
+ sfr_PR00,
+// sfr_PR00L,
+// sfr_PR00H,
+ sfr_PR01,
+// sfr_PR01L,
+// sfr_PR01H,
+ sfr_PR10,
+// sfr_PR10L,
+// sfr_PR10H,
+ sfr_PR11,
+// sfr_PR11L,
+// sfr_PR11H,
+ sfr_MDAL_MULA,
+ sfr_MDAH_MULB,
+ sfr_MDBH_MULOH,
+ sfr_MDBL_MULOL,
+
+ sfr_P0,
+ sfr_PM0,
+ sfr_PM1,
+ sfr_P1,
+ sfr_P2,
+ sfr_PM2,
+ sfr_P3,
+ sfr_PM3,
+ sfr_P4,
+ sfr_PM4,
+ sfr_P5,
+ sfr_PM5,
+ sfr_P6,
+ sfr_PM6,
+ sfr_P7,
+ sfr_PM7,
+ sfr_P12,
+ sfr_PM12,
+ sfr_P14,
+ sfr_PM14,
+ sfr_P15,
+ sfr_PM15,
+ sfr_PM20,
+ sfr_P20,
+ _MCU_SFR_MAX_
+};
+
+
+enum // 2nd sfr
+{
+ sfr_ADPC,
+ sfr_PU0,
+ sfr_PU1,
+ sfr_PU3,
+ sfr_PU4,
+ sfr_PU5,
+ sfr_PU7,
+ sfr_PU12,
+ sfr_PU14,
+ sfr_PIM3,
+ sfr_PIM7,
+ sfr_POM3,
+ sfr_POM7,
+ sfr_NFEN0,
+ sfr_NFEN1,
+ sfr_NFEN2,
+ sfr_MDCL,
+ sfr_MDCH,
+ sfr_MDUC,
+ sfr_PER0,
+ sfr_PER2,
+ sfr_OSMC,
+ sfr_BCDADJ,
+ sfr_SSR00L,
+ sfr_SSR00,
+ sfr_SSR01L,
+ sfr_SSR01,
+ sfr_SSR02L,
+ sfr_SSR02,
+ sfr_SSR03L,
+ sfr_SSR03,
+ sfr_SIR00L,
+ sfr_SIR00,
+ sfr_SIR01L,
+ sfr_SIR02L,
+ sfr_SIR01,
+ sfr_SIR02,
+ sfr_SIR03L,
+ sfr_SIR03,
+ sfr_SMR00,
+ sfr_SMR01,
+ sfr_SMR02,
+ sfr_SMR03,
+ sfr_SCR00,
+ sfr_SCR01,
+ sfr_SCR02,
+ sfr_SCR03,
+ sfr_SE0L,
+ sfr_SE0,
+ sfr_SS0L,
+ sfr_SS0,
+ sfr_ST0L,
+ sfr_ST0,
+ sfr_SPS0L,
+ sfr_SPS0,
+ sfr_SO0,
+ sfr_SOE0L,
+ sfr_SOE0,
+ sfr_SOL0L,
+ sfr_SOL0,
+ sfr_TCR00,
+ sfr_TCR01,
+ sfr_TCR02,
+ sfr_TCR07,
+ sfr_TO0L,
+ sfr_TOL0L,
+ sfr_TPS0L,
+ sfr_TSR07L,
+ sfr_TMR00,
+ sfr_TMR02,
+ sfr_TMR04,
+ sfr_TMR06,
+ sfr_TSR00L,
+ sfr_TOE0L,
+ sfr_TMR01,
+ sfr_TMR03,
+ sfr_TMR05,
+ sfr_TMR07,
+ sfr_TT0L,
+ sfr_TOM0L,
+ sfr_TE0L,
+ sfr_TS0L,
+ sfr_IICCTL01,
+ sfr_IICCTL11,
+ sfr_IICS1,
+ sfr_PER3,
+ sfr_PU20,
+ sfr_TCR04,
+ sfr_TCR06,
+ sfr_EGN2,
+ sfr_EGP2,
+ sfr_IICWH0,
+ sfr_IICWH1,
+ sfr_IICWL0,
+ sfr_IICWL1,
+ sfr_SVA0,
+ sfr_SVA1,
+ sfr_IICA1,
+ sfr_IICCTL00,
+ sfr_IICCTL10,
+ sfr_IICF1,
+ sfr_TCR03,
+ sfr_TCR05,
+ sfr_TSR01L,
+ sfr_TSR02L,
+ sfr_TSR03L,
+ sfr_TSR04L,
+ sfr_TSR05L,
+ sfr_TSR06L,
+ sfr_TE0,
+ sfr_TO0,
+ sfr_TOE0,
+ sfr_TOL0,
+ sfr_TOM0,
+ sfr_TPS0,
+ sfr_TS0,
+ sfr_TSR07,
+ sfr_TT0,
+ sfr_TSR00,
+ sfr_TSR01,
+ sfr_TSR02,
+ sfr_TSR03,
+ sfr_TSR04,
+ sfr_TSR05,
+ sfr_TSR06,
+ _MCU_SFR2_MAX_
+};
+
+
+
+enum
+{
+ _P0_0 = 0, _P0_1,
+ _P1_0, _P1_1, _P1_2, _P1_3, _P1_4, _P1_5, _P1_6, _P1_7,
+ _P2_0, _P2_1, _P2_2, _P2_3, _P2_4, _P2_5, _P2_6, _P2_7,
+ _P3_0, _P3_1, _P3_2, _P3_3,
+ _P4_0, _P4_1, _P4_2, _P4_3,
+ _P5_0, _P5_1, _P5_2, _P5_3,
+ _P6_0, _P6_1,
+ _P7_0, _P7_1, _P7_2, _P7_3, _P7_4, _P7_5, _P7_6, _P7_7,
+ _P12_0, _P12_1, _P12_2, _P12_3, _P12_4,
+ _P14_0, _P14_1,
+ _P15_0, _P15_1,
+ _P20_0, _P20_1, _P20_2, _P20_3, _P20_4, _P20_5,
+ _MCU_PORTS_MAX_
+};
+
+unsigned char mcuRegPM[ _MCU_PORTS_MAX_ ];
+unsigned char mcuRegP[ _MCU_PORTS_MAX_ ];
+unsigned char mcuRegPU[ _MCU_PORTS_MAX_ ];
+
+/*
+typedef struct
+{
+ unsigned _7 :1;
+ unsigned _6 :1;
+ unsigned _5 :1;
+ unsigned _4 :1;
+ unsigned _3 :1;
+ unsigned _2 :1;
+ unsigned _1 :1;
+ unsigned _0 :1;
+}mcu_reg;
+*/
+/*
+typedef unsigned char mcu_reg;
+
+mcu_reg P0;
+mcu_reg PM0;
+mcu_reg PM1;
+mcu_reg P1;
+mcu_reg P2;
+mcu_reg PM2;
+mcu_reg PM3;
+mcu_reg P3;
+mcu_reg P4;
+mcu_reg P5;
+mcu_reg PM5;
+//mcu_reg PU5;
+mcu_reg P6;
+mcu_reg PM6;
+mcu_reg P7;
+mcu_reg PM7;
+mcu_reg P12;
+mcu_reg PM12;
+mcu_reg P14;
+mcu_reg PM14;
+mcu_reg P15;
+mcu_reg PM15;
+//mcu_reg PU20;
+mcu_reg PM20;
+mcu_reg P20;
+
+*/
+
+
+unsigned short mcuSfr[ _MCU_SFR_MAX_ ];
+unsigned short mcuSfr2[ _MCU_SFR2_MAX_ ];
+
+
+// sfr
+#define ADCRH mcuSfr[ sfr_ADCRH ]
+#define ADM mcuSfr[ sfr_ADM ]
+#define ADS mcuSfr[ sfr_ADS ]
+#define KRM mcuSfr[ sfr_KRM ]
+#define EGP0 mcuSfr[ sfr_EGP0 ]
+#define EGN0 mcuSfr[ sfr_EGN0 ]
+#define ISC mcuSfr[ sfr_ISC ]
+#define TIS0 mcuSfr[ sfr_TIS0 ]
+#define IICA0 mcuSfr[ sfr_IICA0 ]
+#define IICS0 mcuSfr[ sfr_IICS0 ]
+#define IICF0 mcuSfr[ sfr_IICF0 ]
+#define SEC mcuSfr[ sfr_SEC ]
+#define MIN mcuSfr[ sfr_MIN ]
+#define HOUR mcuSfr[ sfr_HOUR ]
+#define WEEK mcuSfr[ sfr_WEEK ]
+#define DAY mcuSfr[ sfr_DAY ]
+#define MONTH mcuSfr[ sfr_MONTH ]
+#define YEAR mcuSfr[ sfr_YEAR ]
+#define SUBCUD mcuSfr[ sfr_SUBCUD ]
+#define ALARMWM mcuSfr[ sfr_ALARMWM ]
+#define ALARMWH mcuSfr[ sfr_ALARMWH ]
+#define ALARMWW mcuSfr[ sfr_ALARMWW ]
+#define RTCC0 mcuSfr[ sfr_RTCC0 ]
+#define RTCC1 mcuSfr[ sfr_RTCC1 ]
+#define RTCC2 mcuSfr[ sfr_RTCC2 ]
+#define CMC mcuSfr[ sfr_CMC ]
+#define CSC mcuSfr[ sfr_CSC ]
+#define OSTC mcuSfr[ sfr_OSTC ]
+#define OSTS mcuSfr[ sfr_OSTS ]
+#define CKC mcuSfr[ sfr_CKC ]
+#define CKS0 mcuSfr[ sfr_CKS0 ]
+#define CKS1 mcuSfr[ sfr_CKS1 ]
+#define RESF mcuSfr[ sfr_RESF ]
+#define LVIM mcuSfr[ sfr_LVIM ]
+#define LVIS mcuSfr[ sfr_LVIS ]
+#define WDTE mcuSfr[ sfr_WDTE ]
+#define DSA0 mcuSfr[ sfr_DSA0 ]
+#define DSA1 mcuSfr[ sfr_DSA1 ]
+#define DMC0 mcuSfr[ sfr_DMC0 ]
+#define DMC1 mcuSfr[ sfr_DMC1 ]
+#define DRC0 mcuSfr[ sfr_DRC0 ]
+#define DRC1 mcuSfr[ sfr_DRC1 ]
+#define BECTL mcuSfr[ sfr_BECTL ]
+#define PFCMD mcuSfr[ sfr_PFCMD ]
+#define PFS mcuSfr[ sfr_PFS ]
+#define FLPMC mcuSfr[ sfr_FLPMC ]
+#define PMC mcuSfr[ sfr_PMC ]
+#define TXD0_SIO00 mcuSfr[ sfr_TXD0_SIO00 ]
+#define RXD0_SIO01 mcuSfr[ sfr_RXD0_SIO01 ]
+#define TDR00 mcuSfr[ sfr_TDR00 ]
+#define TDR01 mcuSfr[ sfr_TDR01 ]
+#define TXD1 mcuSfr[ sfr_TXD1 ]
+#define SIO10 mcuSfr[ sfr_SIO10 ]
+#define RXD1 mcuSfr[ sfr_RXD1 ]
+#define TDR03 mcuSfr[ sfr_TDR03 ]
+#define TDR04 mcuSfr[ sfr_TDR04 ]
+#define TDR05 mcuSfr[ sfr_TDR05 ]
+#define TDR06 mcuSfr[ sfr_TDR06 ]
+#define TDR07 mcuSfr[ sfr_TDR07 ]
+#define RSUBC mcuSfr[ sfr_RSUBC ]
+#define DRA0L mcuSfr[ sfr_DRA0L ]
+#define DRA0H mcuSfr[ sfr_DRA0H ]
+#define DRA1L mcuSfr[ sfr_DRA1L ]
+#define DRA1H mcuSfr[ sfr_DRA1H ]
+#define DBC0L mcuSfr[ sfr_DBC0L ]
+#define DBC0H mcuSfr[ sfr_DBC0H ]
+#define DBC1L mcuSfr[ sfr_DBC1L ]
+#define DBC1H mcuSfr[ sfr_DBC1H ]
+#define IF2L mcuSfr[ sfr_IF2L ]
+#define IF2H mcuSfr[ sfr_IF2H ]
+#define MK2L mcuSfr[ sfr_MK2L ]
+#define MK2HL mcuSfr[ sfr_MK2HL ]
+#define PR02L mcuSfr[ sfr_PR02L ]
+#define PR02H mcuSfr[ sfr_PR02H ]
+#define PR12L mcuSfr[ sfr_PR12L ]
+#define PR12H mcuSfr[ sfr_PR12H ]
+//#define IF0L mcuSfr[ sfr_IF0L ]
+//#define IF0H mcuSfr[ sfr_IF0H ]
+#define IF0 mcuSfr[ sfr_IF0 ]
+//#define IF1L mcuSfr[ sfr_IF1L ]
+//#define IF1H mcuSfr[ sfr_IF1H ]
+#define IF1H mcuSfr[ sfr_IF1 ]
+//#define MK0L mcuSfr[ sfr_MK0L ]
+//#define MK0H mcuSfr[ sfr_MK0H ]
+#define MK0L mcuSfr[ sfr_MK0 ]
+//#define MK1L mcuSfr[ sfr_MK1L ]
+//#define MK1H mcuSfr[ sfr_MK1H ]
+#define MK1H mcuSfr[ sfr_MK1 ]
+#define PR00 mcuSfr[ sfr_PR00 ]
+//#define PR00L mcuSfr[ sfr_PR00L ]
+//#define PR00H mcuSfr[ sfr_PR00H ]
+#define PR01 mcuSfr[ sfr_PR01 ]
+//#define PR01L mcuSfr[ sfr_PR01L ]
+//#define PR01H mcuSfr[ sfr_PR01H ]
+#define PR10 mcuSfr[ sfr_PR10 ]
+//#define PR10L mcuSfr[ sfr_PR10L ]
+//#define PR10H mcuSfr[ sfr_PR10H ]
+#define PR11 mcuSfr[ sfr_PR11 ]
+//#define PR11L mcuSfr[ sfr_PR11L ]
+//#define PR11H mcuSfr[ sfr_PR11H ]
+#define MDAL_MULA mcuSfr[ sfr_MDAL_MULA ]
+#define MDAH_MULB mcuSfr[ sfr_MDAH_MULB ]
+#define MDBH_MULOH mcuSfr[ sfr_MDBH_MULOH ]
+#define MDBL_MULOL mcuSfr[ sfr_MDBL_MULOL ]
+#define P0 mcuSfr[ sfr_P0 ]
+#define PM0 mcuSfr[ sfr_PM0 ]
+#define PM1 mcuSfr[ sfr_PM1 ]
+#define P1 mcuSfr[ sfr_P1 ]
+#define P2 mcuSfr[ sfr_P2 ]
+#define PM2 mcuSfr[ sfr_PM2 ]
+#define PM3 mcuSfr[ sfr_PM3 ]
+#define P3 mcuSfr[ sfr_P3 ]
+#define P4 mcuSfr[ sfr_P4 ]
+#define PM4 mcuSfr[ sfr_PM4 ]
+#define P5 mcuSfr[ sfr_P5 ]
+#define PM5 mcuSfr[ sfr_PM5 ]
+#define P6 mcuSfr[ sfr_P6 ]
+#define PM6 mcuSfr[ sfr_PM6 ]
+#define P7 mcuSfr[ sfr_P7 ]
+#define PM7 mcuSfr[ sfr_PM7 ]
+#define P12 mcuSfr[ sfr_P12 ]
+#define PM12 mcuSfr[ sfr_PM12 ]
+#define P14 mcuSfr[ sfr_P14 ]
+#define PM14 mcuSfr[ sfr_PM14 ]
+#define P15 mcuSfr[ sfr_P15 ]
+#define PM15 mcuSfr[ sfr_PM15 ]
+
+
+
+
+
+// 2nd sfr
+#define ADPC mcuSfr2[ sfr_ADPC ]
+#define PU0 mcuSfr2[ sfr_PU0 ]
+#define PU1 mcuSfr2[ sfr_PU1 ]
+#define PU3 mcuSfr2[ sfr_PU3 ]
+#define PU4 mcuSfr2[ sfr_PU4 ]
+#define PU5 mcuSfr2[ sfr_PU5 ]
+#define PU7 mcuSfr2[ sfr_PU7 ]
+#define PU12 mcuSfr2[ sfr_PU12 ]
+#define PU14 mcuSfr2[ sfr_PU14 ]
+#define PIM3 mcuSfr2[ sfr_PIM3 ]
+#define PIM7 mcuSfr2[ sfr_PIM7 ]
+#define POM3 mcuSfr2[ sfr_POM3 ]
+#define POM7 mcuSfr2[ sfr_POM7 ]
+#define NFEN0 mcuSfr2[ sfr_NFEN0 ]
+#define NFEN1 mcuSfr2[ sfr_NFEN1 ]
+#define NFEN2 mcuSfr2[ sfr_NFEN2 ]
+#define MDCL mcuSfr2[ sfr_MDCL ]
+#define MDCH mcuSfr2[ sfr_MDCH ]
+#define MDUC mcuSfr2[ sfr_MDUC ]
+#define PER0 mcuSfr2[ sfr_PER0 ]
+#define PER2 mcuSfr2[ sfr_PER2 ]
+#define OSMC mcuSfr2[ sfr_OSMC ]
+#define BCDADJ mcuSfr2[ sfr_BCDADJ ]
+#define SSR00L mcuSfr2[ sfr_SSR00L ]
+#define SSR00 mcuSfr2[ sfr_SSR00 ]
+#define SSR01L mcuSfr2[ sfr_SSR01L ]
+#define SSR01 mcuSfr2[ sfr_SSR01 ]
+#define SSR02L mcuSfr2[ sfr_SSR02L ]
+#define SSR02 mcuSfr2[ sfr_SSR02 ]
+#define SSR03L mcuSfr2[ sfr_SSR03L ]
+#define SSR03 mcuSfr2[ sfr_SSR03 ]
+#define SIR00L mcuSfr2[ sfr_SIR00L ]
+#define SIR00 mcuSfr2[ sfr_SIR00 ]
+#define SIR01L mcuSfr2[ sfr_SIR01L ]
+#define SIR02L mcuSfr2[ sfr_SIR02L ]
+#define SIR01 mcuSfr2[ sfr_SIR01 ]
+#define SIR02 mcuSfr2[ sfr_SIR02 ]
+#define SIR03L mcuSfr2[ sfr_SIR03L ]
+#define SIR03 mcuSfr2[ sfr_SIR03 ]
+#define SMR00 mcuSfr2[ sfr_SMR00 ]
+#define SMR01 mcuSfr2[ sfr_SMR01 ]
+#define SMR02 mcuSfr2[ sfr_SMR02 ]
+#define SMR03 mcuSfr2[ sfr_SMR03 ]
+#define SCR00 mcuSfr2[ sfr_SCR00 ]
+#define SCR01 mcuSfr2[ sfr_SCR01 ]
+#define SCR02 mcuSfr2[ sfr_SCR02 ]
+#define SCR03 mcuSfr2[ sfr_SCR03 ]
+#define SE0L mcuSfr2[ sfr_SE0L ]
+#define SE0 mcuSfr2[ sfr_SE0 ]
+#define SS0L mcuSfr2[ sfr_SS0L ]
+#define SS0 mcuSfr2[ sfr_SS0 ]
+#define ST0L mcuSfr2[ sfr_ST0L ]
+#define ST0 mcuSfr2[ sfr_ST0 ]
+#define SPS0L mcuSfr2[ sfr_SPS0L ]
+#define SPS0 mcuSfr2[ sfr_SPS0 ]
+#define SO0 mcuSfr2[ sfr_SO0 ]
+#define SOE0L mcuSfr2[ sfr_SOE0L ]
+#define SOE0 mcuSfr2[ sfr_SOE0 ]
+#define SOL0L mcuSfr2[ sfr_SOL0L ]
+#define SOL0 mcuSfr2[ sfr_SOL0 ]
+#define TCR00 mcuSfr2[ sfr_TCR00 ]
+#define TCR01 mcuSfr2[ sfr_TCR01 ]
+#define TCR02 mcuSfr2[ sfr_TCR02 ]
+#define TCR07 mcuSfr2[ sfr_TCR07 ]
+#define TO0L mcuSfr2[ sfr_TO0L ]
+#define TOL0L mcuSfr2[ sfr_TOL0L ]
+#define TPS0L mcuSfr2[ sfr_TPS0L ]
+#define TSR07L mcuSfr2[ sfr_TSR07L ]
+#define TMR00 mcuSfr2[ sfr_TMR00 ]
+#define TMR02 mcuSfr2[ sfr_TMR02 ]
+#define TMR04 mcuSfr2[ sfr_TMR04 ]
+#define TMR06 mcuSfr2[ sfr_TMR06 ]
+#define TSR00L mcuSfr2[ sfr_TSR00L ]
+#define TOE0L mcuSfr2[ sfr_TOE0L ]
+#define TMR01 mcuSfr2[ sfr_TMR01 ]
+#define TMR03 mcuSfr2[ sfr_TMR03 ]
+#define TMR05 mcuSfr2[ sfr_TMR05 ]
+#define TMR07 mcuSfr2[ sfr_TMR07 ]
+#define TT0L mcuSfr2[ sfr_TT0L ]
+#define TOM0L mcuSfr2[ sfr_TOM0L ]
+#define TE0L mcuSfr2[ sfr_TE0L ]
+#define TS0L mcuSfr2[ sfr_TS0L ]
+#define IICCTL01 mcuSfr2[ sfr_IICCTL01 ]
+#define IICCTL11 mcuSfr2[ sfr_IICCTL11 ]
+#define IICS1 mcuSfr2[ sfr_IICS1 ]
+#define PER3 mcuSfr2[ sfr_PER3 ]
+#define PU20 mcuSfr2[ sfr_PU20 ]
+#define TCR04 mcuSfr2[ sfr_TCR04 ]
+#define TCR06 mcuSfr2[ sfr_TCR06 ]
+#define EGN2 mcuSfr2[ sfr_EGN2 ]
+#define EGP2 mcuSfr2[ sfr_EGP2 ]
+#define IICWH0 mcuSfr2[ sfr_IICWH0 ]
+#define IICWH1 mcuSfr2[ sfr_IICWH1 ]
+#define IICWL0 mcuSfr2[ sfr_IICWL0 ]
+#define IICWL1 mcuSfr2[ sfr_IICWL1 ]
+#define SVA0 mcuSfr2[ sfr_SVA0 ]
+#define SVA1 mcuSfr2[ sfr_SVA1 ]
+#define IICA1 mcuSfr2[ sfr_IICA1 ]
+#define IICCTL00 mcuSfr2[ sfr_IICCTL00 ]
+#define IICCTL10 mcuSfr2[ sfr_IICCTL10 ]
+#define IICF1 mcuSfr2[ sfr_IICF1 ]
+#define P20 mcuSfr2[ sfr_P20 ]
+#define PM20 mcuSfr2[ sfr_PM20 ]
+#define TCR03 mcuSfr2[ sfr_TCR03 ]
+#define TCR05 mcuSfr2[ sfr_TCR05 ]
+#define TSR01L mcuSfr2[ sfr_TSR01L ]
+#define TSR02L mcuSfr2[ sfr_TSR02L ]
+#define TSR03L mcuSfr2[ sfr_TSR03L ]
+#define TSR04L mcuSfr2[ sfr_TSR04L ]
+#define TSR05L mcuSfr2[ sfr_TSR05L ]
+#define TSR06L mcuSfr2[ sfr_TSR06L ]
+#define TE0 mcuSfr2[ sfr_TE0 ]
+#define TO0 mcuSfr2[ sfr_TO0 ]
+#define TOE0 mcuSfr2[ sfr_TOE0 ]
+#define TOL0 mcuSfr2[ sfr_TOL0 ]
+#define TOM0 mcuSfr2[ sfr_TOM0 ]
+#define TPS0 mcuSfr2[ sfr_TPS0 ]
+#define TS0 mcuSfr2[ sfr_TS0 ]
+#define TSR07 mcuSfr2[ sfr_TSR07 ]
+#define TT0 mcuSfr2[ sfr_TT0 ]
+#define TSR00 mcuSfr2[ sfr_TSR00 ]
+#define TSR01 mcuSfr2[ sfr_TSR01 ]
+#define TSR02 mcuSfr2[ sfr_TSR02 ]
+#define TSR03 mcuSfr2[ sfr_TSR03 ]
+#define TSR04 mcuSfr2[ sfr_TSR04 ]
+#define TSR05 mcuSfr2[ sfr_TSR05 ]
+#define TSR06 mcuSfr2[ sfr_TSR06 ]
+
+
+
+typedef unsigned char bit;
+
+bit ACKD1;
+bit ACKE0;
+bit ACKE1;
+bit ADCEN;
+bit ADCS;
+bit ADIF;
+bit ADMK;
+bit COI1;
+bit DBC1;
+bit DEN1;
+bit DFC1;
+bit DMAIF1;
+bit DMAMK1;
+bit DRA1;
+bit DST1;
+bit IF1;
+bit IF2;
+bit IICA0EN;
+bit IICA1EN;
+bit IICAIF0;
+bit IICAIF1;
+bit IICAMK0;
+bit IICAMK1;
+bit IICAPR00;
+bit IICAPR01;
+bit IICAPR10;
+bit IICAPR11;
+bit IICE0;
+bit IICE1;
+bit IICIF10;
+bit IICMK10;
+bit IICRSV0;
+bit IICRSV1;
+bit LREL0;
+bit LREL1;
+bit MK0;
+bit MK1;
+bit MK2;
+bit PIF0;
+bit PIF21;
+bit PMK23;
+bit PMK6;
+bit RCLOE0;
+bit RTCE;
+bit RTCEN;
+bit RTCIF;
+bit RTCIIF;
+bit RTCIMK;
+bit RTCMK;
+bit RWAIT;
+bit RWST;
+bit SAU0EN;
+bit SDR02;
+bit SLP_ACK;
+bit SMC0;
+bit SMC1;
+bit SPD1;
+bit SPIE0;
+bit SPIE1;
+bit STCEN0;
+bit STCEN1;
+bit STD1;
+bit TAU0EN;
+bit TDR02;
+bit WALE;
+bit WREL0;
+bit WREL1;
+bit WTIM0;
+bit WTIM1;
+
+bit BECTL_7;
+
+
+
+#include "sfrAlias.h"
+
+
+#endif
diff --git a/tags/SDK3.0(2.00)/sim/sim_interrupt_decrare.c b/tags/SDK3.0(2.00)/sim/sim_interrupt_decrare.c
new file mode 100644
index 0000000..68f4359
--- /dev/null
+++ b/tags/SDK3.0(2.00)/sim/sim_interrupt_decrare.c
@@ -0,0 +1,74 @@
+#ifndef _WIN32
+
+// AȂ͂
+void fn_intwdti( ){}
+void fn_intlvi( ){}
+void fn_intp0(){}
+void fn_intp1( ){}
+void fn_intp2( ){}
+void fn_intp3( ){}
+void intp21_RFTx( ){}
+// void fn_intp4(){ while(1){} } // pm.c
+// void fn_intp5(){ while(1){} } // pm.c
+// void fn_intp6(){ while(1){} } // pm.c
+// void fn_intp7(){ while(1){} } // led.c
+// void fn_intp21(){ while(1){} } // led.c
+
+void fn_intcmp0( ){}
+void fn_intcmp1( ){}
+void fn_intdma0( ){}
+// void fn_intdma1(){} // i2c_mcu.cɂ
+void fn_intst0( ){}
+void fn_intsr0( ){}
+void fn_intsre0( ){}
+void fn_intst1( ){}
+/* __interrupt void fn_intcsi10(){} */
+// void fn_intiic10(){ while(1){} }
+void fn_intsr1( ){}
+void fn_intsre1( ){}
+// void fn_intiica(){} // i2c.cɂ
+/* __interrupt void fn_inttm00(){} *//* sub.cɂĒ` */
+void fn_inttm01( ){}
+void fn_inttm02( ){}
+void fn_inttm03( ){}
+// void fn_intad(){ while(1){} } // adc.c
+void fn_intrtc( ){}
+// void int_rtcint(){} // rtc.cɂ
+// void fn_intkr(){} // main.c
+void fn_intmd( ){}
+void fn_inttm04( ){}
+void fn_inttm05( ){}
+void fn_inttm06( ){}
+void fn_inttm07( ){}
+
+
+/* ========================================================
+ L[^[荞
+ ======================================================== */
+void int_kr( )
+{
+ // N邾
+}
+
+
+
+/* ========================================================
+ ext dc
+ ======================================================== */
+void intp4( )
+{
+ // N邾
+}
+
+
+
+/* ========================================================
+ shell close
+ ======================================================== */
+void intp5( )
+{
+ // N邾
+}
+
+#endif
+
diff --git a/tags/SDK3.0(2.00)/sw.c b/tags/SDK3.0(2.00)/sw.c
new file mode 100644
index 0000000..caf5c9b
--- /dev/null
+++ b/tags/SDK3.0(2.00)/sw.c
@@ -0,0 +1,183 @@
+#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 8
+#define CLICK_THRESHOLD 2
+
+#define HOLD_THREASHOLD (u8)( 2000 / INTERVAL_TSK_SW )
+#define FORCEOFF_THREASHOLD (u8)( 4000 / INTERVAL_TSK_SW )
+*/
+#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;
+
+u8 SW_home_count, SW_wifi_count, SW_home_count_rel;
+u8 sw_wifi_mukan_time;
+
+u16 off_timeout_timer;
+
+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; \
+ } \
+ } \
+ }
+
+
+#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Ȃǂ̌oȂ
+ ======================================================== */
+void tsk_sw( )
+{
+ static u8 task_interval;
+
+ if( system_status.pwr_state == OFF_TRIG )
+ {
+ SW_pow_count = 0; // dɔăNA
+ task_interval = 0;
+ }
+
+ if( task_interval != 0 )
+ {
+ task_interval--;
+ return;
+ // ܂
+ }
+
+ task_interval = (u8)( INTERVAL_TSK_SW / SYS_INTERVAL_TICK );// vXP[ɎgĂ܂ˁc
+
+ // 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/SDK3.0(2.00)/sw.h b/tags/SDK3.0(2.00)/sw.h
new file mode 100644
index 0000000..abe9715
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/task_debug.c b/tags/SDK3.0(2.00)/task_debug.c
new file mode 100644
index 0000000..54b594b
--- /dev/null
+++ b/tags/SDK3.0(2.00)/task_debug.c
@@ -0,0 +1,120 @@
+#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
+
+ӁI@^XNXgOĂ܂̂ŁAgȂ畜ĉI
+
+void tsk_debug( )
+{
+// u8 temp;
+
+#ifdef _DBG_PEDO_AUTO_ENABLE_
+ if( system_status.pwr_state == ON_TRIG ){
+ // vNonɂ
+ vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x03;
+ renge_task_immed_add( tski_acc_hosu_set );
+ }
+#endif
+
+ /*
+ 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ЂȌ`
+ ======================================================== */
+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^ );
+*/
+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/SDK3.0(2.00)/task_misc.c b/tags/SDK3.0(2.00)/task_misc.c
new file mode 100644
index 0000000..f2551f1
--- /dev/null
+++ b/tags/SDK3.0(2.00)/task_misc.c
@@ -0,0 +1,346 @@
+#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
+
+
+
+// ========================================================
+bit twl_ver_read;
+bit going_to_sleep;
+
+
+void update_LED_3D();
+void check_twl_vol_irq();
+
+
+/* ========================================================
+ Xe[^XWX^Ȃ
+ ======================================================== */
+void tsk_misc( )
+{
+ /* ========================================================
+ xZT荞݃sIWi}CRɂ͖̂
+ |[OB
+ vp
+ BSR}CRaccero.cŊ荞݃[`^XNo^܂B
+ ======================================================== */
+ // 荞݂̎肱ڂH
+ if( ACC_VALID )
+ {
+ if( renge_task_immed_add( tski_cbk_accero ) == ERR_SUCCESS ){
+ // dbg_nop();
+ }
+ }
+
+ if( system_status.pwr_state == ON )
+ {
+ /* ========================================================
+ PM݊WX^ւ̏
+ |[OĂȂB荞݁H
+ ======================================================== */
+ 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();
+}
+
+
+
+/* ========================================================
+ TWLVol̂ƁAXC_̑삪obeBO
+ sN鎖Ah
+ TWLł8ʏ펞A{^8iKBɍ킹Ċ荞݂ꂽ
+ ======================================================== */
+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 );
+ }
+}
+
+
+
+// 3D_LED /////////////////////////////////////
+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 --;
+ }
+ }
+ }
+}
+
+
+
+/* ========================================================
+ N^XN
+ ======================================================== */
+
+/* ========================================================
+ COMMANDWX^ւ̏
+@ 0ȂĂ܂BPAsv
+ ======================================================== */
+task_status_immed tski_do_command0( )
+{
+ u8 temp_command;
+
+ // command0 {̓dȂ
+ DI();
+ temp_command = vreg_ctr[VREG_C_COMMAND0];
+ vreg_ctr[VREG_C_COMMAND0] = 0;
+ EI();
+
+ if( temp_command & REG_BIT_GOING_TO_SLEEP )
+ {
+ going_to_sleep = true;
+ }
+
+ 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 );
+}
+
+
+
+/* ========================================================
+@݊ATWLAvւ̊荞
+ zWX^̏ݎɍs܂B
+ ======================================================== */
+
+u16 _dbg_rcomp;
+extern u8 raw_adc_temperature;
+
+extern u8 iic_burst_state;
+extern bit temp_zone_charge_disable;
+extern bit bt_authorized;
+
+
+/* ========================================================
+@fobOpɂ낢ǂł܂B
+@Ԓ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
+ ======================================================== */
+
+#define KOUMOKU 18
+u8 extinfo_read()
+{
+ u8 infos[ KOUMOKU +1 ];
+
+ if( iic_burst_state > KOUMOKU )
+ {
+ return( 0xFF );
+ }
+
+ // static łƂقǂ̂̂łȂ̂ŖX^bNƂĂ
+ // switchƂɂrom... ȂȂB
+ infos[0] = system_status.captureBox? MODEL_CAPTURE_BOX
+ : ( system_status.is_dev? MODEL_ISBAKO: (u8)system_status.model );
+ infos[1] = pmic_version;
+ infos[2] = battery_manufacturer;
+ infos[3] = mgic_version[0];
+ infos[4] = mgic_version[1];
+ infos[5] = (u8)( _dbg_rcomp & 0xFF );
+ infos[6] = raw_adc_temperature;
+ infos[7] = ( !temp_zone_charge_disable | ( bt_authorized << 1 ) );
+ infos[8] = 1; // system_status.info_fullcolor;
+ infos[9] = system_status.family;
+
+ infos[10] = LED_pow_red;
+ infos[11] = LED_duty_pow_blu;
+ infos[12] = LED_duty_3d;
+ infos[13] = LED_duty_notify_red;
+ infos[14] = LED_duty_notify_grn;
+ infos[15] = LED_duty_notify_blu;
+ infos[16] = LED_CAM;
+ infos[17] = LED_duty_WiFi;
+ infos[18] = 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 );
+
+
+ // ڑƂ͋CĂ!! //
+
+ iic_burst_state ++;
+ return( infos[ iic_burst_state -1 ] );
+}
+
+#ifdef i2c_timeout_test
+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/SDK3.0(2.00)/task_status.c b/tags/SDK3.0(2.00)/task_status.c
new file mode 100644
index 0000000..0d07510
--- /dev/null
+++ b/tags/SDK3.0(2.00)/task_status.c
@@ -0,0 +1,84 @@
+#ifndef _WIN32
+
+#pragma SFR
+#pragma NOP
+#pragma HALT
+#pragma STOP
+
+#endif
+
+#include "incs_loader.h"
+#include "renge\renge.h"
+#include "hal.h"
+
+#include "pm.h"
+
+#include "accero.h"
+#include "adc.h"
+#include "i2c_mcu.h"
+#include "led.h"
+
+
+// ========================================================
+#define INTERVAL_TSK_STATUS 4
+
+
+/* ========================================================
+ Xe[^XWX^Ȃ
+ ======================================================== */
+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
+
+ 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ԂɈȉ
+ if( vreg_ctr[VREG_C_STATUS] & REG_BIT_BATT_CHARGE )
+ {
+ 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 );
+ }
+ }
+ }
+ }
+ return;
+}
+
diff --git a/tags/SDK3.0(2.00)/task_sys.c b/tags/SDK3.0(2.00)/task_sys.c
new file mode 100644
index 0000000..e970137
--- /dev/null
+++ b/tags/SDK3.0(2.00)/task_sys.c
@@ -0,0 +1,637 @@
+#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"
+
+
+//=========================================================
+#define WAIT_SHIROBAKO_POW_CONTROL 240
+
+
+//=========================================================
+extern void nop8();
+
+
+static void chk_emergencyExit();
+static void force_off_check();
+static void send_getup_to_soc();
+
+
+//=========================================================
+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)( 50 / INTERVAL_TSK_SW ) // [ms]
+
+/* ========================================================
+ }CRŕKvȂ
+Eȓd͂ɓ
+ @system_status.pwr_state == OFF_TRIG ŁÃ^XNĂƁA
+ ȓd̓[hɓ܂
+ ======================================================== */
+void tsk_sys( )
+{
+ static u8 pwsw_timeout = 0; // d{^`^OB@^CAEg܂łɓdm肵Ȃoffɖ߂
+
+ hal_update();
+
+ switch ( system_status.pwr_state )
+ {
+ case ON_CHECK: //-------------------------------------------------------
+ // pwswÅ荞݂ŃX[vƗ܂B
+
+ if( system_status.poweron_reason == RSN_PWSW ) // A_v^ȂœdXCb`ƂȂ
+ {
+ // XCb`œdon
+ if( SW_pow_count != 0 )
+ {
+ pwsw_timeout = 0;
+ }
+ else
+ {
+ pwsw_timeout ++;
+ }
+
+ if( pwsw_timeout > 100 )
+ {
+ SW_pow_count = 0;
+ system_status.pwr_state = OFF_TRIG; // XCb`̓mCYBQB
+ renge_task_interval_run_force = true;
+ return;
+ }
+
+ if( SW_pow_count < PWSW_POWON_TIME )
+ {
+ // XCb`̗lq
+ return;
+ }
+ }
+
+ SW_pow_mask = true;
+
+ // 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Ȃ̂ŋ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 )
+ {
+ // 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();
+
+#ifndef _TAIKENDAI_SEISAN_SPECIAL_
+ if( system_status.taikendai ) // A_v^hĂ玩œdon
+ {
+ if( PM_EXTDC_n )
+ {
+ system_status.pwr_state = OFF_TRIG;
+ }
+ }
+ break;
+#endif
+
+ default: //---------------------------------------
+ system_status.pwr_state = OFF_TRIG; // 蓾ȂXe[gBfobOp
+ /* 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;
+ }
+
+ clear_pow_off_countdown();
+
+ vreg_ctr[ VREG_C_ACC_CONFIG ] = 0x00;
+ tski_acc_hosu_set();
+
+ LED_stop( );
+ IIC_ctr_Stop( );
+ IIC_twl_Stop( );
+ RTC_32k_off();
+
+ // todo }Nɂł
+ RBR_RESET_n = 0;
+ RBR_FLIGHT = 0;
+
+ vreg_ctr[VREG_C_IRQ0] = 0;
+ vreg_ctr[VREG_C_IRQ1] = 0;
+ vreg_ctr[VREG_C_IRQ2] = 0;
+ vreg_ctr[VREG_C_IRQ3] = 0;
+
+// dI̊荞݃Zbg
+// PWSW KR3 L
+// BG24 KR4
+// ӂJ INTP5 L
+// ACA_v^ INTP4 A_v^L
+// RTC
+ while( iic_mcu_busy )
+ {;}
+
+ KRM = ( KR_SW_POW ); // Mask ł͂ȂAModeȂ̂B킵
+ MK0 = ~( INT_MSK0_EXTDC );
+ MK1 = ~( INT_MSK1_KR | INT_MSK1_RTCINTVAL ); // INT_MSK1_RTCALARM | RTCA[
+ MK2L = 0xFF;
+
+ // 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( );
+
+ // |[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
+ 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;
+ /* FALLTHROUGH */
+
+ case OFF:
+ system_status.poweron_reason = NONE;
+ pwsw_timeout = 0;
+
+ if( !PM_EXTDC_n )
+ {
+ // A_v^L ///////////////////////////////
+ BT_chk(); // v|[Oidrꌟô߁j
+ // ̒ŕKvI2C_m_initĂł܂
+
+ // A_v^LF[dxĎ
+ if( SW_pow_count > PWSW_POWON_TIME ) // dXCb`̂҂
+ {
+ // d
+ system_status.pwr_state = ON_CHECK; // ɉԃ`FbN͍iēdɓ
+ }
+
+ if( system_status.model != MODEL_JIKKI )
+ {
+ iic_mcu_stop( );
+ }
+
+ if( system_status.taikendai )
+ {
+ vreg_ctr[ VREG_C_HAL_OVW_CONT0 ] = vreg_ctr[ VREG_C_HAL_OVW_CONT1 ] = 0;
+ // d
+ wait_ms(46); // pmic̓dēdl̂
+ system_status.poweron_reason = RSN_PWSW;
+ system_status.pwr_state = ON_CHECK;
+ }
+ }
+ else
+ {
+ // A_v^Ȃ ///////////////////////////////
+ u8 irq_mask_original_1; // RTCA[ŋNȂ悤ɁB@Å荞݂ł͋NȂ
+
+ if( chg_led_override != 0 ) // ꂪ[ɂȂ܂ő҂ todo
+ {
+ return;
+ };
+
+ // ȓd͂ֈڍs
+ iic_mcu_stop( );
+ pm_chk_adapter();
+ PM_Chg_Stop();
+ bt_force_update = true;
+
+ while( RWST )
+ {;}
+
+ // 荞ݑ҂ŐQ //
+ RTCIMK = 1; // systickpC^[o^C}[荞݃}XN
+
+ CKC = bits8(0,0,0,0, 1,0,0,1);
+ OSMC = 0x00;
+#ifdef _DBG_CHK_OFF_LEAK_
+ {
+ // offpinݒ~X`FbN
+ 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
+ if( PM_EXTDC_n ) // ǂ^C~Oő}N邱Ƃ
+ {
+ STOP();
+ }
+
+ // N //
+ // N
+ // EKeyReturn荞݁id{^j
+ // ERTCA[iݕj
+
+ renge_flg_interval = 0;
+ hal_update();
+
+ OSMC = 0x01;
+ CKC = bits8(0,0,0,0, 1,0,0,0);
+
+ // NŔH
+ if( !PM_EXTDC_n ){
+ system_status.pwr_state = OFF; // OFFď[dĎ
+ }
+/* // 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 ){
+ // ȊŐ荞݂ŋNȂǁAł
+ // }
+*/
+ 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;
+ if( system_status.taikendai )
+ {
+ system_status.pwr_state = OFF_TRIG;
+ }
+
+ }
+ return;
+
+#if 0
+ default:
+ NOP( ); // 蓾ȂXe[g
+#endif
+
+ }
+}
+
+
+
+/*******************************************************//**
+ 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( ) == 0 )
+ {
+ // 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;
+ }
+ }
+ }
+}
+
+
+
+/* ========================================================
+ Ed{^
+ Edr
+ Edr
+ ł̋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
+}
+
+
+
+
+/* ========================================================
+ firm_update() task_status_immed^ Ԃ悤ɂ̂ł...
+ ======================================================== */
+task_status_immed tski_firm_update(){
+ firm_update();
+ return( ERR_SUCCESS );
+}
+
diff --git a/tags/SDK3.0(2.00)/user_define.h b/tags/SDK3.0(2.00)/user_define.h
new file mode 100644
index 0000000..8f11573
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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
+
+#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 & 0x00000110 )
+#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
+
+
+#define KR_SW_POW ( 1 << 3 )
+#define KR_SW_WIFI ( 1 << 4 )
+
+
+///////////////////////////////////////////////////////////
+
+#define INT_MSK0_IIC_M_DMA 0b0001000000000000
+#define INT_MSK0_SHELL 0b0000000010000000
+#define INT_MSK0_EXTDC 0b0000000001000000
+//#define INT_MSK0_SLP 0b0000000000000100 )
+//#define INT_MSK0_RSV 0b1110111100111011 )
+#define INT_MSK0_RSV 0b1110111100111111
+
+#define INT_MSK1_KR 0b0000100000000000
+#define INT_MSK1_RTCINTVAL 0b0000010000000000
+#define INT_MSK1_RTCALARM 0b0000001000000000
+#define INT_MSK1_ADC 0b0000000100000000
+#define INT_MSK1_IIC_CTR 0b0000000000001000
+#define INT_MSK1_IIC_MCU 0b0000000000000001
+#define INT_MSK1_RSV 0b1111000011110110
+
+#define INT_MSK2_WIFI_TX_KE3 0b00010000
+#define INT_MSK2L_RSV 0b11101111
+
+#define INT_MSK2_IIC_TWL ( 0b0000000100000000 )
+#define INT_MSK2_WIFI_TX_BSR ( 0b0000010000000000 )
+#define INT_MSK2_CODEC_PMIRQ ( 0b0000000000001000 )
+#define INT_MSK2_RSV 0b1111101111110111
+
+#endif
+
+
+
+#else
+// win32V~[V
+
+
+#endif
diff --git a/tags/SDK3.0(2.00)/voltable.h b/tags/SDK3.0(2.00)/voltable.h
new file mode 100644
index 0000000..6ff34ab
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/vreg_ctr.c b/tags/SDK3.0(2.00)/vreg_ctr.c
new file mode 100644
index 0000000..073ca5d
--- /dev/null
+++ b/tags/SDK3.0(2.00)/vreg_ctr.c
@@ -0,0 +1,570 @@
+/* ========================================================
+
+CTR MCU I2CWX^
+
+ ====================================================== */
+#include "incs.h"
+#include "vreg_ctr.h"
+#include "rtc.h"
+#include "led.h"
+#include "accero.h"
+#include "pm.h"
+#include "pool.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;
+
+
+
+// ********************************************************
+#ifdef _DBG_PEDO_AUTO_ENABLE_
+u8 vreg_ctr[VREG_C_ENDMARK_ + 16];
+#else
+u8 vreg_ctr[VREG_C_ENDMARK_];
+#endif
+
+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();
+
+
+
+// ********************************************************
+#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;
+}
+
+
+// ********************************************************
+// {̂̓dɃZbg܂
+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;
+// vreg_ctr[ VREG_C_VOL_CAL_MIN ] = 0x36; ŏ_I
+// vreg_ctr[ VREG_C_VOL_CAL_MAX ] = 0xFF - 0x36; d邽тɃftHglɂȂĂ܂
+ {
+ 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_hosu_set );
+ 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_COMMAND3 ):
+ switch ( data )
+ {
+ case ( 'r' ):
+ // 荞݃[`FSLCuĂԂ̂͋֎~
+ // }CRċNB@WX^ނB
+ renge_task_immed_add( tski_mcu_reset );
+ break;
+
+#ifdef _ENABLE_WDT_TEST_
+ case ( 'w' ):
+ // WDTōċNieXgj
+ while(1)
+ {
+ NOP();
+ }
+// mcu_wdt_reset; // ̃R}hgӖȂłI
+ break;
+#endif
+ case( 'p' ):
+ hosu_increment_if_necessary(); // A
+ break;
+ }
+
+// vreg_ctr[ VREG_C_COMMAND3 ] = data; // KvȂ
+ 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;
+
+ // 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();
+ 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(); // read only̏ɏBȂoOĂȂH
+ break;
+ }
+ }
+ 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();
+ vreg_ctr[ adrs ] ^= data;
+ EI();
+ irq_readed = true;
+ break;
+
+ case VREG_CX_FREE_DATA:
+ vreg_free_adrs ++;
+ break;
+
+ default:
+ break;
+ }
+}
+
+
+
+
+
+
+/******************************************************************************
+ 荞݂
+ 荞݃}XNKvƌƂłȎHڂɂȂ܂
+ *****************************************************************************/
+#if 0
+// }XNĂAtO͗Ă邪A荞݂͓ȂB
+#define set_irq( irqreg, bitpos ) \
+{ \
+ vreg_ctr[ irqreg ] |= bitpos; \
+ if( ( vreg_ctr[ irqreg+8 ] & bitpos ) == 0 ){ \
+ IRQ0_ast; \
+ } \
+}
+#endif
+
+// }XNĂAtOuĂȂvA荞ݓȂB
+void set_irq( u8 irqreg, u8 irq_flg )
+{
+ u8 tot;
+
+ if(( system_status.pwr_state == ON ) ||
+ ( system_status.pwr_state == SLEEP ))
+ {
+ // DI();
+ if( ( vreg_ctr[ irqreg + 8 ] & irq_flg ) == 0 ){
+ vreg_ctr[ irqreg ] |= irq_flg;
+ IRQ0_neg; // uグ...
+ // EI();
+ tot = 0;
+ while( !IRQ0 && ( ++tot != 0 ) ){;} // O.D.Ȃ̂łƂ̂҂ IRQ_mcu LɔĂƍ(s)
+ IRQ0_ast; // ƂB
+ }
+ }
+// EI();
+}
diff --git a/tags/SDK3.0(2.00)/vreg_ctr.h b/tags/SDK3.0(2.00)/vreg_ctr.h
new file mode 100644
index 0000000..2340bc2
--- /dev/null
+++ b/tags/SDK3.0(2.00)/vreg_ctr.h
@@ -0,0 +1,299 @@
+#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 )
+
+// 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,
+ VREG_C_HAL_OVW_DAT1,
+
+ 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/SDK3.0(2.00)/vreg_twl.c b/tags/SDK3.0(2.00)/vreg_twl.c
new file mode 100644
index 0000000..0bd0caa
--- /dev/null
+++ b/tags/SDK3.0(2.00)/vreg_twl.c
@@ -0,0 +1,150 @@
+/* ========================================================
+
+TWL݊I2CWX^
+
+ ======================================================== */
+#include "incs.h"
+#include "jhl_defs.h"
+#include "led.h"
+
+#include "vreg_twl.h"
+#include "vreg_ctr.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;
+
+
+/* ========================================================
+ 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();
+ 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/SDK3.0(2.00)/vreg_twl.h b/tags/SDK3.0(2.00)/vreg_twl.h
new file mode 100644
index 0000000..63cdd94
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/yav_mcu_bsr.plg b/tags/SDK3.0(2.00)/yav_mcu_bsr.plg
new file mode 100644
index 0000000..8f5ffe3
--- /dev/null
+++ b/tags/SDK3.0(2.00)/yav_mcu_bsr.plg
@@ -0,0 +1,175 @@
+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 -rd2 -qvjl2w -sainter_asm -zpb -no loader.c
+loader.c(141) : CC78K0R warning W0401: Conversion may lose significant digits
+loader.c(142) : CC78K0R warning W0401: Conversion may lose significant digits
+loader.c(174) : 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 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 -rd2 -qvjl2w -sainter_asm -zpb -no pm.c
+pm.c(493) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(784) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(788) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(818) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(839) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(905) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(914) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(1117) : CC78K0R warning W0401: Conversion may lose significant digits
+pm.c(1119) : 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 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 -rd2 -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 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 -rd2 -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 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 -rd2 -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 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 -rd2 -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 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 -rd2 -qvjl2w -sainter_asm -zpb -no i2c_mcu.c
+i2c_mcu.c(210) : 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 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 -rd2 -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 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 -rd2 -qvjl2w -sainter_asm -zpb -no led.c
+led.c(82) : CC78K0R warning W0745: Expected function prototype
+led.c(332) : 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 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 -rd2 -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 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 -rd2 -qvjl2w -sainter_asm -zpb -no vreg_ctr.c
+vreg_ctr.c(164) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(165) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(167) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(169) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(170) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(218) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(218) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(223) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(223) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(227) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(227) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(231) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(231) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_ctr.c(235) : 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 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 -rd2 -qvjl2w -sainter_asm -zpb -no vreg_twl.c
+vreg_twl.c(55) : CC78K0R warning W0401: Conversion may lose significant digits
+vreg_twl.c(59) : 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 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 -rd2 -qvjl2w -sainter_asm -zpb -no adc.c
+adc.c(101) : CC78K0R warning W0401: Conversion may lose significant digits
+adc.c(182) : CC78K0R warning W0401: Conversion may lose significant digits
+adc.c(228) : CC78K0R warning W0401: Conversion may lose significant digits
+adc.c(352) : CC78K0R warning W0401: Conversion may lose significant digits
+adc.c(474) : CC78K0R warning W0745: Expected function prototype
+adc.c(503) : CC78K0R warning W0401: Conversion may lose significant digits
+adc.c(508) : 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 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 -rd2 -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 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 -rd2 -qvjl2w -sainter_asm -zpb -no accero.c
+accero.c(105) : 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 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(280) : CC78K0R warning W0401: Conversion may lose significant digits
+self_flash.c(281) : 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 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 -rd2 -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 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 -rd2 -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 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 -rd2 -qvjl2w -sainter_asm -zpb -no task_misc.c
+task_misc.c(296) : CC78K0R warning W0401: Conversion may lose significant digits
+task_misc.c(303) : CC78K0R warning W0401: Conversion may lose significant digits
+task_misc.c(308) : CC78K0R warning W0401: Conversion may lose significant digits
+task_misc.c(309) : CC78K0R warning W0401: Conversion may lose significant digits
+task_misc.c(310) : CC78K0R warning W0401: Conversion may lose significant digits
+task_misc.c(311) : CC78K0R warning W0401: Conversion may lose significant digits
+task_misc.c(312) : CC78K0R warning W0401: Conversion may lose significant digits
+task_misc.c(314) : CC78K0R warning W0401: Conversion may lose significant digits
+task_misc.c(325) : 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 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 -rd2 -qvjl2w -sainter_asm -zpb -no task_sys.c
+task_sys.c(208) : CC78K0R warning W0401: Conversion may lose significant digits
+task_sys.c(584) : 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 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 -rd2 -qvjl2w -sainter_asm -zpb -no pedo_alg_thre_det2.c
+pedo_alg_thre_det2.c(97) : CC78K0R warning W0745: Expected function prototype
+pedo_alg_thre_det2.c(113) : 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 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 -rd2 -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 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 -rd2 -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 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 -rd2 -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 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 -rd2 -qvjl2w -sainter_asm -zpb -no led_pow.c
+led_pow.c(99) : CC78K0R warning W0401: Conversion may lose significant digits
+led_pow.c(104) : CC78K0R warning W0401: Conversion may lose significant digits
+led_pow.c(155) : CC78K0R warning W0401: Conversion may lose significant digits
+led_pow.c(215) : CC78K0R warning W0401: Conversion may lose significant digits
+led_pow.c(244) : 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 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 -rd2 -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 inter_asm\hal.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 -w0 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
+Link complete, 0 error(s) and 0 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) : 59
diff --git a/tags/SDK3.0(2.00)/yav_mcu_bsr.pri b/tags/SDK3.0(2.00)/yav_mcu_bsr.pri
new file mode 100644
index 0000000..d15dfe8
--- /dev/null
+++ b/tags/SDK3.0(2.00)/yav_mcu_bsr.pri
@@ -0,0 +1,1066 @@
+[Project.ID]
+Ver=200
+Target=IDK0R32G
+[Configuration]
+Chip=uPD79F0104
+Internal Rom=32KB
+Internal Ram=1536B
+Clock=Target
+Sub Clock=Target
+Peripheral Break=0x3
+Firm Clock=System
+Flash Programming=Permit
+Low-voltage Flash Rewriting=On
+Fail Safe Break=0x2000
+Port=1
+NMI=OFF
+TRESET=OFF
+IRESET=OFF
+WAIT=OFF
+SysClock=None
+SubClock=None
+[Mapping]
+Count=0
+[Main]
+Geometry=198, 198, 960, 728
+Window=Max
+MDI_MAX=OFF
+Button=ON
+Mode=Auto
+Trace=Uncond ON
+Trace2=Non Stop
+Coverage=OFF
+Timer=OFF
+Tracer=OFF
+[Load File]
+Dir=\\tsclient\C\78k_data\yav-mcu-basara\branches\sim\
+SaveFilter=0
+Start=0
+End=0
+LoadFilter=5
+Offset=0
+Object=ON
+Symbol=ON
+Erase=OFF
+HighSpeed=OFF
+Symbol Reset=ON
+CPU Reset=ON
+File1=\\tsclient\C\78k_data\yav-mcu-basara\branches\sim\bsr.lmf
+LoadFilter1=5
+Offset1=0
+Object1=ON
+Symbol1=ON
+Erase1=OFF
+HighSpeed1=OFF
+CPU Reset1=ON
+Symbol Reset1=ON
+[View File]
+Dir=\\tsclient\C\78k_data\yav-mcu-basara\branches\sim\
+Filter=Source
+[Debugger Option]
+Source Path="\\tsclient\C\78k_data\yav-mcu-basara\branches\sim\renge"
+Symbol Size=Byte
+Symbol Format=Hex
+Register Name=Func
+Offset Label=OFF
+Offset Mnemonic=ON
+Tab Count=4
+Tab Size1=*.*, 8
+Tab Size2=*.c, 8
+Tab Size3=*.s, 8
+Tab Size4=*.asm, 8
+Default Source=*.c;*.s;*.asm
+Default Module=*.lnk;*.lmf
+Startup Start=_@cstart
+Startup End=_@cend
+Main Symbol=_main
+Symbol Type=OFF
+Language=C
+Kanji=SJIS
+[Source]
+Geometry=29, 167, 923, 884
+Window=Normal
+DispStart=75
+CaretPos=76,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=230, 86, 923, 884
+Window=Normal
+DispStart=85
+CaretPos=420,0
+Mode=Normal
+DispFile=\\tsclient\C\78k_data\yav-mcu-basara\branches\sim\vreg_ctr.c
+Accumulative=ON
+[Source2]
+Geometry=426, 148, 923, 884
+Window=Normal
+DispStart=183
+CaretPos=244,0
+Mode=Normal
+DispFile=\\tsclient\C\78k_data\yav-mcu-basara\branches\sim\i2c_ctr.c
+Accumulative=ON
+[Assemble]
+Geometry=75, 75, 712, 548
+Window=Normal
+DispStart=6880
+CaretPos=3440,0
+Address1=
+Address2=
+Address3=
+Address4=
+Address5=
+Address6=
+Address7=
+Address8=
+Address9=
+Address10=
+Address11=
+Address12=
+Address13=
+Address14=
+Address15=
+Address16=
+Data1=
+Data2=
+Data3=
+Data4=
+Data5=
+Data6=
+Data7=
+Data8=
+Data9=
+Data10=
+Data11=
+Data12=
+Data13=
+Data14=
+Data15=
+Data16=
+Case=ON
+Scan=OFF
+Direction=Down
+FindStart=
+FindEnd=
+SaveRange=Screen
+SaveStart=
+SaveEnd=
+[Memory]
+Geometry=672, -2, 665, 836
+Window=Normal
+Boundary=163
+Format=Hex
+Mode=Byte
+Endian=Little
+Ascii=OFF
+Idtag=OFF
+Address=
+DispStart=000FFAE0
+CaretPosData=44, 65490
+CaretPosAscii=0, 65424
+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, 400, 300
+Window=Normal
+Boundary=13762687
+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=1328, 14, 250, 303
+Window=Normal
+Mode=Hex
+Boundary=110
+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=1097, 414, 440, 666
+Window=Normal
+Boundary=13762700
+0=.pwsw_timeout,D,N,A,+,1
+1=.krmk,P,S,A,+,1
+2=.0xffd32,P,L,A,+,1
+3=.task_interval,P,N,A,+,1
+4=.SW_pow_count,P,N,A,+,1
+5=+system_status,.,N,A,-,1
+Line=6
+[Quick Watch]
+0=system_status,P,A,1
+1=tasks,P,A,1
+2=0xFD32,P,A,1
+3=0fd32h,P,A,1
+4=0xffd32,P,A,1
+5=mrmk,P,A,1
+6=krmk,P,A,1
+7=pwsw_timeout,P,A,1
+8=SW_pow_count,P,A,1
+9=task_interval,P,A,1
+10=
+11=
+12=
+13=
+14=
+15=
+[Software Break]
+Geometry=0, 0, 0, 0
+Window=Hide
+Width=150 30 200 100
+Name0=Swb00001
+Address0=task_sys.c#_tsk_sys+0x2e2
+Window0=ASM
+Status0=ON
+Name1=Swb00002
+Address1=task_sys.c#_tsk_sys+0xa7
+Window1=ASM
+Status1=ON
+Name2=Swb00003
+Address2=task_sys.c#_tsk_sys+0x83
+Window2=ASM
+Status2=ON
+Name3=Swb00004
+Address3=task_sys.c#_tsk_sys+0x49
+Window3=ASM
+Status3=ON
+Name4=Swb00007
+Address4=task_sys.c#_tsk_sys+0x5f
+Window4=ASM
+Status4=ON
+Name5=Swb00005
+Address5=vreg_ctr.c#_vreg_ctr_write+0x353
+Window5=ASM
+Status5=ON
+Name6=Swb00006
+Address6=vreg_ctr.c#_vreg_ctr_write+0x343
+Window6=ASM
+Status6=ON
+Count=7
+[Reset]
+Debugger=ON
+Symbol=OFF
+Target CPU=OFF
+[Symbol]
+Data1=9F , 16
+[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/SDK3.0(2.00)/yav_mcu_bsr.prj b/tags/SDK3.0(2.00)/yav_mcu_bsr.prj
new file mode 100644
index 0000000..85b660b
--- /dev/null
+++ b/tags/SDK3.0(2.00)/yav_mcu_bsr.prj
@@ -0,0 +1,1062 @@
+[ProjectManager]
+Version=6.00
+Path=C:\78k_data\yav-mcu-basara\branches\sim\
+Title=yav-mcu
+Series=78K0R.PM
+Device=uPD79F0104
+DeviceVer=E1.00b
+DebugMode=1
+Target=bsr.lmf
+[BuildMode0]
+BuildModeName=Debug Build
+TargetFile=0
+[BuildMode1]
+BuildModeName=Release Build
+TargetFile=0
+[Tools]
+MakeFile=yav_mcu_bsr.mak
+Debugger=C:\Program Files (x86)\NEC Electronics Tools\ID78K0R-QB\V3.61\BIN\IDK0R32G.EXE
+DebOption=
+DebCpuReset=1
+DebSymReset=1
+MuitiLoad=0
+LoadPrjNum=0
+CheckVersion=CC78K0R|W2.13;RA78K0R|W1.33
+[Option.IDK0R32G]
+File=\\tsclient\C\78k_data\yav-mcu-basara\branches\sim\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
+[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
+KA=1
+KS=0
+KX=0
+LF=0
+LW=132
+LL=0
+LT=8
+Z=0
+CommandFile=0
+RA_OPT=
+[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=
+[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
+[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
+[IncFile]
+Include1=incs_loader.h
+Include2=jhl_defs.h
+Include3=config.h
+Include4=user_define.h
+Include5=bsr_system.h
+Include6=renge\renge.h
+Include7=renge\renge_defs.h
+Include8=renge\renge_task_immediate.h
+Include9=vreg_ctr.h
+Include10=vreg_twl.h
+Include11=loader.h
+Include12=i2c_mcu.h
+Include13=WDT.h
+Include14=fsl_user.h
+Include15=i2c_ctr.h
+Include16=pm.h
+Include17=rtc.h
+Include18=reboot.h
+Include19=magic.h
+Include20=incs.h
+Include21=i2c_twl.h
+Include22=accero.h
+Include23=pedometer.h
+Include24=sw.h
+Include25=adc.h
+Include26=led.h
+Include27=batt_params.h
+Include28=pool.h
+Include29=i2c_twl_defs.h
+Include30=voltable.h
+Include31=renge\renge_task_intval.h
+Include32=self_flash.h
+Include33=pedo_lpf_coeff.h
+Include34=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h
+Include35=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h
+Include36=sim\simOnWin.h
+Include37=sim\sfrAlias.h
+Include38=hal.h
+Include39=sim\sim_interrupt_decrare.c
+[Options.CC78K0R 0]
+Version=210
+Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Memorymodel=1
+Flashobj=0
+FlashStartadr=
+FlashBranchStartadr=
+Mirror=0
+Saddrglobalchk=0
+Saddrglobal=1066
+Saddrstaticchk=0
+Saddrstatic=1072
+Bitfieldmsb=0
+Onebytechk=0
+Pacstructchk=0
+AssignROMchk=0
+AssignROM=0
+Maxoptimizechk=0
+Maxoptimize=1104
+Charunexpandchk=1
+Unsignedchar=0
+Usesaddrchk=0
+Autoallocationchk=1
+Jumpoptimize=1
+Librarycallchk=0
+Librarycall=1129
+Aggressivechk=1
+Relativebranchchk=1
+Debugoptchk=0
+Outdebugchk=1
+Outdebug=1153
+Outasmsrccmb0=inter_asm
+Outasmsrccmb1=bsr.asm
+Outasmsrcchk=1
+Outasmsrc=1158
+Outasmoptall=1
+Common=0
+Outerrlistchk=0
+Outerrlist=1174
+Xreference=0
+Preprocess=0
+Prenocomment=0
+Predefine=0
+Preifdef=1
+Preinclude=0
+Preline=1
+Prenumber=1
+Formfeed=0
+Columns=132
+Lines=0
+Tablength=8
+Ansi=0
+Cpraspras=1
+Commentnest=0
+Intunexpand=0
+Kanjicode=1210
+Verbose=0
+CommandFile=0
+Warninglevel=0
+Startupchk=1
+Fixation=1
+FarROMization=0
+Objectsel=1305
+Librarychk=1
+Floatingpoint=0
+Muldivunit=1
+Mulunit=1
+Startup=s0rml.rel
+Library1=cl0rdm.lib
+Library2=cl0rm.lib
+Library3=cl0rmf.lib
+VfiFileBoot0=
+VfiFileBoot1=boot.vfi
+VF78K0Rchk=0
+VF78K0Rvs=
+[Options.CC78K0R 1]
+Version=210
+Memorymodel=2
+Flashobj=0
+FlashStartadr=
+FlashBranchStartadr=
+Mirror=0
+Saddrglobalchk=0
+Saddrglobal=1066
+Saddrstaticchk=0
+Saddrstatic=1072
+Bitfieldmsb=0
+Onebytechk=0
+Pacstructchk=0
+AssignROMchk=0
+AssignROM=0
+Maxoptimizechk=0
+Maxoptimize=1104
+Charunexpandchk=1
+Unsignedchar=0
+Usesaddrchk=0
+Autoallocationchk=1
+Jumpoptimize=1
+Librarycallchk=1
+Librarycall=1128
+Aggressivechk=1
+Relativebranchchk=0
+Debugoptchk=0
+Outdebugchk=0
+Outdebug=1153
+Outasmsrcchk=0
+Outasmsrc=1157
+Outasmoptall=1
+Common=0
+Outerrlistchk=0
+Outerrlist=1173
+Xreference=0
+Preprocess=0
+Prenocomment=0
+Predefine=0
+Preifdef=1
+Preinclude=0
+Preline=1
+Prenumber=1
+Formfeed=0
+Columns=132
+Lines=0
+Tablength=8
+Ansi=0
+Cpraspras=0
+Commentnest=0
+Intunexpand=0
+Kanjicode=1210
+Verbose=0
+CommandFile=0
+Warninglevel=1
+Startupchk=1
+Fixation=1
+FarROMization=1
+Objectsel=1305
+Librarychk=1
+Floatingpoint=0
+Muldivunit=1
+Mulunit=1
+Startup=s0rll.rel
+Library1=cl0rdm.lib
+Library2=cl0rm.lib
+Library3=cl0rmf.lib
+VF78K0Rchk=0
+VF78K0Rvs=
+[Options.CC78K0R 2]
+Version=210
+Define0=
+Define1=_debug_,_TEG_,proc_is_ke3
+Define2=_debug_,_TEG_,proc_is_ke3,%time%
+Define3=_TEG_,proc_is_ke3
+Define4=proc_is_ke3
+Include0=renge,C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r
+Include1=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Include2=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Memorymodel=1
+Flashobj=0
+FlashStartadr=
+FlashBranchStartadr=
+Mirror=0
+Saddrglobalchk=1
+Saddrglobal=1063
+Saddrstaticchk=0
+Saddrstatic=1072
+Bitfieldmsb=0
+Onebytechk=0
+Pacstructchk=0
+AssignROMchk=0
+AssignROM=0
+Maxoptimizechk=0
+Maxoptimize=1104
+Charunexpandchk=0
+Unsignedchar=0
+Usesaddrchk=0
+Autoallocationchk=1
+Jumpoptimize=1
+Librarycallchk=1
+Librarycall=1129
+Aggressivechk=1
+Relativebranchchk=0
+Debugoptchk=0
+Outdebugchk=1
+Outdebug=1153
+Outobjectcmb0=
+Outobjectcmb1=obj
+Outasmsrccmb0=inter_asm
+Outasmsrccmb1=bsr.asm
+Outasmsrcchk=1
+Outasmsrc=1158
+Outasmoptall=1
+Common=0
+Outerrlistchk=0
+Outerrlist=1174
+Xreference=0
+Preprocess=0
+Prenocomment=0
+Predefine=0
+Preifdef=1
+Preinclude=1
+Preline=1
+Prenumber=1
+Formfeed=0
+Columns=132
+Lines=0
+Tablength=8
+Ansi=0
+Cpraspras=1
+Commentnest=0
+Intunexpand=1
+Kanjicode=1210
+Verbose=0
+CommandFile=0
+Warninglevel=1
+Startupchk=1
+Fixation=0
+FarROMization=0
+Objectsel=1305
+Librarychk=1
+Floatingpoint=0
+Muldivunit=1
+Mulunit=1
+Startup=s0rm.rel
+Library1=cl0rdm.lib
+Library2=cl0rm.lib
+Library3=cl0rmf.lib
+VfiFileBoot0=
+VfiFileBoot1=boot.vfi
+VF78K0Rchk=0
+VF78K0Rvs=
+[Options.CC78K0R 3]
+Version=210
+Define0=_debug_,proc_is_bsr,_TEG_
+Define1=_debug_,proc_is_bsr
+Define2=proc_is_bsr
+Define3=_TEG_,proc_is_ke3
+Define4=proc_is_ke3
+Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Memorymodel=1
+Flashobj=0
+FlashStartadr=
+FlashBranchStartadr=
+Mirror=0
+Saddrglobalchk=0
+Saddrglobal=1066
+Saddrstaticchk=0
+Saddrstatic=1072
+Bitfieldmsb=0
+Onebytechk=0
+Pacstructchk=0
+AssignROMchk=0
+AssignROM=0
+Maxoptimizechk=0
+Maxoptimize=1104
+Charunexpandchk=1
+Unsignedchar=0
+Usesaddrchk=0
+Autoallocationchk=1
+Jumpoptimize=1
+Librarycallchk=0
+Librarycall=1129
+Aggressivechk=1
+Relativebranchchk=1
+Debugoptchk=0
+Outdebugchk=1
+Outdebug=1153
+Outasmsrccmb0=inter_asm
+Outasmsrccmb1=bsr.asm
+Outasmsrcchk=1
+Outasmsrc=1158
+Outasmoptall=1
+Common=0
+Outerrlistchk=0
+Outerrlist=1174
+Xreference=0
+Preprocess=0
+Prenocomment=0
+Predefine=0
+Preifdef=1
+Preinclude=0
+Preline=1
+Prenumber=1
+Formfeed=0
+Columns=132
+Lines=0
+Tablength=8
+Ansi=0
+Cpraspras=1
+Commentnest=0
+Intunexpand=0
+Kanjicode=1210
+Verbose=0
+CommandFile=0
+Warninglevel=0
+Startupchk=1
+Fixation=1
+FarROMization=0
+Objectsel=1305
+Librarychk=1
+Floatingpoint=0
+Muldivunit=1
+Mulunit=1
+Startup=s0rml.rel
+Library1=cl0rdm.lib
+Library2=cl0rm.lib
+Library3=cl0rmf.lib
+VfiFileBoot0=
+VfiFileBoot1=boot.vfi
+VF78K0Rchk=0
+VF78K0Rvs=
+[Options.CC78K0R 4]
+Version=210
+Define0=proc_is_bsr
+Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Memorymodel=1
+Flashobj=0
+FlashStartadr=
+FlashBranchStartadr=
+Mirror=0
+Saddrglobalchk=0
+Saddrglobal=1066
+Saddrstaticchk=0
+Saddrstatic=1072
+Bitfieldmsb=0
+Onebytechk=0
+Pacstructchk=0
+AssignROMchk=0
+AssignROM=0
+Maxoptimizechk=0
+Maxoptimize=1104
+Charunexpandchk=1
+Unsignedchar=0
+Usesaddrchk=0
+Autoallocationchk=1
+Jumpoptimize=1
+Librarycallchk=0
+Librarycall=1129
+Aggressivechk=1
+Relativebranchchk=1
+Debugoptchk=0
+Outdebugchk=1
+Outdebug=1153
+Outasmsrccmb0=inter_asm
+Outasmsrccmb1=bsr.asm
+Outasmsrcchk=1
+Outasmsrc=1158
+Outasmoptall=1
+Common=0
+Outerrlistchk=0
+Outerrlist=1174
+Xreference=0
+Preprocess=0
+Prenocomment=0
+Predefine=0
+Preifdef=1
+Preinclude=0
+Preline=1
+Prenumber=1
+Formfeed=0
+Columns=132
+Lines=0
+Tablength=8
+Ansi=0
+Cpraspras=1
+Commentnest=0
+Intunexpand=0
+Kanjicode=1210
+Verbose=0
+CommandFile=0
+Warninglevel=0
+Startupchk=1
+Fixation=1
+FarROMization=0
+Objectsel=1305
+Librarychk=1
+Floatingpoint=0
+Muldivunit=1
+Mulunit=1
+Startup=s0rml.rel
+Library1=cl0rdm.lib
+Library2=cl0rm.lib
+Library3=cl0rmf.lib
+VfiFileBoot0=
+VfiFileBoot1=boot.vfi
+VF78K0Rchk=0
+VF78K0Rvs=
+[Options.CC78K0R 5]
+Version=210
+Define0=
+Define1=_debug_,proc_is_bsr,_TEG_,_WM0_
+Define2=_debug_,proc_is_bsr,_TEG_,_WM0
+Define3=_debug_,proc_is_bsr,_TEG_
+Define4=_debug_,proc_is_bsr
+Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Include1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
+Memorymodel=1
+Flashobj=0
+FlashStartadr=
+FlashBranchStartadr=
+Mirror=0
+Saddrglobalchk=0
+Saddrglobal=1066
+Saddrstaticchk=0
+Saddrstatic=1072
+Bitfieldmsb=0
+Onebytechk=0
+Pacstructchk=0
+AssignROMchk=0
+AssignROM=0
+Maxoptimizechk=0
+Maxoptimize=1104
+Charunexpandchk=1
+Unsignedchar=0
+Usesaddrchk=0
+Autoallocationchk=1
+Jumpoptimize=1
+Librarycallchk=0
+Librarycall=1129
+Aggressivechk=1
+Relativebranchchk=1
+Debugoptchk=0
+Outdebugchk=1
+Outdebug=1153
+Outasmsrccmb0=inter_asm
+Outasmsrccmb1=bsr.asm
+Outasmsrcchk=1
+Outasmsrc=1158
+Outasmoptall=1
+Common=0
+Outerrlistchk=0
+Outerrlist=1174
+Xreference=0
+Preprocess=0
+Prenocomment=0
+Predefine=0
+Preifdef=1
+Preinclude=0
+Preline=1
+Prenumber=1
+Formfeed=0
+Columns=132
+Lines=0
+Tablength=8
+Ansi=0
+Cpraspras=1
+Commentnest=0
+Intunexpand=0
+Kanjicode=1210
+Verbose=0
+CommandFile=0
+Warninglevel=0
+Startupchk=1
+Fixation=1
+FarROMization=0
+Objectsel=1305
+Librarychk=1
+Floatingpoint=0
+Muldivunit=1
+Mulunit=1
+Startup=s0rml.rel
+Library1=cl0rdm.lib
+Library2=cl0rm.lib
+Library3=cl0rmf.lib
+VfiFileBoot0=
+VfiFileBoot1=boot.vfi
+VF78K0Rchk=0
+VF78K0Rvs=
+[Options.LK78K0R 0]
+Version=100
+O0=bsr_k0r.lmf
+O1=bsr.lmf
+O2=flash.lmf
+O3=a.lmf
+G=1
+E=0
+E0=flash.elk
+E1=a.elk
+GO=1
+GOValue=85
+GOStart=FC00
+GOSizeValue=1024
+GI=1
+GIValue=FFFFFFFFFFFFFFFFFFFF
+CCZA=0
+MemInfoCheck=1
+P=1
+P0=bsr_k0r.map
+P1=bsr.map
+P2=flash.map
+P3=a.map
+MI=0
+GB=1
+GBValue=6EFBFF
+KM=1
+KD=0
+KP=1
+KL=0
+LF=0
+LL=0
+B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
+D0=bsr_mcu.dr
+D1=user_area.dr
+S=1
+W=0
+SELFCheck=1
+SELF=0
+ZB=
+Etcetera0=
+Etcetera1=boot.lmf
+CommandFile=0
+[Options.LK78K0R 1]
+Version=100
+O0=a.lmf
+G=0
+E=0
+E0=a.elk
+GO=0
+GOValue=
+GOStart=FC00
+GOSizeValue=1024
+GI=0
+GIValue=FFFFFFFFFFFFFFFFFFFF
+CCZA=1
+MemInfoCheck=0
+P=1
+P0=a.map
+MI=0
+GB=0
+GBValue=
+KM=1
+KD=1
+KP=0
+KL=0
+LF=0
+LL=0
+S=0
+W=1
+SELFCheck=0
+SELF=0
+ZB=
+CommandFile=0
+[Options.LK78K0R 2]
+Version=100
+O0=bsr.lmf
+O1=bsr_k0r.lmf
+O2=flash.lmf
+O3=a.lmf
+G=1
+E=0
+E0=flash.elk
+E1=a.elk
+GO=0
+GOValue=85
+GOStart=FC00
+GOSizeValue=1024
+GI=1
+GIValue=1B339499E033F240BFAA
+CCZA=0
+MemInfoCheck=1
+P=1
+P0=bsr_k0r.map
+P1=bsr.map
+P2=flash.map
+P3=a.map
+MI=0
+GB=1
+GBValue=7EFBFF
+KM=1
+KD=0
+KP=0
+KL=0
+LF=0
+LL=0
+B0=C:\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\lib78k0r\fsl.lib
+B1=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
+D0=bsr_mcu.dr
+D1=user_area.dr
+S=1
+W=0
+SELFCheck=0
+SELF=0
+ZB=
+Etcetera0=
+Etcetera1=boot.lmf
+CommandFile=0
+OFILE=C:\78k_data\yav-mcu-basara\branches\sim\bsr.lmf
+[Options.LK78K0R 3]
+Version=100
+O0=bsr_bsr.lmf
+O1=bsr_k0r.lmf
+O2=bsr.lmf
+O3=flash.lmf
+O4=a.lmf
+G=1
+E=0
+E0=flash.elk
+E1=a.elk
+GO=1
+GOValue=85
+GOStart=FC00
+GOSizeValue=1024
+GI=1
+GIValue=FFFFFFFFFFFFFFFFFFFF
+CCZA=0
+MemInfoCheck=1
+P=1
+P0=bsr_bsr.map
+P1=bsr_k0r.map
+P2=bsr.map
+P3=flash.map
+P4=a.map
+MI=0
+GB=1
+GBValue=6EFBFF
+KM=1
+KD=0
+KP=1
+KL=0
+LF=0
+LL=0
+B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
+D0=bsr_mcu.dr
+D1=user_area.dr
+S=1
+W=2
+SELFCheck=0
+SELF=0
+ZB=
+Etcetera0=
+Etcetera1=boot.lmf
+CommandFile=0
+[Options.LK78K0R 4]
+Version=100
+O0=bsr_k0r.lmf
+O1=bsr.lmf
+O2=flash.lmf
+O3=a.lmf
+G=1
+E=0
+E0=flash.elk
+E1=a.elk
+GO=1
+GOValue=85
+GOStart=FC00
+GOSizeValue=1024
+GI=1
+GIValue=FFFFFFFFFFFFFFFFFFFF
+CCZA=0
+MemInfoCheck=1
+P=1
+P0=bsr_k0r.map
+P1=bsr.map
+P2=flash.map
+P3=a.map
+MI=0
+GB=1
+GBValue=6EFBFF
+KM=1
+KD=0
+KP=1
+KL=0
+LF=0
+LL=0
+B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
+D0=bsr_mcu.dr
+D1=user_area.dr
+S=1
+W=0
+SELFCheck=1
+SELF=0
+ZB=
+Etcetera0=
+Etcetera1=boot.lmf
+CommandFile=0
+[Options.LK78K0R 5]
+Version=100
+O0=bsr_bsr.lmf
+O1=bsr_k0r.lmf
+O2=bsr.lmf
+O3=flash.lmf
+O4=a.lmf
+G=1
+E=0
+E0=flash.elk
+E1=a.elk
+GO=1
+GOValue=85
+GOStart=FC00
+GOSizeValue=1024
+GI=1
+GIValue=FFFFFFFFFFFFFFFFFFFF
+CCZA=0
+MemInfoCheck=1
+P=1
+P0=bsr_bsr.map
+P1=bsr_k0r.map
+P2=bsr.map
+P3=flash.map
+P4=a.map
+MI=0
+GB=1
+GBValue=6EFBFF
+KM=1
+KD=0
+KP=1
+KL=0
+LF=0
+LL=0
+B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib
+D0=bsr_mcu.dr
+D1=user_area.dr
+S=1
+W=2
+SELFCheck=0
+SELF=0
+ZB=
+Etcetera0=
+Etcetera1=boot.lmf
+CommandFile=0
+[Options.LCNV78K0R 0]
+Version=100
+LCNV_GO=0
+E=0
+CommandFile=0
+[Options.LCNV78K0R 1]
+Version=100
+LCNV_GO=0
+E=0
+CommandFile=0
+[Options.LCNV78K0R 2]
+Version=100
+LCNV_GO=0
+O0=inter_asm
+E=0
+CommandFile=0
+[Options.LCNV78K0R 3]
+Version=100
+LCNV_GO=0
+E=0
+CommandFile=0
+[Options.LCNV78K0R 4]
+Version=100
+LCNV_GO=0
+E=0
+CommandFile=0
+[Options.LCNV78K0R 5]
+Version=100
+LCNV_GO=0
+E=0
+CommandFile=0
+[Options.78K0R]
+BuildMode=2
+BuildMode2=K0R_dbg
+BuildMode3=BSR_dbg
+BuildMode4=BSR_rel
+BuildMode5=BSR_WM0
+DefaultMode2=1
+DefaultMode3=1
+DefaultMode4=1
+DefaultMode5=1
diff --git a/tags/SDK3.0(2.00)/yav_mcu_bsr.prk b/tags/SDK3.0(2.00)/yav_mcu_bsr.prk
new file mode 100644
index 0000000..6c71169
--- /dev/null
+++ b/tags/SDK3.0(2.00)/yav_mcu_bsr.prk
@@ -0,0 +1,15 @@
+[ProjectManager]
+FrameMax=0
+FrameX=402
+FrameY=228
+FrameCX=1440
+FrameCY=895
+OpenFile1=ProjectWindow
+PrjPos=0,0,706,0,291
+OpenFile2=task_sys.c,0,225,225,1395,726,0,369,0,0
+OpenFile3=config.h,0,0,0,1170,501,24,24,24,0
+OpenFile4=OutputWindow
+OutputPos=0,16,707,587,1440
+ActivePRJ=yav_mcu_bsr.prj
+[ProjectWindow]
+ProjectWindowDispType=0
diff --git a/tags/SDK3.0(2.00)/yav_mcu_bsr.prw b/tags/SDK3.0(2.00)/yav_mcu_bsr.prw
new file mode 100644
index 0000000..7c0bbd6
--- /dev/null
+++ b/tags/SDK3.0(2.00)/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/SDK3.0(2.00)/yav_mcu_bsr.sdb b/tags/SDK3.0(2.00)/yav_mcu_bsr.sdb
new file mode 100644
index 0000000..72a55dd
--- /dev/null
+++ b/tags/SDK3.0(2.00)/yav_mcu_bsr.sdb
@@ -0,0 +1,298 @@
+[SdbInfo]
+Ver=5
+[loader.c]
+T=4e0a86c1
+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=magic.h
+[pm.c]
+T=4e1c1434
+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
+[i2c_ctr.c]
+T=4e1d54ae
+1=config.h
+2=incs.h
+[main.c]
+T=4e0af952
+1=incs_loader.h
+2=WDT.h
+3=rtc.h
+4=pm.h
+5=accero.h
+6=led.h
+7=adc.h
+8=pool.h
+[magic.c]
+T=4e1d56d9
+1=config.h
+2=magic.h
+[WDT.c]
+T=4dfae637
+1=incs_loader.h
+[i2c_mcu.c]
+T=4e1d47dd
+1=incs_loader.h
+2=i2c_mcu.h
+[i2c_twl.c]
+T=4e0c1e90
+1=config.h
+2=incs.h
+3=i2c_twl_defs.h
+4=i2c_twl.h
+[led.c]
+T=4dfafb99
+1=incs.h
+2=led.h
+[rtc.c]
+T=4dfb0204
+1=incs.h
+[vreg_ctr.c]
+T=4e1a3d56
+1=incs.h
+2=vreg_ctr.h
+3=rtc.h
+4=led.h
+5=accero.h
+6=pm.h
+7=pool.h
+8=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h
+9=fsl_user.h
+[vreg_twl.c]
+T=4df868b8
+1=incs.h
+2=jhl_defs.h
+3=led.h
+4=vreg_twl.h
+5=vreg_ctr.h
+[adc.c]
+T=4e1c11e5
+1=incs.h
+2=adc.h
+3=pm.h
+4=led.h
+5=vreg_twl.h
+6=voltable.h
+[renge\renge.c]
+T=4e093f8f
+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=sim\simOnWin.h
+8=bsr_system.h
+[accero.c]
+T=4dff0001
+1=config.h
+2=incs.h
+3=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h
+[self_flash.c]
+T=4e166b67
+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=pool.h
+6=magic.h
+7=pm.h
+[sw.c]
+T=4e166bf3
+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=4dfae637
+1=incs_loader.h
+2=renge\renge.h
+3=pm.h
+4=accero.h
+[task_misc.c]
+T=4e1c12df
+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=4e1a935d
+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
+[pedo_alg_thre_det2.c]
+T=4e1a3cda
+1=incs.h
+2=..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h
+3=accero.h
+4=pedometer.h
+5=pedo_lpf_coeff.h
+6=pool.h
+[ini_VECT.c]
+T=4dfaf66c
+1=config.h
+[task_status.c]
+T=4e1abbad
+1=incs_loader.h
+2=renge\renge.h
+3=hal.h
+4=pm.h
+5=accero.h
+6=adc.h
+7=i2c_mcu.h
+8=led.h
+[led_cam.c]
+T=4dfae24c
+1=incs.h
+2=led.h
+[led_pow.c]
+T=4dfae637
+1=incs.h
+2=led.h
+[hal.c]
+T=4e1d5591
+1=incs_loader.h
+[incs_loader.h]
+T=4e156766
+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
+9=loader.h
+10=i2c_mcu.h
+11=WDT.h
+[jhl_defs.h]
+T=4df868b8
+1=config.h
+[config.h]
+T=4e16b88c
+[user_define.h]
+T=4e169edd
+[bsr_system.h]
+T=4df868b8
+[renge\renge.h]
+T=4df868b6
+1=renge\renge_defs.h
+2=renge\renge_task_immediate.h
+[renge\renge_defs.h]
+T=4dfae85a
+[renge\renge_task_immediate.h]
+T=4df868b6
+1=renge\renge_defs.h
+[vreg_ctr.h]
+T=4e1c100c
+1=config.h
+[vreg_twl.h]
+T=4df868b8
+[loader.h]
+T=4df868b8
+[i2c_mcu.h]
+T=4df868b8
+[WDT.h]
+T=4df868b8
+[fsl_user.h]
+T=4dfea7e9
+[i2c_ctr.h]
+T=4df868b9
+[pm.h]
+T=4dfef02d
+[rtc.h]
+T=4df868b9
+[reboot.h]
+T=4df868b8
+[magic.h]
+T=4df868b8
+[incs.h]
+T=4e15675d
+1=sim\simOnWin.h
+2=jhl_defs.h
+3=user_define.h
+4=hal.h
+5=bsr_system.h
+6=renge\renge.h
+7=loader.h
+8=vreg_ctr.h
+9=vreg_twl.h
+10=i2c_mcu.h
+11=i2c_twl.h
+12=rtc.h
+13=accero.h
+14=pm.h
+15=sw.h
+16=adc.h
+17=WDT.h
+[i2c_twl.h]
+T=4df868b8
+[accero.h]
+T=4df868b8
+1=jhl_defs.h
+2=pedometer.h
+[pedometer.h]
+T=4e1a3cda
+[sw.h]
+T=4df868b8
+1=config.h
+[adc.h]
+T=4df868b8
+1=jhl_defs.h
+[led.h]
+T=4e169c84
+[batt_params.h]
+T=4df868b9
+1=jhl_defs.h
+[pool.h]
+T=4df868b8
+1=pedometer.h
+[i2c_twl_defs.h]
+T=4df868b8
+[voltable.h]
+T=4df868b8
+[renge\renge_task_intval.h]
+T=4df868b6
+1=renge\renge_defs.h
+[self_flash.h]
+T=4df868b8
+[pedo_lpf_coeff.h]
+T=4df868b9
+[..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\fsl.h]
+T=49a3bd4e
+[..\..\..\..\Program Files (x86)\NEC Electronics Tools\CC78K0R\W2.13\inc78k0r\math.h]
+T=45f12258
+[sim\simOnWin.h]
+T=4e0014e7
+1=sim\sfrAlias.h
+[sim\sfrAlias.h]
+T=4e169edd
+1=config.h
+[hal.h]
+T=4e16a2b4
diff --git a/tags/SDK3.0(2.00)/ベースからの変更.xls b/tags/SDK3.0(2.00)/ベースからの変更.xls
new file mode 100644
index 0000000..5212dac
Binary files /dev/null and b/tags/SDK3.0(2.00)/ベースからの変更.xls differ