Vladimir N. Shilov 7 rokov pred
commit
df0f7ddc91

+ 23 - 0
.gitignore

@@ -0,0 +1,23 @@
+# Compiled binaries
+*.bin
+*.elf
+*.hex
+*.map
+
+# Trash
+*.bak
+
+# IAR project "Debug" directory
+Debug/
+
+# IAR project "Release" directory
+Release/
+
+# IAR project settings directory
+settings/
+
+# IAR backup files
+Backup*
+
+# IAR .dep files
+*.dep

+ 2130 - 0
MegaClock.ewp

@@ -0,0 +1,2130 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<project>
+  <fileVersion>2</fileVersion>
+  <configuration>
+    <name>Debug</name>
+    <toolchain>
+      <name>AVR</name>
+    </toolchain>
+    <debug>1</debug>
+    <settings>
+      <name>General</name>
+      <archiveVersion>12</archiveVersion>
+      <data>
+        <version>10</version>
+        <wantNonLocal>1</wantNonLocal>
+        <debug>1</debug>
+        <option>
+          <name>GGEnhancedCore</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>Variant Memory</name>
+          <version>0</version>
+          <state>1</state>
+        </option>
+        <option>
+          <name>ExePath</name>
+          <state>Debug\Exe</state>
+        </option>
+        <option>
+          <name>ObjPath</name>
+          <state>Debug\Obj</state>
+        </option>
+        <option>
+          <name>ListPath</name>
+          <state>Debug\List</state>
+        </option>
+        <option>
+          <name>GGEnableConfig</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>GG64KFlash</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GG64BitDoubles</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GGFPSLICCOnfig</name>
+          <version>0</version>
+          <state>3</state>
+        </option>
+        <option>
+          <name>LCEnableBitDefs</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>LCHeapSize</name>
+          <state>0x10</state>
+        </option>
+        <option>
+          <name>SCCStackSize</name>
+          <state>0x20</state>
+        </option>
+        <option>
+          <name>SCExtCStack</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SCRStackSize</name>
+          <state>16</state>
+        </option>
+        <option>
+          <name>SCExtRStack</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SCEnableBus</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SCAddWaitstate</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SCRamBase</name>
+          <state>0x0</state>
+        </option>
+        <option>
+          <name>SCRamSize</name>
+          <state>0x0</state>
+        </option>
+        <option>
+          <name>SCRomBase</name>
+          <state>0x0</state>
+        </option>
+        <option>
+          <name>SCRomSize</name>
+          <state>0x0</state>
+        </option>
+        <option>
+          <name>SCNVBase</name>
+          <state>0x0</state>
+        </option>
+        <option>
+          <name>SCNVSize</name>
+          <state>0x0</state>
+        </option>
+        <option>
+          <name>SCInitWithReti</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>GOutputBinary</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GGEepromUtil</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>GGEepromUtilSize</name>
+          <state>512</state>
+        </option>
+        <option>
+          <name>GRuntimeLibSelect</name>
+          <version>0</version>
+          <state>1</state>
+        </option>
+        <option>
+          <name>RTDescription</name>
+          <state>Use the normal configuration of the C/C++</state>
+          <state>runtime library. No locale interface,</state>
+          <state>C locale, no file descriptor support,</state>
+          <state>no multibytes in printf and scanf, and</state>
+          <state>no hex floats in strtod.</state>
+        </option>
+        <option>
+          <name>RTConfigPath</name>
+          <state>$TOOLKIT_DIR$\LIB\DLIB\dlAVR-1s-ec_mul-n.h</state>
+        </option>
+        <option>
+          <name>RTLibraryPath</name>
+          <state>$TOOLKIT_DIR$\LIB\DLIB\dlAVR-1s-ec_mul-n.r90</state>
+        </option>
+        <option>
+          <name>Input variant</name>
+          <version>36</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>Input description</name>
+          <state>Automatic choice of formatter.</state>
+        </option>
+        <option>
+          <name>Output variant</name>
+          <version>36</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>Output description</name>
+          <state>Automatic choice of formatter.</state>
+        </option>
+        <option>
+          <name>GRuntimeLibSelectSlave</name>
+          <version>0</version>
+          <state>1</state>
+        </option>
+        <option>
+          <name>GeneralEnableMisra</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GeneralMisraVerbose</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>LCTinyHeapSize</name>
+          <state>0x10</state>
+        </option>
+        <option>
+          <name>LCNearHeapSize</name>
+          <state>0x20</state>
+        </option>
+        <option>
+          <name>LCFarHeapSize</name>
+          <state>0x1000</state>
+        </option>
+        <option>
+          <name>LCHugeHeapSize</name>
+          <state>0x1000</state>
+        </option>
+        <option>
+          <name>LCsHeapConfigText</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>GGNoMULInstruction</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GeneralMisraVer</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GeneralMisraRules04</name>
+          <version>0</version>
+          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+        </option>
+        <option>
+          <name>GeneralMisraRules98</name>
+          <version>0</version>
+          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+        </option>
+        <option>
+          <name>GenDeviceSelectMenu</name>
+          <state>m8a	ATmega8A</state>
+        </option>
+        <option>
+          <name>OGProductVersion</name>
+          <state>6.80.0.1023</state>
+        </option>
+        <option>
+          <name>OGLastSavedByProductVersion</name>
+          <state>6.80.7.1083</state>
+        </option>
+      </data>
+    </settings>
+    <settings>
+      <name>ICCAVR</name>
+      <archiveVersion>6</archiveVersion>
+      <data>
+        <version>17</version>
+        <wantNonLocal>1</wantNonLocal>
+        <debug>1</debug>
+        <option>
+          <name>CCVariantProcessor</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCEnhancedCore</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCVariantMemory</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCObjPrefix</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCDefines</name>
+          <state>F_CPU=8000000UL</state>
+        </option>
+        <option>
+          <name>CCPreprocFile</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCPreprocComments</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCPreprocLine</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCListCFile</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCListCMnemonics</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCListCMessages</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCListAssFile</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCListAssSource</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCEnableRemarks</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCDiagSuppress</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCDiagRemark</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCDiagWarning</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCDiagError</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCWarnAsError</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCConstInRAM</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCInitInFlash</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCForceVariables</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCOldCallConv</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCLockRegs</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCAllowList</name>
+          <version>3</version>
+          <state>101010</state>
+        </option>
+        <option>
+          <name>CCCrossCallPassesList</name>
+          <version>8</version>
+          <state>5</state>
+        </option>
+        <option>
+          <name>CCObjUseModuleName</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCObjModuleName</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCDebugInfo</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCNoErrorMsg</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CC64BitDoubles</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CC64KFlash</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCEnableExtBus</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCEnableBitDefs</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCOptForceCrossCall</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCCharIs</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCExt</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>IExtraOptions</name>
+          <state></state>
+        </option>
+        <option>
+          <name>IExtraOptionsCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCMultibyteSupport</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCRequirePrototypes</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCCompilerRuntimeInfo</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>newCCIncludePaths</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCStdIncCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCEepromSize</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCLockRegsSlave</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCOutputFile</name>
+          <state>$FILE_BNAME$.r90</state>
+        </option>
+        <option>
+          <name>CompilerMisraOverride</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCLibConfigHeader</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>PreInclude</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCOverrideModuleTypeDefault</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCRadioModuleType</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCRadioModuleTypeSlave</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>OCCAdditionalCommandLineOptionsSlave</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CompilerMisraRules04</name>
+          <version>0</version>
+          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+        </option>
+        <option>
+          <name>CompilerMisraRules98</name>
+          <version>0</version>
+          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+        </option>
+        <option>
+          <name>IccLang</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>IccCDialect</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>IccCppDialect</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>IccAllowVLA</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>IccCppInlineSemantics</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>IccStaticDestr</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>IccFloatSemantics</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCOptStrategy</name>
+          <version>0</version>
+          <state>2</state>
+        </option>
+        <option>
+          <name>CCOptLevel</name>
+          <state>2</state>
+        </option>
+        <option>
+          <name>CCOptLevelSlave</name>
+          <state>2</state>
+        </option>
+      </data>
+    </settings>
+    <settings>
+      <name>AAVR</name>
+      <archiveVersion>5</archiveVersion>
+      <data>
+        <version>11</version>
+        <wantNonLocal>1</wantNonLocal>
+        <debug>1</debug>
+        <option>
+          <name>IProcessor</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AObjPrefix</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>ACaseSensitivity</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>AWarnEnable</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AWarnWhat</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AWarnOne</name>
+          <state></state>
+        </option>
+        <option>
+          <name>AWarnRange1</name>
+          <state></state>
+        </option>
+        <option>
+          <name>AWarnRange2</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CDebug</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>ADefines</name>
+          <state></state>
+        </option>
+        <option>
+          <name>MacroChars</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>UndefAsm</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>UndefFile</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>UndefLine</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>UndefTime</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>UndefDate</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>UndefTid</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>AList</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AListHeader</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>AListing</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>Includes</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>MacDefs</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>MacExps</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>MacExec</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>OnlyAssed</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>MultiLine</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>PageLengthCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>PageLength</name>
+          <state>80</state>
+        </option>
+        <option>
+          <name>TabSpacing</name>
+          <state>8</state>
+        </option>
+        <option>
+          <name>AXRef</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AXRefDefines</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AXRefInternal</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AXRefDual</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AExtraOptions</name>
+          <state></state>
+        </option>
+        <option>
+          <name>OAEnhancedCore</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>AExtraOptionsCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AMaxErrOn</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AMaxErrNum</name>
+          <state>100</state>
+        </option>
+        <option>
+          <name>ANewIncludes</name>
+          <state>$TOOLKIT_DIR$\INC\</state>
+        </option>
+        <option>
+          <name>AsmMultiByteSupport</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AavrVariantMemory</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AsmHasElpm</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AsmOutputFile</name>
+          <state>$FILE_BNAME$.r90</state>
+        </option>
+        <option>
+          <name>AStdIncCheck</name>
+          <state>0</state>
+        </option>
+      </data>
+    </settings>
+    <settings>
+      <name>CUSTOM</name>
+      <archiveVersion>3</archiveVersion>
+      <data>
+        <extensions></extensions>
+        <cmdline></cmdline>
+        <hasPrio>0</hasPrio>
+      </data>
+    </settings>
+    <settings>
+      <name>BICOMP</name>
+      <archiveVersion>0</archiveVersion>
+      <data/>
+    </settings>
+    <settings>
+      <name>BUILDACTION</name>
+      <archiveVersion>1</archiveVersion>
+      <data>
+        <prebuild></prebuild>
+        <postbuild></postbuild>
+      </data>
+    </settings>
+    <settings>
+      <name>XLINK</name>
+      <archiveVersion>3</archiveVersion>
+      <data>
+        <version>16</version>
+        <wantNonLocal>1</wantNonLocal>
+        <debug>1</debug>
+        <option>
+          <name>XOutOverride</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>OutputFile</name>
+          <state>MegaClock.d90</state>
+        </option>
+        <option>
+          <name>OutputFormat</name>
+          <version>11</version>
+          <state>22</state>
+        </option>
+        <option>
+          <name>FormatVariant</name>
+          <version>9</version>
+          <state>2</state>
+        </option>
+        <option>
+          <name>SecondaryOutputFile</name>
+          <state>(None for the selected format)</state>
+        </option>
+        <option>
+          <name>XDefines</name>
+          <state></state>
+        </option>
+        <option>
+          <name>AlwaysOutput</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>OverlapWarnings</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>NoGlobalCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XList</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SegmentMap</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>ListSymbols</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>PageLengthCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>PageLength</name>
+          <state>80</state>
+        </option>
+        <option>
+          <name>XIncludes</name>
+          <state>$TOOLKIT_DIR$\LIB\</state>
+        </option>
+        <option>
+          <name>ModuleStatus</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XclOverride</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XclFile</name>
+          <state>$TOOLKIT_DIR$\src\template\cfgm8a.xcl</state>
+        </option>
+        <option>
+          <name>XclFileSlave</name>
+          <state></state>
+        </option>
+        <option>
+          <name>DoFill</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>FillerByte</name>
+          <state>0xFF</state>
+        </option>
+        <option>
+          <name>DoCrc</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CrcSize</name>
+          <version>0</version>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CrcAlgo</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CrcPoly</name>
+          <state>0x11021</state>
+        </option>
+        <option>
+          <name>CrcCompl</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>RangeCheckAlternatives</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SuppressAllWarn</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SuppressDiags</name>
+          <state></state>
+        </option>
+        <option>
+          <name>TreatAsWarn</name>
+          <state></state>
+        </option>
+        <option>
+          <name>TreatAsErr</name>
+          <state></state>
+        </option>
+        <option>
+          <name>ModuleLocalSym</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CrcBitOrder</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>OXSysConfig</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>XExtraOptionsCheck</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>XExtraOptions</name>
+          <state>-Ointel-standard,(CODE)=.hex</state>
+          <state>-Ointel-standard,(XDATA)=.eep</state>
+        </option>
+        <option>
+          <name>IncludeSuppressed</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>ModuleSummary</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>xcProgramEntryLabel</name>
+          <state>__program_start</state>
+        </option>
+        <option>
+          <name>DebugInformation</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>RuntimeControl</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>IoEmulation</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>AllowExtraOutput</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>GenerateExtraOutput</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XExtraOutOverride</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>ExtraOutputFile</name>
+          <state>MegaClock.a90</state>
+        </option>
+        <option>
+          <name>ExtraOutputFormat</name>
+          <version>11</version>
+          <state>22</state>
+        </option>
+        <option>
+          <name>ExtraFormatVariant</name>
+          <version>9</version>
+          <state>2</state>
+        </option>
+        <option>
+          <name>xcOverrideProgramEntryLabel</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>xcProgramEntryLabelSelect</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>ListOutputFormat</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>BufferedTermOutput</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>XcRTLibraryFile</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>OXLibIOConfig</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>XLinkMisraHandler</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>OverlaySystemMap</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>RawBinaryFile</name>
+          <state></state>
+        </option>
+        <option>
+          <name>RawBinarySymbol</name>
+          <state></state>
+        </option>
+        <option>
+          <name>RawBinarySegment</name>
+          <state></state>
+        </option>
+        <option>
+          <name>RawBinaryAlign</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CrcAlign</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CrcInitialValue</name>
+          <state>0x00</state>
+        </option>
+        <option>
+          <name>CrcUnitSize</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkLogEnable</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkLogInputFiles</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkLogModuleSelection</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkLogPrintfScanf</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkLogSegmentSelection</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkLogStackDepth</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkStackUsageEnable</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkControlFiles</name>
+          <state></state>
+        </option>
+        <option>
+          <name>XlinkCallGraphFileEnable</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkCallGraphFileName</name>
+          <state>$LIST_DIR$\$PROJ_FNAME$.call_graph.cgx</state>
+        </option>
+      </data>
+    </settings>
+    <settings>
+      <name>XAR</name>
+      <archiveVersion>2</archiveVersion>
+      <data>
+        <version>0</version>
+        <wantNonLocal>1</wantNonLocal>
+        <debug>1</debug>
+        <option>
+          <name>XAROutOverride</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XARInputs</name>
+          <state></state>
+        </option>
+        <option>
+          <name>OutputFile</name>
+          <state></state>
+        </option>
+      </data>
+    </settings>
+    <settings>
+      <name>BILINK</name>
+      <archiveVersion>0</archiveVersion>
+      <data/>
+    </settings>
+  </configuration>
+  <configuration>
+    <name>Release</name>
+    <toolchain>
+      <name>AVR</name>
+    </toolchain>
+    <debug>0</debug>
+    <settings>
+      <name>General</name>
+      <archiveVersion>12</archiveVersion>
+      <data>
+        <version>10</version>
+        <wantNonLocal>1</wantNonLocal>
+        <debug>0</debug>
+        <option>
+          <name>GGEnhancedCore</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>Variant Memory</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>ExePath</name>
+          <state>Release\Exe</state>
+        </option>
+        <option>
+          <name>ObjPath</name>
+          <state>Release\Obj</state>
+        </option>
+        <option>
+          <name>ListPath</name>
+          <state>Release\List</state>
+        </option>
+        <option>
+          <name>GGEnableConfig</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>GG64KFlash</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GG64BitDoubles</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GGFPSLICCOnfig</name>
+          <version>0</version>
+          <state>3</state>
+        </option>
+        <option>
+          <name>LCEnableBitDefs</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>LCHeapSize</name>
+          <state>0x10</state>
+        </option>
+        <option>
+          <name>SCCStackSize</name>
+          <state>0x20</state>
+        </option>
+        <option>
+          <name>SCExtCStack</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SCRStackSize</name>
+          <state>16</state>
+        </option>
+        <option>
+          <name>SCExtRStack</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SCEnableBus</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SCAddWaitstate</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SCRamBase</name>
+          <state>0x0</state>
+        </option>
+        <option>
+          <name>SCRamSize</name>
+          <state>0x0</state>
+        </option>
+        <option>
+          <name>SCRomBase</name>
+          <state>0x0</state>
+        </option>
+        <option>
+          <name>SCRomSize</name>
+          <state>0x0</state>
+        </option>
+        <option>
+          <name>SCNVBase</name>
+          <state>0x0</state>
+        </option>
+        <option>
+          <name>SCNVSize</name>
+          <state>0x0</state>
+        </option>
+        <option>
+          <name>SCInitWithReti</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>GOutputBinary</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GGEepromUtil</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GGEepromUtilSize</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GRuntimeLibSelect</name>
+          <version>0</version>
+          <state>4</state>
+        </option>
+        <option>
+          <name>RTDescription</name>
+          <state>Use the legacy C runtime library.</state>
+        </option>
+        <option>
+          <name>RTConfigPath</name>
+          <state></state>
+        </option>
+        <option>
+          <name>RTLibraryPath</name>
+          <state>$TOOLKIT_DIR$\LIB\CLIB\cl0t.r90</state>
+        </option>
+        <option>
+          <name>Input variant</name>
+          <version>36</version>
+          <state>3</state>
+        </option>
+        <option>
+          <name>Input description</name>
+          <state>Full formatting.</state>
+        </option>
+        <option>
+          <name>Output variant</name>
+          <version>36</version>
+          <state>3</state>
+        </option>
+        <option>
+          <name>Output description</name>
+          <state>Full formatting.</state>
+        </option>
+        <option>
+          <name>GRuntimeLibSelectSlave</name>
+          <version>0</version>
+          <state>4</state>
+        </option>
+        <option>
+          <name>GeneralEnableMisra</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GeneralMisraVerbose</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>LCTinyHeapSize</name>
+          <state>0x10</state>
+        </option>
+        <option>
+          <name>LCNearHeapSize</name>
+          <state>0x20</state>
+        </option>
+        <option>
+          <name>LCFarHeapSize</name>
+          <state>0x1000</state>
+        </option>
+        <option>
+          <name>LCHugeHeapSize</name>
+          <state>0x1000</state>
+        </option>
+        <option>
+          <name>LCsHeapConfigText</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>GGNoMULInstruction</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GeneralMisraVer</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GeneralMisraRules04</name>
+          <version>0</version>
+          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+        </option>
+        <option>
+          <name>GeneralMisraRules98</name>
+          <version>0</version>
+          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+        </option>
+        <option>
+          <name>GenDeviceSelectMenu</name>
+          <state>0	-v0, Max 256 byte data, 8 Kbyte code</state>
+        </option>
+        <option>
+          <name>OGProductVersion</name>
+          <state>6.80.0.1023</state>
+        </option>
+        <option>
+          <name>OGLastSavedByProductVersion</name>
+          <state></state>
+        </option>
+      </data>
+    </settings>
+    <settings>
+      <name>ICCAVR</name>
+      <archiveVersion>6</archiveVersion>
+      <data>
+        <version>17</version>
+        <wantNonLocal>1</wantNonLocal>
+        <debug>0</debug>
+        <option>
+          <name>CCVariantProcessor</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCEnhancedCore</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCVariantMemory</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCObjPrefix</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCDefines</name>
+          <state>NDEBUG</state>
+        </option>
+        <option>
+          <name>CCPreprocFile</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCPreprocComments</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCPreprocLine</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCListCFile</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCListCMnemonics</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCListCMessages</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCListAssFile</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCListAssSource</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCEnableRemarks</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCDiagSuppress</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCDiagRemark</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCDiagWarning</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCDiagError</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCWarnAsError</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCConstInRAM</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCInitInFlash</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCForceVariables</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCOldCallConv</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCLockRegs</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCAllowList</name>
+          <version>3</version>
+          <state>111111</state>
+        </option>
+        <option>
+          <name>CCCrossCallPassesList</name>
+          <version>8</version>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCObjUseModuleName</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCObjModuleName</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCDebugInfo</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCNoErrorMsg</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CC64BitDoubles</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CC64KFlash</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCEnableExtBus</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCEnableBitDefs</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCOptForceCrossCall</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCCharIs</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCExt</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>IExtraOptions</name>
+          <state></state>
+        </option>
+        <option>
+          <name>IExtraOptionsCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCMultibyteSupport</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCRequirePrototypes</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCCompilerRuntimeInfo</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>newCCIncludePaths</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCStdIncCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCEepromSize</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCLockRegsSlave</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCOutputFile</name>
+          <state>$FILE_BNAME$.r90</state>
+        </option>
+        <option>
+          <name>CompilerMisraOverride</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCLibConfigHeader</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>PreInclude</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CCOverrideModuleTypeDefault</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCRadioModuleType</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCRadioModuleTypeSlave</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>OCCAdditionalCommandLineOptionsSlave</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CompilerMisraRules04</name>
+          <version>0</version>
+          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+        </option>
+        <option>
+          <name>CompilerMisraRules98</name>
+          <version>0</version>
+          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+        </option>
+        <option>
+          <name>IccLang</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>IccCDialect</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>IccCppDialect</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>IccAllowVLA</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>IccCppInlineSemantics</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>IccStaticDestr</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>IccFloatSemantics</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CCOptStrategy</name>
+          <version>0</version>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CCOptLevel</name>
+          <state>3</state>
+        </option>
+        <option>
+          <name>CCOptLevelSlave</name>
+          <state>3</state>
+        </option>
+      </data>
+    </settings>
+    <settings>
+      <name>AAVR</name>
+      <archiveVersion>5</archiveVersion>
+      <data>
+        <version>11</version>
+        <wantNonLocal>1</wantNonLocal>
+        <debug>0</debug>
+        <option>
+          <name>IProcessor</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AObjPrefix</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>ACaseSensitivity</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>AWarnEnable</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AWarnWhat</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AWarnOne</name>
+          <state></state>
+        </option>
+        <option>
+          <name>AWarnRange1</name>
+          <state></state>
+        </option>
+        <option>
+          <name>AWarnRange2</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CDebug</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>ADefines</name>
+          <state></state>
+        </option>
+        <option>
+          <name>MacroChars</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>UndefAsm</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>UndefFile</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>UndefLine</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>UndefTime</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>UndefDate</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>UndefTid</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>AList</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AListHeader</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>AListing</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>Includes</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>MacDefs</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>MacExps</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>MacExec</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>OnlyAssed</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>MultiLine</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>PageLengthCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>PageLength</name>
+          <state>80</state>
+        </option>
+        <option>
+          <name>TabSpacing</name>
+          <state>8</state>
+        </option>
+        <option>
+          <name>AXRef</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AXRefDefines</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AXRefInternal</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AXRefDual</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AExtraOptions</name>
+          <state></state>
+        </option>
+        <option>
+          <name>OAEnhancedCore</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>AExtraOptionsCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AMaxErrOn</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AMaxErrNum</name>
+          <state>100</state>
+        </option>
+        <option>
+          <name>ANewIncludes</name>
+          <state>###Uninitialized###</state>
+        </option>
+        <option>
+          <name>AsmMultiByteSupport</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AavrVariantMemory</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AsmHasElpm</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>AsmOutputFile</name>
+          <state></state>
+        </option>
+        <option>
+          <name>AStdIncCheck</name>
+          <state>0</state>
+        </option>
+      </data>
+    </settings>
+    <settings>
+      <name>CUSTOM</name>
+      <archiveVersion>3</archiveVersion>
+      <data>
+        <extensions></extensions>
+        <cmdline></cmdline>
+        <hasPrio>0</hasPrio>
+      </data>
+    </settings>
+    <settings>
+      <name>BICOMP</name>
+      <archiveVersion>0</archiveVersion>
+      <data/>
+    </settings>
+    <settings>
+      <name>BUILDACTION</name>
+      <archiveVersion>1</archiveVersion>
+      <data>
+        <prebuild></prebuild>
+        <postbuild></postbuild>
+      </data>
+    </settings>
+    <settings>
+      <name>XLINK</name>
+      <archiveVersion>3</archiveVersion>
+      <data>
+        <version>16</version>
+        <wantNonLocal>1</wantNonLocal>
+        <debug>0</debug>
+        <option>
+          <name>XOutOverride</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>OutputFile</name>
+          <state>templproj.a90</state>
+        </option>
+        <option>
+          <name>OutputFormat</name>
+          <version>11</version>
+          <state>25</state>
+        </option>
+        <option>
+          <name>FormatVariant</name>
+          <version>9</version>
+          <state>2</state>
+        </option>
+        <option>
+          <name>SecondaryOutputFile</name>
+          <state>(None for the selected format)</state>
+        </option>
+        <option>
+          <name>XDefines</name>
+          <state></state>
+        </option>
+        <option>
+          <name>AlwaysOutput</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>OverlapWarnings</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>NoGlobalCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XList</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SegmentMap</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>ListSymbols</name>
+          <state>2</state>
+        </option>
+        <option>
+          <name>PageLengthCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>PageLength</name>
+          <state>80</state>
+        </option>
+        <option>
+          <name>XIncludes</name>
+          <state>$TOOLKIT_DIR$\LIB\</state>
+        </option>
+        <option>
+          <name>ModuleStatus</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XclOverride</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XclFile</name>
+          <state>$TOOLKIT_DIR$\src\template\lnk0t.xcl</state>
+        </option>
+        <option>
+          <name>XclFileSlave</name>
+          <state></state>
+        </option>
+        <option>
+          <name>DoFill</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>FillerByte</name>
+          <state>0xFF</state>
+        </option>
+        <option>
+          <name>DoCrc</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CrcSize</name>
+          <version>0</version>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CrcAlgo</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CrcPoly</name>
+          <state>0x11021</state>
+        </option>
+        <option>
+          <name>CrcCompl</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>RangeCheckAlternatives</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SuppressAllWarn</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>SuppressDiags</name>
+          <state></state>
+        </option>
+        <option>
+          <name>TreatAsWarn</name>
+          <state></state>
+        </option>
+        <option>
+          <name>TreatAsErr</name>
+          <state></state>
+        </option>
+        <option>
+          <name>ModuleLocalSym</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>CrcBitOrder</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>OXSysConfig</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>XExtraOptionsCheck</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XExtraOptions</name>
+          <state></state>
+        </option>
+        <option>
+          <name>IncludeSuppressed</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>ModuleSummary</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>xcProgramEntryLabel</name>
+          <state>__program_start</state>
+        </option>
+        <option>
+          <name>DebugInformation</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>RuntimeControl</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>IoEmulation</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>AllowExtraOutput</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>GenerateExtraOutput</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XExtraOutOverride</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>ExtraOutputFile</name>
+          <state>templproj.a90</state>
+        </option>
+        <option>
+          <name>ExtraOutputFormat</name>
+          <version>11</version>
+          <state>25</state>
+        </option>
+        <option>
+          <name>ExtraFormatVariant</name>
+          <version>9</version>
+          <state>2</state>
+        </option>
+        <option>
+          <name>xcOverrideProgramEntryLabel</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>xcProgramEntryLabelSelect</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>ListOutputFormat</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>BufferedTermOutput</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XcRTLibraryFile</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>OXLibIOConfig</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>XLinkMisraHandler</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>OverlaySystemMap</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>RawBinaryFile</name>
+          <state></state>
+        </option>
+        <option>
+          <name>RawBinarySymbol</name>
+          <state></state>
+        </option>
+        <option>
+          <name>RawBinarySegment</name>
+          <state></state>
+        </option>
+        <option>
+          <name>RawBinaryAlign</name>
+          <state></state>
+        </option>
+        <option>
+          <name>CrcAlign</name>
+          <state>1</state>
+        </option>
+        <option>
+          <name>CrcInitialValue</name>
+          <state>0x00</state>
+        </option>
+        <option>
+          <name>CrcUnitSize</name>
+          <version>0</version>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkLogEnable</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkLogInputFiles</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkLogModuleSelection</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkLogPrintfScanf</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkLogSegmentSelection</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkLogStackDepth</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkStackUsageEnable</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkControlFiles</name>
+          <state></state>
+        </option>
+        <option>
+          <name>XlinkCallGraphFileEnable</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XlinkCallGraphFileName</name>
+          <state>$LIST_DIR$\$PROJ_FNAME$.call_graph.cgx</state>
+        </option>
+      </data>
+    </settings>
+    <settings>
+      <name>XAR</name>
+      <archiveVersion>2</archiveVersion>
+      <data>
+        <version>0</version>
+        <wantNonLocal>1</wantNonLocal>
+        <debug>0</debug>
+        <option>
+          <name>XAROutOverride</name>
+          <state>0</state>
+        </option>
+        <option>
+          <name>XARInputs</name>
+          <state></state>
+        </option>
+        <option>
+          <name>OutputFile</name>
+          <state></state>
+        </option>
+      </data>
+    </settings>
+    <settings>
+      <name>BILINK</name>
+      <archiveVersion>0</archiveVersion>
+      <data/>
+    </settings>
+  </configuration>
+  <group>
+    <name>Sheduler</name>
+    <file>
+      <name>$PROJ_DIR$\rtos.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\rtos.h</name>
+    </file>
+  </group>
+  <group>
+    <name>TWI</name>
+    <file>
+      <name>$PROJ_DIR$\twim.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\twim.h</name>
+    </file>
+  </group>
+  <file>
+    <name>$PROJ_DIR$\main.c</name>
+  </file>
+  <file>
+    <name>$PROJ_DIR$\main.h</name>
+  </file>
+</project>
+
+

+ 2127 - 0
MegaClock.ewt

@@ -0,0 +1,2127 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<project>
+  <fileVersion>2</fileVersion>
+  <configuration>
+    <name>Debug</name>
+    <toolchain>
+      <name>AVR</name>
+    </toolchain>
+    <debug>1</debug>
+    <settings>
+      <name>C-STAT</name>
+      <archiveVersion>260</archiveVersion>
+      <data>
+        <version>260</version>
+        <cstatargs>
+          <useExtraArgs>0</useExtraArgs>
+          <extraArgs></extraArgs>
+          <analyzeTimeoutEnabled>1</analyzeTimeoutEnabled>
+          <analyzeTimeout>600</analyzeTimeout>
+          <enableParallel>0</enableParallel>
+          <parallelThreads>2</parallelThreads>
+          <enableFalsePositives>0</enableFalsePositives>
+          <messagesLimitEnabled>1</messagesLimitEnabled>
+          <messagesLimit>100</messagesLimit>
+        </cstatargs>
+        <cstat_settings>
+          <cstat_version>1.4.2</cstat_version>
+          <checks_tree>
+            <package enabled="true" name="STDCHECKS">
+              <group enabled="true" name="ARR">
+                <check enabled="true" name="ARR-inv-index-pos"/>
+                <check enabled="true" name="ARR-inv-index-ptr-pos"/>
+                <check enabled="true" name="ARR-inv-index-ptr"/>
+                <check enabled="true" name="ARR-inv-index"/>
+                <check enabled="true" name="ARR-neg-index"/>
+                <check enabled="true" name="ARR-uninit-index"/>
+              </group>
+              <group enabled="true" name="ATH">
+                <check enabled="true" name="ATH-cmp-float"/>
+                <check enabled="true" name="ATH-cmp-unsign-neg"/>
+                <check enabled="true" name="ATH-cmp-unsign-pos"/>
+                <check enabled="true" name="ATH-div-0-assign"/>
+                <check enabled="false" name="ATH-div-0-cmp-aft"/>
+                <check enabled="true" name="ATH-div-0-cmp-bef"/>
+                <check enabled="true" name="ATH-div-0-interval"/>
+                <check enabled="true" name="ATH-div-0-pos"/>
+                <check enabled="true" name="ATH-div-0-unchk-global"/>
+                <check enabled="true" name="ATH-div-0-unchk-local"/>
+                <check enabled="true" name="ATH-div-0-unchk-param"/>
+                <check enabled="true" name="ATH-div-0"/>
+                <check enabled="true" name="ATH-inc-bool"/>
+                <check enabled="true" name="ATH-malloc-overrun"/>
+                <check enabled="true" name="ATH-neg-check-nonneg"/>
+                <check enabled="true" name="ATH-neg-check-pos"/>
+                <check enabled="true" name="ATH-new-overrun"/>
+                <check enabled="false" name="ATH-overflow-cast"/>
+                <check enabled="true" name="ATH-overflow"/>
+                <check enabled="true" name="ATH-shift-bounds"/>
+                <check enabled="true" name="ATH-shift-neg"/>
+                <check enabled="true" name="ATH-sizeof-by-sizeof"/>
+              </group>
+              <group enabled="true" name="CAST">
+                <check enabled="false" name="CAST-old-style"/>
+              </group>
+              <group enabled="true" name="COMMA">
+                <check enabled="false" name="COMMA-overload"/>
+              </group>
+              <group enabled="true" name="COMMENT">
+                <check enabled="true" name="COMMENT-nested"/>
+              </group>
+              <group enabled="true" name="CONST">
+                <check enabled="true" name="CONST-member-ret"/>
+              </group>
+              <group enabled="true" name="COP">
+                <check enabled="false" name="COP-alloc-ctor"/>
+                <check enabled="true" name="COP-assign-op-ret"/>
+                <check enabled="true" name="COP-assign-op-self"/>
+                <check enabled="true" name="COP-assign-op"/>
+                <check enabled="true" name="COP-copy-ctor"/>
+                <check enabled="false" name="COP-dealloc-dtor"/>
+                <check enabled="true" name="COP-dtor"/>
+                <check enabled="true" name="COP-init-order"/>
+                <check enabled="true" name="COP-init-uninit"/>
+                <check enabled="true" name="COP-member-uninit"/>
+              </group>
+              <group enabled="true" name="CPU">
+                <check enabled="true" name="CPU-ctor-call-virt"/>
+                <check enabled="false" name="CPU-ctor-implicit"/>
+                <check enabled="true" name="CPU-delete-void"/>
+                <check enabled="true" name="CPU-dtor-call-virt"/>
+                <check enabled="true" name="CPU-malloc-class"/>
+                <check enabled="true" name="CPU-nonvirt-dtor"/>
+                <check enabled="true" name="CPU-return-ref-to-class-data"/>
+              </group>
+              <group enabled="true" name="DECL">
+                <check enabled="false" name="DECL-implicit-int"/>
+              </group>
+              <group enabled="true" name="DEFINE">
+                <check enabled="true" name="DEFINE-hash-multiple"/>
+              </group>
+              <group enabled="true" name="ENUM">
+                <check enabled="false" name="ENUM-bounds"/>
+              </group>
+              <group enabled="true" name="EXP">
+                <check enabled="true" name="EXP-cond-assign"/>
+                <check enabled="true" name="EXP-dangling-else"/>
+                <check enabled="true" name="EXP-loop-exit"/>
+                <check enabled="false" name="EXP-main-ret-int"/>
+                <check enabled="false" name="EXP-null-stmt"/>
+                <check enabled="false" name="EXP-stray-semicolon"/>
+              </group>
+              <group enabled="true" name="EXPR">
+                <check enabled="true" name="EXPR-const-overflow"/>
+              </group>
+              <group enabled="true" name="FPT">
+                <check enabled="true" name="FPT-cmp-null"/>
+                <check enabled="false" name="FPT-literal"/>
+                <check enabled="true" name="FPT-misuse"/>
+              </group>
+              <group enabled="true" name="FUNC">
+                <check enabled="false" name="FUNC-implicit-decl"/>
+                <check enabled="false" name="FUNC-unprototyped-all"/>
+                <check enabled="true" name="FUNC-unprototyped-used"/>
+              </group>
+              <group enabled="true" name="INCLUDE">
+                <check enabled="false" name="INCLUDE-c-file"/>
+              </group>
+              <group enabled="true" name="INT">
+                <check enabled="false" name="INT-use-signed-as-unsigned-pos"/>
+                <check enabled="true" name="INT-use-signed-as-unsigned"/>
+              </group>
+              <group enabled="true" name="ITR">
+                <check enabled="true" name="ITR-end-cmp-aft"/>
+                <check enabled="true" name="ITR-end-cmp-bef"/>
+                <check enabled="true" name="ITR-invalidated"/>
+                <check enabled="false" name="ITR-mismatch-alg"/>
+                <check enabled="false" name="ITR-store"/>
+                <check enabled="true" name="ITR-uninit"/>
+              </group>
+              <group enabled="true" name="LIB">
+                <check enabled="false" name="LIB-bsearch-overrun-pos"/>
+                <check enabled="false" name="LIB-bsearch-overrun"/>
+                <check enabled="false" name="LIB-fn-unsafe"/>
+                <check enabled="false" name="LIB-fread-overrun-pos"/>
+                <check enabled="true" name="LIB-fread-overrun"/>
+                <check enabled="false" name="LIB-memchr-overrun-pos"/>
+                <check enabled="true" name="LIB-memchr-overrun"/>
+                <check enabled="false" name="LIB-memcpy-overrun-pos"/>
+                <check enabled="true" name="LIB-memcpy-overrun"/>
+                <check enabled="false" name="LIB-memset-overrun-pos"/>
+                <check enabled="true" name="LIB-memset-overrun"/>
+                <check enabled="false" name="LIB-putenv"/>
+                <check enabled="false" name="LIB-qsort-overrun-pos"/>
+                <check enabled="false" name="LIB-qsort-overrun"/>
+                <check enabled="true" name="LIB-return-const"/>
+                <check enabled="true" name="LIB-return-error"/>
+                <check enabled="true" name="LIB-return-leak"/>
+                <check enabled="true" name="LIB-return-neg"/>
+                <check enabled="true" name="LIB-return-null"/>
+                <check enabled="false" name="LIB-sprintf-overrun"/>
+                <check enabled="false" name="LIB-std-sort-overrun-pos"/>
+                <check enabled="true" name="LIB-std-sort-overrun"/>
+                <check enabled="false" name="LIB-strcat-overrun-pos"/>
+                <check enabled="true" name="LIB-strcat-overrun"/>
+                <check enabled="false" name="LIB-strcpy-overrun-pos"/>
+                <check enabled="true" name="LIB-strcpy-overrun"/>
+                <check enabled="false" name="LIB-strncat-overrun-pos"/>
+                <check enabled="true" name="LIB-strncat-overrun"/>
+                <check enabled="false" name="LIB-strncmp-overrun-pos"/>
+                <check enabled="true" name="LIB-strncmp-overrun"/>
+                <check enabled="false" name="LIB-strncpy-overrun-pos"/>
+                <check enabled="true" name="LIB-strncpy-overrun"/>
+              </group>
+              <group enabled="true" name="LOGIC">
+                <check enabled="false" name="LOGIC-overload"/>
+              </group>
+              <group enabled="true" name="MEM">
+                <check enabled="true" name="MEM-delete-array-op"/>
+                <check enabled="true" name="MEM-delete-op"/>
+                <check enabled="true" name="MEM-double-free-alias"/>
+                <check enabled="true" name="MEM-double-free-some"/>
+                <check enabled="true" name="MEM-double-free"/>
+                <check enabled="true" name="MEM-free-field"/>
+                <check enabled="true" name="MEM-free-fptr"/>
+                <check enabled="false" name="MEM-free-no-alloc-struct"/>
+                <check enabled="false" name="MEM-free-no-alloc"/>
+                <check enabled="true" name="MEM-free-no-use"/>
+                <check enabled="true" name="MEM-free-op"/>
+                <check enabled="true" name="MEM-free-struct-field"/>
+                <check enabled="true" name="MEM-free-variable-alias"/>
+                <check enabled="true" name="MEM-free-variable"/>
+                <check enabled="true" name="MEM-leak-alias"/>
+                <check enabled="false" name="MEM-leak"/>
+                <check enabled="false" name="MEM-malloc-arith"/>
+                <check enabled="true" name="MEM-malloc-diff-type"/>
+                <check enabled="true" name="MEM-malloc-sizeof-ptr"/>
+                <check enabled="true" name="MEM-malloc-sizeof"/>
+                <check enabled="false" name="MEM-malloc-strlen"/>
+                <check enabled="true" name="MEM-realloc-diff-type"/>
+                <check enabled="true" name="MEM-return-free"/>
+                <check enabled="true" name="MEM-return-no-assign"/>
+                <check enabled="true" name="MEM-stack-global-field"/>
+                <check enabled="true" name="MEM-stack-global"/>
+                <check enabled="true" name="MEM-stack-param-ref"/>
+                <check enabled="true" name="MEM-stack-param"/>
+                <check enabled="true" name="MEM-stack-pos"/>
+                <check enabled="true" name="MEM-stack-ref"/>
+                <check enabled="true" name="MEM-stack"/>
+                <check enabled="true" name="MEM-use-free-all"/>
+                <check enabled="true" name="MEM-use-free-some"/>
+              </group>
+              <group enabled="true" name="PTR">
+                <check enabled="true" name="PTR-arith-field"/>
+                <check enabled="true" name="PTR-arith-stack"/>
+                <check enabled="true" name="PTR-arith-var"/>
+                <check enabled="true" name="PTR-cmp-str-lit"/>
+                <check enabled="false" name="PTR-null-assign-fun-pos"/>
+                <check enabled="false" name="PTR-null-assign-pos"/>
+                <check enabled="true" name="PTR-null-assign"/>
+                <check enabled="true" name="PTR-null-cmp-aft"/>
+                <check enabled="true" name="PTR-null-cmp-bef-fun"/>
+                <check enabled="true" name="PTR-null-cmp-bef"/>
+                <check enabled="true" name="PTR-null-fun-pos"/>
+                <check enabled="false" name="PTR-null-literal-pos"/>
+                <check enabled="false" name="PTR-overload"/>
+                <check enabled="false" name="PTR-singleton-arith-pos"/>
+                <check enabled="true" name="PTR-singleton-arith"/>
+                <check enabled="true" name="PTR-unchk-param-some"/>
+                <check enabled="false" name="PTR-unchk-param"/>
+                <check enabled="false" name="PTR-uninit-pos"/>
+                <check enabled="true" name="PTR-uninit"/>
+              </group>
+              <group enabled="true" name="RED">
+                <check enabled="false" name="RED-alloc-zero-bytes"/>
+                <check enabled="false" name="RED-case-reach"/>
+                <check enabled="false" name="RED-cmp-always"/>
+                <check enabled="false" name="RED-cmp-never"/>
+                <check enabled="false" name="RED-cond-always"/>
+                <check enabled="true" name="RED-cond-const-assign"/>
+                <check enabled="false" name="RED-cond-const-expr"/>
+                <check enabled="false" name="RED-cond-const"/>
+                <check enabled="false" name="RED-cond-never"/>
+                <check enabled="true" name="RED-dead"/>
+                <check enabled="false" name="RED-expr"/>
+                <check enabled="false" name="RED-func-no-effect"/>
+                <check enabled="true" name="RED-local-hides-global"/>
+                <check enabled="false" name="RED-local-hides-local"/>
+                <check enabled="false" name="RED-local-hides-member"/>
+                <check enabled="true" name="RED-local-hides-param"/>
+                <check enabled="false" name="RED-no-effect"/>
+                <check enabled="true" name="RED-self-assign"/>
+                <check enabled="true" name="RED-unused-assign"/>
+                <check enabled="false" name="RED-unused-param"/>
+                <check enabled="false" name="RED-unused-return-val"/>
+                <check enabled="false" name="RED-unused-val"/>
+                <check enabled="true" name="RED-unused-var-all"/>
+              </group>
+              <group enabled="true" name="RESOURCE">
+                <check enabled="false" name="RESOURCE-deref-file"/>
+                <check enabled="true" name="RESOURCE-double-close"/>
+                <check enabled="true" name="RESOURCE-file-no-close-all"/>
+                <check enabled="false" name="RESOURCE-file-pos-neg"/>
+                <check enabled="true" name="RESOURCE-file-use-after-close"/>
+                <check enabled="false" name="RESOURCE-implicit-deref-file"/>
+                <check enabled="true" name="RESOURCE-write-ronly-file"/>
+              </group>
+              <group enabled="true" name="SIZEOF">
+                <check enabled="true" name="SIZEOF-side-effect"/>
+              </group>
+              <group enabled="true" name="SPC">
+                <check enabled="true" name="SPC-order"/>
+                <check enabled="false" name="SPC-uninit-arr-all"/>
+                <check enabled="true" name="SPC-uninit-struct-field-heap"/>
+                <check enabled="false" name="SPC-uninit-struct-field"/>
+                <check enabled="true" name="SPC-uninit-struct"/>
+                <check enabled="true" name="SPC-uninit-var-all"/>
+                <check enabled="true" name="SPC-uninit-var-some"/>
+                <check enabled="false" name="SPC-volatile-reads"/>
+                <check enabled="false" name="SPC-volatile-writes"/>
+              </group>
+              <group enabled="true" name="STRUCT">
+                <check enabled="false" name="STRUCT-signed-bit"/>
+              </group>
+              <group enabled="true" name="SWITCH">
+                <check enabled="true" name="SWITCH-fall-through"/>
+              </group>
+              <group enabled="true" name="UNION">
+                <check enabled="true" name="UNION-overlap-assign"/>
+                <check enabled="true" name="UNION-type-punning"/>
+              </group>
+            </package>
+            <package enabled="false" name="CERT">
+              <group enabled="true" name="CERT-EXP">
+                <check enabled="true" name="CERT-EXP19-C"/>
+              </group>
+              <group enabled="true" name="CERT-FIO">
+                <check enabled="true" name="CERT-FIO37-C"/>
+                <check enabled="true" name="CERT-FIO38-C"/>
+              </group>
+              <group enabled="true" name="CERT-SIG">
+                <check enabled="true" name="CERT-SIG31-C"/>
+              </group>
+            </package>
+            <package enabled="false" name="SECURITY">
+              <group enabled="true" name="SEC-BUFFER">
+                <check enabled="true" name="SEC-BUFFER-memory-leak-alias"/>
+                <check enabled="false" name="SEC-BUFFER-memory-leak"/>
+                <check enabled="false" name="SEC-BUFFER-memset-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-memset-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-qsort-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-qsort-overrun"/>
+                <check enabled="true" name="SEC-BUFFER-sprintf-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-std-sort-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-std-sort-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-strcat-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-strcat-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-strcpy-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-strcpy-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-strncat-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-strncat-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-strncmp-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-strncmp-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-strncpy-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-strncpy-overrun"/>
+                <check enabled="true" name="SEC-BUFFER-tainted-alloc-size"/>
+                <check enabled="true" name="SEC-BUFFER-tainted-copy-length"/>
+                <check enabled="true" name="SEC-BUFFER-tainted-copy"/>
+                <check enabled="true" name="SEC-BUFFER-tainted-index"/>
+                <check enabled="true" name="SEC-BUFFER-tainted-offset"/>
+                <check enabled="true" name="SEC-BUFFER-use-after-free-all"/>
+                <check enabled="true" name="SEC-BUFFER-use-after-free-some"/>
+              </group>
+              <group enabled="true" name="SEC-DIV-0">
+                <check enabled="true" name="SEC-DIV-0-compare-after"/>
+                <check enabled="true" name="SEC-DIV-0-compare-before"/>
+                <check enabled="true" name="SEC-DIV-0-tainted"/>
+              </group>
+              <group enabled="true" name="SEC-FILEOP">
+                <check enabled="true" name="SEC-FILEOP-open-no-close"/>
+                <check enabled="false" name="SEC-FILEOP-path-traversal"/>
+                <check enabled="true" name="SEC-FILEOP-use-after-close"/>
+              </group>
+              <group enabled="true" name="SEC-INJECTION">
+                <check enabled="false" name="SEC-INJECTION-sql"/>
+                <check enabled="false" name="SEC-INJECTION-xpath"/>
+              </group>
+              <group enabled="true" name="SEC-LOOP">
+                <check enabled="true" name="SEC-LOOP-tainted-bound"/>
+              </group>
+              <group enabled="true" name="SEC-NULL">
+                <check enabled="false" name="SEC-NULL-assignment-fun-pos"/>
+                <check enabled="true" name="SEC-NULL-assignment"/>
+                <check enabled="true" name="SEC-NULL-cmp-aft"/>
+                <check enabled="true" name="SEC-NULL-cmp-bef-fun"/>
+                <check enabled="true" name="SEC-NULL-cmp-bef"/>
+                <check enabled="false" name="SEC-NULL-literal-pos"/>
+              </group>
+              <group enabled="true" name="SEC-STRING">
+                <check enabled="true" name="SEC-STRING-format-string"/>
+                <check enabled="false" name="SEC-STRING-hard-coded-credentials"/>
+              </group>
+            </package>
+            <package enabled="false" name="MISRAC2004">
+              <group enabled="true" name="MISRAC2004-1">
+                <check enabled="true" name="MISRAC2004-1.1"/>
+                <check enabled="true" name="MISRAC2004-1.2_a"/>
+                <check enabled="true" name="MISRAC2004-1.2_b"/>
+                <check enabled="true" name="MISRAC2004-1.2_c"/>
+                <check enabled="true" name="MISRAC2004-1.2_d"/>
+                <check enabled="true" name="MISRAC2004-1.2_e"/>
+                <check enabled="true" name="MISRAC2004-1.2_f"/>
+                <check enabled="true" name="MISRAC2004-1.2_g"/>
+                <check enabled="true" name="MISRAC2004-1.2_h"/>
+                <check enabled="true" name="MISRAC2004-1.2_i"/>
+                <check enabled="true" name="MISRAC2004-1.2_j"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-2">
+                <check enabled="true" name="MISRAC2004-2.1"/>
+                <check enabled="true" name="MISRAC2004-2.2"/>
+                <check enabled="true" name="MISRAC2004-2.3"/>
+                <check enabled="false" name="MISRAC2004-2.4"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-5">
+                <check enabled="true" name="MISRAC2004-5.2"/>
+                <check enabled="true" name="MISRAC2004-5.3"/>
+                <check enabled="true" name="MISRAC2004-5.4"/>
+                <check enabled="false" name="MISRAC2004-5.5"/>
+                <check enabled="false" name="MISRAC2004-5.6"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-6">
+                <check enabled="true" name="MISRAC2004-6.1"/>
+                <check enabled="false" name="MISRAC2004-6.3"/>
+                <check enabled="true" name="MISRAC2004-6.4"/>
+                <check enabled="true" name="MISRAC2004-6.5"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-7">
+                <check enabled="true" name="MISRAC2004-7.1"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-8">
+                <check enabled="true" name="MISRAC2004-8.1"/>
+                <check enabled="true" name="MISRAC2004-8.2"/>
+                <check enabled="true" name="MISRAC2004-8.5_a"/>
+                <check enabled="true" name="MISRAC2004-8.5_b"/>
+                <check enabled="true" name="MISRAC2004-8.12"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-9">
+                <check enabled="true" name="MISRAC2004-9.1_a"/>
+                <check enabled="true" name="MISRAC2004-9.1_b"/>
+                <check enabled="true" name="MISRAC2004-9.1_c"/>
+                <check enabled="true" name="MISRAC2004-9.2"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-10">
+                <check enabled="true" name="MISRAC2004-10.1_a"/>
+                <check enabled="true" name="MISRAC2004-10.1_b"/>
+                <check enabled="true" name="MISRAC2004-10.1_c"/>
+                <check enabled="true" name="MISRAC2004-10.1_d"/>
+                <check enabled="true" name="MISRAC2004-10.2_a"/>
+                <check enabled="true" name="MISRAC2004-10.2_b"/>
+                <check enabled="true" name="MISRAC2004-10.2_c"/>
+                <check enabled="true" name="MISRAC2004-10.2_d"/>
+                <check enabled="true" name="MISRAC2004-10.3"/>
+                <check enabled="true" name="MISRAC2004-10.4"/>
+                <check enabled="true" name="MISRAC2004-10.5"/>
+                <check enabled="true" name="MISRAC2004-10.6"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-11">
+                <check enabled="true" name="MISRAC2004-11.1"/>
+                <check enabled="false" name="MISRAC2004-11.3"/>
+                <check enabled="false" name="MISRAC2004-11.4"/>
+                <check enabled="true" name="MISRAC2004-11.5"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-12">
+                <check enabled="false" name="MISRAC2004-12.1"/>
+                <check enabled="true" name="MISRAC2004-12.2_a"/>
+                <check enabled="true" name="MISRAC2004-12.2_b"/>
+                <check enabled="true" name="MISRAC2004-12.2_c"/>
+                <check enabled="true" name="MISRAC2004-12.3"/>
+                <check enabled="true" name="MISRAC2004-12.4"/>
+                <check enabled="false" name="MISRAC2004-12.6_a"/>
+                <check enabled="false" name="MISRAC2004-12.6_b"/>
+                <check enabled="true" name="MISRAC2004-12.7"/>
+                <check enabled="true" name="MISRAC2004-12.8"/>
+                <check enabled="true" name="MISRAC2004-12.9"/>
+                <check enabled="true" name="MISRAC2004-12.10"/>
+                <check enabled="false" name="MISRAC2004-12.11"/>
+                <check enabled="true" name="MISRAC2004-12.12_a"/>
+                <check enabled="true" name="MISRAC2004-12.12_b"/>
+                <check enabled="false" name="MISRAC2004-12.13"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-13">
+                <check enabled="true" name="MISRAC2004-13.1"/>
+                <check enabled="false" name="MISRAC2004-13.2_a"/>
+                <check enabled="false" name="MISRAC2004-13.2_b"/>
+                <check enabled="false" name="MISRAC2004-13.2_c"/>
+                <check enabled="false" name="MISRAC2004-13.2_d"/>
+                <check enabled="false" name="MISRAC2004-13.2_e"/>
+                <check enabled="true" name="MISRAC2004-13.3"/>
+                <check enabled="true" name="MISRAC2004-13.4"/>
+                <check enabled="true" name="MISRAC2004-13.5"/>
+                <check enabled="true" name="MISRAC2004-13.6"/>
+                <check enabled="true" name="MISRAC2004-13.7_a"/>
+                <check enabled="true" name="MISRAC2004-13.7_b"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-14">
+                <check enabled="true" name="MISRAC2004-14.1"/>
+                <check enabled="true" name="MISRAC2004-14.2"/>
+                <check enabled="true" name="MISRAC2004-14.3"/>
+                <check enabled="true" name="MISRAC2004-14.4"/>
+                <check enabled="true" name="MISRAC2004-14.5"/>
+                <check enabled="true" name="MISRAC2004-14.6"/>
+                <check enabled="true" name="MISRAC2004-14.7"/>
+                <check enabled="true" name="MISRAC2004-14.8_a"/>
+                <check enabled="true" name="MISRAC2004-14.8_b"/>
+                <check enabled="true" name="MISRAC2004-14.8_c"/>
+                <check enabled="true" name="MISRAC2004-14.8_d"/>
+                <check enabled="true" name="MISRAC2004-14.9"/>
+                <check enabled="true" name="MISRAC2004-14.10"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-15">
+                <check enabled="true" name="MISRAC2004-15.0"/>
+                <check enabled="true" name="MISRAC2004-15.1"/>
+                <check enabled="true" name="MISRAC2004-15.2"/>
+                <check enabled="true" name="MISRAC2004-15.3"/>
+                <check enabled="true" name="MISRAC2004-15.4"/>
+                <check enabled="true" name="MISRAC2004-15.5"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-16">
+                <check enabled="true" name="MISRAC2004-16.1"/>
+                <check enabled="true" name="MISRAC2004-16.2_a"/>
+                <check enabled="true" name="MISRAC2004-16.2_b"/>
+                <check enabled="true" name="MISRAC2004-16.3"/>
+                <check enabled="true" name="MISRAC2004-16.5"/>
+                <check enabled="true" name="MISRAC2004-16.7"/>
+                <check enabled="true" name="MISRAC2004-16.8"/>
+                <check enabled="true" name="MISRAC2004-16.9"/>
+                <check enabled="true" name="MISRAC2004-16.10"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-17">
+                <check enabled="true" name="MISRAC2004-17.1_a"/>
+                <check enabled="true" name="MISRAC2004-17.1_b"/>
+                <check enabled="true" name="MISRAC2004-17.1_c"/>
+                <check enabled="true" name="MISRAC2004-17.4_a"/>
+                <check enabled="true" name="MISRAC2004-17.4_b"/>
+                <check enabled="true" name="MISRAC2004-17.5"/>
+                <check enabled="true" name="MISRAC2004-17.6_a"/>
+                <check enabled="true" name="MISRAC2004-17.6_b"/>
+                <check enabled="true" name="MISRAC2004-17.6_c"/>
+                <check enabled="true" name="MISRAC2004-17.6_d"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-18">
+                <check enabled="true" name="MISRAC2004-18.1"/>
+                <check enabled="true" name="MISRAC2004-18.2"/>
+                <check enabled="true" name="MISRAC2004-18.4"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-19">
+                <check enabled="false" name="MISRAC2004-19.2"/>
+                <check enabled="true" name="MISRAC2004-19.6"/>
+                <check enabled="false" name="MISRAC2004-19.7"/>
+                <check enabled="true" name="MISRAC2004-19.12"/>
+                <check enabled="false" name="MISRAC2004-19.13"/>
+                <check enabled="true" name="MISRAC2004-19.15"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-20">
+                <check enabled="true" name="MISRAC2004-20.1"/>
+                <check enabled="true" name="MISRAC2004-20.4"/>
+                <check enabled="true" name="MISRAC2004-20.5"/>
+                <check enabled="true" name="MISRAC2004-20.6"/>
+                <check enabled="true" name="MISRAC2004-20.7"/>
+                <check enabled="true" name="MISRAC2004-20.8"/>
+                <check enabled="true" name="MISRAC2004-20.9"/>
+                <check enabled="true" name="MISRAC2004-20.10"/>
+                <check enabled="true" name="MISRAC2004-20.11"/>
+                <check enabled="true" name="MISRAC2004-20.12"/>
+              </group>
+            </package>
+            <package enabled="false" name="MISRAC2012">
+              <group enabled="true" name="MISRAC2012-Dir-4">
+                <check enabled="true" name="MISRAC2012-Dir-4.3"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.4"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.5"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.6_a"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.6_b"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.7_a"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.7_b"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.7_c"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.8"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.9"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.10"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_a"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_b"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_c"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_d"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_e"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_f"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_g"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_h"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_i"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.12"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.13_b"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.13_c"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.13_d"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.13_e"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.13_f"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.13_g"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.13_h"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-1">
+                <check enabled="true" name="MISRAC2012-Rule-1.3_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_d"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_e"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_f"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_g"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_h"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_i"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_j"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_k"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_m"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_n"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_o"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_p"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_q"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_r"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_s"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_t"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_u"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_v"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_w"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-2">
+                <check enabled="true" name="MISRAC2012-Rule-2.1_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-2.1_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-2.2_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-2.2_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-2.2_c"/>
+                <check enabled="false" name="MISRAC2012-Rule-2.3"/>
+                <check enabled="false" name="MISRAC2012-Rule-2.4"/>
+                <check enabled="false" name="MISRAC2012-Rule-2.5"/>
+                <check enabled="false" name="MISRAC2012-Rule-2.6"/>
+                <check enabled="false" name="MISRAC2012-Rule-2.7"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-3">
+                <check enabled="true" name="MISRAC2012-Rule-3.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-3.2"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-5">
+                <check enabled="true" name="MISRAC2012-Rule-5.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.2_c89"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.2_c99"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.3_c89"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.3_c99"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.4_c89"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.4_c99"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.5_c89"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.5_c99"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.6"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.7"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.8"/>
+                <check enabled="false" name="MISRAC2012-Rule-5.9"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-6">
+                <check enabled="true" name="MISRAC2012-Rule-6.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-6.2"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-7">
+                <check enabled="true" name="MISRAC2012-Rule-7.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-7.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-7.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-7.4_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-7.4_b"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-8">
+                <check enabled="true" name="MISRAC2012-Rule-8.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.2_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.2_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.3_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.4"/>
+                <check enabled="false" name="MISRAC2012-Rule-8.5_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.5_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.6"/>
+                <check enabled="false" name="MISRAC2012-Rule-8.7"/>
+                <check enabled="false" name="MISRAC2012-Rule-8.9_a"/>
+                <check enabled="false" name="MISRAC2012-Rule-8.9_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.10"/>
+                <check enabled="false" name="MISRAC2012-Rule-8.11"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.12"/>
+                <check enabled="false" name="MISRAC2012-Rule-8.13"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.14"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-9">
+                <check enabled="true" name="MISRAC2012-Rule-9.1_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.1_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.1_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.1_d"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.1_e"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.1_f"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.4"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.5_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.5_b"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-10">
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R2"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R3"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R4"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R5"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R6"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R7"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R8"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.4_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.4_b"/>
+                <check enabled="false" name="MISRAC2012-Rule-10.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.6"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.7"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.8"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-11">
+                <check enabled="true" name="MISRAC2012-Rule-11.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-11.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-11.3"/>
+                <check enabled="false" name="MISRAC2012-Rule-11.4"/>
+                <check enabled="false" name="MISRAC2012-Rule-11.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-11.6"/>
+                <check enabled="true" name="MISRAC2012-Rule-11.7"/>
+                <check enabled="true" name="MISRAC2012-Rule-11.8"/>
+                <check enabled="true" name="MISRAC2012-Rule-11.9"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-12">
+                <check enabled="false" name="MISRAC2012-Rule-12.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-12.2"/>
+                <check enabled="false" name="MISRAC2012-Rule-12.3"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-13">
+                <check enabled="true" name="MISRAC2012-Rule-13.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-13.2_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-13.2_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-13.2_c"/>
+                <check enabled="false" name="MISRAC2012-Rule-13.3"/>
+                <check enabled="false" name="MISRAC2012-Rule-13.4_a"/>
+                <check enabled="false" name="MISRAC2012-Rule-13.4_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-13.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-13.6"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-14">
+                <check enabled="true" name="MISRAC2012-Rule-14.1_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.1_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.3_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.3_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.4_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.4_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.4_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.4_d"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-15">
+                <check enabled="false" name="MISRAC2012-Rule-15.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.3"/>
+                <check enabled="false" name="MISRAC2012-Rule-15.4"/>
+                <check enabled="false" name="MISRAC2012-Rule-15.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.6_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.6_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.6_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.6_d"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.6_e"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.7"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-16">
+                <check enabled="true" name="MISRAC2012-Rule-16.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-16.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-16.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-16.4"/>
+                <check enabled="true" name="MISRAC2012-Rule-16.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-16.6"/>
+                <check enabled="true" name="MISRAC2012-Rule-16.7"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-17">
+                <check enabled="true" name="MISRAC2012-Rule-17.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-17.2_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-17.2_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-17.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-17.4"/>
+                <check enabled="false" name="MISRAC2012-Rule-17.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-17.6"/>
+                <check enabled="true" name="MISRAC2012-Rule-17.7"/>
+                <check enabled="false" name="MISRAC2012-Rule-17.8"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-18">
+                <check enabled="true" name="MISRAC2012-Rule-18.1_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.1_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.1_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.1_d"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.4"/>
+                <check enabled="false" name="MISRAC2012-Rule-18.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.6_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.6_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.6_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.6_d"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.7"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.8"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-19">
+                <check enabled="true" name="MISRAC2012-Rule-19.1"/>
+                <check enabled="false" name="MISRAC2012-Rule-19.2"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-20">
+                <check enabled="false" name="MISRAC2012-Rule-20.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-20.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-20.4_c89"/>
+                <check enabled="true" name="MISRAC2012-Rule-20.4_c99"/>
+                <check enabled="false" name="MISRAC2012-Rule-20.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-20.7"/>
+                <check enabled="false" name="MISRAC2012-Rule-20.10"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-21">
+                <check enabled="true" name="MISRAC2012-Rule-21.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.4"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.6"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.7"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.8"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.9"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.10"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.11"/>
+                <check enabled="false" name="MISRAC2012-Rule-21.12_a"/>
+                <check enabled="false" name="MISRAC2012-Rule-21.12_b"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-22">
+                <check enabled="true" name="MISRAC2012-Rule-22.1_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.1_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.2_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.2_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.2_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.4"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.5_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.5_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.6"/>
+              </group>
+            </package>
+            <package enabled="false" name="MISRAC++2008">
+              <group enabled="true" name="MISRAC++2008-0-1">
+                <check enabled="true" name="MISRAC++2008-0-1-1"/>
+                <check enabled="true" name="MISRAC++2008-0-1-2_a"/>
+                <check enabled="true" name="MISRAC++2008-0-1-2_b"/>
+                <check enabled="true" name="MISRAC++2008-0-1-2_c"/>
+                <check enabled="true" name="MISRAC++2008-0-1-3"/>
+                <check enabled="true" name="MISRAC++2008-0-1-4_a"/>
+                <check enabled="true" name="MISRAC++2008-0-1-4_b"/>
+                <check enabled="true" name="MISRAC++2008-0-1-6"/>
+                <check enabled="true" name="MISRAC++2008-0-1-7"/>
+                <check enabled="false" name="MISRAC++2008-0-1-8"/>
+                <check enabled="true" name="MISRAC++2008-0-1-9"/>
+                <check enabled="true" name="MISRAC++2008-0-1-11"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-0-2">
+                <check enabled="true" name="MISRAC++2008-0-2-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-0-3">
+                <check enabled="true" name="MISRAC++2008-0-3-2"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-2-7">
+                <check enabled="true" name="MISRAC++2008-2-7-1"/>
+                <check enabled="true" name="MISRAC++2008-2-7-2"/>
+                <check enabled="false" name="MISRAC++2008-2-7-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-2-10">
+                <check enabled="true" name="MISRAC++2008-2-10-1"/>
+                <check enabled="true" name="MISRAC++2008-2-10-2"/>
+                <check enabled="true" name="MISRAC++2008-2-10-3"/>
+                <check enabled="true" name="MISRAC++2008-2-10-4"/>
+                <check enabled="false" name="MISRAC++2008-2-10-5"/>
+                <check enabled="true" name="MISRAC++2008-2-10-6"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-2-13">
+                <check enabled="true" name="MISRAC++2008-2-13-2"/>
+                <check enabled="true" name="MISRAC++2008-2-13-3"/>
+                <check enabled="true" name="MISRAC++2008-2-13-4_a"/>
+                <check enabled="true" name="MISRAC++2008-2-13-4_b"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-3-1">
+                <check enabled="true" name="MISRAC++2008-3-1-1"/>
+                <check enabled="true" name="MISRAC++2008-3-1-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-3-9">
+                <check enabled="false" name="MISRAC++2008-3-9-2"/>
+                <check enabled="true" name="MISRAC++2008-3-9-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-4-5">
+                <check enabled="true" name="MISRAC++2008-4-5-1"/>
+                <check enabled="true" name="MISRAC++2008-4-5-2"/>
+                <check enabled="true" name="MISRAC++2008-4-5-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-0">
+                <check enabled="true" name="MISRAC++2008-5-0-1_a"/>
+                <check enabled="true" name="MISRAC++2008-5-0-1_b"/>
+                <check enabled="true" name="MISRAC++2008-5-0-1_c"/>
+                <check enabled="false" name="MISRAC++2008-5-0-2"/>
+                <check enabled="true" name="MISRAC++2008-5-0-3"/>
+                <check enabled="true" name="MISRAC++2008-5-0-4"/>
+                <check enabled="true" name="MISRAC++2008-5-0-5"/>
+                <check enabled="true" name="MISRAC++2008-5-0-6"/>
+                <check enabled="true" name="MISRAC++2008-5-0-7"/>
+                <check enabled="true" name="MISRAC++2008-5-0-8"/>
+                <check enabled="true" name="MISRAC++2008-5-0-9"/>
+                <check enabled="true" name="MISRAC++2008-5-0-10"/>
+                <check enabled="true" name="MISRAC++2008-5-0-13_a"/>
+                <check enabled="true" name="MISRAC++2008-5-0-13_b"/>
+                <check enabled="true" name="MISRAC++2008-5-0-13_c"/>
+                <check enabled="true" name="MISRAC++2008-5-0-13_d"/>
+                <check enabled="true" name="MISRAC++2008-5-0-14"/>
+                <check enabled="true" name="MISRAC++2008-5-0-15_a"/>
+                <check enabled="true" name="MISRAC++2008-5-0-15_b"/>
+                <check enabled="true" name="MISRAC++2008-5-0-16_a"/>
+                <check enabled="true" name="MISRAC++2008-5-0-16_b"/>
+                <check enabled="true" name="MISRAC++2008-5-0-16_c"/>
+                <check enabled="true" name="MISRAC++2008-5-0-16_d"/>
+                <check enabled="true" name="MISRAC++2008-5-0-16_e"/>
+                <check enabled="true" name="MISRAC++2008-5-0-16_f"/>
+                <check enabled="true" name="MISRAC++2008-5-0-19"/>
+                <check enabled="true" name="MISRAC++2008-5-0-21"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-2">
+                <check enabled="true" name="MISRAC++2008-5-2-4"/>
+                <check enabled="true" name="MISRAC++2008-5-2-5"/>
+                <check enabled="true" name="MISRAC++2008-5-2-6"/>
+                <check enabled="true" name="MISRAC++2008-5-2-7"/>
+                <check enabled="false" name="MISRAC++2008-5-2-9"/>
+                <check enabled="false" name="MISRAC++2008-5-2-10"/>
+                <check enabled="true" name="MISRAC++2008-5-2-11_a"/>
+                <check enabled="true" name="MISRAC++2008-5-2-11_b"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-3">
+                <check enabled="true" name="MISRAC++2008-5-3-1"/>
+                <check enabled="true" name="MISRAC++2008-5-3-2_a"/>
+                <check enabled="true" name="MISRAC++2008-5-3-2_b"/>
+                <check enabled="true" name="MISRAC++2008-5-3-3"/>
+                <check enabled="true" name="MISRAC++2008-5-3-4"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-8">
+                <check enabled="true" name="MISRAC++2008-5-8-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-14">
+                <check enabled="true" name="MISRAC++2008-5-14-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-18">
+                <check enabled="true" name="MISRAC++2008-5-18-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-19">
+                <check enabled="false" name="MISRAC++2008-5-19-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-6-2">
+                <check enabled="true" name="MISRAC++2008-6-2-1"/>
+                <check enabled="true" name="MISRAC++2008-6-2-2"/>
+                <check enabled="false" name="MISRAC++2008-6-2-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-6-3">
+                <check enabled="true" name="MISRAC++2008-6-3-1_a"/>
+                <check enabled="true" name="MISRAC++2008-6-3-1_b"/>
+                <check enabled="true" name="MISRAC++2008-6-3-1_c"/>
+                <check enabled="true" name="MISRAC++2008-6-3-1_d"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-6-4">
+                <check enabled="true" name="MISRAC++2008-6-4-1"/>
+                <check enabled="true" name="MISRAC++2008-6-4-2"/>
+                <check enabled="true" name="MISRAC++2008-6-4-3"/>
+                <check enabled="true" name="MISRAC++2008-6-4-4"/>
+                <check enabled="true" name="MISRAC++2008-6-4-5"/>
+                <check enabled="true" name="MISRAC++2008-6-4-6"/>
+                <check enabled="true" name="MISRAC++2008-6-4-7"/>
+                <check enabled="true" name="MISRAC++2008-6-4-8"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-6-5">
+                <check enabled="true" name="MISRAC++2008-6-5-1_a"/>
+                <check enabled="true" name="MISRAC++2008-6-5-2"/>
+                <check enabled="true" name="MISRAC++2008-6-5-3"/>
+                <check enabled="true" name="MISRAC++2008-6-5-4"/>
+                <check enabled="true" name="MISRAC++2008-6-5-6"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-6-6">
+                <check enabled="true" name="MISRAC++2008-6-6-1"/>
+                <check enabled="true" name="MISRAC++2008-6-6-2"/>
+                <check enabled="true" name="MISRAC++2008-6-6-4"/>
+                <check enabled="true" name="MISRAC++2008-6-6-5"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-7-1">
+                <check enabled="true" name="MISRAC++2008-7-1-1"/>
+                <check enabled="true" name="MISRAC++2008-7-1-2"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-7-2">
+                <check enabled="true" name="MISRAC++2008-7-2-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-7-4">
+                <check enabled="true" name="MISRAC++2008-7-4-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-7-5">
+                <check enabled="true" name="MISRAC++2008-7-5-1_a"/>
+                <check enabled="true" name="MISRAC++2008-7-5-1_b"/>
+                <check enabled="true" name="MISRAC++2008-7-5-2_a"/>
+                <check enabled="true" name="MISRAC++2008-7-5-2_b"/>
+                <check enabled="true" name="MISRAC++2008-7-5-2_c"/>
+                <check enabled="true" name="MISRAC++2008-7-5-2_d"/>
+                <check enabled="false" name="MISRAC++2008-7-5-4_a"/>
+                <check enabled="false" name="MISRAC++2008-7-5-4_b"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-8-0">
+                <check enabled="true" name="MISRAC++2008-8-0-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-8-4">
+                <check enabled="true" name="MISRAC++2008-8-4-1"/>
+                <check enabled="true" name="MISRAC++2008-8-4-3"/>
+                <check enabled="true" name="MISRAC++2008-8-4-4"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-8-5">
+                <check enabled="true" name="MISRAC++2008-8-5-1_a"/>
+                <check enabled="true" name="MISRAC++2008-8-5-1_b"/>
+                <check enabled="true" name="MISRAC++2008-8-5-1_c"/>
+                <check enabled="true" name="MISRAC++2008-8-5-2"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-9-3">
+                <check enabled="true" name="MISRAC++2008-9-3-1"/>
+                <check enabled="true" name="MISRAC++2008-9-3-2"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-9-5">
+                <check enabled="true" name="MISRAC++2008-9-5-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-9-6">
+                <check enabled="true" name="MISRAC++2008-9-6-2"/>
+                <check enabled="true" name="MISRAC++2008-9-6-3"/>
+                <check enabled="true" name="MISRAC++2008-9-6-4"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-12-1">
+                <check enabled="true" name="MISRAC++2008-12-1-1_a"/>
+                <check enabled="true" name="MISRAC++2008-12-1-1_b"/>
+                <check enabled="true" name="MISRAC++2008-12-1-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-16-0">
+                <check enabled="true" name="MISRAC++2008-16-0-3"/>
+                <check enabled="true" name="MISRAC++2008-16-0-4"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-16-2">
+                <check enabled="true" name="MISRAC++2008-16-2-2"/>
+                <check enabled="true" name="MISRAC++2008-16-2-3"/>
+                <check enabled="true" name="MISRAC++2008-16-2-4"/>
+                <check enabled="false" name="MISRAC++2008-16-2-5"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-16-3">
+                <check enabled="true" name="MISRAC++2008-16-3-1"/>
+                <check enabled="false" name="MISRAC++2008-16-3-2"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-17-0">
+                <check enabled="true" name="MISRAC++2008-17-0-1"/>
+                <check enabled="true" name="MISRAC++2008-17-0-3"/>
+                <check enabled="true" name="MISRAC++2008-17-0-5"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-18-0">
+                <check enabled="true" name="MISRAC++2008-18-0-1"/>
+                <check enabled="true" name="MISRAC++2008-18-0-2"/>
+                <check enabled="true" name="MISRAC++2008-18-0-3"/>
+                <check enabled="true" name="MISRAC++2008-18-0-4"/>
+                <check enabled="true" name="MISRAC++2008-18-0-5"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-18-2">
+                <check enabled="true" name="MISRAC++2008-18-2-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-18-4">
+                <check enabled="true" name="MISRAC++2008-18-4-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-18-7">
+                <check enabled="true" name="MISRAC++2008-18-7-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-19-3">
+                <check enabled="true" name="MISRAC++2008-19-3-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-27-0">
+                <check enabled="true" name="MISRAC++2008-27-0-1"/>
+              </group>
+            </package>
+          </checks_tree>
+        </cstat_settings>
+      </data>
+    </settings>
+  </configuration>
+  <configuration>
+    <name>Release</name>
+    <toolchain>
+      <name>AVR</name>
+    </toolchain>
+    <debug>0</debug>
+    <settings>
+      <name>C-STAT</name>
+      <archiveVersion>260</archiveVersion>
+      <data>
+        <version>260</version>
+        <cstatargs>
+          <useExtraArgs>0</useExtraArgs>
+          <extraArgs></extraArgs>
+          <analyzeTimeoutEnabled>1</analyzeTimeoutEnabled>
+          <analyzeTimeout>600</analyzeTimeout>
+          <enableParallel>0</enableParallel>
+          <parallelThreads>2</parallelThreads>
+          <enableFalsePositives>0</enableFalsePositives>
+          <messagesLimitEnabled>1</messagesLimitEnabled>
+          <messagesLimit>100</messagesLimit>
+        </cstatargs>
+        <cstat_settings>
+          <cstat_version>1.4.2</cstat_version>
+          <checks_tree>
+            <package enabled="true" name="STDCHECKS">
+              <group enabled="true" name="ARR">
+                <check enabled="true" name="ARR-inv-index-pos"/>
+                <check enabled="true" name="ARR-inv-index-ptr-pos"/>
+                <check enabled="true" name="ARR-inv-index-ptr"/>
+                <check enabled="true" name="ARR-inv-index"/>
+                <check enabled="true" name="ARR-neg-index"/>
+                <check enabled="true" name="ARR-uninit-index"/>
+              </group>
+              <group enabled="true" name="ATH">
+                <check enabled="true" name="ATH-cmp-float"/>
+                <check enabled="true" name="ATH-cmp-unsign-neg"/>
+                <check enabled="true" name="ATH-cmp-unsign-pos"/>
+                <check enabled="true" name="ATH-div-0-assign"/>
+                <check enabled="false" name="ATH-div-0-cmp-aft"/>
+                <check enabled="true" name="ATH-div-0-cmp-bef"/>
+                <check enabled="true" name="ATH-div-0-interval"/>
+                <check enabled="true" name="ATH-div-0-pos"/>
+                <check enabled="true" name="ATH-div-0-unchk-global"/>
+                <check enabled="true" name="ATH-div-0-unchk-local"/>
+                <check enabled="true" name="ATH-div-0-unchk-param"/>
+                <check enabled="true" name="ATH-div-0"/>
+                <check enabled="true" name="ATH-inc-bool"/>
+                <check enabled="true" name="ATH-malloc-overrun"/>
+                <check enabled="true" name="ATH-neg-check-nonneg"/>
+                <check enabled="true" name="ATH-neg-check-pos"/>
+                <check enabled="true" name="ATH-new-overrun"/>
+                <check enabled="false" name="ATH-overflow-cast"/>
+                <check enabled="true" name="ATH-overflow"/>
+                <check enabled="true" name="ATH-shift-bounds"/>
+                <check enabled="true" name="ATH-shift-neg"/>
+                <check enabled="true" name="ATH-sizeof-by-sizeof"/>
+              </group>
+              <group enabled="true" name="CAST">
+                <check enabled="false" name="CAST-old-style"/>
+              </group>
+              <group enabled="true" name="COMMA">
+                <check enabled="false" name="COMMA-overload"/>
+              </group>
+              <group enabled="true" name="COMMENT">
+                <check enabled="true" name="COMMENT-nested"/>
+              </group>
+              <group enabled="true" name="CONST">
+                <check enabled="true" name="CONST-member-ret"/>
+              </group>
+              <group enabled="true" name="COP">
+                <check enabled="false" name="COP-alloc-ctor"/>
+                <check enabled="true" name="COP-assign-op-ret"/>
+                <check enabled="true" name="COP-assign-op-self"/>
+                <check enabled="true" name="COP-assign-op"/>
+                <check enabled="true" name="COP-copy-ctor"/>
+                <check enabled="false" name="COP-dealloc-dtor"/>
+                <check enabled="true" name="COP-dtor"/>
+                <check enabled="true" name="COP-init-order"/>
+                <check enabled="true" name="COP-init-uninit"/>
+                <check enabled="true" name="COP-member-uninit"/>
+              </group>
+              <group enabled="true" name="CPU">
+                <check enabled="true" name="CPU-ctor-call-virt"/>
+                <check enabled="false" name="CPU-ctor-implicit"/>
+                <check enabled="true" name="CPU-delete-void"/>
+                <check enabled="true" name="CPU-dtor-call-virt"/>
+                <check enabled="true" name="CPU-malloc-class"/>
+                <check enabled="true" name="CPU-nonvirt-dtor"/>
+                <check enabled="true" name="CPU-return-ref-to-class-data"/>
+              </group>
+              <group enabled="true" name="DECL">
+                <check enabled="false" name="DECL-implicit-int"/>
+              </group>
+              <group enabled="true" name="DEFINE">
+                <check enabled="true" name="DEFINE-hash-multiple"/>
+              </group>
+              <group enabled="true" name="ENUM">
+                <check enabled="false" name="ENUM-bounds"/>
+              </group>
+              <group enabled="true" name="EXP">
+                <check enabled="true" name="EXP-cond-assign"/>
+                <check enabled="true" name="EXP-dangling-else"/>
+                <check enabled="true" name="EXP-loop-exit"/>
+                <check enabled="false" name="EXP-main-ret-int"/>
+                <check enabled="false" name="EXP-null-stmt"/>
+                <check enabled="false" name="EXP-stray-semicolon"/>
+              </group>
+              <group enabled="true" name="EXPR">
+                <check enabled="true" name="EXPR-const-overflow"/>
+              </group>
+              <group enabled="true" name="FPT">
+                <check enabled="true" name="FPT-cmp-null"/>
+                <check enabled="false" name="FPT-literal"/>
+                <check enabled="true" name="FPT-misuse"/>
+              </group>
+              <group enabled="true" name="FUNC">
+                <check enabled="false" name="FUNC-implicit-decl"/>
+                <check enabled="false" name="FUNC-unprototyped-all"/>
+                <check enabled="true" name="FUNC-unprototyped-used"/>
+              </group>
+              <group enabled="true" name="INCLUDE">
+                <check enabled="false" name="INCLUDE-c-file"/>
+              </group>
+              <group enabled="true" name="INT">
+                <check enabled="false" name="INT-use-signed-as-unsigned-pos"/>
+                <check enabled="true" name="INT-use-signed-as-unsigned"/>
+              </group>
+              <group enabled="true" name="ITR">
+                <check enabled="true" name="ITR-end-cmp-aft"/>
+                <check enabled="true" name="ITR-end-cmp-bef"/>
+                <check enabled="true" name="ITR-invalidated"/>
+                <check enabled="false" name="ITR-mismatch-alg"/>
+                <check enabled="false" name="ITR-store"/>
+                <check enabled="true" name="ITR-uninit"/>
+              </group>
+              <group enabled="true" name="LIB">
+                <check enabled="false" name="LIB-bsearch-overrun-pos"/>
+                <check enabled="false" name="LIB-bsearch-overrun"/>
+                <check enabled="false" name="LIB-fn-unsafe"/>
+                <check enabled="false" name="LIB-fread-overrun-pos"/>
+                <check enabled="true" name="LIB-fread-overrun"/>
+                <check enabled="false" name="LIB-memchr-overrun-pos"/>
+                <check enabled="true" name="LIB-memchr-overrun"/>
+                <check enabled="false" name="LIB-memcpy-overrun-pos"/>
+                <check enabled="true" name="LIB-memcpy-overrun"/>
+                <check enabled="false" name="LIB-memset-overrun-pos"/>
+                <check enabled="true" name="LIB-memset-overrun"/>
+                <check enabled="false" name="LIB-putenv"/>
+                <check enabled="false" name="LIB-qsort-overrun-pos"/>
+                <check enabled="false" name="LIB-qsort-overrun"/>
+                <check enabled="true" name="LIB-return-const"/>
+                <check enabled="true" name="LIB-return-error"/>
+                <check enabled="true" name="LIB-return-leak"/>
+                <check enabled="true" name="LIB-return-neg"/>
+                <check enabled="true" name="LIB-return-null"/>
+                <check enabled="false" name="LIB-sprintf-overrun"/>
+                <check enabled="false" name="LIB-std-sort-overrun-pos"/>
+                <check enabled="true" name="LIB-std-sort-overrun"/>
+                <check enabled="false" name="LIB-strcat-overrun-pos"/>
+                <check enabled="true" name="LIB-strcat-overrun"/>
+                <check enabled="false" name="LIB-strcpy-overrun-pos"/>
+                <check enabled="true" name="LIB-strcpy-overrun"/>
+                <check enabled="false" name="LIB-strncat-overrun-pos"/>
+                <check enabled="true" name="LIB-strncat-overrun"/>
+                <check enabled="false" name="LIB-strncmp-overrun-pos"/>
+                <check enabled="true" name="LIB-strncmp-overrun"/>
+                <check enabled="false" name="LIB-strncpy-overrun-pos"/>
+                <check enabled="true" name="LIB-strncpy-overrun"/>
+              </group>
+              <group enabled="true" name="LOGIC">
+                <check enabled="false" name="LOGIC-overload"/>
+              </group>
+              <group enabled="true" name="MEM">
+                <check enabled="true" name="MEM-delete-array-op"/>
+                <check enabled="true" name="MEM-delete-op"/>
+                <check enabled="true" name="MEM-double-free-alias"/>
+                <check enabled="true" name="MEM-double-free-some"/>
+                <check enabled="true" name="MEM-double-free"/>
+                <check enabled="true" name="MEM-free-field"/>
+                <check enabled="true" name="MEM-free-fptr"/>
+                <check enabled="false" name="MEM-free-no-alloc-struct"/>
+                <check enabled="false" name="MEM-free-no-alloc"/>
+                <check enabled="true" name="MEM-free-no-use"/>
+                <check enabled="true" name="MEM-free-op"/>
+                <check enabled="true" name="MEM-free-struct-field"/>
+                <check enabled="true" name="MEM-free-variable-alias"/>
+                <check enabled="true" name="MEM-free-variable"/>
+                <check enabled="true" name="MEM-leak-alias"/>
+                <check enabled="false" name="MEM-leak"/>
+                <check enabled="false" name="MEM-malloc-arith"/>
+                <check enabled="true" name="MEM-malloc-diff-type"/>
+                <check enabled="true" name="MEM-malloc-sizeof-ptr"/>
+                <check enabled="true" name="MEM-malloc-sizeof"/>
+                <check enabled="false" name="MEM-malloc-strlen"/>
+                <check enabled="true" name="MEM-realloc-diff-type"/>
+                <check enabled="true" name="MEM-return-free"/>
+                <check enabled="true" name="MEM-return-no-assign"/>
+                <check enabled="true" name="MEM-stack-global-field"/>
+                <check enabled="true" name="MEM-stack-global"/>
+                <check enabled="true" name="MEM-stack-param-ref"/>
+                <check enabled="true" name="MEM-stack-param"/>
+                <check enabled="true" name="MEM-stack-pos"/>
+                <check enabled="true" name="MEM-stack-ref"/>
+                <check enabled="true" name="MEM-stack"/>
+                <check enabled="true" name="MEM-use-free-all"/>
+                <check enabled="true" name="MEM-use-free-some"/>
+              </group>
+              <group enabled="true" name="PTR">
+                <check enabled="true" name="PTR-arith-field"/>
+                <check enabled="true" name="PTR-arith-stack"/>
+                <check enabled="true" name="PTR-arith-var"/>
+                <check enabled="true" name="PTR-cmp-str-lit"/>
+                <check enabled="false" name="PTR-null-assign-fun-pos"/>
+                <check enabled="false" name="PTR-null-assign-pos"/>
+                <check enabled="true" name="PTR-null-assign"/>
+                <check enabled="true" name="PTR-null-cmp-aft"/>
+                <check enabled="true" name="PTR-null-cmp-bef-fun"/>
+                <check enabled="true" name="PTR-null-cmp-bef"/>
+                <check enabled="true" name="PTR-null-fun-pos"/>
+                <check enabled="false" name="PTR-null-literal-pos"/>
+                <check enabled="false" name="PTR-overload"/>
+                <check enabled="false" name="PTR-singleton-arith-pos"/>
+                <check enabled="true" name="PTR-singleton-arith"/>
+                <check enabled="true" name="PTR-unchk-param-some"/>
+                <check enabled="false" name="PTR-unchk-param"/>
+                <check enabled="false" name="PTR-uninit-pos"/>
+                <check enabled="true" name="PTR-uninit"/>
+              </group>
+              <group enabled="true" name="RED">
+                <check enabled="false" name="RED-alloc-zero-bytes"/>
+                <check enabled="false" name="RED-case-reach"/>
+                <check enabled="false" name="RED-cmp-always"/>
+                <check enabled="false" name="RED-cmp-never"/>
+                <check enabled="false" name="RED-cond-always"/>
+                <check enabled="true" name="RED-cond-const-assign"/>
+                <check enabled="false" name="RED-cond-const-expr"/>
+                <check enabled="false" name="RED-cond-const"/>
+                <check enabled="false" name="RED-cond-never"/>
+                <check enabled="true" name="RED-dead"/>
+                <check enabled="false" name="RED-expr"/>
+                <check enabled="false" name="RED-func-no-effect"/>
+                <check enabled="true" name="RED-local-hides-global"/>
+                <check enabled="false" name="RED-local-hides-local"/>
+                <check enabled="false" name="RED-local-hides-member"/>
+                <check enabled="true" name="RED-local-hides-param"/>
+                <check enabled="false" name="RED-no-effect"/>
+                <check enabled="true" name="RED-self-assign"/>
+                <check enabled="true" name="RED-unused-assign"/>
+                <check enabled="false" name="RED-unused-param"/>
+                <check enabled="false" name="RED-unused-return-val"/>
+                <check enabled="false" name="RED-unused-val"/>
+                <check enabled="true" name="RED-unused-var-all"/>
+              </group>
+              <group enabled="true" name="RESOURCE">
+                <check enabled="false" name="RESOURCE-deref-file"/>
+                <check enabled="true" name="RESOURCE-double-close"/>
+                <check enabled="true" name="RESOURCE-file-no-close-all"/>
+                <check enabled="false" name="RESOURCE-file-pos-neg"/>
+                <check enabled="true" name="RESOURCE-file-use-after-close"/>
+                <check enabled="false" name="RESOURCE-implicit-deref-file"/>
+                <check enabled="true" name="RESOURCE-write-ronly-file"/>
+              </group>
+              <group enabled="true" name="SIZEOF">
+                <check enabled="true" name="SIZEOF-side-effect"/>
+              </group>
+              <group enabled="true" name="SPC">
+                <check enabled="true" name="SPC-order"/>
+                <check enabled="false" name="SPC-uninit-arr-all"/>
+                <check enabled="true" name="SPC-uninit-struct-field-heap"/>
+                <check enabled="false" name="SPC-uninit-struct-field"/>
+                <check enabled="true" name="SPC-uninit-struct"/>
+                <check enabled="true" name="SPC-uninit-var-all"/>
+                <check enabled="true" name="SPC-uninit-var-some"/>
+                <check enabled="false" name="SPC-volatile-reads"/>
+                <check enabled="false" name="SPC-volatile-writes"/>
+              </group>
+              <group enabled="true" name="STRUCT">
+                <check enabled="false" name="STRUCT-signed-bit"/>
+              </group>
+              <group enabled="true" name="SWITCH">
+                <check enabled="true" name="SWITCH-fall-through"/>
+              </group>
+              <group enabled="true" name="UNION">
+                <check enabled="true" name="UNION-overlap-assign"/>
+                <check enabled="true" name="UNION-type-punning"/>
+              </group>
+            </package>
+            <package enabled="false" name="CERT">
+              <group enabled="true" name="CERT-EXP">
+                <check enabled="true" name="CERT-EXP19-C"/>
+              </group>
+              <group enabled="true" name="CERT-FIO">
+                <check enabled="true" name="CERT-FIO37-C"/>
+                <check enabled="true" name="CERT-FIO38-C"/>
+              </group>
+              <group enabled="true" name="CERT-SIG">
+                <check enabled="true" name="CERT-SIG31-C"/>
+              </group>
+            </package>
+            <package enabled="false" name="SECURITY">
+              <group enabled="true" name="SEC-BUFFER">
+                <check enabled="true" name="SEC-BUFFER-memory-leak-alias"/>
+                <check enabled="false" name="SEC-BUFFER-memory-leak"/>
+                <check enabled="false" name="SEC-BUFFER-memset-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-memset-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-qsort-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-qsort-overrun"/>
+                <check enabled="true" name="SEC-BUFFER-sprintf-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-std-sort-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-std-sort-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-strcat-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-strcat-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-strcpy-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-strcpy-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-strncat-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-strncat-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-strncmp-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-strncmp-overrun"/>
+                <check enabled="false" name="SEC-BUFFER-strncpy-overrun-pos"/>
+                <check enabled="true" name="SEC-BUFFER-strncpy-overrun"/>
+                <check enabled="true" name="SEC-BUFFER-tainted-alloc-size"/>
+                <check enabled="true" name="SEC-BUFFER-tainted-copy-length"/>
+                <check enabled="true" name="SEC-BUFFER-tainted-copy"/>
+                <check enabled="true" name="SEC-BUFFER-tainted-index"/>
+                <check enabled="true" name="SEC-BUFFER-tainted-offset"/>
+                <check enabled="true" name="SEC-BUFFER-use-after-free-all"/>
+                <check enabled="true" name="SEC-BUFFER-use-after-free-some"/>
+              </group>
+              <group enabled="true" name="SEC-DIV-0">
+                <check enabled="true" name="SEC-DIV-0-compare-after"/>
+                <check enabled="true" name="SEC-DIV-0-compare-before"/>
+                <check enabled="true" name="SEC-DIV-0-tainted"/>
+              </group>
+              <group enabled="true" name="SEC-FILEOP">
+                <check enabled="true" name="SEC-FILEOP-open-no-close"/>
+                <check enabled="false" name="SEC-FILEOP-path-traversal"/>
+                <check enabled="true" name="SEC-FILEOP-use-after-close"/>
+              </group>
+              <group enabled="true" name="SEC-INJECTION">
+                <check enabled="false" name="SEC-INJECTION-sql"/>
+                <check enabled="false" name="SEC-INJECTION-xpath"/>
+              </group>
+              <group enabled="true" name="SEC-LOOP">
+                <check enabled="true" name="SEC-LOOP-tainted-bound"/>
+              </group>
+              <group enabled="true" name="SEC-NULL">
+                <check enabled="false" name="SEC-NULL-assignment-fun-pos"/>
+                <check enabled="true" name="SEC-NULL-assignment"/>
+                <check enabled="true" name="SEC-NULL-cmp-aft"/>
+                <check enabled="true" name="SEC-NULL-cmp-bef-fun"/>
+                <check enabled="true" name="SEC-NULL-cmp-bef"/>
+                <check enabled="false" name="SEC-NULL-literal-pos"/>
+              </group>
+              <group enabled="true" name="SEC-STRING">
+                <check enabled="true" name="SEC-STRING-format-string"/>
+                <check enabled="false" name="SEC-STRING-hard-coded-credentials"/>
+              </group>
+            </package>
+            <package enabled="false" name="MISRAC2004">
+              <group enabled="true" name="MISRAC2004-1">
+                <check enabled="true" name="MISRAC2004-1.1"/>
+                <check enabled="true" name="MISRAC2004-1.2_a"/>
+                <check enabled="true" name="MISRAC2004-1.2_b"/>
+                <check enabled="true" name="MISRAC2004-1.2_c"/>
+                <check enabled="true" name="MISRAC2004-1.2_d"/>
+                <check enabled="true" name="MISRAC2004-1.2_e"/>
+                <check enabled="true" name="MISRAC2004-1.2_f"/>
+                <check enabled="true" name="MISRAC2004-1.2_g"/>
+                <check enabled="true" name="MISRAC2004-1.2_h"/>
+                <check enabled="true" name="MISRAC2004-1.2_i"/>
+                <check enabled="true" name="MISRAC2004-1.2_j"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-2">
+                <check enabled="true" name="MISRAC2004-2.1"/>
+                <check enabled="true" name="MISRAC2004-2.2"/>
+                <check enabled="true" name="MISRAC2004-2.3"/>
+                <check enabled="false" name="MISRAC2004-2.4"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-5">
+                <check enabled="true" name="MISRAC2004-5.2"/>
+                <check enabled="true" name="MISRAC2004-5.3"/>
+                <check enabled="true" name="MISRAC2004-5.4"/>
+                <check enabled="false" name="MISRAC2004-5.5"/>
+                <check enabled="false" name="MISRAC2004-5.6"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-6">
+                <check enabled="true" name="MISRAC2004-6.1"/>
+                <check enabled="false" name="MISRAC2004-6.3"/>
+                <check enabled="true" name="MISRAC2004-6.4"/>
+                <check enabled="true" name="MISRAC2004-6.5"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-7">
+                <check enabled="true" name="MISRAC2004-7.1"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-8">
+                <check enabled="true" name="MISRAC2004-8.1"/>
+                <check enabled="true" name="MISRAC2004-8.2"/>
+                <check enabled="true" name="MISRAC2004-8.5_a"/>
+                <check enabled="true" name="MISRAC2004-8.5_b"/>
+                <check enabled="true" name="MISRAC2004-8.12"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-9">
+                <check enabled="true" name="MISRAC2004-9.1_a"/>
+                <check enabled="true" name="MISRAC2004-9.1_b"/>
+                <check enabled="true" name="MISRAC2004-9.1_c"/>
+                <check enabled="true" name="MISRAC2004-9.2"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-10">
+                <check enabled="true" name="MISRAC2004-10.1_a"/>
+                <check enabled="true" name="MISRAC2004-10.1_b"/>
+                <check enabled="true" name="MISRAC2004-10.1_c"/>
+                <check enabled="true" name="MISRAC2004-10.1_d"/>
+                <check enabled="true" name="MISRAC2004-10.2_a"/>
+                <check enabled="true" name="MISRAC2004-10.2_b"/>
+                <check enabled="true" name="MISRAC2004-10.2_c"/>
+                <check enabled="true" name="MISRAC2004-10.2_d"/>
+                <check enabled="true" name="MISRAC2004-10.3"/>
+                <check enabled="true" name="MISRAC2004-10.4"/>
+                <check enabled="true" name="MISRAC2004-10.5"/>
+                <check enabled="true" name="MISRAC2004-10.6"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-11">
+                <check enabled="true" name="MISRAC2004-11.1"/>
+                <check enabled="false" name="MISRAC2004-11.3"/>
+                <check enabled="false" name="MISRAC2004-11.4"/>
+                <check enabled="true" name="MISRAC2004-11.5"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-12">
+                <check enabled="false" name="MISRAC2004-12.1"/>
+                <check enabled="true" name="MISRAC2004-12.2_a"/>
+                <check enabled="true" name="MISRAC2004-12.2_b"/>
+                <check enabled="true" name="MISRAC2004-12.2_c"/>
+                <check enabled="true" name="MISRAC2004-12.3"/>
+                <check enabled="true" name="MISRAC2004-12.4"/>
+                <check enabled="false" name="MISRAC2004-12.6_a"/>
+                <check enabled="false" name="MISRAC2004-12.6_b"/>
+                <check enabled="true" name="MISRAC2004-12.7"/>
+                <check enabled="true" name="MISRAC2004-12.8"/>
+                <check enabled="true" name="MISRAC2004-12.9"/>
+                <check enabled="true" name="MISRAC2004-12.10"/>
+                <check enabled="false" name="MISRAC2004-12.11"/>
+                <check enabled="true" name="MISRAC2004-12.12_a"/>
+                <check enabled="true" name="MISRAC2004-12.12_b"/>
+                <check enabled="false" name="MISRAC2004-12.13"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-13">
+                <check enabled="true" name="MISRAC2004-13.1"/>
+                <check enabled="false" name="MISRAC2004-13.2_a"/>
+                <check enabled="false" name="MISRAC2004-13.2_b"/>
+                <check enabled="false" name="MISRAC2004-13.2_c"/>
+                <check enabled="false" name="MISRAC2004-13.2_d"/>
+                <check enabled="false" name="MISRAC2004-13.2_e"/>
+                <check enabled="true" name="MISRAC2004-13.3"/>
+                <check enabled="true" name="MISRAC2004-13.4"/>
+                <check enabled="true" name="MISRAC2004-13.5"/>
+                <check enabled="true" name="MISRAC2004-13.6"/>
+                <check enabled="true" name="MISRAC2004-13.7_a"/>
+                <check enabled="true" name="MISRAC2004-13.7_b"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-14">
+                <check enabled="true" name="MISRAC2004-14.1"/>
+                <check enabled="true" name="MISRAC2004-14.2"/>
+                <check enabled="true" name="MISRAC2004-14.3"/>
+                <check enabled="true" name="MISRAC2004-14.4"/>
+                <check enabled="true" name="MISRAC2004-14.5"/>
+                <check enabled="true" name="MISRAC2004-14.6"/>
+                <check enabled="true" name="MISRAC2004-14.7"/>
+                <check enabled="true" name="MISRAC2004-14.8_a"/>
+                <check enabled="true" name="MISRAC2004-14.8_b"/>
+                <check enabled="true" name="MISRAC2004-14.8_c"/>
+                <check enabled="true" name="MISRAC2004-14.8_d"/>
+                <check enabled="true" name="MISRAC2004-14.9"/>
+                <check enabled="true" name="MISRAC2004-14.10"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-15">
+                <check enabled="true" name="MISRAC2004-15.0"/>
+                <check enabled="true" name="MISRAC2004-15.1"/>
+                <check enabled="true" name="MISRAC2004-15.2"/>
+                <check enabled="true" name="MISRAC2004-15.3"/>
+                <check enabled="true" name="MISRAC2004-15.4"/>
+                <check enabled="true" name="MISRAC2004-15.5"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-16">
+                <check enabled="true" name="MISRAC2004-16.1"/>
+                <check enabled="true" name="MISRAC2004-16.2_a"/>
+                <check enabled="true" name="MISRAC2004-16.2_b"/>
+                <check enabled="true" name="MISRAC2004-16.3"/>
+                <check enabled="true" name="MISRAC2004-16.5"/>
+                <check enabled="true" name="MISRAC2004-16.7"/>
+                <check enabled="true" name="MISRAC2004-16.8"/>
+                <check enabled="true" name="MISRAC2004-16.9"/>
+                <check enabled="true" name="MISRAC2004-16.10"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-17">
+                <check enabled="true" name="MISRAC2004-17.1_a"/>
+                <check enabled="true" name="MISRAC2004-17.1_b"/>
+                <check enabled="true" name="MISRAC2004-17.1_c"/>
+                <check enabled="true" name="MISRAC2004-17.4_a"/>
+                <check enabled="true" name="MISRAC2004-17.4_b"/>
+                <check enabled="true" name="MISRAC2004-17.5"/>
+                <check enabled="true" name="MISRAC2004-17.6_a"/>
+                <check enabled="true" name="MISRAC2004-17.6_b"/>
+                <check enabled="true" name="MISRAC2004-17.6_c"/>
+                <check enabled="true" name="MISRAC2004-17.6_d"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-18">
+                <check enabled="true" name="MISRAC2004-18.1"/>
+                <check enabled="true" name="MISRAC2004-18.2"/>
+                <check enabled="true" name="MISRAC2004-18.4"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-19">
+                <check enabled="false" name="MISRAC2004-19.2"/>
+                <check enabled="true" name="MISRAC2004-19.6"/>
+                <check enabled="false" name="MISRAC2004-19.7"/>
+                <check enabled="true" name="MISRAC2004-19.12"/>
+                <check enabled="false" name="MISRAC2004-19.13"/>
+                <check enabled="true" name="MISRAC2004-19.15"/>
+              </group>
+              <group enabled="true" name="MISRAC2004-20">
+                <check enabled="true" name="MISRAC2004-20.1"/>
+                <check enabled="true" name="MISRAC2004-20.4"/>
+                <check enabled="true" name="MISRAC2004-20.5"/>
+                <check enabled="true" name="MISRAC2004-20.6"/>
+                <check enabled="true" name="MISRAC2004-20.7"/>
+                <check enabled="true" name="MISRAC2004-20.8"/>
+                <check enabled="true" name="MISRAC2004-20.9"/>
+                <check enabled="true" name="MISRAC2004-20.10"/>
+                <check enabled="true" name="MISRAC2004-20.11"/>
+                <check enabled="true" name="MISRAC2004-20.12"/>
+              </group>
+            </package>
+            <package enabled="false" name="MISRAC2012">
+              <group enabled="true" name="MISRAC2012-Dir-4">
+                <check enabled="true" name="MISRAC2012-Dir-4.3"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.4"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.5"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.6_a"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.6_b"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.7_a"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.7_b"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.7_c"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.8"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.9"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.10"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_a"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_b"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_c"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_d"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_e"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_f"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_g"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_h"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.11_i"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.12"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.13_b"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.13_c"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.13_d"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.13_e"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.13_f"/>
+                <check enabled="true" name="MISRAC2012-Dir-4.13_g"/>
+                <check enabled="false" name="MISRAC2012-Dir-4.13_h"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-1">
+                <check enabled="true" name="MISRAC2012-Rule-1.3_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_d"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_e"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_f"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_g"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_h"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_i"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_j"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_k"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_m"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_n"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_o"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_p"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_q"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_r"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_s"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_t"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_u"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_v"/>
+                <check enabled="true" name="MISRAC2012-Rule-1.3_w"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-2">
+                <check enabled="true" name="MISRAC2012-Rule-2.1_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-2.1_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-2.2_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-2.2_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-2.2_c"/>
+                <check enabled="false" name="MISRAC2012-Rule-2.3"/>
+                <check enabled="false" name="MISRAC2012-Rule-2.4"/>
+                <check enabled="false" name="MISRAC2012-Rule-2.5"/>
+                <check enabled="false" name="MISRAC2012-Rule-2.6"/>
+                <check enabled="false" name="MISRAC2012-Rule-2.7"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-3">
+                <check enabled="true" name="MISRAC2012-Rule-3.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-3.2"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-5">
+                <check enabled="true" name="MISRAC2012-Rule-5.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.2_c89"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.2_c99"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.3_c89"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.3_c99"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.4_c89"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.4_c99"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.5_c89"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.5_c99"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.6"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.7"/>
+                <check enabled="true" name="MISRAC2012-Rule-5.8"/>
+                <check enabled="false" name="MISRAC2012-Rule-5.9"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-6">
+                <check enabled="true" name="MISRAC2012-Rule-6.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-6.2"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-7">
+                <check enabled="true" name="MISRAC2012-Rule-7.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-7.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-7.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-7.4_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-7.4_b"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-8">
+                <check enabled="true" name="MISRAC2012-Rule-8.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.2_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.2_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.3_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.4"/>
+                <check enabled="false" name="MISRAC2012-Rule-8.5_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.5_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.6"/>
+                <check enabled="false" name="MISRAC2012-Rule-8.7"/>
+                <check enabled="false" name="MISRAC2012-Rule-8.9_a"/>
+                <check enabled="false" name="MISRAC2012-Rule-8.9_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.10"/>
+                <check enabled="false" name="MISRAC2012-Rule-8.11"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.12"/>
+                <check enabled="false" name="MISRAC2012-Rule-8.13"/>
+                <check enabled="true" name="MISRAC2012-Rule-8.14"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-9">
+                <check enabled="true" name="MISRAC2012-Rule-9.1_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.1_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.1_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.1_d"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.1_e"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.1_f"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.4"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.5_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-9.5_b"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-10">
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R2"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R3"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R4"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R5"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R6"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R7"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.1_R8"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.4_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.4_b"/>
+                <check enabled="false" name="MISRAC2012-Rule-10.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.6"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.7"/>
+                <check enabled="true" name="MISRAC2012-Rule-10.8"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-11">
+                <check enabled="true" name="MISRAC2012-Rule-11.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-11.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-11.3"/>
+                <check enabled="false" name="MISRAC2012-Rule-11.4"/>
+                <check enabled="false" name="MISRAC2012-Rule-11.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-11.6"/>
+                <check enabled="true" name="MISRAC2012-Rule-11.7"/>
+                <check enabled="true" name="MISRAC2012-Rule-11.8"/>
+                <check enabled="true" name="MISRAC2012-Rule-11.9"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-12">
+                <check enabled="false" name="MISRAC2012-Rule-12.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-12.2"/>
+                <check enabled="false" name="MISRAC2012-Rule-12.3"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-13">
+                <check enabled="true" name="MISRAC2012-Rule-13.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-13.2_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-13.2_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-13.2_c"/>
+                <check enabled="false" name="MISRAC2012-Rule-13.3"/>
+                <check enabled="false" name="MISRAC2012-Rule-13.4_a"/>
+                <check enabled="false" name="MISRAC2012-Rule-13.4_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-13.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-13.6"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-14">
+                <check enabled="true" name="MISRAC2012-Rule-14.1_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.1_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.3_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.3_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.4_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.4_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.4_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-14.4_d"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-15">
+                <check enabled="false" name="MISRAC2012-Rule-15.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.3"/>
+                <check enabled="false" name="MISRAC2012-Rule-15.4"/>
+                <check enabled="false" name="MISRAC2012-Rule-15.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.6_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.6_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.6_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.6_d"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.6_e"/>
+                <check enabled="true" name="MISRAC2012-Rule-15.7"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-16">
+                <check enabled="true" name="MISRAC2012-Rule-16.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-16.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-16.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-16.4"/>
+                <check enabled="true" name="MISRAC2012-Rule-16.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-16.6"/>
+                <check enabled="true" name="MISRAC2012-Rule-16.7"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-17">
+                <check enabled="true" name="MISRAC2012-Rule-17.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-17.2_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-17.2_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-17.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-17.4"/>
+                <check enabled="false" name="MISRAC2012-Rule-17.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-17.6"/>
+                <check enabled="true" name="MISRAC2012-Rule-17.7"/>
+                <check enabled="false" name="MISRAC2012-Rule-17.8"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-18">
+                <check enabled="true" name="MISRAC2012-Rule-18.1_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.1_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.1_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.1_d"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.4"/>
+                <check enabled="false" name="MISRAC2012-Rule-18.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.6_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.6_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.6_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.6_d"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.7"/>
+                <check enabled="true" name="MISRAC2012-Rule-18.8"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-19">
+                <check enabled="true" name="MISRAC2012-Rule-19.1"/>
+                <check enabled="false" name="MISRAC2012-Rule-19.2"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-20">
+                <check enabled="false" name="MISRAC2012-Rule-20.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-20.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-20.4_c89"/>
+                <check enabled="true" name="MISRAC2012-Rule-20.4_c99"/>
+                <check enabled="false" name="MISRAC2012-Rule-20.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-20.7"/>
+                <check enabled="false" name="MISRAC2012-Rule-20.10"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-21">
+                <check enabled="true" name="MISRAC2012-Rule-21.1"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.2"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.4"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.5"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.6"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.7"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.8"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.9"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.10"/>
+                <check enabled="true" name="MISRAC2012-Rule-21.11"/>
+                <check enabled="false" name="MISRAC2012-Rule-21.12_a"/>
+                <check enabled="false" name="MISRAC2012-Rule-21.12_b"/>
+              </group>
+              <group enabled="true" name="MISRAC2012-Rule-22">
+                <check enabled="true" name="MISRAC2012-Rule-22.1_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.1_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.2_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.2_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.2_c"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.3"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.4"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.5_a"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.5_b"/>
+                <check enabled="true" name="MISRAC2012-Rule-22.6"/>
+              </group>
+            </package>
+            <package enabled="false" name="MISRAC++2008">
+              <group enabled="true" name="MISRAC++2008-0-1">
+                <check enabled="true" name="MISRAC++2008-0-1-1"/>
+                <check enabled="true" name="MISRAC++2008-0-1-2_a"/>
+                <check enabled="true" name="MISRAC++2008-0-1-2_b"/>
+                <check enabled="true" name="MISRAC++2008-0-1-2_c"/>
+                <check enabled="true" name="MISRAC++2008-0-1-3"/>
+                <check enabled="true" name="MISRAC++2008-0-1-4_a"/>
+                <check enabled="true" name="MISRAC++2008-0-1-4_b"/>
+                <check enabled="true" name="MISRAC++2008-0-1-6"/>
+                <check enabled="true" name="MISRAC++2008-0-1-7"/>
+                <check enabled="false" name="MISRAC++2008-0-1-8"/>
+                <check enabled="true" name="MISRAC++2008-0-1-9"/>
+                <check enabled="true" name="MISRAC++2008-0-1-11"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-0-2">
+                <check enabled="true" name="MISRAC++2008-0-2-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-0-3">
+                <check enabled="true" name="MISRAC++2008-0-3-2"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-2-7">
+                <check enabled="true" name="MISRAC++2008-2-7-1"/>
+                <check enabled="true" name="MISRAC++2008-2-7-2"/>
+                <check enabled="false" name="MISRAC++2008-2-7-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-2-10">
+                <check enabled="true" name="MISRAC++2008-2-10-1"/>
+                <check enabled="true" name="MISRAC++2008-2-10-2"/>
+                <check enabled="true" name="MISRAC++2008-2-10-3"/>
+                <check enabled="true" name="MISRAC++2008-2-10-4"/>
+                <check enabled="false" name="MISRAC++2008-2-10-5"/>
+                <check enabled="true" name="MISRAC++2008-2-10-6"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-2-13">
+                <check enabled="true" name="MISRAC++2008-2-13-2"/>
+                <check enabled="true" name="MISRAC++2008-2-13-3"/>
+                <check enabled="true" name="MISRAC++2008-2-13-4_a"/>
+                <check enabled="true" name="MISRAC++2008-2-13-4_b"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-3-1">
+                <check enabled="true" name="MISRAC++2008-3-1-1"/>
+                <check enabled="true" name="MISRAC++2008-3-1-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-3-9">
+                <check enabled="false" name="MISRAC++2008-3-9-2"/>
+                <check enabled="true" name="MISRAC++2008-3-9-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-4-5">
+                <check enabled="true" name="MISRAC++2008-4-5-1"/>
+                <check enabled="true" name="MISRAC++2008-4-5-2"/>
+                <check enabled="true" name="MISRAC++2008-4-5-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-0">
+                <check enabled="true" name="MISRAC++2008-5-0-1_a"/>
+                <check enabled="true" name="MISRAC++2008-5-0-1_b"/>
+                <check enabled="true" name="MISRAC++2008-5-0-1_c"/>
+                <check enabled="false" name="MISRAC++2008-5-0-2"/>
+                <check enabled="true" name="MISRAC++2008-5-0-3"/>
+                <check enabled="true" name="MISRAC++2008-5-0-4"/>
+                <check enabled="true" name="MISRAC++2008-5-0-5"/>
+                <check enabled="true" name="MISRAC++2008-5-0-6"/>
+                <check enabled="true" name="MISRAC++2008-5-0-7"/>
+                <check enabled="true" name="MISRAC++2008-5-0-8"/>
+                <check enabled="true" name="MISRAC++2008-5-0-9"/>
+                <check enabled="true" name="MISRAC++2008-5-0-10"/>
+                <check enabled="true" name="MISRAC++2008-5-0-13_a"/>
+                <check enabled="true" name="MISRAC++2008-5-0-13_b"/>
+                <check enabled="true" name="MISRAC++2008-5-0-13_c"/>
+                <check enabled="true" name="MISRAC++2008-5-0-13_d"/>
+                <check enabled="true" name="MISRAC++2008-5-0-14"/>
+                <check enabled="true" name="MISRAC++2008-5-0-15_a"/>
+                <check enabled="true" name="MISRAC++2008-5-0-15_b"/>
+                <check enabled="true" name="MISRAC++2008-5-0-16_a"/>
+                <check enabled="true" name="MISRAC++2008-5-0-16_b"/>
+                <check enabled="true" name="MISRAC++2008-5-0-16_c"/>
+                <check enabled="true" name="MISRAC++2008-5-0-16_d"/>
+                <check enabled="true" name="MISRAC++2008-5-0-16_e"/>
+                <check enabled="true" name="MISRAC++2008-5-0-16_f"/>
+                <check enabled="true" name="MISRAC++2008-5-0-19"/>
+                <check enabled="true" name="MISRAC++2008-5-0-21"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-2">
+                <check enabled="true" name="MISRAC++2008-5-2-4"/>
+                <check enabled="true" name="MISRAC++2008-5-2-5"/>
+                <check enabled="true" name="MISRAC++2008-5-2-6"/>
+                <check enabled="true" name="MISRAC++2008-5-2-7"/>
+                <check enabled="false" name="MISRAC++2008-5-2-9"/>
+                <check enabled="false" name="MISRAC++2008-5-2-10"/>
+                <check enabled="true" name="MISRAC++2008-5-2-11_a"/>
+                <check enabled="true" name="MISRAC++2008-5-2-11_b"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-3">
+                <check enabled="true" name="MISRAC++2008-5-3-1"/>
+                <check enabled="true" name="MISRAC++2008-5-3-2_a"/>
+                <check enabled="true" name="MISRAC++2008-5-3-2_b"/>
+                <check enabled="true" name="MISRAC++2008-5-3-3"/>
+                <check enabled="true" name="MISRAC++2008-5-3-4"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-8">
+                <check enabled="true" name="MISRAC++2008-5-8-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-14">
+                <check enabled="true" name="MISRAC++2008-5-14-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-18">
+                <check enabled="true" name="MISRAC++2008-5-18-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-5-19">
+                <check enabled="false" name="MISRAC++2008-5-19-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-6-2">
+                <check enabled="true" name="MISRAC++2008-6-2-1"/>
+                <check enabled="true" name="MISRAC++2008-6-2-2"/>
+                <check enabled="false" name="MISRAC++2008-6-2-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-6-3">
+                <check enabled="true" name="MISRAC++2008-6-3-1_a"/>
+                <check enabled="true" name="MISRAC++2008-6-3-1_b"/>
+                <check enabled="true" name="MISRAC++2008-6-3-1_c"/>
+                <check enabled="true" name="MISRAC++2008-6-3-1_d"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-6-4">
+                <check enabled="true" name="MISRAC++2008-6-4-1"/>
+                <check enabled="true" name="MISRAC++2008-6-4-2"/>
+                <check enabled="true" name="MISRAC++2008-6-4-3"/>
+                <check enabled="true" name="MISRAC++2008-6-4-4"/>
+                <check enabled="true" name="MISRAC++2008-6-4-5"/>
+                <check enabled="true" name="MISRAC++2008-6-4-6"/>
+                <check enabled="true" name="MISRAC++2008-6-4-7"/>
+                <check enabled="true" name="MISRAC++2008-6-4-8"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-6-5">
+                <check enabled="true" name="MISRAC++2008-6-5-1_a"/>
+                <check enabled="true" name="MISRAC++2008-6-5-2"/>
+                <check enabled="true" name="MISRAC++2008-6-5-3"/>
+                <check enabled="true" name="MISRAC++2008-6-5-4"/>
+                <check enabled="true" name="MISRAC++2008-6-5-6"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-6-6">
+                <check enabled="true" name="MISRAC++2008-6-6-1"/>
+                <check enabled="true" name="MISRAC++2008-6-6-2"/>
+                <check enabled="true" name="MISRAC++2008-6-6-4"/>
+                <check enabled="true" name="MISRAC++2008-6-6-5"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-7-1">
+                <check enabled="true" name="MISRAC++2008-7-1-1"/>
+                <check enabled="true" name="MISRAC++2008-7-1-2"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-7-2">
+                <check enabled="true" name="MISRAC++2008-7-2-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-7-4">
+                <check enabled="true" name="MISRAC++2008-7-4-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-7-5">
+                <check enabled="true" name="MISRAC++2008-7-5-1_a"/>
+                <check enabled="true" name="MISRAC++2008-7-5-1_b"/>
+                <check enabled="true" name="MISRAC++2008-7-5-2_a"/>
+                <check enabled="true" name="MISRAC++2008-7-5-2_b"/>
+                <check enabled="true" name="MISRAC++2008-7-5-2_c"/>
+                <check enabled="true" name="MISRAC++2008-7-5-2_d"/>
+                <check enabled="false" name="MISRAC++2008-7-5-4_a"/>
+                <check enabled="false" name="MISRAC++2008-7-5-4_b"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-8-0">
+                <check enabled="true" name="MISRAC++2008-8-0-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-8-4">
+                <check enabled="true" name="MISRAC++2008-8-4-1"/>
+                <check enabled="true" name="MISRAC++2008-8-4-3"/>
+                <check enabled="true" name="MISRAC++2008-8-4-4"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-8-5">
+                <check enabled="true" name="MISRAC++2008-8-5-1_a"/>
+                <check enabled="true" name="MISRAC++2008-8-5-1_b"/>
+                <check enabled="true" name="MISRAC++2008-8-5-1_c"/>
+                <check enabled="true" name="MISRAC++2008-8-5-2"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-9-3">
+                <check enabled="true" name="MISRAC++2008-9-3-1"/>
+                <check enabled="true" name="MISRAC++2008-9-3-2"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-9-5">
+                <check enabled="true" name="MISRAC++2008-9-5-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-9-6">
+                <check enabled="true" name="MISRAC++2008-9-6-2"/>
+                <check enabled="true" name="MISRAC++2008-9-6-3"/>
+                <check enabled="true" name="MISRAC++2008-9-6-4"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-12-1">
+                <check enabled="true" name="MISRAC++2008-12-1-1_a"/>
+                <check enabled="true" name="MISRAC++2008-12-1-1_b"/>
+                <check enabled="true" name="MISRAC++2008-12-1-3"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-16-0">
+                <check enabled="true" name="MISRAC++2008-16-0-3"/>
+                <check enabled="true" name="MISRAC++2008-16-0-4"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-16-2">
+                <check enabled="true" name="MISRAC++2008-16-2-2"/>
+                <check enabled="true" name="MISRAC++2008-16-2-3"/>
+                <check enabled="true" name="MISRAC++2008-16-2-4"/>
+                <check enabled="false" name="MISRAC++2008-16-2-5"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-16-3">
+                <check enabled="true" name="MISRAC++2008-16-3-1"/>
+                <check enabled="false" name="MISRAC++2008-16-3-2"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-17-0">
+                <check enabled="true" name="MISRAC++2008-17-0-1"/>
+                <check enabled="true" name="MISRAC++2008-17-0-3"/>
+                <check enabled="true" name="MISRAC++2008-17-0-5"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-18-0">
+                <check enabled="true" name="MISRAC++2008-18-0-1"/>
+                <check enabled="true" name="MISRAC++2008-18-0-2"/>
+                <check enabled="true" name="MISRAC++2008-18-0-3"/>
+                <check enabled="true" name="MISRAC++2008-18-0-4"/>
+                <check enabled="true" name="MISRAC++2008-18-0-5"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-18-2">
+                <check enabled="true" name="MISRAC++2008-18-2-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-18-4">
+                <check enabled="true" name="MISRAC++2008-18-4-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-18-7">
+                <check enabled="true" name="MISRAC++2008-18-7-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-19-3">
+                <check enabled="true" name="MISRAC++2008-19-3-1"/>
+              </group>
+              <group enabled="true" name="MISRAC++2008-27-0">
+                <check enabled="true" name="MISRAC++2008-27-0-1"/>
+              </group>
+            </package>
+          </checks_tree>
+        </cstat_settings>
+      </data>
+    </settings>
+  </configuration>
+  <group>
+    <name>Sheduler</name>
+    <file>
+      <name>$PROJ_DIR$\rtos.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\rtos.h</name>
+    </file>
+  </group>
+  <group>
+    <name>TWI</name>
+    <file>
+      <name>$PROJ_DIR$\twim.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\twim.h</name>
+    </file>
+  </group>
+  <file>
+    <name>$PROJ_DIR$\main.c</name>
+  </file>
+  <file>
+    <name>$PROJ_DIR$\main.h</name>
+  </file>
+</project>
+
+

+ 10 - 0
MegaClock.eww

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<workspace>
+  <project>
+    <path>$WS_DIR$\MegaClock.ewp</path>
+  </project>
+  <batchBuild/>
+</workspace>
+
+

+ 9 - 0
ReadMe.txt

@@ -0,0 +1,9 @@
+Прошивка для найдной рабочей платы с нерабочей прошивкой.
+
+MCU:		AVR ATmeag8A
+RTC:		DS1307
+Sensor:		DS18B20
+Indikators:	4 x 4" 7-segment LED indocators "KEM-40011 BSR" with common anode
+LED drivers:	ULN2803 for segments, KT817 for anodes
+LEDs:		2 pcs red led to ground
+Buttons:	7 pcs connected as voltage divider to ADC0

BIN
doc/ATmega8A_doc8159.pdf


BIN
doc/ds18b20_pre1.pdf


BIN
doc/Программная реализация протокола 1-wire iButton MicroLan на микроконтроллерах AVR.pdf


BIN
hw/mega-clock.dch


+ 214 - 0
main.c

@@ -0,0 +1,214 @@
+#include "main.h"
+
+__C_task void main(void)
+{
+  uint8_t i;
+  //uint8_t tmp8;
+
+  /* Disable comaparator */
+  ACSR = 1<<ACD;
+
+  /* Init LED */
+  LED_DDR = LED_1 | LED_2;
+  LED_OFF(LED_1);
+  LED_OFF(LED_2);
+
+  /* Init 7 segment LED indicators */
+  INDCTR_SEGMENT_DDR = 0xFF; // segment pins to output
+  INDCTR_SEGMENT_PORT = 0x00; // off all segment
+
+  INDCTR_COMMON_DDR = INDCTR_COMMON_ALL; // common pins to output
+  INDCTR_COMMON_PORT = ~INDCTR_COMMON_ALL; // off all indikators
+
+  for(i=0; i<INDCTR_NUMS; i++) {
+    Display[i] = IndctrNums[i];
+  }
+
+  Flag.needDot = 0;
+
+  /* Timer0 every 4 ms switch showing LED */
+  TCCR0 = TIM0_PRESCALER;
+  TCNT0 = TIM0_CNT; // load timer
+  TIMSK |= 1<<TOIE0; // enable TIM0_OVF interrupt
+
+  /* Timer0 every 4 ms switch showing LED */
+  TCCR0 = TIM0_PRESCALER;
+  TCNT0 = TIM0_CNT; // load timer
+  TIMSK |= 1<<TOIE0; // enable TIM0_OVF interrupt
+
+  /* ADC init */
+  resultADC = 0;
+  ADMUX = (1<<REFS0) | (1<<ADLAR); // Vref = AVcc, channel ADC0, Left adjusted result
+  ADCSR = 1<<ADEN | 1<<ADPS2 | 1<<ADPS1; // enable ADC, prescaler = 64
+
+  /* I2C init */
+  TWI_MasterInit(100);
+
+  __enable_interrupt();
+
+  /* Init Scheduler and TDelay */
+  RTOS_Init();
+
+  // Tasks for sheduler
+  RTOS_SetTask(startADC,0,50);
+  RTOS_SetTask(getTime,0,500);
+  
+  /* Get time */
+
+  while(1) {
+    if (1 == Flag.newTime) {
+      Flag.newTime = 0;
+
+      Display[0] = IndctrNums[(0x0F & (Clock.hours>>4))];
+      Display[1] = IndctrNums[(0x0F & Clock.hours)];
+      Display[2] = IndctrNums[(0x0F & (Clock.minutes>>4))];
+      Display[3] = IndctrNums[(0x0F & Clock.minutes)];
+    }
+
+    if (1 == Flag.newBTN) {
+      Flag.newBTN = 0;
+      
+      btn_t btn = getBTN();
+      if (btn == btn_1) {
+        LED_ON(LED_1);
+      } else if (btn == btn_2) {
+        LED_ON(LED_2);
+      } else if (btn == btn_3) {
+        LED_OFF(LED_1);
+      } else if (btn == btn_4) {
+        LED_OFF(LED_2);
+      } else if (btn == btn_5) {
+        LED_ON(LED_1);
+        LED_ON(LED_2);
+      } else if (btn == btn_6) {
+        LED_OFF(LED_1);
+        LED_OFF(LED_2);
+      }
+    }
+
+    tdelay_ms(10); // sleep and rotate dispatcher
+  } // end of while(1)
+} // end of main()
+
+/**
+ *  S u b r o u t i n e s
+ */
+
+static void startADC(void) {
+  // enable interrupt and start conversion
+  ADCSR |= ((1<<ADSC) | (1<<ADIE));
+}
+
+static btn_t getBTN(void) {
+  uint8_t btn_code = resultADC;
+  if (btn_code > 0xED) {
+    return btn_no;
+  } else if (btn_code > 0xD8) {
+    return btn_1;
+  } else if (btn_code > 0xD0) {
+    return btn_2;
+  } else if (btn_code > 0xC5) {
+    return btn_3;
+  } else if (btn_code > 0xB4) {
+    return btn_4;
+  } else if (btn_code > 0x94) {
+    return btn_5;
+  } else if (btn_code > 0x3F) {
+    return btn_6;
+  } else {
+    return btn_7;
+  }
+}
+
+static void getTime(void) {
+  static uint8_t old_sec;
+
+  /*устанавливаем указатель DS1307 на нулевой адрес*/
+  twi_buf[0] = (DS1307_ADR<<1)|0; //адресный пакет
+  twi_buf[1] = 0;                 //адрес регистра   
+  TWI_SendData(twi_buf, 2);
+
+  /*считываем время с DS1307*/
+  twi_buf[0] = (DS1307_ADR<<1)|1;
+  TWI_SendData(twi_buf, 5);
+
+  /*переписываем данные буфера драйвера в свой буфер*/
+  TWI_GetData(twi_buf, 5);
+
+  Clock.seconds = twi_buf[1];
+  Clock.minutes = twi_buf[2];
+  Clock.hours = twi_buf[3];
+
+  if (old_sec != Clock.seconds) {
+    Flag.needDot = 1;
+    old_sec = Clock.seconds;
+  } else {
+    Flag.needDot = 0;
+  }
+  Flag.newTime = 1;
+}
+
+static void setTime(void) {
+   /*подготавливаем сообщение*/
+  twi_buf[0] = (DS1307_ADR<<1)|0; //адресный пакет
+  twi_buf[1] = 0;                 //адрес регистра
+  twi_buf[2] = Clock.seconds;     //значение секунд 
+  twi_buf[3] = Clock.minutes;     //значение минут 
+  twi_buf[4] = Clock.hours;       //значение часов
+
+  /*отправляем его*/
+  TWI_SendData(twi_buf, 5);
+}
+
+
+/**
+ *  I n t e r r u p t   h a n d l e r s
+ */
+
+#pragma vector=TIMER0_OVF_vect
+__interrupt void TIMER0_OVF_ISR(void) {
+  static uint8_t indicator = 0;
+
+  TCNT0 = TIM0_CNT; // reload timer
+
+  INDCTR_COMMON_PORT &= ~INDCTR_COMMON_ALL; // off all indikators
+
+  switch (indicator) {
+  case 0:
+    INDCTR_SEGMENT_PORT = Display[0];
+    INDCTR_COMMON_PORT |= 0x01;
+    indicator = 1;
+    break;
+
+  case 1:
+    if (1 == Flag.needDot) {
+      INDCTR_SEGMENT_PORT = Display[1] | Sym_dot;
+    } else {
+      INDCTR_SEGMENT_PORT = Display[1];
+    }
+    INDCTR_COMMON_PORT |= 0x02;
+    indicator = 2;
+    break;
+
+  case 2:
+    INDCTR_SEGMENT_PORT = Display[2];
+    INDCTR_COMMON_PORT |= 0x04;
+    indicator = 3;
+    break;
+
+  case 3:
+    INDCTR_SEGMENT_PORT = Display[3];
+    INDCTR_COMMON_PORT |= 0x08;
+
+  default:
+    indicator = 0;
+    break;
+  }
+}
+
+#pragma vector=ADC_vect
+__interrupt void ADC_ISR(void) {
+  resultADC = ADCH;
+  ADCSR &= ~(1<<ADIE); // disable interrupt
+  Flag.newBTN = 1;
+}

+ 137 - 0
main.h

@@ -0,0 +1,137 @@
+#ifndef __MAIN_H
+#define __MAIN_H
+
+#include <ioavr.h>
+#include <intrinsics.h>
+#include <stdint.h>
+#include "rtos.h"
+#include "twim.h"
+
+/* Timers */
+// T0 period 4 ms == 0x100 - (8000000 / 256 * 0.004) 
+#define TIM0_PRESCALER  1<<CS02
+#define TIM0_CNT        0x83
+#define TIM0_CHANNEL    0x00
+
+/* LEDs */
+#define LED_PORT        PORTC
+#define LED_DDR         DDRC
+#define LED_1           (1<<PC2)
+#define LED_2           (1<<PC3)
+
+#define LED_ON(led)     LED_PORT |= led
+#define LED_OFF(led)    LED_PORT &= ~led
+#define LED_TOGGLE(led) LED_PORT ^= led
+
+/* 7-segment LED indikators */
+#define INDCTR_NUMS                4
+
+#define INDCTR_SEGMENT_PORT        PORTB
+#define INDCTR_SEGMENT_DDR         DDRB
+#define INDCTR_SEGMENT_A           PB0
+#define INDCTR_SEGMENT_B           PB2
+#define INDCTR_SEGMENT_C           PB4
+#define INDCTR_SEGMENT_D           PB6
+#define INDCTR_SEGMENT_E           PB7
+#define INDCTR_SEGMENT_F           PB1
+#define INDCTR_SEGMENT_G           PB3
+#define INDCTR_SEGMENT_H           PB5
+
+#define INDCTR_COMMON_PORT         PORTD
+#define INDCTR_COMMON_DDR          DDRD
+#define INDCTR_COMMON_1            (1<<PD0)
+#define INDCTR_COMMON_2            (1<<PD1)
+#define INDCTR_COMMON_3            (1<<PD2)
+#define INDCTR_COMMON_4            (1<<PD3)
+#define INDCTR_COMMON_ALL          (INDCTR_COMMON_1 | INDCTR_COMMON_2 | INDCTR_COMMON_3 | INDCTR_COMMON_4)
+
+#define INDCTR_COMMON_DOT          1
+
+typedef enum {
+  Sym_0 = ~0x28,
+  Sym_1 = ~0xEB,
+  Sym_2 = ~0x32,
+  Sym_3 = ~0xA2,
+  Sym_4 = ~0xE1,
+  Sym_5 = ~0xA4,
+  Sym_6 = ~0x24,
+  Sym_7 = ~0xEA,
+  Sym_8 = ~0x20,
+  Sym_9 = ~0xA0,
+  Sym_a = ~0x60,
+  Sym_b = ~0x25,
+  Sym_c = ~0x37,
+  Sym_d = ~0x23,
+  Sym_e = ~0x34,
+  Sym_f = ~0x74,
+  Sym_minus = ~0xF7,
+  Sym_gradus = ~0xF0,
+  Sym_t = ~0x35,
+  Sym_dot = 1<<INDCTR_SEGMENT_H
+} indctr_sym_t;
+
+/* Convert 0x0-0xF digit to 7-seg indicators symbol */
+const indctr_sym_t IndctrNums[16] = {
+  Sym_0, Sym_1, Sym_2, Sym_3,
+  Sym_4, Sym_5, Sym_6, Sym_7,
+  Sym_8, Sym_9, Sym_a, Sym_b,
+  Sym_c, Sym_d, Sym_e, Sym_f
+};
+
+
+/* DS18B20 termometer */
+#define DS18B20_PORT            PORTD
+#define DS18B20_DDR             DDRD
+#define DS18B20_PIN             PIND
+#define DS18B20_PAD             PD7
+
+/* BTN */
+#define BTN_LVL_NO              0xED
+#define BTN_LVL_7               0xD8
+#define BTN_LVL_6               0xD0
+#define BTN_LVL_5               0xC5
+#define BTN_LVL_4               0xB4
+#define BTN_LVL_3               0x94
+#define BTN_LVL_2               0x3F
+
+typedef enum {
+  btn_no = 0,
+  btn_1,
+  btn_2,
+  btn_3,
+  btn_4,
+  btn_5,
+  btn_6,
+  btn_7
+} btn_t;
+
+/* DS1307 */
+#define DS1307_ADR              0x68
+#define DS1307_ADR_RD           0xD0
+#define DS1307_ADR_WR           0xD1
+typedef struct {
+  uint8_t seconds;
+  uint8_t minutes;
+  uint8_t hours;
+} time_t;
+
+/* Global varaibles */
+volatile struct {
+  uint8_t needDot       : 1;
+  uint8_t newTime       : 1;
+  uint8_t newBTN        : 1;
+  uint8_t               : 5; // дополнение до 8 бит (резерв) 
+} Flag;
+
+volatile static indctr_sym_t Display[4];
+volatile static uint8_t resultADC;
+static uint8_t twi_buf[8];
+static time_t Clock;
+static void setTime(void);
+
+/* Functions prototypes */
+static void startADC(void);
+static btn_t getBTN(void);
+static void getTime(void);
+
+#endif // __MAIN_H

+ 169 - 0
rtos.c

@@ -0,0 +1,169 @@
+#include "rtos.h"
+
+/**
+ * Переменные модуля
+ */
+static volatile task TaskArray[MAX_TASKS]; // очередь задач
+static volatile uint8_t arrayTail;         // "хвост" очереди
+static volatile uint8_t interruptStatus;
+
+#define DISABLE_INTERRUPT       {interruptStatus = __save_interrupt(); __disable_interrupt();}
+#define RESTORE_INTERRUPT       __restore_interrupt(interruptStatus)
+
+// счётчик задержки
+static volatile uint16_t TDelay;
+
+/**
+ * Инициализация РТОС и t_delay, время тика - 1 мс
+ */
+inline void RTOS_Init()
+{
+  // настраиваем основной таймер
+  TIMER_TCCR = TIMER_CSB;
+  TIMER_TCNT = TIMER_CNT;
+  TIMER_TIMSK |= TIMER_INT;
+
+  // "хвост" в 0
+  arrayTail = 0;
+}
+
+/**
+ * Добавление задачи в список
+ */
+void RTOS_SetTask (void (*taskFunc)(void), uint16_t taskDelay, uint16_t taskPeriod)
+{
+   uint8_t i;
+
+   if(!taskFunc) return;
+   for(i = 0; i < arrayTail; i++)               // поиск задачи в текущем списке
+   {
+      if(TaskArray[i].pFunc == taskFunc)        // если нашли, то обновляем переменные
+      {
+         DISABLE_INTERRUPT;
+
+         TaskArray[i].delay  = taskDelay;
+         TaskArray[i].period = taskPeriod;
+         TaskArray[i].run    = 0;
+
+         RESTORE_INTERRUPT;
+         return;                                // обновив, выходим
+      }
+   }
+
+   if (arrayTail < MAX_TASKS)                   // если такой задачи в списке нет
+   {                                            // и есть место,то добавляем
+      DISABLE_INTERRUPT;
+
+      TaskArray[arrayTail].pFunc  = taskFunc;
+      TaskArray[arrayTail].delay  = taskDelay;
+      TaskArray[arrayTail].period = taskPeriod;
+      TaskArray[arrayTail].run    = 0;
+
+      arrayTail++;                              // увеличиваем "хвост"
+      RESTORE_INTERRUPT;
+   }
+}
+
+/**
+ * Удаление задачи из списка
+ */
+inline void RTOS_DeleteTask (void (*taskFunc)(void))
+{
+   uint8_t i;
+
+   for (i=0; i<arrayTail; i++)                  // проходим по списку задач
+   {
+      if(TaskArray[i].pFunc == taskFunc)        // если задача в списке найдена
+      {
+
+         DISABLE_INTERRUPT;
+         if(i != (arrayTail - 1))               // переносим последнюю задачу
+         {                                      // на место удаляемой
+            TaskArray[i] = TaskArray[arrayTail - 1];
+         }
+         arrayTail--;                           // уменьшаем указатель "хвоста"
+         RESTORE_INTERRUPT;
+         return;
+      }
+   }
+}
+
+/**
+ * Диспетчер РТОС, вызывается в main
+ */
+
+void RTOS_DispatchTask(void)
+{
+   uint8_t i;
+   void (*function) (void);
+   for (i=0; i<arrayTail; i++)                  // проходим по списку задач
+   {
+      if (TaskArray[i].run == 1)                // если флаг на выполнение взведен,
+      {                                         // запоминаем задачу, т.к. во
+         function = TaskArray[i].pFunc;         // время выполнения может
+                                                // измениться индекс
+         if(TaskArray[i].period == 0)
+         {                                      // если период равен 0
+            RTOS_DeleteTask(TaskArray[i].pFunc);// удаляем задачу из списка,
+
+         }
+         else
+         {
+            TaskArray[i].run = 0;               // иначе снимаем флаг запуска
+            if(!TaskArray[i].delay)             // если задача не изменила задержку
+            {                                   // задаем ее
+               TaskArray[i].delay = TaskArray[i].period-1;
+            }                                   // задача для себя может сделать паузу
+         }
+         (*function)();                         // выполняем задачу
+      }
+   }
+}
+
+/**
+ * Delay, msek
+ * также, что-бы зря не терять время -- крутим диспетчер
+ */
+void tdelay_ms(uint16_t msek) {
+
+  TDelay = msek;
+
+  do {
+    RTOS_DispatchTask();
+    // делать нехрен -- спим, ждём прерывание
+    MCUCR = 1<<SE;
+    __sleep();
+  } while (TDelay>0);
+
+}
+
+/**
+ * Таймерная служба РТОС и tdelay (прерывание аппаратного таймера)
+ */
+#pragma vector=TIMER_OVF_VECT
+__interrupt void TIMER_OVF_ISR(void) {
+
+  // перезарядим таймер
+  TIMER_TCNT = TIMER_CNT;
+
+  /* RTOS_Timer */
+  uint8_t i;
+
+  // проходим по списку задач
+  for (i=0; i<arrayTail; i++) {
+    // если время до выполнения истекло
+    if (TaskArray[i].delay == 0) {
+      // взводим флаг запуска,
+      TaskArray[i].run = 1;
+    } else {
+      // иначе уменьшаем время
+      TaskArray[i].delay--;
+    }
+  }
+
+  /* TDelay_Timer -- уменьшим счётчик */
+  if (TDelay > 0) {
+    TDelay --;
+  }
+
+}

+ 65 - 0
rtos.h

@@ -0,0 +1,65 @@
+/******************************************************************************************
+ * За основу взят планировщик задач с сайта ChipEnable.ru                                 *
+ * http://chipenable.ru/index.php/programming-avr/item/110-planirovschik.html             *
+ *                                                                                        *
+ * Доработал Шибанов Владимир aka KontAr                                                  *
+ * Дата: 26.03.2014                                                                       *
+ *                                                                                        *
+ * Изменения:                                                                             *
+ * - добавлен однократный вызов задачи                                                    *
+ * - добавлено удаление задачи по имени                                                   *
+ * - при повторном добавлении задачи обновляются ее переменные                            *
+ * - добавлен указатель на "хвост" списка                                                 *
+ * - функции РТОС скорректированы с учетом "хвоста"                                       *
+ ******************************************************************************************
+ * shilov, 2015.04.07									  *
+ * совместил с модулем милисекундных задержек на таймере				  *
+ ******************************************************************************************/
+
+#ifndef __RTOS_H
+#define __RTOS_H
+
+#include <ioavr.h>
+#include <intrinsics.h>
+#include <stdint.h>
+
+// Количество задач
+#define MAX_TASKS               10
+
+/**
+ * Будем использовать второй таймер, период -- 1 мсек
+ */
+#define TIMER_HZ		1000
+#define TIMER_PRESCALER         64
+#define	TIMER_CNT		(0x100 - (F_CPU / TIMER_PRESCALER / TIMER_HZ))
+
+#define TIMER_TCCR		TCCR2
+#define TIMER_TCNT		TCNT2
+#define TIMER_TIMSK		TIMSK
+#define TIMER_CSB		(1<<CS22)
+#define TIMER_INT		(1<<TOV2)
+#define TIMER_OVF_VECT          TIMER2_OVF_vect
+
+/**
+ * Структура задачи
+ */
+typedef struct task
+{
+   void (*pFunc) (void); // указатель на функцию
+   uint16_t delay;       // задержка перед первым запуском задачи
+   uint16_t period;      // период запуска задачи
+   uint8_t run;          // флаг готовности задачи к запуску
+} task;
+
+/**
+ * Прототипы фукнций
+ */
+void RTOS_Init (void);
+void RTOS_SetTask (void (*taskFunc)(void), uint16_t taskDelay, uint16_t taskPeriod);
+void RTOS_DeleteTask (void (*taskFunc)(void));
+void RTOS_DispatchTask (void);
+void RTOS_Timer (void);
+
+void tdelay_ms(uint16_t msek);
+
+#endif // __RTOS_H

+ 163 - 0
twim.c

@@ -0,0 +1,163 @@
+//***************************************************************************
+//
+//  Author(s)...: Павел Бобков  http://ChipEnable.Ru   
+//
+//  Target(s)...: mega16
+//
+//  Compiler....: IAR
+//
+//  Description.: Драйвер ведущего TWI устройства. 
+//                Код основан на Atmel`овских доках - AVR315.
+//
+//  Data........: 13.11.13
+//
+//***************************************************************************
+#include "twim.h"
+
+#define TWSR_MASK     0xfc  
+
+volatile static uint8_t twiBuf[TWI_BUFFER_SIZE];
+volatile static uint8_t twiState = TWI_NO_STATE;      
+volatile static uint8_t twiMsgSize;       
+
+/*предделители для установки скорости обмена twi модуля*/
+uint8_t pre[4] = {2, 8, 32, 128};
+
+/****************************************************************************
+ Инициализация и установка частоты SCL сигнала
+****************************************************************************/
+uint8_t TWI_MasterInit(uint16_t fr)
+{
+  uint8_t i;
+  uint16_t twbrValue;
+  
+  for(i = 0; i<4; i++){
+    twbrValue = ((((F_CPU)/1000UL)/fr)-16)/pre[i];
+    if ((twbrValue > 0)&& (twbrValue < 256)){
+       TWBR = (uint8_t)twbrValue;
+       TWSR = i;
+       TWDR = 0xFF;
+       TWCR = (1<<TWEN);
+       return TWI_SUCCESS;
+    }
+  }
+  return 0;  
+}    
+
+/****************************************************************************
+ Проверка - не занят ли TWI модуль. Используется внутри модуля
+****************************************************************************/
+static uint8_t TWI_TransceiverBusy(void)
+{
+  return (TWCR & (1<<TWIE));                 
+}
+
+/****************************************************************************
+ Взять статус TWI модуля
+****************************************************************************/
+uint8_t TWI_GetState(void)
+{
+  while (TWI_TransceiverBusy());             
+  return twiState;                        
+}
+
+/****************************************************************************
+ Передать сообщение msg из msgSize байтов на TWI шину
+****************************************************************************/
+void TWI_SendData(uint8_t *msg, uint8_t msgSize)
+{
+  uint8_t i;
+
+  while(TWI_TransceiverBusy());   //ждем, когда TWI модуль освободится             
+
+  twiMsgSize = msgSize;           //сохряняем кол. байт для передачи             
+  twiBuf[0]  = msg[0];            //и первый байт сообщения 
+  
+  if (!(msg[0] & (TRUE<<TWI_READ_BIT))){   //если первый байт типа SLA+W
+    for (i = 1; i < msgSize; i++){         //то сохряняем остальную часть сообщения
+      twiBuf[i] = msg[i];
+    }
+  }
+                       
+  twiState = TWI_NO_STATE ;
+  TWCR = (1<<TWEN)|(1<<TWIE)|(1<<TWINT)|(1<<TWSTA); //разрешаем прерывание и формируем состояние старт                            
+}
+
+/****************************************************************************
+ Переписать полученные данные в буфер msg в количестве msgSize байт. 
+****************************************************************************/
+uint8_t TWI_GetData(uint8_t *msg, uint8_t msgSize)
+{
+  uint8_t i;
+
+  while(TWI_TransceiverBusy());    //ждем, когда TWI модуль освободится 
+
+  if(twiState == TWI_SUCCESS){     //если сообщение успешно принято,                         
+    for(i = 0; i < msgSize; i++){  //то переписываем его из внутреннего буфера в переданный
+      msg[i] = twiBuf[i];
+    }
+  }
+  
+  return twiState;                                   
+}
+
+/****************************************************************************
+ Обработчик прерывания TWI модуля
+****************************************************************************/
+#pragma vector=TWI_vect
+__interrupt void TWI_ISR(void)
+{
+  static uint8_t ptr;
+  uint8_t stat = TWSR & TWSR_MASK;
+  
+  switch (stat){
+    
+    case TWI_START:                   // состояние START сформировано 
+    case TWI_REP_START:               // состояние повторный START сформировано        
+       ptr = 0;      
+
+    case TWI_MTX_ADR_ACK:             // был передан пакет SLA+W и получено подтверждение
+    case TWI_MTX_DATA_ACK:            // был передан байт данных и получено подтверждение  
+       if (ptr < twiMsgSize){
+          TWDR = twiBuf[ptr];                    //загружаем в регистр данных следующий байт
+          TWCR = (1<<TWEN)|(1<<TWIE)|(1<<TWINT); //сбрасываем флаг TWINT    
+          ptr++;
+       }
+       else{
+          twiState = TWI_SUCCESS;  
+          TWCR = (1<<TWEN)|(1<<TWINT)|(1<<TWSTO)|(0<<TWIE); //формируем состояние СТОП, сбрасываем флаг, запрещаем прерывания
+       }
+       break;
+     
+    case TWI_MRX_DATA_ACK:          //байт данных принят и передано подтверждение  
+       twiBuf[ptr] = TWDR;
+       ptr++;
+    
+    case TWI_MRX_ADR_ACK:           //был передан пакет SLA+R и получено подтвеждение  
+      if (ptr < (twiMsgSize-1)){
+        TWCR = (1<<TWEN)|(1<<TWIE)|(1<<TWINT)|(1<<TWEA);  //если это не предпоследний принятый байт, формируем подтверждение                             
+      }
+      else {
+        TWCR = (1<<TWEN)|(1<<TWIE)|(1<<TWINT);            //если приняли предпоследний байт, подтверждение не формируем
+      }    
+      break; 
+      
+    case TWI_MRX_DATA_NACK:       //был принят байт данных без подтверждения      
+      twiBuf[ptr] = TWDR;
+      twiState = TWI_SUCCESS;  
+      TWCR = (1<<TWEN)|(1<<TWINT)|(1<<TWSTO); //формируем состояние стоп
+      break; 
+     
+    case TWI_ARB_LOST:          //был потерян приоритет 
+      TWCR = (1<<TWEN)|(1<<TWIE)|(1<<TWINT)|(1<<TWSTA); // сбрасываем флаг TWINT, формируем повторный СТАРТ
+      break;
+      
+    case TWI_MTX_ADR_NACK:      // был передан пает SLA+W и не получено подтверждение
+    case TWI_MRX_ADR_NACK:      // был передан пакет SLA+R и не получено подтверждение    
+    case TWI_MTX_DATA_NACK:     // был передан байт данных и не получено подтверждение
+    case TWI_BUS_ERROR:         // ошибка на шине из-за некоректных состояний СТАРТ или СТОП
+    default:     
+      twiState = stat;                                                                                    
+      TWCR = (1<<TWEN)|(0<<TWIE)|(0<<TWINT)|(0<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|(0<<TWWC); //запретить прерывание                              
+  }
+}

+ 89 - 0
twim.h

@@ -0,0 +1,89 @@
+//***************************************************************************
+//
+//  Author(s)...: Павел Бобков  http://ChipEnable.Ru   
+//
+//  Target(s)...: mega16
+//
+//  Compiler....: IAR
+//
+//  Description.: Драйвер ведущего TWI устройства. 
+//                Код основан на Atmel`овских доках - AVR315.
+//
+//  Data........: 13.11.13
+//
+//***************************************************************************
+#ifndef TWIM_H
+#define TWIM_H
+
+#include <ioavr.h>
+#include <intrinsics.h>
+#include <stdint.h>
+
+/****************************************************************************
+  Настройки модуля
+****************************************************************************/
+
+/*если не определена тактовая 
+частота, определяем ее здесь*/
+#ifndef F_CPU
+   #error F_CPU!!!
+   #define F_CPU  16000000UL
+#endif
+
+/*размер буфера TWI модуля*/
+#define TWI_BUFFER_SIZE  8      
+
+/****************************************************************************
+  Статусные коды TWI модуля 
+****************************************************************************/
+
+/*Общие статусные коды */                    
+#define TWI_START                  0x08  // состояние START сформировано 
+#define TWI_REP_START              0x10  // состояние повторный START сформировано 
+#define TWI_ARB_LOST               0x38  // был потерян приоритет 
+
+/*Статусные коды ведущего передатчика*/                
+#define TWI_MTX_ADR_ACK            0x18  // был передан пакет SLA+W и получено подтверждение
+#define TWI_MTX_ADR_NACK           0x20  // был передан пает SLA+W и не получено подтверждение
+#define TWI_MTX_DATA_ACK           0x28  // был передан байт данных и получено подтверждение  
+#define TWI_MTX_DATA_NACK          0x30  // был передан байт данных и не получено подтверждение
+
+/*Статусные коды ведущего приемника*/ 
+#define TWI_MRX_ADR_ACK            0x40  // был передан пакет SLA+R и получено подтвеждение 
+#define TWI_MRX_ADR_NACK           0x48  // был передан пакет SLA+R и не получено подтверждение 
+#define TWI_MRX_DATA_ACK           0x50  // байт данных принят и передано подтверждение  
+#define TWI_MRX_DATA_NACK          0x58  // был принят байт данных без подтверждения  
+
+/*Другие статусные коды*/
+#define TWI_NO_STATE               0xF8  // неопределенное состояние; TWINT = “0”
+#define TWI_BUS_ERROR              0x00  // ошибка на шине из-за некоректных состояний СТАРТ или СТОП
+
+/*Пользовательские коды*/
+#define TWI_SUCCESS                0xff
+
+/****************************************************************************
+  Определения констант
+****************************************************************************/
+
+#define TWI_READ_BIT     0       // позиция R/W бита в адресном пакете
+#define TWI_ADR_BITS     1       // позиция адреса в адресном пакете
+#define TRUE             1
+#define FALSE            0
+
+/****************************************************************************
+  Пользовательские функции
+****************************************************************************/
+
+/*Инициализация и установка частоты SCL сигнала*/
+uint8_t TWI_MasterInit(uint16_t fr);
+
+/*Передать данные*/
+void TWI_SendData(uint8_t *msg, uint8_t msgSize);
+
+/*Получить принятые данные*/
+uint8_t TWI_GetData(uint8_t *msg, uint8_t msgSize);
+
+/*Взять статус TWI модуля*/
+uint8_t TWI_GetState(void);
+
+#endif //TWIM_H