Preparing for V9.0.0 formal release:
+ Update various projects to use the latest versions of their build tools.
diff --git a/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd
index 0611d71..5be853f 100644
--- a/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd
+++ b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewd
@@ -12,7 +12,7 @@
       <name>C-SPY</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>22</version>

+        <version>28</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -45,7 +45,7 @@
         </option>

         <option>

           <name>MemFile</name>

-          <state>$TOOLKIT_DIR$\CONFIG\debugger\Atmel\ioAT91SAM3U4.ddf</state>

+          <state></state>

         </option>

         <option>

           <name>RunToEnable</name>

@@ -89,11 +89,7 @@
         </option>

         <option>

           <name>OCLastSavedByProductVersion</name>

-          <state>6.20.1.52589</state>

-        </option>

-        <option>

-          <name>OCDownloadAttachToProgram</name>

-          <state>0</state>

+          <state>7.60.1.11206</state>

         </option>

         <option>

           <name>UseFlashLoader</name>

@@ -117,7 +113,7 @@
         </option>

         <option>

           <name>FlashLoadersV3</name>

-          <state>$TOOLKIT_DIR$\config\flashloader\Atmel\AT91SAM3U4-EK\at91sam3u4-flash.board</state>

+          <state>$TOOLKIT_DIR$\config\flashloader\</state>

         </option>

         <option>

           <name>OCImagesSuppressCheck1</name>

@@ -171,6 +167,50 @@
           <name>OCImagesUse3</name>

           <state>0</state>

         </option>

+        <option>

+          <name>OCDeviceConfigMacroFile</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCDebuggerExtraOption</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCAllMTBOptions</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCMulticoreNrOfCores</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCMulticoreMaster</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCMulticorePort</name>

+          <state>53461</state>

+        </option>

+        <option>

+          <name>OCMulticoreWorkspace</name>

+          <state></state>

+        </option>

+        <option>

+          <name>OCMulticoreSlaveProject</name>

+          <state></state>

+        </option>

+        <option>

+          <name>OCMulticoreSlaveConfiguration</name>

+          <state></state>

+        </option>

+        <option>

+          <name>OCDownloadExtraImage</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCAttachSlave</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -242,6 +282,181 @@
       </data>

     </settings>

     <settings>

+      <name>CMSISDAP_ID</name>

+      <archiveVersion>2</archiveVersion>

+      <data>

+        <version>4</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>OCDriverInfo</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCIarProbeScriptFile</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CMSISDAPResetList</name>

+          <version>1</version>

+          <state>10</state>

+        </option>

+        <option>

+          <name>CMSISDAPHWResetDuration</name>

+          <state>300</state>

+        </option>

+        <option>

+          <name>CMSISDAPHWResetDelay</name>

+          <state>200</state>

+        </option>

+        <option>

+          <name>CMSISDAPDoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CMSISDAPLogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>CMSISDAPInterfaceRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CMSISDAPInterfaceCmdLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CMSISDAPMultiTargetEnable</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CMSISDAPMultiTarget</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CMSISDAPJtagSpeedList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CMSISDAPBreakpointRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CMSISDAPRestoreBreakpointsCheck</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CMSISDAPUpdateBreakpointsEdit</name>

+          <state>_call_main</state>

+        </option>

+        <option>

+          <name>RDICatchReset</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>RDICatchUndef</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>RDICatchSWI</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>RDICatchData</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>RDICatchPrefetch</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>RDICatchIRQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>RDICatchFIQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CatchCORERESET</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CatchMMERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchNOCPERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchCHKERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchSTATERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchBUSERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchINTERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchHARDERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CMSISDAPMultiCPUEnable</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CMSISDAPMultiCPUNumber</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCProbeCfgOverride</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCProbeConfig</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CMSISDAPProbeConfigRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CMSISDAPSelectedCPUBehaviour</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>ICpuName</name>

+          <state></state>

+        </option>

+        <option>

+          <name>OCJetEmuParams</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCCMSISDAPUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCCMSISDAPUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

       <name>GDBSERVER_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

@@ -310,10 +525,236 @@
       </data>

     </settings>

     <settings>

+      <name>IJET_ID</name>

+      <archiveVersion>2</archiveVersion>

+      <data>

+        <version>8</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>OCDriverInfo</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCIarProbeScriptFile</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IjetResetList</name>

+          <version>1</version>

+          <state>10</state>

+        </option>

+        <option>

+          <name>IjetHWResetDuration</name>

+          <state>300</state>

+        </option>

+        <option>

+          <name>IjetHWResetDelay</name>

+          <state>200</state>

+        </option>

+        <option>

+          <name>IjetPowerFromProbe</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IjetPowerRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetDoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetLogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>IjetInterfaceRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetInterfaceCmdLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetMultiTargetEnable</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetMultiTarget</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetScanChainNonARMDevices</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetIRLength</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetJtagSpeedList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetProtocolRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetSwoPin</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetCpuClockEdit</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IjetSwoPrescalerList</name>

+          <version>1</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetBreakpointRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetRestoreBreakpointsCheck</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetUpdateBreakpointsEdit</name>

+          <state>_call_main</state>

+        </option>

+        <option>

+          <name>RDICatchReset</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>RDICatchUndef</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>RDICatchSWI</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>RDICatchData</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>RDICatchPrefetch</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>RDICatchIRQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>RDICatchFIQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CatchCORERESET</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CatchMMERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchNOCPERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchCHKERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchSTATERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchBUSERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchINTERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchHARDERR</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CatchDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCProbeCfgOverride</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCProbeConfig</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IjetProbeConfigRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetMultiCPUEnable</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetMultiCPUNumber</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetSelectedCPUBehaviour</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>ICpuName</name>

+          <state></state>

+        </option>

+        <option>

+          <name>OCJetEmuParams</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IjetPreferETB</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IjetTraceSettingsList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IjetTraceSizeList</name>

+          <version>0</version>

+          <state>2</state>

+        </option>

+        <option>

+          <name>FlashBoardPathSlave</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCIjetUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCIjetUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

       <name>JLINK_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>13</version>

+        <version>16</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -418,13 +859,9 @@
           <state>1</state>

         </option>

         <option>

-          <name>OCJLinkAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>CCJLinkResetList</name>

-          <version>5</version>

-          <state>7</state>

+          <version>6</version>

+          <state>5</state>

         </option>

         <option>

           <name>CCJLinkInterfaceCmdLine</name>

@@ -495,6 +932,18 @@
           <name>CCSwoClockEdit</name>

           <state>2000</state>

         </option>

+        <option>

+          <name>OCJLinkTraceSource</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCJLinkTraceSourceDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCJLinkDeviceName</name>

+          <state>1</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -623,7 +1072,7 @@
       <name>PEMICRO_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>0</version>

+        <version>3</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -631,23 +1080,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>OCPEMicroAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCPEMicroInterfaceList</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCPEMicroResetDelay</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CCPEMicroJtagSpeed</name>

-          <state>#UNINITIALIZED#</state>

-        </option>

-        <option>

           <name>CCJPEMicroShowSettings</name>

           <state>0</state>

         </option>

@@ -659,28 +1091,6 @@
           <name>LogFile</name>

           <state>$PROJ_DIR$\cspycomm.log</state>

         </option>

-        <option>

-          <name>CCPEMicroUSBDevice</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCPEMicroSerialPort</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJPEMicroTCPIPAutoScanNetwork</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCPEMicroTCPIP</name>

-          <state>10.0.0.1</state>

-        </option>

-        <option>

-          <name>CCPEMicroCommCmdLineProducer</name>

-          <state>0</state>

-        </option>

       </data>

     </settings>

     <settings>

@@ -744,7 +1154,7 @@
       <name>STLINK_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>3</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -776,6 +1186,71 @@
           <name>CCSwoClockEdit</name>

           <state>2000</state>

         </option>

+        <option>

+          <name>DoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>LogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>CCSTLinkDoUpdateBreakpoints</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkUpdateBreakpoints</name>

+          <state>_call_main</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchCORERESET</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchMMERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchNOCPERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchCHRERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchSTATERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchBUSERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchINTERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchHARDERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCSTLinkUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkJtagSpeedList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -803,8 +1278,247 @@
         </option>

       </data>

     </settings>

+    <settings>

+      <name>TIFET_ID</name>

+      <archiveVersion>2</archiveVersion>

+      <data>

+        <version>1</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>OCDriverInfo</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCMSPFetResetList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetInterfaceRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetInterfaceCmdLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetVccTypeDefault</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetVoltage</name>

+          <state>###Uninitialized###</state>

+        </option>

+        <option>

+          <name>CCMSPFetVCCDefault</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetSettlingtime</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetRadioJtagSpeedType</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCMSPFetConnection</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetUsbComPort</name>

+          <state>Automatic</state>

+        </option>

+        <option>

+          <name>CCMSPFetAllowAccessToBSL</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetDoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetLogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>CCMSPFetRadioEraseFlash</name>

+          <state>1</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>XDS100_ID</name>

+      <archiveVersion>2</archiveVersion>

+      <data>

+        <version>5</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>OCDriverInfo</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>TIPackageOverride</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>TIPackage</name>

+          <state></state>

+        </option>

+        <option>

+          <name>BoardFile</name>

+          <state></state>

+        </option>

+        <option>

+          <name>DoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>LogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>CCXds100BreakpointRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100DoUpdateBreakpoints</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100UpdateBreakpoints</name>

+          <state>_call_main</state>

+        </option>

+        <option>

+          <name>CCXds100CatchReset</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchUndef</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchSWI</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchData</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchPrefetch</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchIRQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchFIQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchCORERESET</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchMMERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchNOCPERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchCHRERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchSTATERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchBUSERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchINTERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchHARDERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CpuClockEdit</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCXds100SwoClockAuto</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100SwoClockEdit</name>

+          <state>1000</state>

+        </option>

+        <option>

+          <name>CCXds100HWResetDelay</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100ResetList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100UsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCXds100UsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100JtagSpeedList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100InterfaceRadio</name>

+          <state>2</state>

+        </option>

+        <option>

+          <name>CCXds100InterfaceCmdLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100ProbeList</name>

+          <version>0</version>

+          <state>2</state>

+        </option>

+      </data>

+    </settings>

     <debuggerPlugins>

       <plugin>

+        <file>$TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$TOOLKIT_DIR$\plugins\middleware\PercepioTraceExporter\PercepioTraceExportPlugin.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

         <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin</file>

         <loadFlag>0</loadFlag>

       </plugin>

@@ -825,11 +1539,7 @@
         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin</file>

+        <file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin</file>

         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

@@ -841,6 +1551,10 @@
         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

+        <file>$TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

         <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>

         <loadFlag>0</loadFlag>

       </plugin>

@@ -849,28 +1563,20 @@
         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

+        <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

         <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>

         <loadFlag>1</loadFlag>

       </plugin>

       <plugin>

-        <file>$EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

         <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>

         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

-        <file>$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin</file>

-        <loadFlag>1</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>

-        <loadFlag>1</loadFlag>

+        <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>

+        <loadFlag>0</loadFlag>

       </plugin>

     </debuggerPlugins>

   </configuration>

diff --git a/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp
index 18b54fb..af590dd 100644
--- a/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp
+++ b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/RTOSDemo.ewp
@@ -12,7 +12,7 @@
       <name>General</name>

       <archiveVersion>3</archiveVersion>

       <data>

-        <version>21</version>

+        <version>24</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -28,11 +28,6 @@
           <state>Debug\List</state>

         </option>

         <option>

-          <name>Variant</name>

-          <version>19</version>

-          <state>37</state>

-        </option>

-        <option>

           <name>GEndianMode</name>

           <state>0</state>

         </option>

@@ -59,11 +54,6 @@
           <state>0</state>

         </option>

         <option>

-          <name>FPU</name>

-          <version>2</version>

-          <state>0</state>

-        </option>

-        <option>

           <name>OGCoreOrChip</name>

           <state>1</state>

         </option>

@@ -87,7 +77,7 @@
         </option>

         <option>

           <name>OGLastSavedByProductVersion</name>

-          <state>6.20.1.52589</state>

+          <state>7.60.1.11206</state>

         </option>

         <option>

           <name>GeneralEnableMisra</name>

@@ -99,7 +89,7 @@
         </option>

         <option>

           <name>OGChipSelectEditMenu</name>

-          <state>AT91SAM3U4	Atmel AT91SAM3U4</state>

+          <state>ATSAM3U4E	Atmel ATSAM3U4E</state>

         </option>

         <option>

           <name>GenLowLevelInterface</name>

@@ -115,7 +105,7 @@
         </option>

         <option>

           <name>GenStdoutInterface</name>

-          <state>1</state>

+          <state>0</state>

         </option>

         <option>

           <name>GeneralMisraRules98</name>

@@ -136,33 +126,64 @@
           <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>

         </option>

         <option>

-          <name>GFPUCoreSlave</name>

-          <version>19</version>

-          <state>37</state>

-        </option>

-        <option>

           <name>GBECoreSlave</name>

-          <version>19</version>

-          <state>37</state>

+          <version>24</version>

+          <state>38</state>

         </option>

         <option>

           <name>OGUseCmsis</name>

-          <state>1</state>

+          <state>0</state>

         </option>

         <option>

           <name>OGUseCmsisDspLib</name>

           <state>0</state>

         </option>

+        <option>

+          <name>GRuntimeLibThreads</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CoreVariant</name>

+          <version>24</version>

+          <state>38</state>

+        </option>

+        <option>

+          <name>GFPUDeviceSlave</name>

+          <state>ATSAM3U4E	Atmel ATSAM3U4E</state>

+        </option>

+        <option>

+          <name>FPU2</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>NrRegs</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>NEON</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GFPUCoreSlave2</name>

+          <version>24</version>

+          <state>38</state>

+        </option>

       </data>

     </settings>

     <settings>

       <name>ICCARM</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>28</version>

+        <version>31</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

+          <name>CCOptimizationNoSizeConstraints</name>

+          <state>0</state>

+        </option>

+        <option>

           <name>CCDefines</name>

           <state>at91sam3u4</state>

           <state>flash</state>

@@ -226,7 +247,7 @@
         <option>

           <name>CCAllowList</name>

           <version>1</version>

-          <state>0000000</state>

+          <state>00000000</state>

         </option>

         <option>

           <name>CCDebugInfo</name>

@@ -395,13 +416,26 @@
           <name>IccFloatSemantics</name>

           <state>0</state>

         </option>

+        <option>

+          <name>CCNoLiteralPool</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCOptStrategySlave</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCGuardCalls</name>

+          <state>1</state>

+        </option>

       </data>

     </settings>

     <settings>

       <name>AARM</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>8</version>

+        <version>9</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -557,6 +591,10 @@
           <name>AExtraOptionsV2</name>

           <state></state>

         </option>

+        <option>

+          <name>AsmNoLiteralPool</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -568,7 +606,7 @@
         <debug>1</debug>

         <option>

           <name>OOCOutputFormat</name>

-          <version>2</version>

+          <version>3</version>

           <state>0</state>

         </option>

         <option>

@@ -595,6 +633,7 @@
       <data>

         <extensions></extensions>

         <cmdline></cmdline>

+        <hasPrio>0</hasPrio>

       </data>

     </settings>

     <settings>

@@ -614,7 +653,7 @@
       <name>ILINK</name>

       <archiveVersion>0</archiveVersion>

       <data>

-        <version>13</version>

+        <version>17</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -783,10 +822,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>CrcAlgo</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>CrcPoly</name>

           <state>0x11021</state>

         </option>

@@ -876,6 +911,36 @@
           <name>IlinkOptForceVfe</name>

           <state>0</state>

         </option>

+        <option>

+          <name>IlinkStackAnalysisEnable</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkStackControlFile</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkStackCallGraphFile</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CrcAlgorithm</name>

+          <version>0</version>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CrcUnitSize</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkThreadsSlave</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IlinkLogCallGraph</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

diff --git a/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni
index 5c96ed1..12be697 100644
--- a/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni
+++ b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.dni
@@ -55,6 +55,11 @@
 SWOInfo_ITMPortsTermIO=0x00000001

 SWOInfo_ITMPortsLogFile=0x00000000

 SWOInfo_ITMLogFile=$PROJ_DIR$\ITM.log

+WatchCond=_ 0

+Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0

+Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0

+CStepIntDis=_ 0

+LeaveTargetRunning=_ 0

 [DataLog]

 LogEnabled=0

 SumEnabled=0

diff --git a/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt
index d91c738..c8ac51d 100644
--- a/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt
+++ b/FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/settings/RTOSDemo.wsdt
@@ -12,7 +12,7 @@
           

           

           

-        <Column0>258</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>

+        <Column0>306</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>

       </Workspace>

     <Build><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1216</ColumnWidth1><ColumnWidth2>324</ColumnWidth2><ColumnWidth3>81</ColumnWidth3></Build><TerminalIO/><Debug-Log><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1622</ColumnWidth1></Debug-Log><Find-in-Files><ColumnWidth0>580</ColumnWidth0><ColumnWidth1>82</ColumnWidth1><ColumnWidth2>994</ColumnWidth2></Find-in-Files></Static>

     <Windows>

@@ -35,14 +35,14 @@
       

       

       

-    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>47</YPos><SelStart>8010</SelStart><SelEnd>8010</SelEnd></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>

+    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>63</YPos2><SelStart2>0</SelStart2><SelEnd2>0</SelEnd2></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>

     <Positions>

       

       

       

       

       

-    <Top><Row0><Sizes><Toolbar-01336218><key>iaridepm.enu1</key></Toolbar-01336218></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>670</Bottom><Right>332</Right><x>-2</x><y>-2</y><xscreen>240</xscreen><yscreen>200</yscreen><sizeHorzCX>142857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>198810</sizeVertCX><sizeVertCY>684318</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>268</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>270</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>274949</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>

+    <Top><Row0><Sizes><Toolbar-00DA1BB8><key>iaridepm.enu1</key></Toolbar-00DA1BB8></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>780</Bottom><Right>380</Right><x>-2</x><y>-2</y><xscreen>274</xscreen><yscreen>231</yscreen><sizeHorzCX>142708</sizeHorzCX><sizeHorzCY>203704</sizeHorzCY><sizeVertCX>198958</sizeVertCX><sizeVertCY>689594</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>310</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>312</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>275132</sizeHorzCY><sizeVertCX>142708</sizeVertCX><sizeVertCY>203704</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>

   </Desktop>

 </Workspace>

 

diff --git a/FreeRTOS/Demo/CORTEX_ATSAM3X_Atmel_Studio/RTOSDemo.cproj b/FreeRTOS/Demo/CORTEX_ATSAM3X_Atmel_Studio/RTOSDemo.cproj
index 386dc42..2a07538 100644
--- a/FreeRTOS/Demo/CORTEX_ATSAM3X_Atmel_Studio/RTOSDemo.cproj
+++ b/FreeRTOS/Demo/CORTEX_ATSAM3X_Atmel_Studio/RTOSDemo.cproj
@@ -2,7 +2,7 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">

   <PropertyGroup>

     <SchemaVersion>2.0</SchemaVersion>

-    <ProjectVersion>6.0</ProjectVersion>

+    <ProjectVersion>7.0</ProjectVersion>

     <ProjectGuid>{1a1a7c6e-bd59-4e82-8371-7f51ae9a4bd9}</ProjectGuid>

     <Name>$(MSBuildProjectName)</Name>

     <AssemblyName>$(MSBuildProjectName)</AssemblyName>

@@ -10,163 +10,167 @@
     <AsfVersion>3.3.0</AsfVersion>

     <AsfFrameworkConfig>

       <framework-data>

-        <options>

-          <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="common.services.basic.gpio" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="sam.drivers.pio" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="sam.drivers.usart" value="Add" config="" content-id="Atmel.ASF" />

-        </options>

-        <configurations>

-          <configuration key="config.sam.pio.pio_handler" value="yes" default="yes" content-id="Atmel.ASF" />

-        </configurations>

-        <files>

-          <file path="src/asf.h" framework="" version="3.3.0" source="./common/applications/user_application/sam3x8h_sam3x_ek/as5_arm_template/asf.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/main.c" framework="" version="3.3.0" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/config/conf_board.h" framework="" version="3.3.0" source="common/applications/user_application/sam3x8h_sam3x_ek/conf_board.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/boards/board.h" framework="" version="3.3.0" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/gpio/gpio.h" framework="" version="3.3.0" source="common/services/gpio/gpio.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/gpio/sam_ioport/sam_gpio.h" framework="" version="3.3.0" source="common/services/gpio/sam_ioport/sam_gpio.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/utils/interrupt.h" framework="" version="3.3.0" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/utils/interrupt/interrupt_sam_nvic.c" framework="" version="3.3.0" source="common/utils/interrupt/interrupt_sam_nvic.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/utils/interrupt/interrupt_sam_nvic.h" framework="" version="3.3.0" source="common/utils/interrupt/interrupt_sam_nvic.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/utils/parts.h" framework="" version="3.3.0" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/boards/sam3x_ek/init.c" framework="" version="3.3.0" source="sam/boards/sam3x_ek/init.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/boards/sam3x_ek/led.h" framework="" version="3.3.0" source="sam/boards/sam3x_ek/led.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/boards/sam3x_ek/sam3x_ek.h" framework="" version="3.3.0" source="sam/boards/sam3x_ek/sam3x_ek.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pio/pio.c" framework="" version="3.3.0" source="sam/drivers/pio/pio.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pio/pio.h" framework="" version="3.3.0" source="sam/drivers/pio/pio.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pio/pio_handler.c" framework="" version="3.3.0" source="sam/drivers/pio/pio_handler.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pio/pio_handler.h" framework="" version="3.3.0" source="sam/drivers/pio/pio_handler.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_adc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_adc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_can.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_can.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_chipid.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_chipid.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_dacc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_dacc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_dmac.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_dmac.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_efc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_efc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_emac.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_emac.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_gpbr.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_gpbr.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_hsmci.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_hsmci.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_matrix.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_matrix.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_pdc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_pdc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_pio.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_pio.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_pmc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_pmc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_pwm.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_pwm.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_rstc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_rstc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_rtc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_rtc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_rtt.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_rtt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_sdramc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_sdramc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_smc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_smc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_spi.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_spi.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_ssc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_ssc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_supc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_supc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_tc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_tc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_trng.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_trng.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_twi.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_twi.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_uart.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_uart.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_uotghs.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_uotghs.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_usart.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_usart.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_wdt.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_wdt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_adc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_adc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_can0.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_can0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_can1.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_can1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_chipid.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_chipid.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_dacc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_dacc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_dmac.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_dmac.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_efc0.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_efc0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_efc1.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_efc1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_emac.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_emac.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_gpbr.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_gpbr.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_hsmci.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_hsmci.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_matrix.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_matrix.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_pioa.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_pioa.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_piob.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_piob.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_pioc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_pioc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_piod.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_piod.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_pioe.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_pioe.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_piof.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_piof.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_pmc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_pmc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_pwm.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_pwm.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_rstc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_rstc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_rtc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_rtc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_rtt.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_rtt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_sdramc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_sdramc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_smc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_smc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_spi0.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_spi0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_spi1.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_spi1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_ssc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_ssc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_supc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_supc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_tc0.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_tc0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_tc1.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_tc1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_tc2.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_tc2.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_trng.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_trng.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_twi0.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_twi0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_twi1.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_twi1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_uart.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_uart.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_uotghs.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_uotghs.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_usart0.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_usart0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_usart1.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_usart1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_usart2.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_usart2.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_usart3.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_usart3.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_wdt.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_wdt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3a4c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3a4c.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3a8c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3a8c.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3x4c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3x4c.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3x4e.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3x4e.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3x8c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3x8c.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3x8e.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3x8e.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3x8h.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3x8h.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3a4c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3a4c.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3a8c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3a8c.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3x4c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3x4c.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3x4e.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3x4e.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3x8c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3x8c.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3x8e.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3x8e.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3x8h.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3x8h.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3xa.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3xa.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/source/templates/exceptions.c" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/source/templates/exceptions.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/source/templates/exceptions.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/source/templates/exceptions.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/source/templates/gcc/startup_sam3x.c" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/source/templates/gcc/startup_sam3x.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/source/templates/system_sam3x.c" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/source/templates/system_sam3x.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam3x/source/templates/system_sam3x.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/source/templates/system_sam3x.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/compiler.h" framework="" version="3.3.0" source="sam/utils/compiler.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/header_files/io.h" framework="" version="3.3.0" source="sam/utils/header_files/io.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/linker_scripts/sam3x/sam3x8/gcc/flash.ld" framework="" version="3.3.0" source="sam/utils/linker_scripts/sam3x/sam3x8/gcc/flash.ld" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/make/Makefile.in" framework="" version="3.3.0" source="sam/utils/make/Makefile.in" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/preprocessor/mrepeat.h" framework="" version="3.3.0" source="sam/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/preprocessor/preprocessor.h" framework="" version="3.3.0" source="sam/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/preprocessor/stringz.h" framework="" version="3.3.0" source="sam/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/preprocessor/tpaste.h" framework="" version="3.3.0" source="sam/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/status_codes.h" framework="" version="3.3.0" source="sam/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" framework="" version="3.3.0" source="thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/Include/core_cm3.h" framework="" version="3.3.0" source="thirdparty/CMSIS/Include/core_cm3.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/Include/core_cmFunc.h" framework="" version="3.3.0" source="thirdparty/CMSIS/Include/core_cmFunc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/Include/core_cmInstr.h" framework="" version="3.3.0" source="thirdparty/CMSIS/Include/core_cmInstr.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/README.txt" framework="" version="3.3.0" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/license.txt" framework="" version="3.3.0" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pmc/pmc.c" framework="" version="" source="sam\drivers\pmc\pmc.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pmc/pmc.h" framework="" version="" source="sam\drivers\pmc\pmc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pmc/sleep.h" framework="" version="" source="sam\drivers\pmc\sleep.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/sam3x/sysclk.c" framework="" version="" source="common\services\clock\sam3x\sysclk.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/genclk.h" framework="" version="" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/osc.h" framework="" version="" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/sam3x/pll.h" framework="" version="" source="common\services\clock\sam3x\pll.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/sam3x/sysclk.h" framework="" version="" source="common\services\clock\sam3x\sysclk.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/sam3x/osc.h" framework="" version="" source="common\services\clock\sam3x\osc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/sam3x/genclk.h" framework="" version="" source="common\services\clock\sam3x\genclk.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/sysclk.h" framework="" version="" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/pll.h" framework="" version="" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/config/conf_clock.h" framework="" version="" source="common\services\clock\sam3x\module_config\conf_clock.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/usart/usart.c" framework="" version="" source="sam\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/usart/usart.h" framework="" version="" source="sam\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" />

-        </files>

-        <documentation help="http://asf.atmel.com/docs/3.3.0/common.applications.user_application.sam3x_ek/html/index.html" />

-      </framework-data>

+  <options>

+    <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="common.services.basic.gpio" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="sam.drivers.pio" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="sam.drivers.usart" value="Add" config="" content-id="Atmel.ASF" />

+  </options>

+  <configurations>

+    <configuration key="config.sam.pio.pio_handler" value="yes" default="yes" content-id="Atmel.ASF" />

+  </configurations>

+  <files>

+    <file path="src/asf.h" framework="" version="3.3.0" source="./common/applications/user_application/sam3x8h_sam3x_ek/as5_arm_template/asf.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/main.c" framework="" version="3.3.0" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/config/conf_board.h" framework="" version="3.3.0" source="common/applications/user_application/sam3x8h_sam3x_ek/conf_board.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/boards/board.h" framework="" version="3.3.0" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/gpio/gpio.h" framework="" version="3.3.0" source="common/services/gpio/gpio.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/gpio/sam_ioport/sam_gpio.h" framework="" version="3.3.0" source="common/services/gpio/sam_ioport/sam_gpio.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/utils/interrupt.h" framework="" version="3.3.0" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/utils/interrupt/interrupt_sam_nvic.c" framework="" version="3.3.0" source="common/utils/interrupt/interrupt_sam_nvic.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/utils/interrupt/interrupt_sam_nvic.h" framework="" version="3.3.0" source="common/utils/interrupt/interrupt_sam_nvic.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/utils/parts.h" framework="" version="3.3.0" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/boards/sam3x_ek/init.c" framework="" version="3.3.0" source="sam/boards/sam3x_ek/init.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/boards/sam3x_ek/led.h" framework="" version="3.3.0" source="sam/boards/sam3x_ek/led.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/boards/sam3x_ek/sam3x_ek.h" framework="" version="3.3.0" source="sam/boards/sam3x_ek/sam3x_ek.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pio/pio.c" framework="" version="3.3.0" source="sam/drivers/pio/pio.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pio/pio.h" framework="" version="3.3.0" source="sam/drivers/pio/pio.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pio/pio_handler.c" framework="" version="3.3.0" source="sam/drivers/pio/pio_handler.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pio/pio_handler.h" framework="" version="3.3.0" source="sam/drivers/pio/pio_handler.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_adc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_adc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_can.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_can.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_chipid.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_chipid.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_dacc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_dacc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_dmac.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_dmac.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_efc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_efc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_emac.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_emac.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_gpbr.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_gpbr.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_hsmci.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_hsmci.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_matrix.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_matrix.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_pdc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_pdc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_pio.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_pio.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_pmc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_pmc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_pwm.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_pwm.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_rstc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_rstc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_rtc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_rtc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_rtt.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_rtt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_sdramc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_sdramc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_smc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_smc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_spi.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_spi.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_ssc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_ssc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_supc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_supc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_tc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_tc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_trng.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_trng.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_twi.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_twi.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_uart.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_uart.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_uotghs.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_uotghs.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_usart.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_usart.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/component/component_wdt.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/component/component_wdt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_adc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_adc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_can0.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_can0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_can1.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_can1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_chipid.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_chipid.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_dacc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_dacc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_dmac.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_dmac.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_efc0.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_efc0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_efc1.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_efc1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_emac.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_emac.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_gpbr.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_gpbr.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_hsmci.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_hsmci.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_matrix.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_matrix.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_pioa.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_pioa.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_piob.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_piob.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_pioc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_pioc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_piod.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_piod.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_pioe.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_pioe.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_piof.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_piof.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_pmc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_pmc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_pwm.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_pwm.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_rstc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_rstc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_rtc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_rtc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_rtt.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_rtt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_sdramc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_sdramc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_smc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_smc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_spi0.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_spi0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_spi1.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_spi1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_ssc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_ssc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_supc.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_supc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_tc0.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_tc0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_tc1.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_tc1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_tc2.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_tc2.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_trng.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_trng.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_twi0.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_twi0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_twi1.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_twi1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_uart.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_uart.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_uotghs.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_uotghs.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_usart0.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_usart0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_usart1.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_usart1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_usart2.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_usart2.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_usart3.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_usart3.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/instance/instance_wdt.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/instance/instance_wdt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3a4c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3a4c.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3a8c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3a8c.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3x4c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3x4c.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3x4e.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3x4e.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3x8c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3x8c.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3x8e.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3x8e.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/pio/pio_sam3x8h.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/pio/pio_sam3x8h.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3a4c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3a4c.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3a8c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3a8c.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3x4c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3x4c.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3x4e.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3x4e.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3x8c.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3x8c.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3x8e.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3x8e.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3x8h.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3x8h.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/include/sam3xa.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/include/sam3xa.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/source/templates/exceptions.c" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/source/templates/exceptions.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/source/templates/exceptions.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/source/templates/exceptions.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/source/templates/gcc/startup_sam3x.c" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/source/templates/gcc/startup_sam3x.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/source/templates/system_sam3x.c" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/source/templates/system_sam3x.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam3x/source/templates/system_sam3x.h" framework="" version="3.3.0" source="sam/utils/cmsis/sam3x/source/templates/system_sam3x.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/compiler.h" framework="" version="3.3.0" source="sam/utils/compiler.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/header_files/io.h" framework="" version="3.3.0" source="sam/utils/header_files/io.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/linker_scripts/sam3x/sam3x8/gcc/flash.ld" framework="" version="3.3.0" source="sam/utils/linker_scripts/sam3x/sam3x8/gcc/flash.ld" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/make/Makefile.in" framework="" version="3.3.0" source="sam/utils/make/Makefile.in" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/preprocessor/mrepeat.h" framework="" version="3.3.0" source="sam/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/preprocessor/preprocessor.h" framework="" version="3.3.0" source="sam/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/preprocessor/stringz.h" framework="" version="3.3.0" source="sam/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/preprocessor/tpaste.h" framework="" version="3.3.0" source="sam/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/status_codes.h" framework="" version="3.3.0" source="sam/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" framework="" version="3.3.0" source="thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/Include/core_cm3.h" framework="" version="3.3.0" source="thirdparty/CMSIS/Include/core_cm3.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/Include/core_cmFunc.h" framework="" version="3.3.0" source="thirdparty/CMSIS/Include/core_cmFunc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/Include/core_cmInstr.h" framework="" version="3.3.0" source="thirdparty/CMSIS/Include/core_cmInstr.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/README.txt" framework="" version="3.3.0" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/license.txt" framework="" version="3.3.0" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pmc/pmc.c" framework="" version="" source="sam\drivers\pmc\pmc.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pmc/pmc.h" framework="" version="" source="sam\drivers\pmc\pmc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pmc/sleep.h" framework="" version="" source="sam\drivers\pmc\sleep.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/sam3x/sysclk.c" framework="" version="" source="common\services\clock\sam3x\sysclk.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/genclk.h" framework="" version="" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/osc.h" framework="" version="" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/sam3x/pll.h" framework="" version="" source="common\services\clock\sam3x\pll.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/sam3x/sysclk.h" framework="" version="" source="common\services\clock\sam3x\sysclk.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/sam3x/osc.h" framework="" version="" source="common\services\clock\sam3x\osc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/sam3x/genclk.h" framework="" version="" source="common\services\clock\sam3x\genclk.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/sysclk.h" framework="" version="" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/pll.h" framework="" version="" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/config/conf_clock.h" framework="" version="" source="common\services\clock\sam3x\module_config\conf_clock.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/usart/usart.c" framework="" version="" source="sam\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/usart/usart.h" framework="" version="" source="sam\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" />

+  </files>

+  <documentation help="" />

+  <offline-documentation help="" />

+  <dependencies>

+    <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.20.1" />

+  </dependencies>

+</framework-data>

     </AsfFrameworkConfig>

     <avrdevice>ATSAM3X8H</avrdevice>

     <avrdeviceseries>sam3x</avrdeviceseries>

     <Language>C</Language>

-    <ToolchainName>com.Atmel.ARMGCC</ToolchainName>

+    <ToolchainName>com.Atmel.ARMGCC.C</ToolchainName>

     <ArmGccProjectExtensions />

     <OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>

     <OutputFileName>$(MSBuildProjectName)</OutputFileName>

@@ -207,210 +211,172 @@
         </InterfaceProperties>

       </ToolOptions>

     </com_atmel_avrdbg_tool_samice>

+    <CacheFlash>true</CacheFlash>

+    <ProgFlashFromRam>true</ProgFlashFromRam>

+    <RamSnippetAddress />

+    <UncachedRange />

+    <preserveEEPROM>true</preserveEEPROM>

+    <BootSegment>2</BootSegment>

   </PropertyGroup>

   <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">

-    <ToolchainSettings>

-      <ArmGcc>

-        <armgcc.common.general.symbols>__SAM3X8H__</armgcc.common.general.symbols>

-        <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>

-        <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>

-        <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>

-        <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>

-        <armgcc.compiler.symbols.DefSymbols>

-          <ListValues>

-            <Value>BOARD=SAM3X_EK</Value>

-            <Value>__SAM3X8H__</Value>

-          </ListValues>

-        </armgcc.compiler.symbols.DefSymbols>

-        <armgcc.compiler.directories.IncludePaths>

-          <ListValues>

-            <Value>../src</Value>

-            <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>

-            <Value>../src/asf/common/boards</Value>

-            <Value>../src/asf/common/services/gpio</Value>

-            <Value>../src/asf/common/utils</Value>

-            <Value>../src/asf/sam/boards</Value>

-            <Value>../src/asf/sam/boards/sam3x_ek</Value>

-            <Value>../src/asf/sam/drivers/pio</Value>

-            <Value>../src/asf/sam/utils</Value>

-            <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>

-            <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>

-            <Value>../src/asf/sam/utils/header_files</Value>

-            <Value>../src/asf/sam/utils/preprocessor</Value>

-            <Value>../src/asf/thirdparty/CMSIS/Include</Value>

-            <Value>../src/config</Value>

-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles</Value>

-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\CMSIS\Include</Value>

-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL</Value>

-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL\sam3xa\include</Value>

-            <Value>../src/asf/sam/drivers/pmc</Value>

-            <Value>../src/asf/common/services/clock</Value>

-            <Value>../src/asf/sam/drivers/usart</Value>

-          </ListValues>

-        </armgcc.compiler.directories.IncludePaths>

-        <armgcc.compiler.optimization.level>Optimize for size (-Os)</armgcc.compiler.optimization.level>

-        <armgcc.compiler.optimization.OtherFlags>-fdata-sections</armgcc.compiler.optimization.OtherFlags>

-        <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>

-        <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>

-        <armgcc.compiler.miscellaneous.OtherFlags>-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -std=gnu99 -ffunction-sections -fdata-sections -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return  -Wmissing-declarations -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long -Wunreachable-code -Wcast-align --param max-inline-insns-single=500 -Dprintf=iprintf</armgcc.compiler.miscellaneous.OtherFlags>

-        <armgcc.linker.general.DoNotUseStandardStartFiles />

-        <armgcc.linker.general.DoNotUseDefaultLibraries />

-        <armgcc.linker.general.NoStartupOrDefaultLibs />

-        <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>

-        <armgcc.linker.miscellaneous.LinkerFlags>-T../src/asf/sam/utils/linker_scripts/sam3x/sam3x8/gcc/flash.ld -Wl,--cref -Wl,--entry=Reset_Handler -mthumb</armgcc.linker.miscellaneous.LinkerFlags>

-        <armgcc.assembler.general.IncludePaths>

-          <ListValues>

-            <Value>../src</Value>

-            <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>

-            <Value>../src/asf/common/boards</Value>

-            <Value>../src/asf/common/services/gpio</Value>

-            <Value>../src/asf/common/utils</Value>

-            <Value>../src/asf/sam/boards</Value>

-            <Value>../src/asf/sam/boards/sam3x_ek</Value>

-            <Value>../src/asf/sam/drivers/pio</Value>

-            <Value>../src/asf/sam/utils</Value>

-            <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>

-            <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>

-            <Value>../src/asf/sam/utils/header_files</Value>

-            <Value>../src/asf/sam/utils/preprocessor</Value>

-            <Value>../src/asf/thirdparty/CMSIS/Include</Value>

-            <Value>../src/config</Value>

-            <Value>../src/asf/sam/drivers/pmc</Value>

-            <Value>../src/asf/common/services/clock</Value>

-            <Value>../src/asf/sam/drivers/usart</Value>

-          </ListValues>

-        </armgcc.assembler.general.IncludePaths>

-        <armgcc.preprocessingassembler.general.AssemblerFlags>-DBOARD=SAM3X_EK -D__SAM3X8H__</armgcc.preprocessingassembler.general.AssemblerFlags>

-        <armgcc.preprocessingassembler.general.IncludePaths>

-          <ListValues>

-            <Value>../src</Value>

-            <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>

-            <Value>../src/asf/common/boards</Value>

-            <Value>../src/asf/common/services/gpio</Value>

-            <Value>../src/asf/common/utils</Value>

-            <Value>../src/asf/sam/boards</Value>

-            <Value>../src/asf/sam/boards/sam3x_ek</Value>

-            <Value>../src/asf/sam/drivers/pio</Value>

-            <Value>../src/asf/sam/utils</Value>

-            <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>

-            <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>

-            <Value>../src/asf/sam/utils/header_files</Value>

-            <Value>../src/asf/sam/utils/preprocessor</Value>

-            <Value>../src/asf/thirdparty/CMSIS/Include</Value>

-            <Value>../src/config</Value>

-            <Value>../src/asf/sam/drivers/pmc</Value>

-            <Value>../src/asf/common/services/clock</Value>

-            <Value>../src/asf/sam/drivers/usart</Value>

-          </ListValues>

-        </armgcc.preprocessingassembler.general.IncludePaths>

-      </ArmGcc>

-    </ToolchainSettings>

     <GenerateHexFile>True</GenerateHexFile>

     <GenerateMapFile>True</GenerateMapFile>

     <GenerateListFile>True</GenerateListFile>

     <GenerateEepFile>True</GenerateEepFile>

+    <ToolchainSettings>

+      <ArmGcc xmlns="">

+  <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>

+  <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>

+  <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>

+  <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>

+  <armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>

+  <armgcc.compiler.symbols.DefSymbols>

+    <ListValues>

+      <Value>BOARD=SAM3X_EK</Value>

+      <Value>__SAM3X8H__</Value>

+    </ListValues>

+  </armgcc.compiler.symbols.DefSymbols>

+  <armgcc.compiler.directories.IncludePaths>

+    <ListValues>

+      <Value>../src</Value>

+      <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>

+      <Value>../src/asf/common/boards</Value>

+      <Value>../src/asf/common/services/gpio</Value>

+      <Value>../src/asf/common/utils</Value>

+      <Value>../src/asf/sam/boards</Value>

+      <Value>../src/asf/sam/boards/sam3x_ek</Value>

+      <Value>../src/asf/sam/drivers/pio</Value>

+      <Value>../src/asf/sam/utils</Value>

+      <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>

+      <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>

+      <Value>../src/asf/sam/utils/header_files</Value>

+      <Value>../src/asf/sam/utils/preprocessor</Value>

+      <Value>../src/asf/thirdparty/CMSIS/Include</Value>

+      <Value>../src/config</Value>

+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles</Value>

+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\CMSIS\Include</Value>

+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL</Value>

+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL\sam3xa\include</Value>

+      <Value>../src/asf/sam/drivers/pmc</Value>

+      <Value>../src/asf/common/services/clock</Value>

+      <Value>../src/asf/sam/drivers/usart</Value>

+    </ListValues>

+  </armgcc.compiler.directories.IncludePaths>

+  <armgcc.compiler.optimization.level>Optimize for size (-Os)</armgcc.compiler.optimization.level>

+  <armgcc.compiler.optimization.OtherFlags>-fdata-sections</armgcc.compiler.optimization.OtherFlags>

+  <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>

+  <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>

+  <armgcc.compiler.miscellaneous.OtherFlags>-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -std=gnu99 -ffunction-sections -fdata-sections -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return  -Wmissing-declarations -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long -Wunreachable-code -Wcast-align --param max-inline-insns-single=500 -Dprintf=iprintf</armgcc.compiler.miscellaneous.OtherFlags>

+  <armgcc.linker.general.DoNotUseStandardStartFiles />

+  <armgcc.linker.general.DoNotUseDefaultLibraries />

+  <armgcc.linker.general.NoStartupOrDefaultLibs />

+  <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>

+  <armgcc.linker.miscellaneous.LinkerFlags>-T../src/asf/sam/utils/linker_scripts/sam3x/sam3x8/gcc/flash.ld -Wl,--cref -Wl,--entry=Reset_Handler -mthumb</armgcc.linker.miscellaneous.LinkerFlags>

+  <armgcc.preprocessingassembler.general.AssemblerFlags>-DBOARD=SAM3X_EK -D__SAM3X8H__</armgcc.preprocessingassembler.general.AssemblerFlags>

+  <armgcc.preprocessingassembler.general.IncludePaths>

+    <ListValues>

+      <Value>../src</Value>

+      <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>

+      <Value>../src/asf/common/boards</Value>

+      <Value>../src/asf/common/services/gpio</Value>

+      <Value>../src/asf/common/utils</Value>

+      <Value>../src/asf/sam/boards</Value>

+      <Value>../src/asf/sam/boards/sam3x_ek</Value>

+      <Value>../src/asf/sam/drivers/pio</Value>

+      <Value>../src/asf/sam/utils</Value>

+      <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>

+      <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>

+      <Value>../src/asf/sam/utils/header_files</Value>

+      <Value>../src/asf/sam/utils/preprocessor</Value>

+      <Value>../src/asf/thirdparty/CMSIS/Include</Value>

+      <Value>../src/config</Value>

+      <Value>../src/asf/sam/drivers/pmc</Value>

+      <Value>../src/asf/common/services/clock</Value>

+      <Value>../src/asf/sam/drivers/usart</Value>

+    </ListValues>

+  </armgcc.preprocessingassembler.general.IncludePaths>

+</ArmGcc>

+    </ToolchainSettings>

   </PropertyGroup>

   <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">

-    <ToolchainSettings>

-      <ArmGcc>

-        <armgcc.common.general.symbols>__SAM3X8H__</armgcc.common.general.symbols>

-        <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>

-        <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>

-        <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>

-        <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>

-        <armgcc.compiler.symbols.DefSymbols>

-          <ListValues>

-            <Value>BOARD=SAM3X_EK</Value>

-            <Value>__SAM3X8H__</Value>

-          </ListValues>

-        </armgcc.compiler.symbols.DefSymbols>

-        <armgcc.compiler.directories.IncludePaths>

-          <ListValues>

-            <Value>../src</Value>

-            <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>

-            <Value>../src/asf/common/boards</Value>

-            <Value>../src/asf/common/services/gpio</Value>

-            <Value>../src/asf/common/utils</Value>

-            <Value>../src/asf/sam/boards</Value>

-            <Value>../src/asf/sam/boards/sam3x_ek</Value>

-            <Value>../src/asf/sam/drivers/pio</Value>

-            <Value>../src/asf/sam/utils</Value>

-            <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>

-            <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>

-            <Value>../src/asf/sam/utils/header_files</Value>

-            <Value>../src/asf/sam/utils/preprocessor</Value>

-            <Value>../src/asf/thirdparty/CMSIS/Include</Value>

-            <Value>../src/config</Value>

-            <Value>../src/asf/thirdparty/FreeRTOS/include</Value>

-            <Value>../src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3</Value>

-            <Value>../src/Common-Demo-Source/include</Value>

-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles</Value>

-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\CMSIS\Include</Value>

-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL</Value>

-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL\sam3xa\include</Value>

-            <Value>../src/asf/sam/drivers/pmc</Value>

-            <Value>../src/asf/common/services/clock</Value>

-            <Value>../src/asf/sam/drivers/usart</Value>

-          </ListValues>

-        </armgcc.compiler.directories.IncludePaths>

-        <armgcc.compiler.optimization.OtherFlags>-fdata-sections</armgcc.compiler.optimization.OtherFlags>

-        <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>

-        <armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>

-        <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>

-        <armgcc.compiler.miscellaneous.OtherFlags>-pipe -Wall -Wextra -std=gnu99 -ffunction-sections -fdata-sections --param max-inline-insns-single=500 -Dprintf=iprintf</armgcc.compiler.miscellaneous.OtherFlags>

-        <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>

-        <armgcc.linker.miscellaneous.LinkerFlags>-T../src/asf/sam/utils/linker_scripts/sam3x/sam3x8/gcc/flash.ld -Wl,--cref -Wl,--entry=Reset_Handler -mthumb</armgcc.linker.miscellaneous.LinkerFlags>

-        <armgcc.assembler.general.IncludePaths>

-          <ListValues>

-            <Value>../src</Value>

-            <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>

-            <Value>../src/asf/common/boards</Value>

-            <Value>../src/asf/common/services/gpio</Value>

-            <Value>../src/asf/common/utils</Value>

-            <Value>../src/asf/sam/boards</Value>

-            <Value>../src/asf/sam/boards/sam3x_ek</Value>

-            <Value>../src/asf/sam/drivers/pio</Value>

-            <Value>../src/asf/sam/utils</Value>

-            <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>

-            <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>

-            <Value>../src/asf/sam/utils/header_files</Value>

-            <Value>../src/asf/sam/utils/preprocessor</Value>

-            <Value>../src/asf/thirdparty/CMSIS/Include</Value>

-            <Value>../src/config</Value>

-            <Value>../src/asf/sam/drivers/pmc</Value>

-            <Value>../src/asf/common/services/clock</Value>

-            <Value>../src/asf/sam/drivers/usart</Value>

-          </ListValues>

-        </armgcc.assembler.general.IncludePaths>

-        <armgcc.preprocessingassembler.general.AssemblerFlags>-DBOARD=SAM3X_EK -D__SAM3X8H__</armgcc.preprocessingassembler.general.AssemblerFlags>

-        <armgcc.preprocessingassembler.general.IncludePaths>

-          <ListValues>

-            <Value>../src</Value>

-            <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>

-            <Value>../src/asf/common/boards</Value>

-            <Value>../src/asf/common/services/gpio</Value>

-            <Value>../src/asf/common/utils</Value>

-            <Value>../src/asf/sam/boards</Value>

-            <Value>../src/asf/sam/boards/sam3x_ek</Value>

-            <Value>../src/asf/sam/drivers/pio</Value>

-            <Value>../src/asf/sam/utils</Value>

-            <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>

-            <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>

-            <Value>../src/asf/sam/utils/header_files</Value>

-            <Value>../src/asf/sam/utils/preprocessor</Value>

-            <Value>../src/asf/thirdparty/CMSIS/Include</Value>

-            <Value>../src/config</Value>

-            <Value>../src/asf/sam/drivers/pmc</Value>

-            <Value>../src/asf/common/services/clock</Value>

-            <Value>../src/asf/sam/drivers/usart</Value>

-          </ListValues>

-        </armgcc.preprocessingassembler.general.IncludePaths>

-      </ArmGcc>

-    </ToolchainSettings>

     <GenerateHexFile>True</GenerateHexFile>

     <GenerateMapFile>True</GenerateMapFile>

     <GenerateListFile>True</GenerateListFile>

     <GenerateEepFile>True</GenerateEepFile>

+    <ToolchainSettings>

+      <ArmGcc xmlns="">

+  <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>

+  <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>

+  <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>

+  <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>

+  <armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>

+  <armgcc.compiler.symbols.DefSymbols>

+    <ListValues>

+      <Value>BOARD=SAM3X_EK</Value>

+      <Value>__SAM3X8H__</Value>

+    </ListValues>

+  </armgcc.compiler.symbols.DefSymbols>

+  <armgcc.compiler.directories.IncludePaths>

+    <ListValues>

+      <Value>../src</Value>

+      <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>

+      <Value>../src/asf/common/boards</Value>

+      <Value>../src/asf/common/services/gpio</Value>

+      <Value>../src/asf/common/utils</Value>

+      <Value>../src/asf/sam/boards</Value>

+      <Value>../src/asf/sam/boards/sam3x_ek</Value>

+      <Value>../src/asf/sam/drivers/pio</Value>

+      <Value>../src/asf/sam/utils</Value>

+      <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>

+      <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>

+      <Value>../src/asf/sam/utils/header_files</Value>

+      <Value>../src/asf/sam/utils/preprocessor</Value>

+      <Value>../src/asf/thirdparty/CMSIS/Include</Value>

+      <Value>../src/config</Value>

+      <Value>../src/asf/thirdparty/FreeRTOS/include</Value>

+      <Value>../src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3</Value>

+      <Value>../src/Common-Demo-Source/include</Value>

+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles</Value>

+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\CMSIS\Include</Value>

+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL</Value>

+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL\sam3xa\include</Value>

+      <Value>../src/asf/sam/drivers/pmc</Value>

+      <Value>../src/asf/common/services/clock</Value>

+      <Value>../src/asf/sam/drivers/usart</Value>

+    </ListValues>

+  </armgcc.compiler.directories.IncludePaths>

+  <armgcc.compiler.optimization.OtherFlags>-fdata-sections</armgcc.compiler.optimization.OtherFlags>

+  <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>

+  <armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>

+  <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>

+  <armgcc.compiler.miscellaneous.OtherFlags>-pipe -Wall -Wextra -std=gnu99 -ffunction-sections -fdata-sections --param max-inline-insns-single=500 -Dprintf=iprintf</armgcc.compiler.miscellaneous.OtherFlags>

+  <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>

+  <armgcc.linker.miscellaneous.LinkerFlags>-T../src/asf/sam/utils/linker_scripts/sam3x/sam3x8/gcc/flash.ld -Wl,--cref -Wl,--entry=Reset_Handler -mthumb</armgcc.linker.miscellaneous.LinkerFlags>

+  <armgcc.preprocessingassembler.general.AssemblerFlags>-DBOARD=SAM3X_EK -D__SAM3X8H__</armgcc.preprocessingassembler.general.AssemblerFlags>

+  <armgcc.preprocessingassembler.general.IncludePaths>

+    <ListValues>

+      <Value>../src</Value>

+      <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>

+      <Value>../src/asf/common/boards</Value>

+      <Value>../src/asf/common/services/gpio</Value>

+      <Value>../src/asf/common/utils</Value>

+      <Value>../src/asf/sam/boards</Value>

+      <Value>../src/asf/sam/boards/sam3x_ek</Value>

+      <Value>../src/asf/sam/drivers/pio</Value>

+      <Value>../src/asf/sam/utils</Value>

+      <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>

+      <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>

+      <Value>../src/asf/sam/utils/header_files</Value>

+      <Value>../src/asf/sam/utils/preprocessor</Value>

+      <Value>../src/asf/thirdparty/CMSIS/Include</Value>

+      <Value>../src/config</Value>

+      <Value>../src/asf/sam/drivers/pmc</Value>

+      <Value>../src/asf/common/services/clock</Value>

+      <Value>../src/asf/sam/drivers/usart</Value>

+    </ListValues>

+  </armgcc.preprocessingassembler.general.IncludePaths>

+</ArmGcc>

+    </ToolchainSettings>

   </PropertyGroup>

   <ItemGroup>

     <None Include="src\asf\common\services\clock\genclk.h">

diff --git a/FreeRTOS/Demo/CORTEX_M0+_Atmel_SAMD20_XPlained/RTOSDemo/RTOSDemo.cproj b/FreeRTOS/Demo/CORTEX_M0+_Atmel_SAMD20_XPlained/RTOSDemo/RTOSDemo.cproj
index 8f0de02..0e475e7 100644
--- a/FreeRTOS/Demo/CORTEX_M0+_Atmel_SAMD20_XPlained/RTOSDemo/RTOSDemo.cproj
+++ b/FreeRTOS/Demo/CORTEX_M0+_Atmel_SAMD20_XPlained/RTOSDemo/RTOSDemo.cproj
@@ -9,167 +9,167 @@
     <RootNamespace>$(MSBuildProjectName)</RootNamespace>

     <AsfFrameworkConfig>

       <framework-data>

-        <options>

-          <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="sam0.drivers.port" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="sam0.drivers.system" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="common.services.basic.serial" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="common.applications.user_application.xplained_pro2" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="common.utils" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="sam0.utils.cmsis.samd20.source.template" value="Add" config="" content-id="Atmel.ASF" />

-        </options>

-        <configurations>

-          <configuration key="config.sam0.drivers.sercom.usart" value="callback" default="callback" content-id="Atmel.ASF" />

-        </configurations>

-        <files>

-          <file path="src/main.c" framework="" version="" source="common2/applications/xplained_pro_user_application/main.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/config/conf_board.h" framework="" version="" source="common2/applications/xplained_pro_user_application/samd20j18_samd20_xplained_pro/config/conf_board.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/config/conf_clocks.h" framework="" version="" source="common2/applications/xplained_pro_user_application/samd20j18_samd20_xplained_pro/config/conf_clocks.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/common/boards/board.h" framework="" version="" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/common/utils/interrupt.h" framework="" version="" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/common/utils/interrupt/interrupt_sam_nvic.c" framework="" version="" source="common/utils/interrupt/interrupt_sam_nvic.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/common/utils/interrupt/interrupt_sam_nvic.h" framework="" version="" source="common/utils/interrupt/interrupt_sam_nvic.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/common/utils/parts.h" framework="" version="" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/boards/samd20_xplained_pro/board_init.c" framework="" version="" source="sam0/boards/samd20_xplained_pro/board_init.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/boards/samd20_xplained_pro/samd20_xplained_pro.h" framework="" version="" source="sam0/boards/samd20_xplained_pro/samd20_xplained_pro.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/port/port.c" framework="" version="" source="sam0/drivers/port/port.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/port/port.h" framework="" version="" source="sam0/drivers/port/port.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/port/quick_start/qs_port_basic.h" framework="" version="" source="sam0/drivers/port/quick_start/qs_port_basic.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/clock/clock.c" framework="" version="" source="sam0/drivers/system/clock/clock.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/clock/clock.h" framework="" version="" source="sam0/drivers/system/clock/clock.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/clock/clock_config_check.h" framework="" version="" source="sam0/drivers/system/clock/clock_config_check.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/clock/gclk.c" framework="" version="" source="sam0/drivers/system/clock/gclk.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/clock/gclk.h" framework="" version="" source="sam0/drivers/system/clock/gclk.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/clock/quick_start_clock/qs_clock_source.h" framework="" version="" source="sam0/drivers/system/clock/quick_start_clock/qs_clock_source.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/clock/quick_start_gclk/qs_gclk_basic.h" framework="" version="" source="sam0/drivers/system/clock/quick_start_gclk/qs_gclk_basic.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/interrupt/quick_start/qs_system_interrupt.h" framework="" version="" source="sam0/drivers/system/interrupt/quick_start/qs_system_interrupt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/interrupt/system_interrupt.c" framework="" version="" source="sam0/drivers/system/interrupt/system_interrupt.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/interrupt/system_interrupt.h" framework="" version="" source="sam0/drivers/system/interrupt/system_interrupt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/pinmux/pinmux.c" framework="" version="" source="sam0/drivers/system/pinmux/pinmux.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/pinmux/pinmux.h" framework="" version="" source="sam0/drivers/system/pinmux/pinmux.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/pinmux/quick_start/qs_pinmux_basic.h" framework="" version="" source="sam0/drivers/system/pinmux/quick_start/qs_pinmux_basic.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/system.c" framework="" version="" source="sam0/drivers/system/system.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/system/system.h" framework="" version="" source="sam0/drivers/system/system.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_ac.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_ac.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_adc.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_adc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_dac.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_dac.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_dsu.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_dsu.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_eic.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_eic.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_evsys.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_evsys.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_gclk.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_gclk.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_nvmctrl.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_nvmctrl.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_pac.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_pac.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_pm.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_pm.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_port.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_port.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_rtc.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_rtc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_sercom.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_sercom.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_sysctrl.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_sysctrl.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_tc.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_tc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_wdt.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_wdt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_ac.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_ac.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_adc.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_adc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_dac.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_dac.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_dsu.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_dsu.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_eic.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_eic.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_evsys.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_evsys.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_gclk.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_gclk.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_nvmctrl.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_nvmctrl.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_pac0.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_pac0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_pac1.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_pac1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_pac2.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_pac2.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_pm.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_pm.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_port.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_port.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_rtc.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_rtc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sercom0.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sercom0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sercom1.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sercom1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sercom2.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sercom2.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sercom3.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sercom3.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sercom4.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sercom4.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sercom5.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sercom5.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sysctrl.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sysctrl.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc0.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc1.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc2.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc2.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc3.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc3.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc4.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc4.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc5.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc5.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc6.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc6.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc7.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc7.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_wdt.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_wdt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20e14.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20e14.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20e15.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20e15.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20e16.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20e16.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20e17.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20e17.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20e18.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20e18.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20g14.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20g14.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20g15.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20g15.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20g16.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20g16.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20g17.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20g17.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20g18.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20g18.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20j14.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20j14.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20j15.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20j15.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20j16.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20j16.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20j17.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20j17.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20j18.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20j18.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20e14.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20e14.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20e15.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20e15.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20e16.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20e16.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20e17.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20e17.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20e18.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20e18.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20g14.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20g14.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20g15.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20g15.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20g16.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20g16.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20g17.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20g17.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20g18.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20g18.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20j14.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20j14.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20j15.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20j15.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20j16.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20j16.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20j17.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20j17.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20j18.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20j18.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/source/gcc/startup_samd20.c" framework="" version="" source="sam0/utils/cmsis/samd20/source/gcc/startup_samd20.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/source/system_samd20.c" framework="" version="" source="sam0/utils/cmsis/samd20/source/system_samd20.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/cmsis/samd20/source/system_samd20.h" framework="" version="" source="sam0/utils/cmsis/samd20/source/system_samd20.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/compiler.h" framework="" version="" source="sam0/utils/compiler.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/header_files/io.h" framework="" version="" source="sam0/utils/header_files/io.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/linker_scripts/samd20/gcc/samd20j18_flash.ld" framework="" version="" source="sam0/utils/linker_scripts/samd20/gcc/samd20j18_flash.ld" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/make/Makefile.sam.in" framework="" version="" source="sam0/utils/make/Makefile.sam.in" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/preprocessor/mrepeat.h" framework="" version="" source="sam0/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/preprocessor/preprocessor.h" framework="" version="" source="sam0/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/preprocessor/stringz.h" framework="" version="" source="sam0/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/preprocessor/tpaste.h" framework="" version="" source="sam0/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/status_codes.h" framework="" version="" source="sam0/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/utils/syscalls/gcc/syscalls.c" framework="" version="" source="sam0/utils/syscalls/gcc/syscalls.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" framework="" version="" source="thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/thirdparty/CMSIS/Include/arm_math.h" framework="" version="" source="thirdparty/CMSIS/Include/arm_math.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/thirdparty/CMSIS/Include/core_cm0plus.h" framework="" version="" source="thirdparty/CMSIS/Include/core_cm0plus.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/thirdparty/CMSIS/Include/core_cmFunc.h" framework="" version="" source="thirdparty/CMSIS/Include/core_cmFunc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/thirdparty/CMSIS/Include/core_cmInstr.h" framework="" version="" source="thirdparty/CMSIS/Include/core_cmInstr.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/thirdparty/CMSIS/Lib/GCC/libarm_cortexM0l_math.a" framework="" version="" source="thirdparty/CMSIS/Lib/GCC/libarm_cortexM0l_math.a" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/thirdparty/CMSIS/README.txt" framework="" version="" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/thirdparty/CMSIS/license.txt" framework="" version="" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/common/services/serial/sam0_usart/usart_serial.h" framework="" version="3.11.0" source="common\services\serial\sam0_usart\usart_serial.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/common/services/serial/serial.h" framework="" version="3.11.0" source="common\services\serial\serial.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/sercom/sercom_interrupt.c" framework="" version="3.11.0" source="sam0\drivers\sercom\sercom_interrupt.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/sercom/sercom.c" framework="" version="3.11.0" source="sam0\drivers\sercom\sercom.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/sercom/sercom_interrupt.h" framework="" version="3.11.0" source="sam0\drivers\sercom\sercom_interrupt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/sercom/sercom_pinout.h" framework="" version="3.11.0" source="sam0\drivers\sercom\sercom_pinout.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/sercom/sercom.h" framework="" version="3.11.0" source="sam0\drivers\sercom\sercom.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/sercom/usart/usart.c" framework="" version="3.11.0" source="sam0\drivers\sercom\usart\usart.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/sercom/usart/usart_interrupt.c" framework="" version="3.11.0" source="sam0\drivers\sercom\usart\usart_interrupt.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/sercom/usart/quick_start/qs_usart_basic_use.h" framework="" version="3.11.0" source="sam0\drivers\sercom\usart\quick_start\qs_usart_basic_use.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/sercom/usart/usart_interrupt.h" framework="" version="3.11.0" source="sam0\drivers\sercom\usart\usart_interrupt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/sercom/usart/quick_start_callback/qs_usart_callback.h" framework="" version="3.11.0" source="sam0\drivers\sercom\usart\quick_start_callback\qs_usart_callback.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam0/drivers/sercom/usart/usart.h" framework="" version="3.11.0" source="sam0\drivers\sercom\usart\usart.h" changed="False" content-id="Atmel.ASF" />

-        </files>

-        <documentation help="http://asf.atmel.com/docs/3.11.0/common.applications.user_application.xplained_pro2.samd20_xplained_pro/html/index.html" />

-        <offline-documentation help="" />

-        <dependencies>

-          <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.18.1" />

-        </dependencies>

-        <project id="common.applications.user_application.xplained_pro2.samd20_xplained_pro" value="Add" config="" content-id="Atmel.ASF" />

-        <board id="board.samd20_xplained_pro" value="Add" config="" content-id="Atmel.ASF" />

-      </framework-data>

+  <options>

+    <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="sam0.drivers.port" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="sam0.drivers.system" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="common.services.basic.serial" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="common.applications.user_application.xplained_pro2" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="common.utils" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="sam0.utils.cmsis.samd20.source.template" value="Add" config="" content-id="Atmel.ASF" />

+  </options>

+  <configurations>

+    <configuration key="config.sam0.drivers.sercom.usart" value="callback" default="callback" content-id="Atmel.ASF" />

+  </configurations>

+  <files>

+    <file path="src/main.c" framework="" version="" source="common2/applications/xplained_pro_user_application/main.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/config/conf_board.h" framework="" version="" source="common2/applications/xplained_pro_user_application/samd20j18_samd20_xplained_pro/config/conf_board.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/config/conf_clocks.h" framework="" version="" source="common2/applications/xplained_pro_user_application/samd20j18_samd20_xplained_pro/config/conf_clocks.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/common/boards/board.h" framework="" version="" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/common/utils/interrupt.h" framework="" version="" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/common/utils/interrupt/interrupt_sam_nvic.c" framework="" version="" source="common/utils/interrupt/interrupt_sam_nvic.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/common/utils/interrupt/interrupt_sam_nvic.h" framework="" version="" source="common/utils/interrupt/interrupt_sam_nvic.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/common/utils/parts.h" framework="" version="" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/boards/samd20_xplained_pro/board_init.c" framework="" version="" source="sam0/boards/samd20_xplained_pro/board_init.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/boards/samd20_xplained_pro/samd20_xplained_pro.h" framework="" version="" source="sam0/boards/samd20_xplained_pro/samd20_xplained_pro.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/port/port.c" framework="" version="" source="sam0/drivers/port/port.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/port/port.h" framework="" version="" source="sam0/drivers/port/port.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/port/quick_start/qs_port_basic.h" framework="" version="" source="sam0/drivers/port/quick_start/qs_port_basic.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/clock/clock.c" framework="" version="" source="sam0/drivers/system/clock/clock.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/clock/clock.h" framework="" version="" source="sam0/drivers/system/clock/clock.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/clock/clock_config_check.h" framework="" version="" source="sam0/drivers/system/clock/clock_config_check.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/clock/gclk.c" framework="" version="" source="sam0/drivers/system/clock/gclk.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/clock/gclk.h" framework="" version="" source="sam0/drivers/system/clock/gclk.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/clock/quick_start_clock/qs_clock_source.h" framework="" version="" source="sam0/drivers/system/clock/quick_start_clock/qs_clock_source.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/clock/quick_start_gclk/qs_gclk_basic.h" framework="" version="" source="sam0/drivers/system/clock/quick_start_gclk/qs_gclk_basic.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/interrupt/quick_start/qs_system_interrupt.h" framework="" version="" source="sam0/drivers/system/interrupt/quick_start/qs_system_interrupt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/interrupt/system_interrupt.c" framework="" version="" source="sam0/drivers/system/interrupt/system_interrupt.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/interrupt/system_interrupt.h" framework="" version="" source="sam0/drivers/system/interrupt/system_interrupt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/pinmux/pinmux.c" framework="" version="" source="sam0/drivers/system/pinmux/pinmux.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/pinmux/pinmux.h" framework="" version="" source="sam0/drivers/system/pinmux/pinmux.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/pinmux/quick_start/qs_pinmux_basic.h" framework="" version="" source="sam0/drivers/system/pinmux/quick_start/qs_pinmux_basic.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/system.c" framework="" version="" source="sam0/drivers/system/system.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/system/system.h" framework="" version="" source="sam0/drivers/system/system.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_ac.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_ac.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_adc.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_adc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_dac.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_dac.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_dsu.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_dsu.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_eic.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_eic.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_evsys.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_evsys.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_gclk.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_gclk.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_nvmctrl.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_nvmctrl.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_pac.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_pac.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_pm.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_pm.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_port.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_port.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_rtc.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_rtc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_sercom.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_sercom.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_sysctrl.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_sysctrl.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_tc.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_tc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/component/component_wdt.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/component/component_wdt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_ac.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_ac.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_adc.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_adc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_dac.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_dac.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_dsu.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_dsu.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_eic.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_eic.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_evsys.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_evsys.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_gclk.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_gclk.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_nvmctrl.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_nvmctrl.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_pac0.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_pac0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_pac1.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_pac1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_pac2.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_pac2.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_pm.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_pm.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_port.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_port.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_rtc.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_rtc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sercom0.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sercom0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sercom1.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sercom1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sercom2.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sercom2.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sercom3.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sercom3.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sercom4.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sercom4.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sercom5.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sercom5.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_sysctrl.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_sysctrl.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc0.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc1.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc2.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc2.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc3.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc3.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc4.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc4.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc5.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc5.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc6.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc6.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_tc7.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_tc7.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/instance/instance_wdt.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/instance/instance_wdt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20e14.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20e14.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20e15.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20e15.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20e16.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20e16.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20e17.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20e17.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20e18.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20e18.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20g14.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20g14.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20g15.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20g15.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20g16.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20g16.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20g17.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20g17.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20g18.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20g18.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20j14.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20j14.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20j15.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20j15.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20j16.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20j16.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20j17.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20j17.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/pio/pio_samd20j18.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/pio/pio_samd20j18.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20e14.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20e14.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20e15.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20e15.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20e16.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20e16.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20e17.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20e17.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20e18.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20e18.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20g14.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20g14.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20g15.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20g15.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20g16.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20g16.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20g17.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20g17.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20g18.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20g18.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20j14.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20j14.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20j15.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20j15.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20j16.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20j16.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20j17.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20j17.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/include/samd20j18.h" framework="" version="" source="sam0/utils/cmsis/samd20/include/samd20j18.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/source/gcc/startup_samd20.c" framework="" version="" source="sam0/utils/cmsis/samd20/source/gcc/startup_samd20.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/source/system_samd20.c" framework="" version="" source="sam0/utils/cmsis/samd20/source/system_samd20.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/cmsis/samd20/source/system_samd20.h" framework="" version="" source="sam0/utils/cmsis/samd20/source/system_samd20.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/compiler.h" framework="" version="" source="sam0/utils/compiler.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/header_files/io.h" framework="" version="" source="sam0/utils/header_files/io.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/linker_scripts/samd20/gcc/samd20j18_flash.ld" framework="" version="" source="sam0/utils/linker_scripts/samd20/gcc/samd20j18_flash.ld" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/make/Makefile.sam.in" framework="" version="" source="sam0/utils/make/Makefile.sam.in" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/preprocessor/mrepeat.h" framework="" version="" source="sam0/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/preprocessor/preprocessor.h" framework="" version="" source="sam0/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/preprocessor/stringz.h" framework="" version="" source="sam0/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/preprocessor/tpaste.h" framework="" version="" source="sam0/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/status_codes.h" framework="" version="" source="sam0/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/utils/syscalls/gcc/syscalls.c" framework="" version="" source="sam0/utils/syscalls/gcc/syscalls.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" framework="" version="" source="thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/thirdparty/CMSIS/Include/arm_math.h" framework="" version="" source="thirdparty/CMSIS/Include/arm_math.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/thirdparty/CMSIS/Include/core_cm0plus.h" framework="" version="" source="thirdparty/CMSIS/Include/core_cm0plus.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/thirdparty/CMSIS/Include/core_cmFunc.h" framework="" version="" source="thirdparty/CMSIS/Include/core_cmFunc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/thirdparty/CMSIS/Include/core_cmInstr.h" framework="" version="" source="thirdparty/CMSIS/Include/core_cmInstr.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/thirdparty/CMSIS/Lib/GCC/libarm_cortexM0l_math.a" framework="" version="" source="thirdparty/CMSIS/Lib/GCC/libarm_cortexM0l_math.a" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/thirdparty/CMSIS/README.txt" framework="" version="" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/thirdparty/CMSIS/license.txt" framework="" version="" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/common/services/serial/sam0_usart/usart_serial.h" framework="" version="3.11.0" source="common\services\serial\sam0_usart\usart_serial.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/common/services/serial/serial.h" framework="" version="3.11.0" source="common\services\serial\serial.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/sercom/sercom_interrupt.c" framework="" version="3.11.0" source="sam0\drivers\sercom\sercom_interrupt.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/sercom/sercom.c" framework="" version="3.11.0" source="sam0\drivers\sercom\sercom.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/sercom/sercom_interrupt.h" framework="" version="3.11.0" source="sam0\drivers\sercom\sercom_interrupt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/sercom/sercom_pinout.h" framework="" version="3.11.0" source="sam0\drivers\sercom\sercom_pinout.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/sercom/sercom.h" framework="" version="3.11.0" source="sam0\drivers\sercom\sercom.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/sercom/usart/usart.c" framework="" version="3.11.0" source="sam0\drivers\sercom\usart\usart.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/sercom/usart/usart_interrupt.c" framework="" version="3.11.0" source="sam0\drivers\sercom\usart\usart_interrupt.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/sercom/usart/quick_start/qs_usart_basic_use.h" framework="" version="3.11.0" source="sam0\drivers\sercom\usart\quick_start\qs_usart_basic_use.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/sercom/usart/usart_interrupt.h" framework="" version="3.11.0" source="sam0\drivers\sercom\usart\usart_interrupt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/sercom/usart/quick_start_callback/qs_usart_callback.h" framework="" version="3.11.0" source="sam0\drivers\sercom\usart\quick_start_callback\qs_usart_callback.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam0/drivers/sercom/usart/usart.h" framework="" version="3.11.0" source="sam0\drivers\sercom\usart\usart.h" changed="False" content-id="Atmel.ASF" />

+  </files>

+  <documentation help="http://asf.atmel.com/docs/3.11.0/common.applications.user_application.xplained_pro2.samd20_xplained_pro/html/index.html" />

+  <offline-documentation help="" />

+  <dependencies>

+    <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.20.1" />

+  </dependencies>

+  <project id="common.applications.user_application.xplained_pro2.samd20_xplained_pro" value="Add" config="" content-id="Atmel.ASF" />

+  <board id="board.samd20_xplained_pro" value="Add" config="" content-id="Atmel.ASF" />

+</framework-data>

     </AsfFrameworkConfig>

     <avrdevice>ATSAMD20J18</avrdevice>

     <avrdeviceseries>samd20</avrdeviceseries>

diff --git a/FreeRTOS/Demo/CORTEX_M0+_Atmel_SAMD20_XPlained/RTOSDemo/src/main.c b/FreeRTOS/Demo/CORTEX_M0+_Atmel_SAMD20_XPlained/RTOSDemo/src/main.c
index e8d1955..56fbe59 100644
--- a/FreeRTOS/Demo/CORTEX_M0+_Atmel_SAMD20_XPlained/RTOSDemo/src/main.c
+++ b/FreeRTOS/Demo/CORTEX_M0+_Atmel_SAMD20_XPlained/RTOSDemo/src/main.c
@@ -98,7 +98,7 @@
 

 /* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo,

 or 0 to run the more comprehensive test and demo application. */

-#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY	0

+#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY	1

 

 /*-----------------------------------------------------------*/

 

diff --git a/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.cproj b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.cproj
index 922bb61..daf4a9e 100644
--- a/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.cproj
+++ b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.cproj
@@ -2,7 +2,7 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">

   <PropertyGroup>

     <SchemaVersion>2.0</SchemaVersion>

-    <ProjectVersion>6.2</ProjectVersion>

+    <ProjectVersion>7.0</ProjectVersion>

     <ProjectGuid>{3d8959cd-73ca-4147-9c1b-cfcf2ee40326}</ProjectGuid>

     <Name>$(MSBuildProjectName)</Name>

     <AssemblyName>$(MSBuildProjectName)</AssemblyName>

@@ -10,141 +10,141 @@
     <AsfVersion>2.11.1</AsfVersion>

     <AsfFrameworkConfig>

       <framework-data>

-        <options>

-          <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="common.services.basic.gpio" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="sam.drivers.pio" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="sam.drivers.usart" value="Add" config="" content-id="Atmel.ASF" />

-          <option id="sam.drivers.tc" value="Add" config="" content-id="Atmel.ASF" />

-        </options>

-        <configurations>

-          <configuration key="config.sam.pio.pio_handler" value="yes" default="yes" content-id="Atmel.ASF" />

-        </configurations>

-        <files>

-          <file path="src/asf.h" framework="" version="3.1.3" source="./common/applications/user_application/sam4s16c_sam4s_ek/as5_arm_template/asf.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/main.c" framework="" version="3.1.3" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/config/conf_board.h" framework="" version="3.1.3" source="common/applications/user_application/sam4s16c_sam4s_ek/conf_board.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/boards/board.h" framework="" version="3.1.3" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/gpio/gpio.h" framework="" version="3.1.3" source="common/services/gpio/gpio.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/gpio/sam_ioport/sam_gpio.h" framework="" version="3.1.3" source="common/services/gpio/sam_ioport/sam_gpio.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/utils/interrupt.h" framework="" version="3.1.3" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/utils/interrupt/interrupt_sam_nvic.c" framework="" version="3.1.3" source="common/utils/interrupt/interrupt_sam_nvic.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/utils/interrupt/interrupt_sam_nvic.h" framework="" version="3.1.3" source="common/utils/interrupt/interrupt_sam_nvic.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/boards/sam4s_ek/init.c" framework="" version="3.1.3" source="sam/boards/sam4s_ek/init.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/boards/sam4s_ek/sam4s_ek.h" framework="" version="3.1.3" source="sam/boards/sam4s_ek/sam4s_ek.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pio/pio.c" framework="" version="3.1.3" source="sam/drivers/pio/pio.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pio/pio.h" framework="" version="3.1.3" source="sam/drivers/pio/pio.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pio/pio_handler.c" framework="" version="3.1.3" source="sam/drivers/pio/pio_handler.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pio/pio_handler.h" framework="" version="3.1.3" source="sam/drivers/pio/pio_handler.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_acc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_acc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_adc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_adc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_chipid.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_chipid.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_crccu.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_crccu.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_dacc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_dacc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_efc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_efc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_gpbr.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_gpbr.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_hsmci.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_hsmci.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_matrix.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_matrix.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pdc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pdc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pio.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pio.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pmc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pmc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pwm.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pwm.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_rstc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_rstc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_rtc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_rtc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_rtt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_rtt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_smc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_smc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_spi.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_spi.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_ssc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_ssc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_supc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_supc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_tc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_tc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_twi.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_twi.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_uart.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_uart.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_udp.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_udp.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_usart.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_usart.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_wdt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_wdt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_acc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_acc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_adc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_adc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_chipid.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_chipid.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_crccu.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_crccu.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_dacc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_dacc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_efc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_efc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_matrix.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_matrix.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioa.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pioa.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_piob.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_piob.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pioc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pmc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pmc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pwm.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pwm.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rstc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_rstc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_rtc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_rtt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_smc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_smc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_spi.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_spi.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_ssc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_ssc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_supc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_supc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_tc0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_tc1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_twi0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_twi1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_uart0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_uart1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_udp.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_udp.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_usart0.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_usart1.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_wdt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_wdt.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/sam4s.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/sam4s.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/include/sam4s16c.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/sam4s16c.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.c" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/exceptions.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/exceptions.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.c" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/system_sam4s.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/system_sam4s.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/compiler.h" framework="" version="3.1.3" source="sam/utils/compiler.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/header_files/io.h" framework="" version="3.1.3" source="sam/utils/header_files/io.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld" framework="" version="3.1.3" source="sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/make/Makefile.in" framework="" version="3.1.3" source="sam/utils/make/Makefile.in" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/parts.h" framework="" version="3.1.3" source="sam/utils/parts.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/preprocessor/mrepeat.h" framework="" version="3.1.3" source="sam/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/preprocessor/preprocessor.h" framework="" version="3.1.3" source="sam/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/preprocessor/stringz.h" framework="" version="3.1.3" source="sam/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/preprocessor/tpaste.h" framework="" version="3.1.3" source="sam/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/utils/status_codes.h" framework="" version="3.1.3" source="sam/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" framework="" version="3.1.3" source="thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/Include/arm_math.h" framework="" version="3.1.3" source="thirdparty/CMSIS/Include/arm_math.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/Include/core_cm4.h" framework="" version="3.1.3" source="thirdparty/CMSIS/Include/core_cm4.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/Include/core_cm4_simd.h" framework="" version="3.1.3" source="thirdparty/CMSIS/Include/core_cm4_simd.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/Include/core_cmFunc.h" framework="" version="3.1.3" source="thirdparty/CMSIS/Include/core_cmFunc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/Include/core_cmInstr.h" framework="" version="3.1.3" source="thirdparty/CMSIS/Include/core_cmInstr.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/Lib/GCC/libarm_cortexM4l_math.a" framework="" version="3.1.3" source="thirdparty/CMSIS/Lib/GCC/libarm_cortexM4l_math.a" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/README.txt" framework="" version="3.1.3" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/thirdparty/CMSIS/license.txt" framework="" version="3.1.3" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pmc/pmc.c" framework="" version="" source="sam\drivers\pmc\pmc.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pmc/pmc.h" framework="" version="" source="sam\drivers\pmc\pmc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/pmc/sleep.h" framework="" version="" source="sam\drivers\pmc\sleep.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/sam4s/sysclk.c" framework="" version="" source="common\services\clock\sam4s\sysclk.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/sam4s/pll.h" framework="" version="" source="common\services\clock\sam4s\pll.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/sam4s/osc.h" framework="" version="" source="common\services\clock\sam4s\osc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/genclk.h" framework="" version="" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/osc.h" framework="" version="" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/sam4s/sysclk.h" framework="" version="" source="common\services\clock\sam4s\sysclk.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/sam4s/genclk.h" framework="" version="" source="common\services\clock\sam4s\genclk.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/sysclk.h" framework="" version="" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/common/services/clock/pll.h" framework="" version="" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/config/conf_clock.h" framework="" version="" source="common\services\clock\sam4s\module_config\conf_clock.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/usart/usart.c" framework="" version="" source="sam\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/asf/sam/drivers/usart/usart.h" framework="" version="" source="sam\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam/drivers/tc/tc.c" framework="" version="3.6.0" source="sam\drivers\tc\tc.c" changed="False" content-id="Atmel.ASF" />

-          <file path="src/ASF/sam/drivers/tc/tc.h" framework="" version="3.6.0" source="sam\drivers\tc\tc.h" changed="False" content-id="Atmel.ASF" />

-        </files>

-        <documentation help="" />

-        <offline-documentation help="" />

-        <dependencies>

-          <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.10.1" />

-        </dependencies>

-      </framework-data>

+  <options>

+    <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="common.services.basic.gpio" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="sam.drivers.pio" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="sam.drivers.usart" value="Add" config="" content-id="Atmel.ASF" />

+    <option id="sam.drivers.tc" value="Add" config="" content-id="Atmel.ASF" />

+  </options>

+  <configurations>

+    <configuration key="config.sam.pio.pio_handler" value="yes" default="yes" content-id="Atmel.ASF" />

+  </configurations>

+  <files>

+    <file path="src/asf.h" framework="" version="3.1.3" source="./common/applications/user_application/sam4s16c_sam4s_ek/as5_arm_template/asf.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/main.c" framework="" version="3.1.3" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/config/conf_board.h" framework="" version="3.1.3" source="common/applications/user_application/sam4s16c_sam4s_ek/conf_board.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/boards/board.h" framework="" version="3.1.3" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/gpio/gpio.h" framework="" version="3.1.3" source="common/services/gpio/gpio.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/gpio/sam_ioport/sam_gpio.h" framework="" version="3.1.3" source="common/services/gpio/sam_ioport/sam_gpio.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/utils/interrupt.h" framework="" version="3.1.3" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/utils/interrupt/interrupt_sam_nvic.c" framework="" version="3.1.3" source="common/utils/interrupt/interrupt_sam_nvic.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/utils/interrupt/interrupt_sam_nvic.h" framework="" version="3.1.3" source="common/utils/interrupt/interrupt_sam_nvic.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/boards/sam4s_ek/init.c" framework="" version="3.1.3" source="sam/boards/sam4s_ek/init.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/boards/sam4s_ek/sam4s_ek.h" framework="" version="3.1.3" source="sam/boards/sam4s_ek/sam4s_ek.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pio/pio.c" framework="" version="3.1.3" source="sam/drivers/pio/pio.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pio/pio.h" framework="" version="3.1.3" source="sam/drivers/pio/pio.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pio/pio_handler.c" framework="" version="3.1.3" source="sam/drivers/pio/pio_handler.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pio/pio_handler.h" framework="" version="3.1.3" source="sam/drivers/pio/pio_handler.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_acc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_acc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_adc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_adc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_chipid.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_chipid.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_crccu.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_crccu.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_dacc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_dacc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_efc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_efc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_gpbr.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_gpbr.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_hsmci.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_hsmci.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_matrix.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_matrix.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pdc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pdc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pio.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pio.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pmc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pmc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pwm.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pwm.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_rstc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_rstc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_rtc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_rtc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_rtt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_rtt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_smc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_smc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_spi.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_spi.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_ssc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_ssc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_supc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_supc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_tc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_tc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_twi.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_twi.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_uart.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_uart.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_udp.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_udp.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_usart.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_usart.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_wdt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_wdt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_acc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_acc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_adc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_adc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_chipid.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_chipid.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_crccu.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_crccu.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_dacc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_dacc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_efc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_efc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_matrix.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_matrix.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioa.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pioa.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_piob.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_piob.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pioc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pmc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pmc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pwm.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pwm.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rstc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_rstc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_rtc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_rtt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_smc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_smc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_spi.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_spi.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_ssc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_ssc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_supc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_supc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_tc0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_tc1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_twi0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_twi1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_uart0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_uart1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_udp.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_udp.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_usart0.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_usart1.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_wdt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_wdt.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/sam4s.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/sam4s.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/include/sam4s16c.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/sam4s16c.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.c" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/exceptions.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/exceptions.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.c" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/system_sam4s.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/system_sam4s.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/compiler.h" framework="" version="3.1.3" source="sam/utils/compiler.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/header_files/io.h" framework="" version="3.1.3" source="sam/utils/header_files/io.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld" framework="" version="3.1.3" source="sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/make/Makefile.in" framework="" version="3.1.3" source="sam/utils/make/Makefile.in" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/parts.h" framework="" version="3.1.3" source="sam/utils/parts.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/preprocessor/mrepeat.h" framework="" version="3.1.3" source="sam/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/preprocessor/preprocessor.h" framework="" version="3.1.3" source="sam/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/preprocessor/stringz.h" framework="" version="3.1.3" source="sam/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/preprocessor/tpaste.h" framework="" version="3.1.3" source="sam/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/utils/status_codes.h" framework="" version="3.1.3" source="sam/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" framework="" version="3.1.3" source="thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/Include/arm_math.h" framework="" version="3.1.3" source="thirdparty/CMSIS/Include/arm_math.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/Include/core_cm4.h" framework="" version="3.1.3" source="thirdparty/CMSIS/Include/core_cm4.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/Include/core_cm4_simd.h" framework="" version="3.1.3" source="thirdparty/CMSIS/Include/core_cm4_simd.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/Include/core_cmFunc.h" framework="" version="3.1.3" source="thirdparty/CMSIS/Include/core_cmFunc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/Include/core_cmInstr.h" framework="" version="3.1.3" source="thirdparty/CMSIS/Include/core_cmInstr.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/Lib/GCC/libarm_cortexM4l_math.a" framework="" version="3.1.3" source="thirdparty/CMSIS/Lib/GCC/libarm_cortexM4l_math.a" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/README.txt" framework="" version="3.1.3" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/thirdparty/CMSIS/license.txt" framework="" version="3.1.3" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pmc/pmc.c" framework="" version="" source="sam\drivers\pmc\pmc.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pmc/pmc.h" framework="" version="" source="sam\drivers\pmc\pmc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/pmc/sleep.h" framework="" version="" source="sam\drivers\pmc\sleep.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/sam4s/sysclk.c" framework="" version="" source="common\services\clock\sam4s\sysclk.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/sam4s/pll.h" framework="" version="" source="common\services\clock\sam4s\pll.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/sam4s/osc.h" framework="" version="" source="common\services\clock\sam4s\osc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/genclk.h" framework="" version="" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/osc.h" framework="" version="" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/sam4s/sysclk.h" framework="" version="" source="common\services\clock\sam4s\sysclk.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/sam4s/genclk.h" framework="" version="" source="common\services\clock\sam4s\genclk.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/sysclk.h" framework="" version="" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/common/services/clock/pll.h" framework="" version="" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/config/conf_clock.h" framework="" version="" source="common\services\clock\sam4s\module_config\conf_clock.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/usart/usart.c" framework="" version="" source="sam\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/asf/sam/drivers/usart/usart.h" framework="" version="" source="sam\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam/drivers/tc/tc.c" framework="" version="3.6.0" source="sam\drivers\tc\tc.c" changed="False" content-id="Atmel.ASF" />

+    <file path="src/ASF/sam/drivers/tc/tc.h" framework="" version="3.6.0" source="sam\drivers\tc\tc.h" changed="False" content-id="Atmel.ASF" />

+  </files>

+  <documentation help="" />

+  <offline-documentation help="" />

+  <dependencies>

+    <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.20.1" />

+  </dependencies>

+</framework-data>

     </AsfFrameworkConfig>

     <avrdevice>ATSAM4S16C</avrdevice>

     <avrdeviceseries>sam4s</avrdeviceseries>

@@ -195,6 +195,7 @@
     <RamSnippetAddress>0x20000000</RamSnippetAddress>

     <UncachedRange />

     <BootSegment>2</BootSegment>

+    <preserveEEPROM>true</preserveEEPROM>

   </PropertyGroup>

   <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">

     <GenerateHexFile>True</GenerateHexFile>

diff --git a/FreeRTOS/Demo/CORTEX_M7_SAME70_Xplained_AtmelStudio/.vs/RTOSDemo/v14/.atsuo b/FreeRTOS/Demo/CORTEX_M7_SAME70_Xplained_AtmelStudio/.vs/RTOSDemo/v14/.atsuo
index 802b182..777c177 100644
--- a/FreeRTOS/Demo/CORTEX_M7_SAME70_Xplained_AtmelStudio/.vs/RTOSDemo/v14/.atsuo
+++ b/FreeRTOS/Demo/CORTEX_M7_SAME70_Xplained_AtmelStudio/.vs/RTOSDemo/v14/.atsuo
Binary files differ
diff --git a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTE/RTE_Components.h b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTE/RTE_Components.h
index d1d509e..a1663c2 100644
--- a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTE/RTE_Components.h
+++ b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTE/RTE_Components.h
@@ -11,4 +11,10 @@
 #define RTE_COMPONENTS_H

 

 

+/*

+ * Define the Device Header File: 

+ */

+#define CMSIS_device_header "sam.h"

+

+

 #endif /* RTE_COMPONENTS_H */

diff --git a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.ewd
index 7495986..4606069 100644
--- a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.ewd
+++ b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.ewd
@@ -12,7 +12,7 @@
       <name>C-SPY</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>26</version>

+        <version>28</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -45,7 +45,7 @@
         </option>

         <option>

           <name>MemFile</name>

-          <state></state>

+          <state>$TOOLKIT_DIR$\CONFIG\debugger\Atmel\ATSAMV71Q21.ddf</state>

         </option>

         <option>

           <name>RunToEnable</name>

@@ -89,11 +89,7 @@
         </option>

         <option>

           <name>OCLastSavedByProductVersion</name>

-          <state>7.30.4.8186</state>

-        </option>

-        <option>

-          <name>OCDownloadAttachToProgram</name>

-          <state>0</state>

+          <state>7.60.1.11206</state>

         </option>

         <option>

           <name>UseFlashLoader</name>

@@ -117,7 +113,7 @@
         </option>

         <option>

           <name>FlashLoadersV3</name>

-          <state>$TOOLKIT_DIR$\config\flashloader\</state>

+          <state>$TOOLKIT_DIR$\config\flashloader\Atmel\samv71q21\samv71q21-flash.board</state>

         </option>

         <option>

           <name>OCImagesSuppressCheck1</name>

@@ -207,6 +203,14 @@
           <name>OCMulticoreSlaveConfiguration</name>

           <state></state>

         </option>

+        <option>

+          <name>OCDownloadExtraImage</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCAttachSlave</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -281,7 +285,7 @@
       <name>CMSISDAP_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>4</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -289,10 +293,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>CMSISDAPAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>OCIarProbeScriptFile</name>

           <state>1</state>

         </option>

@@ -446,6 +446,14 @@
           <name>OCJetEmuParams</name>

           <state>1</state>

         </option>

+        <option>

+          <name>CCCMSISDAPUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCCMSISDAPUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -520,7 +528,7 @@
       <name>IJET_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>5</version>

+        <version>8</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -528,10 +536,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>IjetAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>OCIarProbeScriptFile</name>

           <state>1</state>

         </option>

@@ -732,13 +736,25 @@
           <version>0</version>

           <state>2</state>

         </option>

+        <option>

+          <name>FlashBoardPathSlave</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCIjetUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCIjetUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

       <name>JLINK_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>15</version>

+        <version>16</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -843,10 +859,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>OCJLinkAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>CCJLinkResetList</name>

           <version>6</version>

           <state>7</state>

@@ -910,7 +922,7 @@
         </option>

         <option>

           <name>CCCpuClockEdit</name>

-          <state></state>

+          <state>300.0</state>

         </option>

         <option>

           <name>CCSwoClockAuto</name>

@@ -1060,7 +1072,7 @@
       <name>PEMICRO_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>1</version>

+        <version>3</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -1068,23 +1080,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>OCPEMicroAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCPEMicroInterfaceList</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCPEMicroResetDelay</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CCPEMicroJtagSpeed</name>

-          <state>#UNINITIALIZED#</state>

-        </option>

-        <option>

           <name>CCJPEMicroShowSettings</name>

           <state>0</state>

         </option>

@@ -1096,36 +1091,6 @@
           <name>LogFile</name>

           <state>$PROJ_DIR$\cspycomm.log</state>

         </option>

-        <option>

-          <name>CCPEMicroUSBDevice</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCPEMicroSerialPort</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJPEMicroTCPIPAutoScanNetwork</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCPEMicroTCPIP</name>

-          <state>10.0.0.1</state>

-        </option>

-        <option>

-          <name>CCPEMicroCommCmdLineProducer</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCSTLinkInterfaceRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCSTLinkInterfaceCmdLine</name>

-          <state>0</state>

-        </option>

       </data>

     </settings>

     <settings>

@@ -1189,7 +1154,7 @@
       <name>STLINK_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>3</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -1221,6 +1186,71 @@
           <name>CCSwoClockEdit</name>

           <state>2000</state>

         </option>

+        <option>

+          <name>DoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>LogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>CCSTLinkDoUpdateBreakpoints</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkUpdateBreakpoints</name>

+          <state>_call_main</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchCORERESET</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchMMERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchNOCPERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchCHRERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchSTATERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchBUSERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchINTERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchHARDERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCSTLinkUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkJtagSpeedList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -1249,10 +1279,10 @@
       </data>

     </settings>

     <settings>

-      <name>XDS100_ID</name>

+      <name>TIFET_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>1</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -1260,7 +1290,74 @@
           <state>1</state>

         </option>

         <option>

-          <name>OCXDS100AttachSlave</name>

+          <name>CCMSPFetResetList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetInterfaceRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetInterfaceCmdLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetVccTypeDefault</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetVoltage</name>

+          <state>###Uninitialized###</state>

+        </option>

+        <option>

+          <name>CCMSPFetVCCDefault</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetSettlingtime</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetRadioJtagSpeedType</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCMSPFetConnection</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetUsbComPort</name>

+          <state>Automatic</state>

+        </option>

+        <option>

+          <name>CCMSPFetAllowAccessToBSL</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetDoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetLogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>CCMSPFetRadioEraseFlash</name>

+          <state>1</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>XDS100_ID</name>

+      <archiveVersion>2</archiveVersion>

+      <data>

+        <version>5</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>OCDriverInfo</name>

           <state>1</state>

         </option>

         <option>

@@ -1272,11 +1369,6 @@
           <state></state>

         </option>

         <option>

-          <name>CCXds100InterfaceList</name>

-          <version>2</version>

-          <state>0</state>

-        </option>

-        <option>

           <name>BoardFile</name>

           <state></state>

         </option>

@@ -1288,6 +1380,129 @@
           <name>LogFile</name>

           <state>$PROJ_DIR$\cspycomm.log</state>

         </option>

+        <option>

+          <name>CCXds100BreakpointRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100DoUpdateBreakpoints</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100UpdateBreakpoints</name>

+          <state>_call_main</state>

+        </option>

+        <option>

+          <name>CCXds100CatchReset</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchUndef</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchSWI</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchData</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchPrefetch</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchIRQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchFIQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchCORERESET</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchMMERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchNOCPERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchCHRERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchSTATERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchBUSERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchINTERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchHARDERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CpuClockEdit</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCXds100SwoClockAuto</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100SwoClockEdit</name>

+          <state>1000</state>

+        </option>

+        <option>

+          <name>CCXds100HWResetDelay</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100ResetList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100UsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCXds100UsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100JtagSpeedList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100InterfaceRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100InterfaceCmdLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100ProbeList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <debuggerPlugins>

@@ -1296,6 +1511,10 @@
         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

+        <file>$TOOLKIT_DIR$\plugins\middleware\PercepioTraceExporter\PercepioTraceExportPlugin.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

         <file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file>

         <loadFlag>0</loadFlag>

       </plugin>

@@ -1356,10 +1575,6 @@
         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

-        <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>

-        <loadFlag>1</loadFlag>

-      </plugin>

-      <plugin>

         <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>

         <loadFlag>0</loadFlag>

       </plugin>

@@ -1375,7 +1590,7 @@
       <name>C-SPY</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>26</version>

+        <version>28</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -1455,10 +1670,6 @@
           <state></state>

         </option>

         <option>

-          <name>OCDownloadAttachToProgram</name>

-          <state>0</state>

-        </option>

-        <option>

           <name>UseFlashLoader</name>

           <state>0</state>

         </option>

@@ -1570,6 +1781,14 @@
           <name>OCMulticoreSlaveConfiguration</name>

           <state></state>

         </option>

+        <option>

+          <name>OCDownloadExtraImage</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCAttachSlave</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -1644,7 +1863,7 @@
       <name>CMSISDAP_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>4</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -1652,10 +1871,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>CMSISDAPAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>OCIarProbeScriptFile</name>

           <state>1</state>

         </option>

@@ -1809,6 +2024,14 @@
           <name>OCJetEmuParams</name>

           <state>1</state>

         </option>

+        <option>

+          <name>CCCMSISDAPUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCCMSISDAPUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -1883,7 +2106,7 @@
       <name>IJET_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>5</version>

+        <version>8</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -1891,10 +2114,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>IjetAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>OCIarProbeScriptFile</name>

           <state>1</state>

         </option>

@@ -2095,13 +2314,25 @@
           <version>0</version>

           <state>2</state>

         </option>

+        <option>

+          <name>FlashBoardPathSlave</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCIjetUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCIjetUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

       <name>JLINK_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>15</version>

+        <version>16</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -2206,10 +2437,6 @@
           <state>0</state>

         </option>

         <option>

-          <name>OCJLinkAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>CCJLinkResetList</name>

           <version>6</version>

           <state>5</state>

@@ -2423,7 +2650,7 @@
       <name>PEMICRO_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>1</version>

+        <version>3</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -2431,23 +2658,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>OCPEMicroAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCPEMicroInterfaceList</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCPEMicroResetDelay</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CCPEMicroJtagSpeed</name>

-          <state>#UNINITIALIZED#</state>

-        </option>

-        <option>

           <name>CCJPEMicroShowSettings</name>

           <state>0</state>

         </option>

@@ -2459,36 +2669,6 @@
           <name>LogFile</name>

           <state>$PROJ_DIR$\cspycomm.log</state>

         </option>

-        <option>

-          <name>CCPEMicroUSBDevice</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCPEMicroSerialPort</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJPEMicroTCPIPAutoScanNetwork</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCPEMicroTCPIP</name>

-          <state>10.0.0.1</state>

-        </option>

-        <option>

-          <name>CCPEMicroCommCmdLineProducer</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCSTLinkInterfaceRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCSTLinkInterfaceCmdLine</name>

-          <state>0</state>

-        </option>

       </data>

     </settings>

     <settings>

@@ -2552,7 +2732,7 @@
       <name>STLINK_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>3</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -2584,6 +2764,71 @@
           <name>CCSwoClockEdit</name>

           <state>2000</state>

         </option>

+        <option>

+          <name>DoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>LogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>CCSTLinkDoUpdateBreakpoints</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkUpdateBreakpoints</name>

+          <state>_call_main</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchCORERESET</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchMMERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchNOCPERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchCHRERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchSTATERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchBUSERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchINTERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchHARDERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCSTLinkUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkJtagSpeedList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -2612,10 +2857,10 @@
       </data>

     </settings>

     <settings>

-      <name>XDS100_ID</name>

+      <name>TIFET_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>1</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -2623,7 +2868,74 @@
           <state>1</state>

         </option>

         <option>

-          <name>OCXDS100AttachSlave</name>

+          <name>CCMSPFetResetList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetInterfaceRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetInterfaceCmdLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetVccTypeDefault</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetVoltage</name>

+          <state>###Uninitialized###</state>

+        </option>

+        <option>

+          <name>CCMSPFetVCCDefault</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetSettlingtime</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetRadioJtagSpeedType</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCMSPFetConnection</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetUsbComPort</name>

+          <state>Automatic</state>

+        </option>

+        <option>

+          <name>CCMSPFetAllowAccessToBSL</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetDoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetLogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>CCMSPFetRadioEraseFlash</name>

+          <state>1</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>XDS100_ID</name>

+      <archiveVersion>2</archiveVersion>

+      <data>

+        <version>5</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>0</debug>

+        <option>

+          <name>OCDriverInfo</name>

           <state>1</state>

         </option>

         <option>

@@ -2635,11 +2947,6 @@
           <state></state>

         </option>

         <option>

-          <name>CCXds100InterfaceList</name>

-          <version>2</version>

-          <state>0</state>

-        </option>

-        <option>

           <name>BoardFile</name>

           <state></state>

         </option>

@@ -2651,6 +2958,129 @@
           <name>LogFile</name>

           <state>$PROJ_DIR$\cspycomm.log</state>

         </option>

+        <option>

+          <name>CCXds100BreakpointRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100DoUpdateBreakpoints</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100UpdateBreakpoints</name>

+          <state>_call_main</state>

+        </option>

+        <option>

+          <name>CCXds100CatchReset</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchUndef</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchSWI</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchData</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchPrefetch</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchIRQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchFIQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchCORERESET</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchMMERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchNOCPERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchCHRERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchSTATERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchBUSERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchINTERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchHARDERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CpuClockEdit</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCXds100SwoClockAuto</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100SwoClockEdit</name>

+          <state>1000</state>

+        </option>

+        <option>

+          <name>CCXds100HWResetDelay</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100ResetList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100UsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCXds100UsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100JtagSpeedList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100InterfaceRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100InterfaceCmdLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100ProbeList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <debuggerPlugins>

@@ -2659,6 +3089,10 @@
         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

+        <file>$TOOLKIT_DIR$\plugins\middleware\PercepioTraceExporter\PercepioTraceExportPlugin.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

         <file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file>

         <loadFlag>0</loadFlag>

       </plugin>

@@ -2719,10 +3153,6 @@
         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

-        <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>

-        <loadFlag>1</loadFlag>

-      </plugin>

-      <plugin>

         <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>

         <loadFlag>0</loadFlag>

       </plugin>

diff --git a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.ewp
index 3e2aa46..93c6f02 100644
--- a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.ewp
+++ b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.ewp
@@ -12,7 +12,7 @@
       <name>General</name>

       <archiveVersion>3</archiveVersion>

       <data>

-        <version>22</version>

+        <version>24</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -28,11 +28,6 @@
           <state>Debug\List</state>

         </option>

         <option>

-          <name>Variant</name>

-          <version>21</version>

-          <state>41</state>

-        </option>

-        <option>

           <name>GEndianMode</name>

           <state>0</state>

         </option>

@@ -59,11 +54,6 @@
           <state>0</state>

         </option>

         <option>

-          <name>FPU</name>

-          <version>4</version>

-          <state>9</state>

-        </option>

-        <option>

           <name>OGCoreOrChip</name>

           <state>1</state>

         </option>

@@ -87,7 +77,7 @@
         </option>

         <option>

           <name>OGLastSavedByProductVersion</name>

-          <state>7.40.1.8463</state>

+          <state>7.60.1.11206</state>

         </option>

         <option>

           <name>GeneralEnableMisra</name>

@@ -136,13 +126,8 @@
           <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>

         </option>

         <option>

-          <name>GFPUCoreSlave</name>

-          <version>21</version>

-          <state>41</state>

-        </option>

-        <option>

           <name>GBECoreSlave</name>

-          <version>21</version>

+          <version>24</version>

           <state>41</state>

         </option>

         <option>

@@ -157,6 +142,34 @@
           <name>GRuntimeLibThreads</name>

           <state>0</state>

         </option>

+        <option>

+          <name>CoreVariant</name>

+          <version>24</version>

+          <state>41</state>

+        </option>

+        <option>

+          <name>GFPUDeviceSlave</name>

+          <state>ATSAMV71Q21	Atmel ATSAMV71Q21</state>

+        </option>

+        <option>

+          <name>FPU2</name>

+          <version>0</version>

+          <state>6</state>

+        </option>

+        <option>

+          <name>NrRegs</name>

+          <version>0</version>

+          <state>1</state>

+        </option>

+        <option>

+          <name>NEON</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GFPUCoreSlave2</name>

+          <version>24</version>

+          <state>41</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -595,8 +608,8 @@
         <debug>1</debug>

         <option>

           <name>OOCOutputFormat</name>

-          <version>2</version>

-          <state>2</state>

+          <version>3</version>

+          <state>3</state>

         </option>

         <option>

           <name>OCOutputOverride</name>

@@ -642,7 +655,7 @@
       <name>ILINK</name>

       <archiveVersion>0</archiveVersion>

       <data>

-        <version>16</version>

+        <version>17</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -926,6 +939,10 @@
           <name>IlinkThreadsSlave</name>

           <state>1</state>

         </option>

+        <option>

+          <name>IlinkLogCallGraph</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -965,7 +982,7 @@
       <name>General</name>

       <archiveVersion>3</archiveVersion>

       <data>

-        <version>22</version>

+        <version>24</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -981,11 +998,6 @@
           <state>Release\List</state>

         </option>

         <option>

-          <name>Variant</name>

-          <version>21</version>

-          <state>0</state>

-        </option>

-        <option>

           <name>GEndianMode</name>

           <state>0</state>

         </option>

@@ -1012,11 +1024,6 @@
           <state>0</state>

         </option>

         <option>

-          <name>FPU</name>

-          <version>4</version>

-          <state>0</state>

-        </option>

-        <option>

           <name>OGCoreOrChip</name>

           <state>0</state>

         </option>

@@ -1040,7 +1047,7 @@
         </option>

         <option>

           <name>OGLastSavedByProductVersion</name>

-          <state>6.30.1.53141</state>

+          <state>7.60.1.11206</state>

         </option>

         <option>

           <name>GeneralEnableMisra</name>

@@ -1089,13 +1096,8 @@
           <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>

         </option>

         <option>

-          <name>GFPUCoreSlave</name>

-          <version>21</version>

-          <state>0</state>

-        </option>

-        <option>

           <name>GBECoreSlave</name>

-          <version>21</version>

+          <version>24</version>

           <state>0</state>

         </option>

         <option>

@@ -1110,6 +1112,34 @@
           <name>GRuntimeLibThreads</name>

           <state>0</state>

         </option>

+        <option>

+          <name>CoreVariant</name>

+          <version>24</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GFPUDeviceSlave</name>

+          <state>default	None</state>

+        </option>

+        <option>

+          <name>FPU2</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>NrRegs</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>NEON</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GFPUCoreSlave2</name>

+          <version>24</version>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -1537,7 +1567,7 @@
         <debug>0</debug>

         <option>

           <name>OOCOutputFormat</name>

-          <version>2</version>

+          <version>3</version>

           <state>0</state>

         </option>

         <option>

@@ -1584,7 +1614,7 @@
       <name>ILINK</name>

       <archiveVersion>0</archiveVersion>

       <data>

-        <version>16</version>

+        <version>17</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -1868,6 +1898,10 @@
           <name>IlinkThreadsSlave</name>

           <state>1</state>

         </option>

+        <option>

+          <name>IlinkLogCallGraph</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

diff --git a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.ewt b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.ewt
index cf404a7..2779981 100644
--- a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.ewt
+++ b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.ewt
@@ -9,6 +9,1078 @@
     </toolchain>

     <debug>1</debug>

     <settings>

+      <name>C-STAT</name>

+      <archiveVersion>259</archiveVersion>

+      <data>

+        <version>259</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.3.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="CATCH">

+                <check enabled="true" name="CATCH-object-slicing"/>

+                <check enabled="false" name="CATCH-xtor-bad-member"/>

+              </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-throw"/>

+                <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-throw"/>

+                <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="THROW">

+                <check enabled="false" name="THROW-empty"/>

+                <check enabled="false" name="THROW-main"/>

+                <check enabled="true" name="THROW-null"/>

+                <check enabled="true" name="THROW-ptr"/>

+                <check enabled="true" name="THROW-static"/>

+                <check enabled="true" name="THROW-unhandled"/>

+              </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-15-0">

+                <check enabled="false" name="MISRAC++2008-15-0-2"/>

+              </group>

+              <group enabled="true" name="MISRAC++2008-15-1">

+                <check enabled="true" name="MISRAC++2008-15-1-2"/>

+                <check enabled="true" name="MISRAC++2008-15-1-3"/>

+              </group>

+              <group enabled="true" name="MISRAC++2008-15-3">

+                <check enabled="true" name="MISRAC++2008-15-3-1"/>

+                <check enabled="false" name="MISRAC++2008-15-3-2"/>

+                <check enabled="true" name="MISRAC++2008-15-3-3"/>

+                <check enabled="true" name="MISRAC++2008-15-3-4"/>

+                <check enabled="true" name="MISRAC++2008-15-3-5"/>

+              </group>

+              <group enabled="true" name="MISRAC++2008-15-5">

+                <check enabled="true" name="MISRAC++2008-15-5-1"/>

+              </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>

+    <settings>

       <name>RuntimeChecking</name>

       <archiveVersion>0</archiveVersion>

       <data>

@@ -93,6 +1165,1078 @@
     </toolchain>

     <debug>0</debug>

     <settings>

+      <name>C-STAT</name>

+      <archiveVersion>259</archiveVersion>

+      <data>

+        <version>259</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.3.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="CATCH">

+                <check enabled="true" name="CATCH-object-slicing"/>

+                <check enabled="false" name="CATCH-xtor-bad-member"/>

+              </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-throw"/>

+                <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-throw"/>

+                <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="THROW">

+                <check enabled="false" name="THROW-empty"/>

+                <check enabled="false" name="THROW-main"/>

+                <check enabled="true" name="THROW-null"/>

+                <check enabled="true" name="THROW-ptr"/>

+                <check enabled="true" name="THROW-static"/>

+                <check enabled="true" name="THROW-unhandled"/>

+              </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-15-0">

+                <check enabled="false" name="MISRAC++2008-15-0-2"/>

+              </group>

+              <group enabled="true" name="MISRAC++2008-15-1">

+                <check enabled="true" name="MISRAC++2008-15-1-2"/>

+                <check enabled="true" name="MISRAC++2008-15-1-3"/>

+              </group>

+              <group enabled="true" name="MISRAC++2008-15-3">

+                <check enabled="true" name="MISRAC++2008-15-3-1"/>

+                <check enabled="false" name="MISRAC++2008-15-3-2"/>

+                <check enabled="true" name="MISRAC++2008-15-3-3"/>

+                <check enabled="true" name="MISRAC++2008-15-3-4"/>

+                <check enabled="true" name="MISRAC++2008-15-3-5"/>

+              </group>

+              <group enabled="true" name="MISRAC++2008-15-5">

+                <check enabled="true" name="MISRAC++2008-15-5-1"/>

+              </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>

+    <settings>

       <name>RuntimeChecking</name>

       <archiveVersion>0</archiveVersion>

       <data>

diff --git a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.uvoptx b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.uvoptx
index ce0173f..1632582 100644
--- a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.uvoptx
+++ b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.uvoptx
@@ -78,6 +78,43 @@
         <IsCurrentTarget>1</IsCurrentTarget>
       </OPTFL>
       <CpuCode>16</CpuCode>
+      <Books>
+        <Book>
+          <Number>0</Number>
+          <Title>User Manual (SAMV71-XULTRA)</Title>
+          <Path>C:\devtools\Keil_v520\ARM\PACK\Keil\SAM-ESV7_SFP\2.3.1\Boards\Atmel\SAMV71-XULTRA\Documents\Atmel-42408-SAMV71-Xplained-Ultra_User-Guide.pdf</Path>
+        </Book>
+        <Book>
+          <Number>1</Number>
+          <Title>Blinky Lab (SAMV71-XULTRA)</Title>
+          <Path>C:\devtools\Keil_v520\ARM\PACK\Keil\SAM-ESV7_SFP\2.3.1\Boards\Atmel\SAMV71-XULTRA\Documents\Atmel_Blinky_Lab.pdf</Path>
+        </Book>
+        <Book>
+          <Number>2</Number>
+          <Title>Bill of Materials (SAMV71-XULTRA)</Title>
+          <Path>C:\devtools\Keil_v520\ARM\PACK\Keil\SAM-ESV7_SFP\2.3.1\Boards\Atmel\SAMV71-XULTRA\Documents\Bill of Materials Fitted- SAM V71 Xplained Ultra_release_rev3.zip</Path>
+        </Book>
+        <Book>
+          <Number>3</Number>
+          <Title>Gerber Files (SAMV71-XULTRA)</Title>
+          <Path>C:\devtools\Keil_v520\ARM\PACK\Keil\SAM-ESV7_SFP\2.3.1\Boards\Atmel\SAMV71-XULTRA\Documents\Gerber.zip</Path>
+        </Book>
+        <Book>
+          <Number>4</Number>
+          <Title>Quick Start Guide (SAMV71-XULTRA)</Title>
+          <Path>C:\devtools\Keil_v520\ARM\PACK\Keil\SAM-ESV7_SFP\2.3.1\Boards\Atmel\SAMV71-XULTRA\Documents\SAMV71_XUltra_QSG.pdf</Path>
+        </Book>
+        <Book>
+          <Number>5</Number>
+          <Title>Schematics (SAMV71-XULTRA)</Title>
+          <Path>C:\devtools\Keil_v520\ARM\PACK\Keil\SAM-ESV7_SFP\2.3.1\Boards\Atmel\SAMV71-XULTRA\Documents\SAM_V71_Xplained_Ultra_design_documentation_release_rev8.pdf</Path>
+        </Book>
+        <Book>
+          <Number>6</Number>
+          <Title>SAMV71 Xplained Ultra Web Page (SAMV71-XULTRA)</Title>
+          <Path>http://www.atmel.com/tools/ATSAMV71-XULT.aspx</Path>
+        </Book>
+      </Books>
       <DebugOpt>
         <uSim>0</uSim>
         <uTrg>1</uTrg>
@@ -100,7 +137,7 @@
         <tRSysVw>1</tRSysVw>
         <sRunDeb>0</sRunDeb>
         <sLrtime>0</sLrtime>
-        <nTsel>6</nTsel>
+        <nTsel>0</nTsel>
         <sDll></sDll>
         <sDllPa></sDllPa>
         <sDlgDll></sDlgDll>
@@ -111,7 +148,7 @@
         <tDlgDll></tDlgDll>
         <tDlgPa></tDlgPa>
         <tIfile>.\libboard_samv7-ek\resources\mdk\samv7-sram.ini</tIfile>
-        <pMon>Segger\JL2CM3.dll</pMon>
+        <pMon>BIN\UL2CM3.DLL</pMon>
       </DebugOpt>
       <TargetDriverDllRegistry>
         <SetRegEntry>
@@ -141,17 +178,13 @@
         </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
-          <Key>DLGUARM</Key>
-        </SetRegEntry>
-        <SetRegEntry>
-          <Number>0</Number>
           <Key>CMSIS_AGDI</Key>
           <Name>-X"EDBG CMSIS-DAP" -UATML2407080200001813 -O239 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BD11477) -L00(0) -FO7 -FD20400000 -FC1000 -FN0</Name>
         </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
           <Key>UL2CM3</Key>
-          <Name>-S0 -C0 -P0 -FD20400000 -FC1000)</Name>
+          <Name>-S0 -C0 -P0  -FN1 -FC1000 -FD20400000 -FF0ATSAMV7x_2048 -FL0200000 -FS0400000 -FP0($$Device:ATSAMV71Q21$flash\ATSAMV7x_2048.FLM)</Name>
         </SetRegEntry>
       </TargetDriverDllRegistry>
       <Breakpoint/>
@@ -193,6 +226,16 @@
       </DebugFlag>
       <LintExecutable></LintExecutable>
       <LintConfigFile></LintConfigFile>
+      <bLintAuto>0</bLintAuto>
+      <Lin2Executable></Lin2Executable>
+      <Lin2ConfigFile></Lin2ConfigFile>
+      <bLin2Auto>0</bLin2Auto>
+      <DebugDescription>
+        <Enable>1</Enable>
+        <EnableLog>0</EnableLog>
+        <Protocol>2</Protocol>
+        <DbgClock>10000000</DbgClock>
+      </DebugDescription>
     </TargetOption>
   </Target>
 
@@ -207,7 +250,6 @@
       <FileNumber>1</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\libboard_samv7-ek\source\board_lowlevel.c</PathWithFileName>
@@ -220,7 +262,6 @@
       <FileNumber>2</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\libboard_samv7-ek\source\led.c</PathWithFileName>
@@ -233,7 +274,6 @@
       <FileNumber>3</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\libboard_samv7-ek\resources\mdk\startup_sam.c</PathWithFileName>
@@ -246,7 +286,6 @@
       <FileNumber>4</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\libboard_samv7-ek\source\dbg_console.c</PathWithFileName>
@@ -259,7 +298,6 @@
       <FileNumber>5</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\libboard_samv7-ek\resources\mdk\workaround.s</PathWithFileName>
@@ -272,7 +310,6 @@
       <FileNumber>6</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\libboard_samv7-ek\resources\system_sam.c</PathWithFileName>
@@ -284,7 +321,7 @@
 
   <Group>
     <GroupName>Source</GroupName>
-    <tvExp>1</tvExp>
+    <tvExp>0</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
@@ -293,7 +330,6 @@
       <FileNumber>7</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\main.c</PathWithFileName>
@@ -306,7 +342,6 @@
       <FileNumber>8</FileNumber>
       <FileType>5</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\FreeRTOSConfig.h</PathWithFileName>
@@ -319,7 +354,6 @@
       <FileNumber>9</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\Full_Demo\main_full.c</PathWithFileName>
@@ -332,7 +366,6 @@
       <FileNumber>10</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\Blinky_Demo\main_blinky.c</PathWithFileName>
@@ -345,7 +378,6 @@
       <FileNumber>11</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\Full_Demo\RegTest.c</PathWithFileName>
@@ -358,7 +390,6 @@
       <FileNumber>12</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\Full_Demo\IntQueueTimer.c</PathWithFileName>
@@ -379,7 +410,6 @@
       <FileNumber>13</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\libchip_samv7\source\pio.c</PathWithFileName>
@@ -392,7 +422,6 @@
       <FileNumber>14</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\libchip_samv7\source\pmc.c</PathWithFileName>
@@ -405,7 +434,6 @@
       <FileNumber>15</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\libchip_samv7\source\tc.c</PathWithFileName>
@@ -418,7 +446,6 @@
       <FileNumber>16</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\libchip_samv7\source\wdt.c</PathWithFileName>
@@ -431,7 +458,6 @@
       <FileNumber>17</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\libchip_samv7\source\supc.c</PathWithFileName>
@@ -444,7 +470,6 @@
       <FileNumber>18</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>.\libchip_samv7\source\pio_capture.c</PathWithFileName>
@@ -465,7 +490,6 @@
       <FileNumber>19</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\..\Source\event_groups.c</PathWithFileName>
@@ -478,7 +502,6 @@
       <FileNumber>20</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\..\Source\list.c</PathWithFileName>
@@ -491,7 +514,6 @@
       <FileNumber>21</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\..\Source\queue.c</PathWithFileName>
@@ -504,7 +526,6 @@
       <FileNumber>22</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\..\Source\tasks.c</PathWithFileName>
@@ -517,7 +538,6 @@
       <FileNumber>23</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\..\Source\timers.c</PathWithFileName>
@@ -530,7 +550,6 @@
       <FileNumber>24</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\..\Source\portable\MemMang\heap_4.c</PathWithFileName>
@@ -543,7 +562,6 @@
       <FileNumber>25</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\..\Source\portable\RVDS\ARM_CM7\r0p1\port.c</PathWithFileName>
@@ -564,7 +582,6 @@
       <FileNumber>26</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\BlockQ.c</PathWithFileName>
@@ -577,7 +594,6 @@
       <FileNumber>27</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\blocktim.c</PathWithFileName>
@@ -590,7 +606,6 @@
       <FileNumber>28</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\countsem.c</PathWithFileName>
@@ -603,7 +618,6 @@
       <FileNumber>29</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\death.c</PathWithFileName>
@@ -616,7 +630,6 @@
       <FileNumber>30</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\dynamic.c</PathWithFileName>
@@ -629,7 +642,6 @@
       <FileNumber>31</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\EventGroupsDemo.c</PathWithFileName>
@@ -642,7 +654,6 @@
       <FileNumber>32</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\flop.c</PathWithFileName>
@@ -655,7 +666,6 @@
       <FileNumber>33</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\GenQTest.c</PathWithFileName>
@@ -668,7 +678,6 @@
       <FileNumber>34</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\QueueOverwrite.c</PathWithFileName>
@@ -681,7 +690,6 @@
       <FileNumber>35</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\QueueSet.c</PathWithFileName>
@@ -694,7 +702,6 @@
       <FileNumber>36</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\recmutex.c</PathWithFileName>
@@ -707,7 +714,6 @@
       <FileNumber>37</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\semtest.c</PathWithFileName>
@@ -720,7 +726,6 @@
       <FileNumber>38</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\TaskNotify.c</PathWithFileName>
@@ -733,7 +738,6 @@
       <FileNumber>39</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\TimerDemo.c</PathWithFileName>
@@ -746,7 +750,6 @@
       <FileNumber>40</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\IntQueue.c</PathWithFileName>
@@ -759,7 +762,6 @@
       <FileNumber>41</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
-      <Focus>0</Focus>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\Common\Minimal\IntSemTest.c</PathWithFileName>
diff --git a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.uvprojx b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.uvprojx
index 25ddcf2..d06a3b2 100644
--- a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.uvprojx
+++ b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/RTOSDemo.uvprojx
@@ -10,17 +10,19 @@
       <TargetName>SRAM</TargetName>
       <ToolsetNumber>0x4</ToolsetNumber>
       <ToolsetName>ARM-ADS</ToolsetName>
+      <pCCUsed>5060183::V5.06 update 2 (build 183)::ARMCC</pCCUsed>
       <TargetOption>
         <TargetCommonOption>
-          <Device>SAMV71Q21</Device>
+          <Device>ATSAMV71Q21</Device>
           <Vendor>Atmel</Vendor>
-          <PackID>Atmel.SAMV7.1.0.0</PackID>
-          <Cpu>IROM(0x00000000,0x200000) IRAM(0x20400000,0x60000) CPUTYPE("Cortex-M7") FPU2 CLOCK(12000000) ELITTLE</Cpu>
+          <PackID>Keil.SAM-V_DFP.2.3.0</PackID>
+          <PackURL>http://www.keil.com/pack/</PackURL>
+          <Cpu>IRAM(0x20400000,0x00060000) IROM(0x00400000,0x00200000) IROM2(0x00800000,0x00004000) CPUTYPE("Cortex-M7") FPU3(DFPU) CLOCK(12000000) ELITTLE</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
           <StartupFile></StartupFile>
-          <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20400000 -FC1000)</FlashDriverDll>
+          <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20400000 -FC1000 -FN1 -FF0ATSAMV7x_2048 -FS0400000 -FL0200000 -FP0($$Device:ATSAMV71Q21$flash\ATSAMV7x_2048.FLM))</FlashDriverDll>
           <DeviceId>0</DeviceId>
-          <RegisterFile></RegisterFile>
+          <RegisterFile>$$Device:ATSAMV71Q21$SAMV71\include\sam.h</RegisterFile>
           <MemoryEnv></MemoryEnv>
           <Cmp></Cmp>
           <Asm></Asm>
@@ -30,7 +32,7 @@
           <SLE66CMisc></SLE66CMisc>
           <SLE66AMisc></SLE66AMisc>
           <SLE66LinkerMisc></SLE66LinkerMisc>
-          <SFDFile></SFDFile>
+          <SFDFile>$$Device:ATSAMV71Q21$svd\ATSAMV71Q21.svd</SFDFile>
           <bCustSvd>0</bCustSvd>
           <UseEnv>0</UseEnv>
           <BinPath></BinPath>
@@ -83,6 +85,8 @@
             <UserProg2Name></UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+            <nStopA1X>0</nStopA1X>
+            <nStopA2X>0</nStopA2X>
           </AfterMake>
           <SelectedForBatchBuild>0</SelectedForBatchBuild>
           <SVCSIdString></SVCSIdString>
@@ -105,11 +109,11 @@
         </CommonProperty>
         <DllOption>
           <SimDllName>SARMCM3.DLL</SimDllName>
-          <SimDllArguments> </SimDllArguments>
+          <SimDllArguments> -REMAP -MPU</SimDllArguments>
           <SimDlgDll>DCM.DLL</SimDlgDll>
           <SimDlgDllArguments>-pCM7</SimDlgDllArguments>
           <TargetDllName>SARMCM3.DLL</TargetDllName>
-          <TargetDllArguments></TargetDllArguments>
+          <TargetDllArguments> -MPU</TargetDllArguments>
           <TargetDlgDll>TCM.DLL</TargetDlgDll>
           <TargetDlgDllArguments>-pCM7</TargetDlgDllArguments>
         </DllOption>
@@ -121,47 +125,6 @@
             <HexOffset>0</HexOffset>
             <Oh166RecLen>16</Oh166RecLen>
           </OPTHX>
-          <Simulator>
-            <UseSimulator>0</UseSimulator>
-            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
-            <RunToMain>1</RunToMain>
-            <RestoreBreakpoints>1</RestoreBreakpoints>
-            <RestoreWatchpoints>1</RestoreWatchpoints>
-            <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
-            <RestoreFunctions>1</RestoreFunctions>
-            <RestoreToolbox>1</RestoreToolbox>
-            <LimitSpeedToRealTime>0</LimitSpeedToRealTime>
-            <RestoreSysVw>1</RestoreSysVw>
-          </Simulator>
-          <Target>
-            <UseTarget>1</UseTarget>
-            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
-            <RunToMain>1</RunToMain>
-            <RestoreBreakpoints>1</RestoreBreakpoints>
-            <RestoreWatchpoints>1</RestoreWatchpoints>
-            <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
-            <RestoreFunctions>0</RestoreFunctions>
-            <RestoreToolbox>1</RestoreToolbox>
-            <RestoreTracepoints>1</RestoreTracepoints>
-            <RestoreSysVw>1</RestoreSysVw>
-          </Target>
-          <RunDebugAfterBuild>0</RunDebugAfterBuild>
-          <TargetSelection>6</TargetSelection>
-          <SimDlls>
-            <CpuDll></CpuDll>
-            <CpuDllArguments></CpuDllArguments>
-            <PeripheralDll></PeripheralDll>
-            <PeripheralDllArguments></PeripheralDllArguments>
-            <InitializationFile></InitializationFile>
-          </SimDlls>
-          <TargetDlls>
-            <CpuDll></CpuDll>
-            <CpuDllArguments></CpuDllArguments>
-            <PeripheralDll></PeripheralDll>
-            <PeripheralDllArguments></PeripheralDllArguments>
-            <InitializationFile>.\libboard_samv7-ek\resources\mdk\samv7-sram.ini</InitializationFile>
-            <Driver>Segger\JL2CM3.dll</Driver>
-          </TargetDlls>
         </DebugOption>
         <Utilities>
           <Flash1>
@@ -174,7 +137,7 @@
           </Flash1>
           <bUseTDR>1</bUseTDR>
           <Flash2>BIN\UL2CM3.DLL</Flash2>
-          <Flash3>"" ()</Flash3>
+          <Flash3></Flash3>
           <Flash4></Flash4>
           <pFcarmOut></pFcarmOut>
           <pFcarmGrp>Source</pFcarmGrp>
@@ -219,13 +182,14 @@
             <hadIRAM>1</hadIRAM>
             <hadXRAM>0</hadXRAM>
             <uocXRam>0</uocXRam>
-            <RvdsVP>2</RvdsVP>
+            <RvdsVP>3</RvdsVP>
             <hadIRAM2>0</hadIRAM2>
-            <hadIROM2>0</hadIROM2>
+            <hadIROM2>1</hadIROM2>
             <StupSel>8</StupSel>
             <useUlib>1</useUlib>
             <EndSel>0</EndSel>
             <uLtcg>0</uLtcg>
+            <nSecure>0</nSecure>
             <RoSelD>3</RoSelD>
             <RwSelD>3</RwSelD>
             <CodeSel>0</CodeSel>
@@ -283,7 +247,7 @@
               </IRAM>
               <IROM>
                 <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
+                <StartAddress>0x400000</StartAddress>
                 <Size>0x200000</Size>
               </IROM>
               <XRAM>
@@ -308,13 +272,13 @@
               </OCR_RVCT3>
               <OCR_RVCT4>
                 <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
+                <StartAddress>0x400000</StartAddress>
                 <Size>0x200000</Size>
               </OCR_RVCT4>
               <OCR_RVCT5>
                 <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
+                <StartAddress>0x800000</StartAddress>
+                <Size>0x4000</Size>
               </OCR_RVCT5>
               <OCR_RVCT6>
                 <Type>0</Type>
@@ -334,7 +298,7 @@
               <OCR_RVCT9>
                 <Type>0</Type>
                 <StartAddress>0x20400000</StartAddress>
-                <Size>0x40000</Size>
+                <Size>0x60000</Size>
               </OCR_RVCT9>
               <OCR_RVCT10>
                 <Type>0</Type>
@@ -360,6 +324,12 @@
             <uSurpInc>0</uSurpInc>
             <uC99>1</uC99>
             <useXO>0</useXO>
+            <v6Lang>1</v6Lang>
+            <v6LangP>1</v6LangP>
+            <vShortEn>1</vShortEn>
+            <vShortWch>1</vShortWch>
+            <v6Lto>0</v6Lto>
+            <v6WtE>0</v6WtE>
             <VariousControls>
               <MiscControls></MiscControls>
               <Define>__SAMV71Q21__, NDEBUG</Define>
@@ -644,8 +614,8 @@
   <RTE>
     <apis/>
     <components>
-      <component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="3.40.0" condition="CMSIS Core">
-        <package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="4.2.0"/>
+      <component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="4.3.0" condition="Cortex-M Device">
+        <package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="4.5.0"/>
         <targetInfos>
           <targetInfo name="SRAM"/>
         </targetInfos>
diff --git a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/settings/RTOSDemo.Debug.cspy.bat b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/settings/RTOSDemo.Debug.cspy.bat
index 031884d..c41e3c0 100644
--- a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/settings/RTOSDemo.Debug.cspy.bat
+++ b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/settings/RTOSDemo.Debug.cspy.bat
@@ -21,11 +21,11 @@
 

 @echo off 

 

-if not "%1" == "" goto debugFile 

+if not "%~1" == "" goto debugFile 

 

 @echo on 

 

-"C:\DevTools\IAR Systems\Embedded Workbench 7.2\common\bin\cspybat" -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M7_SAMV71_Xplained_IAR_Keil\settings\RTOSDemo.Debug.general.xcl" --backend -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M7_SAMV71_Xplained_IAR_Keil\settings\RTOSDemo.Debug.driver.xcl" 

+"C:\DevTools\IAR Systems\Embedded Workbench 7.4\common\bin\cspybat" -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M7_SAMV71_Xplained_IAR_Keil\settings\RTOSDemo.Debug.general.xcl" --backend -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M7_SAMV71_Xplained_IAR_Keil\settings\RTOSDemo.Debug.driver.xcl" 

 

 @echo off 

 goto end 

@@ -34,7 +34,7 @@
 

 @echo on 

 

-"C:\DevTools\IAR Systems\Embedded Workbench 7.2\common\bin\cspybat" -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M7_SAMV71_Xplained_IAR_Keil\settings\RTOSDemo.Debug.general.xcl" "--debug_file=%1" --backend -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M7_SAMV71_Xplained_IAR_Keil\settings\RTOSDemo.Debug.driver.xcl" 

+"C:\DevTools\IAR Systems\Embedded Workbench 7.4\common\bin\cspybat" -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M7_SAMV71_Xplained_IAR_Keil\settings\RTOSDemo.Debug.general.xcl" "--debug_file=%~1" --backend -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M7_SAMV71_Xplained_IAR_Keil\settings\RTOSDemo.Debug.driver.xcl" 

 

 @echo off 

 :end
\ No newline at end of file
diff --git a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/settings/RTOSDemo.dni b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/settings/RTOSDemo.dni
index 5a44c98..193f3ae 100644
--- a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/settings/RTOSDemo.dni
+++ b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/settings/RTOSDemo.dni
@@ -35,6 +35,7 @@
 EnableCache=1

 [JLinkDriver]

 CStepIntDis=_ 0

+LeaveTargetRunning=_ 0

 [SWOTraceHWSettings]

 OverrideDefaultClocks=0

 CpuClock=72000000

diff --git a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/settings/RTOSDemo.wsdt
index 3646f88..9e8aa43 100644
--- a/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/settings/RTOSDemo.wsdt
+++ b/FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_IAR_Keil/settings/RTOSDemo.wsdt
@@ -12,7 +12,7 @@
           

           

           

-        <Column0>198</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>

+        <Column0>237</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>

       </Workspace>

       <Build>

         

@@ -28,7 +28,7 @@
     <Windows>

       

       

-    <Wnd0>

+    <Wnd1>

         <Tabs>

           <Tab>

             <Identity>TabID-23288-9694</Identity>

@@ -40,7 +40,7 @@
           </Tab>

         </Tabs>

         

-      <SelectedTab>0</SelectedTab></Wnd0><Wnd2>

+      <SelectedTab>0</SelectedTab></Wnd1><Wnd3>

         <Tabs>

           <Tab>

             <Identity>TabID-13649-20313</Identity>

@@ -56,7 +56,7 @@
           </Tab>

         <Tab><Identity>TabID-30315-19856</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs>

         

-      <SelectedTab>0</SelectedTab></Wnd2></Windows>

+      <SelectedTab>0</SelectedTab></Wnd3></Windows>

     <Editor>

       

       

@@ -69,7 +69,7 @@
       

       

       

-    <Top><Row0><Sizes><Toolbar-00F27AD8><key>iaridepm.enu1</key></Toolbar-00F27AD8></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>770</Bottom><Right>272</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>174</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>176829</sizeHorzCY><sizeVertCX>163095</sizeVertCX><sizeVertCY>784553</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>170</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>172</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>174797</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>176829</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>

+    <Top><Row0><Sizes><Toolbar-00DC1998><key>iaridepm.enu1</key></Toolbar-00DC1998></Sizes></Row0></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>894</Bottom><Right>311</Right><x>-2</x><y>-2</y><xscreen>229</xscreen><yscreen>201</yscreen><sizeHorzCX>119271</sizeHorzCX><sizeHorzCY>177249</sizeHorzCY><sizeVertCX>163021</sizeVertCX><sizeVertCY>790123</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>196</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>198</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>174603</sizeHorzCY><sizeVertCX>119271</sizeVertCX><sizeVertCY>177249</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>

   </Desktop>

 </Workspace>

 

diff --git a/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.ewd b/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.ewd
index b41c36a..3caaacb 100644
--- a/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.ewd
+++ b/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.ewd
@@ -12,7 +12,7 @@
       <name>C-SPY</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>26</version>

+        <version>28</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -45,7 +45,7 @@
         </option>

         <option>

           <name>MemFile</name>

-          <state>$TOOLKIT_DIR$\CONFIG\debugger\ST\STM32F7xxx.ddf</state>

+          <state>$TOOLKIT_DIR$\CONFIG\debugger\ST\STM32F756NG.ddf</state>

         </option>

         <option>

           <name>RunToEnable</name>

@@ -89,11 +89,7 @@
         </option>

         <option>

           <name>OCLastSavedByProductVersion</name>

-          <state>7.30.4.8186</state>

-        </option>

-        <option>

-          <name>OCDownloadAttachToProgram</name>

-          <state>0</state>

+          <state>7.60.1.11206</state>

         </option>

         <option>

           <name>UseFlashLoader</name>

@@ -117,7 +113,7 @@
         </option>

         <option>

           <name>FlashLoadersV3</name>

-          <state>$TOOLKIT_DIR$\config\flashloader\ST\FlashSTM32F7xxx.board</state>

+          <state>$TOOLKIT_DIR$\config\flashloader\ST\FlashSTM32F74xxG.board</state>

         </option>

         <option>

           <name>OCImagesSuppressCheck1</name>

@@ -207,6 +203,14 @@
           <name>OCMulticoreSlaveConfiguration</name>

           <state></state>

         </option>

+        <option>

+          <name>OCDownloadExtraImage</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCAttachSlave</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -281,7 +285,7 @@
       <name>CMSISDAP_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>4</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -289,10 +293,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>CMSISDAPAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>OCIarProbeScriptFile</name>

           <state>1</state>

         </option>

@@ -446,6 +446,14 @@
           <name>OCJetEmuParams</name>

           <state>1</state>

         </option>

+        <option>

+          <name>CCCMSISDAPUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCCMSISDAPUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -520,7 +528,7 @@
       <name>IJET_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>5</version>

+        <version>8</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -528,10 +536,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>IjetAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>OCIarProbeScriptFile</name>

           <state>1</state>

         </option>

@@ -732,13 +736,25 @@
           <version>0</version>

           <state>2</state>

         </option>

+        <option>

+          <name>FlashBoardPathSlave</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCIjetUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCIjetUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

       <name>JLINK_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>15</version>

+        <version>16</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -843,10 +859,6 @@
           <state>0</state>

         </option>

         <option>

-          <name>OCJLinkAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>CCJLinkResetList</name>

           <version>6</version>

           <state>7</state>

@@ -910,7 +922,7 @@
         </option>

         <option>

           <name>CCCpuClockEdit</name>

-          <state></state>

+          <state>216.0</state>

         </option>

         <option>

           <name>CCSwoClockAuto</name>

@@ -1060,7 +1072,7 @@
       <name>PEMICRO_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>1</version>

+        <version>3</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -1068,23 +1080,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>OCPEMicroAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCPEMicroInterfaceList</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCPEMicroResetDelay</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CCPEMicroJtagSpeed</name>

-          <state>#UNINITIALIZED#</state>

-        </option>

-        <option>

           <name>CCJPEMicroShowSettings</name>

           <state>0</state>

         </option>

@@ -1096,36 +1091,6 @@
           <name>LogFile</name>

           <state>$PROJ_DIR$\cspycomm.log</state>

         </option>

-        <option>

-          <name>CCPEMicroUSBDevice</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCPEMicroSerialPort</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJPEMicroTCPIPAutoScanNetwork</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCPEMicroTCPIP</name>

-          <state>10.0.0.1</state>

-        </option>

-        <option>

-          <name>CCPEMicroCommCmdLineProducer</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCSTLinkInterfaceRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCSTLinkInterfaceCmdLine</name>

-          <state>0</state>

-        </option>

       </data>

     </settings>

     <settings>

@@ -1189,7 +1154,7 @@
       <name>STLINK_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>3</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -1221,6 +1186,71 @@
           <name>CCSwoClockEdit</name>

           <state>2000</state>

         </option>

+        <option>

+          <name>DoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>LogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>CCSTLinkDoUpdateBreakpoints</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkUpdateBreakpoints</name>

+          <state>_call_main</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchCORERESET</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchMMERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchNOCPERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchCHRERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchSTATERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchBUSERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchINTERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchHARDERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCSTLinkUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkJtagSpeedList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -1249,10 +1279,10 @@
       </data>

     </settings>

     <settings>

-      <name>XDS100_ID</name>

+      <name>TIFET_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>1</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -1260,7 +1290,74 @@
           <state>1</state>

         </option>

         <option>

-          <name>OCXDS100AttachSlave</name>

+          <name>CCMSPFetResetList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetInterfaceRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetInterfaceCmdLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetVccTypeDefault</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetVoltage</name>

+          <state>###Uninitialized###</state>

+        </option>

+        <option>

+          <name>CCMSPFetVCCDefault</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetSettlingtime</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetRadioJtagSpeedType</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCMSPFetConnection</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetUsbComPort</name>

+          <state>Automatic</state>

+        </option>

+        <option>

+          <name>CCMSPFetAllowAccessToBSL</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetDoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetLogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>CCMSPFetRadioEraseFlash</name>

+          <state>1</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>XDS100_ID</name>

+      <archiveVersion>2</archiveVersion>

+      <data>

+        <version>5</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>OCDriverInfo</name>

           <state>1</state>

         </option>

         <option>

@@ -1272,11 +1369,6 @@
           <state></state>

         </option>

         <option>

-          <name>CCXds100InterfaceList</name>

-          <version>2</version>

-          <state>0</state>

-        </option>

-        <option>

           <name>BoardFile</name>

           <state></state>

         </option>

@@ -1288,6 +1380,129 @@
           <name>LogFile</name>

           <state>$PROJ_DIR$\cspycomm.log</state>

         </option>

+        <option>

+          <name>CCXds100BreakpointRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100DoUpdateBreakpoints</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100UpdateBreakpoints</name>

+          <state>_call_main</state>

+        </option>

+        <option>

+          <name>CCXds100CatchReset</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchUndef</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchSWI</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchData</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchPrefetch</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchIRQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchFIQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchCORERESET</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchMMERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchNOCPERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchCHRERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchSTATERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchBUSERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchINTERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchHARDERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CpuClockEdit</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCXds100SwoClockAuto</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100SwoClockEdit</name>

+          <state>1000</state>

+        </option>

+        <option>

+          <name>CCXds100HWResetDelay</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100ResetList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100UsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCXds100UsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100JtagSpeedList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100InterfaceRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100InterfaceCmdLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100ProbeList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <debuggerPlugins>

@@ -1296,6 +1511,10 @@
         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

+        <file>$TOOLKIT_DIR$\plugins\middleware\PercepioTraceExporter\PercepioTraceExportPlugin.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

         <file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file>

         <loadFlag>0</loadFlag>

       </plugin>

@@ -1356,10 +1575,6 @@
         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

-        <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>

-        <loadFlag>1</loadFlag>

-      </plugin>

-      <plugin>

         <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>

         <loadFlag>0</loadFlag>

       </plugin>

@@ -1375,7 +1590,7 @@
       <name>C-SPY</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>26</version>

+        <version>28</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -1455,10 +1670,6 @@
           <state></state>

         </option>

         <option>

-          <name>OCDownloadAttachToProgram</name>

-          <state>0</state>

-        </option>

-        <option>

           <name>UseFlashLoader</name>

           <state>0</state>

         </option>

@@ -1570,6 +1781,14 @@
           <name>OCMulticoreSlaveConfiguration</name>

           <state></state>

         </option>

+        <option>

+          <name>OCDownloadExtraImage</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCAttachSlave</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -1644,7 +1863,7 @@
       <name>CMSISDAP_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>4</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -1652,10 +1871,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>CMSISDAPAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>OCIarProbeScriptFile</name>

           <state>1</state>

         </option>

@@ -1809,6 +2024,14 @@
           <name>OCJetEmuParams</name>

           <state>1</state>

         </option>

+        <option>

+          <name>CCCMSISDAPUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCCMSISDAPUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -1883,7 +2106,7 @@
       <name>IJET_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>5</version>

+        <version>8</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -1891,10 +2114,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>IjetAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>OCIarProbeScriptFile</name>

           <state>1</state>

         </option>

@@ -2095,13 +2314,25 @@
           <version>0</version>

           <state>2</state>

         </option>

+        <option>

+          <name>FlashBoardPathSlave</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCIjetUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCIjetUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

       <name>JLINK_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>15</version>

+        <version>16</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -2206,10 +2437,6 @@
           <state>0</state>

         </option>

         <option>

-          <name>OCJLinkAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

           <name>CCJLinkResetList</name>

           <version>6</version>

           <state>5</state>

@@ -2423,7 +2650,7 @@
       <name>PEMICRO_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>1</version>

+        <version>3</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -2431,23 +2658,6 @@
           <state>1</state>

         </option>

         <option>

-          <name>OCPEMicroAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCPEMicroInterfaceList</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCPEMicroResetDelay</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CCPEMicroJtagSpeed</name>

-          <state>#UNINITIALIZED#</state>

-        </option>

-        <option>

           <name>CCJPEMicroShowSettings</name>

           <state>0</state>

         </option>

@@ -2459,36 +2669,6 @@
           <name>LogFile</name>

           <state>$PROJ_DIR$\cspycomm.log</state>

         </option>

-        <option>

-          <name>CCPEMicroUSBDevice</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCPEMicroSerialPort</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJPEMicroTCPIPAutoScanNetwork</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCPEMicroTCPIP</name>

-          <state>10.0.0.1</state>

-        </option>

-        <option>

-          <name>CCPEMicroCommCmdLineProducer</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCSTLinkInterfaceRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCSTLinkInterfaceCmdLine</name>

-          <state>0</state>

-        </option>

       </data>

     </settings>

     <settings>

@@ -2552,7 +2732,7 @@
       <name>STLINK_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>3</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -2584,6 +2764,71 @@
           <name>CCSwoClockEdit</name>

           <state>2000</state>

         </option>

+        <option>

+          <name>DoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>LogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>CCSTLinkDoUpdateBreakpoints</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkUpdateBreakpoints</name>

+          <state>_call_main</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchCORERESET</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchMMERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchNOCPERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchCHRERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchSTATERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchBUSERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchINTERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchHARDERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkCatchDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkUsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCSTLinkUsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCSTLinkJtagSpeedList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -2612,10 +2857,10 @@
       </data>

     </settings>

     <settings>

-      <name>XDS100_ID</name>

+      <name>TIFET_ID</name>

       <archiveVersion>2</archiveVersion>

       <data>

-        <version>2</version>

+        <version>1</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -2623,7 +2868,74 @@
           <state>1</state>

         </option>

         <option>

-          <name>OCXDS100AttachSlave</name>

+          <name>CCMSPFetResetList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetInterfaceRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetInterfaceCmdLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetVccTypeDefault</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetVoltage</name>

+          <state>###Uninitialized###</state>

+        </option>

+        <option>

+          <name>CCMSPFetVCCDefault</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCMSPFetTargetSettlingtime</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetRadioJtagSpeedType</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCMSPFetConnection</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetUsbComPort</name>

+          <state>Automatic</state>

+        </option>

+        <option>

+          <name>CCMSPFetAllowAccessToBSL</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetDoLogfile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCMSPFetLogFile</name>

+          <state>$PROJ_DIR$\cspycomm.log</state>

+        </option>

+        <option>

+          <name>CCMSPFetRadioEraseFlash</name>

+          <state>1</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>XDS100_ID</name>

+      <archiveVersion>2</archiveVersion>

+      <data>

+        <version>5</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>0</debug>

+        <option>

+          <name>OCDriverInfo</name>

           <state>1</state>

         </option>

         <option>

@@ -2635,11 +2947,6 @@
           <state></state>

         </option>

         <option>

-          <name>CCXds100InterfaceList</name>

-          <version>2</version>

-          <state>0</state>

-        </option>

-        <option>

           <name>BoardFile</name>

           <state></state>

         </option>

@@ -2651,6 +2958,129 @@
           <name>LogFile</name>

           <state>$PROJ_DIR$\cspycomm.log</state>

         </option>

+        <option>

+          <name>CCXds100BreakpointRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100DoUpdateBreakpoints</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100UpdateBreakpoints</name>

+          <state>_call_main</state>

+        </option>

+        <option>

+          <name>CCXds100CatchReset</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchUndef</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchSWI</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchData</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchPrefetch</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchIRQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchFIQ</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchCORERESET</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchMMERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchNOCPERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchCHRERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchSTATERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchBUSERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchINTERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchHARDERR</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CatchDummy</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100CpuClockEdit</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCXds100SwoClockAuto</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100SwoClockEdit</name>

+          <state>1000</state>

+        </option>

+        <option>

+          <name>CCXds100HWResetDelay</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100ResetList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100UsbSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCXds100UsbSerialNoSelect</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100JtagSpeedList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100InterfaceRadio</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100InterfaceCmdLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCXds100ProbeList</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <debuggerPlugins>

@@ -2659,6 +3089,10 @@
         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

+        <file>$TOOLKIT_DIR$\plugins\middleware\PercepioTraceExporter\PercepioTraceExportPlugin.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

         <file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file>

         <loadFlag>0</loadFlag>

       </plugin>

@@ -2719,10 +3153,6 @@
         <loadFlag>0</loadFlag>

       </plugin>

       <plugin>

-        <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>

-        <loadFlag>1</loadFlag>

-      </plugin>

-      <plugin>

         <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>

         <loadFlag>0</loadFlag>

       </plugin>

diff --git a/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.ewp b/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.ewp
index 49159e0..13d9494 100644
--- a/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.ewp
+++ b/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.ewp
@@ -12,7 +12,7 @@
       <name>General</name>

       <archiveVersion>3</archiveVersion>

       <data>

-        <version>22</version>

+        <version>24</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -28,11 +28,6 @@
           <state>Debug\List</state>

         </option>

         <option>

-          <name>Variant</name>

-          <version>21</version>

-          <state>41</state>

-        </option>

-        <option>

           <name>GEndianMode</name>

           <state>0</state>

         </option>

@@ -59,11 +54,6 @@
           <state>0</state>

         </option>

         <option>

-          <name>FPU</name>

-          <version>4</version>

-          <state>9</state>

-        </option>

-        <option>

           <name>OGCoreOrChip</name>

           <state>1</state>

         </option>

@@ -87,7 +77,7 @@
         </option>

         <option>

           <name>OGLastSavedByProductVersion</name>

-          <state>7.40.1.8463</state>

+          <state>7.60.1.11206</state>

         </option>

         <option>

           <name>GeneralEnableMisra</name>

@@ -136,13 +126,8 @@
           <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>

         </option>

         <option>

-          <name>GFPUCoreSlave</name>

-          <version>21</version>

-          <state>41</state>

-        </option>

-        <option>

           <name>GBECoreSlave</name>

-          <version>21</version>

+          <version>24</version>

           <state>41</state>

         </option>

         <option>

@@ -157,6 +142,34 @@
           <name>GRuntimeLibThreads</name>

           <state>0</state>

         </option>

+        <option>

+          <name>CoreVariant</name>

+          <version>24</version>

+          <state>41</state>

+        </option>

+        <option>

+          <name>GFPUDeviceSlave</name>

+          <state>STM32F756NG	ST STM32F756NG</state>

+        </option>

+        <option>

+          <name>FPU2</name>

+          <version>0</version>

+          <state>6</state>

+        </option>

+        <option>

+          <name>NrRegs</name>

+          <version>0</version>

+          <state>1</state>

+        </option>

+        <option>

+          <name>NEON</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GFPUCoreSlave2</name>

+          <version>24</version>

+          <state>41</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -594,8 +607,8 @@
         <debug>1</debug>

         <option>

           <name>OOCOutputFormat</name>

-          <version>2</version>

-          <state>2</state>

+          <version>3</version>

+          <state>3</state>

         </option>

         <option>

           <name>OCOutputOverride</name>

@@ -641,7 +654,7 @@
       <name>ILINK</name>

       <archiveVersion>0</archiveVersion>

       <data>

-        <version>16</version>

+        <version>17</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>1</debug>

         <option>

@@ -925,6 +938,10 @@
           <name>IlinkThreadsSlave</name>

           <state>1</state>

         </option>

+        <option>

+          <name>IlinkLogCallGraph</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -964,7 +981,7 @@
       <name>General</name>

       <archiveVersion>3</archiveVersion>

       <data>

-        <version>22</version>

+        <version>24</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -980,11 +997,6 @@
           <state>Release\List</state>

         </option>

         <option>

-          <name>Variant</name>

-          <version>21</version>

-          <state>0</state>

-        </option>

-        <option>

           <name>GEndianMode</name>

           <state>0</state>

         </option>

@@ -1011,11 +1023,6 @@
           <state>0</state>

         </option>

         <option>

-          <name>FPU</name>

-          <version>4</version>

-          <state>0</state>

-        </option>

-        <option>

           <name>OGCoreOrChip</name>

           <state>0</state>

         </option>

@@ -1039,7 +1046,7 @@
         </option>

         <option>

           <name>OGLastSavedByProductVersion</name>

-          <state></state>

+          <state>7.60.1.11206</state>

         </option>

         <option>

           <name>GeneralEnableMisra</name>

@@ -1051,7 +1058,7 @@
         </option>

         <option>

           <name>OGChipSelectEditMenu</name>

-          <state></state>

+          <state>Default	None</state>

         </option>

         <option>

           <name>GenLowLevelInterface</name>

@@ -1088,13 +1095,8 @@
           <state></state>

         </option>

         <option>

-          <name>GFPUCoreSlave</name>

-          <version>21</version>

-          <state>1</state>

-        </option>

-        <option>

           <name>GBECoreSlave</name>

-          <version>21</version>

+          <version>24</version>

           <state>1</state>

         </option>

         <option>

@@ -1109,6 +1111,34 @@
           <name>GRuntimeLibThreads</name>

           <state>0</state>

         </option>

+        <option>

+          <name>CoreVariant</name>

+          <version>24</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GFPUDeviceSlave</name>

+          <state>Default	None</state>

+        </option>

+        <option>

+          <name>FPU2</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>NrRegs</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>NEON</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GFPUCoreSlave2</name>

+          <version>24</version>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

@@ -1536,7 +1566,7 @@
         <debug>0</debug>

         <option>

           <name>OOCOutputFormat</name>

-          <version>2</version>

+          <version>3</version>

           <state>0</state>

         </option>

         <option>

@@ -1583,7 +1613,7 @@
       <name>ILINK</name>

       <archiveVersion>0</archiveVersion>

       <data>

-        <version>16</version>

+        <version>17</version>

         <wantNonLocal>1</wantNonLocal>

         <debug>0</debug>

         <option>

@@ -1867,6 +1897,10 @@
           <name>IlinkThreadsSlave</name>

           <state>1</state>

         </option>

+        <option>

+          <name>IlinkLogCallGraph</name>

+          <state>0</state>

+        </option>

       </data>

     </settings>

     <settings>

diff --git a/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.uvproj b/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.uvprojx
similarity index 86%
rename from FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.uvproj
rename to FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.uvprojx
index ac704bd..ab72190 100644
--- a/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.uvproj
+++ b/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/RTOSDemo.uvprojx
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
+<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
 
-  <SchemaVersion>1.1</SchemaVersion>
+  <SchemaVersion>2.1</SchemaVersion>
 
   <Header>### uVision Project, (C) Keil Software</Header>
 
@@ -10,16 +10,19 @@
       <TargetName>STM32756G_EVAL</TargetName>
       <ToolsetNumber>0x4</ToolsetNumber>
       <ToolsetName>ARM-ADS</ToolsetName>
+      <pCCUsed>5060183::V5.06 update 2 (build 183)::ARMCC</pCCUsed>
       <TargetOption>
         <TargetCommonOption>
-          <Device>STM32F7x</Device>
+          <Device>STM32F756NGHx</Device>
           <Vendor>STMicroelectronics</Vendor>
-          <Cpu>IROM(0x08000000,0x100000) IRAM(0x20000000,0x10000)  CLOCK(12000000) CPUTYPE("Pelican") ESEL ELITTLE FPU3(SFPU)</Cpu>
+          <PackID>Keil.STM32F7xx_DFP.2.5.0</PackID>
+          <PackURL>http://www.keil.com/pack</PackURL>
+          <Cpu>IRAM(0x20010000,0x40000) IRAM2(0x20000000,0x10000) IROM(0x08000000,0x100000) IROM2(0x00200000,0x100000) CPUTYPE("Cortex-M7") FPU3(SFPU) CLOCK(12000000) ELITTLE</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
           <StartupFile></StartupFile>
-          <FlashDriverDll>UL2CM3(-O207 -S8 -C0 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F7x  -FS08000000 -FL100000)</FlashDriverDll>
+          <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F756NGHx$CMSIS\Flash\STM32F7x_1024.FLM))</FlashDriverDll>
           <DeviceId>0</DeviceId>
-          <RegisterFile></RegisterFile>
+          <RegisterFile>$$Device:STM32F756NGHx$Drivers\CMSIS\Device\ST\STM32F7xx\Include\stm32f7xx.h</RegisterFile>
           <MemoryEnv></MemoryEnv>
           <Cmp></Cmp>
           <Asm></Asm>
@@ -29,14 +32,14 @@
           <SLE66CMisc></SLE66CMisc>
           <SLE66AMisc></SLE66AMisc>
           <SLE66LinkerMisc></SLE66LinkerMisc>
-          <SFDFile></SFDFile>
+          <SFDFile>$$Device:STM32F756NGHx$CMSIS\SVD\STM32F7x.svd</SFDFile>
           <bCustSvd>0</bCustSvd>
           <UseEnv>0</UseEnv>
           <BinPath></BinPath>
           <IncludePath></IncludePath>
           <LibPath></LibPath>
-          <RegisterFilePath>ST\STM32F4xx\</RegisterFilePath>
-          <DBRegisterFilePath>ST\STM32F4xx\</DBRegisterFilePath>
+          <RegisterFilePath></RegisterFilePath>
+          <DBRegisterFilePath></DBRegisterFilePath>
           <TargetStatus>
             <Error>0</Error>
             <ExitCodeStop>0</ExitCodeStop>
@@ -82,6 +85,8 @@
             <UserProg2Name></UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+            <nStopA1X>0</nStopA1X>
+            <nStopA2X>0</nStopA2X>
           </AfterMake>
           <SelectedForBatchBuild>0</SelectedForBatchBuild>
           <SVCSIdString></SVCSIdString>
@@ -104,13 +109,13 @@
         </CommonProperty>
         <DllOption>
           <SimDllName>SARMCM3.DLL</SimDllName>
-          <SimDllArguments></SimDllArguments>
-          <SimDlgDll>DARMCM1.DLL</SimDlgDll>
-          <SimDlgDllArguments>-pCM4</SimDlgDllArguments>
+          <SimDllArguments> -REMAP -MPU</SimDllArguments>
+          <SimDlgDll>DCM.DLL</SimDlgDll>
+          <SimDlgDllArguments>-pCM7</SimDlgDllArguments>
           <TargetDllName>SARMCM3.DLL</TargetDllName>
-          <TargetDllArguments></TargetDllArguments>
-          <TargetDlgDll>TARMCM1.DLL</TargetDlgDll>
-          <TargetDlgDllArguments>-pCM4</TargetDlgDllArguments>
+          <TargetDllArguments> -MPU</TargetDllArguments>
+          <TargetDlgDll>TCM.DLL</TargetDlgDll>
+          <TargetDlgDllArguments>-pCM7</TargetDlgDllArguments>
         </DllOption>
         <DebugOption>
           <OPTHX>
@@ -120,47 +125,6 @@
             <HexOffset>0</HexOffset>
             <Oh166RecLen>16</Oh166RecLen>
           </OPTHX>
-          <Simulator>
-            <UseSimulator>0</UseSimulator>
-            <LoadApplicationAtStartup>0</LoadApplicationAtStartup>
-            <RunToMain>0</RunToMain>
-            <RestoreBreakpoints>1</RestoreBreakpoints>
-            <RestoreWatchpoints>1</RestoreWatchpoints>
-            <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
-            <RestoreFunctions>1</RestoreFunctions>
-            <RestoreToolbox>1</RestoreToolbox>
-            <LimitSpeedToRealTime>0</LimitSpeedToRealTime>
-            <RestoreSysVw>1</RestoreSysVw>
-          </Simulator>
-          <Target>
-            <UseTarget>1</UseTarget>
-            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
-            <RunToMain>1</RunToMain>
-            <RestoreBreakpoints>1</RestoreBreakpoints>
-            <RestoreWatchpoints>1</RestoreWatchpoints>
-            <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
-            <RestoreFunctions>0</RestoreFunctions>
-            <RestoreToolbox>1</RestoreToolbox>
-            <RestoreTracepoints>0</RestoreTracepoints>
-            <RestoreSysVw>1</RestoreSysVw>
-          </Target>
-          <RunDebugAfterBuild>0</RunDebugAfterBuild>
-          <TargetSelection>11</TargetSelection>
-          <SimDlls>
-            <CpuDll></CpuDll>
-            <CpuDllArguments></CpuDllArguments>
-            <PeripheralDll></PeripheralDll>
-            <PeripheralDllArguments></PeripheralDllArguments>
-            <InitializationFile></InitializationFile>
-          </SimDlls>
-          <TargetDlls>
-            <CpuDll></CpuDll>
-            <CpuDllArguments></CpuDllArguments>
-            <PeripheralDll></PeripheralDll>
-            <PeripheralDllArguments></PeripheralDllArguments>
-            <InitializationFile></InitializationFile>
-            <Driver>STLink\ST-LINKIII-KEIL_SWO.dll</Driver>
-          </TargetDlls>
         </DebugOption>
         <Utilities>
           <Flash1>
@@ -173,7 +137,7 @@
           </Flash1>
           <bUseTDR>1</bUseTDR>
           <Flash2>BIN\UL2CM3.DLL</Flash2>
-          <Flash3>"" ()</Flash3>
+          <Flash3></Flash3>
           <Flash4></Flash4>
           <pFcarmOut></pFcarmOut>
           <pFcarmGrp></pFcarmGrp>
@@ -209,7 +173,7 @@
             <AdsLsxf>1</AdsLsxf>
             <RvctClst>0</RvctClst>
             <GenPPlst>0</GenPPlst>
-            <AdsCpuType>"Pelican"</AdsCpuType>
+            <AdsCpuType>"Cortex-M7"</AdsCpuType>
             <RvctDeviceName></RvctDeviceName>
             <mOS>0</mOS>
             <uocRom>0</uocRom>
@@ -219,12 +183,13 @@
             <hadXRAM>0</hadXRAM>
             <uocXRam>0</uocXRam>
             <RvdsVP>2</RvdsVP>
-            <hadIRAM2>0</hadIRAM2>
-            <hadIROM2>0</hadIROM2>
+            <hadIRAM2>1</hadIRAM2>
+            <hadIROM2>1</hadIROM2>
             <StupSel>8</StupSel>
             <useUlib>1</useUlib>
-            <EndSel>1</EndSel>
+            <EndSel>0</EndSel>
             <uLtcg>0</uLtcg>
+            <nSecure>0</nSecure>
             <RoSelD>3</RoSelD>
             <RwSelD>3</RwSelD>
             <CodeSel>0</CodeSel>
@@ -277,8 +242,8 @@
               </Ocm6>
               <IRAM>
                 <Type>0</Type>
-                <StartAddress>0x20000000</StartAddress>
-                <Size>0x10000</Size>
+                <StartAddress>0x20010000</StartAddress>
+                <Size>0x40000</Size>
               </IRAM>
               <IROM>
                 <Type>1</Type>
@@ -312,8 +277,8 @@
               </OCR_RVCT4>
               <OCR_RVCT5>
                 <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
+                <StartAddress>0x200000</StartAddress>
+                <Size>0x100000</Size>
               </OCR_RVCT5>
               <OCR_RVCT6>
                 <Type>0</Type>
@@ -332,13 +297,13 @@
               </OCR_RVCT8>
               <OCR_RVCT9>
                 <Type>0</Type>
-                <StartAddress>0x20000000</StartAddress>
-                <Size>0xffff</Size>
+                <StartAddress>0x20010000</StartAddress>
+                <Size>0x40000</Size>
               </OCR_RVCT9>
               <OCR_RVCT10>
                 <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
+                <StartAddress>0x20000000</StartAddress>
+                <Size>0x10000</Size>
               </OCR_RVCT10>
             </OnChipMemories>
             <RvctStartVector></RvctStartVector>
@@ -359,6 +324,12 @@
             <uSurpInc>0</uSurpInc>
             <uC99>0</uC99>
             <useXO>0</useXO>
+            <v6Lang>1</v6Lang>
+            <v6LangP>1</v6LangP>
+            <vShortEn>1</vShortEn>
+            <vShortWch>1</vShortWch>
+            <v6Lto>0</v6Lto>
+            <v6WtE>0</v6WtE>
             <VariousControls>
               <MiscControls></MiscControls>
               <Define>STM32F756xx, CORE_CM7,USE_HAL_DRIVER</Define>
@@ -643,8 +614,24 @@
             </File>
           </Files>
         </Group>
+        <Group>
+          <GroupName>::CMSIS</GroupName>
+        </Group>
       </Groups>
     </Target>
   </Targets>
 
+  <RTE>
+    <apis/>
+    <components>
+      <component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="4.3.0" condition="Cortex-M Device">
+        <package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="4.5.0"/>
+        <targetInfos>
+          <targetInfo name="STM32756G_EVAL"/>
+        </targetInfos>
+      </component>
+    </components>
+    <files/>
+  </RTE>
+
 </Project>
diff --git a/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/settings/RTOSDemo.Debug.cspy.bat b/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/settings/RTOSDemo.Debug.cspy.bat
index 4503386..6a01213 100644
--- a/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/settings/RTOSDemo.Debug.cspy.bat
+++ b/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/settings/RTOSDemo.Debug.cspy.bat
@@ -21,11 +21,11 @@
 

 @echo off 

 

-if not "%1" == "" goto debugFile 

+if not "%~1" == "" goto debugFile 

 

 @echo on 

 

-"C:\DevTools\IAR Systems\Embedded Workbench 7.2\common\bin\cspybat" -f "C:\E\temp\FreeRTOSv8.2.1\clean\FreeRTOS\Demo\CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil\settings\RTOSDemo.Debug.general.xcl" --backend -f "C:\E\temp\FreeRTOSv8.2.1\clean\FreeRTOS\Demo\CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil\settings\RTOSDemo.Debug.driver.xcl" 

+"C:\DevTools\IAR Systems\Embedded Workbench 7.4\common\bin\cspybat" -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil\settings\RTOSDemo.Debug.general.xcl" --backend -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil\settings\RTOSDemo.Debug.driver.xcl" 

 

 @echo off 

 goto end 

@@ -34,7 +34,7 @@
 

 @echo on 

 

-"C:\DevTools\IAR Systems\Embedded Workbench 7.2\common\bin\cspybat" -f "C:\E\temp\FreeRTOSv8.2.1\clean\FreeRTOS\Demo\CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil\settings\RTOSDemo.Debug.general.xcl" "--debug_file=%1" --backend -f "C:\E\temp\FreeRTOSv8.2.1\clean\FreeRTOS\Demo\CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil\settings\RTOSDemo.Debug.driver.xcl" 

+"C:\DevTools\IAR Systems\Embedded Workbench 7.4\common\bin\cspybat" -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil\settings\RTOSDemo.Debug.general.xcl" "--debug_file=%~1" --backend -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil\settings\RTOSDemo.Debug.driver.xcl" 

 

 @echo off 

 :end
\ No newline at end of file
diff --git a/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/settings/RTOSDemo.dni b/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/settings/RTOSDemo.dni
index cf2595e..fc17c8e 100644
--- a/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/settings/RTOSDemo.dni
+++ b/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/settings/RTOSDemo.dni
@@ -58,6 +58,7 @@
 WatchCond=_ 0

 Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0

 Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0

+LeaveTargetRunning=_ 0

 [Trace2]

 Enabled=0

 ShowSource=0

diff --git a/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/settings/RTOSDemo.wsdt
index c57c9bf..5de027c 100644
--- a/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/settings/RTOSDemo.wsdt
+++ b/FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/settings/RTOSDemo.wsdt
@@ -12,7 +12,7 @@
           

           

           

-        <Column0>303</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>

+        <Column0>357</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>

       </Workspace>

       <Build>

         

@@ -29,7 +29,7 @@
     <Windows>

       

       

-    <Wnd2>

+    <Wnd0>

         <Tabs>

           <Tab>

             <Identity>TabID-18739-8840</Identity>

@@ -41,7 +41,7 @@
           </Tab>

         </Tabs>

         

-      <SelectedTab>0</SelectedTab></Wnd2><Wnd3>

+      <SelectedTab>0</SelectedTab></Wnd0><Wnd1>

         <Tabs>

           <Tab>

             <Identity>TabID-19869-16187</Identity>

@@ -57,7 +57,7 @@
           </Tab>

         </Tabs>

         

-      <SelectedTab>0</SelectedTab></Wnd3></Windows>

+      <SelectedTab>0</SelectedTab></Wnd1></Windows>

     <Editor>

       

       

@@ -70,7 +70,7 @@
       

       

       

-    <Top><Row0><Sizes><Toolbar-028190F0><key>iaridepm.enu1</key></Toolbar-028190F0></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>619</Bottom><Right>377</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>225595</sizeVertCX><sizeVertCY>631098</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>321</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>323</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>328252</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203252</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>

+    <Top><Row0><Sizes><Toolbar-02691C38><key>iaridepm.enu1</key></Toolbar-02691C38></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>720</Bottom><Right>431</Right><x>-2</x><y>-2</y><xscreen>229</xscreen><yscreen>230</yscreen><sizeHorzCX>119271</sizeHorzCX><sizeHorzCY>202822</sizeHorzCY><sizeVertCX>225521</sizeVertCX><sizeVertCY>636684</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>370</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>372</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>328042</sizeHorzCY><sizeVertCX>119271</sizeVertCX><sizeVertCY>202822</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>

   </Desktop>

 </Workspace>

 

diff --git a/FreeRTOS/Demo/Common/Minimal/blocktim.c b/FreeRTOS/Demo/Common/Minimal/blocktim.c
index f06fe24..883a1c5 100644
--- a/FreeRTOS/Demo/Common/Minimal/blocktim.c
+++ b/FreeRTOS/Demo/Common/Minimal/blocktim.c
@@ -99,6 +99,12 @@
 #define bktDONT_BLOCK				( ( TickType_t ) 0 )

 #define bktRUN_INDICATOR			( ( UBaseType_t ) 0x55 )

 

+/* In case the demo does not have software timers enabled, as this file uses

+the configTIMER_TASK_PRIORITY setting. */

+#ifndef configTIMER_TASK_PRIORITY

+	#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )

+#endif

+

 /*-----------------------------------------------------------*/

 

 /*

diff --git a/FreeRTOS/Demo/MSP430X_MSP430FR5969_LaunchPad_IAR_CCS/.settings/org.eclipse.core.resources.prefs b/FreeRTOS/Demo/MSP430X_MSP430FR5969_LaunchPad_IAR_CCS/.settings/org.eclipse.core.resources.prefs
index a9e5b95..efd217d 100644
--- a/FreeRTOS/Demo/MSP430X_MSP430FR5969_LaunchPad_IAR_CCS/.settings/org.eclipse.core.resources.prefs
+++ b/FreeRTOS/Demo/MSP430X_MSP430FR5969_LaunchPad_IAR_CCS/.settings/org.eclipse.core.resources.prefs
@@ -45,26 +45,3 @@
 encoding//Large_Data/sources.mk=UTF-8

 encoding//Large_Data/subdir_rules.mk=UTF-8

 encoding//Large_Data/subdir_vars.mk=UTF-8

-encoding//Small_Data/Blinky_Demo/subdir_rules.mk=UTF-8

-encoding//Small_Data/Blinky_Demo/subdir_vars.mk=UTF-8

-encoding//Small_Data/CCS_Only/subdir_rules.mk=UTF-8

-encoding//Small_Data/CCS_Only/subdir_vars.mk=UTF-8

-encoding//Small_Data/FreeRTOS_Source/portable/CCS/MSP430X/subdir_rules.mk=UTF-8

-encoding//Small_Data/FreeRTOS_Source/portable/CCS/MSP430X/subdir_vars.mk=UTF-8

-encoding//Small_Data/FreeRTOS_Source/portable/MemMang/subdir_rules.mk=UTF-8

-encoding//Small_Data/FreeRTOS_Source/portable/MemMang/subdir_vars.mk=UTF-8

-encoding//Small_Data/FreeRTOS_Source/subdir_rules.mk=UTF-8

-encoding//Small_Data/FreeRTOS_Source/subdir_vars.mk=UTF-8

-encoding//Small_Data/Full_Demo/FreeRTOS+CLI/subdir_rules.mk=UTF-8

-encoding//Small_Data/Full_Demo/FreeRTOS+CLI/subdir_vars.mk=UTF-8

-encoding//Small_Data/Full_Demo/Standard_Demo_Tasks/subdir_rules.mk=UTF-8

-encoding//Small_Data/Full_Demo/Standard_Demo_Tasks/subdir_vars.mk=UTF-8

-encoding//Small_Data/Full_Demo/subdir_rules.mk=UTF-8

-encoding//Small_Data/Full_Demo/subdir_vars.mk=UTF-8

-encoding//Small_Data/driverlib/MSP430FR5xx_6xx/subdir_rules.mk=UTF-8

-encoding//Small_Data/driverlib/MSP430FR5xx_6xx/subdir_vars.mk=UTF-8

-encoding//Small_Data/makefile=UTF-8

-encoding//Small_Data/objects.mk=UTF-8

-encoding//Small_Data/sources.mk=UTF-8

-encoding//Small_Data/subdir_rules.mk=UTF-8

-encoding//Small_Data/subdir_vars.mk=UTF-8

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
deleted file mode 100644
index 6ef0bed..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-#ifndef FREERTOS_CONFIG_H

-#define FREERTOS_CONFIG_H

-

-/*-----------------------------------------------------------

- * Application specific definitions.

- *

- * These definitions should be adjusted for your particular hardware and

- * application requirements.

- *

- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE

- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. 

- *

- * See http://www.freertos.org/a00110.html.

- *----------------------------------------------------------*/

-

-#define configUSE_PREEMPTION			1

-#define configUSE_IDLE_HOOK				0

-#define configUSE_TICK_HOOK				0

-#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 250 )

-#define configCPU_CLOCK_HZ				( ( unsigned long ) 200000000 )	/* Clock setup from start.asm in the demo application. */

-#define configTICK_RATE_HZ				( (TickType_t) 1000 )

-#define configMAX_PRIORITIES			( 6 )

-#define configTOTAL_HEAP_SIZE			( (size_t) (80 * 1024) )

-#define configMAX_TASK_NAME_LEN			( 20 )

-#define configUSE_16_BIT_TICKS			0

-#define configIDLE_SHOULD_YIELD			1

-#define configUSE_MUTEXES				1

-#define configUSE_TRACE_FACILITY		0

-#define configCHECK_FOR_STACK_OVERFLOW	2

-#define configUSE_COUNTING_SEMAPHORES	1

-#define configUSE_APPLICATION_TASK_TAG	1

-#define configUSE_FPU					1

-

-

-/* Co-routine definitions. */

-#define configUSE_CO_ROUTINES			0

-#define configMAX_CO_ROUTINE_PRIORITIES ( 4 )

-

-/* Set the following definitions to 1 to include the API function, or zero

-to exclude the API function. */

-#define INCLUDE_vTaskPrioritySet			1

-#define INCLUDE_uxTaskPriorityGet			1

-#define INCLUDE_vTaskDelete					1

-#define INCLUDE_vTaskCleanUpResources		1

-#define INCLUDE_vTaskSuspend				1

-#define INCLUDE_vResumeFromISR				1

-#define INCLUDE_vTaskDelayUntil				1

-#define INCLUDE_vTaskDelay					1

-#define INCLUDE_xTaskGetSchedulerState		1

-#define INCLUDE_xTaskGetCurrentTaskHandle	1

-#define INCLUDE_uxTaskGetStackHighWaterMark	1

-#define configUSE_RECURSIVE_MUTEXES			1

-

-

-#if configUSE_FPU == 1

-	/* Include the header that define the traceTASK_SWITCHED_IN() and

-	traceTASK_SWITCHED_OUT() macros to save and restore the floating

-	point registers for tasks that have requested this behaviour. */

-	#include "FPU_Macros.h"

-#endif

-

-#endif /* FREERTOS_CONFIG_H */

-

-

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld
deleted file mode 100644
index 0a5bdac..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************/

-/*                                                                 */

-/* This file is automatically generated by linker script generator.*/

-/*                                                                 */

-/* Version: Xilinx EDK 10.1.01 EDK_K_SP1.3                                */

-/*                                                                 */

-/* Copyright (c) 2004 Xilinx, Inc.  All rights reserved.           */

-/*                                                                 */

-/* Description : PowerPC405 Linker Script                          */

-/*                                                                 */

-/*******************************************************************/

-

-_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x400;

-_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x100;

-

-/* Define Memories in the system */

-

-MEMORY

-{

-   SRAM_C_MEM0_BASEADDR : ORIGIN = 0xFFF00000, LENGTH = 0x000FFFEC

-}

-

-/* Specify the default entry point to the program */

-

-ENTRY(_boot)

-STARTUP(boot.o)

-

-/* Define the sections, and where they are mapped in memory */

-

-SECTIONS

-{

-.vectors : {

-   __vectors_start = .;

-   *(.vectors)

-   __vectors_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.text : {

-   *(.text)

-   *(.text.*)

-   *(.gnu.linkonce.t.*)

-} > SRAM_C_MEM0_BASEADDR

-

-.init : {

-   KEEP (*(.init))

-} > SRAM_C_MEM0_BASEADDR

-

-.fini : {

-   KEEP (*(.fini))

-} > SRAM_C_MEM0_BASEADDR

-

-.rodata : {

-   __rodata_start = .;

-   *(.rodata)

-   *(.rodata.*)

-   *(.gnu.linkonce.r.*)

-   __rodata_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.sdata2 : {

-   __sdata2_start = .;

-   *(.sdata2)

-   *(.sdata2.*)

-   *(.gnu.linkonce.s2.*)

-   __sdata2_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.sbss2 : {

-   __sbss2_start = .;

-   *(.sbss2)

-   *(.sbss2.*)

-   *(.gnu.linkonce.sb2.*)

-   __sbss2_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.data : {

-   __data_start = .;

-   *(.data)

-   *(.data.*)

-   *(.gnu.linkonce.d.*)

-   __data_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.got : {

-   *(.got)

-} > SRAM_C_MEM0_BASEADDR

-

-.got1 : {

-   *(.got1)

-} > SRAM_C_MEM0_BASEADDR

-

-.got2 : {

-   *(.got2)

-} > SRAM_C_MEM0_BASEADDR

-

-.ctors : {

-   __CTOR_LIST__ = .;

-   ___CTORS_LIST___ = .;

-   KEEP (*crtbegin.o(.ctors))

-   KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))

-   KEEP (*(SORT(.ctors.*)))

-   KEEP (*(.ctors))

-   __CTOR_END__ = .;

-   ___CTORS_END___ = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.dtors : {

-   __DTOR_LIST__ = .;

-   ___DTORS_LIST___ = .;

-   KEEP (*crtbegin.o(.dtors))

-   KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))

-   KEEP (*(SORT(.dtors.*)))

-   KEEP (*(.dtors))

-   __DTOR_END__ = .;

-   ___DTORS_END___ = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.fixup : {

-   __fixup_start = .;

-   *(.fixup)

-   __fixup_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.eh_frame : {

-   *(.eh_frame)

-} > SRAM_C_MEM0_BASEADDR

-

-.jcr : {

-   *(.jcr)

-} > SRAM_C_MEM0_BASEADDR

-

-.gcc_except_table : {

-   *(.gcc_except_table)

-} > SRAM_C_MEM0_BASEADDR

-

-.sdata : {

-   __sdata_start = .;

-   *(.sdata)

-   *(.sdata.*)

-   *(.gnu.linkonce.s.*)

-   __sdata_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.sbss : {

-   __sbss_start = .;

-   *(.sbss)

-   *(.sbss.*)

-   *(.gnu.linkonce.sb.*)

-   __sbss_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.tdata : {

-   __tdata_start = .;

-   *(.tdata)

-   *(.tdata.*)

-   *(.gnu.linkonce.td.*)

-   __tdata_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.tbss : {

-   __tbss_start = .;

-   *(.tbss)

-   *(.tbss.*)

-   *(.gnu.linkonce.tb.*)

-   __tbss_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.bss : {

-   __bss_start = .;

-   *(.bss)

-   *(.bss.*)

-   *(.gnu.linkonce.b.*)

-   *(COMMON)

-   . = ALIGN(4);

-   __bss_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.boot0 0xFFFFFFEC : {

-   __boot0_start = .;

-   *(.boot0)

-   __boot0_end = .;

-} 

-

-.boot 0xFFFFFFFC : {

-   __boot_start = .;

-   *(.boot)

-   __boot_end = .;

-} 

-

-/* Generate Stack and Heap Sections */

-

-.stack : {

-   _stack_end = .;

-   . += _STACK_SIZE;

-   . = ALIGN(16);

-   __stack = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.heap : {

-   . = ALIGN(16);

-   _heap_start = .;

-   . += _HEAP_SIZE;

-   . = ALIGN(16);

-   _heap_end = .;

-   _end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-}

-

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c
deleted file mode 100644
index 1d2d19d..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c
+++ /dev/null
@@ -1,264 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-/*

- * Tests the floating point context save and restore mechanism.

- *

- * Two tasks are created - each of which is allocated a buffer of 

- * portNO_FLOP_REGISTERS_TO_SAVE 32bit variables into which the flop context

- * of the task is saved when the task is switched out, and from which the

- * flop context of the task is restored when the task is switch in.  Prior to 

- * the tasks being created each position in the two buffers is filled with a 

- * unique value - this way the flop context of each task is different.

- *

- * The two test tasks never block so are always in either the Running or

- * Ready state.  They execute at the lowest priority so will get pre-empted

- * regularly, although the yield frequently so will not get much execution

- * time.  The lack of execution time is not a problem as its only the 

- * switching in and out that is being tested.

- *

- * Whenever a task is moved from the Ready to the Running state its flop 

- * context will be loaded from the buffer, but while the task is in the

- * Running state the buffer is not used and can contain any value - in this

- * case and for test purposes the task itself clears the buffer to zero.  

- * The next time the task is moved out of the Running state into the

- * Ready state the flop context will once more get saved to the buffer - 

- * overwriting the zeros.

- *

- * Therefore whenever the task is not in the Running state its buffer contains

- * the most recent values of its floating point registers - the zeroing out

- * of the buffer while the task was executing being used to ensure the values 

- * the buffer contains are not stale.

- *

- * When neither test task is in the Running state the buffers should contain

- * the unique values allocated before the tasks were created.  If so then

- * the floating point context has been maintained.  This check is performed

- * by the 'check' task (defined in main.c) by calling 

- * xAreFlopRegisterTestsStillRunning().

- *

- * The test tasks also increment a value each time they execute.

- * xAreFlopRegisterTestsStillRunning() also checks that this value has changed

- * since it last ran to ensure the test tasks are still getting processing time.

- */

-

-/* Standard includes files. */

-#include <string.h>

-

-/* Scheduler include files. */

-#include "FreeRTOS.h"

-#include "task.h"

-

-/*-----------------------------------------------------------*/

-

-#define flopNUMBER_OF_TASKS		2

-#define flopSTART_VALUE ( 0x1 )

-

-/*-----------------------------------------------------------*/

-

-/* The two test tasks as described at the top of this file. */

-static void vFlopTest1( void *pvParameters );

-static void vFlopTest2( void *pvParameters );

-

-/*-----------------------------------------------------------*/

-

-/* Buffers into which the flop registers will be saved.  There is a buffer for 

-both tasks. */

-static volatile unsigned long ulFlopRegisters[ flopNUMBER_OF_TASKS ][ portNO_FLOP_REGISTERS_TO_SAVE ];

-

-/* Variables that are incremented by the tasks to indicate that they are still

-running. */

-static volatile unsigned long ulFlop1CycleCount = 0, ulFlop2CycleCount = 0;

-

-/*-----------------------------------------------------------*/

-

-void vStartFlopRegTests( void )

-{

-TaskHandle_t xTaskJustCreated;

-unsigned portBASE_TYPE x, y, z = flopSTART_VALUE;

-

-	/* Fill the arrays into which the flop registers are to be saved with 

-	known values.  These are the values that will be written to the flop

-	registers when the tasks start, and as the tasks do not perform any

-	flop operations the values should never change.  Each position in the

-	buffer contains a different value so the flop context of each task

-	will be different. */

-	for( x = 0; x < flopNUMBER_OF_TASKS; x++ )

-	{

-		for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1); y++ )

-		{

-			ulFlopRegisters[ x ][ y ] = z;

-			z++;

-		}

-	}

-

-

-	/* Create the first task. */

-	xTaskCreate( vFlopTest1, "flop1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xTaskJustCreated );

-

-	/* The task	tag value is a value that can be associated with a task, but 

-	is not used by the scheduler itself.  Its use is down to the application so

-	it makes a convenient place in this case to store the pointer to the buffer

-	into which the flop context of the task will be stored.  The first created

-	task uses ulFlopRegisters[ 0 ], the second ulFlopRegisters[ 1 ]. */

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 0 ][ 0 ] ) );

-

-	/* Do the same for the second task. */

-	xTaskCreate( vFlopTest2, "flop2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xTaskJustCreated );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 1 ][ 0 ] ) );

-}

-/*-----------------------------------------------------------*/

-

-static void vFlopTest1( void *pvParameters )

-{

-	/* Just to remove compiler warning. */

-	( void ) pvParameters;

-

-	for( ;; )

-	{

-		/* The values from the buffer should have now been written to the flop

-		registers.  Clear the buffer to ensure the same values then get written

-		back the next time the task runs.  Being preempted during this memset

-		could cause the test to fail, hence the critical section. */

-		portENTER_CRITICAL();

-			memset( ( void * ) ulFlopRegisters[ 0 ], 0x00, ( portNO_FLOP_REGISTERS_TO_SAVE * sizeof( unsigned portBASE_TYPE ) ) );

-		portEXIT_CRITICAL();

-

-		/* We don't have to do anything other than indicate that we are 

-		still running. */

-		ulFlop1CycleCount++;

-		taskYIELD();

-	}

-}

-/*-----------------------------------------------------------*/

-

-static void vFlopTest2( void *pvParameters )

-{

-	/* Just to remove compiler warning. */

-	( void ) pvParameters;

-

-	for( ;; )

-	{

-		/* The values from the buffer should have now been written to the flop

-		registers.  Clear the buffer to ensure the same values then get written

-		back the next time the task runs. */

-		portENTER_CRITICAL();

-			memset( ( void * ) ulFlopRegisters[ 1 ], 0x00, ( portNO_FLOP_REGISTERS_TO_SAVE * sizeof( unsigned portBASE_TYPE ) ) );

-		portEXIT_CRITICAL();

-

-		/* We don't have to do anything other than indicate that we are 

-		still running. */

-		ulFlop2CycleCount++;

-		taskYIELD();

-	}

-}

-/*-----------------------------------------------------------*/

-

-portBASE_TYPE xAreFlopRegisterTestsStillRunning( void )

-{

-portBASE_TYPE xReturn = pdPASS;

-unsigned portBASE_TYPE x, y, z = flopSTART_VALUE;

-static unsigned long ulLastFlop1CycleCount = 0, ulLastFlop2CycleCount = 0;

-

-	/* Called from the 'check' task.

-	

-	The flop tasks cannot be currently running, check their saved registers

-	are as expected.  The tests tasks do not perform any flop operations so

-	their registers should be as per their initial setting. */

-	for( x = 0; x < flopNUMBER_OF_TASKS; x++ )

-	{

-		for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1 ); y++ )

-		{

-			if( ulFlopRegisters[ x ][ y ] != z )

-			{

-				xReturn = pdFAIL;

-				break;

-			}

-

-			z++;

-		}

-	}

-

-	/* Check both tasks have actually been swapped in and out since this function

-	last executed. */

-	if( ulFlop1CycleCount == ulLastFlop1CycleCount )

-	{

-		xReturn = pdFAIL;

-	}

-

-	if( ulFlop2CycleCount == ulLastFlop2CycleCount )

-	{

-		xReturn = pdFAIL;

-	}

-

-	ulLastFlop1CycleCount = ulFlop1CycleCount;

-	ulLastFlop2CycleCount = ulFlop2CycleCount;

-

-	return xReturn;

-}

-

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h
deleted file mode 100644
index ee587f0..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-#ifndef FLOP_REG_TEST_H

-#define FLOP_REG_TEST_H

-

-void vStartFlopRegTests( void );

-portBASE_TYPE xAreFlopRegisterTestsStillRunning( void );

-

-#endif

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c
deleted file mode 100644
index 32b4485..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c
+++ /dev/null
@@ -1,420 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-/*

- * Creates eight tasks, each of which loops continuously performing a

- * floating point calculation.

- *

- * All the tasks run at the idle priority and never block or yield.  This causes 

- * all eight tasks to time slice with the idle task.  Running at the idle priority 

- * means that these tasks will get pre-empted any time another task is ready to run

- * or a time slice occurs.  More often than not the pre-emption will occur mid 

- * calculation, creating a good test of the schedulers context switch mechanism - a 

- * calculation producing an unexpected result could be a symptom of a corruption in 

- * the context of a task.

- *

- * This file demonstrates the use of the task tag and traceTASK_SWITCHED_IN and

- * traceTASK_SWITCHED_OUT macros to save and restore the floating point context.

- */

-

-#include <stdlib.h>

-#include <math.h>

-

-/* Scheduler include files. */

-#include "FreeRTOS.h"

-#include "task.h"

-

-/* Demo program include files. */

-#include "flop.h"

-

-/* Misc. definitions. */

-#define mathSTACK_SIZE		configMINIMAL_STACK_SIZE

-#define mathNUMBER_OF_TASKS  ( 8 )

-

-/* Four tasks, each of which performs a different floating point calculation.  

-Each of the four is created twice. */

-static portTASK_FUNCTION_PROTO( vCompetingMathTask1, pvParameters );

-static portTASK_FUNCTION_PROTO( vCompetingMathTask2, pvParameters );

-static portTASK_FUNCTION_PROTO( vCompetingMathTask3, pvParameters );

-static portTASK_FUNCTION_PROTO( vCompetingMathTask4, pvParameters );

-

-/* These variables are used to check that all the tasks are still running.  If a 

-task gets a calculation wrong it will stop incrementing its check variable. */

-static volatile unsigned short usTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };

-

-/* Buffers into which the flop registers will be saved.  There is a buffer for 

-each task created within this file.  Zeroing out this array is the normal and

-safe option as this will cause the task to start with all zeros in its flop

-context. */

-static unsigned long ulFlopRegisters[ mathNUMBER_OF_TASKS ][ portNO_FLOP_REGISTERS_TO_SAVE ];

-

-/*-----------------------------------------------------------*/

-

-void vStartMathTasks( unsigned portBASE_TYPE uxPriority )

-{

-TaskHandle_t xTaskJustCreated;

-portBASE_TYPE x, y;

-

-	/* Place known values into the buffers into which the flop registers are 

-	to be saved.  This is for debug purposes only, it is not normally

-	required.  The last position in each array is left at zero as the status

-	register will be loaded from there. 

-	

-	It is intended that these values can be viewed being loaded into the

-	flop registers when a task is started - however the Insight debugger

-	does not seem to want to show the flop register values. */

-	for( x = 0; x < mathNUMBER_OF_TASKS; x++ )

-	{

-		for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1 ); y++ )

-		{

-			ulFlopRegisters[ x ][ y ] = ( x + 1 );

-		}

-	}

-

-	/* Create the first task - passing it the address of the check variable

-	that it is going to increment.  This check variable is used as an 

-	indication that the task is still running. */

-	xTaskCreate( vCompetingMathTask1, "Math1", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 0 ] ), uxPriority, &xTaskJustCreated );

-

-	/* The task	tag value is a value that can be associated with a task, but 

-	is not used by the scheduler itself.  Its use is down to the application so

-	it makes a convenient place in this case to store the pointer to the buffer

-	into which the flop context of the task will be stored.  The first created

-	task uses ulFlopRegisters[ 0 ], the second ulFlopRegisters[ 1 ], etc. */

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 0 ][ 0 ] ) );

-

-	/* Create another 7 tasks, allocating a buffer for each. */

-	xTaskCreate( vCompetingMathTask2, "Math2", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 1 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 1 ][ 0 ] ) );

-

-	xTaskCreate( vCompetingMathTask3, "Math3", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 2 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 2 ][ 0 ] ) );

-

-	xTaskCreate( vCompetingMathTask4, "Math4", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 3 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 3 ][ 0 ] ) );

-

-	xTaskCreate( vCompetingMathTask1, "Math5", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 4 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 4 ][ 0 ] ) );

-

-	xTaskCreate( vCompetingMathTask2, "Math6", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 5 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 5 ][ 0 ] ) );

-

-	xTaskCreate( vCompetingMathTask3, "Math7", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 6 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 6 ][ 0 ] ) );

-

-	xTaskCreate( vCompetingMathTask4, "Math8", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 7 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 7 ][ 0 ] ) );

-}

-/*-----------------------------------------------------------*/

-

-static portTASK_FUNCTION( vCompetingMathTask1, pvParameters )

-{

-volatile portFLOAT ff1, ff2, ff3, ff4;

-volatile unsigned short *pusTaskCheckVariable;

-volatile portFLOAT fAnswer;

-short sError = pdFALSE;

-

-	ff1 = 123.4567F;

-	ff2 = 2345.6789F;

-	ff3 = -918.222F;

-

-	fAnswer = ( ff1 + ff2 ) * ff3;

-

-	/* The variable this task increments to show it is still running is passed in 

-	as the parameter. */

-	pusTaskCheckVariable = ( unsigned short * ) pvParameters;

-

-	/* Keep performing a calculation and checking the result against a constant. */

-	for(;;)

-	{

-		ff1 = 123.4567F;

-		ff2 = 2345.6789F;

-		ff3 = -918.222F;

-

-		ff4 = ( ff1 + ff2 ) * ff3;

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-

-		/* If the calculation does not match the expected constant, stop the 

-		increment of the check variable. */

-		if( fabs( ff4 - fAnswer ) > 0.001F )

-		{

-			sError = pdTRUE;

-		}

-

-		if( sError == pdFALSE )

-		{

-			/* If the calculation has always been correct, increment the check 

-			variable so we know this task is still running okay. */

-			( *pusTaskCheckVariable )++;

-		}

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-

-	}

-}

-/*-----------------------------------------------------------*/

-

-static portTASK_FUNCTION( vCompetingMathTask2, pvParameters )

-{

-volatile portFLOAT ff1, ff2, ff3, ff4;

-volatile unsigned short *pusTaskCheckVariable;

-volatile portFLOAT fAnswer;

-short sError = pdFALSE;

-

-	ff1 = -389.38F;

-	ff2 = 32498.2F;

-	ff3 = -2.0001F;

-

-	fAnswer = ( ff1 / ff2 ) * ff3;

-

-

-	/* The variable this task increments to show it is still running is passed in 

-	as the parameter. */

-	pusTaskCheckVariable = ( unsigned short * ) pvParameters;

-

-	/* Keep performing a calculation and checking the result against a constant. */

-	for( ;; )

-	{

-		ff1 = -389.38F;

-		ff2 = 32498.2F;

-		ff3 = -2.0001F;

-

-		ff4 = ( ff1 / ff2 ) * ff3;

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-		

-		/* If the calculation does not match the expected constant, stop the 

-		increment of the check variable. */

-		if( fabs( ff4 - fAnswer ) > 0.001F )

-		{

-			sError = pdTRUE;

-		}

-

-		if( sError == pdFALSE )

-		{

-			/* If the calculation has always been correct, increment the check 

-			variable so we know

-			this task is still running okay. */

-			( *pusTaskCheckVariable )++;

-		}

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-	}

-}

-/*-----------------------------------------------------------*/

-

-static portTASK_FUNCTION( vCompetingMathTask3, pvParameters )

-{

-volatile portFLOAT *pfArray, fTotal1, fTotal2, fDifference;

-volatile unsigned short *pusTaskCheckVariable;

-const size_t xArraySize = 10;

-size_t xPosition;

-short sError = pdFALSE;

-

-	/* The variable this task increments to show it is still running is passed in 

-	as the parameter. */

-	pusTaskCheckVariable = ( unsigned short * ) pvParameters;

-

-	pfArray = ( portFLOAT * ) pvPortMalloc( xArraySize * sizeof( portFLOAT ) );

-

-	/* Keep filling an array, keeping a running total of the values placed in the 

-	array.  Then run through the array adding up all the values.  If the two totals 

-	do not match, stop the check variable from incrementing. */

-	for( ;; )

-	{

-		fTotal1 = 0.0F;

-		fTotal2 = 0.0F;

-

-		for( xPosition = 0; xPosition < xArraySize; xPosition++ )

-		{

-			pfArray[ xPosition ] = ( portFLOAT ) xPosition + 5.5F;

-			fTotal1 += ( portFLOAT ) xPosition + 5.5F;	

-		}

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-

-		for( xPosition = 0; xPosition < xArraySize; xPosition++ )

-		{

-			fTotal2 += pfArray[ xPosition ];

-		}

-

-		fDifference = fTotal1 - fTotal2;

-		if( fabs( fDifference ) > 0.001F )

-		{

-			sError = pdTRUE;

-		}

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-

-		if( sError == pdFALSE )

-		{

-			/* If the calculation has always been correct, increment the check 

-			variable so we know	this task is still running okay. */

-			( *pusTaskCheckVariable )++;

-		}

-	}

-}

-/*-----------------------------------------------------------*/

-

-static portTASK_FUNCTION( vCompetingMathTask4, pvParameters )

-{

-volatile portFLOAT *pfArray, fTotal1, fTotal2, fDifference;

-volatile unsigned short *pusTaskCheckVariable;

-const size_t xArraySize = 10;

-size_t xPosition;

-short sError = pdFALSE;

-

-	/* The variable this task increments to show it is still running is passed in 

-	as the parameter. */

-	pusTaskCheckVariable = ( unsigned short * ) pvParameters;

-

-	pfArray = ( portFLOAT * ) pvPortMalloc( xArraySize * sizeof( portFLOAT ) );

-

-	/* Keep filling an array, keeping a running total of the values placed in the 

-	array.  Then run through the array adding up all the values.  If the two totals 

-	do not match, stop the check variable from incrementing. */

-	for( ;; )

-	{

-		fTotal1 = 0.0F;

-		fTotal2 = 0.0F;

-

-		for( xPosition = 0; xPosition < xArraySize; xPosition++ )

-		{

-			pfArray[ xPosition ] = ( portFLOAT ) xPosition * 12.123F;

-			fTotal1 += ( portFLOAT ) xPosition * 12.123F;	

-		}

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-

-		for( xPosition = 0; xPosition < xArraySize; xPosition++ )

-		{

-			fTotal2 += pfArray[ xPosition ];

-		}

-

-		fDifference = fTotal1 - fTotal2;

-		if( fabs( fDifference ) > 0.001F )

-		{

-			sError = pdTRUE;

-		}

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-

-		if( sError == pdFALSE )

-		{

-			/* If the calculation has always been correct, increment the check 

-			variable so we know	this task is still running okay. */

-			( *pusTaskCheckVariable )++;

-		}

-	}

-}				 

-/*-----------------------------------------------------------*/

-

-/* This is called to check that all the created tasks are still running. */

-portBASE_TYPE xAreMathsTaskStillRunning( void )

-{

-/* Keep a history of the check variables so we know if they have been incremented 

-since the last call. */

-static unsigned short usLastTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };

-portBASE_TYPE xReturn = pdTRUE, xTask;

-

-	/* Check the maths tasks are still running by ensuring their check variables 

-	are still incrementing. */

-	for( xTask = 0; xTask < mathNUMBER_OF_TASKS; xTask++ )

-	{

-		if( usTaskCheck[ xTask ] == usLastTaskCheck[ xTask ] )

-		{

-			/* The check has not incremented so an error exists. */

-			xReturn = pdFALSE;

-		}

-

-		usLastTaskCheck[ xTask ] = usTaskCheck[ xTask ];

-	}

-

-	return xReturn;

-}

-

-

-

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/main.c b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/main.c
deleted file mode 100644
index 0e919ae..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/main.c
+++ /dev/null
@@ -1,719 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-/*

- * Creates all the demo application tasks, then starts the scheduler.  The WEB

- * documentation provides more details of the demo application tasks.

- * 

- * In addition to the standard demo tasks, the follow demo specific tasks are

- * create:

- *

- * The "Check" task.  This only executes every three seconds but has the highest 

- * priority so is guaranteed to get processor time.  Its main function is to 

- * check that all the other tasks are still operational.  Most tasks maintain 

- * a unique count that is incremented each time the task successfully completes 

- * its function.  Should any error occur within such a task the count is 

- * permanently halted.  The check task inspects the count of each task to ensure 

- * it has changed since the last time the check task executed.  If all the count 

- * variables have changed all the tasks are still executing error free, and the 

- * check task toggles the onboard LED.  Should any task contain an error at any time 

- * the LED toggle rate will change from 3 seconds to 500ms.

- *

- * The "Register Check" tasks.  These tasks fill the CPU registers with known

- * values, then check that each register still contains the expected value, the

- * discovery of an unexpected value being indicative of an error in the RTOS

- * context switch mechanism.  The register check tasks operate at low priority

- * so are switched in and out frequently.

- *

- */

-

-/* Scheduler includes. */

-#include "FreeRTOS.h"

-#include "task.h"

-

-/* Xilinx library includes. */

-#include "xcache_l.h"

-#include "xintc.h"

-

-/* Demo application includes. */

-#include "flash.h"

-#include "integer.h"

-#include "comtest2.h"

-#include "semtest.h"

-#include "BlockQ.h"

-#include "dynamic.h"

-#include "GenQTest.h"

-#include "QPeek.h"

-#include "blocktim.h"

-#include "death.h"

-#include "partest.h"

-#include "countsem.h"

-#include "recmutex.h"

-#include "flop.h"

-#include "flop-reg-test.h"

-

-/* Priorities assigned to the demo tasks. */

-#define mainCHECK_TASK_PRIORITY			( tskIDLE_PRIORITY + 4 )

-#define mainSEM_TEST_PRIORITY			( tskIDLE_PRIORITY + 2 )

-#define mainCOM_TEST_PRIORITY			( tskIDLE_PRIORITY + 1 )

-#define mainQUEUE_BLOCK_PRIORITY		( tskIDLE_PRIORITY + 1 )

-#define mainDEATH_PRIORITY 				( tskIDLE_PRIORITY + 1 )

-#define mainLED_TASK_PRIORITY			( tskIDLE_PRIORITY + 1 )

-#define mainGENERIC_QUEUE_PRIORITY		( tskIDLE_PRIORITY )

-#define mainQUEUE_POLL_PRIORITY			( tskIDLE_PRIORITY + 1 )

-#define mainFLOP_PRIORITY				( tskIDLE_PRIORITY )

-

-/* The first LED used by the COM test and check tasks respectively. */

-#define mainCOM_TEST_LED				( 4 )

-#define mainCHECK_TEST_LED				( 3 )

-

-/* The baud rate used by the comtest tasks is set by the hardware, so the

-baud rate parameters passed into the comtest initialisation has no effect. */

-#define mainBAUD_SET_IN_HARDWARE		( 0 )

-

-/* Delay periods used by the check task.  If no errors have been found then

-the check LED will toggle every mainNO_ERROR_CHECK_DELAY milliseconds.  If an

-error has been found at any time then the toggle rate will increase to 

-mainERROR_CHECK_DELAY milliseconds. */

-#define mainNO_ERROR_CHECK_DELAY		( ( TickType_t ) 3000 / portTICK_PERIOD_MS  )

-#define mainERROR_CHECK_DELAY			( ( TickType_t ) 500 / portTICK_PERIOD_MS  )

-

-

-/* 

- * The tasks defined within this file - described within the comments at the

- * head of this page. 

- */

-static void prvRegTestTask1( void *pvParameters );

-static void prvRegTestTask2( void *pvParameters );

-static void prvErrorChecks( void *pvParameters );

-

-/*

- * Called by the 'check' task to inspect all the standard demo tasks within

- * the system, as described within the comments at the head of this page.

- */

-static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void );

-

-/*

- * Perform any hardware initialisation required by the demo application.

- */

-static void prvSetupHardware( void );

-

-/*-----------------------------------------------------------*/

-

-/* xRegTestStatus will get set to pdFAIL by the regtest tasks if they

-discover an unexpected value. */

-static volatile unsigned portBASE_TYPE xRegTestStatus = pdPASS;

-

-/* Counters used to ensure the regtest tasks are still running. */

-static volatile unsigned long ulRegTest1Counter = 0UL, ulRegTest2Counter = 0UL;

-

-/*-----------------------------------------------------------*/

-

-int main( void )

-{

-

-	/* Must be called prior to installing any interrupt handlers! */

-	vPortSetupInterruptController();

-

-	/* In this case prvSetupHardware() just enables the caches and and

-	configures the IO ports for the LED outputs. */

-	prvSetupHardware();

-

-	/* Start the standard demo application tasks.  Note that the baud rate used

-	by the comtest tasks is set by the hardware, so the baud rate parameter

-	passed has no effect. */

-	vStartLEDFlashTasks( mainLED_TASK_PRIORITY );	

-	vStartIntegerMathTasks( tskIDLE_PRIORITY );

-	vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainBAUD_SET_IN_HARDWARE, mainCOM_TEST_LED );

-	vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );

-	vStartBlockingQueueTasks ( mainQUEUE_BLOCK_PRIORITY );	

-	vStartDynamicPriorityTasks();	

-	vStartGenericQueueTasks( mainGENERIC_QUEUE_PRIORITY );

-	vStartQueuePeekTasks();

-	vCreateBlockTimeTasks();

-	vStartCountingSemaphoreTasks();

-	vStartRecursiveMutexTasks();

-

-	#if ( configUSE_FPU == 1 )

-		vStartMathTasks( mainFLOP_PRIORITY );

-		vStartFlopRegTests();

-	#endif

-

-	/* Create the tasks defined within this file. */

-	xTaskCreate( prvRegTestTask1, "Regtest1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );

-	xTaskCreate( prvRegTestTask2, "Regtest2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );

-	xTaskCreate( prvErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );

-

-	/* The suicide tasks must be started last as they record the number of other

-	tasks that exist within the system.  The value is then used to ensure at run

-	time the number of tasks that exists is within expected bounds. */

-	vCreateSuicidalTasks( mainDEATH_PRIORITY );

-

-	/* Now start the scheduler.  Following this call the created tasks should

-	be executing. */	

-	vTaskStartScheduler();

-

-	/* vTaskStartScheduler() will only return if an error occurs while the 

-	idle task is being created. */

-	for( ;; );

-

-	return 0;

-}

-/*-----------------------------------------------------------*/

-

-static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void )

-{

-portBASE_TYPE lReturn = pdPASS;

-static unsigned long ulLastRegTest1Counter= 0UL, ulLastRegTest2Counter = 0UL;

-

-	/* The demo tasks maintain a count that increments every cycle of the task

-	provided that the task has never encountered an error.  This function 

-	checks the counts maintained by the tasks to ensure they are still being

-	incremented.  A count remaining at the same value between calls therefore

-	indicates that an error has been detected. */

-

-	if( xAreIntegerMathsTaskStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-

-	if( xAreComTestTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xAreSemaphoreTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xAreBlockingQueuesStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xIsCreateTaskStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xAreGenericQueueTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xAreQueuePeekTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-

-	if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-

-	if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-

-	#if ( configUSE_FPU == 1 )

-		if( xAreMathsTaskStillRunning() != pdTRUE )

-		{

-			lReturn = pdFAIL;

-		}

-

-		if( xAreFlopRegisterTestsStillRunning() != pdTRUE )

-		{

-			lReturn = pdFAIL;

-		}

-	#endif

-

-	/* Have the register test tasks found any errors? */

-	if( xRegTestStatus != pdPASS )

-	{

-		lReturn = pdFAIL;

-	}

-

-	/* Are the register test tasks still looping? */

-	if( ulLastRegTest1Counter == ulRegTest1Counter )

-	{

-		lReturn = pdFAIL;

-	}

-	else

-	{

-		ulLastRegTest1Counter = ulRegTest1Counter;

-	}

-

-	if( ulLastRegTest2Counter == ulRegTest2Counter )

-	{

-		lReturn = pdFAIL;

-	}

-	else

-	{

-		ulLastRegTest2Counter = ulRegTest2Counter;

-	}

-

-	return lReturn;

-}

-/*-----------------------------------------------------------*/

-

-static void prvErrorChecks( void *pvParameters )

-{

-TickType_t xDelayPeriod = mainNO_ERROR_CHECK_DELAY, xLastExecutionTime;

-volatile unsigned portBASE_TYPE uxFreeStack;

-

-	/* Just to remove compiler warning. */

-	( void ) pvParameters;

-

-	/* This call is just to demonstrate the use of the function - nothing is

-	done with the value.  You would expect the stack high water mark to be

-	lower (the function to return a larger value) here at function entry than

-	later following calls to other functions. */

-	uxFreeStack = uxTaskGetStackHighWaterMark( NULL );

-

-	/* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()

-	works correctly. */

-	xLastExecutionTime = xTaskGetTickCount();

-

-	/* Cycle for ever, delaying then checking all the other tasks are still

-	operating without error. */

-	for( ;; )

-	{

-		/* Again just for demo purposes - uxFreeStack should have a lower value

-		here than following the call to uxTaskGetStackHighWaterMark() on the

-		task entry. */

-		uxFreeStack = uxTaskGetStackHighWaterMark( NULL );

-

-		/* Wait until it is time to check again.  The time we wait here depends

-		on whether an error has been detected or not.  When an error is 

-		detected the time is shortened resulting in a faster LED flash rate. */

-		vTaskDelayUntil( &xLastExecutionTime, xDelayPeriod );

-

-		/* See if the other tasks are all ok. */

-		if( prvCheckOtherTasksAreStillRunning() != pdPASS )

-		{

-			/* An error occurred in one of the tasks so shorten the delay 

-			period - which has the effect of increasing the frequency of the

-			LED toggle. */

-			xDelayPeriod = mainERROR_CHECK_DELAY;

-		}

-

-		/* Flash! */

-		vParTestToggleLED( mainCHECK_TEST_LED );

-	}

-}

-/*-----------------------------------------------------------*/

-

-static void prvSetupHardware( void )

-{

-	XCache_EnableICache( 0x80000000 );

-	XCache_EnableDCache( 0x80000000 );

-

-	/* Setup the IO port for use with the LED outputs. */

-	vParTestInitialise();

-}

-/*-----------------------------------------------------------*/

-

-void prvRegTest1Pass( void )

-{

-	/* Called from the inline assembler - this cannot be static

-	otherwise it can get optimised away. */

-	ulRegTest1Counter++;

-}

-/*-----------------------------------------------------------*/

-

-void prvRegTest2Pass( void )

-{

-	/* Called from the inline assembler - this cannot be static

-	otherwise it can get optimised away. */

-	ulRegTest2Counter++;

-}

-/*-----------------------------------------------------------*/

-

-void prvRegTestFail( void )

-{

-	/* Called from the inline assembler - this cannot be static

-	otherwise it can get optimised away. */

-	xRegTestStatus = pdFAIL;

-}

-/*-----------------------------------------------------------*/

-

-static void prvRegTestTask1( void *pvParameters )

-{

-	/* Just to remove compiler warning. */

-	( void ) pvParameters;

-

-	/* The first register test task as described at the top of this file.  The

-	values used in the registers are different to those use in the second 

-	register test task.  Also, unlike the second register test task, this task

-	yields between setting the register values and subsequently checking the

-	register values. */

-	asm volatile

-	(

-		"RegTest1Start:					\n\t" \

-		"								\n\t" \

-		"	li		0, 301				\n\t" \

-		"	mtspr	256, 0	#USPRG0		\n\t" \

-		"	li		0, 501				\n\t" \

-		"	mtspr	8, 0	#LR			\n\t" \

-		"	li		0, 4				\n\t" \

-		"	mtspr	1, 0	#XER		\n\t" \

-		"								\n\t" \

-		"	li		0, 1				\n\t" \

-		"	li		2, 2				\n\t" \

-		"	li		3, 3				\n\t" \

-		"	li		4,	4				\n\t" \

-		"	li		5,	5				\n\t" \

-		"	li		6,	6				\n\t" \

-		"	li		7,	7				\n\t" \

-		"	li		8,	8				\n\t" \

-		"	li		9,	9				\n\t" \

-		"	li		10,	10				\n\t" \

-		"	li		11,	11				\n\t" \

-		"	li		12,	12				\n\t" \

-		"	li		13,	13				\n\t" \

-		"	li		14,	14				\n\t" \

-		"	li		15,	15				\n\t" \

-		"	li		16,	16				\n\t" \

-		"	li		17,	17				\n\t" \

-		"	li		18,	18				\n\t" \

-		"	li		19,	19				\n\t" \

-		"	li		20,	20				\n\t" \

-		"	li		21,	21				\n\t" \

-		"	li		22,	22				\n\t" \

-		"	li		23,	23				\n\t" \

-		"	li		24,	24				\n\t" \

-		"	li		25,	25				\n\t" \

-		"	li		26,	26				\n\t" \

-		"	li		27,	27				\n\t" \

-		"	li		28,	28				\n\t" \

-		"	li		29,	29				\n\t" \

-		"	li		30,	30				\n\t" \

-		"	li		31,	31				\n\t" \

-		"								\n\t" \

-		"	sc							\n\t" \

-		"	nop							\n\t" \

-		"								\n\t" \

-		"	cmpwi	0, 1				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	2, 2				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	3, 3				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	4, 4				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	5, 5				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	6, 6				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	7, 7				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	8, 8				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	9, 9				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	10, 10				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	11, 11				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	12, 12				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	13, 13				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	14, 14				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	15, 15				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	16, 16				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	17, 17				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	18, 18				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	19, 19				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	20, 20				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	21, 21				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	22, 22				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	23, 23				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	24, 24				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	25, 25				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	26, 26				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	27, 27				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	28, 28				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	29, 29				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	30, 30				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	31, 31				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"								\n\t" \

-		"	mfspr	0, 256	#USPRG0		\n\t" \

-		"	cmpwi	0, 301				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	mfspr	0, 8	#LR			\n\t" \

-		"	cmpwi	0, 501				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	mfspr	0, 1	#XER		\n\t" \

-		"	cmpwi	0, 4				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"								\n\t" \

-		"	bl prvRegTest1Pass			\n\t" \

-		"	b RegTest1Start				\n\t" \

-		"								\n\t" \

-		"RegTest1Fail:					\n\t" \

-		"								\n\t" \

-		"								\n\t" \

-		"	bl prvRegTestFail			\n\t" \

-		"	b RegTest1Start				\n\t" \

-	);

-}

-/*-----------------------------------------------------------*/

-

-static void prvRegTestTask2( void *pvParameters )

-{

-	/* Just to remove compiler warning. */

-	( void ) pvParameters;

-

-	/* The second register test task as described at the top of this file.  

-	Note that this task fills the registers with different values to the

-	first register test task. */

-	asm volatile

-	(

-		"RegTest2Start:					\n\t" \

-		"								\n\t" \

-		"	li		0, 300				\n\t" \

-		"	mtspr	256, 0	#USPRG0		\n\t" \

-		"	li		0, 500				\n\t" \

-		"	mtspr	8, 0	#LR			\n\t" \

-		"	li		0, 4				\n\t" \

-		"	mtspr	1, 0	#XER		\n\t" \

-		"								\n\t" \

-		"	li		0, 11				\n\t" \

-		"	li		2, 12				\n\t" \

-		"	li		3, 13				\n\t" \

-		"	li		4,	14				\n\t" \

-		"	li		5,	15				\n\t" \

-		"	li		6,	16				\n\t" \

-		"	li		7,	17				\n\t" \

-		"	li		8,	18				\n\t" \

-		"	li		9,	19				\n\t" \

-		"	li		10,	110				\n\t" \

-		"	li		11,	111				\n\t" \

-		"	li		12,	112				\n\t" \

-		"	li		13,	113				\n\t" \

-		"	li		14,	114				\n\t" \

-		"	li		15,	115				\n\t" \

-		"	li		16,	116				\n\t" \

-		"	li		17,	117				\n\t" \

-		"	li		18,	118				\n\t" \

-		"	li		19,	119				\n\t" \

-		"	li		20,	120				\n\t" \

-		"	li		21,	121				\n\t" \

-		"	li		22,	122				\n\t" \

-		"	li		23,	123				\n\t" \

-		"	li		24,	124				\n\t" \

-		"	li		25,	125				\n\t" \

-		"	li		26,	126				\n\t" \

-		"	li		27,	127				\n\t" \

-		"	li		28,	128				\n\t" \

-		"	li		29,	129				\n\t" \

-		"	li		30,	130				\n\t" \

-		"	li		31,	131				\n\t" \

-		"								\n\t" \

-		"	cmpwi	0, 11				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	2, 12				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	3, 13				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	4, 14				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	5, 15				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	6, 16				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	7, 17				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	8, 18				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	9, 19				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	10, 110				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	11, 111				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	12, 112				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	13, 113				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	14, 114				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	15, 115				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	16, 116				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	17, 117				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	18, 118				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	19, 119				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	20, 120				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	21, 121				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	22, 122				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	23, 123				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	24, 124				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	25, 125				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	26, 126				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	27, 127				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	28, 128				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	29, 129				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	30, 130				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	31, 131				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"								\n\t" \

-		"	mfspr	0, 256	#USPRG0		\n\t" \

-		"	cmpwi	0, 300				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	mfspr	0, 8	#LR			\n\t" \

-		"	cmpwi	0, 500				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	mfspr	0, 1	#XER		\n\t" \

-		"	cmpwi	0, 4				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"								\n\t" \

-		"	bl prvRegTest2Pass			\n\t" \

-		"	b RegTest2Start				\n\t" \

-		"								\n\t" \

-		"RegTest2Fail:					\n\t" \

-		"								\n\t" \

-		"								\n\t" \

-		"	bl prvRegTestFail			\n\t" \

-		"	b RegTest2Start				\n\t" \

-	);

-}

-/*-----------------------------------------------------------*/

-

-/* This hook function will get called if there is a suspected stack overflow.

-An overflow can cause the task name to be corrupted, in which case the task

-handle needs to be used to determine the offending task. */

-void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName );

-void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName )

-{

-/* To prevent the optimiser removing the variables. */

-volatile TaskHandle_t xTaskIn = xTask;

-volatile signed char *pcTaskNameIn = pcTaskName;

-

-	/* Remove compiler warnings. */

-	( void ) xTaskIn;

-	( void ) pcTaskNameIn;

-

-	/* The following three calls are simply to stop compiler warnings about the

-	functions not being used - they are called from the inline assembly. */

-	prvRegTest1Pass();

-	prvRegTest2Pass();

-	prvRegTestFail();

-

-	for( ;; );

-}

-

-

-

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
deleted file mode 100644
index 6311f14..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-

-/* Scheduler includes. */

-#include "FreeRTOS.h"

-

-/* Demo application includes. */

-#include "partest.h"

-

-/* Library includes. */

-#include "xparameters.h"

-#include "xgpio_l.h"

-

-/* Misc hardware specific definitions. */

-#define partstALL_AS_OUTPUT	0x00

-#define partstCHANNEL_1		0x01

-#define partstMAX_4BIT_LED	0x03

-

-/* The outputs are split into two IO sections, these variables maintain the 

-current value of either section. */

-static unsigned portBASE_TYPE uxCurrentOutput4Bit, uxCurrentOutput5Bit;

-

-/*-----------------------------------------------------------*/

-/*

- * Setup the IO for the LED outputs.

- */

-void vParTestInitialise( void )

-{

-	/* Set both sets of LED's on the demo board to outputs. */

-	XGpio_mSetDataDirection( XPAR_LEDS_4BIT_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT );

-	XGpio_mSetDataDirection( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT );

-

-	/* Start with all outputs off. */

-	uxCurrentOutput4Bit = 0;

-	XGpio_mSetDataReg( XPAR_LEDS_4BIT_BASEADDR, partstCHANNEL_1, 0x00 );

-	uxCurrentOutput5Bit = 0;

-	XGpio_mSetDataReg( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, 0x00 );

-}

-/*-----------------------------------------------------------*/

-

-void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )

-{

-unsigned portBASE_TYPE uxBaseAddress, *puxCurrentValue;

-

-	portENTER_CRITICAL();

-	{

-		/* Which IO section does the LED being set/cleared belong to?  The

-		4 bit or 5 bit outputs? */

-		if( uxLED <= partstMAX_4BIT_LED )

-		{

-			uxBaseAddress = XPAR_LEDS_4BIT_BASEADDR;

-			puxCurrentValue = &uxCurrentOutput5Bit;

-		}	

-		else

-		{

-			uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR;

-			puxCurrentValue = &uxCurrentOutput4Bit;

-			uxLED -= partstMAX_4BIT_LED;

-		}

-

-		/* Setup the bit mask accordingly. */

-		uxLED = 0x01 << uxLED;

-

-		/* Maintain the current output value. */

-		if( xValue )

-		{

-			*puxCurrentValue |= uxLED;

-		}

-		else

-		{

-			*puxCurrentValue &= ~uxLED;

-		}

-

-		/* Write the value to the port. */

-		XGpio_mSetDataReg( uxBaseAddress, partstCHANNEL_1, *puxCurrentValue );

-	}

-	portEXIT_CRITICAL();

-}

-/*-----------------------------------------------------------*/

-

-void vParTestToggleLED( unsigned portBASE_TYPE uxLED )

-{

-unsigned portBASE_TYPE uxBaseAddress, *puxCurrentValue;

-

-	portENTER_CRITICAL();

-	{

-		/* Which IO section does the LED being toggled belong to?  The

-		4 bit or 5 bit outputs? */

-		if( uxLED <= partstMAX_4BIT_LED )

-		{

-

-			uxBaseAddress = XPAR_LEDS_4BIT_BASEADDR;

-			puxCurrentValue = &uxCurrentOutput5Bit;

-		}	

-		else

-		{

-			uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR;

-			puxCurrentValue = &uxCurrentOutput4Bit;

-			uxLED -= partstMAX_4BIT_LED;

-		}

-

-		/* Setup the bit mask accordingly. */

-		uxLED = 0x01 << uxLED;

-

-		/* Maintain the current output value. */

-		if( *puxCurrentValue & uxLED )

-		{

-			*puxCurrentValue &= ~uxLED;

-		}

-		else

-		{

-			*puxCurrentValue |= uxLED;

-		}

-

-		/* Write the value to the port. */

-		XGpio_mSetDataReg(uxBaseAddress, partstCHANNEL_1, *puxCurrentValue );

-	}

-	portEXIT_CRITICAL();

-}

-

-

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
deleted file mode 100644
index 5e390a6..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-

-/* 

-	BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR UART

-*/

-

-/* Scheduler includes. */

-#include "FreeRTOS.h"

-#include "queue.h"

-#include "task.h"

-

-/* Demo application includes. */

-#include "serial.h"

-

-/* Library includes. */

-#include "xparameters.h"

-#include "xuartlite.h"

-#include "xuartlite_l.h"

-

-/*-----------------------------------------------------------*/

-

-/* Queues used to hold received characters, and characters waiting to be

-transmitted. */

-static QueueHandle_t xRxedChars; 

-static QueueHandle_t xCharsForTx; 

-

-/* Structure that maintains information on the UART being used. */

-static XUartLite xUART;

-

-/*

- * Sample UART interrupt handler.  Note this is used to demonstrate the kernel

- * features and test the port - it is not intended to represent an efficient

- * implementation.

- */

-static void vSerialISR( XUartLite *pxUART );

-

-/*-----------------------------------------------------------*/

-

-xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )

-{

-	/* NOTE: The baud rate used by this driver is determined by the hardware

-	parameterization of the UART Lite peripheral, and the baud value passed to

-	this function has no effect. */

-	( void ) ulWantedBaud;

-

-	/* Create the queues used to hold Rx and Tx characters. */

-	xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );

-	xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );

-

-	/* Only initialise the UART if the queues were created correctly. */

-	if( ( xRxedChars != NULL ) && ( xCharsForTx != NULL ) )

-	{

-

-		XUartLite_Initialize( &xUART, XPAR_RS232_UART_DEVICE_ID );

-		XUartLite_ResetFifos( &xUART );

-		XUartLite_DisableInterrupt( &xUART );

-

-		if( xPortInstallInterruptHandler( XPAR_XPS_INTC_0_RS232_UART_INTERRUPT_INTR, ( XInterruptHandler )vSerialISR, (void *)&xUART ) == pdPASS )

-		{

-			/* xPortInstallInterruptHandler() could fail if 

-			vPortSetupInterruptController() has not been called prior to this 

-			function. */

-			XUartLite_EnableInterrupt( &xUART );

-		}

-	}

-	

-	/* There is only one port so the handle is not used. */

-	return ( xComPortHandle ) 0;

-}

-/*-----------------------------------------------------------*/

-

-signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime )

-{

-	/* The port handle is not required as this driver only supports one UART. */

-	( void ) pxPort;

-

-	/* Get the next character from the buffer.  Return false if no characters

-	are available, or arrive before xBlockTime expires. */

-	if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )

-	{

-		return pdTRUE;

-	}

-	else

-	{

-		return pdFALSE;

-	}

-}

-/*-----------------------------------------------------------*/

-

-signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime )

-{

-portBASE_TYPE xReturn = pdTRUE;

-

-	/* Just to remove compiler warning. */

-	( void ) pxPort;

-

-	portENTER_CRITICAL();

-	{

-		/* If the UART FIFO is full we can block posting the new data on the

-		Tx queue. */

-		if( XUartLite_mIsTransmitFull( XPAR_RS232_UART_BASEADDR ) )

-		{

-			if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )

-			{

-				xReturn = pdFAIL;

-			}

-		}

-		/* Otherwise, if there is data already in the queue we should add the

-		new data to the back of the queue to ensure the sequencing is 

-		maintained. */

-		else if( uxQueueMessagesWaiting( xCharsForTx ) )

-		{

-			if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )

-			{

-				xReturn = pdFAIL;

-			}			

-		}

-		/* If the UART FIFO is not full and there is no data already in the

-		queue we can write directly to the FIFO without disrupting the 

-		sequence. */

-		else

-		{

-			XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cOutChar );

-		}

-	}

-	portEXIT_CRITICAL();

-

-	return xReturn;

-}

-/*-----------------------------------------------------------*/

-

-void vSerialClose( xComPortHandle xPort )

-{

-	/* Not supported as not required by the demo application. */

-	( void ) xPort;

-}

-/*-----------------------------------------------------------*/

-

-static void vSerialISR( XUartLite *pxUART )

-{

-unsigned long ulISRStatus;

-portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE, lDidSomething;

-char cChar;

-

-	/* Just to remove compiler warning. */

-	( void ) pxUART;

-

-	do

-	{

-		lDidSomething = pdFALSE;

-

-		ulISRStatus = XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_STATUS_REG_OFFSET );

-

-		if( ( ulISRStatus & XUL_SR_RX_FIFO_VALID_DATA ) != 0 )

-		{

-			/* A character is available - place it in the queue of received

-			characters.  This might wake a task that was blocked waiting for 

-			data. */

-			cChar = ( char ) XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_RX_FIFO_OFFSET );

-			xQueueSendFromISR( xRxedChars, &cChar, &xHigherPriorityTaskWoken );

-			lDidSomething = pdTRUE;

-		}

-		

-		if( ( ulISRStatus & XUL_SR_TX_FIFO_EMPTY ) != 0 )

-		{

-			/* There is space in the FIFO - if there are any characters queue for

-			transmission they can be sent to the UART now.  This might unblock a

-			task that was waiting for space to become available on the Tx queue. */

-			if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xHigherPriorityTaskWoken ) == pdTRUE )

-			{

-				XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cChar );

-				lDidSomething = pdTRUE;

-			}			

-		}

-	} while( lDidSomething == pdTRUE );

-

-	/* If we woke any tasks we may require a context switch. */

-	if( xHigherPriorityTaskWoken )

-	{

-		portYIELD_FROM_ISR();

-	}

-}

-

-

-

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/ReadMe.txt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/ReadMe.txt
new file mode 100644
index 0000000..ad84b27
--- /dev/null
+++ b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/ReadMe.txt
@@ -0,0 +1,3 @@
+If you need the demo that used to be in this directory then download FreeRTOS V8.2.3

+from http://sourceforge.net/projects/freertos/files/FreeRTOS/

+

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl
deleted file mode 100644
index e3f4c3f..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl
+++ /dev/null
@@ -1,211 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-                
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-			
-<!-- ======================= DEF BLOCK =================================== -->
-	
-<xsl:template name="Define_BifTypes">
-	
-	<xsl:for-each select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR">
-		
-		<xsl:call-template name="Define_BifType"> 
-			<xsl:with-param name="iBusType"    select="@BUSSTD"/>
-		</xsl:call-template>
-		
-		<xsl:call-template name="Define_BifBusConnectors"> 
-			<xsl:with-param name="iBusType"    select="@BUSSTD"/>
-		</xsl:call-template>
-		
-	</xsl:for-each>
-	
-<!--	
-	<xsl:message>The color of bus  <xsl:value-of select="@BUSSTD"/> is <xsl:value-of select="@RGB"/></xsl:message>
-	<xsl:message>The OPB Bus color is  <xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[@BUSSTD = 'OPB']/@RGB"/> </xsl:message>
--->	
-</xsl:template>	
-	
-
-<xsl:template name="Define_BifType"> 
-	
-	<xsl:param name="iBusType"    select="'OPB'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-			
-    <symbol id="{$iBusType}_Bif">
-		<rect x="0"  
-			  y="0" 
-			  rx="3"
-			  ry="3"
-			  width= "{$BIF_W}" 
-			  height="{$BIF_H}" 
-			  style="fill:{$busColor_}; stroke:black; stroke-width:1"/> 
-	</symbol>
-	
-</xsl:template>
-
-<xsl:template name="Define_BifBusConnectors"> 
-	
-	<xsl:param name="iBusType"    select="'OPB'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="busColor_lt_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="bifc_wi_" select="ceiling($BIFC_W div 3)"/>
-	<xsl:variable name="bifc_hi_" select="ceiling($BIFC_H div 3)"/>
-	
-    <symbol id="{$iBusType}_busconn_MASTER">
-		<rect x="0"  
-			  y="0" 
-			  width= "{$BIFC_W}" 
-			  height="{$BIFC_H}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<rect x="{$BIFC_dx + 0.5}"  
-			  y="{$BIFC_dy}" 
-			  width= "{$BIFC_Wi}" 
-			  height="{$BIFC_Hi}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-	</symbol>
-	
-    <symbol id="{$iBusType}_busconn_INITIATOR">
-		<rect x="0"  
-			  y="0" 
-			  width= "{$BIFC_W}" 
-			  height="{$BIFC_H}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<rect x="{$BIFC_dx + 0.5}"  
-			  y="{$BIFC_dy}" 
-			  width= "{$BIFC_Wi}" 
-			  height="{$BIFC_Hi}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-	</symbol>
-	
-    <symbol id="{$iBusType}_busconn_SLAVE">
-		<circle 
-			  cx="{ceiling($BIFC_W div 2)}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_W  div 2)}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<circle 
-			  cx="{ceiling($BIFC_W div 2) + 0.5}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_Wi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-	</symbol>
-	
-    <symbol id="{$iBusType}_busconn_TARGET">
-		<circle 
-			  cx="{ceiling($BIFC_W div 2)}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_W  div 2)}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<circle 
-			  cx="{ceiling($BIFC_W div 2) + 0.5}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_Wi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-	</symbol>
-	
-	
-    <symbol id="{$iBusType}_busconn_MASTER_SLAVE">
-		<circle 
-			  cx="{ceiling($BIFC_W div 2)}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_W  div 2)}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<circle 
-			  cx="{ceiling($BIFC_W div 2) + 0.5}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_Wi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-			  
-		<rect x="0"  
-			  y="{ceiling($BIFC_H div 2)}" 
-			  width= "{$BIFC_W}" 
-			  height="{ceiling($BIFC_H div 2)}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<rect x="{$BIFC_dx + 0.5}"  
-			  y="{ceiling($BIFC_H div 2)}" 
-			  width= "{$BIFC_Wi}" 
-			  height="{ceiling($BIFC_Hi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-			  
-	</symbol>
-
-    <symbol id="{$iBusType}_busconn_MONITOR">
-		
-		<rect x="0"  
-			  y="0.5" 
-			  width= "{$BIFC_W}" 
-			  height="{ceiling($BIFC_Hi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-			  
-		<rect x="0"  
-			  y="{ceiling($BIFC_H div 2) + 4}" 
-			  width= "{$BIFC_W}" 
-			  height="{ceiling($BIFC_Hi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-			  
-	</symbol>
-	
-    <symbol id="{$iBusType}_busconn_TRANSPARENT">
-    
-		<circle 
-			  cx="{ceiling($BIFC_W div 2)}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_W  div 2)}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<circle 
-			  cx="{ceiling($BIFC_W div 2) + 0.5}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_Wi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-		
-	</symbol>
-	
-    <symbol id="{$iBusType}_busconn_">
-    
-		<circle 
-			  cx="{ceiling($BIFC_W div 2)}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_W  div 2)}" 
-			  style="fill:{$COL_WHITE}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<circle 
-			  cx="{ceiling($BIFC_W div 2) + 0.5}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_Wi div 2)}" 
-			  style="fill:{$COL_WHITE}; stroke:none;"/> 
-		
-	</symbol>
-	
-	
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl
deleted file mode 100644
index a4efce5..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-           
-<xsl:variable name="COL_RED"        select="'#AA0000'"/>
-<xsl:variable name="COL_GRAY"       select="'#E1E1E1'"/>
-<xsl:variable name="COL_BLACK"      select="'#000000'"/>
-<xsl:variable name="COL_WHITE"      select="'#FFFFFF'"/>
-<xsl:variable name="COL_YELLOW"     select="'#FFFFDD'"/>
-<xsl:variable name="COL_YELLOW_LT"  select="'#FFFFEE'"/>				
-				
-<xsl:variable name="COL_BG"          select="'#CCCCCC'"/>				
-<xsl:variable name="COL_BG_LT"       select="'#EEEEEE'"/>				
-<xsl:variable name="COL_BG_UNK"      select="'#DDDDDD'"/>				
-	
-<xsl:variable name="COL_PROC_BG"     select="'#FFCCCC'"/>				
-<xsl:variable name="COL_PROC_BG_MB"  select="'#222222'"/>				
-<xsl:variable name="COL_PROC_BG_PP"  select="'#90001C'"/>				
-<xsl:variable name="COL_PROC_BG_USR" select="'#666699'"/>				
-	
-<xsl:variable name="COL_MPMC_BG"     select="'#8B0800'"/>
-	
-<xsl:variable name="COL_MOD_BG"      select="'#F0F0F0'"/>				
-<xsl:variable name="COL_MOD_SPRT"    select="'#888888'"/>
-<xsl:variable name="COL_MOD_MPRT"    select="'#888888'"/>
-
-<xsl:variable name="COL_INTR_0"      select="'#FF9900'"/>
-<xsl:variable name="COL_INTR_1"      select="'#00CCCC'"/>
-<xsl:variable name="COL_INTR_2"      select="'#33FF33'"/>
-<xsl:variable name="COL_INTR_3"      select="'#FF00CC'"/>
-<xsl:variable name="COL_INTR_4"      select="'#99FF33'"/>
-<xsl:variable name="COL_INTR_5"      select="'#0066CC'"/>
-<xsl:variable name="COL_INTR_6"      select="'#9933FF'"/>
-<xsl:variable name="COL_INTR_7"      select="'#3300FF'"/>
-<xsl:variable name="COL_INTR_8"      select="'#00FF33'"/>
-<xsl:variable name="COL_INTR_9"      select="'#FF3333'"/>
-
-
-<xsl:variable name="COL_IORING"     select="'#000088'"/>				
-<xsl:variable name="COL_IORING_LT"  select="'#CCCCFF'"/>				
-<xsl:variable name="COL_SYSPRT"     select="'#0000BB'"/>		        
-	
-	
-<xsl:variable name="COL_BUSSTDS">
-	
-	<BUSCOLOR BUSSTD="XIL"        RGB="#990066" RGB_LT="#CC3399"/>
-	<BUSCOLOR BUSSTD="OCM" 		  RGB="#0000DD" RGB_LT="#9999DD"/>
-	<BUSCOLOR BUSSTD="OPB"        RGB="#339900" RGB_LT="#CCDDCC"/>
-	<BUSCOLOR BUSSTD="LMB"        RGB="#7777FF" RGB_LT="#DDDDFF"/>
-	<BUSCOLOR BUSSTD="FSL"        RGB="#CC00CC" RGB_LT="#FFBBFF"/>
-	<BUSCOLOR BUSSTD="DCR"        RGB="#6699FF" RGB_LT="#BBDDFF"/>
-	<BUSCOLOR BUSSTD="FCB"        RGB="#8C00FF" RGB_LT="#CCCCFF"/>
-	<BUSCOLOR BUSSTD="PLB"        RGB="#FF5500" RGB_LT="#FFBB00"/>
-	<BUSCOLOR BUSSTD="PLBV46"     RGB="#BB9955" RGB_LT="#FFFFDD"/>
-	<BUSCOLOR BUSSTD="PLBV46_P2P" RGB="#BB9955" RGB_LT="#FFFFDD"/>
-	
-<!--	
-	<BUSCOLOR BUSSTD="PLBV46"     RGB="#9966FF" RGB_LT="#CCCCFF"/>
-	<BUSCOLOR BUSSTD="PLBV46_P2P" RGB="#9966FF" RGB_LT="#CCCCFF"/>
-	<BUSCOLOR BUSSTD="PLB"        RGB="#FFAA33" RGB_LT="#FFEE33"/>
-	<BUSCOLOR BUSSTD="PLBV46"     RGB="#FF5500" RGB_LT="#FFBB00"/>
-	<BUSCOLOR BUSSTD="PLBV46_P2P" RGB="#FF5500" RGB_LT="#FFBB00"/>
--->	
-	
-	<BUSCOLOR BUSSTD="TRS"         RGB="#009999" RGB_LT="#00CCCC"/>
-	<BUSCOLOR BUSSTD="TRANS"       RGB="#009999" RGB_LT="#00CCCC"/>
-	<BUSCOLOR BUSSTD="TRANSPARENT" RGB="#009999" RGB_LT="#00CCCC"/>
-
-	<BUSCOLOR BUSSTD="TARGET"      RGB="#009999" RGB_LT="#00CCCC"/>
-	<BUSCOLOR BUSSTD="INITIATOR"   RGB="#009999" RGB_LT="#00CCCC"/>
-	
-	<BUSCOLOR BUSSTD="KEY" 		   RGB="#444444" RGB_LT="#888888"/>
-	
-</xsl:variable>
-	
-<xsl:template name="BusType2Color">
-	<xsl:param name="iBusType"  select="'OPB'"/>
-	
-	<xsl:choose>
-		<xsl:when test="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusType)]/@RGB">
-			<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusType)]/@RGB"/>
-		</xsl:when>
-		<xsl:otherwise>
-			<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = 'TRS')]/@RGB"/>
-		</xsl:otherwise>
-	</xsl:choose>		
-</xsl:template>	
-	
-	
-<xsl:template name="BusType2LightColor">
-	<xsl:param name="iBusType"  select="'OPB'"/>
-	
-<!--	
-	<xsl:message>The color of bus  <xsl:value-of select="$busType"/> is <xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $busType)]/@RGB"/>
--->	
-		
-	<xsl:choose>
-		<xsl:when test="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusType)]/@RGB_LT">
-			<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusType)]/@RGB_LT"/>
-		</xsl:when>
-		<xsl:otherwise>
-			<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = 'TRS')]/@RGB_LT"/>
-		</xsl:otherwise>
-	</xsl:choose>		
-</xsl:template>	
-		
-
-<xsl:template name="intcIdx2Color">
-	<xsl:param name="iIntcIdx"  select="'0'"/>
-
-	<xsl:variable name="idx_" select="$iIntcIdx mod 9"/>
-	
-	<xsl:choose>
-		<xsl:when test="$idx_ = '0'"><xsl:value-of select="$COL_INTR_0"/></xsl:when>
-		<xsl:when test="$idx_ = '1'"><xsl:value-of select="$COL_INTR_1"/></xsl:when>
-		<xsl:when test="$idx_ = '2'"><xsl:value-of select="$COL_INTR_2"/></xsl:when>
-		<xsl:when test="$idx_ = '3'"><xsl:value-of select="$COL_INTR_3"/></xsl:when>
-		<xsl:when test="$idx_ = '4'"><xsl:value-of select="$COL_INTR_4"/></xsl:when>
-		<xsl:when test="$idx_ = '5'"><xsl:value-of select="$COL_INTR_5"/></xsl:when>
-		<xsl:when test="$idx_ = '6'"><xsl:value-of select="$COL_INTR_6"/></xsl:when>
-		<xsl:when test="$idx_ = '7'"><xsl:value-of select="$COL_INTR_7"/></xsl:when>
-		<xsl:when test="$idx_ = '8'"><xsl:value-of select="$COL_INTR_8"/></xsl:when>
-		<xsl:when test="$idx_ = '9'"><xsl:value-of select="$COL_INTR_9"/></xsl:when>
-		<xsl:otherwise>
-			<xsl:value-of select="$COL_INTR_0"/>	
-		</xsl:otherwise>
-	</xsl:choose>
-</xsl:template>
-
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css
deleted file mode 100644
index bde7995..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css
+++ /dev/null
@@ -1,329 +0,0 @@
-	text.busintlabel {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  italic;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mpmctitle {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   16pt; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Arial Verdana Helvetica sans-serif;
-	}
-	
-	text.mpmcbiflabel {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-
-	}
-
-	text.buslabel {
-		fill:        #CC3333;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-			
-	text.iplabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: 800;
-		text-anchor: middle;
-		font-family: Courier Arial Helvetica sans-serif;
-	}
-		
-	text.iptype {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.ipclass {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-
-	text.procclass {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-		
-		
-	text.portlabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.ipdbiflbl {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: bold;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-		
-	text.mmMHeader {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mmSHeader {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-
-
-	text.dbglabel {
-		fill:        #555555;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-
-	text.iopnumb {
-		fill:        #555555;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.ioplblgrp {
-		fill:        #000088;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-
-	tspan.iopgrp {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		baseline-shift:super;
-		font-family: Arial Courier san-serif;
-	}
-
-
-	text.biflabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-
-	}
-
-	text.p2pbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    10pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		writing-mode: tb;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mpbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    6pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		writing-mode: tb;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-
-	text.sharedbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    10pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-
-	text.bciplabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Courier Arial Helvetica sans-serif;
-	}
-		
-	text.bciptype {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.splitbustxt {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: sans-serif;
-	}
-
-	text.horizp2pbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    6pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-
-
-	text.keytitle {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   12pt; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.keyheader {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   10pt; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.keylabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.keylblul {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: start;
-		text-decoration: underline;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.specsheader {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   10pt; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.specsvalue {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.specsvaluemid {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.intrsymbol {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Arial Helvetica sans-serif;
-	}
-
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl
deleted file mode 100644
index 90ba612..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl
+++ /dev/null
@@ -1,2774 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-                
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-	
-	
-<!-- 
-		 ===========================================================
-			Handle Bucket connections to the shared busses.
-		 ===========================================================
--->		
-	
-<xsl:template name="BCLaneSpace_BucketToSharedBus">	
-	
-	<xsl:param name="iBusStd"           select="'NONE'"/>	
-	<xsl:param name="iBusName"          select="'NONE'"/>	
-	<xsl:param name="iBifRank"          select="'NONE'"/>	
-	<xsl:param name="iStackToEast"      select="'NONE'"/>	
-	<xsl:param name="iStackToWest"      select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W"    select="0"/>	
-	<xsl:param name="iStackToWest_W"    select="0"/>	
-	<xsl:param name="iLaneInSpace_X"    select="0"/>	
-	<xsl:param name="iSpaceSharedBus_Y" select="0"/>	
-	
-<!--	
-	<xsl:message>Stack To East <xsl:value-of select="$iStackToEast"/></xsl:message>
-	<xsl:message>Stack to West <xsl:value-of select="$iStackToWest"/></xsl:message>
-	<xsl:message>Stack to East Width <xsl:value-of select="$iStackToEast_W"/></xsl:message>
-	<xsl:message>Stack to West Width <xsl:value-of select="$iStackToWest_W"/></xsl:message>
-	<xsl:message>Shared Bus Y <xsl:value-of select="$iSpaceSharedBus_Y"/></xsl:message>
-	<xsl:message>Lane in space X <xsl:value-of select="$iLaneInSpace_X"/></xsl:message>
--->	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="sbs_idx_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE= $iBusName)]/@BUSINDEX"/>
-	<xsl:variable name="sbs_name_" select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $sbs_idx_)]/@BUSNAME"/>
-					
-	<xsl:variable name="sbs_bc_y_" select="($iSpaceSharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H))"/>
-					
-	<xsl:variable name="bktshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $sbs_idx_)]/@STACK_HORIZ_INDEX"/>
-	<xsl:variable name="bktshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $sbs_idx_)]/@SHAPE_VERTI_INDEX"/>
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>
-	
-<!--	
-	<xsl:message>Ext Shape to West <xsl:value-of select="$extSpaceWest_W_"/></xsl:message>
-	<xsl:message>Ext Shape to East <xsl:value-of select="$extSpaceEast_W_"/></xsl:message>
--->	
-	<xsl:variable name="bktshp_Y_">
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$bktshp_hori_idx_"/>
-			<xsl:with-param name="iVertiIdx"  select="$bktshp_vert_idx_"/>
-		</xsl:call-template>
-	</xsl:variable>
-						
-	<xsl:variable name="sbsStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-				
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:if test="($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_)">
-					<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-				</xsl:if>	
-				
-				<xsl:if test="not($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_)">0</xsl:if>	
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="vert_line_x_"   select="($iLaneInSpace_X  +  ceiling($BLKD_BIFC_W div 2))"/>
-	<xsl:variable name="vert_line_y1_"  select="($iSpaceSharedBus_Y   + ($sbs_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_BIFC_W div 2))"/>
-	<xsl:variable name="vert_line_y2_"  select="($bktshp_Y_ + ceiling($BLKD_MOD_W div 2) + $sbsStack_H_diff_)"/>
-	<xsl:variable name="bcInSpace_X_"   select="($iLaneInSpace_X  +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-	
-	
-<!--	
-	<xsl:message>Shared Bus Y <xsl:value-of select="$G_SharedBus_Y"/></xsl:message>
-	<xsl:message>Vert Bus Y <xsl:value-of select="$vert_line_y1_"/></xsl:message>
-	<xsl:message>vert y1 <xsl:value-of select="$vert_line_y1_"/></xsl:message>
-	<xsl:message>vert y2 <xsl:value-of select="$vert_line_y2_"/></xsl:message>
--->	
-	
-	<xsl:variable name="horz_line_y_"   select="$vert_line_y2_"/>
-	<xsl:variable name="horz_line_x1_"  select="$vert_line_x_"/>
-	<xsl:variable name="horz_line_x2_"  select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_)"/>
-	
-	<xsl:variable name="v_bus_ul_x_"   select="$vert_line_x_"/>
-	<xsl:variable name="v_bus_ul_y_"   select="$vert_line_y1_"/>
-	<xsl:variable name="v_bus_width_"  select="$BLKD_P2P_BUS_W"/>
-		
-	<xsl:variable name="v_bus_height_" select="(($vert_line_y2_ - $vert_line_y1_) - ceiling($BLKD_BIFC_H div 2))"/>
-	
-	<xsl:variable name="h_bus_ul_x_"   select="$v_bus_ul_x_"/>
-	<xsl:variable name="h_bus_ul_y_"   select="$vert_line_y2_   - $BLKD_BIFC_H + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-	<xsl:variable name="h_bus_width_"  select="ceiling($space_W_ div 2) + $extSpaceEast_W_"/>
-	<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-	
-<!--	
-	<xsl:variable name="h_bus_width_"  select="($space_W_ + ceiling(($extSpaceWest_W_ + $extSpaceEast_W_) div 2) - $BLKD_BIFC_W)"/>
-	<xsl:message>v bus x <xsl:value-of select="$v_bus_ul_x_"/></xsl:message>
-	<xsl:message>v bus y <xsl:value-of select="$v_bus_ul_y_"/></xsl:message>
-	<xsl:message>v bus w <xsl:value-of select="$v_bus_width_"/></xsl:message>
-	<xsl:message>v bus y1 <xsl:value-of select="$vert_line_y1_"/></xsl:message>
-	<xsl:message>v bus y2 <xsl:value-of select="$vert_line_y2_"/></xsl:message>
-	<xsl:message>v bus h <xsl:value-of select="$v_bus_height_"/></xsl:message>
-	<xsl:message>h bus w <xsl:value-of select="$h_bus_width_"/></xsl:message>
--->	
-	
-	
-	<!-- Draw rectangular parts of the bus -->
-	<rect x="{$v_bus_ul_x_}" 
-	  	  y="{$v_bus_ul_y_ - 2}"  
-	 	  width= "{$v_bus_width_}" 
-	 	  height="{$v_bus_height_}" 
-	 	  style="stroke:none; fill:{$busColor_}"/>
-	
-	<rect x="{$h_bus_ul_x_}" 
-	  	  y="{$h_bus_ul_y_ - 5}"  
-	 	  width= "{$h_bus_width_}" 
-	 	  height="{$h_bus_height_}" 
-	 	  style="stroke:none; fill:{$busColor_}"/>
-<!--	
--->
-		
-</xsl:template>					
-	
-<!--
-		 ===========================================================
-			Handle Processor's Shared bus connections.
-		 ===========================================================
--->
-	
-<xsl:template name="BCLaneSpace_ProcBifToSharedBus">	
-	
-	<xsl:param name="iBusStd"           select="'NONE'"/>	
-	<xsl:param name="iBusName"          select="'NONE'"/>	
-	<xsl:param name="iBifRank"          select="'NONE'"/>	
-	<xsl:param name="iStackToEast"      select="'NONE'"/>	
-	<xsl:param name="iStackToWest"      select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W"    select="0"/>	
-	<xsl:param name="iStackToWest_W"    select="0"/>	
-	<xsl:param name="iLaneInSpace_X"    select="0"/>	
-	<xsl:param name="iSpaceSharedBus_Y" select="0"/>	
-	
-<!--						
-	<xsl:message>Proc diff  <xsl:value-of select="$procStack_H_diff_"/></xsl:message>
-	<xsl:message>Proc inst  <xsl:value-of select="$procInst_"/></xsl:message>
-	<xsl:message>Proc Bif Name <xsl:value-of select="$procBifName_"/></xsl:message>
-	<xsl:message>Proc Bif Rank <xsl:value-of select="$procBifRank_"/></xsl:message>
--->
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="sbs_idx_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE= $iBusName)]/@BUSINDEX"/>
-	<xsl:variable name="sbs_bc_y_" select="($iSpaceSharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H))"/>
-	<xsl:variable name="procInst_" select="BUSCONN/@INSTANCE"/>
-	
-	
-<!--	
-	<xsl:message>Shared Bus Idx <xsl:value-of select="$sbs_idx_"/></xsl:message>
-	<xsl:message>Proc inst  <xsl:value-of select="$procInst_"/></xsl:message>
--->						
-	
-	<xsl:variable name="procBif_Y_"    select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * BUSCONN/@BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-	<xsl:variable name="procBifName_"  select="BUSCONN/@BUSINTERFACE"/>
-	<xsl:variable name="procBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInst_)]/BUSINTERFACE[(@NAME = $procBifName_)]/@BIF_X"/>
-	<xsl:variable name="procBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInst_)]/BUSINTERFACE[(@NAME = $procBifName_)]/@BIFRANK"/>
-						
-	<xsl:variable name="procshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInst_)]/@STACK_HORIZ_INDEX"/>
-	<xsl:variable name="procshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInst_)]/@SHAPE_VERTI_INDEX"/>
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>
-	
-						
-<!--						
-	<xsl:message>Stack horiz  <xsl:value-of select="$procshp_hori_idx_"/></xsl:message>
-	<xsl:message>Stack verti  <xsl:value-of select="$procshp_vert_idx_"/></xsl:message>
-	<xsl:message>Proc Bif Y   <xsl:value-of select="$procBif_Y_"/></xsl:message>
--->						
-						
-	<xsl:variable name="procshp_Y_">
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$procshp_hori_idx_"/>
-			<xsl:with-param name="iVertiIdx"  select="$procshp_vert_idx_"/>
-		</xsl:call-template>
-	</xsl:variable>
-						
-	
-	<xsl:variable name="procStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-		
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="(($procshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($procshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="bc_Y_"  select="($procshp_Y_ + $procBif_Y_ + ceiling($BIF_H div 2) + $procStack_H_diff_) - ceiling($BLKD_BIFC_H div 2)"/>
-<!--	
-	<xsl:variable name="bc_x_"  select="($laneInSpace_X +  ceiling($BLKD_BIFC_W div 2))"/>
-	<xsl:variable name="bc_x_"  select="0"/>
--->	
-	<xsl:variable name="bc_X_">
-		<xsl:choose>
-			<xsl:when test="$procBifSide_ = '0'">
-		 		<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-<!--				
-		 		<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - ceiling($BLKD_MOD_W div 2))"/>
-		 		<xsl:value-of select="($space_W_ -  ceiling($BLKD_MOD_W div 2))"/>
--->				
-			</xsl:when>
-			<xsl:when test="$procBifSide_ = '1'">
-		 		<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-			</xsl:when>
-			<xsl:otherwise>0</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-						
-	<!-- Place the bus connection -->
-	<use   x="{$bc_X_}"   y="{$bc_Y_}"  xlink:href="#{$iBusStd}_busconn_{$procBifRank_}"/>
-						
-	
-	<xsl:variable name="vert_line_x_"   select="($iLaneInSpace_X +  ceiling($BLKD_BIFC_W div 2))"/>
-	<xsl:variable name="vert_line_y1_"  select="($procshp_Y_ + $procBif_Y_ + ceiling($BLKD_BIF_H div 2) + $procStack_H_diff_)"/>
-	<xsl:variable name="vert_line_y2_"  select="($iSpaceSharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_BIFC_W div 2))"/>
-	
-<!--	
-	<xsl:message>Vert line Y1 <xsl:value-of select="$vert_line_y1_"/></xsl:message>
-	<xsl:message>Vert line Y2 <xsl:value-of select="$vert_line_y2_"/></xsl:message>
--->		
-	
-	<xsl:variable name="v_bus_ul_y_">
-		<xsl:choose>
-			<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-				<xsl:value-of select="$vert_line_y2_"/>
-			</xsl:when>
-			<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-				<xsl:value-of select="$vert_line_y1_"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-	
-	<xsl:variable name="v_bus_ul_x_">
-		<xsl:choose>
-			<xsl:when test="@ORIENTED='WEST'">
-				<xsl:value-of select="($vert_line_x_ + $BLKD_MOD_BIF_GAP_H)"/>
-			</xsl:when>
-			<xsl:when test="@ORIENTED='EAST'">
-				<xsl:value-of select="($vert_line_x_ - $BLKD_MOD_BIF_GAP_H)"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-		
-		
-	<xsl:variable name="v_bus_width_" select="$BLKD_P2P_BUS_W"/>
-	<xsl:variable name="v_bus_height_">
-		<xsl:choose>
-			<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-				<xsl:value-of select="($vert_line_y1_ - $vert_line_y2_) - $BLKD_P2P_BUS_W"/>
-			</xsl:when>
-			<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-				<xsl:value-of select="($vert_line_y2_ - $vert_line_y1_) - $BLKD_P2P_BUS_W"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-		
-	<xsl:variable name="h_bus_ul_x_">
-		<xsl:choose>
-			<xsl:when test="@ORIENTED='WEST'">
-				<xsl:value-of select="($bc_X_ + $BLKD_BIFC_W - ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2))"/>
-<!--				
-				<xsl:value-of select="$v_bus_ul_x_"/>
--->	
-			</xsl:when>
-			<xsl:when test="@ORIENTED='EAST'">
-				<xsl:value-of select="$v_bus_ul_x_"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-		
-		<xsl:variable name="h_bus_ul_y_">
-			<xsl:choose>
-				<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-					<xsl:value-of select="$vert_line_y2_ - ceiling($BLKD_P2P_BUS_W div 2)"/>
-				</xsl:when>
-				<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-					<xsl:value-of select="$vert_line_y1_ - ceiling($BLKD_P2P_BUS_W div 2)"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-	
-	
-		<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-		<xsl:variable name="h_bus_width_">
-			<xsl:choose>
-				<xsl:when test="@ORIENTED='WEST'">
-					<xsl:value-of select="$v_bus_ul_x_ - $h_bus_ul_x_ + $BLKD_P2P_BUS_W"/>
-				</xsl:when>
-				<xsl:when test="@ORIENTED='EAST'">
-					<xsl:value-of select="($bc_X_ - $v_bus_ul_x_) + ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2) + 1"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-			
-<!--			
-		<xsl:if test="(@ORIENTED = 'WEST')">
-		</xsl:if>
-			
- 		<xsl:message>bc_X_  <xsl:value-of select="$bc_X_"/></xsl:message>
- 		<xsl:message>v_bus_ul_x  <xsl:value-of select="$v_bus_ul_x_"/></xsl:message>
- 		<xsl:message>h_bus_width <xsl:value-of select="$h_bus_width_"/></xsl:message>
- 		<xsl:message>h_bus_ul_y  <xsl:value-of select="$h_bus_ul_y_"/></xsl:message>
--->	
-			
-		<rect x="{$v_bus_ul_x_}" 
-		  	  y="{$v_bus_ul_y_ + 2}"  
-		 	  width= "{$v_bus_width_}" 
-		 	  height="{$v_bus_height_}" 
-		 	  style="stroke:none; fill:{$busColor_}"/>
-		
-		<rect x="{$h_bus_ul_x_}" 
-		  	  y="{$h_bus_ul_y_}"  
-		 	  width= "{$h_bus_width_}" 
-		 	  height="{$h_bus_height_}" 
-		 	  style="stroke:none; fill:{$busColor_}"/>
-		
-<!--						
-		<xsl:message>Proc diff  <xsl:value-of select="$procStack_H_diff_"/></xsl:message>
-		<xsl:message>Proc inst  <xsl:value-of select="$procInst_"/></xsl:message>
-		<xsl:message>Proc Bif Name <xsl:value-of select="$procBifName_"/></xsl:message>
-		<xsl:message>Proc Bif Rank <xsl:value-of select="$procBifRank_"/></xsl:message>
--->
-	
-</xsl:template>					
-	
-					
-<!--
-		 ===========================================================
-			Handle non Processor Sharedebus connections.
-		 ===========================================================
--->
-				
-<xsl:template name="BCLaneSpace_NonProcBifToSharedBus">	
-	
-	<xsl:param name="iBusStd"           select="'NONE'"/>	
-	<xsl:param name="iBusName"          select="'NONE'"/>	
-	<xsl:param name="iBifRank"          select="'NONE'"/>	
-	<xsl:param name="iStackToEast"      select="'NONE'"/>	
-	<xsl:param name="iStackToWest"      select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W"    select="0"/>	
-	<xsl:param name="iStackToWest_W"    select="0"/>	
-	<xsl:param name="iLaneInSpace_X"    select="0"/>	
-	<xsl:param name="iSpaceSharedBus_Y" select="0"/>	
-	
-						
-	<xsl:variable name="sbs_idx_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE= $iBusName)]/@BUSINDEX"/>
-	<xsl:variable name="sbs_bc_y_" select="($iSpaceSharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H))"/>
-<!--	
-	<xsl:variable name="sbs_bc_y_" select="($G_SharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H))"/>
--->	
-						
-	<xsl:variable name="cmplxInst_" select="BUSCONN/@INSTANCE"/>
-						
-	<xsl:variable name="cmplxBif_Y_"    select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * BUSCONN/@BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-	<xsl:variable name="cmplxBifName_"  select="BUSCONN/@BUSINTERFACE"/>
-	<xsl:variable name="cmplxBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $cmplxInst_)]/BUSINTERFACE[(@NAME = $cmplxBifName_)]/@BIF_X"/>
-	<xsl:variable name="cmplxBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $cmplxInst_)]/BUSINTERFACE[(@NAME = $cmplxBifName_)]/@BIFRANK"/>
-						
-	<xsl:variable name="cmplxshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $cmplxInst_)])]/@STACK_HORIZ_INDEX"/>
-	<xsl:variable name="cmplxshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $cmplxInst_)])]/@SHAPE_VERTI_INDEX"/>
-						
-	<xsl:variable name="is_abvSbs_" select="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $cmplxInst_)]]/@IS_ABVSBS)"/>
-	<xsl:variable name="is_blwSbs_" select="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $cmplxInst_)]]/@IS_BLWSBS)"/>
-	
-	
-<!--						
-	<xsl:message>iStackToEast <xsl:value-of select="$iStackToEast"/></xsl:message>
-	<xsl:message>iStackToWest <xsl:value-of select="$iStackToWest"/></xsl:message>
-	<xsl:message><xsl:value-of select="$cmplxInst_"/> : <xsl:value-of select="$is_blwSbs_"/></xsl:message>
-	<xsl:message><xsl:value-of select="$cmplxInst_"/> : <xsl:value-of select="$is_abvSbs_"/></xsl:message>
-	<xsl:message><xsl:value-of select="$cmplxInst_"/> : <xsl:value-of select="$is_blwSbs_"/></xsl:message>
-	<xsl:message><xsl:value-of select="$cmplxInst_"/> : <xsl:value-of select="$is_abvSbs_"/></xsl:message>
-	<xsl:message>Stack horiz  <xsl:value-of select="$cmplxshp_hori_idx_"/></xsl:message>
-	<xsl:message>Stack verti  <xsl:value-of select="$cmplxshp_vert_idx_"/></xsl:message>
-	<xsl:message>Proc Bif Y   <xsl:value-of select="$procBif_Y_"/></xsl:message>
--->						
-	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>						
-	
-	<xsl:variable name="cmplxshp_Y_">
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$cmplxshp_hori_idx_"/>
-			<xsl:with-param name="iVertiIdx"  select="$cmplxshp_vert_idx_"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>Complex shape Y <xsl:value-of select="$cmplxshp_Y_"/></xsl:message>
--->	
-	
-	<xsl:variable name="stackToEast_">
-		<xsl:choose>
-			<xsl:when test="not($iStackToEast = 'NONE')"><xsl:value-of select="$iStackToEast"/></xsl:when>
-			<xsl:otherwise>NONE</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-	<xsl:variable name="stackToWest_">
-		<xsl:choose>
-			<xsl:when test=" not($iStackToWest = 'NONE')"><xsl:value-of select="$iStackToWest"/></xsl:when>
-			<xsl:when test="(not($iStackToEast = 'NONE') and not($iStackToEast = '0'))"><xsl:value-of select="($iStackToEast - 1)"/></xsl:when>
-			<xsl:otherwise>NONE</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-						
-	<xsl:variable name="cmplxStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($stackToEast_ = 'NONE') or ($stackToWest_ = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($stackToEast_ = 'NONE') or ($stackToWest_ = 'NONE'))">
-				
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$stackToWest_"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$stackToEast_"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="(($cmplxshp_hori_idx_ = $stackToEast_) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($cmplxshp_hori_idx_ = $stackToWest_) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-									
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-	
-	
-	<xsl:variable name="bc_Y_"  select="($cmplxshp_Y_ + $cmplxBif_Y_ + ceiling($BIF_H div 2) + $cmplxStack_H_diff_) - ceiling($BLKD_BIFC_H div 2)"/>
-	
-	
-<!--	
-	<xsl:message>Sstack H Diff  <xsl:value-of select="$cmplxStack_H_diff_"/></xsl:message>
-	<xsl:message>BC Y <xsl:value-of select="$bc_Y_"/></xsl:message>
-	<xsl:variable name="bc_x_"  select="($laneInSpace_X +  ceiling($BLKD_BIFC_W div 2))"/>
-	<xsl:variable name="bc_x_"  select="0"/>
--->	
-	<xsl:variable name="bc_X_">
-		<xsl:choose>
-			<xsl:when test="$cmplxBifSide_ = '0'">
-		 		<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-			</xsl:when>
-			<xsl:when test="$cmplxBifSide_ = '1'">
-		 		<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-			</xsl:when>
-			<xsl:otherwise>0</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-	<use   x="{$bc_X_}"   y="{$bc_Y_}"  xlink:href="#{$iBusStd}_busconn_{$cmplxBifRank_}"/>
-	
-<!--	
-	<xsl:message>Bif Rank <xsl:value-of select="$cmplxBifRank_"/></xsl:message>
--->	
-	<xsl:variable name="vert_line_x_"  select="($iLaneInSpace_X +  ceiling($BLKD_BIFC_W div 2))"/>
-	<xsl:variable name="vert_line_y1_" select="($cmplxshp_Y_ + $cmplxBif_Y_ + ceiling($BLKD_BIF_H div 2) + $cmplxStack_H_diff_)"/>
-	<xsl:variable name="vert_line_y2_"  select="($iSpaceSharedBus_Y  + ($sbs_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_BIFC_W div 2))"/>
-<!--	
-	<xsl:variable name="vert_line_y2_"  select="($G_SharedBus_Y  + ($sbs_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_BIFC_W div 2))"/>
--->	
-	
-	<xsl:variable name="v_bus_ul_y_">
-		<xsl:choose>
-			<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-				<xsl:value-of select="$vert_line_y2_"/>
-			</xsl:when>
-			<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-				<xsl:value-of select="$vert_line_y1_"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-	
-	<xsl:variable name="v_bus_ul_x_">
-		<xsl:choose>
-			<xsl:when test="@ORIENTED='WEST'">
-				<xsl:value-of select="($vert_line_x_ + $BLKD_MOD_BIF_GAP_H)"/>
-			</xsl:when>
-			<xsl:when test="@ORIENTED='EAST'">
-				<xsl:value-of select="($vert_line_x_ - $BLKD_MOD_BIF_GAP_H)"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-		
-	<xsl:variable name="v_bus_width_" select="$BLKD_P2P_BUS_W"/>
-	<xsl:variable name="v_bus_height_">
-		<xsl:choose>
-			<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-				<xsl:value-of select="($vert_line_y1_ - $vert_line_y2_) - $BLKD_P2P_BUS_W + 8"/>
-			</xsl:when>
-			<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-				<xsl:value-of select="($vert_line_y2_ - $vert_line_y1_) - $BLKD_P2P_BUS_W + 8"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-		
-	<xsl:variable name="h_bus_ul_x_">
-		<xsl:choose>
-			<xsl:when test="@ORIENTED='WEST'">
-				<xsl:value-of select="($bc_X_ + $BLKD_BIFC_W - ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2))"/>
-			</xsl:when>
-			<xsl:when test="@ORIENTED='EAST'">
-				<xsl:value-of select="$v_bus_ul_x_"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-		
-	<xsl:variable name="h_bus_ul_y_">
-		<xsl:choose>
-			
-			<xsl:when test="($is_blwSbs_ = 'TRUE') and ($vert_line_y1_ &gt; $vert_line_y2_)">
-				<xsl:value-of select="$vert_line_y1_ - ceiling($BLKD_P2P_BUS_W div 2)"/>
-			</xsl:when>
-			<xsl:when test="($is_blwSbs_ = 'TRUE') and ($vert_line_y2_ &gt; $vert_line_y1_)">
-				<xsl:value-of select="$vert_line_y2_ - ceiling($BLKD_P2P_BUS_W div 2)"/>
-			</xsl:when>
-			
-			<xsl:when test="($is_abvSbs_ = 'TRUE') and ($vert_line_y1_ &gt; $vert_line_y2_)">
-				<xsl:value-of select="$vert_line_y2_ - ceiling($BLKD_P2P_BUS_W div 2)"/>
-			</xsl:when>
-			<xsl:when test="($is_abvSbs_ = 'TRUE') and ($vert_line_y2_ &gt; $vert_line_y1_)">
-				<xsl:value-of select="$vert_line_y1_ - ceiling($BLKD_P2P_BUS_W div 2)"/>
-			</xsl:when>
-			
-		</xsl:choose>
-	</xsl:variable>	
-	
-	
-	<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-	<xsl:variable name="h_bus_width_">
-		<xsl:choose>
-			<xsl:when test="@ORIENTED='WEST'">
-				<xsl:value-of select="$v_bus_ul_x_ - $h_bus_ul_x_ + $BLKD_P2P_BUS_W"/>
-			</xsl:when>
-			<xsl:when test="@ORIENTED='EAST'">
-				<xsl:value-of select="($bc_X_ - $v_bus_ul_x_) + ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2) + 1"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-	
-			
-	<rect x="{$v_bus_ul_x_}" 
-	  	  y="{$v_bus_ul_y_ - 2}"  
-	 	  width= "{$v_bus_width_}" 
-		  height="{$v_bus_height_}" 
-	 	  style="stroke:none; fill:{$busColor_}"/>
-		
-	<rect x="{$h_bus_ul_x_}" 
-	  	  y="{$h_bus_ul_y_}"  
-	 	  width= "{$h_bus_width_}" 
-	 	  height="{$h_bus_height_}" 
-	 	  style="stroke:none; fill:{$busColor_}"/>
-		
-</xsl:template>					
-	
-<!-- 
-		 ===========================================================
-			Handle connections from processors to Memory UNITs
-		 ===========================================================
--->
-	
-<xsl:template name="BCLaneSpace_ProcBifToMemoryUnit">	
-	
-	<xsl:param name="iBusStd"        select="'NONE'"/>	
-	<xsl:param name="iBusName"       select="'NONE'"/>	
-	<xsl:param name="iBifRank"       select="'NONE'"/>	
-	<xsl:param name="iStackToEast"   select="'NONE'"/>	
-	<xsl:param name="iStackToWest"   select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W" select="0"/>	
-	<xsl:param name="iStackToWest_W" select="0"/>	
-	<xsl:param name="iLaneInSpace_X" select="0"/>	
-	
-						
-<!--	
-	<xsl:message>Stack To East <xsl:value-of select="$iStackToEast"/></xsl:message>
-	<xsl:message>Stack to West <xsl:value-of select="$iStackToWest"/></xsl:message>
-	<xsl:message>Stack to East Width <xsl:value-of select="$iStackToEast_W"/></xsl:message>
-	<xsl:message>Stack to West Width <xsl:value-of select="$iStackToWest_W"/></xsl:message>
-	<xsl:message>Shared Bus Y <xsl:value-of select="$iSpaceSharedBus_Y"/></xsl:message>
-	<xsl:message>Lane in space X <xsl:value-of select="$iLaneInSpace_X"/></xsl:message>
-	<xsl:variable name="bcInSpace_X_"  select="($laneInSpace_X +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-	
--->	
-	
-	
-	<xsl:variable name="bcInSpace_X_"  select="$iLaneInSpace_X"/>
-	<xsl:variable name="procInstance_" select="BUSCONN[@IS_PROCCONN]/@INSTANCE"/>
-	<xsl:variable name="mem_procshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInstance_)]/@STACK_HORIZ_INDEX"/>
-	<xsl:variable name="mem_procshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInstance_)]/@SHAPE_VERTI_INDEX"/>
-						
-	<xsl:variable name="mem_procshp_Y_">
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$mem_procshp_hori_idx_"/>
-			<xsl:with-param name="iVertiIdx"  select="$mem_procshp_vert_idx_"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>							
-	
-	<xsl:variable name="cmplxStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-				
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="(($mem_procshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($mem_procshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-									
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-						
-	<xsl:variable name="mem_procStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-	
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-			<xsl:choose>
-				<xsl:when test="(($mem_procshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-					<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-				</xsl:when>	
-				<xsl:when test="(($mem_procshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-					<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-				</xsl:when>	
-				<xsl:otherwise>0</xsl:otherwise>	
-			</xsl:choose>	
-									
-		</xsl:when>
-	</xsl:choose>
-  </xsl:variable>
-						
-	<!-- Store the conns in a variable -->	
-	<xsl:variable name="memConn_heights_">
-
-		<xsl:for-each select="BUSCONN">
-								
-			<xsl:variable name="bifName_"       select="@BUSINTERFACE"/>
-			
-							
-			<xsl:choose>
-				<xsl:when test="@IS_PROCCONN and @BIF_Y">
-							
-					<xsl:variable name="procBif_Y_"    select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-					<xsl:variable name="procBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-					<xsl:variable name="procBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-					<xsl:variable name="procBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-					<xsl:variable name="bcProc_Y_"     select="($mem_procshp_Y_ + $procBif_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $mem_procStack_H_diff_)"/>
-					<xsl:variable name="bcProc_X_">
-						<xsl:choose>
-							<xsl:when test="$procBifSide_ = '0'">
-		 						<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-							</xsl:when>
-							<xsl:when test="$procBifSide_ = '1'">
-		 						<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-							</xsl:when>
-							<xsl:otherwise>0</xsl:otherwise>
-						</xsl:choose>
-					</xsl:variable>
-						
-					<MEMCONN X="{$bcProc_X_}" Y="{$bcProc_Y_}" BUSNAME="{$procBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$procBifRank_}" BIFSIDE="{$procBifSide_}"/>
-										
-				</xsl:when>
-									
-				<xsl:otherwise>
-									
-					<xsl:variable name="memcInstance_"  select="@INSTANCE"/>
-					<xsl:variable name="memcshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $memcInstance_)]]/@SHAPE_VERTI_INDEX"/>
-					<xsl:variable name="memcBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $memcInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-					<xsl:variable name="memcBif_Y_"    select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $memcInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_Y"/>
-										
-					<xsl:variable name="memshp_Y_">
-						<xsl:call-template name="_calc_Stack_Shape_Y">
-							<xsl:with-param name="iHorizIdx"  select="$mem_procshp_hori_idx_"/>
-							<xsl:with-param name="iVertiIdx"  select="$memcshp_vert_idx_"/>
-						</xsl:call-template>
-				    </xsl:variable>
-					
-					<xsl:variable name="memcMOD_W_" select="((/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $memcInstance_)]]/@MODS_W) * $BLKD_MOD_W)"/>
-										
-					<xsl:variable name="procBif_Y_"   select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-					
-					<xsl:variable name="memcConn_Y_">
-						<xsl:choose>
-							<xsl:when test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $memcInstance_)]]/@MODS_H = 1)">
-								<xsl:value-of  select="($memshp_Y_ + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V) +  ($memcBif_Y_ * ($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V)) + ceiling($BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $cmplxStack_H_diff_)"/>
-							</xsl:when>
-							<xsl:otherwise>
-								<xsl:value-of  select="($memshp_Y_ + $BLKD_MOD_H + $BLKD_MOD_LANE_H + ($memcBif_Y_ * ($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V)) + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $cmplxStack_H_diff_)"/>
-							</xsl:otherwise>
-						</xsl:choose>
-					</xsl:variable>
-					
-					<xsl:variable name="memcConn_X_">
-						<xsl:choose>
-							<xsl:when test="$memcBifSide_ = '0'">
- 								<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($memcMOD_W_ div 2) + $BLKD_BIFC_W))"/>
-							</xsl:when>
-							<xsl:when test="$memcBifSide_ = '1'">
- 								<xsl:value-of select="ceiling($memcMOD_W_ div 2)"/>
-							</xsl:when>
-						</xsl:choose>
-					</xsl:variable>
-						
-					<xsl:variable name="memcBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $memcInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-					<xsl:variable name="memcBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $memcInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-					
-					<MEMCONN X="{$memcConn_X_}" Y="{$memcConn_Y_}" BUSNAME="{$memcBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$memcBifRank_}" BIFSIDE="{$memcBifSide_}"/>
-<!--					
--->					
-					
-				</xsl:otherwise>
-			</xsl:choose>
-		</xsl:for-each>
-	</xsl:variable>
-						
-						
-	<!-- Draw the busconnection and horizontal lines.-->						
-	<xsl:for-each select="exsl:node-set($memConn_heights_)/MEMCONN">
-							
-		<xsl:variable name="bus_x_" select="($bcInSpace_X_ + ceiling($BLKD_BIFC_W div 2))"/>
-		<xsl:variable name="bus_y_" select="@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-		
-		<xsl:variable name="h_bus_ul_x_">
-			<xsl:choose>
-				<xsl:when test="@BIFSIDE='0'">
-					<xsl:value-of select="$bus_x_"/>
-				</xsl:when>
-				<xsl:when test="@BIFSIDE='1'">
-					<xsl:value-of select="(@X + $BLKD_BIFC_W + $BLKD_BUS_ARROW_W)"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		<xsl:variable name="h_bus_ul_y_" select="$bus_y_"/>
-	
-		<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-		<xsl:variable name="h_bus_width_">
-			<xsl:choose>
-				<xsl:when test="@BIFSIDE='0'">
-					<xsl:value-of select="(@X - $bus_x_ - $BLKD_BUS_ARROW_W)"/>
-				</xsl:when>
-				<xsl:when test="@BIFSIDE='1'">
-					<xsl:value-of select="$bus_x_ - $h_bus_ul_x_"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-<!--		
- 		<xsl:message>bc_X_       <xsl:value-of select="@X"/></xsl:message>
- 		<xsl:message>h_bus_ul_x  <xsl:value-of select="$h_bus_ul_x_"/></xsl:message>
- 		<xsl:message>h_bus_ul_y  <xsl:value-of select="$h_bus_ul_y_"/></xsl:message>
- 		<xsl:message>h_bus_width <xsl:value-of select="$h_bus_width_"/></xsl:message>
--->		
-		
-		<!-- Place the bus connection -->
-		<use   x="{@X}"   y="{@Y}"  xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/>
-		
-		<!-- Draw the arrow -->
-		<xsl:choose>
-			<xsl:when test="@BIFSIDE='0'">
-				<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowEast"/>
-			</xsl:when>
-			<xsl:when test="@BIFSIDE='1'">
-				<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowWest"/>
-			</xsl:when>
-		</xsl:choose>
-		
-		
-		<!-- Draw the horizontal part of the bus -->
-		<rect x="{$h_bus_ul_x_}" 
-		  	  y="{$h_bus_ul_y_}"  
-		 	  width= "{$h_bus_width_}" 
-		 	  height="{$h_bus_height_}" 
-		 	  style="stroke:none; fill:{$busColor_}"/>
-<!--		
--->	
-		
-	</xsl:for-each>
-						
-	<xsl:variable name="busTop_"  select="math:min(exsl:node-set($memConn_heights_)/MEMCONN/@Y)"/>
-	<xsl:variable name="busBot_"  select="math:max(exsl:node-set($memConn_heights_)/MEMCONN/@Y)"/>
-	<xsl:variable name="busName_" select="exsl:node-set($memConn_heights_)/MEMCONN/@BUSNAME"/>
-	
-	<xsl:variable name="v_bus_y_" select="$busTop_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-	
-	
-	<!-- Draw the vertical part of the bus -->	
-	<rect x="{$bcInSpace_X_ + $BLKD_P2P_BUS_W}" 
-	  	  y="{$v_bus_y_}"  
-	 	  width= "{$BLKD_P2P_BUS_W}" 
-	 	  height="{($busBot_ - $busTop_) + $BLKD_P2P_BUS_W}" 
-	 	  style="stroke:none; fill:{$busColor_}"/>
-<!--	
--->	
-	<!-- Place the bus label.-->	
-	<text class="p2pbuslabel" 
-			  x="{$bcInSpace_X_   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
-			  y="{$busTop_ + ($BLKD_BUS_ARROW_H * 3)}">
-			<xsl:value-of select="$busName_"/>
-	</text>	
-	
-						
-</xsl:template>					
-	
-	
-<!-- 
-		 ===========================================================
-			Handle generic Point to Point connections
-		 ===========================================================
--->
-	
-<xsl:template name="BCLaneSpace_PointToPoint">	
-	
-	<xsl:param name="iBusStd"        select="'NONE'"/>	
-	<xsl:param name="iBusName"       select="'NONE'"/>	
-	<xsl:param name="iBifRank"       select="'NONE'"/>	
-	<xsl:param name="iStackToEast"   select="'NONE'"/>	
-	<xsl:param name="iStackToWest"   select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W" select="0"/>	
-	<xsl:param name="iStackToWest_W" select="0"/>	
-	<xsl:param name="iLaneInSpace_X" select="0"/>	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="busColor_lt_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>							
-	
-	<xsl:variable name="bcInSpace_X_"  select="($iLaneInSpace_X +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-	<xsl:variable name="p2pInstance_" select="BUSCONN[(@BIF_Y)]/@INSTANCE"/>
-					
-	<xsl:variable name="p2pshp_hori_idx_">
-		<xsl:choose>
-			<xsl:when test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]">
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]/@STACK_HORIZ_INDEX"/>
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $p2pInstance_)])]/@STACK_HORIZ_INDEX"/>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>		
-					
-	<xsl:variable name="p2pshp_vert_idx_">
-		<xsl:choose>
-			<xsl:when test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]">
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]/@SHAPE_VERTI_INDEX"/>
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $p2pInstance_)])]/@SHAPE_VERTI_INDEX"/>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>		
-					
-<!--					
-					<xsl:variable name="p2pshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInstance_)]/@STACK_HORIZ_INDEX"/>
-					<xsl:variable name="p2pshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInstance_)]/@SHAPE_VERTI_INDEX"/>
--->					
-						
-	<xsl:variable name="p2pshp_Y_">
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$p2pshp_hori_idx_"/>
-			<xsl:with-param name="iVertiIdx"  select="$p2pshp_vert_idx_"/>
-		</xsl:call-template>
-	</xsl:variable>
-			
-	<xsl:variable name="cmplxStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-				
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-									
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-						
-																				
-	<xsl:variable name="procStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-			
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-									
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-						
-	
-	
-	<!-- Store the conns in a variable -->	
-	<xsl:variable name="p2pConn_heights_">
-	
-		<xsl:for-each select="BUSCONN">
-									
-			<xsl:variable name="bifName_" select="@BUSINTERFACE"/>
-							
-				<xsl:choose>
-					<xsl:when test="@IS_PROCCONN and @BIF_Y">
-										
-<!--										
-										<xsl:message>Proc <xsl:value-of select="$procInstance_"/></xsl:message>
--->										
-						<xsl:variable name="procBif_Y_"   select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-						<xsl:variable name="procBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $p2pInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-						<xsl:variable name="procBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $p2pInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-						<xsl:variable name="procBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $p2pInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-										
-						<xsl:variable name="bcProc_Y_"     select="($p2pshp_Y_ + $procBif_Y_ + ceiling($BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $procStack_H_diff_)"/>
-						<xsl:variable name="bcProc_X_">
-							<xsl:choose>
-								<xsl:when test="$procBifSide_ = '0'">
-		 							<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-								</xsl:when>
-								<xsl:when test="$procBifSide_ = '1'">
-		 							<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-								</xsl:when>
-								<xsl:otherwise>0</xsl:otherwise>
-							</xsl:choose>
-						</xsl:variable>
-						
-						<P2PCONN X="{$bcProc_X_}" Y="{$bcProc_Y_}" BUSNAME= "{$procBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$procBifRank_}" BIFSIDE="{$procBifSide_}"/>
-										
-<!--						
-						<xsl:message>bcProc_X_ <xsl:value-of select="$bcProc_X_"/></xsl:message>
-						<xsl:message>bcProc_Y_ <xsl:value-of select="$bcProc_Y_"/></xsl:message>
-						<P2PCONN X="{$bcInSpace_X_}" Y="{$bcProc_Y_}" BUSSTD="{$busStd}" BIFRANK="{$procBifRank_}" BIFSIDE="{$procBifSide_}" STACK_ID=""/>
--->						
-					</xsl:when>
-									
-					<xsl:otherwise>
-										
-						<xsl:variable name="modInstance_"     select="@INSTANCE"/>
-						<xsl:variable name="modshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $modInstance_)]]/@SHAPE_VERTI_INDEX"/>
-						<xsl:variable name="modBifSide_"      select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-						<xsl:variable name="modBif_Y_"        select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_Y"/>
-						<xsl:variable name="modBc_Y_"         select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * $modBif_Y_) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-										
-<!--										
-						<xsl:message>Memory Instance <xsl:value-of select="$procInstance_"/></xsl:message>
--->										
-						
-						<xsl:variable name="modshp_Y_">
-							<xsl:call-template name="_calc_Stack_Shape_Y">
-								<xsl:with-param name="iHorizIdx"  select="$p2pshp_hori_idx_"/>
-								<xsl:with-param name="iVertiIdx"  select="$modshp_vert_idx_"/>
-							</xsl:call-template>
-						</xsl:variable>
-										
-						<xsl:variable name="modBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-						<xsl:variable name="modBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-						<xsl:variable name="bcMod_Y_"     select="($modshp_Y_ + $modBc_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $cmplxStack_H_diff_)"/>
-						<xsl:variable name="bcMod_X_">
-							<xsl:choose>
-								<xsl:when test="$modBifSide_ = '0'">
-		 							<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-								</xsl:when>
-								<xsl:when test="$modBifSide_ = '1'">
-		 							<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-								</xsl:when>
-								<xsl:otherwise>0</xsl:otherwise>
-							</xsl:choose>
-						</xsl:variable>
-						
-<!--										
-						<xsl:message>Bc Bif Y <xsl:value-of select="$modBif_Y_"/></xsl:message>	
-						<xsl:message>Bc Mod Y <xsl:value-of select="$modBc_Y_"/></xsl:message>	
-						<xsl:message>Bc Mod X <xsl:value-of select="$bcMod_X_"/></xsl:message>	
-						<P2PCONN X="{$bcInSpace_X_}" Y="{$bcMod_Y_}" BUSSTD="{$busStd}" BIFRANK="{$modBifRank_}" BIFSIDE="{$modBifSide_}"/>
--->										
-						<P2PCONN X="{$bcMod_X_}" Y="{$bcMod_Y_}" BUSNAME="{$modBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$modBifRank_}" BIFSIDE="{$modBifSide_}"/>
-						
-					</xsl:otherwise>
-									
-				</xsl:choose>
-			</xsl:for-each>
-		</xsl:variable>
-	
-	
-	<xsl:variable name="busTop_"  select="math:min(exsl:node-set($p2pConn_heights_)/P2PCONN/@Y)"/>
-	<xsl:variable name="busBot_"  select="math:max(exsl:node-set($p2pConn_heights_)/P2PCONN/@Y)"/>
-	<xsl:variable name="v_bus_y_" select="$busTop_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-	<xsl:variable name="busName_" select="exsl:node-set($p2pConn_heights_)/P2PCONN/@BUSNAME"/>
-	<xsl:variable name="busStd_"  select="exsl:node-set($p2pConn_heights_)/P2PCONN/@BUSSTD"/>
-<!--	
--->	
-	<!-- Draw the vertical part of the bus -->	
-	
-	<xsl:if test="$busStd_ = 'PLBV46_P2P'">
-	<rect x="{$bcInSpace_X_ + $BLKD_P2P_BUS_W}" 
-	  	  y="{$v_bus_y_}"  
-	 	  width= "{$BLKD_P2P_BUS_W}" 
-	 	  height="{($busBot_ - $busTop_) + $BLKD_P2P_BUS_W}" 
-	 	  style="stroke:{$COL_WHITE};stroke-width:1.5;fill:{$busColor_}"/>
-	</xsl:if>
-	
-	<xsl:if test="not($busStd_ = 'PLBV46_P2P')">
-	<rect x="{$bcInSpace_X_ + $BLKD_P2P_BUS_W}" 
-	  	  y="{$v_bus_y_}"  
-	 	  width= "{$BLKD_P2P_BUS_W}" 
-	 	  height="{($busBot_ - $busTop_) + $BLKD_P2P_BUS_W}" 
-	 	  style="stroke:none;fill:{$busColor_}"/>
-	</xsl:if>
-	
-<!--	
--->	
-	
-<!--	
-	 	  style="stroke:{$busColor_lt_};stroke-width:1;stroke-opacity:0.9;fill-opacity:2.0;fill:{$busColor_}"/>
--->	
-	<!-- Place the bus label.-->	
-	<text class="p2pbuslabel" 
-			  x="{$bcInSpace_X_   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
-			  y="{$busTop_ + ($BLKD_BUS_ARROW_H * 3)}">
-			<xsl:value-of select="$busName_"/>
-	</text>	
-						
-		<!-- Draw the busconnection and horizontal lines.-->						
-		<xsl:for-each select="exsl:node-set($p2pConn_heights_)/P2PCONN">
-							
-			<xsl:variable name="bus_x_" select="($bcInSpace_X_ + ceiling($BLKD_BIFC_W div 2))"/>
-			<xsl:variable name="bus_y_" select="@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-		
-			<xsl:variable name="h_bus_ul_x_">
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'">
-						<xsl:value-of select="$bus_x_"/>
-					</xsl:when>
-					<xsl:when test="@BIFSIDE='1'">
-						<xsl:value-of select="(@X + $BLKD_BIFC_W + $BLKD_BUS_ARROW_W) - 1"/>
-					</xsl:when>
-				</xsl:choose>
-			</xsl:variable>	
-		
-			<xsl:variable name="h_bus_ul_y_" select="$bus_y_"/>
-	
-			<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-			<xsl:variable name="h_bus_width_">
-<!--				
-				<xsl:message>BIFSIDE <xsl:value-of select="@BIFSIDE"/></xsl:message>
-				<xsl:message>BUSSTD  <xsl:value-of select="@BUSSTD"/></xsl:message>
-				<xsl:message>BIFRANK <xsl:value-of select="@BIFRANK"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'">
-						<xsl:value-of select="(@X - $bus_x_ - $BLKD_BUS_ARROW_W)"/>
-					</xsl:when>
-					<xsl:when test="@BIFSIDE='1'">
-						<xsl:value-of select="$bus_x_ - $h_bus_ul_x_ + 1"/>
-					</xsl:when>
-					
-				</xsl:choose>
-			</xsl:variable>	
-			
-			<!-- Draw Bus connection-->
-			<use   x="{@X}"   y="{@Y}"  xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/>
-			
-			<!-- Draw the arrow -->
-			<xsl:choose>
-				<xsl:when test="((@BIFSIDE='0') and not((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowEast"/>
-				</xsl:when>
-				<xsl:when test="((@BIFSIDE='1') and not((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowWest"/>
-				</xsl:when>
-				
-				<xsl:when test="((@BIFSIDE='0') and ((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowHInitiator"/>
-				</xsl:when>
-				
-				<xsl:when test="((@BIFSIDE='1') and ((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowHInitiator"/>
-				</xsl:when>
-					
-			</xsl:choose>
-		
-			<!-- Draw the horizontal part of the bus -->
-			<rect x="{$h_bus_ul_x_}" 
-		  	  	  y="{$h_bus_ul_y_}"  
-		 	  	  width= "{$h_bus_width_}" 
-		 	 	  height="{$h_bus_height_}" 
-		 	      style="stroke:none; fill:{$busColor_}"/>
-		
-	</xsl:for-each>
-						
-<!--	
-	<xsl:variable name="busTop_" select="math:min(exsl:node-set($p2pConn_heights_)/P2PCONN/@Y)"/>
-	<xsl:variable name="busBot_" select="math:max(exsl:node-set($p2pConn_heights_)/P2PCONN/@Y)"/>
-	<xsl:variable name="v_bus_y_" select="$busTop_ + ceiling($BLKD_BIFC_H div 2) - ceiling($P2P_BUS_W div 2)"/>
-	<xsl:variable name="busName_" select="exsl:node-set($p2pConn_heights_)/P2PCONN/@BUSNAME"/>
--->	
-	<!-- Draw the vertical part of the bus -->	
-<!--	
-	<rect x="{$bcInSpace_X_ + $P2P_BUS_W}" 
-	  	  y="{$v_bus_y_}"  
-	 	  width= "{$P2P_BUS_W}" 
-	 	  height="{($busBot_ - $busTop_) + $P2P_BUS_W}" 
-	 	  style="stroke:{$COL_WHITE};stroke-width:1;stroke-opacity:0.9;fill-opacity:2.0;fill:{$busColor_}"/>
--->	
-	
-<!--	
-	 	  style="stroke:{$busColor_lt_};stroke-width:1;stroke-opacity:0.9;fill-opacity:2.0;fill:{$busColor_}"/>
--->	
-	<!-- Place the bus label.-->	
-<!--	
-	<text class="p2pbuslabel" 
-			  x="{$bcInSpace_X_   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
-			  y="{$busTop_ + ($BLKD_BUS_ARROW_H * 3)}">
-			<xsl:value-of select="$busName_"/>
-	</text>	
--->	
-	
-						
-</xsl:template>	
-	
-	
-					
-<!-- 
-		 ===========================================================
-			Handle MultiStack Point to Point connections
-		 ===========================================================
--->
-					
-<xsl:template name="BCLaneSpace_MultiStack_PointToPoint">	
-	
-	<xsl:param name="iBusStd"          select="'NONE'"/>	
-	<xsl:param name="iBusName"         select="'NONE'"/>	
-	<xsl:param name="iBifRank"         select="'NONE'"/>	
-	<xsl:param name="iStackToEast"     select="'NONE'"/>	
-	<xsl:param name="iStackToWest"     select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W"   select="0"/>	
-	<xsl:param name="iStackToWest_W"   select="0"/>	
-	<xsl:param name="iLaneInSpace_X"   select="0"/>	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>							
-	
-	<!-- Store the connections in a variable -->
-	<xsl:variable name="bcInSpace_X_"  select="($iLaneInSpace_X +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-					
-	<xsl:variable name="multiConns_">
-						
-		<xsl:for-each select="BUSCONN">
-							
-			<xsl:variable name="bifName_"      select="@BUSINTERFACE"/>
-			<xsl:variable name="multiInstance_" select="@INSTANCE"/>
-			<xsl:variable name="mulshp_hori_idx_">
-				<xsl:choose>
-					<xsl:when test="@IS_PROCCONN">
-						<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $multiInstance_)]/@STACK_HORIZ_INDEX"/>
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $multiInstance_)])]/@STACK_HORIZ_INDEX"/>
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable> 
-							
-			<xsl:variable name="mulshp_vert_idx_">
-				<xsl:choose>
-					<xsl:when test="@IS_PROCCONN">
-						<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $multiInstance_)]/@SHAPE_VERTI_INDEX"/>
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $multiInstance_)])]/@SHAPE_VERTI_INDEX"/>
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable> 
-				
-<!--							
-			<xsl:message>Shape Horiz <xsl:value-of select="$mulshp_hori_idx_"/></xsl:message>
-			<xsl:message>Shape Verti <xsl:value-of select="$mulshp_vert_idx_"/></xsl:message>
--->	
-							
-			<xsl:variable name="mulshp_Y_">
-				<xsl:call-template name="_calc_Stack_Shape_Y">
-					<xsl:with-param name="iHorizIdx"  select="$mulshp_hori_idx_"/>
-					<xsl:with-param name="iVertiIdx"  select="$mulshp_vert_idx_"/>
-				</xsl:call-template>
-			</xsl:variable>
-						
-			<xsl:variable name="cmplxStack_H_diff_">
-				<xsl:choose>
-					<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-					<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-						
-						<xsl:variable name="stackToWest_AbvSbs_H_">
-							<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-								<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-							</xsl:call-template>
-						</xsl:variable>
-			
-						<xsl:variable name="stackToEast_AbvSbs_H_">
-							<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-								<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-							</xsl:call-template>
-						</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-						<xsl:choose>
-							<xsl:when test="(($mulshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-									<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-							</xsl:when>	
-							<xsl:when test="(($mulshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-								<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-							</xsl:when>	
-							<xsl:otherwise>0</xsl:otherwise>	
-						</xsl:choose>	
-									
-					</xsl:when>
-				</xsl:choose>
-			</xsl:variable>
-						
-																				
-			<xsl:variable name="procStack_H_diff_">
-				<xsl:choose>
-					<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-					<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-			
-						<xsl:variable name="stackToWest_AbvSbs_H_">
-							<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-								<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-							</xsl:call-template>
-						</xsl:variable>
-				
-						<xsl:variable name="stackToEast_AbvSbs_H_">
-							<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-								<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-							</xsl:call-template>
-						</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-						<xsl:choose>
-							<xsl:when test="(($mulshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-								<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-							</xsl:when>	
-							<xsl:when test="(($mulshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-								<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-							</xsl:when>	
-							<xsl:otherwise>0</xsl:otherwise>	
-						</xsl:choose>	
-									
-					</xsl:when>
-				</xsl:choose>
-			</xsl:variable>
-							
-			<xsl:choose>
-							
-				<xsl:when test="@IS_PROCCONN and @BIF_Y">
-										
-					<xsl:variable name="procBif_Y_"   select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-										
-					<xsl:variable name="procBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-					<xsl:variable name="procBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-					<xsl:variable name="procBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-										
-					<xsl:variable name="bcProc_Y_"     select="($mulshp_Y_ + $procBif_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $procStack_H_diff_)"/>
-					
-					<xsl:variable name="bcProc_X_">
-						<xsl:choose>
-							<xsl:when test="$procBifSide_ = '0'">
-		 						<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-							</xsl:when>
-							<xsl:when test="$procBifSide_ = '1'">
-		 						<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-							</xsl:when>
-							<xsl:otherwise>0</xsl:otherwise>
-						</xsl:choose>
-					</xsl:variable>
-						
-					<MULTICONN X="{$bcProc_X_}" Y="{$bcProc_Y_}" BUSNAME="{$procBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$procBifRank_}" BIFSIDE="{$procBifSide_}"/>
-				</xsl:when>
-									
-				<xsl:otherwise>
-											
-					<xsl:variable name="modType_"     select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/@MODCLASS"/>
-					<xsl:variable name="modBif_Y_"    select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_Y"/>
-					<xsl:variable name="modBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-					<xsl:variable name="modBusStd_"   select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSSTD"/>
-					<xsl:variable name="memcMOD_W_"   select="((/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $multiInstance_)]]/@MODS_W) * $BLKD_MOD_W)"/>
-								
-					<xsl:variable name="modBc_Y_">
-						<xsl:choose>
-							<xsl:when test="($modType_ = 'MEMORY_CNTLR') and (($modBusStd_ = 'LMB') or ($modBusStd_= 'OCM'))">
-					      		<xsl:value-of select="$BLKD_MOD_H + $BLKD_MOD_LANE_H + ((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * $modBif_Y_))"/>
-							</xsl:when>
-							<xsl:otherwise>
-					      		<xsl:value-of select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * $modBif_Y_) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-							</xsl:otherwise>
-						</xsl:choose>
-					</xsl:variable>   
-<!--					
-					<xsl:message><xsl:value-of select="$multiInstance_"/>.<xsl:value-of select="$bifName_"/>:Y = <xsl:value-of select="$modBif_Y_"/></xsl:message>
-					<xsl:message><xsl:value-of select="$multiInstance_"/>.<xsl:value-of select="$bifName_"/>:BcY = <xsl:value-of select="$modBc_Y_"/></xsl:message>
-					<xsl:message><xsl:value-of select="$multiInstance_"/>.<xsl:value-of select="$bifName_"/>:TcY = <xsl:value-of select="($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V)"/></xsl:message>
--->	
-					
-					<xsl:variable name="modBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-					<xsl:variable name="modBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-					
-<!--					
-					<xsl:variable name="bcMod_Y_"     select="($mulshp_Y_ + $modBc_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2))"/>
--->					
-					<xsl:variable name="bcMod_Y_"     select="($mulshp_Y_ + $modBc_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $cmplxStack_H_diff_)"/>
-					
-					<xsl:variable name="bcMod_X_">
-						<xsl:choose>
-							<xsl:when test="$modBifSide_ = '0'">
-		 						<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($memcMOD_W_ div 2) + $BLKD_BIFC_W))"/>
-							</xsl:when>
-							<xsl:when test="$modBifSide_ = '1'">
-		 						<xsl:value-of select="ceiling($memcMOD_W_ div 2)"/>
-							</xsl:when>
-							<xsl:otherwise>0</xsl:otherwise>
-						</xsl:choose>
-					</xsl:variable>
-						
-					
-					<MULTICONN X="{$bcMod_X_}" Y="{$bcMod_Y_}" BUSNAME="{$modBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$modBifRank_}" BIFSIDE="{$modBifSide_}"/>
-<!--					
-					<MULTICONN X="{$bcInSpace_X_}" Y="{$bcMod_Y_}" BUSSTD="{$busStd}" BIFRANK="{$modBifRank_}" BIFSIDE="{$modBifSide_}"/>
--->					
-						
-					</xsl:otherwise>
-				</xsl:choose>	
-			</xsl:for-each>
-		</xsl:variable>
-					
-		<!-- Draw the busconnection and horizontal lines.-->						
-		<xsl:for-each select="exsl:node-set($multiConns_)/MULTICONN">
-							
-			<xsl:variable name="bus_x_" select="($bcInSpace_X_ + ceiling($BLKD_BIFC_W div 2))"/>
-			<xsl:variable name="bus_y_" select="@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-		
-			<xsl:variable name="h_bus_ul_x_">
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'">
-						<xsl:value-of select="$bus_x_"/>
-					</xsl:when>
-					<xsl:when test="@BIFSIDE='1'">
-						<xsl:value-of select="(@X + $BLKD_BIFC_W + $BLKD_BUS_ARROW_W)"/>
-					</xsl:when>
-				</xsl:choose>
-			</xsl:variable>	
-		
-			<xsl:variable name="h_bus_ul_y_" select="$bus_y_"/>
-	
-			<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-			<xsl:variable name="h_bus_width_">
-<!--				
-				<xsl:message>BUSSTD  <xsl:value-of select="@BUSSTD"/></xsl:message>
-				<xsl:message>BIFSIDE <xsl:value-of select="@BIFSIDE"/></xsl:message>
-				<xsl:message>BIFRANK <xsl:value-of select="@BIFRANK"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'">
-						<xsl:value-of select="(@X - $bus_x_ - $BLKD_BUS_ARROW_W)"/>
-					</xsl:when>
-					<xsl:when test="@BIFSIDE='1'">
-						<xsl:value-of select="$bus_x_ - $h_bus_ul_x_"/>
-					</xsl:when>
-				</xsl:choose>
-			</xsl:variable>		
-			
-			
-			<!-- Draw the horizontal part of the bus -->
-			<rect x="{$h_bus_ul_x_}" 
-		  	  	  y="{$h_bus_ul_y_}"  
-		 	  	  width= "{$h_bus_width_}" 
-		 	 	  height="{$h_bus_height_}" 
-		 	      style="stroke:none; fill:{$busColor_}"/>
-		
-			
-			<!-- Draw the arrow -->
-			<xsl:choose>
-				<xsl:when test="((@BIFSIDE='0') and not((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowEast"/>
-				</xsl:when>
-				<xsl:when test="((@BIFSIDE='1') and not((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowWest"/>
-				</xsl:when>
-				
-				<xsl:when test="((@BIFSIDE='0') and ((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowHInitiator"/>
-				</xsl:when>
-				
-				<xsl:when test="((@BIFSIDE='1') and ((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowHInitiator"/>
-				</xsl:when>
-					
-			</xsl:choose>
-		
-			<use   x="{@X}"   y="{@Y}"  xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/>
-			
-							
-		</xsl:for-each>
-						
-		<xsl:variable name="busTop_" select="math:min(exsl:node-set($multiConns_)/MULTICONN/@Y)"/>
-		<xsl:variable name="busBot_" select="math:max(exsl:node-set($multiConns_)/MULTICONN/@Y)"/>
-<!--	
-		<xsl:variable name="topRnk_" select="(exsl:node-set($multiConns_)/MULTICONN[(@Y = $busTop_)]/@BIFRANK)"/>
-		<xsl:variable name="botRnk_" select="(exsl:node-set($multiConns_)/MULTICONN[(@Y = $busBot_)]/@BIFRANK)"/>
--->	
-	
-		<xsl:variable name="v_bus_y_" select="$busTop_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-		<xsl:variable name="busName_" select="exsl:node-set($multiConns_)/MULTICONN/@BUSNAME"/>
-	
-		<!-- Draw the vertical part of the bus -->	
-		<rect x="{$bcInSpace_X_ + $BLKD_P2P_BUS_W}" 
-	  	  	  y="{$v_bus_y_}"  
-	 	      width= "{$BLKD_P2P_BUS_W}" 
-	 	      height="{($busBot_ - $busTop_) + $BLKD_P2P_BUS_W}" 
-	 	      style="stroke:none; fill:{$busColor_}"/>
-						
-	<!-- Place the bus label.-->	
-		<text class="p2pbuslabel" 
-			  x="{$bcInSpace_X_   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
-			  y="{$busTop_ + ($BLKD_BUS_ARROW_H * 3)}">
-			<xsl:value-of select="$busName_"/>
-		</text>	
-	
-<!--						
-		<xsl:message>Bot Rank  <xsl:value-of select="$botRnk_"/></xsl:message>	
--->						
-						
-<!--	
-		<xsl:call-template name="Draw_P2PBus">
-			<xsl:with-param name="busX"    select="$bcInSpace_X_"/>
-			<xsl:with-param name="busTop"  select="$busTop_"/>
-			<xsl:with-param name="busBot"  select="$busBot_"/>
-			<xsl:with-param name="topRnk"  select="$topRnk_"/>
-			<xsl:with-param name="botRnk"  select="$botRnk_"/>
-			<xsl:with-param name="busStd"  select="$busStd"/>
-			<xsl:with-param name="busName" select="$busName"/>
-		</xsl:call-template>
--->	
-					
-</xsl:template>	
-	
-	
-<!-- 
-		 ===========================================================
-			Handle Processor to processor connections
-		 ===========================================================
--->
-<xsl:template name="BCLaneSpace_ProcToProc">	
-	
-	<xsl:param name="iBusStd"         select="'NONE'"/>	
-	<xsl:param name="iBusName"        select="'NONE'"/>	
-	<xsl:param name="iBifRank"        select="'NONE'"/>	
-	<xsl:param name="iStackToEast"    select="'NONE'"/>	
-	<xsl:param name="iStackToWest"    select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W"  select="0"/>	
-	<xsl:param name="iStackToWest_W"  select="0"/>	
-	<xsl:param name="iLaneInSpace_X"  select="0"/>	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>							
-		
-	<xsl:variable name="pr2pr_StackToWest_"   select="math:min(BUSCONN/@STACK_HORIZ_INDEX)"/>
-	<xsl:variable name="pr2pr_StackToEast_"   select="math:max(BUSCONN/@STACK_HORIZ_INDEX)"/>
-	<xsl:variable name="proc2procConn_heights_">
-	
-	<xsl:for-each select="BUSCONN">
-					
-		<xsl:variable name="procInstance_" select="@INSTANCE"/>
-		<xsl:variable name="bifName_"      select="@BUSINTERFACE"/>
-		<xsl:variable name="procshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInstance_)]/@STACK_HORIZ_INDEX"/>
-		<xsl:variable name="procshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInstance_)]/@SHAPE_VERTI_INDEX"/>
-		<xsl:variable name="procshp_Y_">
-			<xsl:call-template name="_calc_Stack_Shape_Y">
-				<xsl:with-param name="iHorizIdx"  select="$procshp_hori_idx_"/>
-				<xsl:with-param name="iVertiIdx"  select="$procshp_vert_idx_"/>
-			</xsl:call-template>
-		</xsl:variable>
-						
-		<xsl:variable name="procStack_H_diff_">
-			<xsl:choose>
-				<xsl:when test="   (($pr2pr_StackToEast_ = 'NONE') or ($pr2pr_StackToWest_ = 'NONE'))">0</xsl:when>
-				<xsl:when test="not(($pr2pr_StackToEast_ = 'NONE') or ($pr2pr_StackToWest_ = 'NONE'))">
-			
-					<xsl:variable name="stackToWest_AbvSbs_H_">
-						<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-							<xsl:with-param name="iStackIdx"  select="$pr2pr_StackToWest_"/>
-						</xsl:call-template>
-					</xsl:variable>
-				
-					<xsl:variable name="stackToEast_AbvSbs_H_">
-						<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-							<xsl:with-param name="iStackIdx"  select="$pr2pr_StackToEast_"/>
-						</xsl:call-template>
-					</xsl:variable>
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-					<xsl:choose>
-						<xsl:when test="(($procshp_hori_idx_ = $pr2pr_StackToEast_) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-							<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-						</xsl:when>	
-						<xsl:when test="(($procshp_hori_idx_ = $pr2pr_StackToWest_) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-							<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-						</xsl:when>	
-						<xsl:otherwise>0</xsl:otherwise>	
-					</xsl:choose>	
-										
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>
-						
-		<!-- Store the conns in a variable -->	
-		<xsl:variable name="procBif_Y_"   select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-											
-		<xsl:variable name="procBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-		<xsl:variable name="procBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-									
-		<xsl:variable name="bcInSpace_X_">
-			<xsl:choose>
-				<xsl:when test="$procBifSide_ = '1'"><xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/></xsl:when>
-				<xsl:when test="$procBifSide_ = '0'"><xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - ceiling($BLKD_MOD_W div 2) - $BLKD_BIFC_W)"/></xsl:when>
-			</xsl:choose>
-		</xsl:variable> 
-							
-		<xsl:variable name="bcProc_Y_"     select="($procshp_Y_ + $procBif_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $procStack_H_diff_)"/>
-<!--							
-		<xsl:message>Conn X <xsl:value-of select="$bcInSpace_X_"/></xsl:message>
-		<xsl:message>Conn Y <xsl:value-of select="$bcProc_Y_"/></xsl:message>
--->							
-										
-				<PR2PRCONN X="{$bcInSpace_X_}" Y="{$bcProc_Y_}" BUSSTD="{$iBusStd}" BIFRANK="{$procBifRank_}" BIFSIDE="{$procBifSide_}" SHAPE_ID="{$procshp_hori_idx_}"/>
-			</xsl:for-each>
-		</xsl:variable>
-					
-		<xsl:variable name="pr2prLeft_"   select="math:min(exsl:node-set($proc2procConn_heights_)/PR2PRCONN/@SHAPE_ID)"/>
-		<xsl:variable name="pr2prRght_"   select="math:max(exsl:node-set($proc2procConn_heights_)/PR2PRCONN/@SHAPE_ID)"/>
-				
-		<xsl:variable name="pr2pr_stack_Left_X_">
-			<xsl:call-template name="_calc_Stack_X"> 
-				<xsl:with-param name="iStackIdx"  select="$pr2prLeft_"/>
-			</xsl:call-template>		
-		</xsl:variable>	
-					
-		<xsl:variable name="pr2pr_stack_Rght_X_">
-			<xsl:call-template name="_calc_Stack_X"> 
-				<xsl:with-param name="iStackIdx"  select="$pr2prRght_"/>
-			</xsl:call-template>		
-		</xsl:variable>	
-					
-<!--					
-					<xsl:message>Left stack X <xsl:value-of select="$pr2pr_stack_Left_X_"/></xsl:message>
-					<xsl:message>Rght stack X <xsl:value-of select="$pr2pr_stack_Rght_X_"/></xsl:message>
--->					
-		<xsl:variable name="pr2pr_space_W_" select="($pr2pr_stack_Rght_X_ - $pr2pr_stack_Left_X_)"/>
-						
-					
-		<xsl:variable name="pr2pr_extStackEast_W_">
-			<xsl:call-template name="_calc_Stack_Width">
-				<xsl:with-param name="iStackIdx"  select="$pr2prRght_"/>
-			</xsl:call-template>
-		</xsl:variable>
-					
-		<xsl:variable name="pr2pr_extStackWest_W_">
-			<xsl:call-template name="_calc_Stack_Width">
-				<xsl:with-param name="iStackIdx"  select="$pr2prLeft_"/>
-			</xsl:call-template>
-		</xsl:variable>
-					
-<!--					
-					<xsl:message>Space W <xsl:value-of select="$pr2pr_space_W_"/></xsl:message>
-					<xsl:message>Rght stack <xsl:value-of select="$pr2pr_extStackEast_W_"/></xsl:message>
-					<xsl:message>Left stack <xsl:value-of select="$pr2pr_extStackWest_W_"/></xsl:message>
--->					
-	
-		<xsl:variable name="connLeft_X_" select="ceiling($BLKD_MOD_W div 2)"/>
-		<xsl:variable name="connRght_X_" select="($pr2pr_space_W_ - ceiling($pr2pr_extStackWest_W_ div 2) + ceiling($pr2pr_extStackEast_W_ div 2) - ceiling($BLKD_MOD_W div 2) - $BLKD_BIFC_W)"/>
-					
-					<!-- Draw the busconnections .-->						
-		<xsl:for-each select="exsl:node-set($proc2procConn_heights_)/PR2PRCONN">
-			<xsl:variable name="conn_X_">
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE = '1'"><xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/></xsl:when>
-					<xsl:when test="@BIFSIDE = '0'"><xsl:value-of select="($pr2pr_space_W_ - ceiling($pr2pr_extStackWest_W_ div 2) + ceiling($pr2pr_extStackEast_W_ div 2) - ceiling($BLKD_MOD_W div 2) - $BLKD_BIFC_W)"/></xsl:when>
-<!--									
-									<xsl:when test="@BIFSIDE = '0'"><xsl:value-of select="($pr2pr_space_W_ + $pr2pr_extStackWest_W_ + $pr2pr_extStackEast_W_ - ceiling($BLKD_MOD_W div 2) - $BLKD_BIFC_W)"/></xsl:when>
--->	
-				</xsl:choose>
-			</xsl:variable> 
-							
-						
-			<use   x="{$conn_X_}"   y="{@Y}"  xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/>
-		</xsl:for-each>
-					
-		<xsl:variable name="bc_Y_"     select="math:min(exsl:node-set($proc2procConn_heights_)/PR2PRCONN/@Y)"/>
-		<xsl:variable name="bcLeft_"   select="math:min(exsl:node-set($proc2procConn_heights_)/PR2PRCONN/@X)"/>
-		<xsl:variable name="bcRght_"   select="math:max(exsl:node-set($proc2procConn_heights_)/PR2PRCONN/@X)"/>
-					
-		<xsl:variable name="leftRnk_"  select="(exsl:node-set($proc2procConn_heights_)/PR2PRCONN[(@X = $bcLeft_)]/@BIFRANK)"/>
-		<xsl:variable name="rghtRnk_"  select="(exsl:node-set($proc2procConn_heights_)/PR2PRCONN[(@X = $bcRght_)]/@BIFRANK)"/>
-						
-		<xsl:call-template name="Draw_Proc2ProcBus">
-			<xsl:with-param name="iBc_Y"     select="$bc_Y_"/>
-			<xsl:with-param name="iBusStd"   select="$iBusStd"/>
-			<xsl:with-param name="iBusName"  select="$iBusName"/>
-			<xsl:with-param name="iLeftRnk"  select="$leftRnk_"/>
-			<xsl:with-param name="iRghtRnk"  select="$rghtRnk_"/>
-			<xsl:with-param name="iBcLeft_X" select="$connLeft_X_ + $BLKD_BIFC_W"/>
-			<xsl:with-param name="iBcRght_X" select="$connRght_X_"/>
-		</xsl:call-template>
-				
-</xsl:template>	
-	
-<!-- 
-		 ===========================================================
-			Handle connections to the MPMC
-		 ===========================================================
--->
-<xsl:template name="BCLaneSpace_ToStandAloneMPMC">	
-	
-	<xsl:param name="iBusStd"        select="'NONE'"/>	
-	<xsl:param name="iBusName"       select="'NONE'"/>	
-	<xsl:param name="iBifRank"       select="'NONE'"/>	
-	<xsl:param name="iStackToEast"   select="'NONE'"/>	
-	<xsl:param name="iStackToWest"   select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W" select="0"/>	
-	<xsl:param name="iStackToWest_W" select="0"/>	
-	<xsl:param name="iLaneInSpace_X" select="0"/>	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="busColor_lt_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>							
-	
-	<xsl:variable name="bcInSpace_X_"  select="($iLaneInSpace_X +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-	<xsl:variable name="p2pInstance_" select="BUSCONN[(@BIF_Y)]/@INSTANCE"/>
-					
-	<xsl:variable name="p2pshp_hori_idx_">
-		<xsl:choose>
-			<xsl:when test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]">
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]/@STACK_HORIZ_INDEX"/>
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $p2pInstance_)])]/@STACK_HORIZ_INDEX"/>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>		
-					
-	<xsl:variable name="p2pshp_vert_idx_">
-		<xsl:choose>
-			<xsl:when test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]">
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]/@SHAPE_VERTI_INDEX"/>
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $p2pInstance_)])]/@SHAPE_VERTI_INDEX"/>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>		
-					
-	<xsl:variable name="p2pshp_Y_">
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$p2pshp_hori_idx_"/>
-			<xsl:with-param name="iVertiIdx"  select="$p2pshp_vert_idx_"/>
-		</xsl:call-template>
-	</xsl:variable>
-			
-	<xsl:variable name="cmplxStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-				
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				
-				<xsl:choose>
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-									
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-						
-	<xsl:variable name="procStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-			
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-									
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-						
-	
-	
-	<!-- Store the conns in a variable -->	
-	<xsl:variable name="p2pConn_heights_">
-	
-		<xsl:for-each select="BUSCONN">
-									
-			<xsl:variable name="bifName_" select="@BUSINTERFACE"/>
-							
-				<xsl:choose>
-					<xsl:when test="@IS_PROCCONN and @BIF_Y">
-										
-<!--										
-										<xsl:message>Proc <xsl:value-of select="$procInstance_"/></xsl:message>
--->										
-						<xsl:variable name="procBif_Y_"   select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-						<xsl:variable name="procBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $p2pInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-						<xsl:variable name="procBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $p2pInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-						<xsl:variable name="procBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $p2pInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-										
-						<xsl:variable name="bcProc_Y_"     select="($p2pshp_Y_ + $procBif_Y_ + ceiling($BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $procStack_H_diff_)"/>
-						<xsl:variable name="bcProc_X_">
-							<xsl:choose>
-								<xsl:when test="$procBifSide_ = '0'">
-		 							<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-								</xsl:when>
-								<xsl:when test="$procBifSide_ = '1'">
-		 							<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-								</xsl:when>
-								<xsl:otherwise>0</xsl:otherwise>
-							</xsl:choose>
-						</xsl:variable>
-						
-						<P2PCONN X="{$bcProc_X_}" Y="{$bcProc_Y_}" BUSNAME= "{$procBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$procBifRank_}" BIFSIDE="{$procBifSide_}"/>
-										
-					</xsl:when>
-									
-					<xsl:otherwise>
-										
-						<xsl:variable name="modInstance_"     select="@INSTANCE"/>
-						<xsl:variable name="modshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $modInstance_)]]/@SHAPE_VERTI_INDEX"/>
-						<xsl:variable name="modBifSide_"      select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-						<xsl:variable name="modBif_Y_"        select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_Y"/>
-						<xsl:variable name="modBc_Y_"         select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * $modBif_Y_) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-										
-<!--										
-						<xsl:message>Memory Instance <xsl:value-of select="$procInstance_"/></xsl:message>
--->										
-						
-						<xsl:variable name="modshp_Y_">
-							<xsl:call-template name="_calc_Stack_Shape_Y">
-								<xsl:with-param name="iHorizIdx"  select="$p2pshp_hori_idx_"/>
-								<xsl:with-param name="iVertiIdx"  select="$modshp_vert_idx_"/>
-							</xsl:call-template>
-						</xsl:variable>
-										
-						<xsl:variable name="modBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-						<xsl:variable name="modBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-						<xsl:variable name="bcMod_Y_"     select="($modshp_Y_ + $modBc_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $cmplxStack_H_diff_)"/>
-						<xsl:variable name="bcMod_X_">
-							<xsl:choose>
-								<xsl:when test="$modBifSide_ = '0'">
-		 							<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-								</xsl:when>
-								<xsl:when test="$modBifSide_ = '1'">
-		 							<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-								</xsl:when>
-								<xsl:otherwise>0</xsl:otherwise>
-							</xsl:choose>
-						</xsl:variable>
-						
-						<P2PCONN X="{$bcMod_X_}" Y="{$bcMod_Y_}" BUSNAME="{$modBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$modBifRank_}" BIFSIDE="{$modBifSide_}"/>
-						
-					</xsl:otherwise>
-									
-				</xsl:choose>
-			</xsl:for-each>
-		</xsl:variable>
-	
-	
-	<xsl:variable name="busTop_"  select="math:min(exsl:node-set($p2pConn_heights_)/P2PCONN/@Y)"/>
-	<xsl:variable name="busBot_"  select="math:max(exsl:node-set($p2pConn_heights_)/P2PCONN/@Y)"/>
-	<xsl:variable name="v_bus_y_" select="$busTop_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-	
-	<xsl:variable name="busName_" select="exsl:node-set($p2pConn_heights_)/P2PCONN/@BUSNAME"/>
-	<xsl:variable name="busStd_"  select="exsl:node-set($p2pConn_heights_)/P2PCONN/@BUSSTD"/>
-	
-<!--	
-	<xsl:message>BUS TOP <xsl:value-of select="$busTop_"/></xsl:message>
-	<xsl:message>BUS BOT <xsl:value-of select="$busBot_"/></xsl:message>
--->
-	
-	<!-- Draw the vertical part of the bus -->	
-<!--	
-	<rect x="{$bcInSpace_X_ + $BLKD_P2P_BUS_W}" 
-	  	  y="0"  
-	 	  width= "{$BLKD_P2P_BUS_W}" 
-	 	  height="{200 + $BLKD_P2P_BUS_W}" 
-	 	  style="stroke:none;fill:{$busColor_}"/>
--->	
-	
-	<!-- Place the bus label.-->	
-<!--	
-	<text class="p2pbuslabel" 
-			  x="{$bcInSpace_X_   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
-			  y="{$busTop_ + ($BLKD_BUS_ARROW_H * 3)}">
-			<xsl:value-of select="$busName_"/>
-	</text>	
--->	
-						
-		<!-- Draw the busconnection and horizontal lines.-->						
-		<xsl:for-each select="exsl:node-set($p2pConn_heights_)/P2PCONN">
-							
-			<xsl:variable name="bus_x_" select="($bcInSpace_X_ + ceiling($BLKD_BIFC_W div 2))"/>
-			<xsl:variable name="bus_y_" select="@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-		
-			<xsl:variable name="h_bus_ul_x_">
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'">
-						<xsl:value-of select="$bus_x_"/>
-					</xsl:when>
-					<xsl:when test="@BIFSIDE='1'">
-						<xsl:value-of select="(@X + $BLKD_BIFC_W + $BLKD_BUS_ARROW_W) - 1"/>
-					</xsl:when>
-				</xsl:choose>
-			</xsl:variable>	
-		
-			<xsl:variable name="h_bus_ul_y_" select="$bus_y_"/>
-	
-			<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-			<xsl:variable name="h_bus_width_">
-<!--				
-				<xsl:message>BIFSIDE <xsl:value-of select="@BIFSIDE"/></xsl:message>
-				<xsl:message>BUSSTD  <xsl:value-of select="@BUSSTD"/></xsl:message>
-				<xsl:message>BIFRANK <xsl:value-of select="@BIFRANK"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'">
-						<xsl:value-of select="(@X - $bus_x_ - $BLKD_BUS_ARROW_W)"/>
-					</xsl:when>
-					<xsl:when test="@BIFSIDE='1'">
-						<xsl:value-of select="$bus_x_ - $h_bus_ul_x_ + 1"/>
-					</xsl:when>
-					
-				</xsl:choose>
-			</xsl:variable>	
-			
-			<!-- Draw Bus connection-->
-			<use   x="{@X}"   y="{@Y}"  xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/>
-			
-			<!-- Draw the arrow -->
-			<xsl:choose>
-				<xsl:when test="((@BIFSIDE='0') and not((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowEast"/>
-				</xsl:when>
-				<xsl:when test="((@BIFSIDE='1') and not((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowWest"/>
-				</xsl:when>
-				
-				<xsl:when test="((@BIFSIDE='0') and ((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowHInitiator"/>
-				</xsl:when>
-				
-				<xsl:when test="((@BIFSIDE='1') and ((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowHInitiator"/>
-				</xsl:when>
-					
-			</xsl:choose>
-		
-			<!-- Draw the horizontal part of the bus -->
-			<rect x="{$h_bus_ul_x_}" 
-		  	  	  y="{$h_bus_ul_y_}"  
-		 	  	  width= "{$h_bus_width_}" 
-		 	 	  height="{$h_bus_height_}" 
-				
-		 	      style="stroke:none; fill:{$busColor_}"/>
-			
-			<!-- 
-				Draw the vertical part of the bus. The MPMC BIF and the top arrow will
-				be added later when the main drawing happens.
-			-->
-			<xsl:variable name="v_bus_ul_x_">
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'"><xsl:value-of select="($h_bus_ul_x_)"/></xsl:when>
-					<xsl:when test="@BIFSIDE='1'"><xsl:value-of select="($h_bus_ul_x_ + $h_bus_width_ - $BLKD_P2P_BUS_W)"/></xsl:when>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<rect x="{$v_bus_ul_x_}" 
-		  	  	  y="0"  
-		 	  	  width= "{$BLKD_P2P_BUS_W}" 
-		  	  	  height="{$h_bus_ul_y_}"  
-		 	      style="stroke:none; fill:{$busColor_}"/>
-			
-<!--			
-			<text class="p2pbuslabel" 
-				  x="{$v_bus_ul_x_   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4)}"
-				  y="{($BLKD_BUS_ARROW_H * 3)}"><xsl:value-of select="$busName_"/></text>	
--->	
-		
-	</xsl:for-each>
-						
-						
-</xsl:template>	
-	
-	
-				
-<!-- 
-	 ======================================================================
-     Handle Split connections, (connections that go between adjacent stacks)
-	 ======================================================================
--->
-	
-<xsl:template name="BCLaneSpace_SplitConn">	
-	
-	<xsl:param name="iBusStd"          select="'NONE'"/>	
-	<xsl:param name="iBusName"         select="'NONE'"/>	
-	<xsl:param name="iBifRank"         select="'NONE'"/>	
-	<xsl:param name="iStackToEast"     select="'NONE'"/>	
-	<xsl:param name="iStackToWest"     select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W"   select="0"/>	
-	<xsl:param name="iStackToWest_W"   select="0"/>	
-	<xsl:param name="iLaneInSpace_X"   select="0"/>	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>							
-			
-					
-	<xsl:variable name="bifName_"      select="BUSCONN/@BUSINTERFACE"/>
-	<xsl:variable name="shpInstance_"  select="BUSCONN/@INSTANCE"/>
-					
-<!--					
-			<xsl:message>Found a split connection on <xsl:value-of select="$shpInstance_"/></xsl:message>	
--->					
-						
-					
-		<xsl:variable name="shp_hori_idx_">
-						
-			<xsl:choose>
-				<xsl:when  test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $shpInstance_)]">
-					<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $shpInstance_)]/@STACK_HORIZ_INDEX"/>
-				</xsl:when>
-							
-				<xsl:when  test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $shpInstance_)])]">
-					<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $shpInstance_)])]/@STACK_HORIZ_INDEX"/>
-				</xsl:when>
-				<xsl:otherwise>_unknown_</xsl:otherwise>
-			</xsl:choose>		
-						
-		</xsl:variable> 
-					
-		<xsl:variable name="shp_vert_idx_">
-						
-			<xsl:choose>
-				<xsl:when  test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $shpInstance_)]">
-					<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $shpInstance_)]/@SHAPE_VERTI_INDEX"/>
-				</xsl:when>
-							
-				<xsl:when  test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $shpInstance_)])]">
-					<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $shpInstance_)])]/@SHAPE_VERTI_INDEX"/>
-				</xsl:when>
-				<xsl:otherwise>_unknown_</xsl:otherwise>
-			</xsl:choose>		
-						
-		</xsl:variable> 
-					
-		<xsl:variable name="splitshp_Width_">
-						
-			<xsl:choose>
-				<xsl:when  test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $shpInstance_)]">
-					<xsl:value-of select="$BLKD_MOD_W"/>
-				</xsl:when>
-						
-				<xsl:when  test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $shpInstance_)])]/@MODS_W">
-<!--								
-								<xsl:message>Using mods width on <xsl:value-of select="$shpInstance_"/></xsl:message>
--->								
-					<xsl:value-of select="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $shpInstance_)])]/@MODS_W * $BLKD_MOD_W)"/>
-				</xsl:when>
-				<xsl:otherwise>
-					<xsl:value-of select="$BLKD_MOD_W"/>
-				</xsl:otherwise>
-			</xsl:choose>		
-						
-		</xsl:variable> 
-					
-<!--					
-					<xsl:message>Found width of <xsl:value-of select="$splitshp_Width_"/></xsl:message>
--->					
-	
-					
-		<xsl:variable name="splitshp_Y_">
-			<xsl:call-template name="_calc_Stack_Shape_Y">
-				<xsl:with-param name="iHorizIdx"  select="$shp_hori_idx_"/>
-				<xsl:with-param name="iVertiIdx"  select="$shp_vert_idx_"/>
-			</xsl:call-template>
-		</xsl:variable>
-					
-						
-		<xsl:variable name="splitStack_H_diff_">
-			<xsl:choose>
-				<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-				<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-	
-					<xsl:variable name="stackToWest_AbvSbs_H_">
-						<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-							<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-						</xsl:call-template>
-					</xsl:variable>
-				
-					<xsl:variable name="stackToEast_AbvSbs_H_">
-						<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-							<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-						</xsl:call-template>
-					</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-					<xsl:choose>
-						<xsl:when test="(($shp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-							<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-						</xsl:when>	
-						<xsl:when test="(($shp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-							<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-						</xsl:when>	
-						<xsl:otherwise>0</xsl:otherwise>	
-					</xsl:choose>	
-										
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>
-						
-					
-		<xsl:variable name="splitBif_Y_"    select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * BUSCONN/@BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-		<xsl:variable name="splitBusStd_"   select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $shpInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSSTD"/>
-		<xsl:variable name="splitBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $shpInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-		<xsl:variable name="splitBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $shpInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-									
-		<xsl:variable name="bcInSpace_X_">
-			<xsl:choose>
-				<xsl:when test="$splitBifSide_ = '1'"><xsl:value-of select="ceiling($splitshp_Width_ div 2)"/></xsl:when>
-				<xsl:when test="$splitBifSide_ = '0'"><xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - ceiling($splitshp_Width_ div 2) - $BLKD_BIFC_W)"/></xsl:when>
-			</xsl:choose>
-								
-		</xsl:variable> 
-					
-		<xsl:variable name="bcBus_X_">
-			<xsl:choose>
-				<xsl:when test="$splitBifSide_ = '1'"><xsl:value-of select="$bcInSpace_X_"/></xsl:when>
-				<xsl:when test="$splitBifSide_ = '0'"><xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - ceiling($BLKD_MOD_W div 2) - $BLKD_BIFC_W)"/></xsl:when>
-			</xsl:choose>
-		</xsl:variable> 
-							
-		<xsl:variable name="bcSplit_Y_">
-			<xsl:choose>
-				<xsl:when test="(BUSCONN/@IS_MEMCONN) and (($splitBusStd_ = 'LMB') or ($splitBusStd_ = 'OCM'))">
-<!--								
-					<xsl:message>Found memory conn split connection on <xsl:value-of select="$shpInstance_"/> </xsl:message>
--->	
-					<xsl:value-of select="($splitshp_Y_ + $BLKD_MOD_H + $BLKD_MOD_BIF_GAP_V + (BUSCONN/@BIF_Y * ($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V)) + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $splitStack_H_diff_)"/>
-				</xsl:when>     
-				<xsl:otherwise>
-					<xsl:value-of select="($splitshp_Y_ + $splitBif_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $splitStack_H_diff_)"/>
-				</xsl:otherwise>
-			</xsl:choose>
-		</xsl:variable>    
-<!--								
-								<xsl:value-of select="($splitshp_Y_ + $splitBif_Y_ + ceiling($BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $splitStack_H_diff_)"/>
--->								
-<!--					
-					<xsl:message>VERTI INDEX <xsl:value-of select="$shp_vert_idx_"/></xsl:message>	
-					<xsl:message>BIF Y <xsl:value-of select="$splitBif_Y_"/></xsl:message>	
-					<xsl:message>HORIZ INDEX <xsl:value-of select="$shp_hori_idx_"/></xsl:message>	
--->					
-					
-	<use   x="{$bcInSpace_X_}"   y="{$bcSplit_Y_}"  xlink:href="#{@BUSSTD}_busconn_{$splitBifRank_}"/>
-					
-			
-	<xsl:call-template name="Draw_SplitConnBus">
-		<xsl:with-param name="iBc_Y"    select="$bcSplit_Y_"/>
-		<xsl:with-param name="iBc_X"    select="$bcInSpace_X_"/>
-		<xsl:with-param name="iBc_Rnk"  select="$splitBifRank_"/>
-		<xsl:with-param name="iBc_Side" select="$splitBifSide_"/>
-		<xsl:with-param name="iBusStd"  select="$iBusStd"/>
-		<xsl:with-param name="iBusName" select="$iBusName"/>
-	</xsl:call-template>
-					
-	
-</xsl:template>	
-	
-	
-<xsl:template name="Define_BusLaneSpace"> 
-	
-	<xsl:param name="iStackToEast"  select="'NONE'"/>
-	<xsl:param name="iStackToWest"  select="'NONE'"/>
-	
-<!--	
-	<xsl:message>Input Stack to West <xsl:value-of select="$iStackToWest"/></xsl:message>
-	<xsl:message>Input Stack to East <xsl:value-of select="$iStackToEast"/></xsl:message>
--->
-	
-	<xsl:variable name="stackToEast_">
-		<xsl:choose>
-			<xsl:when test="not($iStackToEast = 'NONE')"><xsl:value-of select="$iStackToEast"/></xsl:when>
-			<xsl:otherwise>NONE</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-	<xsl:variable name="stackToWest_">
-		<xsl:choose>
-			<xsl:when test=" not($iStackToWest = 'NONE')"><xsl:value-of select="$iStackToWest"/></xsl:when>
-			<xsl:when test="(not($iStackToEast = 'NONE') and not($iStackToEast = '0'))"><xsl:value-of select="($iStackToEast - 1)"/></xsl:when>
-			<xsl:otherwise>NONE</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-<!--	
-	<xsl:message>Stack to West <xsl:value-of select="$stackToWest_"/></xsl:message>
-	<xsl:message>Stack to East <xsl:value-of select="$stackToEast_"/></xsl:message>
-	<xsl:message>Stack abv diff  <xsl:value-of select="$stack_H_diff_"/></xsl:message>
--->	
-	
-	<xsl:variable name="spaceAbvSbs_H_">
-		<xsl:call-template name="_calc_Space_AbvSbs_Height">
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>
-	</xsl:variable>	
-	
-	<xsl:variable name="spaceBlwSbs_H_">
-		<xsl:call-template name="_calc_Space_BlwSbs_Height">
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>
-	</xsl:variable>	
-	
-	
-	<xsl:variable name="space_H_" select="($spaceAbvSbs_H_ + $BLKD_PROC2SBS_GAP + $G_total_SharedBus_H + $spaceBlwSbs_H_)"/>
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name="spaceSharedBus_Y_" select="$spaceAbvSbs_H_ + $BLKD_PROC2SBS_GAP"/>
-	
-	<xsl:variable name="space_name_">
-		<xsl:call-template name="_gen_Space_Name"> 
-			<xsl:with-param name="iStackToEast"  select="$stackToEast_"/>
-			<xsl:with-param name="iStackToWest"  select="$stackToWest_"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>Stack Width <xsl:value-of select="$space_W_"/></xsl:message>
-	<xsl:message>Space Name <xsl:value-of select="$space_name_"/></xsl:message>
-	<xsl:message>Stack Abv <xsl:value-of select="$spaceAbvSbs_H_"/></xsl:message>
-	<xsl:message>Stack Blw <xsl:value-of select="$spaceBlwSbs_H_"/></xsl:message>
-	<xsl:message>Total Sbs <xsl:value-of select="$totalSbs_H_"/></xsl:message>
--->	
-	
-	<xsl:variable name = "stackToWest_W_">
-		<xsl:choose>
-			<xsl:when test="(($iStackToEast = '0')    and    ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="(($iStackToEast = 'NONE') and not($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_Width">
-					<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:when test="(not($iStackToEast = '0') and not($iStackToEast = 'NONE') and ($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_Width">
-					<xsl:with-param name="iStackIdx"  select="($iStackToEast - 1)"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:otherwise>0</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name = "stackToEast_W_">
-		<xsl:call-template name="_calc_Stack_Width">
-			<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($stackToWest_W_ div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($stackToEast_W_ div 2)"/>
-	
-<!--	
-	<xsl:message>Stack To West <xsl:value-of select="$stackToWest_W_"/></xsl:message>
-	<xsl:message>Stack To East <xsl:value-of select="$stackToEast_W_"/></xsl:message>
--->	
-	
-	<symbol id="{$space_name_}">
-
-<!--	
-		<rect x="0" 
-	  	  	  y="0"  
-			  width= "100" 
-		 	  height="200" 
-		 	  style="stroke:none; fill:{$COL_WHITE}"/>
--->		
-		
-		 <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[((@EAST = $iStackToEast) or (($iStackToEast = 'NONE') and (@WEST = $iStackToWest)))]/BUSCONNLANE[@BUSSTD and @BUSNAME]">
-				
-				<xsl:variable name="busStd_"          select="@BUSSTD"/>
-				<xsl:variable name="busName_"         select="@BUSNAME"/>
-				<xsl:variable name="lane_X_"          select="@BUSLANE_X"/>
-<!--			 
-				<xsl:variable name="laneInSpace_X_"   select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W))"/>
-				<xsl:message>Oriented <xsl:value-of select="@ORIENTED"/></xsl:message>
-				<xsl:message>laneInSpace_XY <xsl:value-of select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W))"/></xsl:message>
-				<xsl:message>Lane in space X <xsl:value-of select="$laneInSpace_X_"/></xsl:message>
--->	
-			 
-				<xsl:variable name="laneInSpace_X_">
-					<xsl:choose>
-					   <xsl:when test="(@ORIENTED = 'EAST')">
-						   <xsl:value-of select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W) - $BLKD_BUS_ARROW_W - $BLKD_P2P_BUS_W)"/>
-					   </xsl:when>
-					   <xsl:otherwise><xsl:value-of select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W))"/></xsl:otherwise>
-					</xsl:choose>
-				</xsl:variable> 
-						
-			 
-				<xsl:variable name="busColor_">
-					<xsl:call-template name="BusType2Color">
-						<xsl:with-param name="iBusType" select="@BUSSTD"/>
-					</xsl:call-template>	
-				</xsl:variable>
-				
-				<xsl:choose>
-<!-- 
-		 ===========================================================
-			Handle Bucket connections to the shared busses.
-		 ===========================================================
--->
-					<xsl:when test="@BUSLANE_X and @IS_BKTCONN and BUSCONN[@BIFRANK] and /EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $busName_)]/@BUSINDEX">
-						<xsl:call-template name="BCLaneSpace_BucketToSharedBus">
-							<xsl:with-param name="iBusName"           select="$busName_"/>
-							<xsl:with-param name="iBusStd"            select="$busStd_"/>
-							<xsl:with-param name="iBifRank"           select="BUSCONN/@BIFRANK"/>
-							<xsl:with-param name="iStackToEast"       select="$stackToEast_"/>
-							<xsl:with-param name="iStackToWest"       select="$stackToWest_"/>
-							<xsl:with-param name="iStackToEast_W"     select="$stackToEast_W_"/>
-							<xsl:with-param name="iStackToWest_W"     select="$stackToWest_W_"/>
-							<xsl:with-param name="iLaneInSpace_X"     select="$laneInSpace_X_"/>
-							<xsl:with-param name="iSpaceSharedBus_Y"  select="$spaceSharedBus_Y_"/>
-						</xsl:call-template>	
-<!--						
--->						
-					</xsl:when>
-					
-<!--
-		 ===========================================================
-			Handle Processor's Shared bus connections.
-		 ===========================================================
--->
-					<xsl:when test="@BUSLANE_X and @IS_SBSCONN and not(@IS_MPMCCONN) and BUSCONN[@BIF_Y and @IS_PROCCONN and @INSTANCE and @BUSINTERFACE] and /EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $busName_)]/@BUSINDEX">
-						<xsl:call-template name="BCLaneSpace_ProcBifToSharedBus">
-							<xsl:with-param name="iBusStd"            select="$busStd_"/>
-							<xsl:with-param name="iBusName"           select="$busName_"/>
-							<xsl:with-param name="iBifRank"           select="BUSCONN/@BIFRANK"/>
-							<xsl:with-param name="iStackToEast"       select="$stackToEast_"/>
-							<xsl:with-param name="iStackToWest"       select="$stackToWest_"/>
-							<xsl:with-param name="iStackToEast_W"     select="$stackToEast_W_"/>
-							<xsl:with-param name="iStackToWest_W"     select="$stackToWest_W_"/>
-							<xsl:with-param name="iLaneInSpace_X"     select="$laneInSpace_X_"/>
-							<xsl:with-param name="iSpaceSharedBus_Y"  select="$spaceSharedBus_Y_"/>
-						</xsl:call-template>	
-<!--						
--->	
-					</xsl:when>	
-					
-<!--
-		 ===========================================================
-			Handle non Processor Shared Bus connections.
-		 ===========================================================
--->
-					<xsl:when test="@BUSLANE_X and @IS_SBSCONN and not(@IS_MPMCCONN) and BUSCONN[@BIF_Y and not(@IS_PROCCONN) and @INSTANCE and @BUSINTERFACE] and /EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $busName_)]/@BUSINDEX">
-						<xsl:call-template name="BCLaneSpace_NonProcBifToSharedBus">
-							<xsl:with-param name="iBusStd"            select="$busStd_"/>
-							<xsl:with-param name="iBusName"           select="$busName_"/>
-							<xsl:with-param name="iBifRank"           select="BUSCONN/@BIFRANK"/>
-							<xsl:with-param name="iStackToEast"       select="$stackToEast_"/>
-							<xsl:with-param name="iStackToWest"       select="$stackToWest_"/>
-							<xsl:with-param name="iStackToEast_W"     select="$stackToEast_W_"/>
-							<xsl:with-param name="iStackToWest_W"     select="$stackToWest_W_"/>
-							<xsl:with-param name="iLaneInSpace_X"     select="$laneInSpace_X_"/>
-							<xsl:with-param name="iSpaceSharedBus_Y"  select="$spaceSharedBus_Y_"/>
-						</xsl:call-template>	
-<!--						
--->	
-					</xsl:when>					
-					
-<!-- 
-		 ===========================================================
-			Handle connections from processors to Memory UNITs
-		 ===========================================================
--->			
-					<xsl:when test="@BUSLANE_X and @IS_MEMCONN and not(@IS_MULTISTK) and BUSCONN[@BIF_Y and @IS_PROCCONN and not(@IS_SPLITCONN) and @INSTANCE and @BUSINTERFACE]">
-						<xsl:call-template name="BCLaneSpace_ProcBifToMemoryUnit">
-							<xsl:with-param name="iBusStd"         select="$busStd_"/>
-							<xsl:with-param name="iBusName"        select="$busName_"/>
-							<xsl:with-param name="iBifRank"        select="BUSCONN/@BIFRANK"/>
-							<xsl:with-param name="iStackToEast"    select="$stackToEast_"/>
-							<xsl:with-param name="iStackToWest"    select="$stackToWest_"/>
-							<xsl:with-param name="iStackToEast_W"  select="$stackToEast_W_"/>
-							<xsl:with-param name="iStackToWest_W"  select="$stackToWest_W_"/>
-							<xsl:with-param name="iLaneInSpace_X"  select="$laneInSpace_X_"/>
-						</xsl:call-template>	
-<!--						
--->	
-					</xsl:when>				
-				
-					
-<!-- 
-		 ===========================================================
-			Handle generic Point to Point connections
-		 ===========================================================
--->
-					<xsl:when test="@BUSLANE_X and not(@IS_MULTISTK) and not(@IS_MPMCCONN) and not(@IS_MEMCONN) and not(@IS_SBSCONN) and BUSCONN[@BIF_Y and @INSTANCE and @BUSINTERFACE and not(@IS_SPLITCONN)]">
-						<xsl:call-template name="BCLaneSpace_PointToPoint">
-							<xsl:with-param name="iBusStd"         select="$busStd_"/>
-							<xsl:with-param name="iBusName"        select="$busName_"/>
-							<xsl:with-param name="iBifRank"        select="BUSCONN/@BIFRANK"/>
-							<xsl:with-param name="iStackToEast"    select="$stackToEast_"/>
-							<xsl:with-param name="iStackToWest"    select="$stackToWest_"/>
-							<xsl:with-param name="iStackToEast_W"  select="$stackToEast_W_"/>
-							<xsl:with-param name="iStackToWest_W"  select="$stackToWest_W_"/>
-							<xsl:with-param name="iLaneInSpace_X"  select="$laneInSpace_X_"/>
-						</xsl:call-template>	
-<!--						
--->	
-					</xsl:when>				
-					
-<!-- 
-		 ===========================================================
-			Handle MultiStack Point to Point connections
-		 ===========================================================
--->
-					<xsl:when test="@BUSLANE_X and (@IS_MULTISTK) and not(@IS_SBSCONN) and BUSCONN[@BIF_Y and @IS_PROCCONN and @INSTANCE and @BUSINTERFACE]">
-						<xsl:call-template name="BCLaneSpace_MultiStack_PointToPoint">
-							<xsl:with-param name="iBusStd"         select="$busStd_"/>
-							<xsl:with-param name="iBusName"        select="$busName_"/>
-							<xsl:with-param name="iBifRank"        select="BUSCONN/@BIFRANK"/>
-							<xsl:with-param name="iStackToEast"    select="$stackToEast_"/>
-							<xsl:with-param name="iStackToWest"    select="$stackToWest_"/>
-							<xsl:with-param name="iStackToEast_W"  select="$stackToEast_W_"/>
-							<xsl:with-param name="iStackToWest_W"  select="$stackToWest_W_"/>
-							<xsl:with-param name="iLaneInSpace_X"  select="$laneInSpace_X_"/>
-						</xsl:call-template>	
-					</xsl:when>				
-						
-					
-<!-- 
-		 ===========================================================
-			Handle Processor to processor connections
-		 ===========================================================
--->
-<!--					
--->	
-				<xsl:when test="(@IS_PROC2PROC and (count(BUSCONN[@BIF_Y and @INSTANCE and @BUSINTERFACE]) = 2))">
-					<xsl:call-template name="BCLaneSpace_ProcToProc">
-						<xsl:with-param name="iBusStd"         select="$busStd_"/>
-						<xsl:with-param name="iBusName"        select="$busName_"/>
-						<xsl:with-param name="iBifRank"        select="BUSCONN/@BIFRANK"/>
-						<xsl:with-param name="iStackToEast"    select="$stackToEast_"/>
-						<xsl:with-param name="iStackToWest"    select="$stackToWest_"/>
-						<xsl:with-param name="iStackToEast_W"  select="$stackToEast_W_"/>
-						<xsl:with-param name="iStackToWest_W"  select="$stackToWest_W_"/>
-						<xsl:with-param name="iLaneInSpace_X"  select="$laneInSpace_X_"/>
-					</xsl:call-template>	
-				</xsl:when>
-					
-<!-- 
-		 ===========================================================
-			Handle connections to the StandAlone MPMC
-		 ===========================================================
--->
-			<xsl:when test="@BUSLANE_X and (@IS_MPMCCONN) and not(@IS_SBSCONN) and BUSCONN[(@BIF_Y and @INSTANCE and @BUSINTERFACE)]">
-<!--				
--->				
-					<xsl:call-template name="BCLaneSpace_ToStandAloneMPMC">
-						<xsl:with-param name="iBusStd"         select="$busStd_"/>
-						<xsl:with-param name="iBusName"        select="$busName_"/>
-						<xsl:with-param name="iBifRank"        select="BUSCONN/@BIFRANK"/>
-						<xsl:with-param name="iStackToEast"    select="$stackToEast_"/>
-						<xsl:with-param name="iStackToWest"    select="$stackToWest_"/>
-						<xsl:with-param name="iStackToEast_W"  select="$stackToEast_W_"/>
-						<xsl:with-param name="iStackToWest_W"  select="$stackToWest_W_"/>
-						<xsl:with-param name="iLaneInSpace_X"  select="$laneInSpace_X_"/>
-					</xsl:call-template>	
-			</xsl:when>
-					
-<!-- 
-		 ===========================================================
-			Handle Split connections, (connections that go between non adjacent stacks)
-		 ===========================================================
--->
-			<xsl:when test="(BUSCONN[@BIF_Y and @INSTANCE and @BUSINTERFACE and @IS_SPLITCONN])">
-				<xsl:call-template name="BCLaneSpace_SplitConn">
-					<xsl:with-param name="iBusStd"         select="$busStd_"/>
-					<xsl:with-param name="iBusName"        select="$busName_"/>
-					<xsl:with-param name="iBifRank"        select="BUSCONN/@BIFRANK"/>
-					<xsl:with-param name="iStackToEast"    select="$stackToEast_"/>
-					<xsl:with-param name="iStackToWest"    select="$stackToWest_"/>
-					<xsl:with-param name="iStackToEast_W"  select="$stackToEast_W_"/>
-					<xsl:with-param name="iStackToWest_W"  select="$stackToWest_W_"/>
-					<xsl:with-param name="iLaneInSpace_X"  select="$laneInSpace_X_"/>
-				</xsl:call-template>	
-<!--				
--->	
-			</xsl:when>
-					
-		</xsl:choose>
-								
-	</xsl:for-each>
-		
-	</symbol>
-			
-</xsl:template>	
-	
-<xsl:template name="Define_BusLaneSpaces"> 
-	
-	<xsl:variable name="lastStack_" select="(/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH) - 1"/>
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[@EAST]">
-		<xsl:sort select="@EAST" data-type="number"/>
-			
-		<xsl:call-template name="Define_BusLaneSpace">
-			<xsl:with-param name="iStackToEast"  select="@EAST"/>
-		</xsl:call-template>
-	</xsl:for-each>	
-	
-<!--	
-	<xsl:message>Last Stack <xsl:value-of select="$lastStack_"/></xsl:message>
--->	
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@WEST = $lastStack_)]">
-		<xsl:call-template name="Define_BusLaneSpace">
-			<xsl:with-param name="iStackToWest"  select="$lastStack_"/>
-		</xsl:call-template>
-	</xsl:for-each>	
-			
-</xsl:template>
-		
-</xsl:stylesheet>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl
deleted file mode 100644
index 41a472e..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl
+++ /dev/null
@@ -1,495 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-                
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-		
-
-	
-<xsl:template name="Define_Busses">
-<!--	
-	<xsl:param name="drawarea_w"  select="500"/>
-	<xsl:param name="drawarea_h"  select="500"/>
--->	
-	
-	<xsl:for-each select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR">
-		
-		<xsl:call-template name="Define_BusArrowsEastWest"> 
-			<xsl:with-param name="iBusType"    select="@BUSSTD"/>
-		</xsl:call-template>
-		
-		<xsl:call-template name="Define_BusArrowsNorthSouth"> 
-			<xsl:with-param name="iBusType"    select="@BUSSTD"/>
-		</xsl:call-template>
-		
-		<xsl:call-template name="Define_SplitBusses"> 
-			<xsl:with-param name="iBusType"    select="@BUSSTD"/>
-		</xsl:call-template>
-		
-	</xsl:for-each>
-	
-	<xsl:call-template name="Define_SharedBus"> 
-		<xsl:with-param name="iBusType"    select="'PLB'"/>
-	</xsl:call-template>
-	
-	<xsl:call-template name="Define_SharedBus"> 
-		<xsl:with-param name="iBusType"    select="'PLBV46'"/>
-	</xsl:call-template>
-	
-	<xsl:call-template name="Define_SharedBus"> 
-		<xsl:with-param name="iBusType"    select="'OPB'"/>
-	</xsl:call-template>
-	
-	<xsl:call-template name="Define_SharedBus_Group"/> 
-	
-</xsl:template>
-
-<xsl:template name="Define_BusArrowsEastWest"> 
-	<xsl:param name="iBusType"    select="'OPB'"/>
-	
-	<xsl:variable name="bus_col_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="bus_col_lt_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<symbol id="{$iBusType}_BusArrowEast">
-		<path class="bus"
-			  d="M   0,0
-				 L     {$BLKD_BUS_ARROW_W}, {ceiling($BLKD_BUS_ARROW_H div 2)}
-				 L   0,{$BLKD_BUS_ARROW_H}, 
-				 Z" style="stroke:none; fill:{$bus_col_}"/>
-	</symbol>
-	
-	<symbol id="{$iBusType}_BusArrowWest">
-		<use   x="0"   y="0"  xlink:href="#{$iBusType}_BusArrowEast" transform="scale(-1,1) translate({$BLKD_BUS_ARROW_W * -1},0)"/>
-	</symbol>
-	
-	<symbol id="{$iBusType}_BusArrowHInitiator">
-		<rect x="0" 
-		  	  y="{$BLKD_BUS_ARROW_G}"  
-		 	  width= "{$BLKD_BUS_ARROW_W}" 
-		 	  height="{$BLKD_P2P_BUS_W}" 
-		 	 style="stroke:none; fill:{$bus_col_}"/>
-	</symbol>
-	
-</xsl:template>
-
-<!--	
-	<xsl:param name="bus_col"     select="'OPB'"/>
--->	
-
-<xsl:template name="Define_BusArrowsNorthSouth">
-	<xsl:param name="iBusType"    select="'OPB'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="busColor_lt_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<symbol id="{$iBusType}_BusArrowSouth">
-		<path class="bus"
-			  d="M   0,0
-				 L   {$BLKD_BUS_ARROW_H},0
-				 L   {ceiling($BLKD_BUS_ARROW_H div 2)}, {$BLKD_BUS_ARROW_W}
-				 Z" style="stroke:none; fill:{$busColor_}"/>
-	</symbol>
-	
-	<symbol id="{$iBusType}_BusArrowNorth">
-		<use   x="0"   y="0"  xlink:href="#{$iBusType}_BusArrowSouth" transform="scale(1,-1) translate(0,{$BLKD_BUS_ARROW_H * -1})"/>
-	</symbol>
-	
-	<symbol id="{$iBusType}_BusArrowInitiator">
-		<rect x="{$BLKD_BUS_ARROW_G}" 
-		  	  y="0"  
-		 	  width= "{$BLKD_BUS_ARROW_W - ($BLKD_BUS_ARROW_G * 2)}" 
-		 	  height="{$BLKD_BUS_ARROW_H}" 
-		 	 style="stroke:none; fill:{$busColor_}"/>
-	</symbol>
-	
-</xsl:template>
-	
-
-<xsl:template name="Draw_P2PBus">
-	
-	<xsl:param name="iBusX"    select="0"/>
-	<xsl:param name="iBusTop"  select="0"/>
-	<xsl:param name="iBusBot"  select="0"/>
-	<xsl:param name="iBotRnk"  select="'_unk_'"/>
-	<xsl:param name="iTopRnk"  select="'_unk_'"/>
-	<xsl:param name="iBusStd"  select="'_bstd_'"/>
-	<xsl:param name="iBusName" select="'_p2pbus_'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:choose>
-			
-			<xsl:when test="@BUSSTD">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="@BUSSTD"/>
-				</xsl:call-template>	
-			</xsl:when>
-			
-			<xsl:when test="not($iBusStd = '_bstd_')">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="$iBusStd"/>
-				</xsl:call-template>	
-			</xsl:when>
-			
-			<xsl:otherwise>
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="'TRS'"/>
-				</xsl:call-template>	
-			</xsl:otherwise>
-			
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="p2pH_" select="($iBusBot - $iBusTop) - ($BLKD_BUS_ARROW_H * 2)"/>
-
-	<xsl:variable name="botArrow_">
-		<xsl:choose>
-			<xsl:when test="((($iBotRnk = 'INITIATOR') or ($iBotRnk = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowInitiator</xsl:when>
-			<xsl:otherwise>BusArrowSouth</xsl:otherwise> 
-		</xsl:choose>		
-	</xsl:variable>
-	
-	<xsl:variable name="topArrow_">
-		<xsl:choose>
-			<xsl:when test="((($iTopRnk = 'INITIATOR') or ($iTopRnk = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowInitiator</xsl:when>
-			<xsl:otherwise>BusArrowNorth</xsl:otherwise> 
-		</xsl:choose>		
-	</xsl:variable>
-	
-	<xsl:if test="@BUSSTD">		
-		<use  x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2)}"  
-		      y="{$iBusTop + ($BLKD_BIFC_H  - $BLKD_BUS_ARROW_H) + $BLKD_BUS_ARROW_H}"  
-		      xlink:href="#{@BUSSTD}_{$topArrow_}"/>	
-		  
-		<use  x="{($busX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2)}"  
-		      y="{$busBot - $BLKD_BUS_ARROW_H}"  
-		      xlink:href="#{@BUSSTD}_{$botArrow_}"/>	
-	</xsl:if>		  
-	
-	<xsl:if test="(not(@BUSSTD) and not($busStd = '_bstd_'))">		
-		<use  x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2)}"  
-		      y="{$iBusTop + ($BLKD_BIFC_H  - $BLKD_BUS_ARROW_H) + $BLKD_BUS_ARROW_H}"  
-		      xlink:href="#{$iBusStd}_{$topArrow_}"/>	
-		  
-		<use  x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2)}"  
-		      y="{$iBusBot - $BLKD_BUS_ARROW_H}"  
-		      xlink:href="#{$iBusStd}_{$botArrow_}"/>	
-	</xsl:if>		  
-	
-	
-	<rect x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2) + $BLKD_BUS_ARROW_G}"  
-		  y="{$iBusTop + $BLKD_BIFC_H + $BLKD_BUS_ARROW_H}"  
-		  height= "{$p2pH_  - ($BLKD_BUS_ARROW_H * 2)}" 
-		  width="{$BLKD_BUS_ARROW_W - ($BLKD_BUS_ARROW_G * 2)}" 
-		  style="stroke:none; fill:{$busColor_}"/>
-		  
-	<text class="p2pbuslabel" 
-			  x="{$iBusX   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 4}"
-			  y="{$iBusTop + ($BLKD_BUS_ARROW_H * 3)}">
-			<xsl:value-of select="$iBusName"/>
-	</text>
-	
-  	<xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iBusName)]/@GROUP">
-	  	
-   	   <text class="ioplblgrp" 
-		  x="{$iBusX   +  $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
-		  y="{$iBusTop + ($BLKD_BUS_ARROW_H * 10)}">
-			   <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iBusName)]/@GROUP"/>
-   		</text>
-	   
-  	</xsl:if> 	
-		
-</xsl:template>
-
-	
-<xsl:template name="Draw_Proc2ProcBus">
-	
-	<xsl:param name="iBc_Y"     select="0"/>
-	<xsl:param name="iBcLeft_X" select="0"/>
-	<xsl:param name="iBcRght_X" select="0"/>
-	<xsl:param name="iLeftRnk"  select="'_unk_'"/>
-	<xsl:param name="iRghtRnk"  select="'_unk_'"/>
-	<xsl:param name="iBusStd"   select="'_bstd_'"/>
-	<xsl:param name="iBusName"  select="'_p2pbus_'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="pr2pr_W_" select="($iBcRght_X - $iBcLeft_X)"/>
-
-	<xsl:variable name="leftArrow_">
-		<xsl:choose>
-			<xsl:when test="((($iLeftRnk = 'INITIATOR') or ($iLeftRnk = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowHInitiator</xsl:when>
-			<xsl:otherwise>BusArrowWest</xsl:otherwise> 
-		</xsl:choose>		
-	</xsl:variable>
-	
-	<xsl:variable name="rghtArrow_">
-		<xsl:choose>
-			<xsl:when test="((($iRghtRnk = 'INITIATOR') or ($iRghtRnk = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowHInitiator</xsl:when>
-			<xsl:otherwise>BusArrowEast</xsl:otherwise> 
-		</xsl:choose>		
-	</xsl:variable>
-	
-	
-	<xsl:variable name="bus_Y_" select="($iBc_Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2))"/>
-	
-	<use  x="{$iBcLeft_X}"                     y="{$bus_Y_}"  xlink:href="#{$iBusStd}_{$leftArrow_}"/>	
-	<use  x="{$iBcRght_X - $BLKD_BUS_ARROW_W}" y="{$bus_Y_}"  xlink:href="#{$iBusStd}_{$rghtArrow_}"/>	
-	
-	<rect x="{$iBcLeft_X + $BLKD_BUS_ARROW_W}" 
-		  y="{$bus_Y_    + $BLKD_BUS_ARROW_G}"  
-		  width= "{$pr2pr_W_    -      (2 * $BLKD_BUS_ARROW_W)}" 
-		  height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$busColor_}"/>
-	
-	<text class="horizp2pbuslabel" 
-			  x="{$iBcLeft_X  + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 4}"
-			  y="{($bus_Y_)}"><xsl:value-of select="$iBusName"/></text>
-	
-	<text class="horizp2pbuslabel" 
-			  x="{$iBcRght_X - (string-length($iBusName) * 8)}"
-			  y="{($bus_Y_)}"><xsl:value-of select="$iBusName"/></text>
-	
-</xsl:template>
-	
-	
-<xsl:template name="Draw_SplitConnBus">
-	
-	<xsl:param name="iBc_X"     select="0"/>
-	<xsl:param name="iBc_Y"     select="0"/>
-	<xsl:param name="iBc_Rnk"   select="'_unk_'"/>
-	<xsl:param name="iBc_Side"  select="'_unk_'"/>
-	
-	<xsl:param name="iBusStd"   select="'_bstd_'"/>
-	<xsl:param name="iBusName"  select="'_p2pbus_'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="connArrow_">
-		<xsl:choose>
-			<xsl:when test="((($iBc_Rnk = 'INITIATOR') or ($iBc_Rnk = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowHInitiator</xsl:when>
-			<xsl:otherwise>BusArrowEast</xsl:otherwise> 
-		</xsl:choose>		
-	</xsl:variable>
-	
-	<xsl:variable name="arrow_Y_" select="($iBc_Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2))"/>
-	
-	<xsl:variable name="bus_X_">
-		<xsl:choose>
-			<xsl:when test="$iBc_Side = '0'"><xsl:value-of select="($iBc_X - ($BLKD_BUS_ARROW_W * 2))"/></xsl:when>
-			<xsl:when test="$iBc_Side = '1'"><xsl:value-of select="($iBc_X + $BLKD_BIFC_W + $BLKD_BUS_ARROW_W)"/></xsl:when>
-		</xsl:choose>		
-	</xsl:variable>	
-	
-<!--	
-	<use  x="{$bus_X_}"  y="{$arrow_Y_}"  xlink:href="#{$busStd}_BusArrowHInitiator"/>	
--->	
-	
-	<xsl:variable name="arrow_X_">
-		<xsl:choose>
-			<xsl:when test="$iBc_Side = '0'"><xsl:value-of select="($iBc_X - $BLKD_BUS_ARROW_W)"/></xsl:when>
-			<xsl:when test="$iBc_Side = '1'"><xsl:value-of select="($iBc_X + $BLKD_BIFC_W)"/></xsl:when>
-		</xsl:choose>		
-	</xsl:variable>	
-	
-<!--	
-	<xsl:message>The bus name is <xsl:value-of select="$busName"/></xsl:message>
-	<xsl:message>The bif side is <xsl:value-of select="$bc_Side"/></xsl:message>
-	<xsl:message>The bif rank is <xsl:value-of select="$bc_Rnk"/></xsl:message>
--->	
-	<xsl:choose>
-		<xsl:when test="(($iBusStd = 'FSL') and (($iBc_Rnk = 'MASTER') or ($iBc_Rnk = 'INITIATOR')))">
-			<use  x="{$arrow_X_}"  y="{$arrow_Y_}"  xlink:href="#{$iBusStd}_{$connArrow_}"/>	
-			<use  x="{$bus_X_}"    y="{$arrow_Y_}"  xlink:href="#{$iBusStd}_BusArrowHInitiator"/>	
-		</xsl:when>
-		<xsl:when test="(($iBc_Side = '1') and not($iBusStd = 'FSL') and (($iBc_Rnk = 'MASTER') or ($iBc_Rnk = 'INITIATOR')))">
-			<use  x="{$arrow_X_ - $BLKD_BIFC_W}"  y="{$arrow_Y_}"  xlink:href="#{$iBusStd}_SplitBus_WEST"/>
-		</xsl:when>
-		<xsl:when test="(($iBc_Side = '1') and (($iBc_Rnk = 'SLAVE') or ($iBc_Rnk = 'TARGET') or ($iBc_Rnk = 'TRANSPARENT')))">
-			<use  x="{$arrow_X_}"  y="{$arrow_Y_}"  xlink:href="#{$iBusStd}_SplitBus_EAST"/>
-		</xsl:when>
-		<xsl:otherwise>
-			<use  x="{$arrow_X_}" y="{$arrow_Y_}" xlink:href="#{$iBusStd}_{$connArrow_}"/>	
-			<use  x="{$bus_X_}"   y="{$arrow_Y_}"   xlink:href="#{$iBusStd}_BusArrowHInitiator"/>	
-		</xsl:otherwise>
-	</xsl:choose>
-	
-	<xsl:variable name="text_X_">
-		<xsl:choose>
-			<xsl:when test="$iBc_Side = '0'"><xsl:value-of select="($bus_X_ - $BLKD_BUS_ARROW_W - (string-length($iBusName) * 5))"/></xsl:when>
-			<xsl:when test="$iBc_Side = '1'"><xsl:value-of select="($bus_X_ + $BLKD_BUS_ARROW_W)"/></xsl:when>
-		</xsl:choose>		
-	</xsl:variable>	
-		
-	
-	<text class="horizp2pbuslabel" 
-			  x="{$text_X_}"
-			  y="{($arrow_Y_)}">
-			<xsl:value-of select="$iBusName"/>
-	</text>
-	
-</xsl:template>
-	
-	
-<xsl:template name="Define_SharedBus"> 
-	
-	<xsl:param name="iBusType"    select="'OPB'"/>
-	
-	<xsl:variable name="sharedbus_w_"  select="($G_total_drawarea_W - ($BLKD_INNER_GAP * 2))"/>
-	
-	<xsl:variable name="bus_col_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="bus_col_lt_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	 <symbol id="{$iBusType}_SharedBus">
-		<use  x="0"                                   y="0"  xlink:href="#{$iBusType}_BusArrowWest"/>	
-		<use  x="{$sharedbus_w_ - $BLKD_BUS_ARROW_W}" y="0"  xlink:href="#{$iBusType}_BusArrowEast"/>	
-		
-		<rect x="{$BLKD_BUS_ARROW_W}" 
-			  y="{$BLKD_BUS_ARROW_G}"  
-			  width= "{$sharedbus_w_  - ($BLKD_BUS_ARROW_W * 2)}" 
-			  height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$bus_col_}"/>
-	</symbol>
-</xsl:template>
-
-	
-<xsl:template name="Define_SplitBusses"> 
-	
-	<xsl:param name="iBusType"    sselect="'FSL'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="bifc_r_" select="ceiling($BLKD_BIFC_W div 3)"/>
-	
-	 <symbol id="{$iBusType}_SplitBus_EAST">
-		<use  x="0"  y="0"    xlink:href="#{$iBusType}_BusArrowWest"/>	
-		
-		<rect x="{$BLKD_BUS_ARROW_W}" 
-			  y="{$BLKD_BUS_ARROW_G}"  
-			  width= "{$BLKD_BIFC_W}" 
-			  height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$busColor_}"/>
-		 
-	</symbol>
-	
-	<xsl:variable name="splbus_w_" select="($BLKD_BUS_ARROW_W + $BLKD_BIFC_W + $BLKD_BIFC_Wi)"/>
-	
-	 <symbol id="{$iBusType}_SplitBus_WEST">
-		<use   x="0"   y="0"  xlink:href="#{$iBusType}_SplitBus_EAST" transform="scale(-1,1) translate({$splbus_w_ * -1},0)"/>
-	</symbol>
-	
-	 <symbol id="{$iBusType}_SplitBus_OneWay">
-		 
-		<rect x="0" 
-			  y="{$BLKD_BUS_ARROW_G}"  
-			  width= "{($BLKD_BUS_ARROW_W * 2)}" 
-			  height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$busColor_}"/>
-		 
-		<rect x="{($BLKD_BUS_ARROW_W * 2)}"
-			  y="0"  
-			  width= "{$BLKD_BUS_ARROW_H}" 
-			  height="{$BLKD_BUS_ARROW_H}" style="stroke:none; fill:{$busColor_}"/>
-		 
-	</symbol>
-	
-	
-</xsl:template>
-
-
-<xsl:template name="Define_SharedBus_Group"> 
-
-<!-- The Bridges go into the shared bus shape -->
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE">	
-	
-		<xsl:variable name="modInst_" select="@INSTANCE"/>
-		<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInst_)]/@MODTYPE"/>
-		
-		<xsl:call-template name="Define_Peripheral"> 
-			<xsl:with-param name="iModVori"  select="'normal'"/>
-			<xsl:with-param name="iModInst"  select="$modInst_"/>
-			<xsl:with-param name="iModType"  select="$modType_"/>
-		</xsl:call-template>
-	
-	</xsl:for-each>
-	
- <symbol id="group_sharedBusses">
-	
-	<!-- Draw the shared bus shapes first -->	
-	<xsl:for-each select="BLKDSHAPES/SBSSHAPES/MODULE">	
-		<xsl:variable name="instance_"  select="@INSTANCE"/>
-		
-		<xsl:variable name="busStd_"   select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $instance_)]/@BUSSTD"/>	
-		<xsl:variable name="busIndex_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $instance_)]/@BUSINDEX"/>	
-		
-		<xsl:variable name="busY_"  select="($busIndex_ * $BLKD_SBS_LANE_H)"/>	
-		
-		<use  x="0"  y="{$busY_}"  xlink:href="#{$busStd_}_SharedBus"/>	
-		
-		<text class="sharedbuslabel" 
-			  x="8"
-			  y="{$busY_ + $BLKD_BUS_ARROW_H + 10}">
-			<xsl:value-of select="$instance_"/>
-		</text>
-		
-	</xsl:for-each>
-</symbol>	
-
- <symbol id="KEY_SharedBus">
-	<use  x="0"  y="0"  xlink:href="#KEY_BusArrowWest"/>	
-	<use  x="30" y="0"  xlink:href="#KEY_BusArrowEast"/>	
-	 
-	<xsl:variable name="key_col_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="'KEY'"/>
-		</xsl:call-template>	
-	</xsl:variable>
-		
-	<rect x="{$BLKD_BUS_ARROW_W}" 
-		  y="{$BLKD_BUS_ARROW_G}"  
-		  width= "{30 - $BLKD_BUS_ARROW_W}" 
-		  height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$key_col_}"/>
-</symbol>
-	
-</xsl:template>
-	
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl
deleted file mode 100644
index fcff090..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl
+++ /dev/null
@@ -1,1080 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-                
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-	
-<xsl:template name="_calc_Proc_Height">
-	<xsl:param name="iProcInst"  select="_processor_"/>
-	
-	<xsl:variable name="tot_bifs_h_">
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iProcInst)]/@BIFS_H)">0</xsl:if>
-		
-		<xsl:if test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iProcInst)]/@BIFS_H">
-			<xsl:variable name="bifs_h_" select="(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iProcInst)]/@BIFS_H)"/>
-			<xsl:value-of select="(($BLKD_BIF_H + $BLKD_BIF_GAP) * $bifs_h_)"/>	
-		</xsl:if>
-	</xsl:variable>	
-	
-	<xsl:value-of select="(($BLKD_MOD_LANE_H * 2) + $tot_bifs_h_ + ($BLKD_MOD_LABEL_H + $BLKD_BIF_GAP))"/>	
-</xsl:template>
-
-<xsl:template name="_calc_Max_Proc_Height">
-
-	<!-- Store the heights in a variable -->	
-	<xsl:variable name="proc_heights_">
-	
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE)">
-			<PROC HEIGHT="0"/>
-		</xsl:if>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE">
-			<xsl:variable name="procInst_" select="@INSTANCE"/> 
-			<xsl:variable name="proc_height_">
-				<xsl:call-template name="_calc_Proc_Height">	
-					<xsl:with-param name="iProcInst" select="$procInst_"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-<!--			
-			<xsl:message>Found Proc height as <xsl:value-of select="$proc_height_"/></xsl:message>
--->			
-			<PROC HEIGHT="{$proc_height_}"/>
-		</xsl:for-each>
-	</xsl:variable>
-	
-	<!-- Return the max of them -->	
-<!--	
-	<xsl:message>Found Proc ax as <xsl:value-of select="math:max(exsl:node-set($proc_heights_)/PROC/@HEIGHT)"/></xsl:message>
--->	
-
-	<xsl:value-of select="math:max(exsl:node-set($proc_heights_)/PROC/@HEIGHT)"/>
-</xsl:template>
-
-
-<xsl:template name="_calc_Proc_MemoryUnits_Height">
-	<xsl:param name="iProcInst"  select="_processor_"/>
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and (@MODCLASS = 'MEMORY_UNIT'))])">0</xsl:if>
-	
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and (@MODCLASS='MEMORY_UNIT'))]">
-		
-	<xsl:variable name="peri_gap_">
-		<xsl:choose>
-			<xsl:when test="not(@CSTACK_INDEX)">
-				<xsl:value-of select="$BLKD_BIF_H"/>
-			</xsl:when>
-			<xsl:otherwise>0</xsl:otherwise>
-		</xsl:choose>	
-	</xsl:variable>	
-			
-		
-		<!-- Store the all memory unit heights in a variable -->
-		<xsl:variable name="memU_heights_">
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and (@MODCLASS='MEMORY_UNIT'))]">
-<!--				
-				<xsl:variable name="unitId_" select="@PSTACK_MODS_Y"/>
--->				
-				<xsl:variable name="unitHeight_">
-					<xsl:call-template name="_calc_MemoryUnit_Height">	
-						<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
-					</xsl:call-template>	
-				</xsl:variable>
-				
-				<MEM_UNIT HEIGHT="{$unitHeight_ + $peri_gap_}"/>
-			</xsl:for-each>
-		</xsl:variable>
-		
-		<xsl:value-of select="sum(exsl:node-set($memU_heights_)/MEM_UNIT/@HEIGHT)"/>
-	</xsl:if>
-</xsl:template>
-	
-
-<xsl:template name="_calc_Proc_Peripherals_Height">
-	<xsl:param name="iProcInst"  select="_processor_"/>
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and not(@MODCLASS = 'MEMORY_UNIT'))])">0</xsl:if>
-	
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and not(@MODCLASS='MEMORY_UNIT'))]">
-	
-		<xsl:variable name="peri_gap_">
-			<xsl:if test="@CSTACK_INDEX">
-				<xsl:value-of select="$BLKD_BIF_H"/>
-			</xsl:if>
-			<xsl:if test="not(@IS_CSTACK)">0</xsl:if>
-		</xsl:variable>
-	
-		<!-- Store the all peripheral heights in a variable -->
-		<xsl:variable name="peri_heights_">
-			
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and not(@MODCLASS='MEMORY_UNIT'))]">
-				<xsl:for-each select="MODULE">
-<!--					
-					<xsl:message><xsl:value-of select="@INSTANCE"/></xsl:message>		
--->					
-					<xsl:variable name="peri_height_">
-						<xsl:call-template name="_calc_PeriShape_Height">	
-							<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-						</xsl:call-template>	
-					</xsl:variable>
-					<PERI HEIGHT="{$peri_height_ + $peri_gap_}"/>
-				</xsl:for-each>		
-			</xsl:for-each>
-		</xsl:variable>
-		
-		<xsl:value-of select="sum(exsl:node-set($peri_heights_)/PERI/@HEIGHT)"/>
-	</xsl:if>
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Space_AbvSbs_Height">
-	<xsl:param name="iStackToEast"  select="'NONE'"/>
-	<xsl:param name="iStackToWest"  select="'NONE'"/>
-	
-	
-	<xsl:variable name = "stackAbvSbs_West_H_">
-		<xsl:choose>
-			<xsl:when test="(($iStackToEast = '0')   and     ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="(($iStackToEast = 'NONE') and not($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:when test="(not($iStackToEast = '0') and ($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="($iStackToEast - 1)"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:otherwise>0</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name = "stackAbvSbs_East_H_">
-		<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-			<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-	<xsl:variable name="stackAbvSbs_heights_">
-		<STACK HEIGHT="{$stackAbvSbs_East_H_}"/>
-		<STACK HEIGHT="{$stackAbvSbs_West_H_}"/>
-	</xsl:variable>
-	
-	<xsl:value-of select="math:max(exsl:node-set($stackAbvSbs_heights_)/STACK/@HEIGHT)"/>
-</xsl:template>
-
-	
-<xsl:template name="_calc_Space_BlwSbs_Height">
-	<xsl:param name="iStackToEast"  select="'NONE'"/>
-	<xsl:param name="iStackToWest"  select="'NONE'"/>
-		
-	<xsl:variable name = "stackBlwSbs_West_H_">
-		<xsl:choose>
-			<xsl:when test="(($iStackToEast = '0')    and    ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="(($iStackToEast = 'NONE') and not($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_BlwSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:when test="(not($iStackToEast = '0') and    ($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_BlwSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="($iStackToEast - 1)"/>
-				</xsl:call-template>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-	
-	
-	<xsl:variable name = "stackBlwSbs_East_H_">
-		<xsl:call-template name="_calc_Stack_BlwSbs_Height">
-			<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-	<xsl:variable name="stackBlwSbs_heights_">
-		<STACK HEIGHT="{$stackBlwSbs_East_H_}"/>
-		<STACK HEIGHT="{$stackBlwSbs_West_H_}"/>
-	</xsl:variable>
-	
-	<xsl:value-of select="math:max(exsl:node-set($stackBlwSbs_heights_)/STACK/@HEIGHT)"/>
-</xsl:template>
-	
-
-	
-<xsl:template name="_calc_Stack_AbvSbs_Height">
-	<xsl:param name="iStackIdx"  select="100"/>
-<!--	
-	<xsl:message>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</xsl:message>
--->	
-	
-	<xsl:if test="(not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_ABVSBS))]) and
-				   not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@STACK_HORIZ_INDEX = $iStackIdx)]))"><xsl:value-of select="$BLKD_PROC2SBS_GAP"/></xsl:if>
-	
-	<xsl:if test="((/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_ABVSBS))]) or
-				   (/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[      (@STACK_HORIZ_INDEX = $iStackIdx)]))">
-		
-<!--			
-		<xsl:variable name="peri_gap_">
-			<xsl:value-of select="$BLKD_BIF_H"/>
-			<xsl:choose>
-				<xsl:when test="(@SHAPE_VERTI_INDEX)">
-				</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>	
--->			
-			
-<!--		
-		<xsl:message>The gap is <xsl:value-of select="$peri_gap_"/></xsl:message>
-		<xsl:message>The gap is <xsl:value-of select="$peri_gap_"/></xsl:message>
-		<xsl:message>================================</xsl:message>
-		<xsl:message>================================</xsl:message>
-		<xsl:message>This is above <xsl:value-of select="@INSTANCE"/></xsl:message>
-		<xsl:message><xsl:value-of select="@INSTANCE"/> : <xsl:value-of select="$peri_height_"/></xsl:message>
--->	
-	
-	
-		<!-- Store the all peripheral heights in a variable -->
-		<xsl:variable name="peri_heights_">
-			
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and not(@MODCLASS = 'MEMORY_UNIT') and (@IS_ABVSBS))]">
-				<xsl:for-each select="MODULE">
-<!--					
-					<xsl:message>This is above <xsl:value-of select="@INSTANCE"/></xsl:message>
--->					
-					
-					<xsl:variable name="peri_height_">
-<!--						
-						<xsl:call-template name="_calc_Shape_Height">	
-							<xsl:with-param name="shapeId" select="@SHAPE_ID"/>
-						</xsl:call-template>	
--->	 
-	
-						<xsl:call-template name="_calc_PeriShape_Height">	
-							<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-						</xsl:call-template>	
-					</xsl:variable>
-					
-					<PERI HEIGHT="{$peri_height_ + $BLKD_BIF_H}"/>
-				</xsl:for-each>
-			</xsl:for-each>
-			
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@MODCLASS = 'MEMORY_UNIT') and (@IS_ABVSBS))]">
-			
-				<xsl:variable name="memu_height_">
-					<xsl:call-template name="_calc_MemoryUnit_Height">	
-						<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
-					</xsl:call-template>	
-				</xsl:variable>
-			
-<!--				
-				<xsl:message>Mem_Unit : <xsl:value-of select="@SHAPE_ID"/> : <xsl:value-of select="$memu_height_ + $peri_gap_"/></xsl:message>
--->				
-				<PERI HEIGHT="{$memu_height_ + $BLKD_BIF_H}"/>
-			
-			</xsl:for-each>
-			
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_ABVSBS))]">
-					
-				<xsl:variable name="proc_height_">
-					<xsl:call-template name="_calc_PeriShape_Height">	
-						<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-					</xsl:call-template>	
-				</xsl:variable>
-				
-<!--				
-		<xsl:message>===================================</xsl:message>
-		<xsl:message>Processor : <xsl:value-of select="@INSTANCE"/> : <xsl:value-of select="$peri_height_ + $peri_gap_"/></xsl:message>
-				<PERI HEIGHT="{$proc_height_ + $BLKD_PROC2SBS_GAP }"/>
--->					
-				<PERI HEIGHT="{$proc_height_ + $BLKD_BIF_H}"/>
-				
-			</xsl:for-each>
-		
-		</xsl:variable>
-		
-<!--		
-	<xsl:message><xsl:value-of select="@INSTANCE"/> : <xsl:value-of select="$peri_height_ + $peri_gap_"/></xsl:message>
-	<xsl:message>================================</xsl:message>
--->
-		
-<!--		
-	<xsl:message>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</xsl:message>
--->		
-		<xsl:value-of select="sum(exsl:node-set($peri_heights_)/PERI/@HEIGHT)"/>
-	</xsl:if>
-	
-</xsl:template>
-	
-<xsl:template name="_calc_Stack_BlwSbs_Height">
-	<xsl:param name="iStackIdx"  select="100"/>
-	
-		<!-- Store the all peripheral heights in a variable -->
-		<xsl:variable name="stack_heights_">
-			
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_BLWSBS))])">
-				<STACKSHAPE HEIGHT="0"/>
-			</xsl:if>
-			
-			<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_BLWSBS))]">
-	
-				<xsl:variable name="peri_gap_">
-					<xsl:choose>
-						<xsl:when test="(@SHAPE_VERTI_INDEX)">
-							<xsl:value-of select="$BLKD_BIF_H"/>
-						</xsl:when>
-						<xsl:otherwise>0</xsl:otherwise>
-					</xsl:choose>	
-				</xsl:variable>	
-				
-				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and not(@MODCLASS = 'MEMORY_UNIT') and (@IS_BLWSBS))]">
-					<xsl:for-each select="MODULE">
-<!--					
-					<xsl:message>This is below <xsl:value-of select="@INSTANCE"/></xsl:message>
--->	
-						<xsl:variable name="peri_height_">
-							<xsl:call-template name="_calc_PeriShape_Height">	
-								<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-							</xsl:call-template>	
-						</xsl:variable>
-						
-						<STACKSHAPE HEIGHT="{$peri_height_ + $peri_gap_}"/>
-					</xsl:for-each>
-				</xsl:for-each>
-		
-				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@MODCLASS = 'MEMORY_UNIT') and (@IS_BLWSBS))]">
-			
-					<xsl:variable name="memu_height_">
-						<xsl:call-template name="_calc_MemoryUnit_Height">	
-							<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
-						</xsl:call-template>	
-					</xsl:variable>
-			
-					<STACKSHAPE HEIGHT="{$memu_height_ + $peri_gap_}"/>
-				
-<!--				
-				<xsl:message>Mem_Unit : <xsl:value-of select="@SHAPE_ID"/> : <xsl:value-of select="$memu_height_ + $peri_gap_"/></xsl:message>
--->	
-			
-			</xsl:for-each>
-		</xsl:if>
-			
-		<xsl:variable name="sbsBuckets_H_">
-			<xsl:call-template name="_calc_Stack_SbsBuckets_Height">
-				<xsl:with-param name="iStackIdx" select="$iStackIdx"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			
-			<STACKSHAPE HEIGHT="{$sbsBuckets_H_}"/>
-<!--			
-			<xsl:message>Sbs Bucket H : <xsl:value-of select="$sbsBuckets_H_"/></xsl:message>
--->
-		</xsl:variable>
-		
-<!--		
-		<xsl:message>vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv</xsl:message>
--->		
-		<xsl:value-of select="sum(exsl:node-set($stack_heights_)/STACKSHAPE/@HEIGHT)"/>
-	
-</xsl:template>
-	
-
-<xsl:template name="_calc_Stack_SbsBuckets_Height">
-	<xsl:param name="iStackIdx"  select="1000"/>
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)])">0</xsl:if>
-	
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-	
-		<!-- Store the all buckets heights in a variable -->
-		<xsl:variable name="bkt_heights_">
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-		
-				<xsl:variable name="bkt_height_">
-					<xsl:call-template name="_calc_SbsBucket_Height">	
-						<xsl:with-param name="iBucketId" select="@BUSINDEX"/>
-					</xsl:call-template>	
-				</xsl:variable>
-<!--				
-				<xsl:message>Found shared buckets height as <xsl:value-of select="$bkt_height_"/></xsl:message>
--->				
-				<BKT HEIGHT="{$bkt_height_ + $BLKD_BIF_H}"/>
-			</xsl:for-each>
-		</xsl:variable>
-		
-		<xsl:value-of select="sum(exsl:node-set($bkt_heights_)/BKT/@HEIGHT)"/>
-	</xsl:if>
-</xsl:template>
-
-	
-<xsl:template name="_calc_Max_Stack_BlwSbs_Height">
-
-	<!-- Store the heights in a variable -->	
-	<xsl:variable name="blwSbs_heights_">
-		
-		<!-- Default, in case there are no modules or ports -->		
-		<BLW HEIGHT="0"/>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST &lt; /EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)]">
-	
-<!--			
-			<xsl:message>Found a space of index <xsl:value-of select="@EAST"/></xsl:message>
--->	
-			
-			<xsl:variable name="stack_height_">
-				<xsl:call-template name="_calc_Stack_BlwSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="@EAST"/>
-				</xsl:call-template>
-			</xsl:variable>
-			
-			
-			<BLW HEIGHT="{$stack_height_}"/>
-			
-		</xsl:for-each>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@WEST = (/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH -1))]">
-			
-<!--			
-			<xsl:message>Last stack of index <xsl:value-of select="@WEST"/></xsl:message>
--->			
-			
-			<xsl:variable name="stack_height_">
-				<xsl:call-template name="_calc_Stack_BlwSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="@WEST"/>
-				</xsl:call-template>
-			</xsl:variable>
-			
-			
-			<BLW HEIGHT="{$stack_height_}"/>
-			
-		</xsl:for-each>
-		
-		
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>Found Blw Sbs max as <xsl:value-of select="math:max(exsl:node-set($blwSbs_heights_)/BLW/@HEIGHT)"/></xsl:message>
--->	
-	<!-- Return the max of them -->	
-	<xsl:value-of select="math:max(exsl:node-set($blwSbs_heights_)/BLW/@HEIGHT)"/>
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Max_Stack_AbvSbs_Height">
-
-	<!-- Store the heights in a variable -->	
-	<xsl:variable name="abvSbs_heights_">
-		
-		<!-- Default, in case there are no modules or ports -->		
-		<ABV HEIGHT="0"/>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST &lt; /EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)]">
-			
-<!--			
-			<xsl:message>Found a space of index <xsl:value-of select="@EAST"/></xsl:message>
--->	
-			
-			<xsl:variable name="stack_height_">
-				<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="@EAST"/>
-				</xsl:call-template>
-			</xsl:variable>
-			
-<!--			
-			<xsl:message>Found stack of width <xsl:value-of select="$stack_width_"/></xsl:message>
-			<xsl:message>==============================</xsl:message>
--->			
-			
-			<ABV HEIGHT="{$stack_height_}"/>
-			
-		</xsl:for-each>
-		
-		
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>Found Blw Sbs max as <xsl:value-of select="math:max(exsl:node-set($blwSbs_heights_)/BLW/@HEIGHT)"/></xsl:message>
--->	
-	<!-- Return the max of them -->	
-	<xsl:value-of select="math:max(exsl:node-set($abvSbs_heights_)/ABV/@HEIGHT)"/>
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Max_Proc_PerisAbvSbs_Height">
-	<xsl:param name="iProcInst"  select="_processor_"/>
-	
-	<!-- Store the heights in a variable -->	
-	<xsl:variable name="abvSbs_heights_">
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE)">
-			<ABV HEIGHT="0"/>
-		</xsl:if>
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE">
-			<xsl:variable name="procInst_" select="@INSTANCE"/> 
-<!--			
-			<xsl:message>Found Blw Sbs height as <xsl:value-of select="$blwSbs_"/></xsl:message>
-			<ABV HEIGHT="{$pAbvSbs_}"/>
--->			
-			
-			<xsl:variable name="pAbvSbs_">
-				<xsl:call-template name="_calc_Proc_PerisAbvSbs_Height">	
-					<xsl:with-param name="iProcInst" select="$iProcInst_"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:variable name="memUs_">
-				<xsl:call-template name="_calc_Proc_MemoryUnits_Height">	
-					<xsl:with-param name="iProcInst" select="$iProcInst_"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-<!--			
-			<xsl:message>Found Peris Above height as <xsl:value-of select="$pAbvSbs_"/></xsl:message>
-			<xsl:message>Found MemUs Above height as <xsl:value-of select="$memUs_"/></xsl:message>
-			<xsl:message>Found PAbv Above height as <xsl:value-of select="($pAbvSbs_ + $memUs_)"/></xsl:message>
--->			
-			<ABV HEIGHT="{$pAbvSbs_ + $memUs_}"/>
-		</xsl:for-each>
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>Found Abv Sbs max as <xsl:value-of select="math:max(exsl:node-set($abvSbs_heights_)/ABV/@HEIGHT)"/></xsl:message>
--->	
-	
-	<!-- Return the max of them -->	
-	<xsl:value-of select="math:max(exsl:node-set($abvSbs_heights_)/ABV/@HEIGHT)"/>
-</xsl:template>
-	
-
-<xsl:template name="_calc_MultiProc_Stack_Height">
-	<xsl:param name="iMPStack_Blkd_X"  select="100"/>
-	
-		<xsl:variable name="mpStk_ShpHeights_">
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@HAS_MULTIPROCCONNS) and (@PSTACK_BLKD_X = $iMPStack_Blkd_X))])">
-				<MPSHAPE HEIGHT="0"/>
-			</xsl:if>
-			
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@HAS_MULTIPROCCONNS) and (@PSTACK_BLKD_X = $iMPStack_Blkd_X))]">
-				<xsl:variable name="shpClass_" select="@MODCLASS"/> 
-				<xsl:variable name="shpHeight_">
-					<xsl:choose>
-						<xsl:when test="$shpClass_ = 'PERIPHERAL'">
-<!--							
-							<xsl:message>Found Multi Proc Peripheral</xsl:message> 
--->	
-							<xsl:call-template name="_calc_PeriShape_Height">	
-								<xsl:with-param name="iShapeInst" select="MODULE/@INSTANCE"/>
-							</xsl:call-template>	
-						</xsl:when>
-						<xsl:when test="$shpClass_ = 'MEMORY_UNIT'">
-<!--							
-							<xsl:message>Found Multi Proc Memory Unit</xsl:message> 
--->	
-							<xsl:call-template name="_calc_MemoryUnit_Height">	
-								<xsl:with-param name="iShapeIndex"  select="@CSHAPE_INDEX"/>
-							</xsl:call-template>	
-						</xsl:when>
-						<xsl:otherwise>0</xsl:otherwise>
-					</xsl:choose>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>Found <xsl:value-of select="$shpHeight_"/></xsl:message>
--->				
-				
-				<MPSHAPE HEIGHT="{$shpHeight_}"/>
-			</xsl:for-each>
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>Found stack of height <xsl:value-of select="sum(exsl:node-set($mpStk_ShpHeights_)/MPSHAPE/@HEIGHT)"/></xsl:message>
--->	
-	
-	<xsl:value-of select="sum(exsl:node-set($mpStk_ShpHeights_)/MPSHAPE/@HEIGHT)"/>
-</xsl:template>
-
-<xsl:template name="_calc_Max_MultiProc_Stack_Height">
-	
-	<!-- Store the heights in a variable -->	
-	
-	<xsl:variable name="mpStks_Heights_">
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE)">
-			<MPSTK HEIGHT="0"/>
-		</xsl:if>
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@PSTACK_BLKD_X)]">
-			<xsl:variable name="mpstack_height_">
-				<xsl:call-template name="_calc_MultiProc_Stack_Height">
-					<xsl:with-param name="iMPStack_Blkd_X" select="(@PSTACK_BLKD_X + 1)"/>
-				</xsl:call-template>
-			</xsl:variable>
-			
-<!--			
-			<xsl:message>Found <xsl:value-of select="$mpstack_height_"/></xsl:message>
--->			
-			<MPSTK HEIGHT="{$mpstack_height_}"/>
-		</xsl:for-each>
-		
-	</xsl:variable>
-
-		<!-- Return the max of them -->	
-	<xsl:value-of select="math:max(exsl:node-set($mpStks_Heights_)/MPSTK/@HEIGHT)"/>
-	
-</xsl:template>
-
-
-
-<xsl:template name="_calc_Stack_Shape_Y">
-	
-	<xsl:param name="iHorizIdx"  select="100"/>
-	<xsl:param name="iVertiIdx"  select="100"/>
-	
-	
-<!--	
-	<xsl:message>Y at H index <xsl:value-of select="$iHorizIdx"/></xsl:message>
-	<xsl:message>Y at V index <xsl:value-of select="$iVertiIdx"/></xsl:message>
-	<xsl:param name="sbsGap"    select="0"/>
-	<xsl:variable name="numSBSs_"     select="count(/EDKSYSTEM/BLKDSHAPES/SBSSHAPES/MODULE)"/>	
-	<xsl:variable name="sbs_LANE_H_"    select="($numSBSs_ * $BLKD_SBS_LANE_H)"/>
-	<xsl:variable name="sbsGap_"   select="($BLKD_PROC2SBS_GAP + $sbs_LANE_H_)"/>
--->	
-	
-	<xsl:variable name="sbsGap_" select="((count(/EDKSYSTEM/BLKDSHAPES/SBSSHAPES/MODULE) * $BLKD_SBS_LANE_H) + $BLKD_PROC2SBS_GAP)"/>	
-	
-	<xsl:if test="(not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]) and  
-		           not(/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(  (@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]) and
-		           not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(     (@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]))">0</xsl:if>
-	
-	
-	<xsl:if test="((/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))])   or  
-		           (/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(  (@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))])   or
-		           (/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(     (@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]))">
-		<!-- Store the spaces above this one in a variable -->
-		<xsl:variable name="spaces_above_">
-		
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX &lt; $iVertiIdx))])">
-				<SPACE HEIGHT="0"/>
-			</xsl:if>
-			
-			<!-- Store the height of all peripherals and memory units above this one-->
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx)  and (@SHAPE_VERTI_INDEX &lt; $iVertiIdx))]">
-				
-				<xsl:if test="not(@MODCLASS='MEMORY_UNIT')">	
-					<xsl:variable name="peri_height_">
-						<xsl:call-template name="_calc_Shape_Height">	
-							<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
-						</xsl:call-template>	
-					</xsl:variable>
-<!--					
-					<xsl:message>Found peri height <xsl:value-of select="$peri_height_"/></xsl:message>
--->	
-					<SPACE HEIGHT="{$peri_height_ + $BLKD_BIF_H}"/>
-				</xsl:if>
-				
-				<xsl:if test="(@MODCLASS='MEMORY_UNIT')">	
-					<xsl:variable name="memu_height_">
-						<xsl:call-template name="_calc_MemoryUnit_Height">	
-							<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
-						</xsl:call-template>	
-					</xsl:variable>
-<!--					
-					<xsl:message>Found unit height <xsl:value-of select="$memu_height_"/></xsl:message>
--->					
-					<SPACE HEIGHT="{$memu_height_ + $BLKD_BIF_H}"/>
-				</xsl:if>
-				
-			</xsl:for-each>
-			
-			<!-- Store the height of all the processors above this one-->
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[((@STACK_HORIZ_INDEX = $iHorizIdx)  and (@SHAPE_VERTI_INDEX &lt; $iVertiIdx))]">
-				<xsl:variable name="proc_height_">
-						<xsl:call-template name="_calc_PeriShape_Height">	
-							<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-						</xsl:call-template>	
-				</xsl:variable>
-				
-				<SPACE HEIGHT="{$proc_height_ + $BLKD_BIF_H}"/>
-			</xsl:for-each>
-			
-			<!-- If its a peripheral that is below the shared busses, or its a shared bus bucket -->
-			<!-- add the height of the shared busses and the processor.                           -->
-			<xsl:if  test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]/@IS_BLWSBS)">
-				<SPACE HEIGHT="{$sbsGap_}"/>
-			</xsl:if>
-			<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))])">
-				<SPACE HEIGHT="{$sbsGap_}"/>
-			</xsl:if>
-			
-			<!-- Store the height of all shared bus buckets above this one-->
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[((@STACK_HORIZ_INDEX = $iHorizIdx)  and (@SHAPE_VERTI_INDEX &lt; $iVertiIdx))]">
-				<xsl:variable name="bkt_height_">
-					<xsl:call-template name="_calc_SbsBucket_Height">
-						<xsl:with-param name="iBucketId" select="@BUSINDEX"/>
-					</xsl:call-template>	
-				</xsl:variable>
-				
-				<SPACE HEIGHT="{$bkt_height_ + $BLKD_BIF_H}"/>
-			</xsl:for-each>
-			
-		</xsl:variable>
-		
-		<xsl:value-of select="sum(exsl:node-set($spaces_above_)/SPACE/@HEIGHT)"/>
-	</xsl:if>
-	
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Max_BusConnLane_BifY">
-	
-	<xsl:param name="iBusName" select="'_busname_'"/>
-	
-	<!-- Store the heights in a variable -->	
-	<xsl:variable name="busConnYs_">
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/BUSCONNS/BUSCONNLANE/BUSCONN)">
-			<BUSCONNY HEIGHT="0"/>
-		</xsl:if>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/BUSCONNS/BUSCONNLANE[(@BUSNAME = $iBusName)]/BUSCONN">
-			
-			<xsl:variable name="peri_cstk_y_">
-				<xsl:call-template name="_calc_CStackShapesAbv_Height">
-					<xsl:with-param name="iCStackIndex"  select="../@CSTACK_INDEX"/>
-					<xsl:with-param name="ICStackModY"   select="@CSTACK_MODS_Y"/>
-				</xsl:call-template>	
-			</xsl:variable>	
-				
-				<xsl:variable name="peri_bif_dy_">
-					<xsl:value-of select="(($BLKD_BIF_H + $BLKD_BIF_GAP)  * @BIF_Y)"/>
-				</xsl:variable>
-				
-				<xsl:variable name="peri_bc_y_">
-					<xsl:value-of select="($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_BIF_GAP + $peri_bif_dy_ + ceiling($BLKD_BIF_H div 2)) - ceiling($BLKD_BIFC_H div 2)"/>
-				</xsl:variable>
-			
-<!--			
-			<xsl:message>Found a busconn lane</xsl:message>
--->			
-			<BUSCONNY HEIGHT="{$peri_cstk_y_ + $peri_bif_dy_ + $peri_bc_y_}"/>
-		</xsl:for-each>
-		
-	</xsl:variable>
-
-		<!-- Return the max of them -->	
-	<xsl:value-of select="math:max(exsl:node-set($busConnYs_)/BUSCONNY/@HEIGHT)"/>
-	
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Min_BusConnLane_BifY">
-	
-	<xsl:param name="iBusName" select="'_busname_'"/>
-	
-	<!-- Store the heights in a variable -->	
-	<xsl:variable name="busConnYs_">
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/BUSCONNS/BUSCONNLANE/BUSCONN)">
-			<BUSCONNY HEIGHT="0"/>
-		</xsl:if>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/BUSCONNS/BUSCONNLANE[(@BUSNAME = $iBusName)]/BUSCONN">
-			
-			<xsl:variable name="peri_cstk_y_">
-				<xsl:call-template name="_calc_CStackShapesAbv_Height">
-					<xsl:with-param name="iCStackIndex"  select="../@CSTACK_INDEX"/>
-					<xsl:with-param name="iCStackModY"   select="@CSTACK_MODS_Y"/>
-				</xsl:call-template>	
-			</xsl:variable>	
-				
-				<xsl:variable name="peri_bif_dy_">
-					<xsl:value-of select="(($BLKD_BIF_H + $BLKD_BIF_GAP)  * @BIF_Y)"/>
-				</xsl:variable>
-				
-				<xsl:variable name="peri_bc_y_">
-					<xsl:value-of select="($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_BIF_GAP + $peri_bif_dy_ + ceiling($BLKD_BIF_H div 2)) - ceiling($BLKD_BIFC_H div 2)"/>
-				</xsl:variable>
-			
-<!--			
-			<xsl:message>Found a busconn lane</xsl:message>
--->			
-			<BUSCONNY HEIGHT="{$peri_cstk_y_ + $peri_bc_y_}"/>
-		</xsl:for-each>
-		
-	</xsl:variable>
-
-		<!-- Return the min of them -->	
-	<xsl:value-of select="math:min(exsl:node-set($busConnYs_)/BUSCONNY/@HEIGHT)"/>
-	
-</xsl:template>
-	
-<xsl:template name="_calc_Stack_Height">
-	<xsl:param name="iStackIdx"  select="100"/>
-	
-	<xsl:variable name="stack_height_">
-		<!-- if this is called with no vert index of a shape 
-			 it defaults to the total height of the stack -->
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$iStackIdx"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-	<xsl:value-of select="$stack_height_"/>
-</xsl:template>
-	
-<!--	
--->	
-	
-	
-<xsl:template name="_calc_Stack_Width">
-	<xsl:param name="iStackIdx"  select="100"/>
-	
-<!--	
-	<xsl:message>=============Stack Idx <xsl:value-of select="$iStackIdx"/>====</xsl:message>			
--->	
-	<xsl:variable name="shape_widths_">	
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[@STACK_HORIZ_INDEX = $iStackIdx])">
-			<SHAPE WIDTH="0"/>
-		</xsl:if>
-			
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[@STACK_HORIZ_INDEX = $iStackIdx])">
-			<SHAPE WIDTH="0"/>
-		</xsl:if>
-			
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-<!--			
-			<xsl:variable name="proc_w_">
-				<xsl:value-of select="$BLKD_MOD_W"/>
-			</xsl:variable>
-			<xsl:message>Found processor of width <xsl:value-of select="$proc_w_"/></xsl:message>
--->	
-			<SHAPE WIDTH="{$BLKD_MOD_W}"/>
-		</xsl:for-each>
-			
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-				
-			<xsl:variable name="shpClass_" select="@MODCLASS"/> 
-			<xsl:variable name="shape_w_">
-				<xsl:choose>
-						
-						<xsl:when test="$shpClass_ = 'PERIPHERAL'">
-							<xsl:value-of select="$BLKD_MOD_W"/>
-						</xsl:when>
-						
-						<xsl:when test="$shpClass_ = 'MEMORY_UNIT'">
-							<xsl:value-of select="($BLKD_MOD_W * @MODS_W)"/>
-						</xsl:when>
-						
-						<xsl:otherwise>0</xsl:otherwise>
-						
-					</xsl:choose>
-				</xsl:variable>
-				
-<!--		
-			<xsl:message>Found shape width <xsl:value-of select="$shape_w_"/></xsl:message>
--->				
-				
-			<SHAPE WIDTH="{$shape_w_}"/>
-		</xsl:for-each>
-			
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-			<xsl:variable name="bucket_w_">
-				  <xsl:value-of select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
-			</xsl:variable>
-			
-<!--				
-			<xsl:message>Found bucket of width <xsl:value-of select="$bucket_w_"/></xsl:message>
--->				
-			<SHAPE WIDTH="{$bucket_w_}"/>
-		</xsl:for-each>
-			
-	</xsl:variable>
-	
-	<xsl:value-of select="math:max(exsl:node-set($shape_widths_)/SHAPE/@WIDTH)"/>
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Stack_X">
-	<xsl:param name="iStackIdx"  select="0"/>
-<!--	
-	<xsl:message>Looking for stack indexes less than <xsl:value-of select="$iStackIdx"/></xsl:message>
--->	
-	
-	<!-- Store the stack widths in a variable -->	
-	<xsl:variable name="stackspace_widths_">
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES[(@STACK_HORIZ_INDEX &lt; $iStackIdx)])">
-			<STACKSPACE WIDTH="0"/>
-		</xsl:if>
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES[(@STACK_HORIZ_INDEX &lt; $iStackIdx)])">
-			<STACKSPACE WIDTH="0"/>
-		</xsl:if>
-		
-		<xsl:if test="not(/EDKSYSTEM/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX &lt; $iStackIdx)])">
-			<STACKSPACE WIDTH="0"/>
-		</xsl:if>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST &lt;= $iStackIdx)]">
-			
-<!--		
-			<xsl:message>==============================</xsl:message>
-			<xsl:message>Found a space of index <xsl:value-of select="@EAST"/></xsl:message>
-			<xsl:message>Bus lane space width <xsl:value-of select="@BUSLANES_W"/></xsl:message>
-			<xsl:message>Bus lane space is <xsl:value-of select="$space_width_"/></xsl:message>
--->	
-			<xsl:variable name="space_width_" select="($BLKD_BUS_LANE_W * @BUSLANES_W)"/>
-			<xsl:variable name="stack_width_">
-				<xsl:if test="not(@EAST = $iStackIdx)">
-					<xsl:call-template name="_calc_Stack_Width">
-						<xsl:with-param name="iStackIdx"  select="@EAST"/>
-					</xsl:call-template>
-				</xsl:if>
-				<xsl:if test="(@EAST = $iStackIdx)">0</xsl:if>
-			</xsl:variable>
-			
-<!--			
-			<xsl:message>Found stack of width <xsl:value-of select="$stack_width_"/></xsl:message>
-			<xsl:message>==============================</xsl:message>
--->			
-			
-			<STACKSPACE WIDTH="{$stack_width_ + $space_width_}"/>
-			
-		</xsl:for-each>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(not(@EAST) and (@WEST = ($iStackIdx -1)))]">
-			<xsl:variable name="space_width_" select="($BLKD_BUS_LANE_W * @BUSLANES_W)"/>
-			
-<!--			
-			<xsl:message>Found end space of <xsl:value-of select="$space_width_"/></xsl:message>
--->			
-			<STACKSPACE WIDTH="{$space_width_}"/>
-		</xsl:for-each>
-		
-		
-	</xsl:variable>
-	
-	<xsl:value-of select="sum(exsl:node-set($stackspace_widths_)/STACKSPACE/@WIDTH)"/>
-	
-</xsl:template>	
-	
-<xsl:template name="_calc_Space_Width">
-	
-	<xsl:param name="iStackToWest"  select="'NONE'"/>
-	<xsl:param name="iStackToEast"  select="'NONE'"/>
-	
-<!--	
-	<xsl:message>Stack to West <xsl:value-of select="$stackToWest"/></xsl:message>
-	<xsl:message>Stack to East <xsl:value-of select="$stackToEast"/></xsl:message>
--->	
-	
-	<xsl:variable name="spaceWidth_">
-		<xsl:choose>
-			<xsl:when test="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[((@EAST = $iStackToEast) or (not($iStackToWest = 'NONE') and (@WEST = $iStackToWest)))]">
-				<xsl:value-of select="((/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[((@EAST = $iStackToEast) or (not($iStackToWest = 'NONE') and (@WEST = $iStackToWest)))]/@BUSLANES_W) * $BLKD_BUS_LANE_W)"/>
-			</xsl:when>	
-			<xsl:otherwise>0</xsl:otherwise>	
-		</xsl:choose>	
-	</xsl:variable>	
-	
-<!--	
-	<xsl:message>Space width <xsl:value-of select="$spaceWidth_"/></xsl:message>
--->	
-	
-	<xsl:value-of select="$spaceWidth_"/>
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Space_X">
-	
-	<xsl:param name="iStackToWest"  select="'NONE'"/>
-	<xsl:param name="iStackToEast"  select="'NONE'"/>
-	
-<!--	
-	<xsl:message>Stack East <xsl:value-of select="$stackToEast"/></xsl:message>
-	<xsl:message>Stack West <xsl:value-of select="$stackToWest"/></xsl:message>
--->	
-	
-	<!-- Store the stack widths in a variable -->	
-	
-<!--	
-	<xsl:message>Looking for stack indexes less than <xsl:value-of select="$stackIdx"/></xsl:message>
--->	
-	
-	<xsl:variable name="stackspace_widths_">
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES[(@STACK_HORIZ_INDEX &lt; $iStackToEast)])">
-			<STACKSPACE WIDTH="0"/>
-		</xsl:if>
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES[(@STACK_HORIZ_INDEX &lt; $iStackToEast)])">
-			<STACKSPACE WIDTH="0"/>
-		</xsl:if>
-		
-		<xsl:if test="not(/EDKSYSTEM/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX &lt; $iStackToEast)])">
-			<STACKSPACE WIDTH="0"/>
-		</xsl:if>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[((@EAST &lt; $iStackToEast) or (not($iStackToWest = 'NONE') and (@EAST &lt;= $iStackToWest)))]">
-			
-<!--		
-			<xsl:message>==============================</xsl:message>
-			<xsl:message>Found a space of index <xsl:value-of select="@EAST"/></xsl:message>
--->	
-			
-			<xsl:variable name="space_width_" select="($BLKD_BUS_LANE_W * @BUSLANES_W)"/>
-<!--			
-			<xsl:message>Bus lane space width <xsl:value-of select="@BUSLANES_W"/></xsl:message>
-			<xsl:message>Bus lane space is <xsl:value-of select="$space_width_"/></xsl:message>
--->	
-				<xsl:variable name="stack_width_">
-					<xsl:call-template name="_calc_Stack_Width">
-						<xsl:with-param name="iStackIdx"  select="@EAST"/>
-					</xsl:call-template>
-				</xsl:variable>
-			
-<!--			
-			<xsl:message>Found stack of width <xsl:value-of select="$stack_width_"/></xsl:message>
-			<xsl:message>==============================</xsl:message>
--->			
-			
-			<STACKSPACE WIDTH="{$stack_width_ + $space_width_}"/>
-		</xsl:for-each>
-	</xsl:variable>
-	
-	<xsl:variable name = "stackToWest_W_">
-		<xsl:choose>
-			<xsl:when test="(($iStackToEast = '0')   and     ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="(($iStackToEast = 'NONE') and not($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_Width">
-					<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:when test="(not($iStackToEast = '0') and ($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_Width">
-					<xsl:with-param name="iStackIdx"  select="($iStackToEast - 1)"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:otherwise>0</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-<!--	
-	<xsl:variable name = "stackToEast_W_">
-		<xsl:call-template name="_calc_Stack_Width">
-			<xsl:with-param name="stackIdx"  select="$stackToEast"/>
-		</xsl:call-template>
-	</xsl:variable>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($stackToEast_W_ div 2)"/>
--->	
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($stackToWest_W_ div 2)"/>
-	 
-	<xsl:value-of select="sum(exsl:node-set($stackspace_widths_)/STACKSPACE/@WIDTH) - $extSpaceWest_W_"/>
-</xsl:template>	
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
deleted file mode 100644
index bf9bf94..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
+++ /dev/null
@@ -1,173 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-                
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-	
-<!-- 
-	======================================================
-			BUS INTERFACE DIMENSIONS
-	======================================================
--->				
-	
-<xsl:variable name="BLKD_BIF_H"     select="16"/>				
-<xsl:variable name="BLKD_BIF_W"     select="32"/>				
-	
-<xsl:variable name="BLKD_BIFC_H"    select="24"/>				
-<xsl:variable name="BLKD_BIFC_W"    select="24"/>				
-
-<xsl:variable name="BLKD_BIFC_dx"   select="ceiling($BLKD_BIFC_W div 5)"/>
-<xsl:variable name="BLKD_BIFC_dy"   select="ceiling($BLKD_BIFC_H div 5)"/>
-<xsl:variable name="BLKD_BIFC_Hi"   select="($BLKD_BIFC_H - ($BLKD_BIFC_dy * 2))"/>	
-<xsl:variable name="BLKD_BIFC_Wi"   select="($BLKD_BIFC_W - ($BLKD_BIFC_dx * 2))"/>
-
-<xsl:variable name="BLKD_BIF_TYPE_ONEWAY"  select="'OneWay'"/>
-	
-<!-- 
-	======================================================
-			GLOLBAL BUS INTERFACE DIMENSIONS
-		(Define for global MdtSVG_BifShapes.xsl which is used across all
-	     diagrams to define the shapes of bifs the same across all diagrams)
-	======================================================
--->	
-	
-<xsl:variable name="BIF_H"     select="$BLKD_BIF_H"/>				
-<xsl:variable name="BIF_W"     select="$BLKD_BIF_W"/>
-	
-<xsl:variable name="BIFC_H"    select="$BLKD_BIFC_H"/>
-<xsl:variable name="BIFC_W"    select="$BLKD_BIFC_W"/>
-	
-<xsl:variable name="BIFC_dx"   select="$BLKD_BIFC_dx"/>
-<xsl:variable name="BIFC_dy"   select="$BLKD_BIFC_dy"/>
-	
-<xsl:variable name="BIFC_Hi"   select="$BLKD_BIFC_Hi"/>	
-<xsl:variable name="BIFC_Wi"   select="$BLKD_BIFC_Wi"/>
-
-
-<!-- 
-	======================================================
-			BUS DIMENSIONS
-	======================================================
--->				
-	
-<xsl:variable name="BLKD_P2P_BUS_W"     select="($BLKD_BUS_ARROW_H - ($BLKD_BUS_ARROW_G * 2))"/>	
-<xsl:variable name="BLKD_SBS_LANE_H"    select="($BLKD_MOD_H + ($BLKD_BIF_H * 2))"/>	
-<xsl:variable name="BLKD_BUS_LANE_W"    select="($BLKD_BIF_W + ($BLKD_MOD_BIF_GAP_H * 2))"/>
-<xsl:variable name="BLKD_BUS_ARROW_W"   select="ceiling($BLKD_BIFC_W div 3)"/>	
-<xsl:variable name="BLKD_BUS_ARROW_H"   select="ceiling($BLKD_BIFC_H div 2)"/>
-<xsl:variable name="BLKD_BUS_ARROW_G"   select="ceiling($BLKD_BIFC_W div 12)"/>
-	
-	
-<!-- 
-	======================================================
-			IO PORT DIMENSIONS
-	======================================================
--->				
-	
-<xsl:variable name="BLKD_IOP_H"   select="16"/>				
-<xsl:variable name="BLKD_IOP_W"   select="16"/>				
-<xsl:variable name="BLKD_IOP_SPC" select="12"/>				
-
-	
-<!-- 
-	======================================================
-			INTERRUPT NOTATION DIMENSIONS
-	======================================================
--->				
-	
-<xsl:variable name="BLKD_INTR_W"  select="18"/>
-<xsl:variable name="BLKD_INTR_H"  select="18"/>
-	
-<!-- 
-	======================================================
-			MODULE DIMENSIONS
-	======================================================
--->				
-	
-<xsl:variable name="BLKD_MOD_IO_GAP"   select="8"/>	
-	
-<xsl:variable name="BLKD_MOD_W"  select="(                    ($BLKD_BIF_W * 2) + ($BLKD_MOD_BIF_GAP_H * 1) + ($BLKD_MOD_LANE_W * 2))"/>
-<xsl:variable name="BLKD_MOD_H"  select="($BLKD_MOD_LABEL_H + ($BLKD_BIF_H * 1) + ($BLKD_MOD_BIF_GAP_V * 1) + ($BLKD_MOD_LANE_H * 2))"/>
-	
-<xsl:variable name="BLKD_MOD_BIF_GAP_H" select="ceiling($BLKD_BIF_H div 4)"/>				
-<xsl:variable name="BLKD_MOD_BIF_GAP_V" select="ceiling($BLKD_BIFC_H div 2)"/>				
-	
-<xsl:variable name="BLKD_MOD_LABEL_W"   select="(($BLKD_BIF_W * 2) + $BLKD_MOD_BIF_GAP_H)"/>
-<xsl:variable name="BLKD_MOD_LABEL_H"   select="(($BLKD_BIF_H * 2) + ceiling($BLKD_BIF_H div 3))"/>
-	
-<xsl:variable name="BLKD_MOD_LANE_W"    select="ceiling($BLKD_BIF_W div 3)"/>
-<xsl:variable name="BLKD_MOD_LANE_H"    select="ceiling($BLKD_BIF_H div 4)"/>
-	
-<xsl:variable name="BLKD_MOD_EDGE_W"    select="ceiling($BLKD_MOD_LANE_W div 2)"/>
-<xsl:variable name="BLKD_MOD_SHAPES_G"  select="($BLKD_BIF_W + $BLKD_BIF_W)"/>
-	
-<xsl:variable name="BLKD_MOD_BKTLANE_H" select="$BLKD_BIF_H"/>
-<xsl:variable name="BLKD_MOD_BKTLANE_W" select="$BLKD_BIF_H"/>
-	
-<xsl:variable name="BLKD_MOD_BUCKET_G"  select="ceiling($BLKD_BIF_W div 2)"/>
-	
-<xsl:variable name="BLKD_MPMC_MOD_H"    select="(($BLKD_BIF_H * 1) + ($BLKD_MOD_BIF_GAP_V * 2) + ($BLKD_MOD_LANE_H * 2))"/>
-	
-	
-<!-- 
-	======================================================
-			GLOBAL DIAGRAM DIMENSIONS
-	======================================================
--->				
-	
-<xsl:variable name="BLKD_IORCHAN_H"      select="$BLKD_BIF_H"/>
-<xsl:variable name="BLKD_IORCHAN_W"      select="$BLKD_BIF_H"/>
-	
-<xsl:variable name="BLKD_PRTCHAN_H"      select="($BLKD_BIF_H * 2) + ceiling($BLKD_BIF_H div 2)"/>
-<xsl:variable name="BLKD_PRTCHAN_W"      select="($BLKD_BIF_H * 2) + ceiling($BLKD_BIF_H div 2) + 8"/>
-	
-<xsl:variable name="BLKD_DRAWAREA_MIN_W" select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * 3) + ($BLKD_MOD_BUCKET_G * 2)))"/>
-	
-<xsl:variable name="BLKD_INNER_X" 		 select="($BLKD_PRTCHAN_W  + $BLKD_IORCHAN_W + $BLKD_INNER_GAP)"/>
-<xsl:variable name="BLKD_INNER_Y" 		 select="($BLKD_PRTCHAN_H  + $BLKD_IORCHAN_H + $BLKD_INNER_GAP)"/>
-<xsl:variable name="BLKD_INNER_GAP"      select="ceiling($BLKD_MOD_W div 2)"/>
-	
-<xsl:variable name="BLKD_SBS2IP_GAP"    select="$BLKD_MOD_H"/>
-<xsl:variable name="BLKD_BRIDGE_GAP"    select="($BLKD_BUS_LANE_W * 4)"/>
-<xsl:variable name="BLKD_IP2UNK_GAP"    select="$BLKD_MOD_H"/>
-<xsl:variable name="BLKD_PROC2SBS_GAP"  select="($BLKD_BIF_H * 2)"/>
-<xsl:variable name="BLKD_IOR2PROC_GAP"  select="$BLKD_BIF_W"/>
-<xsl:variable name="BLKD_MPMC2PROC_GAP" select="($BLKD_BIF_H * 2)"/>
-<xsl:variable name="BLKD_SPECS2KEY_GAP" select="$BLKD_BIF_W"/>
-<xsl:variable name="BLKD_DRAWAREA2KEY_GAP"  select="ceiling($BLKD_BIF_W div 3)"/>
-	
-<xsl:variable name="BLKD_KEY_H"         select="250"/>
-<xsl:variable name="BLKD_KEY_W"         select="($BLKD_DRAWAREA_MIN_W + ceiling($BLKD_DRAWAREA_MIN_W div 2.5))"/>
-	
-	
-<xsl:variable name="BLKD_SPECS_H"       select="100"/>
-<xsl:variable name="BLKD_SPECS_W"       select="300"/>
-	
-	
-	
-<xsl:variable name="BLKD_BKT_MODS_PER_ROW"   select="3"/>
-	
-<!--		
-<xsl:template name="Print_Dimensions">
-	<xsl:message>MOD_LABEL_W  : <xsl:value-of select="$MOD_LABEL_W"/></xsl:message>
-	<xsl:message>MOD_LABEL_H  : <xsl:value-of select="$MOD_LABEL_H"/></xsl:message>
-	
-	<xsl:message>MOD_LANE_W   : <xsl:value-of select="$MOD_LANE_W"/></xsl:message>
-	<xsl:message>MOD_LANE_H   : <xsl:value-of select="$MOD_LANE_H"/></xsl:message>
-	
-	<xsl:message>MOD_EDGE_W   : <xsl:value-of select="$MOD_EDGE_W"/></xsl:message>
-	<xsl:message>MOD_SHAPES_G : <xsl:value-of select="$MOD_SHAPES_G"/></xsl:message>
-	
-	<xsl:message>MOD_BKTLANE_W   : <xsl:value-of select="$MOD_BKTLANE_W"/></xsl:message>
-	<xsl:message>MOD_BKTLANE_H   : <xsl:value-of select="$MOD_BKTLANE_H"/></xsl:message>
-	<xsl:message>MOD_BUCKET_G    : <xsl:value-of select="$MOD_BUCKET_G"/></xsl:message>
-	
-</xsl:template>		
--->	
-	
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl
deleted file mode 100644
index 9a53158..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl
+++ /dev/null
@@ -1,498 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-                
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-			
-<!--	
-<xsl:param name="BLKD_IOP_H"   select="16"/>				
-<xsl:param name="BLKD_IOP_W"   select="16"/>				
-<xsl:param name="BLKD_IOP_SPC" select="12"/>				
-<xsl:param name="MOD_IO_GAP"   select="8"/>				
--->
-	
-
-<!-- ======================= DEF BLOCK =============================== -->
-<xsl:template name="Define_IOPorts">
-	
-	<xsl:variable name="key_col_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="'KEY'"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-		<xsl:variable name="key_lt_col_">
-			<xsl:call-template name="BusType2LightColor">
-				<xsl:with-param name="iBusType" select="'KEY'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-
-	 <symbol id="G_IOPort">
-		<rect  
-			x="0"  
-			y="0" 
-			width= "{$BLKD_IOP_W}" 
-			height="{$BLKD_IOP_H}" style="fill:{$COL_IORING_LT}; stroke:{$COL_IORING}; stroke-width:1"/> 
-			
-		<path class="ioport"
-			  d="M   0,0
-				 L   {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
-				 L   0,{$BLKD_IOP_H}
-				 Z" style="stroke:none; fill:{$COL_SYSPRT}"/>	
-	</symbol>
-
-	 <symbol id="G_BIPort">
-		<rect  
-			x="0"  
-			y="0" 
-			width= "{$BLKD_IOP_W}" 
-			height="{$BLKD_IOP_H}" style="fill:{$COL_IORING_LT}; stroke:{$COL_IORING}; stroke-width:1"/> 
-			
-		<path class="btop"
-			  d="M 0,{ceiling($BLKD_IOP_H div 2)}
-				 {ceiling($BLKD_IOP_W div 2)},0
-				 {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
-				 Z" style="stroke:none; fill:{$COL_SYSPRT}"/>	
-				 
-		<path class="bbot"
-			  d="M 0,{ceiling($BLKD_IOP_H div 2)}
-				 {ceiling($BLKD_IOP_W div 2)},{$BLKD_IOP_H}
-				 {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
-				 Z" style="stroke:none; fill:{$COL_SYSPRT}"/>	
-				 
-	</symbol>
-
-	 <symbol id="KEY_IOPort">
-		<rect  
-			x="0"  
-			y="0" 
-			width= "{$BLKD_IOP_W}" 
-			height="{$BLKD_IOP_H}" style="fill:{$key_lt_col_}; stroke:none;"/> 
-			
-		<path class="ioport"
-			  d="M   0,0
-				 L   {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
-				 L   0,{$BLKD_IOP_H}
-				 Z" style="stroke:none; fill:{$key_col_}"/>	
-	</symbol>
-	
-	 <symbol id="KEY_BIPort">
-		<rect  
-			x="0"  
-			y="0" 
-			width= "{$BLKD_IOP_W}" 
-			height="{$BLKD_IOP_H}" style="fill:{$key_lt_col_}; stroke:none;"/> 
-			
-		<path class="btop"
-			  d="M 0,{ceiling($BLKD_IOP_H div 2)}
-				 {ceiling($BLKD_IOP_W div 2)},0
-				 {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
-				 Z" style="stroke:none; fill:{$key_col_}"/>	
-				 
-		<path class="bbot"
-			  d="M 0,{ceiling($BLKD_IOP_H div 2)}
-				 {ceiling($BLKD_IOP_W div 2)},{$BLKD_IOP_H}
-				 {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
-				 Z" style="stroke:none; fill:{$key_col_}"/>
-	</symbol>
-	
-	 <symbol id="KEY_INPort">
-		<use   x="0"   y="0"   xlink:href="#KEY_IOPort"/>
-		<rect  
-			x="{$BLKD_IOP_W}"  
-			y="0" 
-			width= "{ceiling($BLKD_IOP_W div 2)}" 
-			height="{$BLKD_IOP_H}" style="fill:{$COL_SYSPRT}; stroke:none;"/> 
-	</symbol>
-	
-	 <symbol id="KEY_OUTPort">
-		<use   x="0"   y="0"   xlink:href="#KEY_IOPort" transform="scale(-1,1) translate({$BLKD_IOP_W * -1},0)"/>
-		<rect  
-			x="{$BLKD_IOP_W}"  
-			y="0" 
-			width= "{ceiling($BLKD_IOP_W div 2)}" 
-			height="{$BLKD_IOP_H}" style="fill:{$COL_SYSPRT}; stroke:none;"/> 
-	</symbol>
-
-	 <symbol id="KEY_INOUTPort">
-		<use   x="0"   y="0"   xlink:href="#KEY_BIPort"/>
-		<rect  
-			x="{$BLKD_IOP_W}"  
-			y="0" 
-			width= "{ceiling($BLKD_IOP_W div 2)}" 
-			height="{$BLKD_IOP_H}" style="fill:{$COL_SYSPRT}; stroke:none;"/> 
-	</symbol>
-
-
-</xsl:template>
-
-<!-- ======================= DRAW BLOCK =============================== -->
-
-<xsl:template name="Draw_IOPorts"> 
-	
-	<xsl:variable name="ports_count_"    select="count(EXTERNALPORTS/PORT)"/>
-	
-	<xsl:if test="($ports_count_ &gt; 30)">
-		<xsl:call-template name="Draw_IOPorts_4Sides"/> 
-	</xsl:if>
-	
-	<xsl:if test="($ports_count_ &lt;= 30)">
-		<xsl:call-template name="Draw_IOPorts_2Sides"/> 
-	</xsl:if>
-</xsl:template>
-
-<xsl:template name="Draw_IOPorts_2Sides"> 
-	
-	<xsl:variable name="ports_count_"    select="count(EXTERNALPORTS/PORT)"/>
-	<xsl:variable name="ports_per_side_" select="ceiling($ports_count_ div 2)"/>
-	
-	<xsl:variable name="h_ofs_">
-		<xsl:value-of select="$BLKD_PRTCHAN_W + ceiling(($G_total_drawarea_W  - (($ports_per_side_ * $BLKD_IOP_W) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>
-	</xsl:variable>
-	
-	<xsl:variable name="v_ofs_">
-		<xsl:value-of select="$BLKD_PRTCHAN_H + ceiling(($G_total_drawarea_H  - (($ports_per_side_ * $BLKD_IOP_H) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>
-	</xsl:variable>
-	
-
-	<xsl:for-each select="EXTERNALPORTS/PORT">
-		<xsl:sort data-type="number" select="@INDEX" order="ascending"/>
-		
-		<xsl:variable name="poffset_" select="0"/>
-		<xsl:variable name="pcount_"  select="$poffset_ + (position() -1)"/>
-		
-		<xsl:variable name="pdir_">
-			<xsl:choose>
-				<xsl:when test="(@DIR='I'  or @DIR='IN'  or @DIR='INPUT')">I</xsl:when>
-				<xsl:when test="(@DIR='O'  or @DIR='OUT' or @DIR='OUTPUT')">O</xsl:when>
-				<xsl:when test="(@DIR='IO' or @DIR='INOUT')">B</xsl:when>
-				<xsl:otherwise>I</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="pside_">
-			<xsl:choose>
-				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 0) and ($pcount_ &lt; ($ports_per_side_ * 1)))">W</xsl:when>
-				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 1) and ($pcount_ &lt; ($ports_per_side_ * 2)))">E</xsl:when>
-				<xsl:otherwise>D</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="pdec_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($ports_per_side_ * 0)"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($ports_per_side_ * 1)"/></xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="px_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($BLKD_PRTCHAN_W - $BLKD_IOP_W)"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)) - 2)"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($BLKD_PRTCHAN_W + ($BLKD_IORCHAN_W * 2) + $G_total_drawarea_W)"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)))"/></xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="py_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_PRTCHAN_H + ($BLKD_IORCHAN_H * 2) + $G_total_drawarea_H)"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($BLKD_PRTCHAN_H - $BLKD_IOP_H)"/></xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-	
-		<xsl:variable name="prot_">
-			<xsl:choose>
-				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'I'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'I'))">-90</xsl:when>
-				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'I'))">180</xsl:when>
-				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'I'))">90</xsl:when>
-				
-				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'O'))">180</xsl:when>
-				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'O'))">90</xsl:when>
-				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'O'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'O'))">-90</xsl:when>
-				
-				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		
-		<xsl:variable name="txo_">
-			<xsl:choose>
-				<xsl:when test="($pside_  = 'W')">-10</xsl:when>
-				<xsl:when test="($pside_  = 'S')">6</xsl:when>
-				 <xsl:when test="($pside_ = 'E')"><xsl:value-of select="(($BLKD_IOP_W * 2) - 4)"/></xsl:when>
-				<xsl:when test="($pside_  = 'N')">6</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="tyo_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_IOP_H * 2) + 4"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')">-2</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-
-		<xsl:if test="$pdir_ = 'B'">	   
-			<use   x="{$px_}"  
-			       y="{$py_}"  
-				   id="{@NAME}"
-			       xlink:href="#G_BIPort" 
-			       transform="rotate({$prot_},{$px_ + ceiling($BLKD_IOP_W div 2)},{$py_ + ceiling($BLKD_IOP_H div 2)})"/>
-		</xsl:if>
-		
-		<xsl:if test="(($pside_ = 'S') and not($pdir_ = 'B'))">	   
-			<rect  
-				x="{$px_}"  
-				y="{$py_}" 
-				width= "{$BLKD_IOP_W}" 
-				height="{$BLKD_IOP_H}" style="stroke:{$COL_IORING}; stroke-width:1"/> 
-		</xsl:if>
-		
-		<xsl:if test="not($pdir_ = 'B')">	   
-			<use   x="{$px_}"  
-			       y="{$py_}"  
-				   id="{@NAME}"
-			       xlink:href="#G_IOPort" 
-			       transform="rotate({$prot_},{$px_ + ceiling($BLKD_IOP_W div 2)},{$py_ + ceiling($BLKD_IOP_H div 2)})"/>
-		</xsl:if>
-		
-		<text class="iopnumb"
-	  		x="{$px_ + $txo_}" 
-	  		y="{$py_ + $tyo_}">
-			<xsl:value-of select="@INDEX"/><tspan class="iopgrp"><xsl:value-of select="@GROUP"/></tspan>
-		</text>
-		
-	</xsl:for-each>
-	
-</xsl:template>
-
-
-<xsl:template name="Draw_IOPorts_4Sides"> 
-	
-	<xsl:variable name="ports_count_"    select="count(EXTERNALPORTS/PORT)"/>
-	<xsl:variable name="ports_per_side_" select="ceiling($ports_count_ div 4)"/>
-	
-	<xsl:variable name="h_ofs_">
-		<xsl:value-of select="$BLKD_PRTCHAN_W + ceiling(($G_total_drawarea_W  - (($ports_per_side_ * $BLKD_IOP_W) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>
-	</xsl:variable>
-	
-	<xsl:variable name="v_ofs_">
-		<xsl:value-of select="$BLKD_PRTCHAN_H + ceiling(($G_total_drawarea_H  - (($ports_per_side_ * $BLKD_IOP_H) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>
-	</xsl:variable>
-	
-
-	<xsl:for-each select="EXTERNALPORTS/PORT">
-		<xsl:sort data-type="number" select="@INDEX" order="ascending"/>
-		
-		<xsl:variable name="poffset_" select="0"/>
-		<xsl:variable name="pcount_"  select="$poffset_ + (position() -1)"/>
-		
-		<xsl:variable name="pdir_">
-			<xsl:choose>
-				<xsl:when test="(@DIR='I'  or @DIR='IN'  or @DIR='INPUT')">I</xsl:when>
-				<xsl:when test="(@DIR='O'  or @DIR='OUT' or @DIR='OUTPUT')">O</xsl:when>
-				<xsl:when test="(@DIR='IO' or @DIR='INOUT')">B</xsl:when>
-				<xsl:otherwise>I</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="pside_">
-			<xsl:choose>
-				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 0) and ($pcount_ &lt; ($ports_per_side_ * 1)))">W</xsl:when>
-				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 1) and ($pcount_ &lt; ($ports_per_side_ * 2)))">S</xsl:when>
-				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 2) and ($pcount_ &lt; ($ports_per_side_ * 3)))">E</xsl:when>
-				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 3) and ($pcount_ &lt; ($ports_per_side_ * 4)))">N</xsl:when>
-				<xsl:otherwise>D</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="pdec_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($ports_per_side_ * 0)"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($ports_per_side_ * 1)"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($ports_per_side_ * 2)"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($ports_per_side_ * 3)"/></xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="px_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($BLKD_PRTCHAN_W - $BLKD_IOP_W)"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)) - 2)"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($BLKD_PRTCHAN_W + ($BLKD_IORCHAN_W * 2) + $G_total_drawarea_W)"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)))"/></xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="py_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_PRTCHAN_H + ($BLKD_IORCHAN_H * 2) + $G_total_drawarea_H)"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($BLKD_PRTCHAN_H - $BLKD_IOP_H)"/></xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-	
-		<xsl:variable name="prot_">
-			<xsl:choose>
-				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'I'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'I'))">-90</xsl:when>
-				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'I'))">180</xsl:when>
-				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'I'))">90</xsl:when>
-				
-				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'O'))">180</xsl:when>
-				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'O'))">90</xsl:when>
-				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'O'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'O'))">-90</xsl:when>
-				
-				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="txo_">
-			<xsl:choose>
-				<xsl:when test="($pside_  = 'W')">-14</xsl:when>
-				<xsl:when test="($pside_  = 'S')">8</xsl:when>
-				 <xsl:when test="($pside_ = 'E')"><xsl:value-of select="(($BLKD_IOP_W * 2) - 4)"/></xsl:when>
-				<xsl:when test="($pside_  = 'N')">8</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="tyo_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_IOP_H * 2) + 4"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')">-2</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-
-		<xsl:if test="$pdir_ = 'B'">	   
-			<use   x="{$px_}"
-			       y="{$py_}"
-				   id="{@NAME}"
-			       xlink:href="#G_BIPort" 
-			       transform="rotate({$prot_},{$px_ + ceiling($BLKD_IOP_W div 2)},{$py_ + ceiling($BLKD_IOP_H div 2)})"/>
-		</xsl:if>
-		
-		<xsl:if test="(($pside_ = 'S') and not($pdir_ = 'B'))">	   
-			<rect  
-				x="{$px_}"
-				y="{$py_}"
-				width= "{$BLKD_IOP_W}"
-				height="{$BLKD_IOP_H}" style="stroke:{$COL_IORING}; stroke-width:1"/> 
-		</xsl:if>
-		
-		<xsl:if test="not($pdir_ = 'B')">	   
-			<use   x="{$px_}"
-			       y="{$py_}"
-				   id="{@NAME}"
-			       xlink:href="#G_IOPort"
-			       transform="rotate({$prot_},{$px_ + ceiling($BLKD_IOP_W div 2)},{$py_ + ceiling($BLKD_IOP_H div 2)})"/>
-		</xsl:if>
-		
-		<text class="iopnumb"
-	  		x="{$px_ + $txo_}" 
-	  		y="{$py_ + $tyo_}"><xsl:value-of select="@INDEX"/><tspan class="iopgrp"><xsl:value-of select="@GROUP"/></tspan>
-		</text>
-
-	</xsl:for-each>
-	
-</xsl:template>
-	
-<xsl:template name="Define_ExtPortsTable">
-	
-<!--	
-		<xsl:if test="$oriented_= 'WEST'"><xsl:value-of select="$proc2procX_ - (string-length(@BUSNAME) * 6)"/></xsl:if>	
-		<xsl:variable name="max_name_" select="math:max(string-length(/EDKSYSTEM/EXTERNALPORTS/PORT/@NAME))"/>
-		<xsl:variable name="max_sgnm_" select="math:max(string-length(/EDKSYSTEM/EXTERNALPORTS/PORT/@SIGNAME))"/>
-	
-		<xsl:message>MAX NAME <xsl:value-of select="$max_name_"/></xsl:message>
-		<xsl:message>MAX SIG  <xsl:value-of select="$max_sgnm_"/></xsl:message>
--->	
-	
-		<xsl:variable name="ext_ports_">	
-			<xsl:if test="not(/EDKSYSTEM/EXTERNALPORTS/PORT)">
-				<EXTPORT NAME="__none__" SIGNAME="__none_" NAMELEN="0" SIGLEN="0"/>
-			</xsl:if>
-			<xsl:if test="/EDKSYSTEM/EXTERNALPORTS/PORT">
-				<xsl:for-each select="/EDKSYSTEM/EXTERNALPORTS/PORT">
-					<EXTPORT  NAME="{@NAME}" SIGNAME="{@SIGNAME}" NAMELEN="{string-length(@NAME)}" SIGLEN="{string-length(@SIGNAME)}"/>
-				</xsl:for-each>
-			</xsl:if>
-		</xsl:variable>
-	
-		<xsl:variable name="max_name_" select="math:max(exsl:node-set($ext_ports_)/EXTPORT/@NAMELEN)"/>
-		<xsl:variable name="max_sign_" select="math:max(exsl:node-set($ext_ports_)/EXTPORT/@SIGLEN)"/>
-	
-		<xsl:variable name="h_font_" select="12"/>
-		<xsl:variable name="w_font_" select="12"/>
-	
-		<xsl:variable name="w_num_"    select="($w_font_ * 5)"/>
-		<xsl:variable name="w_dir_"    select="($w_font_ * 3)"/>
-		<xsl:variable name="w_lsbmsb_" select="($w_font_ * 9)"/>
-		<xsl:variable name="w_attr_"   select="($w_font_ * 4)"/>
-		<xsl:variable name="w_name_"   select="($w_font_ * $max_name_)"/>
-		<xsl:variable name="w_sign_"   select="($w_font_ * $max_sign_)"/>
-	
-		<xsl:variable name="w_table_" select="($w_num_ + $w_name_ + $w_dir_ + $w_sign_ + $w_attr_)"/>
-	
-<!--	
-		<xsl:message>MAX NAME <xsl:value-of select="$max_name_"/></xsl:message>
-		<xsl:message>MAX SIG  <xsl:value-of select="$max_sign_"/></xsl:message>
-	
-		<xsl:message>W NUM  <xsl:value-of select="$w_num_"/></xsl:message>
-		<xsl:message>W DIR  <xsl:value-of select="$w_dir_"/></xsl:message>
-		<xsl:message>W NAM  <xsl:value-of select="$w_name_"/></xsl:message>
-		<xsl:message>W SIG  <xsl:value-of select="$w_sign_"/></xsl:message>
-		<xsl:message>W ATT  <xsl:value-of select="$w_attr_"/></xsl:message>
-	
-		<xsl:message>W TABLE  <xsl:value-of select="$w_table_"/></xsl:message>
--->	
-	
-	 <symbol id="BlkDiagram_ExtPortsTable">
-		<rect  
-			x="0"  
-			y="0" 
-			width= "{$w_table_}" 
-			height="{$h_font_}"  style="fill:{$COL_RED}; stroke:none; stroke-width:1"/> 
-	</symbol>	 
-	
-	
-	
-</xsl:template>
-
-<!-- ======================= END MAIN BLOCK =========================== -->
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl
deleted file mode 100644
index 55c9b85..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl
+++ /dev/null
@@ -1,1391 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:math="http://exslt.org/math"
- 	       xmlns:xlink="http://www.w3.org/1999/xlink"
-           extension-element-prefixes="math">
-		   
-<xsl:include href="MdtSVG_Colors.xsl"/>
-<xsl:include href="MdtSVG_BifShapes.xsl"/>
-	
-<xsl:include href="MdtSvgBLKD_Busses.xsl"/>
-<xsl:include href="MdtSvgBLKD_IOPorts.xsl"/>
-<xsl:include href="MdtSvgBLKD_Dimensions.xsl"/>
-<xsl:include href="MdtSvgBLKD_Processors.xsl"/>
-<xsl:include href="MdtSvgBLKD_Peripherals.xsl"/>
-<xsl:include href="MdtSvgBLKD_Calculations.xsl"/>
-<xsl:include href="MdtSvgBLKD_BusLaneSpaces.xsl"/>
-	
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="svg10.dtd"/>
-	
-<xsl:param    name="ADD_VIEWBOX"        select="'FALSE'"/>		   
-<xsl:param    name="IN_TESTMODE"        select="'FALSE'"/>
-
-<xsl:param    name="CSS_SVG_DIAGRAMS"   select="'MdtSVG_Diagrams.css'"/>
-	
-<!-- 
-   ===========================================================================
-			CALCULATE GLOBAL DIMENSIONS BASED ON BLKDSHAPES DEF IN INPUT XML	
-   ===========================================================================
--->
-	
-<xsl:variable name="G_total_StandAloneMpmc_H">
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE">
-		<xsl:value-of select="($BLKD_MPMC_MOD_H + $BLKD_MPMC2PROC_GAP)"/>	
-	</xsl:if>
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE)">0</xsl:if>
-</xsl:variable>
-	
-<xsl:variable name="G_max_Stack_BlwSbs_H">
-	<xsl:call-template name="_calc_Max_Stack_BlwSbs_Height"/>
-</xsl:variable>
-
-<xsl:variable name="G_max_Stack_AbvSbs_H">
-	<xsl:call-template name="_calc_Max_Stack_AbvSbs_Height"/>
-</xsl:variable>
-	
-<xsl:variable name="G_total_Stacks_W">
-	<xsl:call-template name="_calc_Stack_X">
-		<xsl:with-param name="iStackIdx"    select="(/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)"/>
-	</xsl:call-template>
-</xsl:variable>
-	
-<xsl:variable name="G_NumOfSharedBusses"   select="count(/EDKSYSTEM/BLKDSHAPES/SBSSHAPES/MODULE)"/>
-<xsl:variable name="G_total_SharedBus_H"   select="($G_NumOfSharedBusses * $BLKD_SBS_LANE_H)"/>
-
-<xsl:variable name="G_NumOfBridges"        select="count(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE)"/>
-<xsl:variable name="G_total_Bridges_W"     select="(($G_NumOfBridges * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))) + $BLKD_BRIDGE_GAP)"/>
-	
-<xsl:variable name="G_total_drawarea_CLC"  select="($G_total_Stacks_W + $G_total_Bridges_W + ($BLKD_INNER_GAP * 2))"/>
-	
-<xsl:variable name="G_total_drawarea_W">
-	<xsl:if test="$G_total_drawarea_CLC &gt; ($BLKD_KEY_W + $BLKD_SPECS_W + $BLKD_SPECS2KEY_GAP)">
-		<xsl:value-of select="$G_total_drawarea_CLC"/>
-	</xsl:if>
-	<xsl:if test="not($G_total_drawarea_CLC &gt; ($BLKD_KEY_W + $BLKD_SPECS2KEY_GAP + $BLKD_SPECS_W))">
-		<xsl:value-of select="($BLKD_KEY_W + $BLKD_SPECS_W + $BLKD_SPECS2KEY_GAP)"/>
-	</xsl:if>
-</xsl:variable>
-	
-<xsl:variable name="G_IpBucketMods_H">
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/IPBUCKET/@MODS_H"><xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/IPBUCKET/@MODS_H"/></xsl:if>
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/IPBUCKET/@MODS_H)">0</xsl:if>
-</xsl:variable>
-<xsl:variable name="G_total_IpBucket_H"   select="($G_IpBucketMods_H * ($BLKD_MOD_H + $BLKD_BIF_H))"/>
-	
-<xsl:variable name="G_total_UnkBucket_H">
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET">
-	
-		<xsl:variable name="unkBucketMods_H_">
-			<xsl:if test="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@MODS_H"><xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@MODS_H"/></xsl:if>
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@MODS_H)">0</xsl:if>
-		</xsl:variable>
-		
-		<xsl:variable name="total_UnkMod_H_"       select="($unkBucketMods_H_ * ($BLKD_MOD_H + $BLKD_BIF_H))"/> 		<xsl:variable name="unkBucketBifs_H_"> <xsl:if test="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@BIFS_H"><xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@BIFS_H"/></xsl:if>
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@BIFS_H)">0</xsl:if>
-		</xsl:variable>
-		<xsl:variable name="total_UnkBif_H_"       select="($unkBucktBifs_H_ * ($BLKD_MOD_H + $BLKD_BIF_H))"/>
-		
-		<xsl:value-of select="($total_UnkBif_H_ + $G_totalUnkMod_H_)"/>	
-	</xsl:if>
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/UNKBUCKET)">0</xsl:if>
-</xsl:variable>
-	
-<xsl:variable name="G_SharedBus_Y"    select="($BLKD_INNER_Y + $G_total_StandAloneMpmc_H + $G_max_Stack_AbvSbs_H + $BLKD_PROC2SBS_GAP)"/>
-	
-<!-- ===========================================================================
-    Calculate the width of the Block Diagram based on the total number of      
-    buslanes and modules in the design. If there are no buslanes or modules,
-	a default width, just wide enough to display the KEY and SPECS is used
-   =========================================================================== -->
-<xsl:variable name="G_total_blkd_W"  select="($G_total_drawarea_W + (($BLKD_PRTCHAN_W  + $BLKD_IORCHAN_W)* 2))"/>
-<xsl:variable name="G_total_diag_W"    select="$G_total_blkd_W"/>
-	
-<!-- =========================================================================== -->
-<!-- Calculate the height of the Block Diagram based on the total number of      -->
-<!-- buslanes and modules in the design. Take into account special shapes such   -->
-<!-- as MultiProc shapes.													     -->
-<!-- =========================================================================== -->
-	
-	
-<xsl:variable name="G_total_drawarea_H"  select="($G_total_StandAloneMpmc_H + $G_max_Stack_AbvSbs_H + $BLKD_PROC2SBS_GAP + $G_total_SharedBus_H + $G_max_Stack_BlwSbs_H + $BLKD_SBS2IP_GAP + $G_total_IpBucket_H + $BLKD_IP2UNK_GAP + $G_total_UnkBucket_H + ($BLKD_INNER_GAP * 2))"/>
-<xsl:variable name="G_total_blkd_H"      select="($G_total_drawarea_H + (($BLKD_PRTCHAN_H  + $BLKD_IORCHAN_H)* 2))"/>
-	
-<xsl:variable name="G_total_diag_H">
-	<xsl:if test="($IN_TESTMODE = 'TRUE')">
-		<xsl:message>Generating Blkdiagram in TestMode </xsl:message>
-       <xsl:value-of select="$G_total_blkd_H"/>
-	</xsl:if>
-	<xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))">
-       <xsl:value-of select="($G_total_blkd_H + $BLKD_DRAWAREA2KEY_GAP + $BLKD_KEY_H)"/>
-	</xsl:if>
-</xsl:variable>
-		
-<!-- ======================= MAIN SVG BLOCK =============================== -->
-<xsl:template match="EDKSYSTEM">
-	
-<!--
-<xsl:message>STCK_W is <xsl:value-of select="$G_total_Stacks_W"/></xsl:message>
-<xsl:message>BRDG_W is <xsl:value-of select="$G_total_Bridges_W"/></xsl:message>
-<xsl:message>MPMC is <xsl:value-of select="$G_total_StandAloneMpmc_H"/></xsl:message>
-<xsl:message>MPMC is <xsl:value-of select="$G_total_StandAloneMpmc_H"/></xsl:message>
-<xsl:message>MABV is <xsl:value-of select="$G_max_Stack_AbvSbs_H"/></xsl:message>
-<xsl:message>MBLW is <xsl:value-of select="$G_max_Stack_BlwSbs_H"/></xsl:message>
-<xsl:message>IPBK is <xsl:value-of select="$G_total_IpBucket_H"/></xsl:message>
-<xsl:message>Blkd Total is <xsl:value-of select="$blkd_H_"/></xsl:message>
-<xsl:message>max abv is <xsl:value-of select="$max_Stack_AbvSbs_H_"/></xsl:message>
-<xsl:message>max blw is <xsl:value-of select="$max_Stack_BlwSbs_H_"/></xsl:message>
-<xsl:message>Ip Bkt is <xsl:value-of select="$totalIpBkt_H_"/></xsl:message>
-<xsl:message>Sbs is <xsl:value-of select="$totalSbs_H_"/></xsl:message>
-<xsl:message>Unk Bkt is <xsl:value-of select="$totalUnkBkt_H_"/></xsl:message>
-<xsl:message>Blkd DrawArea height as <xsl:value-of select="$total_drawarea_H_"/></xsl:message>
--->
-
-<!--specify a css for the file -->
-<xsl:processing-instruction name="xml-stylesheet">href="<xsl:value-of select="$CSS_SVG_DIAGRAMS"/>" type="text/css"</xsl:processing-instruction>
-
-<xsl:variable name="BLKD_ZOOM_Y">
-	<xsl:choose>
-		<xsl:when test="($ADD_VIEWBOX = 'TRUE')">
-			<xsl:value-of select="($G_total_diag_H * 2)"/>
-		</xsl:when>
-		<xsl:otherwise>0</xsl:otherwise>		
-	</xsl:choose>
-</xsl:variable>
-	
-<xsl:text>&#10;</xsl:text>
-<svg width="{$G_total_diag_W}" height="{$G_total_diag_H}" viewBox="0 0 0 {$BLKD_ZOOM_Y}">	
-<!-- 
-	 =============================================== 
-	       Layout All the various definitions       
-	 =============================================== 
--->
-	<defs>
-		<!-- Diagram Key Definition -->
-		<xsl:call-template name="Define_BlkDiagram_Key"/>		
-		
-		<!-- Diagram Specs Definition -->
-		<xsl:call-template name="Define_BlkDiagram_Specs">		
-			<xsl:with-param name="iArch"       select="@ARCH"/>
-			<xsl:with-param name="iPart"       select="@PART"/>
-			<xsl:with-param name="iTimeStamp"  select="@TIMESTAMP"/>
-			<xsl:with-param name="iEdkVersion" select="@EDKVERSION"/>
-		</xsl:call-template>		
-		
-		<!-- IO Port Defs -->
-		<xsl:call-template name="Define_IOPorts"/>		
-		
-		<!-- BIF Defs -->
-		<xsl:call-template name="Define_BifTypes"/>		
-		
-		<!-- Bus Defs -->
-		<xsl:call-template name="Define_Busses"/>		
-		
-		<!-- Shared Bus Buckets Defs -->
-		<xsl:call-template name="Define_SBSBuckets"/>		
-		
-		<!-- IP Bucket Defs -->
-		<xsl:call-template name="Define_IPBucket"/>		
-		
-		<!-- Stack Defs -->
-		<xsl:call-template name="Define_AllStacks"/>		
-		
-		<!-- Space Defs -->
-		<xsl:call-template name="Define_BusLaneSpaces"/>		
-		
-		<!-- Main MPMC Defs -->
-		<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE">
-			<xsl:call-template name="Define_StandAlone_MPMC"/>	
-		</xsl:if>
-	</defs>
-	
-<!-- =============================================== -->
-<!--             Draw Outlines                       -->
-<!-- =============================================== -->
-	
-	 <!-- The surrounding black liner -->
-     <rect x="0"  
-		   y="0" 
-		   width ="{$G_total_diag_W}"
-		   height="{$G_total_diag_H}" style="fill:{$COL_WHITE}; stroke:{$COL_BLACK};stroke-width:4"/>
-		   
-	 <!-- The outer IO channel -->
-     <rect x="{$BLKD_PRTCHAN_W}"  
-		   y="{$BLKD_PRTCHAN_H}" 
-		   width= "{$G_total_blkd_W - ($BLKD_PRTCHAN_W * 2)}" 
-		   height="{$G_total_blkd_H - ($BLKD_PRTCHAN_H * 2)}" style="fill:{$COL_IORING}"/>
-		   
-	 <!-- The Diagram's drawing area -->
-     <rect x="{$BLKD_PRTCHAN_W + $BLKD_IORCHAN_W}"  
-		   y="{$BLKD_PRTCHAN_H + $BLKD_IORCHAN_H}" 
-		   width= "{$G_total_drawarea_W}"
-		   height="{$G_total_drawarea_H}" rx="8" ry="8" style="fill:{$COL_BG}"/>
-		   
-<!-- =============================================== -->
-<!--        Draw All the various components          -->
-<!-- =============================================== -->
-	
-	<!--   Layout the IO Ports    -->	
-	<xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))">
-		<xsl:call-template name="Draw_IOPorts"/>	
-	</xsl:if>
-	
-	<!--   Layout the Shapes      -->	
-	<xsl:call-template name="Draw_BlkDiagram_Shapes"/>		
-	
-</svg>
-	
-<!-- ======================= END MAIN SVG BLOCK =============================== -->
-</xsl:template>
-	
-<xsl:template name="Draw_BlkDiagram_Shapes">
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the shared busses 
-		 ===========================================================
-	-->
-	<use   x="{$BLKD_INNER_X}"      y="{$G_SharedBus_Y}"  xlink:href="#group_sharedBusses"/> 
-	
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Bus Lane Spaces 
-		 ===========================================================
-	-->
-	<xsl:call-template name="Draw_BlkDiagram_BusLaneSpaces"/>	
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Bridges
-		 ===========================================================
-	-->
-	<xsl:call-template name="Draw_BlkDiagram_Bridges"/>	
-	
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Stacks
-		 ===========================================================
-	-->
-	<xsl:call-template name="Draw_BlkDiagram_Stacks"/>	
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Stand Alone MPMC, (if any)
-		 ===========================================================
-	-->
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE">
-		<xsl:variable name="mpmc_inst_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE/@INSTANCE"/>
-		<use   x="{$BLKD_INNER_X}"  y="{$BLKD_INNER_Y}"  xlink:href="#mpmcmodule_{$mpmc_inst_}"/> 
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the connections to the Stand Alone MPMC
-		 ===========================================================
-	-->
-		<xsl:call-template name="Draw_BlkDiagram_StandAloneMpmcConnections"/>	
-	</xsl:if>	
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Ip Bucket
-		 ===========================================================
-	-->
-	
-	<xsl:call-template name="Draw_BlkDiagram_IPBucket"/>
-	
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Key
-		 ===========================================================
-	-->
-	<xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))">
-		<use   x="{$G_total_blkd_W - $BLKD_KEY_W - $BLKD_PRTCHAN_W}" y="{$G_total_blkd_H + $BLKD_DRAWAREA2KEY_GAP - 8}"  xlink:href="#BlkDiagram_Key"/> 
-	</xsl:if>
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Specs
-		 ===========================================================
-	-->
-	<xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))">
-		<use   x="{$BLKD_PRTCHAN_W}"  y="{$G_total_blkd_H + $BLKD_DRAWAREA2KEY_GAP - 8}"  xlink:href="#BlkDiagram_Specs"/> 
-	</xsl:if>
-	
-	<!-- 
-		************************************************************ 
-		***************  DONE DRAWING BLOCK DIAGRAM   ************** 
-		************************************************************ 
-	-->	
-	
-</xsl:template>	
-	
-	
-<!-- ======================================================================= -->
-<!--                         FUNCTION TEMPLATE                               -->
-<!--																		 -->
-<!--  Draw stacks on the Block Diagram										 -->
-<!-- ======================================================================= -->
-<xsl:template name="Draw_BlkDiagram_Stacks">
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST &lt; /EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)]">
-			
-		<xsl:variable name="stack_line_x_">
-			<xsl:call-template name="_calc_Stack_X">
-				<xsl:with-param name="iStackIdx"  select="@EAST"/>
-			</xsl:call-template>
-		</xsl:variable>
-		
-		<xsl:variable name="stack_abv_sbs_">
-			<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-				<xsl:with-param name="iStackIdx"  select="@EAST"/>
-			</xsl:call-template>
-		</xsl:variable>
-		
-		<xsl:variable name="bridges_w_"    select="(($G_NumOfBridges * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))) + $BLKD_BRIDGE_GAP)"/>
-		
-		<xsl:variable name="stack_y_" select="($G_SharedBus_Y - $stack_abv_sbs_ - $BLKD_PROC2SBS_GAP)"/>
-		<xsl:variable name="stack_x_" select="($BLKD_INNER_X + $stack_line_x_ + $bridges_w_)"/>
-		
-		<xsl:variable name="stack_name_">
-			<xsl:call-template name="_gen_Stack_Name"> 
-				<xsl:with-param name="iHorizIdx" select="@EAST"/>
-			</xsl:call-template>		
-		</xsl:variable>	
-		
-		<use   x="{$stack_x_}"    y="{$stack_y_}"  xlink:href="#{$stack_name_}"/> 
-	
-	</xsl:for-each>	
-			
-</xsl:template>
-	
-<xsl:template name="Draw_BlkDiagram_StandAloneMpmcConnections">
-	
-	<xsl:variable name="mpmcInst_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE/@INSTANCE"/>
-	<xsl:variable name="lastStack_" select="(/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH) - 1"/>
-	
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE">
-		<xsl:variable name="currentLane_" select="position()"/>
-<!--		
-		<xsl:message>Looking in space <xsl:value-of select="$currentLane_"/></xsl:message>
--->	
-		<xsl:variable name="stackToEast_">
-			<xsl:choose>
-				<xsl:when test="not(@WEST = $lastStack_)"><xsl:value-of select="@EAST"/></xsl:when>
-				<xsl:when test="   (@WEST = $lastStack_)"><xsl:value-of select="'NONE'"/></xsl:when>
-			</xsl:choose>
-		</xsl:variable>
-		
-		<xsl:variable name="stackToWest_">
-			<xsl:choose>
-				<xsl:when test="not(@WEST = $lastStack_)"><xsl:value-of select="'NONE'"/></xsl:when>
-				<xsl:when test="   (@WEST = $lastStack_)"><xsl:value-of select="@WEST"/></xsl:when>
-			</xsl:choose>
-		</xsl:variable>
-		
-		<xsl:variable name="spaceAbvSbs_H_">
-			<xsl:call-template name="_calc_Space_AbvSbs_Height">
-				<xsl:with-param name="iStackToEast"  select="$stackToEast_"/>
-				<xsl:with-param name="iStackToWest"  select="$stackToWest_"/>
-			</xsl:call-template>
-		</xsl:variable>	
-		
-		<xsl:variable name="space_y_"   select="($G_SharedBus_Y - $spaceAbvSbs_H_ - $BLKD_PROC2SBS_GAP)"/>
-	
-<!--		
-		<xsl:message>Stack To East <xsl:value-of select="$stackToEast_"/></xsl:message>
-		<xsl:message>Stack To West <xsl:value-of select="$stackToWest_"/></xsl:message>
-		<xsl:variable name="space_X_">
-			<xsl:call-template name="_calc_Space_X"> 
-				<xsl:with-param name="iStackToEast" select="$stackToEast_"/>
-				<xsl:with-param name="iStackToWest" select="$stackToWest_"/>
-			</xsl:call-template>		
-		</xsl:variable>
-		<xsl:variable name="space_y_"   select="($G_SharedBus_Y - $spaceAbvSbs_H_ - $BLKD_PROC2SBS_GAP)"/>
-		<xsl:variable name="space_x_"   select="($BLKD_INNER_X + $G_total_Bridges_W + $space_line_x_)"/>
--->		
-		
-	
-		<xsl:for-each select="BUSCONNLANE[@IS_MPMCCONN]">
-			
-<!--			
-			<xsl:variable name="bifSide_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = BUSCONN/@INSTANCE)]/BUSINTERFACE[(@BUSNAME = @BUSNAME)]/@BIF_X"/>
--->	
-			<xsl:variable name="bifInst_"     select="BUSCONN/@INSTANCE"/>
-			<xsl:variable name="busName_"     select="@BUSNAME"/>
-			<xsl:variable name="bifSide_"     select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $bifInst_)]/BUSINTERFACE[(@BUSNAME = $busName_)]/@BIF_X"/>
-			
-			<xsl:variable name="mpmcBifName_">
-				<xsl:choose>
-					<xsl:when test="   (@IS_SBSCONN)"><xsl:value-of select="BUSCONN/@BUSINTERFACE"/></xsl:when>
-					<xsl:when test="not(@IS_SBSCONN)"><xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $mpmcInst_)]/BUSINTERFACE[(@BUSNAME = $busName_)]/@NAME"/></xsl:when>
-					<xsl:otherwise><xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $mpmcInst_)]/BUSINTERFACE[(@BUSNAME = $busName_)]/@NAME"/></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-<!--			
-			<xsl:message>MPMC Bif Name <xsl:value-of select="$mpmcBifName_"/></xsl:message>
-			<xsl:message>Bif Side <xsl:value-of select="$bifSide_"/></xsl:message>
-			<xsl:message>Bus Name <xsl:value-of select="@BUSNAME"/></xsl:message>
-			<xsl:message>Instance <xsl:value-of select="$bifInst_"/></xsl:message>
--->	
-			
-			<xsl:variable name="space_line_X_">
-				<xsl:call-template name="_calc_Space_X">
-					<xsl:with-param name="iStackToEast"  select="$stackToEast_"/>
-					<xsl:with-param name="iStackToWest"  select="$stackToWest_"/>
-				</xsl:call-template>
-			</xsl:variable>
-			
-			<xsl:variable name="space_X_"   select="($BLKD_INNER_X + $G_total_Bridges_W + $space_line_X_)"/>
-			
-			<xsl:variable name = "stackToWest_W_">
-				<xsl:choose>
-					<xsl:when test="(($stackToEast_ = '0')   and     ($stackToWest_ = 'NONE'))">0</xsl:when>
-					<xsl:when test="(($stackToEast_ = 'NONE') and not($stackToWest_ = 'NONE'))">
-						<xsl:call-template name="_calc_Stack_Width">
-							<xsl:with-param name="iStackIdx"  select="$stackToWest_"/>
-						</xsl:call-template>
-					</xsl:when>
-					<xsl:when test="(not($stackToEast_ = '0') and not($stackToEast_ = 'NONE') and ($stackToWest_ = 'NONE'))">
-						<xsl:call-template name="_calc_Stack_Width">
-							<xsl:with-param name="iStackIdx"  select="($stackToEast_ - 1)"/>
-						</xsl:call-template>
-					</xsl:when>
-					<xsl:otherwise>0</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-	
-			<xsl:variable name = "stackToEast_W_">
-				<xsl:call-template name="_calc_Stack_Width">
-					<xsl:with-param name="iStackIdx"  select="$stackToEast_"/>
-				</xsl:call-template>
-			</xsl:variable>
-	
-			<xsl:variable name ="extSpaceWest_W_" select="ceiling($stackToWest_W_ div 2)"/>
-			<xsl:variable name ="extSpaceEast_W_" select="ceiling($stackToEast_W_ div 2)"/>
-<!--			
-			<xsl:message>extSpaceWest_W_ <xsl:value-of select="$extSpaceWest_W_"/></xsl:message>
-			<xsl:message>extSpaceEast_W_ <xsl:value-of select="$extSpaceEast_W_"/></xsl:message>
-			<xsl:message>Found a MPMC lane in space <xsl:value-of select="$currentLane_"/> at X <xsl:value-of select="$lane_X_"/></xsl:message>
-			<xsl:message>mpmcBifRank <xsl:value-of select="$mpmcBifRank_"/></xsl:message>
--->			
-			
-<!--			
-			<xsl:variable name="laneInSpace_X_" select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W))"/>
--->			
-			<xsl:variable name="laneInSpace_X_">
-				<xsl:choose>
-				   <xsl:when test="(@ORIENTED = 'EAST')">
-					   <xsl:value-of select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W) - $BLKD_BUS_ARROW_W - $BLKD_P2P_BUS_W)"/>
-				   </xsl:when>
-				   <xsl:otherwise><xsl:value-of select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W))"/></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable> 
-						
-			
-			
-			<xsl:variable name="lane_X_"        select="($space_X_ + $laneInSpace_X_)"/>
-			
-			<xsl:variable name="mpmcBifRank_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $mpmcInst_)]/BUSINTERFACE[(@BUSNAME = @BUSNAME)]/@BIFRANK"/>
-			
-		<!--	
-			<xsl:variable name="bc_X_" select="($lane_X_ +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-			<xsl:variable name="bc_X_" select="($lane_X_ +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-			<xsl:variable name="bc_X_" select="($lane_X_ + ceiling($BLKD_BIFC_W div 2))"/>
-		-->	
-			
-			<xsl:variable name="bc_Y_" select="($BLKD_INNER_Y + $BLKD_MPMC_MOD_H)"/>
-			<xsl:variable name="bc_X_" >
-				<xsl:choose>
-					<xsl:when test="($bifSide_ = '0')"><xsl:value-of select="($lane_X_ + ceiling($BLKD_BIFC_W div 2))"/></xsl:when>
-					<xsl:when test="($bifSide_ = '1')"><xsl:value-of select="($lane_X_ + $BLKD_BIFC_dx)"/></xsl:when>
-					<xsl:otherwise>                    <xsl:value-of select="($lane_X_ + ceiling($BLKD_BIFC_W div 2))"/></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="busColor_">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="@BUSSTD"/>
-				</xsl:call-template>	
-			</xsl:variable>
-		
-			<!-- Place the MPMC bif label -->
-			<xsl:variable name="bcl_X_" select="($bc_X_ + ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BIF_W div 2))"/>
-			<xsl:variable name="bcl_Y_" select="($bc_Y_ - $BLKD_BIF_H - $BLKD_MOD_BIF_GAP_H)"/>
-			<use  x="{$bcl_X_}"   y="{$bcl_Y_}"  xlink:href="#{@BUSSTD}_Bif"/>
-			<text class="mpmcbiflabel" 
-				  x="{$bcl_X_ + ceiling($BLKD_BIF_W div 2)}"
-				  y="{$bcl_Y_ + ceiling($BLKD_BIF_H div 2) + 3}"><xsl:value-of select="$mpmcBifName_"/></text>
-			
-			<!-- Place the MPMC bif -->
-			<use   x="{$bc_X_}"   y="{$bc_Y_}"  xlink:href="#{@BUSSTD}_busconn_{$mpmcBifRank_}"/>
-			
-			<xsl:variable name="bcArrow_X_" select="($bc_X_ +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_H div 2))"/>
-			<xsl:variable name="bcArrow_Y_" select="($bc_Y_ + $BLKD_BIFC_H - 3)"/>
-			
-			<!-- Place the MPMC Arrow -->
-			<use   x="{$bcArrow_X_}"   y="{$bcArrow_Y_}"  xlink:href="#{@BUSSTD}_BusArrowNorth"/>
-			
-			<!-- 
-				Place a block to cover the gap btw MPMC and top of Bus Lane Space, or to the correct SBS 
-				For non SBS connections a vertical block will already have been drawn to the top of the
-				space.
-			-->
-			
-			<xsl:variable name="sbsDy_">
-				<xsl:choose>
-					<xsl:when test="@IS_SBSCONN"><xsl:value-of select="2 + (/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $busName_)]/@BUSINDEX * $BLKD_SBS_LANE_H)"/></xsl:when>
-					<xsl:when test="not(@IS_SBSCONN)">0</xsl:when>
-					<xsl:otherwise>0></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="mpmcBusHeight_">
-				<xsl:choose>
-					<xsl:when    test="(@IS_SBSCONN)"><xsl:value-of select="($G_SharedBus_Y - ($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4) + $sbsDy_)"/></xsl:when>
-					<xsl:when test="not(@IS_SBSCONN)">
-						<xsl:choose>
-							<xsl:when test="($space_y_ &gt;= ($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4 + $sbsDy_))">
-								<xsl:value-of select="($space_y_ - ($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4 + $sbsDy_))"/>
-							</xsl:when>
-							<xsl:when test="($space_y_ &lt; ($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4 + $sbsDy_))">
-								<xsl:value-of select="(($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4 + $sbsDy_) - $space_y_)"/>
-							</xsl:when>
-						</xsl:choose>
-					</xsl:when>
-					<xsl:otherwise><xsl:value-of select="$BLKD_BIFC_H"/></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<rect x="{$bcArrow_X_ + $BLKD_BUS_ARROW_G}" 
-		  	  	  y="{$bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4}"  
-		 	  	  width= "{$BLKD_P2P_BUS_W}" 
-		  	  	  height="{$mpmcBusHeight_}"  
-		 	      style="stroke:none; fill:{$busColor_}"/>	
-			
-			<!-- place the bus label here -->
-			<text class="p2pbuslabel" 
-				  x="{$bcArrow_X_ + $BLKD_BUS_ARROW_W + 6}"
-				  y="{$bcArrow_Y_ + ceiling($mpmcBusHeight_ div 2) + 6}"><xsl:value-of select="$busName_"/></text>	
-			
-			
-		</xsl:for-each>    			
-	</xsl:for-each>	
-	
-</xsl:template>
-	
-	
-<!-- ======================================================================= -->
-<!--                         FUNCTION TEMPLATE                               -->
-<!--																		 -->
-<!--  Draw bus lane spaces on the Block Diagram								 -->
-<!-- ======================================================================= -->
-<xsl:template name="Draw_BlkDiagram_BusLaneSpaces">
-	
-	<xsl:variable name="lastStack_" select="(/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH) - 1"/>
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[@EAST]">
-		<xsl:sort select="@EAST" data-type="number"/>
-			
-		<xsl:call-template name="Draw_BlkDiagram_BusLaneSpace">
-			<xsl:with-param name="iStackToEast"  select="@EAST"/>
-		</xsl:call-template>
-	</xsl:for-each>	
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@WEST = $lastStack_)]">
-		<xsl:call-template name="Draw_BlkDiagram_BusLaneSpace">
-			<xsl:with-param name="iStackToWest"  select="$lastStack_"/>
-		</xsl:call-template>
-	</xsl:for-each>	
-			
-</xsl:template>
-	
-<xsl:template name="Draw_BlkDiagram_BusLaneSpace">
-	
-	<xsl:param name="iStackToEast" select="'NONE'"/>
-	<xsl:param name="iStackToWest" select="'NONE'"/>
-	
-	<xsl:variable name="spaceAbvSbs_H_">
-		<xsl:call-template name="_calc_Space_AbvSbs_Height">
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>
-	</xsl:variable>	
-	
-	<xsl:variable name="spaceBlwSbs_H_">
-		<xsl:call-template name="_calc_Space_BlwSbs_Height">
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>
-	</xsl:variable>	
-	
-	<xsl:variable name="space_line_x_">
-		<xsl:call-template name="_calc_Space_X">
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-	<xsl:variable name="space_y_"   select="($G_SharedBus_Y - $spaceAbvSbs_H_ - $BLKD_PROC2SBS_GAP)"/>
-	<xsl:variable name="space_x_"   select="($BLKD_INNER_X + $G_total_Bridges_W + $space_line_x_)"/>
-	
-	<xsl:variable name="stackToEast_">
-		<xsl:choose>
-			<xsl:when test="not($iStackToEast = 'NONE')"><xsl:value-of select="$iStackToEast"/></xsl:when>
-			<xsl:otherwise>NONE</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-	<xsl:variable name="stackToWest_">
-		<xsl:choose>
-			<xsl:when test=" not($iStackToWest = 'NONE')"><xsl:value-of select="$iStackToWest"/></xsl:when>
-			<xsl:when test="(not($iStackToEast = 'NONE') and not($iStackToEast = '0'))"><xsl:value-of select="($iStackToEast - 1)"/></xsl:when>
-			<xsl:otherwise>NONE</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-		
-	<xsl:variable name="space_Name_">
-		<xsl:call-template name="_gen_Space_Name"> 
-			<xsl:with-param name="iStackToEast" select="$stackToEast_"/>
-			<xsl:with-param name="iStackToWest" select="$stackToWest_"/>
-		</xsl:call-template>		
-	</xsl:variable>	
-	
-<!--	
-	<xsl:message>StackToEast is <xsl:value-of select="$iStackToEast"/></xsl:message>
-	<xsl:message>StackToWest is <xsl:value-of select="$iStackToWest"/></xsl:message>
-	<xsl:message>SpaceName is <xsl:value-of select="$space_Name_"/></xsl:message>
--->	
-		
-	<use   x="{$space_x_}"    y="{$space_y_}"  xlink:href="#{$space_Name_}"/> 
-	
-</xsl:template>
-	
-	
-<!-- =========================================================================== -->
-<!--                          FUNCTION TEMPLATE                                  -->
-<!--																			 -->
-<!--  Draw Bridges on the Block Diagram											 -->
-<!-- =========================================================================== -->
-<xsl:template name="Draw_BlkDiagram_Bridges">
-	
-	<!-- First save all the bridge indexs in a variable	 -->
-	<xsl:variable name="bridgeShapes_">
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE/BUSCONNS[(@ORIENTED = 'WEST')]/BUSCONN">	
-			<BRIDGE BUSINDEX="{@BUSINDEX}" INSTANCE="{../../@INSTANCE}" POSITION="{(position() -1)}"/>
-			<BRIDGECONN BUSINDEX="{@BUSINDEX}" INSTANCE="{../../@INSTANCE}" ORIENTED="{../@ORIENTED}" POSITION="{(position()  - 1)}" BUSSTD="{@BUSSTD}" BIFRANK="{@BIFRANK}"/>
-			<!-- So both bus conns have same position.... -->
-			<xsl:if test="../../BUSCONNS[(@ORIENTED = 'EAST')]">
-				<BRIDGECONN BUSINDEX="{../../BUSCONNS[(@ORIENTED ='EAST')]/BUSCONN/@BUSINDEX}" INSTANCE="{../../@INSTANCE}" ORIENTED="EAST" POSITION="{(position()  - 1)}"   BUSSTD="{../../BUSCONNS[(@ORIENTED = 'EAST')]/BUSCONN/@BUSSTD}" BIFRANK="{../../BUSCONNS[(@ORIENTED = 'EAST')]/BUSCONN/@BIFRANK}"/>
-			</xsl:if>
-		</xsl:for-each>
-	</xsl:variable>
-<!--				
-			<xsl:message>Found an east connection on <xsl:value-of select="../../@INSTANCE"/></xsl:message>
--->				
-	<!-- Now layout the bridge shapes between the shared busses	 -->
-	<xsl:for-each select="exsl:node-set($bridgeShapes_)/BRIDGE">
-		<xsl:sort select="@POSITION" data-type="number"/>
-		
-		<xsl:variable name="brdgPosition_"  select="@POSITION"/>
-		<xsl:variable name="brdgInstance_"  select="@INSTANCE"/>
-		
-		<xsl:variable name="min_bus_idx_" select="math:min(exsl:node-set($bridgeShapes_)/BRIDGECONN[(@POSITION = $brdgPosition_)]/@BUSINDEX)"/>
-<!--		
-		<xsl:variable name="max_bus_idx_" select="math:max(exsl:node-set($bridgeShapes_)/BRIDGECONN[(@POSITION = $brdgPosition_)]/@BUSINDEX)"/>
-		
-     	<xsl:message>Maximum index <xsl:value-of select="$max_bus_idx_"/></xsl:message>
-     	<xsl:message>Minimum index <xsl:value-of select="$min_bus_idx_"/></xsl:message>
--->
-		
-		
-		<xsl:variable name="brdg_X_"  select="($BLKD_INNER_X + $BLKD_BRIDGE_GAP + $BLKD_BUS_LANE_W + (@POSITION * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))))"/>	
-		<xsl:variable name="brdg_Y_"  select="($G_SharedBus_Y  + ($min_bus_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_SBS_LANE_H div 2) - ceiling($BLKD_MOD_H div 2))"/>
-		
-		<use  x="{$brdg_X_}"  y="{$brdg_Y_}"  xlink:href="#symbol_{$brdgInstance_}"/>	
-	</xsl:for-each>	
-	
-		
-	
-<!--	
-	<xsl:message>Found <xsl:value-of select="count(exsl:node-set($bridgeShapes_)/BRIDGECONN)"/> busconns </xsl:message>
-		<xsl:message>Drawing connection for bridge <xsl:value-of select="$brdgInstance_"/> at <xsl:value-of select="@POSITION"/> </xsl:message>
--->	
-	
-	<xsl:for-each select="exsl:node-set($bridgeShapes_)/BRIDGECONN">
-		<xsl:sort select="@POSITION" data-type="number"/>
-		
-		<xsl:variable name="brdgInstance_"  select="@INSTANCE"/>
-		<xsl:variable name="brdgPosition_"  select="@POSITION"/>
-		
-		<xsl:variable name="busColor_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="@BUSSTD"/>
-			</xsl:call-template>	
-		</xsl:variable>
-		
-		<xsl:variable name="min_bus_idx_" select="math:min(exsl:node-set($bridgeShapes_)/BRIDGECONN[(@POSITION = $brdgPosition_)]/@BUSINDEX)"/>
-		<xsl:variable name="brdg_Y1_"     select="($G_SharedBus_Y  + ($min_bus_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_SBS_LANE_H div 2) - ceiling($BLKD_MOD_H div 2))"/>
-		<xsl:variable name="brdg_X_"      select="($BLKD_INNER_X   + $BLKD_BRIDGE_GAP + $BLKD_BUS_LANE_W + (@POSITION * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))))"/>	
-		
-		<xsl:variable name="bc_Y_"        select="$brdg_Y1_ + $BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2)"/>	
-		<xsl:variable name="bc_X_">
-			<xsl:choose>
-				<xsl:when test="@ORIENTED='WEST'">
-					<xsl:value-of select="($brdg_X_ - $BLKD_BIFC_W)"/>
-				</xsl:when>
-				<xsl:when test="@ORIENTED='EAST'">
-					<xsl:value-of select="($brdg_X_ + $BLKD_MOD_W)"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		<!-- Layout the bus conn -->
-		<use   x="{$bc_X_}"   y="{$bc_Y_}"  xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/>
-		
-		<!-- Figure out the positions of the lines -->
-		
-<!--		
-		<xsl:variable name="vert_line_x_"  select="$bc_X_    + ceiling($BLKD_BIFC_W div 2)"/>
-		<xsl:message>vert line x <xsl:value-of select="$vert_line_x_"/></xsl:message>
-		<xsl:message>bus index <xsl:value-of select="@BUSINDEX"/></xsl:message>
--->		
-		
-		<xsl:variable name="vert_line_x_">
-			<xsl:choose>
-				<xsl:when test="@ORIENTED='WEST'">
-					<xsl:value-of select="($bc_X_ - ($BLKD_BUS_LANE_W - $BLKD_BIFC_W))"/>
-				</xsl:when>
-				<xsl:when test="@ORIENTED='EAST'">
-					<xsl:value-of select="($bc_X_ + ($BLKD_BUS_LANE_W - $BLKD_P2P_BUS_W))"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		<!-- At least one of the points is going to be the bus -->
-<!--		
-		<xsl:variable name="vert_line_y1_" select="($G_SharedBus_Y  + $BLKD_PROC2SBS_GAP + (@BUSINDEX * $BLKD_SBS_LANE_H))"/>
--->		
-		<xsl:variable name="vert_line_y1_" select="($G_SharedBus_Y  + (@BUSINDEX * $BLKD_SBS_LANE_H))"/>
-		<xsl:variable name="vert_line_y2_" select="$bc_Y_ + ceiling($BLKD_BIFC_H div 2)"/>
-		
-		<xsl:variable name="v_bus_ul_y_">
-			<xsl:choose>
-				<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-					<xsl:value-of select="$vert_line_y2_"/>
-				</xsl:when>
-				<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-					<xsl:value-of select="$vert_line_y1_"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-<!--		
-		<xsl:variable name="v_bus_ul_x_" select="$vert_line_x_"/>
--->	
-		<xsl:variable name="v_bus_ul_x_">
-			<xsl:choose>
-				<xsl:when test="@ORIENTED='WEST'">
-					<xsl:value-of select="($vert_line_x_ + $BLKD_MOD_BIF_GAP_H)"/>
-				</xsl:when>
-				<xsl:when test="@ORIENTED='EAST'">
-					<xsl:value-of select="($vert_line_x_ - $BLKD_MOD_BIF_GAP_H)"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		
-		<xsl:variable name="v_bus_width_" select="$BLKD_P2P_BUS_W"/>
-		<xsl:variable name="v_bus_height_">
-			<xsl:choose>
-				<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-					<xsl:value-of select="($vert_line_y1_ - $vert_line_y2_)"/>
-				</xsl:when>
-				<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-					<xsl:value-of select="($vert_line_y2_ - $vert_line_y1_)"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		<xsl:variable name="h_bus_ul_x_">
-			<xsl:choose>
-				<xsl:when test="@ORIENTED='WEST'">
-					<xsl:value-of select="($bc_X_ - ($BLKD_BUS_LANE_W - $BLKD_BIFC_W) + $BLKD_MOD_BIF_GAP_H)"/>
-				</xsl:when>
-				<xsl:when test="@ORIENTED='EAST'">
-					<xsl:value-of select="($bc_X_ + $BLKD_BIFC_W - ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2))"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		<xsl:variable name="h_bus_ul_y_" select="$bc_Y_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-		<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-		
-		<xsl:variable name="h_bus_width_">
-			<xsl:choose>
-				<xsl:when test="@ORIENTED='WEST'">
-					<xsl:value-of select="(($bc_X_ + ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2)) - $h_bus_ul_x_ + 1)"/>
-				</xsl:when>
-				<xsl:when test="@ORIENTED='EAST'">
-					<xsl:value-of select="(($v_bus_ul_x_ + $BLKD_P2P_BUS_W) - $h_bus_ul_x_)"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		
-<!--		
-		<xsl:message>vert line y1 <xsl:value-of select="$vert_line_y1_"/></xsl:message>
--->		
-		
-		<rect x="{$v_bus_ul_x_}" 
-		  	  y="{$v_bus_ul_y_ + 2}"  
-		 	  width= "{$v_bus_width_}" 
-		 	  height="{$v_bus_height_}" 
-		 	  style="stroke:none; fill:{$busColor_}"/>
-		
-		<rect x="{$h_bus_ul_x_}" 
-		  	  y="{$h_bus_ul_y_}"  
-		 	  width= "{$h_bus_width_}" 
-		 	  height="{$h_bus_height_}" 
-		 	  style="stroke:none; fill:{$busColor_}"/>
-		
-	</xsl:for-each>	
-	
-</xsl:template>
-	
-	
-	
-	
-<!-- =========================================================================== -->
-<!--                          FUNCTION TEMPLATE                                  -->
-<!--																			 -->
-<!-- Draw the IP Bucket          												 -->
-<!-- =========================================================================== -->
-<xsl:template name="Draw_BlkDiagram_IPBucket">
-	
-	<!-- Draw IP Bucket -->	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/IPBUCKET">
-	
-		<xsl:variable name="bucket_w_"  select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
-		<xsl:variable name="bucket_h_"  select="(($BLKD_MOD_BKTLANE_H * 2) + (($BLKD_MOD_H * @MODS_H) + ($BLKD_MOD_BUCKET_G * (@MODS_H - 1))))"/>
-		
-		<xsl:variable name="bucket_x_"  select="(ceiling($G_total_blkd_W div 2) - ceiling($bucket_w_ div 2))"/>
-		<xsl:variable name="bucket_y_"  select="($G_SharedBus_Y + $G_total_SharedBus_H + $G_max_Stack_BlwSbs_H + $BLKD_SBS2IP_GAP)"/>
-		
-		<text class="ipclass"
-			x="{$bucket_x_}" 
-			y="{$bucket_y_ - 4}">IP</text>
-		
-		<use   x="{$bucket_x_}"   y="{$bucket_y_}"  xlink:href="#ipbucket"/>
-		
-	</xsl:for-each>
-	
-</xsl:template>
-	
-	
-<xsl:template name="Draw_BlkDiagram_Key">
-	<use   x="{ceiling($G_blkd_W div 2) - ceiling($BLKD_KEY_W div 2)}"   y="0"  xlink:href="#BlkDiagram_Key"/> 
-</xsl:template>
-
-<xsl:template name="Define_BlkDiagram_Key">
-	
-	<xsl:variable name="key_col_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="'KEY'"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="key_lt_col_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="'KEY'"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<symbol id="KEY_IntrCntrl">
-		<rect  
-			x="0"
-			y="0"
-			rx="3"
-			ry="3"
-			width= "{ceiling($BLKD_INTR_W div 2)}" 
-			height="{$BLKD_INTR_H}" style="fill:{$key_lt_col_}; stroke:none; stroke-width:1"/> 
-			
-		<line x1="0" 
-			  y1="{ceiling($BLKD_INTR_H div 4)}"
-			  x2="{ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{ceiling($BLKD_INTR_H div 4)}" 
-			  style="stroke:{$COL_BLACK};stroke-width:2"/>
-			  
-		<text class="intrsymbol" 
-			  x="1.5"
-			  y="{7 + ceiling($BLKD_INTR_H div 2)}">x</text>
-			
-	</symbol>
-		
-	<symbol id="KEY_IntrdProc">
-		<rect  
-			x="0"
-			y="0"
-			rx="3"
-			ry="3"
-			width= "{ceiling($BLKD_INTR_W div 2)}" 
-			height="{$BLKD_INTR_H}" style="fill:{$key_lt_col_}; stroke:none; stroke-width:1"/> 
-			
-		<line x1="0" 
-			  y1="{ceiling($BLKD_INTR_H div 4) - 2}"
-			  x2="{ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{ceiling($BLKD_INTR_H div 4) - 2}" 
-			  style="stroke:{$COL_BLACK};stroke-width:1"/>
-			  
-		<line x1="0" 
-			  y1="{ceiling($BLKD_INTR_H div 4) + 2}"
-			  x2="{ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{ceiling($BLKD_INTR_H div 4) + 2}" 
-			  style="stroke:{$COL_BLACK};stroke-width:1"/>
-			  
-		<text class="intrsymbol" 
-			  x="1.5"
-			  y="{7 + ceiling($BLKD_INTR_H div 2)}">x</text>
-	</symbol>
-	
-	<symbol id="KEY_IntrSrc">
-		<rect  
-			x="0"
-			y="0"
-			rx="3"
-			ry="3"
-			width= "{$BLKD_INTR_W}" 
-			height="{ceiling($BLKD_INTR_H div 2)}" style="fill:{$key_lt_col_}; stroke:none; stroke-width:1"/> 
-			
-		<line x1="{ceiling($BLKD_INTR_W div 2)}" 
-			  y1="0"
-			  x2="{ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{ceiling($BLKD_INTR_H div 2)}" 
-			  style="stroke:{$COL_BLACK};stroke-width:1"/>
-			  
-		<text class="intrsymbol" 
-			  x="2"
-			  y="7">y</text>
-			
-		<text class="intrsymbol" 
-			  x="{2 + ceiling($BLKD_INTR_W div 2)}"
-			  y="7">x</text>
-	</symbol>
-	
-	
-	<symbol id="BlkDiagram_Key">
-		<rect 
-              x="0"
-			  y="0"
-		      width= "{$BLKD_KEY_W}"
-		      height="{$BLKD_KEY_H}"
-			  style="fill:{$COL_BG}; stroke:none;"/>		
-			  
-		<rect 
-              x="0"
-			  y="0"
-		      width= "{$BLKD_KEY_W}"
-		      height="16"
-			  style="fill:{$COL_BG}; stroke:none;"/>		
-			  
-		<text class="keytitle"
-              x="{ceiling($BLKD_KEY_W div 2)} "
-			  y="14">KEY</text>		  
-			  
-		<rect 
-              x="0"
-			  y="16"
-		      width= "{$BLKD_KEY_W}"
-		      height="16"
-			  style="fill:{$COL_BG_LT}; stroke:none;"/>		
-			  
-		<text class="keyheader"
-              x="{ceiling($BLKD_KEY_W div 2)} "
-			  y="30">SYMBOLS</text>		  
-			  
-   		<use  x="32"  y="47"  xlink:href="#KEY_Bif" transform="scale(0.75)"/> 
-		<text class="keylabel"
-              x="12"
-			  y="60">bus interface</text>		  
-			  
-   		<use   x="20"  y="68"  xlink:href="#KEY_SharedBus"/> 
-		<text class="keylabel"
-              x="12"
-			  y="85">shared bus</text>		  
-			  
-		<text class="keylblul"
-              x="110"
-			  y="47">Bus connections</text>		  
-			  
-   		<use   x="110"  y="58"  xlink:href="#KEY_busconn_MASTER"/> 
-		<text class="keylabel"
-              x="140"
-			  y="72">master or initiator</text>		  
-			  
-   		<use   x="110"  y="{58 + (($BLKD_BIFC_H  + 4) * 1)}"  xlink:href="#KEY_busconn_SLAVE"/> 
-		<text class="keylabel"
-              x="140"
-			  y="{72 + (($BLKD_BIFC_H + 4) * 1)}">slave or target</text>		  
-			  
-   		<use   x="110"  y="{58 + (($BLKD_BIFC_H  + 4) * 2)}"  xlink:href="#KEY_busconn_MASTER_SLAVE"/> 
-		<text class="keylabel"
-              x="140"
-			  y="{72 + (($BLKD_BIFC_H + 4) * 2)}">master slave</text>		  
-			  
-   		<use   x="110"  y="{58 + (($BLKD_BIFC_H  + 4) * 3)}"  xlink:href="#KEY_busconn_MONITOR"/>
-		<text class="keylabel"
-              x="140"
-			  y="{72 + (($BLKD_BIFC_H + 4) * 3)}">monitor</text>		  
-			  
-		<text class="keylblul"
-              x="258"
-			  y="47">External Ports</text>		  
-		
-   		<use   x="258"  y="58"  xlink:href="#KEY_INPort"/> 
-		<text class="keylabel"
-              x="288"
-			  y="72">input</text>		  
-			  
-   		<use   x="258"  y="{58 + ($BLKD_IOP_H * 1) + 4}"  xlink:href="#KEY_OUTPort"/> 
-		<text class="keylabel"
-              x="288"
-			  y="{72 + ($BLKD_IOP_H * 1) + 4}">output</text>		  
-			  
-   		<use   x="258" y="{58 + ($BLKD_IOP_H * 2) + 8}"  xlink:href="#KEY_INOUTPort"/> 
-		<text class="keylabel"
-              x="288"
-			  y="{72 + ($BLKD_IOP_H * 2) + 8}">inout</text>		  
-		
-		
-		<text class="keylblul"
-              x="380"
-			  y="47">Interrupts</text>
-		
-   		<use   x="380"  y="58"  xlink:href="#KEY_IntrCntrl"/> 
-		<text class="keylabel"
-              x="396"
-			  y="64">interrupt</text>		  
-		<text class="keylabel"
-              x="396"
-			  y="74">controller</text>		  
-			  
-		
-		<use   x="380"  y="88"  xlink:href="#KEY_IntrdProc"/> 
-		<text class="keylabel"
-              x="396"
-			  y="94">interrupted</text>		  
-		<text class="keylabel"
-              x="396"
-			  y="104">processor</text>		  
-			  
-		
-		<use   x="380"  y="118"  xlink:href="#KEY_IntrSrc"/> 
-		<text class="keylabel"
-              x="400"
-			  y="124">interrupt</text>		  
-		<text class="keylabel"
-              x="400"
-			  y="134">source</text>		  
-		
-		<text class="keylabel"
-              x="360"
-			  y="146">x = controller ID</text>		  
-		
-		<text class="keylabel"
-              x="360"
-			  y="156">y = priority</text>		  
-<!--		
-		<text class="keylabel"
-              x="400"
-			  y="134">source</text>		  
-	
--->
-		<rect 
-              x="0"
-			  y="160"
-		      width= "{$BLKD_KEY_W}"
-		      height="16"
-			  style="fill:{$COL_BG_LT}; stroke:none;"/>		
-			  
-		<text class="keyheader"
-              x="{ceiling($BLKD_KEY_W div 2)} "
-			  y="172">COLORS</text>		  
-		
-			  
-		<text class="keylblul"
-              x="110"
-			  y="190">Bus Standards</text>		  
-			  
-		<xsl:variable name="dcr_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'DCR'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-		
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 0)}"
-			  y="200"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$dcr_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  + $BLKD_BIFC_W + 4}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 1)}">DCR</text>		  
-			  
-		<xsl:variable name="fcb_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'FCB'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-		
-		<rect 
-              x="{12  + ((12 + $BLKD_BIFC_W + 36) * 0)}"
-			  y="{200 + (($BLKD_BIFC_H + 4) * 1)}"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$fcb_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  + $BLKD_BIFC_W + 4}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 2)}">FCB</text>		  
-		
-		<xsl:variable name="fsl_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'FSL'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			  
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 1)}"
-			  y="200"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$fsl_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  +  ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 1)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 1)}">FSL</text>		  
-		
-		<xsl:variable name="col_lmb_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'LMB'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			  
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 1)}"
-			  y="{200 + (($BLKD_BIFC_H + 4) * 1)}"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$col_lmb_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 1)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 2)}">LMB</text>		  
-			  
-		
-		<xsl:variable name="opb_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'OPB'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			  
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 2)}"
-			  y="200"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$opb_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  +  ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 2)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 1)}">OPB</text>		  
-		
-		<xsl:variable name="plb_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'PLB'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-		
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 2)}"
-			  y="{200 + (($BLKD_BIFC_H + 4) * 1)}"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$plb_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  +  ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 2)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 2)}">PLB</text>		  
-		
-			 
-		<xsl:variable name="ocm_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'OCM'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			  
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 3)}"
-			  y="200"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$ocm_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 3)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 1)}">SOCM</text>
-		
-		
-		<xsl:variable name="xil_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'XIL'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			  
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 3)}"
-			  y="{200 + (($BLKD_BIFC_H + 4) * 1)}"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$xil_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 3)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 2)}">XIL (prefix) P2P</text>		  
-			 
-			  
-		<xsl:variable name="trs_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'TRS'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			  
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 4)}"
-			  y="200"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$trs_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 4)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 1)}">GEN. P2P, USER, etc</text>		  
-			  
-</symbol>	
-</xsl:template>
-
-<xsl:template name="Define_BlkDiagram_Specs">
-
-	<xsl:param name="iArch"       select="'NA'"/>
-	<xsl:param name="iPart"       select="'NA'"/>
-	<xsl:param name="iTimeStamp"  select="'NA'"/>
-	<xsl:param name="iEdkVersion" select="'NA'"/>
-			
-	<symbol id="BlkDiagram_Specs">
-		<rect 
-              x="0"
-			  y="0"
-		      width= "{$BLKD_SPECS_W}"
-		      height="{$BLKD_SPECS_H}"
-			  style="fill:{$COL_BG}; stroke:none;"/>		
-			  
-		<rect 
-              x="0"
-			  y="0"
-		      width= "{$BLKD_SPECS_W}"
-		      height="16"
-			  style="fill:{$COL_BG}; stroke:none;"/>		
-			  
-		<text class="keytitle"
-              x="{ceiling($BLKD_SPECS_W div 2)} "
-			  y="14">SPECS</text>
-			  
-		<rect 
-              x="0"
-			  y="20"
-		      width= "{$BLKD_SPECS_W}"
-		      height="16"
-			  style="fill:{$COL_BG_LT}; stroke:none;"/>		
-			  
-		<text class="specsheader"
-              x="4"
-			  y="32">EDK VERSION</text>
-			  
-<!--		
-		<text class="specsvalue"
-              x="{($BLKD_SPECS_W + 1) - (string-length($blkd_edkver) * 6.5)}"
-			  y="32"><xsl:value-of select="$blkd_edkver"/></text>
--->		
-		<text class="specsvaluemid"
-              x="{($BLKD_SPECS_W + 1) - ceiling($BLKD_SPECS_W div 5)}"
-			  y="32"><xsl:value-of select="$iEdkVersion"/></text>
-			  
-		<rect 
-              x="0"
-			  y="40"
-		      width= "{$BLKD_SPECS_W}"
-		      height="16"
-			  style="fill:{$COL_BG_LT}; stroke:none;"/>		
-			  
-		<text class="specsheader"
-              x="4"
-			  y="52">ARCH</text>
-			  
-<!--		
-		<text class="specsvalue"
-              x="{($BLKD_SPECS_W + 1) - (string-length($blkd_arch) * 6.5)}"
-			  y="52"><xsl:value-of select="$blkd_arch"/></text>
--->		
-		<text class="specsvaluemid"
-              x="{($BLKD_SPECS_W + 1) - ceiling($BLKD_SPECS_W div 5)}"
-			  y="52"><xsl:value-of select="$iArch"/></text>
-			  
-		<rect 
-              x="0"
-			  y="60"
-		      width= "{$BLKD_SPECS_W}"
-		      height="16"
-			  style="fill:{$COL_BG_LT}; stroke:none;"/>		
-			  
-		<text class="specsheader"
-              x="4"
-			  y="72">PART</text>
-			  
-<!--		
-		<text class="specsvalue"
-              x="{($BLKD_SPECS_W  + 1) - ((string-length($blkd_part) + 2) * 6.5)}"
-			  y="72"><xsl:value-of select="$blkd_part"/></text>
--->		
-		<text class="specsvaluemid"
-              x="{($BLKD_SPECS_W + 1) - ceiling($BLKD_SPECS_W div 5)}"
-			  y="72"><xsl:value-of select="$iPart"/></text>
-			  
-		<rect 
-              x="0"
-			  y="80"
-		      width= "{$BLKD_SPECS_W}"
-		      height="16"
-			  style="fill:{$COL_BG_LT}; stroke:none;"/>		
-			  
-		<text class="specsheader"
-              x="4"
-			  y="92">GENERATED</text>
-			  
-		<text class="specsvalue"
-              x="{($BLKD_SPECS_W  + 1) - (string-length($iTimeStamp) * 6.5)}"
-			  y="92"><xsl:value-of select="$iTimeStamp"/></text>
-			  
-			  
-	</symbol>	
-</xsl:template>
-	
-
-	
-
-</xsl:stylesheet>
-
-<!-- =========================================================================== -->
-<!--                          FUNCTION TEMPLATE                                  -->
-<!--																			 -->
-<!-- =========================================================================== -->
\ No newline at end of file
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl
deleted file mode 100644
index 7498fe3..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl
+++ /dev/null
@@ -1,1499 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-			
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:math="http://exslt.org/math"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink"
-           extension-element-prefixes="math">
-				
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-			
-<!--	
-<xsl:variable name="INF_H"   select="$BIF_H       + ceiling($BIF_H div 2)"/>				
-<xsl:variable name="INF_W"   select="($BIF_W * 2) + $BIF_GAP"/>
--->	
-
-
-<!-- ======================= DEF FUNCTIONS =================================== -->
-
-<xsl:template name="Define_FreeCmplxModules">
-	
-	<xsl:for-each select="BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@IS_PROMOTED and not(@IS_PENALIZED) and not(@STACK_INDEX))]">	
-		
-		<xsl:variable name="cmplxId_" select="position()"/>
-		
-		<xsl:if test="@MODCLASS='MEMORY_UNIT'">
-			<xsl:call-template name="Define_PeripheralMemory">
-				<xsl:with-param name="iPeriId" select="$cmplxId_"/>
-			</xsl:call-template>
-		</xsl:if>
-		
-		<xsl:if test="((@MODCLASS='MASTER_SLAVE') or (@MODCLASS = 'MONITOR'))">
-			<xsl:variable name="modInst_" select="MODULE/@INSTANCE"/>
-			<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$modInst_)]/@MODTYPE"/>
-			<xsl:call-template name="Define_Peripheral">
-				<xsl:with-param name="iModInst"  select="$modInst_"/>
-				<xsl:with-param name="iModType"  select="$modType_"/>
-			</xsl:call-template>		
-		</xsl:if>
-		
-	</xsl:for-each>		
-</xsl:template>	
-
-
-<xsl:template name="Define_PenalizedModules">
-	
-	<xsl:for-each select="BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@IS_PROMOTED and @IS_PENALIZED)]">	
-		
-		<xsl:variable name="penalId_">unkmodule_<xsl:value-of select="@BKTROW"/>_<xsl:value-of select="@MODS_X"/></xsl:variable>
-		
-<!--		
-		<xsl:message>Drawing penalized module <xsl:value-of select="$penalId_"/></xsl:message>
--->		
-		
-		<xsl:if test="@MODCLASS='MEMORY_UNIT'">
-			<xsl:call-template name="Define_PeripheralMemory">
-				<xsl:with-param name="iPeriId" select="$penalId_"/>
-			</xsl:call-template>
-		</xsl:if>
-		
-<!--		
-		<xsl:if test="((@MODCLASS='MASTER_SLAVE') or (@MODCLASS = 'MONITOR'))">
--->		
-			<xsl:variable name="modInst_" select="MODULE/@INSTANCE"/>
-			<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInst_)]/@MODTYPE"/>
-			<xsl:call-template name="Define_Peripheral">
-				<xsl:with-param name="iModInst"  select="$modInst_"/>
-				<xsl:with-param name="iModType"  select="$modType_"/>
-				<xsl:with-param name="iUnkInst"  select="$penalId_"/>
-			</xsl:call-template>		
-<!--			
-		</xsl:if>
--->		
-		
-	</xsl:for-each>		
-</xsl:template>	
-
-
-<xsl:template name="Define_IPBucket">
-			
-	<xsl:for-each select="BLKDSHAPES/IPBUCKET">
-		
-		<xsl:for-each select="MODULE">	
-			
-			<xsl:call-template name="Define_IPBucketModule">
-				<xsl:with-param name="iIPType"   select="@MODTYPE"/>
-				<xsl:with-param name="iIPName"   select="@INSTANCE"/>
-			</xsl:call-template>	
-			
-		</xsl:for-each>		
-		
-		<symbol id="ipbucket">
-			<xsl:variable name="bucket_w_"  select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
-			<xsl:variable name="bucket_h_"  select="(($BLKD_MOD_BKTLANE_H * 2) + (($BLKD_MOD_H * @MODS_H) + ($BLKD_MOD_BUCKET_G * (@MODS_H - 1))))"/>
-		
-		<rect x="0" 
-		      y="0"  
-			  rx="4"
-			  ry="4"
-		      width= "{$bucket_w_}" 
-		      height="{$bucket_h_}" 
-		      style="stroke-width:2; stroke:{$COL_BLACK}; fill:{$COL_IORING_LT}"/>
-				 
-			<xsl:variable name="bkt_mods_w_" select="@MODS_W"/>
-			
-			<xsl:for-each select="MODULE">	
-				
-				<xsl:variable name="clm_"   select="((     position() - 1)  mod $bkt_mods_w_)"/>
-				<xsl:variable name="row_"   select="floor((position() - 1)  div $bkt_mods_w_)"/>
-				
-				<xsl:variable name="bk_x_"  select="$BLKD_MOD_BKTLANE_W + ($clm_ * ($BLKD_MOD_W + $BLKD_MOD_BUCKET_G))"/>
-				<xsl:variable name="bk_y_"  select="$BLKD_MOD_BKTLANE_H + ($row_ * ($BLKD_MOD_H + $BLKD_MOD_BUCKET_G))"/>
-				
-					 
-				<use x="{$bk_x_}"   
-					 y="{$bk_y_}" 
-					 xlink:href="#ipbktmodule_{@INSTANCE}"/>		  		  
-					 
-					 
-			</xsl:for-each>		 
-					 
-	</symbol>		
-	
-</xsl:for-each>	
-</xsl:template>	
-
-
-<xsl:template name="Define_UNKBucket">
-			
-	<xsl:for-each select="BLKDSHAPES/UNKBUCKET">
-	
-		<symbol id="unkbucket">
-			<xsl:variable name="bucket_w_"  select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
-			<xsl:variable name="bucket_h_"  select="(($BLKD_MOD_BKTLANE_H * 2) + (($BLKD_MOD_H * @MODS_H) + ($BLKD_MOD_BUCKET_G * (@MODS_H - 1))))"/>
-		
-		<rect x="0" 
-		      y="0"  
-			  rx="4"
-			  ry="4"
-		      width= "{$bucket_w_}" 
-		      height="{$bucket_h_}" 
-		      style="stroke-width:2; stroke:{$COL_BLACK}; fill:{$COL_BG_UNK}"/>
-				 
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@IS_PROMOTED and @IS_PENALIZED)]">	
-			
-			<xsl:variable name="bkt_mods_w_" select="@MODS_W"/>
-				
-				<xsl:variable name="mod_row_"    select="@BKTROW"/>	
-				<xsl:variable name="row_mods_h_" select="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/BKTROW[(@INDEX = $mod_row_)]/@MODS_H"/>	
-
-<!--				
-				<xsl:message>The row module is <xsl:value-of select="@BKTROW"/></xsl:message>
-				<xsl:message>The height of the module is <xsl:value-of select="$row_mods_h_"/></xsl:message>
--->				
-				
-				
-				<xsl:variable name="bk_x_"  select="$BLKD_MOD_BKTLANE_W + (@MODS_X * ($BLKD_MOD_W + $BLKD_MOD_BUCKET_G))"/>
-				<xsl:variable name="bk_y_"  select="$BLKD_MOD_BKTLANE_H + ($row_mods_h_ * ($BLKD_MOD_H + $BLKD_MOD_BUCKET_G))"/>
-				
-				<use x="{$bk_x_}"   
-					 y="{$bk_y_}" 
-					 xlink:href="#symbol_unkmodule_{@BKTROW}_{@MODS_X}"/>		  		  
-<!--				 
--->				 
-
-			</xsl:for-each>		 
-
-			
-		</symbol>		
-		
-	</xsl:for-each>	
-</xsl:template>	
-
-		
-<xsl:template name="Define_SBSBuckets">
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET">	
-		
-		<xsl:variable name="bus_name_"   select="@BUSNAME"/>
-		<xsl:variable name="bus_std_"    select="@BUSSTD"/>
-<!--		
-		<xsl:variable name="bus_std_"    select="BUSCONNS/BUSCONN/@BUSSTD"/>
--->	
-		<xsl:variable name="bus_conn_w_" select="BUSCONNS/@BUSLANE_W"/>
-		
-		<xsl:variable name="bucket_bg_col_">
-			<xsl:call-template name="BusType2LightColor">
-				<xsl:with-param name="iBusType" select="$bus_std_"/>
-			</xsl:call-template>
-		</xsl:variable>
-		
-		<xsl:variable name="bucket_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="$bus_std_"/>
-			</xsl:call-template>
-		</xsl:variable>
-		
-		
-		<xsl:for-each select="MODULE">	
-			
-			<xsl:sort data-type="text" select="@INSTANCE" order="ascending"/>
-		
-			<xsl:call-template name="Define_SBSBucketModule">
-				<xsl:with-param name="iBifType"  select="$bus_std_"/>
-				<xsl:with-param name="iIPType"   select="@MODTYPE"/>
-				<xsl:with-param name="iIPName"   select="@INSTANCE"/>
-			</xsl:call-template>	
-			
-		</xsl:for-each>		
-		
-		<symbol id="sbsbucket_{$bus_name_}">
-			<xsl:variable name="bucket_w_"  select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
-			<xsl:variable name="bucket_h_"  select="(($BLKD_MOD_BKTLANE_H * 2) + ((($BLKD_MOD_H + $BLKD_BIFC_H) * @MODS_H) + ($BLKD_MOD_BUCKET_G * (@MODS_H - 1))))"/>
-			
-			<rect x="0"
-			      y="0"  
-				  rx="4"
-				  ry="4"
-			      width= "{$bucket_w_}" 
-			      height="{$bucket_h_}" 
-			      style="stroke-width:2; stroke:{$bucket_col_}; fill:{$bucket_bg_col_}"/>
-				 
-			<xsl:variable name="bkt_mods_w_" select="@MODS_W"/>
-			
-			<xsl:for-each select="MODULE">	
-				
-				<xsl:sort data-type="text" select="@INSTANCE" order="ascending"/>
-				
-				<xsl:variable name="clm_"   select="((     position() - 1)  mod $bkt_mods_w_)"/>
-				<xsl:variable name="row_"   select="floor((position() - 1)  div $bkt_mods_w_)"/>
-				
-				<xsl:variable name="bk_x_"  select="$BLKD_MOD_BKTLANE_W + ($clm_ * ($BLKD_MOD_W + $BLKD_MOD_BUCKET_G))"/>
-				<xsl:variable name="bk_y_"  select="$BLKD_MOD_BKTLANE_H + ($row_ * ($BLKD_MOD_H + $BLKD_BIFC_H + $BLKD_MOD_BUCKET_G))"/>
-					 
-				<!-- Lay out the module in the bucket -->
-				 <use x="{$bk_x_}" y="{$bk_y_}"  xlink:href="#sbsbktmodule_{@INSTANCE}"/>		  
-				
-				<!-- Add its connection to the piece shared bus -->
-				<xsl:variable name="h_bus_y_" select="$bk_y_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-				
-<!--				
-				<xsl:variable name="h_bus_x_" select="$bk_x_ - ($BLKD_MOD_BUCKET_G + ceiling($BLKD_MOD_W div 2))"/>
--->	
-				<xsl:variable name="h_bus_x_">
-					<xsl:choose>
-						<xsl:when test="($clm_ = '0')">0</xsl:when>
-					
-						<xsl:when test="not($clm_ = '0')">
-							<xsl:value-of select="$bk_x_ - ($BLKD_MOD_BUCKET_G + ceiling($BLKD_MOD_W div 2))"/>
-						</xsl:when>
-					</xsl:choose>
-				</xsl:variable>
-				
-<!--				
-				<xsl:variable name="h_bus_y_" select="$bk_y_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W)"/>
-				<xsl:message>h bus x <xsl:value-of select="$h_bus_x_"/></xsl:message>
-				<xsl:message>h bus y <xsl:value-of select="$h_bus_y_"/></xsl:message>
--->	
-				<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-				<xsl:variable name="h_bus_width_"  select="($bk_x_ - $h_bus_x_ + ceiling($BLKD_MOD_W div 2))"/>	
-				
-				<rect x="{$h_bus_x_}" 
-		      		  y="{$h_bus_y_}"  
-		      		  width= "{$h_bus_width_}" 
-		      		  height="{$BLKD_P2P_BUS_W}" 
-		      		  style="fill:{$bucket_col_}"/>
-				
-			</xsl:for-each>
-			
-			<xsl:variable name="num_sbsbktmods_" select="count(MODULE)"/>
-			<xsl:variable name="num_sbsbktrows_" select="ceiling($num_sbsbktmods_ div $BLKD_BKT_MODS_PER_ROW)"/>
-			
-			<!-- If there is more than one row, connect the rows with a vertical bar -->		
-			<xsl:if test="($num_sbsbktrows_ &gt; 1)">
-				
-				<xsl:variable name="v_bus_x_"    select="$BLKD_MOD_BKTLANE_W + ($BLKD_MOD_W + $BLKD_MOD_BUCKET_G)"/>
-				
-				<xsl:variable name="bkt_top_"    select="$BLKD_MOD_BKTLANE_H + (0                      * ($BLKD_MOD_H + $BLKD_BIFC_H + $BLKD_MOD_BUCKET_G))"/>
-				<xsl:variable name="bkt_bot_"    select="$BLKD_MOD_BKTLANE_H + (($num_sbsbktrows_ - 1) * ($BLKD_MOD_H + $BLKD_BIFC_H + $BLKD_MOD_BUCKET_G))"/>
-				
-				<xsl:variable name="v_bus_y_top_" select="$bkt_top_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-				<xsl:variable name="v_bus_y_bot_" select="$bkt_bot_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-				
-				<xsl:variable name="v_bus_width_"   select="$BLKD_P2P_BUS_W"/>
-				<xsl:variable name="v_bus_height_"  select="($v_bus_y_bot_ - $v_bus_y_top_)"/>
-				<rect x="0" 
-		      		  y="{$v_bus_y_top_}"  
-		      		  width= "{$v_bus_width_}" 
-		      		  height="{$v_bus_height_}" 
-		      		  style="fill:{$bucket_col_}"/>
-			</xsl:if>
-			
-		</symbol>
-		
-	</xsl:for-each>		
-	
-	
-</xsl:template>	
-	
-	
-<xsl:template name="Define_SBSBucketModule">
-	
-	<xsl:param name="iBifType"  select="'OPB'"/>
-	<xsl:param name="iIPName"   select="'_ipType_'"/>
-	<xsl:param name="iIPType"   select="'_ipName_'"/>
-	
-<!--	
-	<xsl:message>The IPType is <xsl:value-of select="$iIPType"/> </xsl:message>
--->	
-	<xsl:variable name="bif_y_">
-		<xsl:value-of select="$BLKD_MOD_LANE_H + $BLKD_BIFC_H"/>	
-	</xsl:variable>
-
-	<xsl:variable name="label_y_">
-		<xsl:value-of select="$BLKD_MOD_LANE_H + $BLKD_BIF_H + $BLKD_BIFC_H +  $BLKD_MOD_BIF_GAP_V"/>	
-	</xsl:variable>
-	
-	<xsl:variable name="modBg_Col_">
-		<xsl:choose>
-			<xsl:when test="$iIPType = 'mpmc'"><xsl:value-of select="$COL_MPMC_BG"/></xsl:when>
-			<xsl:otherwise><xsl:value-of select="$COL_BG"/></xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-    <symbol id="sbsbktmodule_{$iIPName}">
-		
-		<rect x="0"
-		      y="{$BLKD_BIFC_H}"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$BLKD_MOD_W}"
-		      height= "{$BLKD_MOD_H}"
-			  style="fill:{$modBg_Col_}; stroke:{$COL_WHITE}; stroke-width:2"/>		
-			  
-		<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$label_y_}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_MOD_LABEL_H}"
-			  style="fill:{$COL_WHITE}; stroke:none;"/>		
-		
-	  	<xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/@GROUP">
-	  	
-			<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      	  y="{$label_y_ + $BLKD_BIF_H + ceiling($BLKD_BIF_H div 3) - 2}"
-			      rx="3" 
-			      ry="3" 
-		      	  width= "{$BLKD_MOD_LABEL_W}"
-		          height="{$BLKD_BIF_H}"
-			  	  style="fill:{$COL_IORING_LT}; stroke:none;"/>		
-			  
-	
-	   	   <text class="ioplblgrp" 
-			  	  x="{ceiling($BLKD_MOD_W div 2)}"
-		          y="{$label_y_ + $BLKD_BIF_H + ceiling($BLKD_BIF_H div 3) + 12}">
-			   <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/@GROUP"/>
-	   		</text>
-	   
-	  	</xsl:if> 
-	   
-		<text class="bciptype" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-			  y="{$label_y_ + 8}">
-				<xsl:value-of select="$iIPType"/>
-		</text>
-				
-		<text class="bciplabel" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-			  y="{$label_y_ + 16}">
-				<xsl:value-of select="$iIPName"/>
-	   </text>
-	   
-		<xsl:for-each select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iIPName)]/BUSINTERFACE[not(@BUSNAME = '__NOC__')]">
-			
-			<xsl:variable name="bif_busstd_">
-				<xsl:choose>
-					<xsl:when test="@BUSSTD">
-						<xsl:value-of select="@BUSSTD"/>	
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="'TRS'"/>	
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="bif_name_">
-				<xsl:choose>
-					<xsl:when test="string-length(@NAME) &lt;= 5">
-						<xsl:value-of select="@NAME"/>	
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="substring(@NAME,0,5)"/>	
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-	
-		    <xsl:variable name="bif_x_"  select="ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_BIF_W div 2)"/>
-			
-			<!-- Draw the BIF -->
-			<use  x="{$bif_x_}"   y="{$bif_y_}"  xlink:href="#{$bif_busstd_}_Bif"/>
-			
-<!--			
- 			<symbol id="{$bus_type}_busconn_SLAVE">	
--->		 
-	 
-			<!-- Draw the BIF connection -->
-			<use  x="{$bif_x_ + ceiling($BLKD_BIF_W div 2) - ceiling($BLKD_BIFC_W div 2)}"   y="{$bif_y_ - $BLKD_BIFC_H - $BLKD_MOD_LANE_H}"  xlink:href="#{$bif_busstd_}_busconn_{@BIFRANK}"/>
-				
-			<text class="biflabel" 
-				  x="{$bif_x_ + ceiling($BLKD_BIF_W div 2)}"
-				  y="{$bif_y_ + ceiling($BLKD_BIF_H div 2) + 3}">
-					<xsl:value-of select="$bif_name_"/>
-			</text>
-			
-		</xsl:for-each>
-		
-		<xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/@INTCINDEX">
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="iIntcIdx" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptCntrl">
-				<xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - ceiling($BLKD_INTR_W div 2))"/>
-				<xsl:with-param name="iIntr_Y"   select="3 + $BLKD_BIFC_H"/>
-				<xsl:with-param name="iIntr_COL" select="$intr_col_"/>
-				<xsl:with-param name="iIntr_IDX" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/@INTCINDEX"/>
-			</xsl:call-template>	
-		</xsl:if>
-		
-		      
-		<xsl:for-each select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/INTCCNTLRTRGS/INTCTRG">
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="intcIdx" select="@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptSource">
-				<xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - $BLKD_INTR_W)"/>
-				<xsl:with-param name="iIntr_Y"   select="((position() - 1) * (ceiling($BLKD_INTR_H div 2) + 3)) + $BLKD_BIFC_H"/>
-				<xsl:with-param name="iIntr_COL" select="$intr_col_"/>
-				<xsl:with-param name="iIntr_PRI" select="@PRIORITY"/>
-				<xsl:with-param name="iIntr_IDX" select="@INTCINDEX"/>
-			</xsl:call-template>	
-			
-		</xsl:for-each>
-		
-	</symbol>			  
-	
-</xsl:template>	
-
-<xsl:template name="Define_IPBucketModule">
-	
-	<xsl:param name="iIPType"   select="'_ip_type_'"/>
-	<xsl:param name="iIPName"   select="'_ip_name_'"/>
-	
-	<xsl:variable name="bif_y_">
-		<xsl:value-of select="$BLKD_MOD_LANE_H"/>	
-	</xsl:variable>
-
-	<xsl:variable name="label_y_">
-		<xsl:value-of select="(ceiling($BLKD_MOD_H div 2) - ceiling($BLKD_MOD_LABEL_H div 2))"/>	
-	</xsl:variable>
-	
-    <symbol id="ipbktmodule_{$iIPName}">
-
-		<rect x="0"
-		      y="0"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$BLKD_MOD_W}"
-		      height= "{$BLKD_MOD_H}"
-			  style="fill:{$COL_BG}; stroke:{$COL_BLACK}; stroke-width:2"/>		
-			  
-		<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$label_y_}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_MOD_LABEL_H}"
-			  style="fill:{$COL_WHITE}; stroke:none;"/>		
-			  
-<!--
-			  y="{$label_y_ + ceiling($BLKD_MOD_LABEL_H div 2) - 4}"
-			  y="{$label_y_ + ceiling($BLKD_MOD_LABEL_H div 2) + 4}"
--->			  
-
-		<text class="bciptype" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-			  y="{$label_y_ + 8}">
-				<xsl:value-of select="$iIPType"/>
-		</text>
-				
-		<text class="bciplabel" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-			  y="{$label_y_ + 16}">
-				<xsl:value-of select="$iIPName"/>
-	   </text>
-	   
-	  	<xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iIPName)]/@GROUP">
-	  	
-		<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$label_y_ + $BLKD_BIF_H + ceiling($BLKD_BIF_H div 3) - 2}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_BIF_H}"
-			  style="fill:{$COL_IORING_LT}; stroke:none;"/>		
-			  
-	
-	   	   <text class="ioplblgrp" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-		      y="{$label_y_ + $BLKD_BIF_H + ceiling($BLKD_BIF_H div 3) + 12}">
-			   <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$iIPName]/@GROUP"/>
-	   		</text>
-	   
-	  	</xsl:if> 
-	  	
-		<xsl:for-each select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/INTCCNTLRTRGS/INTCTRG">
-			
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="iIntcIdx" select="@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptSource">
-				<xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - $BLKD_INTR_W)"/>
-				<xsl:with-param name="iIntr_Y"   select="((position() - 1) * (ceiling($BLKD_INTR_H div 2) + 3))"/>
-				<xsl:with-param name="iIntr_COL" select="$intr_col_"/>
-				<xsl:with-param name="iIntr_PRI" select="@PRIORITY"/>
-				<xsl:with-param name="iIntr_IDX" select="@INTCINDEX"/>
-			</xsl:call-template>	
-			
-		</xsl:for-each>
-	   
-	</symbol>			  
-	
-</xsl:template>	
-	
-	
-<xsl:template name="Define_Peripheral"> 
-<!-- 
-	when the module is oriented normal its label goes above the bifs 
-    when the module is oriented rot180, (part of a processor memory  
-	controller for example) its label goes below the bifs 
--->	
-
-	<xsl:param name="iModVori"    select="'normal'"/>
-	<xsl:param name="iModInst"    select="'_instance_'"/>
-	<xsl:param name="iModType"    select="'_modtype_'"/>
-	<xsl:param name="iUnkInst"    select="'_unknown_'"/>
-	<xsl:param name="iHorizIdx"   select="'_unknown_'"/>
-	<xsl:param name="iVertiIdx"   select="'_unknown_'"/>
-	
-<!--	
-	<xsl:message>Stack       Y <xsl:value-of select="$cstkMods_Y"/></xsl:message>
-	<xsl:message>Stack Index Y <xsl:value-of select="$cstkIndex"/></xsl:message>
--->	
-	
-	<xsl:variable name="modName_">
-		<xsl:choose>
-			<xsl:when test="$iUnkInst = '_unknown_'">
-				<xsl:value-of select="$iModInst"/>	
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="$iUnkInst"/>	
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="modSymbolName_">
-		<xsl:choose>
-			<xsl:when test="(not($iHorizIdx = '_unknown_') and not($iVertiIdx = '_unknown_'))">
-				<xsl:call-template name="_gen_Stack_SymbolName"> 
-					<xsl:with-param name="iHorizIdx"  select="$iHorizIdx"/>
-					<xsl:with-param name="iVertiIdx"  select="$iVertiIdx"/>
-				</xsl:call-template>		
-			</xsl:when>
-			<xsl:otherwise>symbol_<xsl:value-of select="$modName_"/></xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="modTypeName_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iModInst)]/@MODTYPE"/>
-	
-	
-<!--	
-	<xsl:message>The symbol type of the module is <xsl:value-of select="$modTypeName_"/></xsl:message>
-	<xsl:message>The symbol name of the module is <xsl:value-of select="$modSymbolName_"/></xsl:message>
--->	
-	
-	<xsl:variable name="bifs_h_">	
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iModInst)]/@BIFS_H) and not(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iModInst)]/@BIFS_H)">0</xsl:if>
-	
-		<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iModInst)]/@BIFS_H)">
-			<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iModInst)]/@BIFS_H"/>
-		</xsl:if>
-	
-		<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iModInst)]/@BIFS_H)">
-			<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iModInst)]/@BIFS_H"/>
-		</xsl:if>
-	</xsl:variable>		
-	
-	<xsl:variable name="label_y_">
-		<xsl:choose>
-			<xsl:when test="$iModVori = 'rot180'">
-				<xsl:value-of select="($BLKD_MOD_LANE_H + (($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * $bifs_h_))"/>	
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="$BLKD_MOD_LANE_H"/>	
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="bif_dy_">
-		<xsl:choose>
-			<xsl:when test="$iModVori = 'rot180'">
-				<xsl:value-of select="$BLKD_MOD_LANE_H"/>	
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V)"/>	
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="peri_stroke_col_">
-		<xsl:choose>
-			<xsl:when test="((@MODCLASS = 'MASTER_SLAVE') or (@MODCLASS = 'MONITOR')) and BUSCONNS/BUSCONN">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="BUSCONNS/BUSCONN/@BUSSTD"/>
-				</xsl:call-template>
-			</xsl:when>
-			
-			<xsl:otherwise>
-				<xsl:value-of select="$COL_WHITE"/>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="modHeight_">
-		<xsl:call-template name="_calc_PeriShape_Height">
-			<xsl:with-param name="iShapeInst"  select="$modName_"/>
-		</xsl:call-template>	
-	</xsl:variable>		
-	
-    <symbol id="{$modSymbolName_}">
-		
-		<xsl:if test="$modTypeName_ = 'mpmc'">
-		<rect x="0"
-		      y="0"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$BLKD_MOD_W}"
-		      height= "{$modHeight_}"
-			  style="fill:{$COL_MPMC_BG}; stroke:{$peri_stroke_col_}; stroke-width:2"/>		
-		</xsl:if>	
-		
-		<xsl:if test="not($modTypeName_ = 'mpmc')">
-		<rect x="0"
-		      y="0"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$BLKD_MOD_W}"
-		      height= "{$modHeight_}"
-			  style="fill:{$COL_BG}; stroke:{$peri_stroke_col_}; stroke-width:2"/>		
-		</xsl:if>	
-		
-					  
-		<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$label_y_}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_MOD_LABEL_H}"
-			  style="fill:{$COL_WHITE}; stroke:none;"/>		
-			  
-<!--			  
-			  y="{$label_y_ + ceiling($BLKD_MOD_LABEL_H div 2) - 4}">
-			  y="{$label_y_ + ceiling($BLKD_MOD_LABEL_H div 2) + 4}">
--->
-			  
-		<text class="bciptype" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-			  y="{$label_y_ + 8}">
-				<xsl:value-of select="$iModType"/>
-		</text>
-				
-		<text class="bciplabel" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-			  y="{$label_y_ + 16}">
-				<xsl:value-of select="$iModInst"/>
-	   </text>
-	   
-	  	<xsl:if test="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$iModInst]/@GROUP">
-	  	
-		<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$label_y_ + $BLKD_BIF_H + ceiling($BLKD_BIF_H div 3) - 2}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_BIF_H}"
-			  style="fill:{$COL_IORING_LT}; stroke:none;"/>		
-			  
-	   	   <text class="ioplblgrp" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-		      y="{$label_y_ + $BLKD_BIF_H + ceiling($BLKD_BIF_H div 3) + 12}">
-			   <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$iModInst]/@GROUP"/>
-	   		</text>
-	   
-	  	</xsl:if> 
-	   
-		<xsl:for-each select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$iModInst]/BUSINTERFACE[(@BIF_X and @BIF_Y and not(@BUSNAME = '__NOC__'))]">
-			
-			<xsl:variable name="bif_busstd_">
-				<xsl:choose>
-					<xsl:when test="@BUSSTD">
-						<xsl:value-of select="@BUSSTD"/>	
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="'TRS'"/>	
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="bif_y_">
-				<xsl:value-of select="(($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V)  * @BIF_Y)"/>
-			</xsl:variable>
-			
-			<xsl:variable name="bif_buscol_">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="$bif_busstd_"/>
-				</xsl:call-template>
-			</xsl:variable>
-		
-			
-			<xsl:variable name="bif_name_">
-				<xsl:choose>
-					<xsl:when test="not(@NAME)">'UNK'</xsl:when>
-					<xsl:when test="string-length(@NAME) &lt;= 5">
-						<xsl:value-of select="@NAME"/>	
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="substring(@NAME,0,5)"/>	
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-	
-			<xsl:variable name="bif_x_" >
-				<xsl:if test="not(@ORIENTED='CENTER')">
-					<xsl:value-of select="(($BLKD_BIF_W * @BIF_X) + ($BLKD_MOD_BIF_GAP_H * @BIF_X) + ($BLKD_MOD_LANE_W * 1))"/>
-				</xsl:if>
-				<xsl:if test="(@ORIENTED='CENTER')">
-					<xsl:value-of select="ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_BIF_W div 2)"/>
-				</xsl:if>
-			</xsl:variable> 
-			
-			<xsl:if test="not(@IS_INTCONN)">
-				<xsl:variable name="horz_line_y_" select="($bif_y_  + $bif_dy_ + ceiling($BLKD_BIFC_H div 2))"/>
-			
-				<xsl:variable name="horz_line_x1_">
-					<xsl:choose>
-						<xsl:when test="@BIF_X = '0'">0</xsl:when>
-						<xsl:otherwise><xsl:value-of select="($BLKD_MOD_W - $BLKD_MOD_LANE_W)"/></xsl:otherwise>
-					</xsl:choose>
-				</xsl:variable>
-			
-				<xsl:variable name="horz_line_x2_">
-					<xsl:choose>
-						<xsl:when test="@BIF_X = '0'"><xsl:value-of select="$BLKD_MOD_LANE_W"/></xsl:when>
-						<xsl:otherwise><xsl:value-of select="$BLKD_MOD_W + 1"/></xsl:otherwise>
-					</xsl:choose>
-				</xsl:variable>
-			
-			
-				<line x1="{$horz_line_x1_}" 
-			  	  	  y1="{$horz_line_y_ - 2}"
-			          x2="{$horz_line_x2_}" 
-			          y2="{$horz_line_y_ - 2}" 
-			         style="stroke:{$bif_buscol_};stroke-width:1"/>
-			  
-			</xsl:if>
-			
-			<use  x="{$bif_x_}"   y="{$bif_y_ + $bif_dy_}"  xlink:href="#{$bif_busstd_}_Bif"/>
-				
-			<text class="biflabel" 
-				  x="{$bif_x_  + ceiling($BLKD_BIF_W div 2)}"
-				  y="{$bif_y_ + $bif_dy_ + ceiling($BLKD_BIF_H div 2) + 3}">
-					<xsl:value-of select="$bif_name_"/>
-			</text>
-			
-		</xsl:for-each>
-		
-<!--		
-		<xsl:if test="@INTCINDEX">
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="intcIdx" select="@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptCntrl">
-				<xsl:with-param name="intr_col" select="$intr_col_"/>
-				<xsl:with-param name="intr_x"   select="($BLKD_MOD_W - ceiling($BLKD_INTR_W div 2))"/>
-				<xsl:with-param name="intr_y"   select="3"/>
-				<xsl:with-param name="intr_idx" select="@INTCINDEX"/>
-			</xsl:call-template>	
-		</xsl:if>
--->		
-		<xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iModInst)]/@INTCINDEX">
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="iIntcIdx" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iModInst)]/@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptCntrl">
-				<xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - ceiling($BLKD_INTR_W div 2))"/>
-				<xsl:with-param name="iIntr_Y"   select="3"/>
-				<xsl:with-param name="iIntr_COL" select="$intr_col_"/>
-				<xsl:with-param name="iIntr_IDX" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iModInst)]/@INTCINDEX"/>
-			</xsl:call-template>	
-		</xsl:if>
-		
-		
-		<xsl:for-each select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iModInst)]/INTCCNTLRTRGS/INTCTRG">
-			
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="iIntcIdx" select="@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptSource">
-				<xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - $BLKD_INTR_W)"/>
-				<xsl:with-param name="iIntr_Y"   select="((position() - 1) * (ceiling($BLKD_INTR_H div 2) + 3))"/>
-				<xsl:with-param name="iIntr_COL" select="$intr_col_"/>
-				<xsl:with-param name="iIntr_PRI" select="@PRIORITY"/>
-				<xsl:with-param name="iIntr_IDX" select="@INTCINDEX"/>
-			</xsl:call-template>	
-			
-		</xsl:for-each>
-		
-	</symbol>			  
-</xsl:template>	
-	
-<xsl:template name="Define_MemoryUnit"> 
-	<xsl:param name="iShapeId"  select="1000"/>
-	
-	<xsl:variable name="horiz_idx_"   select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/@STACK_HORIZ_INDEX"/>
-	<xsl:variable name="is_multistk_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/@IS_MULTISTK"/>
-	
-	<xsl:choose>
-		<xsl:when test="(($is_multistk_ = 'TRUE') or (/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@STACK_HORIZ_INDEX = $horiz_idx_)]))">
-			<xsl:call-template name="Define_Processor_MemoryUnit"> 
-				<xsl:with-param name="iShapeId"  select="$iShapeId"/>
-			</xsl:call-template>
-		</xsl:when>
-		
-		<xsl:otherwise>
-			<xsl:call-template name="Define_StandAlone_MemoryUnit"> 
-				<xsl:with-param name="iShapeId"  select="$iShapeId"/>
-			</xsl:call-template>
-		</xsl:otherwise>
-		
-	</xsl:choose>
-	
-</xsl:template>	
-	
-	
-<xsl:template name="Define_Processor_MemoryUnit"> 
-	<xsl:param name="iShapeId"  select="1000"/>
-	
-<!--	
-	<xsl:param name="cstkIndex"    select="'_processor_'"/>
--->	
-	
-	<xsl:variable name="mods_h_"  select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/@MODS_H"/>
-	<xsl:variable name="mods_w_"  select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/@MODS_W"/>
-	<xsl:variable name="memW_" select="($BLKD_MOD_W * $mods_w_)"/>
-	<xsl:variable name="memH_" select="($BLKD_MOD_H * $mods_h_)"/>
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]">
-		
-		<!-- first define its symbols as individual modules -->	
-		<xsl:for-each select="MODULE[@MODCLASS='MEMORY']">
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$modInst_)]/@MODTYPE"/>
-		
-			<xsl:call-template name="Define_Peripheral"> 
-				<xsl:with-param name="iModVori"  select="'normal'"/>
-				<xsl:with-param name="iModInst"  select="$modInst_"/>
-				<xsl:with-param name="iModType"  select="$modType_"/>
-			</xsl:call-template>		
-		</xsl:for-each>	
-	
-		<xsl:for-each select="MODULE[@MODCLASS='MEMORY_CNTLR']">
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$modInst_)]/@MODTYPE"/>
-		
-			<xsl:call-template name="Define_Peripheral"> 
-				<xsl:with-param name="iModVori"  select="'rot180'"/>
-				<xsl:with-param name="iModInst"  select="$modInst_"/>
-				<xsl:with-param name="iModType"  select="$modType_"/>
-			</xsl:call-template>		
-		</xsl:for-each>	
-	</xsl:for-each>
-	
-<!--	
--->	
-	
-	<xsl:variable name="symbol_name_">
-		<xsl:call-template name="_gen_Stack_SymbolName"> 
-			<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
-			<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>The mp stack name is <xsl:value-of select="$mp_stack_name_"/></xsl:message>
--->	
-		
-    <symbol id="{$symbol_name_}">
-
-		<rect x="0"
-		      y="0"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$memW_}"
-		      height= "{$memH_}"
-			  style="fill:{$COL_BG}; stroke:{$COL_WHITE}; stroke-width:2"/>		
-			  
-		<!-- Draw the memory block-->		  
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY')]">
-			
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 <use  x="{ceiling($memW_ div 2) - ($BLKD_MOD_W div 2)}"  
-				   y="0"  
-				   xlink:href="#symbol_{$modInst_}"/> 
-		</xsl:for-each>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[((@MODCLASS='MEMORY_CNTLR') and (@ORIENTED = 'WEST'))]">
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 <use  x="0"  
-				   y="{$BLKD_MOD_H}"  
-				   xlink:href="#symbol_{$modInst_}"/> 
-		</xsl:for-each>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[((@MODCLASS='MEMORY_CNTLR') and (@ORIENTED = 'EAST'))]">
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 <use  x="{$BLKD_MOD_W}"  
-				   y="{$BLKD_MOD_H}"  
-				   xlink:href="#symbol_{$modInst_}"/> 
-		</xsl:for-each>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[((@MODCLASS='MEMORY_CNTLR') and (@ORIENTED = 'CENTER'))]">	
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 <use  x="{ceiling($memW_ div 2) - ($BLKD_MOD_W div 2)}"  
-				   y="{$BLKD_MOD_H}"  
-				   xlink:href="#symbol_{$modInst_}"/> 
-		</xsl:for-each>
-		
-	</symbol>			  
-	
-</xsl:template>	
-
-	
-<xsl:template name="Define_StandAlone_MemoryUnit"> 
-	
-	<xsl:param name="iShapeId" select="0"/>
-	
-	<xsl:variable name="mods_h_"  select="@MODS_H"/>
-	<xsl:variable name="mods_w_"  select="@MODS_W"/>
-	
-	<xsl:variable name="memc_name_" select="MODULE[not(@MODCLASS = 'MEMORY')]/@INSTANCE"/>
-	<xsl:variable name="memc_busstd_" select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE/BUSCONNLANE[(BUSCONN[(@INSTANCE = $memc_name_)])]/@BUSSTD"/>
-	
-<!--	
-	<xsl:variable name="memc_busstd_" select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE/BUSCONNLANE/@BUSSTD"/>
-	<xsl:variable name="memc_busstd_" select="/EDKSYSTEM/BCLANESPACES/BCLANESPACE/BUSCONNLANE[(BUSCONN[(@INSTANCE)])]/@BUSSTD"/>
-	<xsl:message>Memory cntlr name <xsl:value-of select="$memc_name_"/></xsl:message>
-	<xsl:message>Memory cntlr name <xsl:value-of select="$memc_name_"/></xsl:message>
-	<xsl:message>Memory cntlr busstd <xsl:value-of select="$memc_busstd_"/></xsl:message>
--->	
-	
-	<xsl:variable name="peri_col_">
-		
-		<xsl:choose>
-			<xsl:when test="$mods_w_ &gt; 1">
-				<xsl:value-of select="$COL_BG"/>
-			</xsl:when>
-			
-			<xsl:when test="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE/BUSCONNLANE[(BUSCONN[(@INSTANCE = $memc_name_)])]/@BUSSTD">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="$memc_busstd_"/>
-				</xsl:call-template>
-			</xsl:when>
-		
-			<xsl:otherwise>
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="'TRS'"/>
-				</xsl:call-template>
-			</xsl:otherwise>
-		</xsl:choose>		
-		
-	</xsl:variable>  
-	
-	<!-- first define its symbols as individual modules -->	
-	<xsl:for-each select="MODULE[(@MODCLASS = 'MEMORY')]">
-		<xsl:variable name="modInst_" select="@INSTANCE"/>
-		<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$modInst_]/@MODTYPE"/>
-		
-		<xsl:call-template name="Define_Peripheral"> 
-			<xsl:with-param name="iModVori"  select="'rot180'"/>
-			<xsl:with-param name="iModInst"  select="$modInst_"/>
-			<xsl:with-param name="iModType"  select="$modType_"/>
-		</xsl:call-template>		
-	</xsl:for-each>	
-	
-	<xsl:for-each select="MODULE[not(@MODCLASS='MEMORY')]">
-		<xsl:variable name="modInst_" select="@INSTANCE"/>
-		<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$modInst_]/@MODTYPE"/>
-		
-<!--		
-		<xsl:message>Memory cntlr inst <xsl:value-of select="$modInst_"/></xsl:message>
--->		
-		<xsl:call-template name="Define_Peripheral"> 
-			<xsl:with-param name="iModVori"  select="'normal'"/>
-			<xsl:with-param name="iModInst"  select="$modInst_"/>
-			<xsl:with-param name="iModType"  select="$modType_"/>
-		</xsl:call-template>		
-	</xsl:for-each>	
-	
-	<xsl:variable name="memW_" select="($BLKD_MOD_W * $mods_w_)"/>
-	<xsl:variable name="memH_" select="($BLKD_MOD_H * $mods_h_)"/>
-	
-	<xsl:variable name="symbol_name_">
-		<xsl:call-template name="_gen_Stack_SymbolName"> 
-			<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
-			<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-		
-    <symbol id="{$symbol_name_}">
-		
-		<rect x="0"
-		      y="0"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$memW_ + 4}"
-		      height= "{$memH_ + 4}"
-			  style="fill:{$peri_col_}; stroke:{$peri_col_}; stroke-width:2"/>		
-			  
-
-		<!-- Draw the memory block-->		  
-		<xsl:choose>
-			
-		<xsl:when test="$mods_w_ = 1">
-			
-			<xsl:for-each select="MODULE[(@MODCLASS='MEMORY')]">	
-				<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 	<use  x="2"  
-				      y="{$BLKD_MOD_H + 2}"  
-				      xlink:href="#symbol_{$modInst_}"/> 
-			</xsl:for-each>
-		
-		
-		<!-- Draw the memory controllers-->		  
-			<xsl:for-each select="MODULE[not(@MODCLASS='MEMORY')]">	
-				<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 	<use  x="2"  
-				   	  y="0"  
-				      xlink:href="#symbol_{$modInst_}"/> 
-			</xsl:for-each>
-		</xsl:when>	
-		
-		<xsl:when test="$mods_w_ &gt; 1">
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY')]">
-			
-				<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-				 <use  x="{ceiling($memW_ div 2) - ($BLKD_MOD_W div 2)}"  
-				   	   y="{$BLKD_MOD_H + 2}"  
-				   	   xlink:href="#symbol_{$modInst_}"/> 
-			</xsl:for-each>
-		
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(not(@MODCLASS='MEMORY') and (@ORIENTED = 'WEST'))]">
-				<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 	<use  x="0"  
-				      y="0"  
-				      xlink:href="#symbol_{$modInst_}"/> 
-			</xsl:for-each>
-		
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(not(@MODCLASS='MEMORY') and (@ORIENTED = 'EAST'))]">
-				<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 	<use  x="{$BLKD_MOD_W}"  
-				      y="0"  
-				      xlink:href="#symbol_{$modInst_}"/> 
-			</xsl:for-each>
-		
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(not(@MODCLASS='MEMORY') and (@ORIENTED = 'CENTER'))]">	
-				<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 	<use  x="{ceiling($memW_ div 2) - ($BLKD_MOD_W div 2)}"  
-				      y="0"  
-				   	  xlink:href="#symbol_{$modInst_}"/> 
-		    </xsl:for-each>
-			
-		</xsl:when>	
-		</xsl:choose>
-			  
-	</symbol>			  
-	
-</xsl:template>	
-	
-	
-<xsl:template name="Define_StandAlone_MPMC"> 
-	
-<!--	
-	<xsl:param name="drawarea_w"  select="500"/>
-	<xsl:param name="drawarea_h"  select="500"/>
--->	
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE">
-		
-		<xsl:variable name="mpmcInst_" select="@INSTANCE"/>
-		<xsl:variable name="mpmcType_" select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$mpmcInst_]/@MODTYPE"/>
-<!--		
-		<xsl:message>Drawing instance <xsl:value-of select="$mpmcInst_"/></xsl:message>
--->		
-		
-		<xsl:variable name="mpmc_w_"  select="($G_total_drawarea_W - ($BLKD_INNER_GAP * 2))"/>
-		<xsl:variable name="label_y_"  select="ceiling($BLKD_MPMC_MOD_H div 2) - ceiling($BLKD_MOD_LABEL_H div 2)"/>
-		
-		<symbol id="mpmcmodule_{$mpmcInst_}">
-			<rect x="0"
-		          y="0"
-		          width = "{$mpmc_w_}"
-		          height= "{$BLKD_MPMC_MOD_H}"
-			      style="fill:{$COL_MPMC_BG}; stroke:{$COL_BLACK}; stroke-width:2"/>
-			  
-		    <rect x="{$BLKD_MOD_LANE_H}"
-		          y="{$label_y_}"
-			      rx="3"
-			      ry="3"
-		          width= "{$BLKD_MOD_LABEL_W}"
-		          height="{$BLKD_MOD_LABEL_H}"
-			      style="fill:{$COL_WHITE}; stroke:none;"/>
-			
-			<text class="bciptype" 
-				  x="{ceiling(($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_W) div 2)}"
-				  y="{$label_y_ + 8}">
-					<xsl:value-of select="$mpmcType_"/>
-			</text>
-				
-			<text class="bciplabel" 
-				  x="{ceiling(($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_W) div 2)}"
-				  y="{$label_y_ + 16}">
-					<xsl:value-of select="$mpmcInst_"/>
-		   </text>
-			
-			<text class="mpmctitle" 
-				  x="{ceiling($mpmc_w_ div 2)}"
-				  y="{$label_y_ + 16}">MPMC Module Interface</text>
-<!--			
--->	
-	   
-		</symbol>	
-		
-	</xsl:for-each>
-	
-</xsl:template>	
-	
-
-<!-- ======================= END DEF FUNCTIONS ============================ -->
-
-<!-- ======================= UTILITY FUNCTIONS ============================ -->
-
-<xsl:template name="_draw_InterruptSource">
-
-	<xsl:param name="iIntr_X"   select="0"/>
-	<xsl:param name="iIntr_Y"   select="0"/>
-	<xsl:param name="iIntr_PRI" select="0"/>
-	<xsl:param name="iIntr_IDX" select="0"/>
-	<xsl:param name="iIntr_COL" select="$COL_BLKD_INTR_0"/>
-	
-		<rect  
-			x="{$iIntr_X}"
-			y="{$iIntr_Y}"
-			rx="3"
-			ry="3"
-			width= "{$BLKD_INTR_W}" 
-			height="{ceiling($BLKD_INTR_H div 2)}" style="fill:{$iIntr_COL}; stroke:none; stroke-width:1"/> 
-			
-		<line x1="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 
-			  y1="{$iIntr_Y}"
-			  x2="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{$iIntr_Y + ceiling($BLKD_INTR_H div 2)}" 
-			  style="stroke:{$COL_BLACK};stroke-width:1"/>
-			  
-		<xsl:variable name="txt_ofs_">
-			<xsl:if test="($iIntr_PRI &gt; 9)">4.5</xsl:if>
-			<xsl:if test="not($iIntr_PRI &gt; 9)">0</xsl:if>
-		</xsl:variable>	  
-		
-		<text class="intrsymbol" 
-			  x="{$iIntr_X + 2 - $txt_ofs_}"
-			  y="{$iIntr_Y + 8}">
-				<xsl:value-of select="$iIntr_PRI"/>
-		</text>
-			
-		<text class="intrsymbol" 
-			  x="{$iIntr_X + 2 + ceiling($BLKD_INTR_W div 2)}"
-			  y="{$iIntr_Y + 8}">
-				<xsl:value-of select="$iIntr_IDX"/>
-		</text>
-			
-</xsl:template>
-
-<xsl:template name="_draw_InterruptCntrl">
-
-	<xsl:param name="iIntr_X"   select="0"/>
-	<xsl:param name="iIntr_Y"   select="0"/>
-	<xsl:param name="iIntr_IDX" select="0"/>
-	<xsl:param name="iIntr_COL" select="$COL_BLKD_INTR_0"/>
-	
-		<rect  
-			x="{$iIntr_X}"
-			y="{$iIntr_Y}"
-			rx="3"
-			ry="3"
-			width= "{ceiling($BLKD_INTR_W div 2)}" 
-			height="{$BLKD_INTR_H}" style="fill:{$iIntr_COL}; stroke:none; stroke-width:1"/> 
-			
-		<line x1="{$iIntr_X}" 
-			  y1="{$iIntr_Y + ceiling($BLKD_INTR_H div 4)}"
-			  x2="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{$iIntr_Y + ceiling($BLKD_INTR_H div 4)}" 
-			  style="stroke:{$COL_BLACK};stroke-width:2"/>
-			  
-		<text class="intrsymbol" 
-			  x="{$iIntr_X + 2}"
-			  y="{$iIntr_Y + 8 + ceiling($BLKD_INTR_H div 2)}">
-				<xsl:value-of select="$iIntr_IDX"/>
-		</text>
-			
-</xsl:template>
-
-
-<xsl:template name="_draw_InterruptedProc">
-
-	<xsl:param name="iIntr_X"   select="0"/>
-	<xsl:param name="iIntr_Y"   select="0"/>
-	<xsl:param name="iIntr_IDX" select="0"/>
-	<xsl:param name="iIntr_COL" select="$COL_BLKD_INTR_0"/>
-	
-		<rect  
-			x="{$iIntr_X}"
-			y="{$iIntr_Y}"
-			rx="3"
-			ry="3"
-			width= "{ceiling($BLKD_INTR_W div 2)}" 
-			height="{$BLKD_INTR_H}" style="fill:{$iIntr_COL}; stroke:none; stroke-width:1"/> 
-			
-		<line x1="{$iIntr_X}" 
-			  y1="{$iIntr_Y + ceiling($BLKD_INTR_H div 4) - 2}"
-			  x2="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{$iIntr_Y + ceiling($BLKD_INTR_H div 4) - 2}" 
-			  style="stroke:{$COL_BLACK};stroke-width:1"/>
-			  
-		<line x1="{$iIntr_X}" 
-			  y1="{$iIntr_Y + ceiling($BLKD_INTR_H div 4) + 2}"
-			  x2="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{$iIntr_Y + ceiling($BLKD_INTR_H div 4) + 2}" 
-			  style="stroke:{$COL_BLACK};stroke-width:1"/>
-			  
-		<text class="intrsymbol" 
-			  x="{$iIntr_X + 2}"
-			  y="{$iIntr_Y + 8 + ceiling($BLKD_INTR_H div 2)}">
-				<xsl:value-of select="$iIntr_IDX"/>
-		</text>
-			
-</xsl:template>
-
-<xsl:template name="_calc_CStackShapesAbv_Height">
-	<xsl:param name="iCStackIndex"  select="100"/>
-	<xsl:param name="iCSactkMods_Y" select="1000"/>
-	
-<!--	
-	<xsl:message>Stack Index <xsl:value-of select="$cstackIndex"/></xsl:message>
-	
-	<xsl:message>Stack Y <xsl:value-of select="$cstackModY"/></xsl:message>
--->	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@CSTACK_INDEX = $iCStackIndex)])">0</xsl:if>
-	
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@CSTACK_INDEX = $iCStackIndex)]">
-	
-		<xsl:variable name="shapesAbv_Heights_">
-			<CSTACK_MOD HEIGHT="0"/>
-			
-			<!-- Store the heights of all the peripherals above this one heights in a variable -->
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@CSTACK_INDEX = $iCStackIndex) and (@CSTACK_MODS_Y &lt; $iCStackMods_Y))]">
-				
-				<xsl:variable name="shapeHeight_">
-					
-					<xsl:choose>
-						
-						<xsl:when test="@MODCLASS = 'PERIPHERAL'">
-							<xsl:call-template name="_calc_PeriShape_Height">	
-								<xsl:with-param name="iShapeInst" select="MODULE/@INSTANCE"/>
-							</xsl:call-template>	
-						</xsl:when>
-						
-						<xsl:when test="@MODCLASS = 'MEMORY_UNIT'">
-							<xsl:call-template name="_calc_MemoryUnit_Height">	
-								<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
-							</xsl:call-template>	
-						</xsl:when>
-						
-						<xsl:otherwise>0</xsl:otherwise>
-					</xsl:choose>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>Calculated height of cstack shape of type <xsl:value-of select="@MODCLASS"/> as <xsl:value-of select="$shapeHeight_"/></xsl:message>
--->			
-				
-				<CSTACK_MOD HEIGHT="{$shapeHeight_ + $BLKD_BIF_H}"/>
-			</xsl:for-each>
-		</xsl:variable>
-		
-<!--		
-		<xsl:message>Calculated height of cstack as <xsl:value-of select="sum(exsl:node-set($shapesAbv_Heights_)/CSTACK_MOD/@HEIGHT)"/></xsl:message>
--->		
-		
-		<xsl:value-of select="sum(exsl:node-set($shapesAbv_Heights_)/CSTACK_MOD/@HEIGHT)"/>
-	</xsl:if>
-	
-</xsl:template>
-
-
-<xsl:template name="_calc_PeriShape_Height">
-	<xsl:param name="iShapeInst"  select="'_shape_'"/>
-	
-<!--	
-	<xsl:message>Calculating height of <xsl:value-of select="$shapeInst"/></xsl:message>
--->	
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H) and not(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H)">0</xsl:if>
-	
-	<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H)">
-		<xsl:variable name="bifs_h_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H"/>
-		
-		<xsl:value-of select="($BLKD_MOD_LABEL_H + ($BLKD_BIF_H * $bifs_h_) + ($BLKD_MOD_BIF_GAP_V * $bifs_h_) + ($BLKD_MOD_LANE_H * 2))"/>
-	</xsl:if>
-	
-	<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H)">
-		<xsl:variable name="bifs_h_" select="/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H"/>
-		
-		<xsl:value-of select="($BLKD_MOD_LABEL_H + ($BLKD_BIF_H * $bifs_h_) + ($BLKD_MOD_BIF_GAP_V * $bifs_h_) + ($BLKD_MOD_LANE_H * 2))"/>
-	</xsl:if>
-	
-	<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H)">
-		<xsl:variable name="bifs_h_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H"/>
-		
-		<xsl:value-of select="($BLKD_MOD_LABEL_H + ($BLKD_BIF_H * $bifs_h_) + ($BLKD_MOD_BIF_GAP_V * $bifs_h_) + ($BLKD_MOD_LANE_H * 2))"/>
-	</xsl:if>
-	
-</xsl:template>
-	
-<xsl:template name="_calc_Shape_Height">
-	<xsl:param name="iShapeId"  select="_shape_"/>
-	
-<!--	
-	<xsl:message>Calculating height of <xsl:value-of select="$shapeId"/></xsl:message>
--->	
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)])">0</xsl:if>
-	
-	<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE/@BIFS_H)">
-		<xsl:variable name="bifs_h_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE/@BIFS_H"/>
-		
-		<xsl:value-of select="($BLKD_MOD_LABEL_H + ($BIF_H * $bifs_h_) + ($BLKD_MOD_BIF_GAP_V * $bifs_h_) + ($BLKD_MOD_LANE_H * 2))"/>
-	</xsl:if>
-	
-</xsl:template>
-
-
-<xsl:template name="_calc_MemoryUnit_Height">
-	<xsl:param name="iShapeId"  select="1000"/>
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)])">0</xsl:if>
-	
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]">
-	
-		<!-- Store the memory controller heights in a variable -->	
-		<xsl:variable name="memC_heights_">	
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY_CNTLR')])">
-				<MEM_CNTLR INSTANCE="{@INSTANCE}" HEIGHT="0"/>
-			</xsl:if>
-			
-			<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY_CNTLR')])">
-				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY_CNTLR')]">
-					<xsl:variable name="memC_height_">
-						<xsl:call-template name="_calc_PeriShape_Height">	
-							<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-						</xsl:call-template>
-					</xsl:variable>
-					<MEM_CNTLR INSTANCE="{@INSTANCE}" HEIGHT="{$memC_height_}"/>
-				</xsl:for-each>
-			</xsl:if>
-		</xsl:variable>
-		
-		<!-- Store the bram heights in a variable -->	
-		<xsl:variable name="bram_heights_">	
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[not(@MODCLASS = 'MEMORY_CNTLR')])">
-				<BRAM INSTANCE="{@INSTANCE}" HEIGHT="0"/>
-			</xsl:if>
-			<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[not(@MODCLASS = 'MEMORY_CNTLR')]">
-				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[not(@MODCLASS = 'MEMORY_CNTLR')]">
-					<xsl:variable name="bram_height_">
-						<xsl:call-template name="_calc_PeriShape_Height">	
-							<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-						</xsl:call-template>
-					</xsl:variable>
-					<BRAM INSTANCE="{@INSTANCE}" HEIGHT="{$bram_height_}"/>
-				</xsl:for-each>
-			</xsl:if>
-		</xsl:variable>
-		
-		<!-- Select the maximum of them -->
-		<xsl:variable name="max_bram_height_" select="math:max(exsl:node-set($bram_heights_)/BRAM/@HEIGHT)"/>
-		<xsl:variable name="max_memC_height_" select="math:max(exsl:node-set($memC_heights_)/MEM_CNTLR/@HEIGHT)"/>
-		
-		<xsl:value-of select="$max_bram_height_ + $max_memC_height_"/>
-	</xsl:if>
-
-</xsl:template>
-
-
-<xsl:template name="_calc_SbsBucket_Height">
-	<xsl:param name="iBucketId"  select="100"/>
-	
-<!--	
-	<xsl:message>Looking of height of bucket <xsl:value-of select="$bucketId"/></xsl:message>
--->	
-	<xsl:variable name="bkt_gap_" select="$BLKD_BIF_H"/>
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $iBucketId)])">0</xsl:if>
-	
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $iBucketId)]">
-		<xsl:variable name="mods_h_" select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $iBucketId)]/@MODS_H"/>
-		
-		<xsl:value-of select="((($BLKD_MOD_BKTLANE_H * 2) + ((($BLKD_MOD_H + $BLKD_BIFC_H) * $mods_h_) + ($BLKD_MOD_BUCKET_G * ($mods_h_ - 1)))) + $bkt_gap_)"/>
-	</xsl:if>
-</xsl:template>
-	
-<!--
-	===============================================
-	
-		Symbol Naming Functions
-	
-	===============================================
--->		
-	
-	
-<xsl:template name="_gen_Proc_StackName">
-<xsl:param name="iProcInst"  select="'_unknown_'"/>
-symbol_STACK_<xsl:value-of select="$iProcInst"/>
-</xsl:template>
-	
-<xsl:template name="_gen_Proc_GroupName">
-<xsl:param name="iProcInst"  select="'_unknown_'"/>
-symbol_GROUP_<xsl:value-of select="$iProcInst"/>
-</xsl:template>
-	
-	
-<xsl:template name="_gen_Space_Name"><xsl:param name="iStackToEast"    select="'NONE'"/><xsl:param name="iStackToWest"  select="'NONE'"/>symbol_SPACE_WEST_<xsl:value-of select="$iStackToWest"/>_EAST_<xsl:value-of select="$iStackToEast"/></xsl:template>
-<xsl:template name="_gen_Stack_Name"><xsl:param name="iHorizIdx"       select="'_unknown_'"/>symbol_STACK_<xsl:value-of select="$iHorizIdx"/></xsl:template>
-<xsl:template name="_gen_Stack_SymbolName"><xsl:param name="iHorizIdx" select="'_unknown_'"/><xsl:param name="iVertiIdx" select="'_unknown_'"/>symbol_STACK_<xsl:value-of select="$iHorizIdx"/>_SHAPE_<xsl:value-of select="$iVertiIdx"/></xsl:template>
-	
-
-<!-- ======================= END UTILITY FUNCTIONS  ======================= -->
-</xsl:stylesheet>
-
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl
deleted file mode 100644
index 9e35694..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl
+++ /dev/null
@@ -1,390 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:math="http://exslt.org/math"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink"
-           extension-element-prefixes="math">
-           
-<xsl:output method="xml" 
-			version="1.0" 
-			encoding="UTF-8" 
-			indent="yes"
-	        doctype-public="-//W3C//DTD SVG 1.0//EN"
-		    doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-			
-
-<!-- ======================= DEF BLOCK =================================== -->
-<xsl:template name="Define_AllStacks"> 
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST &lt; /EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)]">
-			
-		<xsl:call-template name="Define_Stack">
-			<xsl:with-param name="iStackIdx"  select="@EAST"/>
-		</xsl:call-template>
-		
-	</xsl:for-each>	
-</xsl:template>
-	
-	
-<xsl:template name="Define_Stack"> 
-	<xsl:param name="iStackIdx"  select="100"/>
-	
-	<!-- Define the stack's peripheral shapes-->	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and not(@MODCLASS = 'MEMORY_UNIT'))]"> 
-			
-		<xsl:for-each select="MODULE">
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$modInst_)]/@MODTYPE"/>
-			<xsl:call-template name="Define_Peripheral"> 
-				<xsl:with-param name="iModInst"    select="$modInst_"/>
-				<xsl:with-param name="iModType"    select="$modType_"/>
-				<xsl:with-param name="iShapeId"    select="../@SHAPE_ID"/>
-				<xsl:with-param name="iHorizIdx"   select="../@STACK_HORIZ_INDEX"/>
-				<xsl:with-param name="iVertiIdx"   select="../@SHAPE_VERTI_INDEX"/>
-			</xsl:call-template>		
-		</xsl:for-each>	
-		
-	</xsl:for-each>
-	
-	<!-- Define the stack's memory shapes-->	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@MODCLASS='MEMORY_UNIT'))]">
-		<xsl:call-template name="Define_MemoryUnit"> 
-			<xsl:with-param name="iShapeId"  select="@SHAPE_ID"/>
-		</xsl:call-template>
-	</xsl:for-each>
-	
-	
-	<!-- Define the stack's processors-->	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[@INSTANCE and @BIFS_W and @BIFS_H and (@STACK_HORIZ_INDEX = $iStackIdx)]">	
-		<xsl:call-template name="Define_Processor"/>		
-	</xsl:for-each>	
-		
-	<!-- Make an inventory of all the things in this processor's stack -->
-	<xsl:variable name="pstackW_">
-		<xsl:call-template name="_calc_Stack_Width"> 
-			<xsl:with-param name="iStackIdx"  select="$iStackIdx"/>
-		</xsl:call-template>		
-	</xsl:variable>
-		
-	<xsl:variable name="pstackH_">
-		<xsl:call-template name="_calc_Stack_Height"> 
-			<xsl:with-param name="iStackIdx"  select="$iStackIdx"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name="procW_"    select="$BLKD_MOD_W"/>
-	<xsl:variable name="procX_"    select="(ceiling($pstackW_ div 2) - ceiling($procW_ div 2))"/>
-	
-	
-	<xsl:variable name="sbsGap_"   select="($BLKD_PROC2SBS_GAP + $G_total_SharedBus_H)"/>
-
-	<xsl:variable name="stack_name_">
-		<xsl:call-template name="_gen_Stack_Name"> 
-			<xsl:with-param name="iHorizIdx" select="$iStackIdx"/>
-		</xsl:call-template>		
-	</xsl:variable>	
-	
-<!--	
-		<xsl:message>Horiz index<xsl:value-of select="$stackIdx"/></xsl:message>
-		<xsl:message>Drawing stack <xsl:value-of select="$stack_name_"/></xsl:message>
--->	
-		
-		<!-- Now use all this stuff to draw the stack-->	
-		<symbol id="{$stack_name_}">
-			<rect x="0"
-				  y="0"
-			      rx="6" 
-			      ry="6" 
-		          width = "{$pstackW_}"
-		          height= "{$pstackH_}"
-			      style="fill:{$COL_BG}; stroke:none;"/>
-			
-		
-			<!-- First draw the the processor's peripherals-->	
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-				<xsl:sort select="@STACK_VERTI_INDEX" data-type="number"/>
-				
-				
-				<xsl:variable name="shapeW_"    select="(@MODS_W * $BLKD_MOD_W)"/>
-				<xsl:variable name="shapeX_"    select="(ceiling($pstackW_ div 2) - ceiling($shapeW_ div 2))"/>
-				
-				<xsl:variable name="stack_SymName_">
-					<xsl:call-template name="_gen_Stack_SymbolName"> 
-						<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
-						<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
-					</xsl:call-template>		
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>Drawing stack peripheral <xsl:value-of select="$stack_SymName_"/></xsl:message>
--->				
-				<xsl:variable name="shapeY_">
-					<xsl:call-template name="_calc_Stack_Shape_Y">
-						<xsl:with-param name="iHorizIdx"  select="@STACK_HORIZ_INDEX"/>
-						<xsl:with-param name="iVertiIdx"  select="@SHAPE_VERTI_INDEX"/>
-					</xsl:call-template>
-				</xsl:variable>  
-				
-			 	<use   x="{$shapeX_}"  y="{$shapeY_}"  xlink:href="#{$stack_SymName_}"/> 
-			
-			</xsl:for-each>
-			
-			
-			<!-- Then draw the slave buckets for the shared busses that this processor is master to -->	
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)]">	
-				<xsl:sort select="@SHAPE_VERTI_INDEX" data-type="number"/>
-			
-				<xsl:variable name="bucketW_"   select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
-				<xsl:variable name="bucketX_"   select="(ceiling($pstackW_ div 2) - ceiling($bucketW_ div 2))"/>
-				
-				<xsl:variable name="bucketY_">
-					<xsl:call-template name="_calc_Stack_Shape_Y">
-						<xsl:with-param name="iHorizIdx"  select="@STACK_HORIZ_INDEX"/>
-						<xsl:with-param name="iVertiIdx"  select="@SHAPE_VERTI_INDEX"/>
-					</xsl:call-template>
-				</xsl:variable>  
-				
-<!--				
-				<xsl:message>SBS Bucket Y <xsl:value-of select="$bucketY_"/></xsl:message>
--->				
-				
-				 <use  x="{$bucketX_}"  y="{$bucketY_}"  xlink:href="#sbsbucket_{@BUSNAME}"/> 
-				 
-				 <text class="ipclass"
-					   x="{$bucketX_}" 
-					   y="{$bucketY_ - 4}">SLAVES OF <xsl:value-of select="@BUSNAME"/></text>	
-			</xsl:for-each>
-			
-			<!-- Then draw the the processor itself -->	
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-				<xsl:sort select="@SHAPE_VERTI_INDEX" data-type="number"/>
-				
-				<xsl:variable name="procY_">
-					<xsl:call-template name="_calc_Stack_Shape_Y">
-						<xsl:with-param name="iHorizIdx"  select="@STACK_HORIZ_INDEX"/>
-						<xsl:with-param name="iVertiIdx"  select="@SHAPE_VERTI_INDEX"/>
-					</xsl:call-template>
-				</xsl:variable>  
-				
-				<xsl:variable name="stack_SymName_">
-					<xsl:call-template name="_gen_Stack_SymbolName"> 
-						<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
-						<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
-					</xsl:call-template>		
-				</xsl:variable>
-				
-			 	<use   x="{$procX_}"  y="{$procY_}"  xlink:href="#{$stack_SymName_}"/> 
-				
-				<xsl:if test = "not(@IS_LIKEPROC)">
-					<text class="ipclass"
-						x="{$procX_}" 
-						y="{$procY_ - 4}">PROCESSOR</text>		
-				</xsl:if>			
-				  
-				<xsl:if test = "@IS_LIKEPROC = 'TRUE'">
-					<text class="ipclass"
-						x="{$procX_}" 
-						y="{$procY_ - 4}">USER MODULE</text>		
-				</xsl:if>			
-			
-			</xsl:for-each>
-		</symbol>
-</xsl:template>	
-
-
-<xsl:template name="Define_Processor">
-	<xsl:param name="iProcInst"  select="@INSTANCE"/>
-	<xsl:param name="iModType"   select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$iProcInst]/@MODTYPE"/>
-<!--	
-	<xsl:param name="procType"  select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$procInst]/@PROCTYPE"/>
--->	
-	
-	<xsl:variable name="label_y_">
-		<xsl:value-of select="$BLKD_MOD_LANE_H"/>	
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>The proctype is <xsl:value-of select="$procType"/></xsl:message>	
--->
-	
-	<xsl:variable name="procH_" select="(($BLKD_MOD_LANE_H * 2) + (($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIFS_H) + ($BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>	
-	<xsl:variable name="procW_" select="(($BLKD_MOD_LANE_W * 2) + (($BLKD_BIF_W                        * @BIFS_W) + $BLKD_MOD_BIF_GAP_H))"/>	
-	
-	<xsl:variable name="procColor_">
-		<xsl:choose>
-			<xsl:when test="contains($iModType,'microblaze')"><xsl:value-of select="$COL_PROC_BG_MB"/></xsl:when>
-			<xsl:when test="contains($iModType,'ppc')"><xsl:value-of select="$COL_PROC_BG_PP"/></xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="$COL_PROC_BG_USR"/>	
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>The proc color is <xsl:value-of select="$procColor"/></xsl:message>	
--->	
-	
-
-	<xsl:variable name="procName_">
-		<xsl:call-template name="_gen_Stack_SymbolName"> 
-			<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
-			<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
-		</xsl:call-template>		
-	</xsl:variable>	
-	
-<!--	
-	<xsl:message>The proc name is <xsl:value-of select="$procName_"/></xsl:message>	
--->	
-	
-    <symbol id="{$procName_}">
-
-		<rect x="0"
-		      y="0"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$procW_}"
-		      height= "{$procH_}"
-			  style="fill:{$procColor_}; stroke:{$COL_WHITE}; stroke-width:2"/>		
-			  
-			  
-		<rect x="{ceiling($procW_ div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$BLKD_MOD_LANE_H}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_MOD_LABEL_H}"
-			  style="fill:{$COL_WHITE}; stroke:none;"/>		
-			  
-		<text class="bciptype" 
-			  x="{ceiling($procW_ div 2)}"
-			  y="{$BLKD_MOD_LANE_H + 8}">
-				<xsl:value-of select="$iModType"/>
-		</text>
-				
-		<text class="bciplabel" 
-			  x="{ceiling($procW_ div 2)}"
-			  y="{$BLKD_MOD_LANE_H + 16}">
-				<xsl:value-of select="$iProcInst"/>
-	   </text>
-	   
-	   
-	  	<xsl:if test="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$iProcInst]/@GROUP">
-	  	
-		<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$BLKD_MOD_LANE_H + $BIF_H  + ceiling($BLKD_BIF_H div 3) - 2}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_BIF_H}"
-			  style="fill:{$COL_IORING_LT}; stroke:none;"/>		
-			  
-	
-	   	   <text class="ioplblgrp"  x="{ceiling($BLKD_MOD_W div 2)}" y="{$BLKD_MOD_LANE_H + $BIF_H + ceiling($BIF_H div 3) + 12}">
-			   <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE = $iProcInst]/@GROUP"/>
-	   		</text>
-	   
-	  	</xsl:if> 
-	   
-	   
-		<xsl:for-each select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/BUSINTERFACE[(@BIF_X and @BIF_Y)]">
-			
-			<xsl:variable name="bif_busstd_">
-				<xsl:choose>
-					<xsl:when test="@BUSSTD">
-						<xsl:value-of select="@BUSSTD"/>	
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="'TRS'"/>	
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="bif_buscol_">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="$bif_busstd_"/>
-				</xsl:call-template>
-			</xsl:variable>
-		
-			
-			<xsl:variable name="bif_name_">
-				<xsl:choose>
-					<xsl:when test="string-length(@NAME) &lt;= 5">
-						<xsl:value-of select="@NAME"/>	
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="substring(@NAME,0,5)"/>	
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="bif_x_"  select="(( $BLKD_BIF_W * @BIF_X) + ($BLKD_MOD_BIF_GAP_H * @BIF_X) + ($BLKD_MOD_LANE_W * 1))"/>
-			<xsl:variable name="bif_y_"  select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-			
-			<xsl:variable name="horz_line_y_" select="($bif_y_ + ceiling($BLKD_BIFC_H div 2))"/>
-			
-			<xsl:variable name="horz_line_x1_">
-				<xsl:choose>
-					<xsl:when test="@BIF_X = '0'">0</xsl:when>
-					<xsl:otherwise><xsl:value-of select="($BLKD_MOD_W - $BLKD_MOD_LANE_W)"/></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="horz_line_x2_">
-				<xsl:choose>
-					<xsl:when test="@BIF_X = '0'"><xsl:value-of select="$BLKD_MOD_LANE_W"/></xsl:when>
-					<xsl:otherwise><xsl:value-of select="$BLKD_MOD_W + 1"/></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			
-			<line x1="{$horz_line_x1_}" 
-			  	  y1="{$horz_line_y_ - 2}"
-			      x2="{$horz_line_x2_}" 
-			      y2="{$horz_line_y_ - 2}" 
-			      style="stroke:{$bif_buscol_};stroke-width:1"/>
-			  
-			<use  x="{$bif_x_}"   y="{$bif_y_}"  xlink:href="#{$bif_busstd_}_Bif"/>
-				
-			<text class="biflabel" 
-				  x="{$bif_x_ + ceiling($BIF_W div 2)}"
-				  y="{$bif_y_ + ceiling($BIF_H div 2) + 3}">
-					<xsl:value-of select="$bif_name_"/>
-			</text>
-			
-		</xsl:for-each>
-		
-		<xsl:variable name="interrupt_cntlr_">
-			<xsl:choose>
-				<xsl:when test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iProcInst)]/@INTERRUPT_CNTLR">
-					<xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iProcInst)]/@INTERRUPT_CNTLR"/>
-				</xsl:when>
-				<xsl:otherwise>"_no_interrupt_cntlr_"</xsl:otherwise>
-			</xsl:choose>
-		</xsl:variable>
-			
-<!--		
-		<xsl:message> The intc index should <xsl:value-of select="$interrupt_cntlr_"/></xsl:message>
-		<xsl:message> The intc index is <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $interrupt_cntlr_)]/@INTCINDEX"/></xsl:message>
--->		
-		<xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $interrupt_cntlr_)]/@INTCINDEX">
-			
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="iIntcIdx" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $interrupt_cntlr_)]/@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptedProc">
-				<xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - ceiling($BLKD_INTR_W div 2))"/>
-				<xsl:with-param name="iIntr_Y"   select="3"/>
-				<xsl:with-param name="iIntr_COL" select="$intr_col_"/>
-				<xsl:with-param name="iIntr_IDX" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $interrupt_cntlr_)]/@INTCINDEX"/>
-			</xsl:call-template>	
-		</xsl:if>
-		
-	</symbol>			  
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css
deleted file mode 100644
index c1b40cf..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css
+++ /dev/null
@@ -1,119 +0,0 @@
-	text.busintlabel {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  italic;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-	
-	text.buslabel {
-		fill:        #CC3333;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-			
-	text.iplabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  italic;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-		
-	text.iptype {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-		
-	text.portlabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-		
-	text.mmMHeader {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mmSHeader {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.proclabel {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   14pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.opblabel {
-		fill:        #339900;
-		stroke:      none;
-		font-size:   11pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.lmblabel {
-		fill:        #9999FF;
-		stroke:      none;
-		font-size:   11pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.dbglabel {
-		fill:        #555555;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-
-	text.iopnumb {
-		fill:        #555555;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl
deleted file mode 100644
index f914153..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl
+++ /dev/null
@@ -1,1211 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-         
-<xsl:output method="html"/>
-
-<xsl:include href="MdtXdsGen_HTMLIPSection.xsl"/>
-<xsl:include href="MdtXdsGen_HTMLMemoryMap.xsl"/>
-<xsl:include href="MdtXdsGen_HTMLTOCTree.xsl"/>
-
-<xsl:param name="DS_TYPE"      select="'NOFRAMES'"/>			
-<xsl:param name="DS_PART"      select="'TOC_TREE'"/>			
-
-<xsl:param name="DS_WIDTH"     select="850"/>			
-<xsl:param name="DS_TOC_WIDTH" select="200"/>			
-
-<xsl:param name="DS_FRAME_TOC"  select="'DS_TOC'"/>			
-<xsl:param name="DS_FRAME_SELF" select="'_self'"/>			
-<xsl:param name="DS_FRAME_MAIN" select="'DS_FMAIN'"/>			
-
-<xsl:param name="DS_HTML_BLKD"    select="'ds_Blkd.html'"/>			
-
-<xsl:param name="DS_HTML_MAIN"    select="'ds_Main.html'"/>
-<xsl:param name="DS_HTML_TOC"     select="'ds_TOC.html'"/>
-<xsl:param name="DS_HTML_TOCTREE" select="'ds_TOCTree.html'"/>
-
-<xsl:param name="DS_BLKD_NAME"   select="'system_blkd.jpg'"/>
-<xsl:param name="DS_BLKD_TYPE"   select="'svg'"/>
-<xsl:param name="DS_BLKD_WIDTH"  select="800"/>
-<xsl:param name="DS_BLKD_HEIGHT" select="600"/>
-
-<xsl:param name="DS_COL_OPB"     select="'#339900'"/>
-
-<xsl:param name="DS_COL_INFO"    select="'#2233FF'"/>
-<xsl:param name="DS_COL_ASH"     select="'#DEDEDE'"/>
-<xsl:param name="DS_COL_ASH1"    select="'#F0F0F8'"/>
-<xsl:param name="DS_COL_GREY"    select="'#BBBBBB'"/>
-<xsl:param name="DS_COL_LGRY"    select="'#F1F1F1'"/>
-<xsl:param name="DS_COL_XPRP"    select="'#810017'"/>
-<xsl:param name="DS_COL_RED"     select="'#FF1010'"/>
-<xsl:param name="DS_COL_GREEN"   select="'#33CC33'"/>
-<xsl:param name="DS_COL_BLACK"   select="'#000000'"/>
-<xsl:param name="DS_COL_WHITE"   select="'#FFFFFF'"/>
-
-<!--
-<xsl:param name="DS_COL_ATTR_RD"   select="'#FF5555'"/>
-<xsl:param name="DS_COL_ATTR_GREN" select="'#55FF55'"/>
-<xsl:param name="DS_COL_ATTR_BLE"  select="'#5555FF'"/>
--->
-
-<xsl:param name="DS_COL_ATTR_BUF"   select="'#FF5555'"/>
-<xsl:param name="DS_COL_ATTR_CLK"   select="'#55FF55'"/>
-<xsl:param name="DS_COL_ATTR_INT"   select="'#5555FF'"/>
-<xsl:param name="DS_COL_ATTR_RST"   select="'#FFCC00'"/>
-
-
-<xsl:param name="DS_COL_MODUSR" select="'#FFFFAA'"/>
-<xsl:param name="DS_COL_MODSYS" select="'#AAAAFF'"/>
-<xsl:param name="DS_COL_MODSYSNW" select="'#000099'"/>
-
-<!-- ======================= MAIN DATASHEET SECTION  =============================== -->
-<xsl:template match="EDKSYSTEM">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:call-template name="Write_Main"/>	
-	</xsl:if>
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:call-template name="Write_Frames"/>	
-	</xsl:if>
-</xsl:template>	
-
-<xsl:template name="Write_Frames">
-<!--	
-	<xsl:if test="$DS_PART='TOC'">
-		<xsl:call-template name="Write_TOC"/>	
-	</xsl:if>
--->	
-	
-	<xsl:if test="$DS_PART='TOC'">
-		<xsl:call-template name="Write_TOCTree"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_PART='INDEX'">
-		<xsl:call-template name="Write_Index"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_PART='MAIN'">
-		<xsl:call-template name="Write_Main"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_PART='BLKD'">
-		<xsl:call-template name="Write_BLKD"/>	
-	</xsl:if>
-	
-</xsl:template>	
-
-<xsl:template name="Write_TOC">
-<HTML>
-<HEAD>
-	<TITLE>Table of Contents</TITLE>
-	<BASE target="{$DS_FRAME_MAIN}"/>
-</HEAD>
-
-	<!--Layout Table of contents   -->
-	<BODY class="main_body">
-		<xsl:call-template name="Layout_TOC"/>
-	</BODY>		
-	
-</HTML>
-</xsl:template>
-
-<xsl:template name="Write_Index">
-<HTML>
-<HEAD><TITLE>EDK Project Report</TITLE></HEAD>
-	<FRAMESET COLS="20%,80%" BORDER="0" FRAMESPACING="0">
-		<FRAME SRC="{$DS_HTML_TOC}"
-		   MARGINWIDTH="0" 
-		   MARINHEIGHT="0" 
-		   FRAMEBORDER="NO"
-		   BORDER="NO"
-		   NAME="{$DS_FRAME_TOC}"
-		   SCROLLING="YES"/>
-		<FRAME SRC="{$DS_HTML_MAIN}"
-		   MARGINWIDTH="0" 
-		   MARINHEIGHT="0"
-		   FRAMEBORDER="NO"
-		   BORDER="NO"
-		   NAME="{$DS_FRAME_MAIN}" 
-		   SCROLLING="YES"/>
-	</FRAMESET>
-</HTML>
-</xsl:template>	
-
-<xsl:template name="Write_BLKD">
-<HTML>
-	
-<HEAD><TITLE>Block Diagram</TITLE></HEAD>
-	
-<!--
-	<xsl:message> Embedded image name <xsl:value-of select="$DS_BLKD_NAME"/></xsl:message>
-	<xsl:message> Embedded image name <xsl:value-of select="$DS_BLKD_NAME"/></xsl:message>
-	<xsl:message> Embedded image type <xsl:value-of select="$DS_BLKD_TYPE"/></xsl:message>
-	<xsl:message> Embedded image width <xsl:value-of select="$DS_BLKD_WIDTH"/></xsl:message>
-	<xsl:message> Embedded image height <xsl:value-of select="$DS_BLKD_HEIGHT"/></xsl:message>
--->	
-	
-	<BODY class="main_body">
-		
-	<xsl:if test="$DS_BLKD_TYPE = 'svg'">
-		<EMBED src="{$DS_BLKD_NAME}" width="{$DS_BLKD_WIDTH}" height="{$DS_BLKD_HEIGHT}" type="image/svg+xml"/>
-	</xsl:if>
-	
-	<xsl:if test="not($DS_BLKD_TYPE = 'svg')">
-		<IMG SRC="{$DS_BLKD_NAME}" alt="BlockDiagram" width="{$DS_BLKD_WIDTH}" height="{$DS_BLKD_HEIGHT}" border="0" vspace="0" hspace="0"/>
-	</xsl:if>
-		<BR></BR>
-		<BR></BR>
-		<xsl:call-template name="Layout_ExternalPorts"/>
-		<BR></BR>
-	</BODY>		
-</HTML>
-</xsl:template>
-
-	
-<xsl:template name="Write_Main">
-<html>
-	<!--Layout head -->
-	<head>
-		<title>EDK PROJECT REPORT</title>
-		
-		<!--specify a css for the file -->
-	    <meta http-equiv="PRAGMA" content="NO-CACHE"/>
-	    <meta http-equiv="content-Type" content="text/html; charset=iso-8859-1"/>
-	    
-	</head>	
-	
-	<body bgcolor="#FFFFFF">
-	
-		<!--Layout Table of contents   -->
-		<xsl:if test="not($DS_TYPE='FRAMES')">
-			<xsl:call-template name="Layout_TOC"/>
-		</xsl:if>	
-		
-		<TABLE BGCOLOR="{$DS_COL_WHITE}" WIDTH="{$DS_WIDTH}" COLS="1" cellspacing="0" cellpadding="3" border="0">
-		
-<!--  ==========================Overview Section ============== -->
-			<TR></TR>
-			<TR></TR>
-			<TR></TR>
-			<xsl:if test="$DS_TYPE='FRAMES'">
-				<TD COLSPAN="1" ALIGN="LEFT">
-					<A HREF="ds_MainNF.html" target="_top" style="text-decoration:none"><SPAN style="color:{$DS_COL_GREEN}; font: normal 14px Verdana Arial,Helvetica,sans-serif">Printable Version</SPAN></A>
-				</TD>
-				<TR></TR>
-			</xsl:if>
-			<TD COLSPAN="1" WIDTH="100%">
-				<A name="_Overview"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Overview'"/>
-				</xsl:call-template>	
-				<BR></BR>
-				<BR></BR>
-				<xsl:call-template name="Layout_Overview"/>
-			</TD>
-			
-<!--  ==========================Block Diagram section ============== -->
-<!--
-	<xsl:message> Embedded image name <xsl:value-of select="$DS_BLKD_NAME"/></xsl:message>
--->	
-			<TR></TR>
-			<TD COLSPAN="1">
-				<A name="_BlockDiagram"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Block Diagram'"/>
-				</xsl:call-template>
-				<BR></BR>
-				<BR></BR>
-				<IMG SRC="imgs/{$DS_BLKD_NAME}" alt="BlockDiagram" border="0" vspace="0" hspace="0"/>
-			</TD>
-			
-<!--			
--->			
-
-<!--  ========================== External Ports ======================= -->
-
-			<TR></TR>
-			<TD COLSPAN="1" WIDTH="100%">
-				<A name="_ExternalPorts"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'External Ports'"/>
-				</xsl:call-template>
-				<BR></BR>
-				<BR></BR>
-				<xsl:call-template name="Layout_ExternalPorts"/>
-			</TD>
-			
-<!--  ========================== Memory Map Section ======================= -->
-<!---
-			<xsl:if test="MODULES/MODULE[@MODCLASS='PROCESSOR']/MEMORYMAP">
-				<TR></TR>
-				<TD COLSPAN="1">
-					<A name="_MemoryMap"/>
-					<xsl:call-template name="Layout_NavigateHeader">
-						<xsl:with-param name="header_name" select="'MEMORY MAP'"/>
-					</xsl:call-template>
-					<xsl:for-each select="MODULES/MODULE[@MODCLASS='PROCESSOR']">
-						<xsl:sort select="@INSTANCE"/>
-						<xsl:call-template name="Layout_MemoryMap"/>
-					</xsl:for-each>
-				</TD>
-			</xsl:if>
--->		
-			
-<!--  ========================== Processor Information Section ================== -->
-			<TR></TR>
-			<TD COLSPAN="1" WIDTH="100%">
-				<A name="_Processor"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-						<xsl:with-param name="header_name" select="'Processors'"/>
-				</xsl:call-template>
-				<BR></BR>
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[((@MODCLASS='PROCESSOR') and (contains(@MODTYPE,'microblaze')))]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-					
-					<xsl:for-each select="MODULES/MODULE[((@MODCLASS='PROCESSOR') and (contains(@MODTYPE,'ppc')))]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>
-					
-<!--						
-			<TR></TR>
-			<xsl:if test="MODULES/MODULE[@MODCLASS='PROCESSOR_DEBUG']">
-				<A name="_Debug"/>
-						<xsl:call-template name="Layout_NavigateHeader">
-							<xsl:with-param name="header_name" select="'Debuggers'"/>
-						</xsl:call-template>
-						<BR></BR>
-						
-						<xsl:for-each select="MODULES/MODULE[@MODCLASS='PROCESSOR_DEBUG']">
-						<xsl:sort select="@INSTANCE"/>
-							<TR/>
-							<TD COLSPAN="1" align="left">
-								<xsl:call-template name="Layout_IPSection"/>
-							</TD>
-						</xsl:for-each>
-					</xsl:if>
--->					
-					
-<!--						
-					<xsl:if test="MODULES/MODULE[@MODCLASS='INTERRUPT_CONTROLLER']">
-					<A name="_Intc"/>
-					<xsl:call-template name="Layout_NavigateHeader">
-						<xsl:with-param name="header_name" select="'Interrupt Controllers'"/>
-					</xsl:call-template>
-					<BR></BR>
-						<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-							<xsl:for-each select="MODULES/MODULE[@MODCLASS='INTERRUPT_CONTROLLER']">
-							<xsl:sort select="@INSTANCE"/>
-								<TR/>
-								<TD COLSPAN="1" align="left">
-								<xsl:call-template name="Layout_IPSection"/>
-								</TD>
-							</xsl:for-each>
-						</TABLE>
-						
-					</xsl:if>
-				</TABLE>
-			</TD>
-			
-						<xsl:for-each select="MODULES/MODULE[@MODCLASS='INTERRUPT_CONTROLLER']">
-						<xsl:sort select="@INSTANCE"/>
-							<TR/>
-							<TD COLSPAN="1" align="left">
-								<xsl:call-template name="Layout_IPSection"/>
-							</TD>
-						</xsl:for-each>
--->				
-
-<!--  ========================== Debugger Section ================== -->
-			<xsl:if test="MODULES/MODULE[(@MODCLASS='DEBUG')]">
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<A name="_Debug"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Debuggers'"/>
-				</xsl:call-template>	
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='DEBUG')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>
-		</xsl:if>	
-
-<!--  ========================== Interrupt Controllers Section ================== -->
-		<xsl:if test="MODULES/MODULE[(@MODCLASS='INTERRUPT_CNTLR')]">
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<A name="_Intc"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Interrupt Controllers'"/>
-				</xsl:call-template>	
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='INTERRUPT_CNTLR')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>
-		</xsl:if>	
-				
-
-<!--  ========================== Bus Information Section ================== -->
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<A name="_BusModules"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Busses'"/>
-				</xsl:call-template>	
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[((@MODCLASS='BUS') or (@MODCLASS='BUS_ARBITER'))]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>
-				
-<!--  ========================== Bridge Information Section ================== -->
-			<xsl:if test="MODULES/MODULE[(@MODCLASS='BUS_BRIDGE')]">
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<BR></BR>
-				<A name="_BridgeModules"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Bus Bridges'"/>
-				</xsl:call-template>	
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='BUS_BRIDGE')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			
-			</TD>
-			</xsl:if>					
-			
-<!--  ========================== Memory Information Section ============== -->
-			<xsl:if test="MODULES/MODULE[(@MODCLASS='MEMORY')]">
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<A name="_MemoryModules"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Memory'"/>
-				</xsl:call-template>	
-				
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='MEMORY')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>
-			</xsl:if>
-<!--  ========================== Memory Controller Information Section ============== -->
-			<xsl:if test="MODULES/MODULE[(@MODCLASS='MEMORY_CNTLR')]">
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<A name="_MemCntlrModules"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Memory Controllers'"/>
-				</xsl:call-template>	
-				
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='MEMORY_CNTLR')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>
-		</xsl:if>	
-			
-<!--  ========================== Peripheral Information Section ============== -->
-		<xsl:if test="MODULES/MODULE[(@MODCLASS='PERIPHERAL')]">
-			<TR></TR>		
-			<TD COLSPAN="1" align="left">
-				<A name="_Peripherals"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Peripherals'"/>
-				</xsl:call-template>	
-				<TABLE align="left" COLS="1" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='PERIPHERAL')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TD ROWSPAN="2"/><TR/>
-						<TD ROWSPAN="2"/><TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>	
-		</xsl:if>	
-			
-<!--  ========================== IP Information Section ====================== -->
-		<xsl:if test="MODULES/MODULE[(@MODCLASS='IP')]">
-			<TR></TR>		
-			<TD COLSPAN="1" align="left">
-				<A name="_IPModules"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'IP'"/>
-				</xsl:call-template>	
-				<BR></BR>
-				<TABLE align="left" COLS="1" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='IP')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TD ROWSPAN="2"/><TR/>
-						<TD ROWSPAN="2"/><TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>	
-		</xsl:if>
-			
-		<!--Timing Information section -->
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<A name="_TimingInfo"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Timing Information'"/>
-				</xsl:call-template>	
-				<BR></BR>
-				<BR></BR>
-				<xsl:call-template name="Layout_TimingInfo"/>
-			</TD>
-			<TR></TR>
-			<TD COLSPAN="1" align="left">
-				<BR></BR>
-				<BR></BR>
-				<TABLE BGCOLOR="{$DS_COL_WHITE}" WIDTH="{$DS_WIDTH}" COLS="3" cellspacing="0" cellpadding="0" border="0">
-					<TD COLSPAN="3" width="100%" align="middle" BGCOLOR="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 5px Verdana,Arial,Helvetica,sans-serif">line</SPAN></TD>
-					<TR></TR>
-					<TD COLSPAN="1" width="25%" align="left">
-						<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@TIMESTAMP"/></SPAN>
-					</TD>
-					<TD COLSPAN="2" width="75%" align="middle">
-						<A HREF="http://www.xilinx.com" style="text-decoration:none"><SPAN style="color:{$DS_COL_INFO}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">www.xilinx.com</SPAN></A>
-						<BR></BR>
-						<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">1-800-255-7778</SPAN>
-					</TD>
-				</TABLE>
-			</TD>
-			
-			
-		</TABLE>		
-</body>
-</html>
-
-</xsl:template>
-
-<!-- ======================= LAYOUT TABLE OF CONTENTS ====================================== -->
-<xsl:template name="Layout_TOC">
-	
-<xsl:variable name="toc_col_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="$DS_COL_LGRY"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_COL_WHITE"/>	
-	</xsl:if>
-</xsl:variable>
-
-<xsl:variable name="toc_width_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="$DS_WIDTH"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_TOC_WIDTH"/>	
-	</xsl:if>
-</xsl:variable>
-
-<xsl:variable name="toc_target_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="$DS_FRAME_SELF"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_FRAME_MAIN"/>	
-	</xsl:if>
-</xsl:variable>
-
-<xsl:variable name="trg_html_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="''"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_HTML_MAIN"/>	
-	</xsl:if>
-</xsl:variable>
-	
-	
-<A name="_TOC"/>
-<TABLE BGCOLOR="{$toc_col_}" WIDTH="{$toc_width_}" COLS="2" cellspacing="0" cellpadding="3" border="0">
-
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<TH COLSPAN="2" width="100%" align="middle"><SPAN style="color:{$DS_COL_XPRP}; font: bold 20px Arial,Helvetica,sans-serif">TABLE OF CONTENTS</SPAN></TH>
-	</xsl:if>
-	
-	<TR></TR>
-	<TD COLSPAN="1" width="40%" align="left">
-		<BR></BR>
-		<A HREF="{$trg_html_}#_Overview" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Overview</SPAN></A>
-		
-		<BR></BR>
-		<A HREF="{$trg_html_}#_BlockDiagram" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Block Diagram</SPAN></A>
-		
-		<BR></BR>
-		<A HREF="{$trg_html_}#_ExternalPorts" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">External Ports</SPAN></A>
-		
-<!--		
-		<BR></BR>
-		<xsl:if test="MODULES/MODULE[@MODCLASS='PROCESSOR']/MEMORYMAP">
-			<A HREF="{$trg_html_}#_MemoryMap" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Memory Map</SPAN></A>
-		</xsl:if>
--->		
-		
-		<BR></BR>
-		<xsl:variable name="proc_CNT" select="count(MODULES/MODULE[@MODCLASS = 'PROCESSOR'])"/>
-		<xsl:if test="$proc_CNT &gt; 1">
-			<A HREF="{$trg_html_}#_Processor" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Processors</SPAN></A>
-		</xsl:if>	
-		<xsl:if test="not($proc_CNT &gt; 1)">
-			<A HREF="{$trg_html_}#_Processor" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Processor</SPAN></A>
-		</xsl:if>	
-		
-		<xsl:for-each select="MODULES/MODULE[(@MODCLASS='PROCESSOR')]">
-			<xsl:sort select="@INSTANCE"/>
-			<BR></BR>
-			<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			<xsl:if test="MEMORYMAP/MEMRANGE[(@INSTANCE)]">
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}_MemoryMap" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;memory map</SPAN></A>
-			</xsl:if>
-		</xsl:for-each>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='PROCESSOR_DEBUG']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_Debug" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana Arial,Helvetica,sans-serif">Debuggers</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='PROCESSOR_DEBUG']">
-				<xsl:sort select="@INSTANCE"/>
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='INTERRUPT_CONTROLLER']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_Intc" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana Arial,Helvetica,sans-serif">Interrupt Controllers</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='INTERRUPT_CONTROLLER']">
-				<xsl:sort select="@INSTANCE"/>
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='BUS' or @MODCLASS='BUS_ARBITER']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_BusModules" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Busses</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='BUS' or @MODCLASS='BUS_ARBITER']">
-				<xsl:sort select="@INSTANCE"/>
-	 			<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='BUS_BRIDGE']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_BridgeModules" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Bridges</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='BUS_BRIDGE']">
-				<xsl:sort select="@INSTANCE"/>
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='MEMORY']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_MemoryModules" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Memory</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='MEMORY']">
-				<xsl:sort select="@INSTANCE"/>
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>		
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='MEMORY_CONTROLLER']">
-				<BR></BR>	
-				<A HREF="{$trg_html_}#_MemCntlrModules" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Memory Controllers</SPAN></A>
-				<xsl:for-each select="MODULES/MODULE[@MODCLASS='MEMORY_CONTROLLER']">
-					<xsl:sort select="@INSTANCE"/>
-					<BR></BR>
-					<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-				</xsl:for-each>
-		</xsl:if>		
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='PERIPHERAL']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_Peripherals" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Peripherals</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='PERIPHERAL']">
-				<xsl:sort select="@INSTANCE"/>
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Courier Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>		
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='IP']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_IPModules" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">IP</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='IP']">
-				<xsl:sort select="@INSTANCE"/>
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Courier Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>			
-		
-		<BR></BR>
-		<A HREF="{$trg_html_}#_TimingInfo" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Timing Information</SPAN></A>
-	</TD>
-	
-</TABLE>
-</xsl:template>
-<!-- ======================= END LAYOUT TABLE OF CONTENT =================================== -->
-
-<!-- ==============================  LAYOUT SNAPSHOT  ====================================== -->
-<xsl:template name="Layout_Overview">
-	
-<xsl:variable name="cnt_ip_"      select="count(MODULES/MODULE)"/>
-<xsl:variable name="cnt_proc_"    select="count(MODULES/MODULE[@MODCLASS = 'PROCESSOR'])"/>
-<xsl:variable name="cnt_busses_"  select="count(MODULES/MODULE[@MODCLASS = 'BUS'])"/>
-<TABLE width="{$DS_WIDTH}" valign="top" align="left" border="0" cellpadding="0" cellspacing="1" COLS="2" BGCOLOR="{$DS_COL_BLACK}"> 
-
-	<TD COLSPAN="2" ALIGN="middle" BGCOLOR="{$DS_COL_XPRP}">
-		<SPAN style="color:{$DS_COL_WHITE}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Overview</SPAN>
-	</TD>
-	<TR/>
-	
-	<xsl:if test="@TIMESTAMP">
-		<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">Generated on</SPAN>
-		</TD>
-		<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@TIMESTAMP"/></SPAN>
-		</TD>
-		<TR></TR>
-	</xsl:if>	
-	
-	<xsl:if test="@PROJECTSRC">
-		<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">Source</SPAN>
-		</TD>
-		<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">
-<!--				
-				<A HREF="{@PROJECTSRC}" style="text-decoration:none; color:{$DS_COL_XPRP}"><xsl:value-of select="@PROJECTSRC"/></A>
--->				
-				<xsl:value-of select="@PROJECTSRC"/>
-			</SPAN>
-		</TD>
-		<TR></TR>
-	</xsl:if>	
-
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">EDK Version</SPAN>
-	</TD>
-	
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-		<xsl:if test="@EDKVERSION">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@EDKVERSION"/></SPAN>
-		</xsl:if>
-		<xsl:if test="not(@EDKVERSION)">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">NA</SPAN>
-		</xsl:if>
-	</TD>
-	<TR/>
-
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">FPGA Family</SPAN>
-	</TD>
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-		<xsl:if test="@ARCH">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@ARCH"/></SPAN>
-		</xsl:if>
-		<xsl:if test="not(@ARCH)">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 10px Verdana,Arial,Helvetica,sans-serif">NA</SPAN>
-		</xsl:if>
-	</TD>
-	<TR/>
-
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">Device</SPAN>
-	</TD>
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-		<xsl:if test="@PART">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@PART"/></SPAN>
-		</xsl:if>
-		<xsl:if test="not(@PART)">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">-</SPAN>
-		</xsl:if>
-	</TD>
-	<TR/>
-	
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-		<SPAN style="color:{$DS_COL_BLACK}; font: Normal 12px Verdana,Arial,Helvetica,sans-serif"># IP Instantiated </SPAN>
-	</TD>
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$cnt_ip_"/></SPAN>
-	</TD>
-	<TR/>
-	
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"># Processors </SPAN>
-	</TD>
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$cnt_proc_"/></SPAN>
-	</TD>
-	<TR/>
-	
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"># Busses </SPAN>
-	</TD>
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$cnt_busses_"/></SPAN>
-	</TD>
-	<TR/>
-	
-	
-</TABLE>
-
-</xsl:template>
-
-<!-- ==============================  END LAYOUT SNAPSHOT  =================================== -->
-
-<!-- ==============================  LAYOUT INTRODUCTION  =================================== -->
-<xsl:template name="Layout_Introduction">
-</xsl:template>
-<!-- ==============================  END INTRODUCTION    ==================================== -->
-
-<!-- ==============================  External Ports      ==================================== -->
-<xsl:template name="Layout_ExternalPorts">
-	
-	<xsl:variable name="gpin_CNT_"  select="count(EXTERNALPORTS/PORT)"/>
-	<xsl:variable name="ipin_CNT_"  select="count(EXTERNALPORTS/PORT[@DIR='I'])"/>
-	<xsl:variable name="opin_CNT_"  select="count(EXTERNALPORTS/PORT[@DIR='O'])"/>
-	<xsl:variable name="iopin_CNT_" select="count(EXTERNALPORTS/PORT[@DIR='IO'])"/>
-	
-	<xsl:variable name="table_width_">
-		<xsl:if test="$gpin_CNT_ &gt;  16"><xsl:value-of select="$DS_WIDTH"/></xsl:if>
-		<xsl:if test="$gpin_CNT_ &lt;= 16"><xsl:value-of select="$DS_WIDTH"/></xsl:if>
-		
-	</xsl:variable>
-	
-	<xsl:variable name="left_extra_">
-		<xsl:if test="($gpin_CNT_ mod 2)     = 1">1</xsl:if>
-		<xsl:if test="not(($gpin_CNT_ mod 2) = 1)">0</xsl:if>
-	</xsl:variable>
-	
-	<xsl:variable name="num_left_" select="floor($gpin_CNT_ div 2) + $left_extra_"/>
-	<xsl:variable name="num_rhgt_" select="floor($gpin_CNT_ div 2)"/>
-	
-	<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{$table_width_}" COLS="8" cellspacing="1" cellpadding="1" border="0">
-		
-		<TD COLSPAN="8" ALIGN="middle" BGCOLOR="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">EXTERNAL PORTS</SPAN></TD>
-	 	<TR></TR>	
-		<TD COLSPAN="8" ALIGN="middle" bgcolor="{$DS_COL_WHITE}">
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-				These are the external ports defined in the MHS file.
-			</SPAN>
-		</TD>
-		
-		<TR></TR>
-		<TD COLSPAN="8" ALIGN="left" bgcolor="{$DS_COL_WHITE}">
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Attributes Key</SPAN>
-			<BR></BR>
-			<SPAN style="color:{$DS_COL_BLACK}; font: italic 9px Verdana,Arial,Helvetica,sans-serif">The attributes are obtained from the SIGIS and IOB_STATE parameters set on the PORT in the MHS file </SPAN>
-			<BR></BR>
-			<SPAN style="color:{$DS_COL_ATTR_CLK}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">CLK</SPAN>
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">&#160;&#160;indicates Clock ports, (SIGIS = CLK)&#160;</SPAN>
-			<BR></BR>
-			<SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">INTR</SPAN>
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">&#160;&#160;indicates Interrupt ports,(SIGIS = INTR)&#160;</SPAN>
-			<BR></BR>
-			<SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">RESET</SPAN>
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">&#160;&#160;indicates Reset ports, (SIGIS = RST)&#160;</SPAN>
-			<BR></BR>
-			<SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">BUF or REG</SPAN>
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">&#160;&#160;Indicates ports that instantiate or infer IOB primitives, (IOB_STATE = BUF or REG)&#160;</SPAN>
-		</TD>
-		
-		<xsl:if test="$gpin_CNT_ &lt;= 16">
-			
-		<TR></TR>
-		
-		<TD COLSPAN="7" ALIGN="left" bgcolor="{$DS_COL_WHITE}">
-			
-		<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="100%" COLS="9" cellspacing="1" cellpadding="0" border="0">
-			
-		<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TD>
-		<TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TD>
-		<TD COLSPAN="1" width="5%"  align="left"  bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TD>
-		<TD COLSPAN="1" width="5%"  align="left"  bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TD>
-		<TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TD>
-		<TD COLSPAN="2" width="25%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">ATTRIBUTES</SPAN></TD>
-		
-		<xsl:for-each select="EXTERNALPORTS/PORT">
-			<xsl:sort data-type="number" select="@INDEX" order = "ascending"/>
-			
-<!--			
-			<xsl:message>The end of the string is <xsl:value-of select="substring(@GROUP,(string-length(@GROUP) -string-length(@GROUP)) + 1)"/></xsl:message>			
-			<xsl:message>The letter is <xsl:value-of select="$groupLetter_"/></xsl:message>			
-			<xsl:message>The color is <xsl:value-of select="$glb_bg_col_"/></xsl:message>			
-			<xsl:variable name="glb_bg_col_">
-				<xsl:choose>
-					<xsl:when test="(@GROUP mod 2) = 1">
-						<xsl:value-of select="$DS_COL_ASH"/>
-					</xsl:when>		
-					<xsl:otherwise>
-						<xsl:value-of select="$DS_COL_WHITE"/>
-					</xsl:otherwise>		
-				</xsl:choose>	
-			</xsl:variable>	
--->			
-
-			<xsl:variable name="glb_bg_col_">
-				<xsl:call-template name="Group2Color">
-					<xsl:with-param name="group" select="@GROUP"/>
-				</xsl:call-template>
-			</xsl:variable>	
-			
-			<TR></TR>	
-			<TD COLSPAN="1" width="5%"  align="left"   bgcolor="{$glb_bg_col_}">
-				<SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INDEX"/></SPAN><SPAN style="color:{$DS_COL_BLACK}; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"><xsl:value-of select="@GROUP"/></SPAN>
-			</TD>
-			<TD COLSPAN="2" width="30%" align="left"   bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD>
-			<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold   10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@DIR"/></SPAN></TD>
-			<xsl:if test="@MSB and @LSB">
-				<TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@LSB"/>:<xsl:value-of select="@MSB"/></SPAN></TD>
-			</xsl:if>			
-			<xsl:if test="not(@MSB and @LSB)">
-				<TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-			</xsl:if>			
-			<TD COLSPAN="2" width="30%" align="left" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@SIGNAME"/></SPAN></TD>
-			<TD COLSPAN="2" width="25%" align="left" bgcolor="{$glb_bg_col_}">
-				<xsl:if test="@SIGIS='CLK'"><SPAN style="color:{$DS_COL_ATTR_CLK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;CLK&#160;</SPAN></xsl:if>
-				<xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;RESET&#160;</SPAN></xsl:if>
-				<xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;INTR&#160;</SPAN></xsl:if>
-				<xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;BUF&#160;</SPAN></xsl:if>
-				<xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;REG&#160;</SPAN></xsl:if>
-			</TD>
-		</xsl:for-each>
-		
-		</TABLE>
-		</TD>
-		</xsl:if>	
-		
-		<xsl:if test="$gpin_CNT_ &gt; 16">
-			
-			<TR></TR>	
-			
-			<TD COLSPAN="3" WIDTH="49%">
-				<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="100%" COLS="9" cellspacing="1" cellpadding="0" border="0">
-					<TD COLSPAN="1" width="5"   align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TD>
-					<TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TD>
-					<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TD>
-					<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TD>
-					<TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TD>
-					<TD COLSPAN="2" width="25%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">ATTRIBUTES</SPAN></TD>
-			
-					<xsl:for-each select="EXTERNALPORTS/PORT">
-					<xsl:sort data-type="number" select="@INDEX" order = "ascending"/>
-					
-					<xsl:if test="position() &lt;= $num_left_">
-					
-						<xsl:variable name="glb_bg_col_">
-							<xsl:call-template name="Group2Color">	
-								<xsl:with-param name="group" select="@GROUP"/>
-							</xsl:call-template>		
-						</xsl:variable>	
-<!--
-						<xsl:message>NAME: <xsl:value-of select="@NAME"/></xsl:message>						
-						<xsl:message>SIGIS: <xsl:value-of select="@SIGIS"/></xsl:message>						
--->	
-					    
-						<TR></TR>	
-						<TD COLSPAN="1" width="5%"  align="left"   bgcolor="{$glb_bg_col_}">
-							<SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INDEX"/></SPAN><SPAN style="color:{$DS_COL_BLACK}; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"><xsl:value-of select="@GROUP"/></SPAN>
-						</TD>
-						<TD COLSPAN="2" width="30%" align="left"   bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD>
-						<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@DIR"/></SPAN></TD>
-						<xsl:if test="@MSB and @LSB">
-							<TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@LSB"/>:<xsl:value-of select="@MSB"/></SPAN></TD>
-						</xsl:if>			
-						<xsl:if test="not(@MSB and @LSB)">
-							<TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-						</xsl:if>			
-						<TD COLSPAN="2" width="30%" align="left" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@SIGNAME"/></SPAN></TD>
-						<TD COLSPAN="2" width="25%" align="left" bgcolor="{$glb_bg_col_}">
-							<xsl:if test="@SIGIS='CLK'"><SPAN style="color:{$DS_COL_GREEN}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;CLK&#160;</SPAN></xsl:if>
-							<xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;RESET&#160;</SPAN></xsl:if>
-							<xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;INTR&#160;</SPAN></xsl:if>
-							<xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;BUF&#160;</SPAN></xsl:if>
-							<xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;REG&#160;</SPAN></xsl:if>
-						</TD>
-					</xsl:if>	
-					</xsl:for-each>
-
-					
-				</TABLE>	
-			</TD>	
-			
-			<TD COLSPAN="1" WIDTH="2%" BGCOLOR="{$DS_COL_GREY}">
-				<SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;</SPAN>
-			</TD> 
-			
-			<TD COLSPAN="3" WIDTH="49%">
-				
-				<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="100%" COLS="9" cellspacing="1" cellpadding="0" border="0">
-					<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TD>
-					<TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TD>
-					<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TD>
-					<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TD>
-					<TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TD>
-					<TD COLSPAN="2" width="25%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">ATTRIBUTES</SPAN></TD>
-					
-					<xsl:for-each select="EXTERNALPORTS/PORT">
-					<xsl:sort data-type="number" select="@INDEX" order = "ascending"/>
-					
-					<xsl:if test="position() &gt; $num_left_">
-<!--					
-						<xsl:variable name="glb_bg_col_">
-							<xsl:choose>
-								<xsl:when test="(@GROUP mod 2) = 1">
-									<xsl:value-of select="$DS_COL_ASH"/>
-								</xsl:when>		
-								<xsl:otherwise>
-									<xsl:value-of select="$DS_COL_WHITE"/>
-								</xsl:otherwise>		
-							</xsl:choose>	
-						</xsl:variable>	
--->						
-						
-						<xsl:variable name="glb_bg_col_">
-							<xsl:call-template name="Group2Color">	
-								<xsl:with-param name="group" select="@GROUP"/>
-							</xsl:call-template>		
-						</xsl:variable>	
-			
-						<TR></TR>	
-						<TD COLSPAN="1" width="5%"  align="left"   bgcolor="{$glb_bg_col_}">
-							<SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INDEX"/></SPAN><SPAN style="color:{$DS_COL_BLACK}; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"><xsl:value-of select="@GROUP"/></SPAN>
-						</TD>
-						<TD COLSPAN="2" width="30%" align="left"   bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD>
-						<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold   10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@DIR"/></SPAN></TD>
-						
-						<xsl:if test="@MSB and @LSB">
-							<TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@LSB"/>:<xsl:value-of select="@MSB"/></SPAN></TD>
-						</xsl:if>			
-						<xsl:if test="not(@MSB and @LSB)">
-							<TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-						</xsl:if>			
-						<TD COLSPAN="2" width="30%" align="left" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@SIGNAME"/></SPAN></TD>
-						<TD COLSPAN="2" width="25%" align="left" bgcolor="{$glb_bg_col_}">
-							<xsl:if test="@SIGIS='CLK'"><SPAN style="color:{$DS_COL_GREEN}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;CLK&#160;</SPAN></xsl:if>
-							<xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;RESET&#160;</SPAN></xsl:if>
-							<xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;INTR&#160;</SPAN></xsl:if>
-							<xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;BUF&#160;</SPAN></xsl:if>
-							<xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;REG&#160;</SPAN></xsl:if>
-						</TD>
-					</xsl:if>	
-					</xsl:for-each>
-					
-					<xsl:if test="$left_extra_ &gt; 0">
-						<TR></TR>	
-						<TD COLSPAN="9" WIDTH="100%" align="left" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;</SPAN></TD>
-					</xsl:if>
-					
-				</TABLE>	
-				
-			</TD>	
-	
-		</xsl:if> 
-		
-	</TABLE>		
-
-</xsl:template>
-
-<xsl:template name="Group2Color">
-
-	<xsl:param name="group"  select="'A'"/>
-		
-	<xsl:variable name="letter">
-		<xsl:value-of select="substring($group,(string-length($group) -string-length($group)) + 1)"/>
-	</xsl:variable>
-	
-	<xsl:choose>
-		<xsl:when test="$group = 'GLB'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		
-		<xsl:when test="$letter = 'A'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'C'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'E'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'G'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'I'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'K'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'M'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'O'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'Q'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'S'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'U'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'W'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'Y'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		
-		<xsl:when test="$letter = 'B'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'D'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'F'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'H'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'J'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'L'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'N'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'P'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'R'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'T'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'V'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'X'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'Z'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		
-		<xsl:otherwise>
-			<xsl:value-of select="$DS_COL_WHITE"/>	
-		</xsl:otherwise>
-	</xsl:choose>
-</xsl:template>
-
-
-
-
-
-<xsl:template name="Layout_TimingInfo">
-	
-	<xsl:variable name="mtiming_CNT_" select="count(MODULES/MODULE/TIMING)"/>
-	 
-	<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{ceiling($DS_WIDTH div 2)}" COLS="5" cellspacing="1" cellpadding="1" border="1">
-		<TD COLSPAN="5" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Post Synthesis Clock Limits</SPAN></TD>
-	 	<TR></TR>	
-		<xsl:if test="$mtiming_CNT_ &lt; 1">
-			<TD COLSPAN="5" width="100%" align="middle" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					No clocks could be identified in the design. Run platgen to generate synthesis information.
-				</SPAN>
-			</TD>
-		</xsl:if>
-		<xsl:if test="$mtiming_CNT_ &gt; 0">
-			<TD COLSPAN="5" width="100%" align="left" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					These are the post synthesis clock frequencies. The critical frequencies are marked with
-				</SPAN>
-				<SPAN style="color:{$DS_COL_GREEN}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					green.
-				</SPAN>
-				<BR></BR>
-				<SPAN style="color:{$DS_COL_RED}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					The values reported here are post synthesis estimates calculated for each individual module. These values will change after place and route is performed on the entire system.
-				</SPAN>
-			</TD>
-			<TR></TR>
-			<TD COLSPAN="2" width="40%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MODULE</SPAN></TD>
-			<TD COLSPAN="2" width="40%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">CLK Port</SPAN></TD>
-			<TD COLSPAN="1" width="20%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MAX FREQ</SPAN></TD>
-			
-			<xsl:for-each select="MODULES/MODULE/TIMING">
-			<xsl:sort data-type="number" select="@MAXFREQ" order="ascending"/>
-				<xsl:variable name="maxFreq_"  select="@MAXFREQ"/>
-				<xsl:variable name="freqUnit_" select="@FREQUNITS"/>
-				<xsl:variable name="freqCol_">
-					<xsl:if test="position() = 1">	
-						<xsl:value-of select="$DS_COL_GREEN"/>
-					</xsl:if>
-					<xsl:if test="not(position() = 1)">	
-						<xsl:value-of select="$DS_COL_BLACK"/>
-					</xsl:if>
-				</xsl:variable>
-				
-				<xsl:for-each select="TIMECLK">
-					<TR></TR>
-					
-					<TD COLSPAN="2" width="40%" align="left" bgcolor="{$DS_COL_WHITE}">
-							<A HREF="#_{../../@INSTANCE}" style="text-decoration:none">
-								<SPAN style="color:{$DS_COL_XPRP}; font: italic 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="../../@INSTANCE"/></SPAN>
-							</A>
-					</TD>
-					
-					<TD COLSPAN="2" width="40%" align="left" bgcolor="{$DS_COL_WHITE}">
-						<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">
-							<xsl:value-of select="@SIGNAME"/>
-						</SPAN>
-					</TD>
-					
-					<TD COLSPAN="1" width="20%" align="left" bgcolor="{$DS_COL_WHITE}">
-						<SPAN style="color:{$freqCol_}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">
-							<xsl:value-of select="$maxFreq_"/><xsl:value-of select="$freqUnit_"/>
-						</SPAN>
-					</TD>
-					
-			    </xsl:for-each>
-			</xsl:for-each>
-		</xsl:if>
-		
-	</TABLE>	
-</xsl:template>
-
-<!-- ==============================  END GLOBAL PINOUT      ==================================== -->
-
-<xsl:template name="Layout_NavigateHeader">
-	<xsl:param name="header_name" select="HEADER"/>
-	<BR></BR>
-	<BR></BR>
-	<BR></BR>
-	<TABLE BGCOLOR="{$DS_COL_XPRP}" WIDTH="{$DS_WIDTH}" COLS="3" cellspacing="0" cellpadding="0" border="0">
-		<TH COLSPAN="1" width="90%" align="left">  <SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$header_name"/></SPAN></TH>
-		<xsl:if test="$DS_TYPE='NOFRAMES'">
-			<TH COLSPAN="1" width="10%"  align="middle"><A HREF="#_TOC" style="text-decoration:none"><SPAN style="color:{$DS_COL_LGRY}; font: bold 14px Verdana Arial,Helvetica,sans-serif">TOC</SPAN></A></TH>
-		</xsl:if>	
-		<xsl:if test="$DS_TYPE='FRAMES'">
-			<TH COLSPAN="1" width="10%"  align="middle"><A HREF="#_Overview" style="text-decoration:none"><SPAN style="color:{$DS_COL_LGRY}; font: bold 14px Verdana Arial,Helvetica,sans-serif">TOP</SPAN></A></TH>
-		</xsl:if>	
-	</TABLE>
-</xsl:template>
-
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl
deleted file mode 100644
index 4e7beaa..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl
+++ /dev/null
@@ -1,611 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-         
-<xsl:output method="html"/>
-
-<!--
-<xsl:param name="DS_COL_OPB"    select="'#339900'"/>
-<xsl:param name="DS_COL_WHITE"   select="'#FFFFFF'"/>
-<xsl:param name="DS_COL_INFO"   select="'#2233FF'"/>
-<xsl:param name="DS_COL_BLACK"   select="'#000000'"/>
-<xsl:param name="DS_COL_GREY"   select="'#CCCCCC'"/>
-<xsl:param name="DS_COL_XPRP"   select="'#810017'"/>
-<xsl:param name="DS_COL_DOCLNK" select="'#FF9900'"/>
--->
-	        
-<!-- ======================= MAIN PERIPHERAL SECTION =============================== -->
-<xsl:template name="Layout_IPSection">
-
-<TABLE BGCOLOR="{$DS_COL_WHITE}" WIDTH="{$DS_WIDTH}" COLS="4" cellspacing="0" cellpadding="0" border="0">
-	
-	<TD COLSPAN="4" width="5%" align="LEFT" valign="BOTTOM">
-		<A name="_{@INSTANCE}"/>
-		<xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if>		
-		<SPAN style="color:{$DS_COL_XPRP}; font: bold italic 14px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INSTANCE"/></SPAN>
-		<xsl:if test="DESCRIPTION[(@TYPE = 'SHORT')]">
-			<SPAN style="color:{$DS_COL_XPRP}; font: normal italic 12px Verdana,Arial,Helvetica,sans-serif">
-				&#160;&#160;<xsl:value-of select="DESCRIPTION[(@TYPE = 'SHORT')]"/>
-			</SPAN>
-		</xsl:if>
-		<BR></BR>
-		<xsl:if test="DESCRIPTION[(@TYPE = 'LONG')]">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal italic 12px Verdana,Arial,Helvetica,sans-serif">
-				<xsl:value-of select="DESCRIPTION[(@TYPE = 'LONG')]" disable-output-escaping="yes"/>
-			</SPAN>
-		</xsl:if>
-		<BR></BR>
-		<BR></BR>
-		<BR></BR>
-	</TD>	
-	
-	<TR></TR>
-	
-	<!-- Layout the Module information table-->
-	<TD COLSPAN="2" width="40%" align="LEFT" valign="TOP">
-		<IMG SRC="imgs/{@INSTANCE}.jpg" alt="{@INSTANCE} IP Image" border="0" vspace="0" hspace="0"/>
-	</TD>
-	<TD COLSPAN="2" width="60%" align="MIDDLE" valign="TOP">
-		<xsl:call-template name="Peri_PortListTable"/>
-		<BR></BR>
-		<BR></BR>
-	</TD>
-	
-	<TR></TR>
-				
-	<TD COLSPAN="4" width="100%" align="LEFT" valign="BOTTOM">
-		<xsl:call-template name="Peri_InfoTable"/>
-	</TD>
-	
-<!--	
-	<TD COLSPAN="1" width="5%" align="LEFT"     valign="BOTTOM">
-		<SPAN style="color:{$DS_COL_XPRP}; font: bold normal 16px Verdana,Arial,Helvetica,sans-serif">&#8970;</SPAN>
-	</TD>
-	<TD COLSPAN="2" width="90%" align="MIDDLE"  valign="BOTTOM">
-		<SPAN style="color:{$DS_COL_BLACK}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">&#160;</SPAN>
-	</TD>
-	<TD COLSPAN="1" width="5%" align="RIGHT"    valign="BOTTOM">
-		<SPAN style="color:{$DS_COL_XPRP}; font: bold normal 16px Verdana,Arial,Helvetica,sans-serif">&#8971;</SPAN>
-	</TD>
--->	
-</TABLE>	
-
-<BR></BR>
-<BR></BR>
-
-</xsl:template>
-
-<!-- ======================= PERIHERAL TABLE PARTS   =============================== -->
-<!-- Layout the Module's Information table -->
-<xsl:template name="Peri_InfoTable">
-	
-	<xsl:variable name="mhsParamCNT_" select="count(PARAMETER)"/>
-	
-	<xsl:variable name="table_is_split_">
-		<xsl:if test="$mhsParamCNT_     &gt;  10">1</xsl:if>
-		<xsl:if test="not($mhsParamCNT_ &gt;  10)">0</xsl:if>
-	</xsl:variable>
-	
-	<xsl:variable name="table_width_">
-		<xsl:if test="$mhsParamCNT_  &gt;  10"><xsl:value-of select="$DS_WIDTH"/></xsl:if>
-		<xsl:if test="$mhsParamCNT_  &lt;= 10"><xsl:value-of select="ceiling($DS_WIDTH div 2)"/></xsl:if>
-	</xsl:variable>
-	
-	
-	<xsl:variable name="left_extra_">
-		<xsl:if test="($mhsParamCNT_ mod 2)     = 1">1</xsl:if>
-		<xsl:if test="not(($mhsParamCNT_ mod 2) = 1)">0</xsl:if>
-	</xsl:variable>
-	
-	<xsl:variable name="num_left_" select="floor($mhsParamCNT_ div 2) + $left_extra_"/>
-	<xsl:variable name="num_rhgt_" select="floor($mhsParamCNT_ div 2)"/>
-	
-	<xsl:variable name="mdr_main_col_">
-		<xsl:if test="$mhsParamCNT_  &gt;  10">4</xsl:if>
-		<xsl:if test="$mhsParamCNT_  &lt;= 10">2</xsl:if>
-	</xsl:variable>
-	
-	<xsl:variable name="mdr_othr_col_">
-		<xsl:if test="$mhsParamCNT_  &gt;  10">2</xsl:if>
-		<xsl:if test="$mhsParamCNT_  &lt;= 10">1</xsl:if>
-	</xsl:variable>
-	
-	<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{$table_width_}" COLS="5" cellspacing="1" cellpadding="1" border="1">
-		<TD COLSPAN="5" WIDTH="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">General</SPAN></TD>
-		<TR></TR>
-		<TD COLSPAN="2" WIDTH="40%" align="middle"  bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">IP Core</SPAN></TD>
-		<TD COLSPAN="3" WIDTH="60%" align="middle"  bgcolor="{$DS_COL_WHITE}">
-			<xsl:if test="@DOC_IP">
-				<SPAN style="color:{$DS_COL_XPRP}; font: bold italic 10px Verdana,Arial,Helvetica,sans-serif">
-					<A HREF="{@DOC_IP}" style="text-decoration:none; color:{$DS_COL_XPRP}"><xsl:value-of select="@MODTYPE"/></A>
-				</SPAN>
-			</xsl:if>
-			<xsl:if test="not(@DOC_IP)">
-				<SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">
-					<xsl:value-of select="@MODTYPE"/>
-				</SPAN>
-			</xsl:if>
-		</TD>
-		
-		<TR></TR>	
-		
-		<TD COLSPAN="2" WIDTH="40%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Version</SPAN></TD>
-		<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@HWVERSION"/></SPAN></TD>
-		
-		<xsl:if test="@DOC_DRIVER">
-			<TR></TR>	
-			<TD COLSPAN="2" WIDTH="40%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Driver</SPAN></TD>
-			<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_XPRP}; font: bold italic 10px Verdana,Arial,Helvetica,sans-serif">
-					<A HREF="{@DOC_DRIVER}" style="text-decoration:none; color:{$DS_COL_XPRP}">API</A>
-				</SPAN>
-			</TD>	
-		</xsl:if>	
-		
-		<TR></TR>	
-		
-		<xsl:if test="LICENSEINFO">
-			<TD COLSPAN="5" WIDTH="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">License</SPAN></TD>
-			
-			<TR></TR>
-			<TD COLSPAN="2" WIDTH="40%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">TYPE</SPAN></TD>
-			<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="LICENSEINFO/@TYPE"/></SPAN>
-			</TD>	
-<!--			
-			<TR></TR>
-			<TD COLSPAN="2" WIDTH="40%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">CURRENT STATUS</SPAN></TD>
-			<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="LICENSEINFO/@STATE"/></SPAN>
-			</TD>	
--->			
-			<xsl:if test="LICENSEINFO/@EXPIRESON">
-				<TR></TR>
-				<TD COLSPAN="2" WIDTH="40%" align="middle"  bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">EXPIRES ON</SPAN></TD>
-				<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$DS_COL_WHITE}">
-					<SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="LICENSEINFO/@EXPIRESON"/></SPAN>
-				</TD>	
-			</xsl:if>
-		</xsl:if>	
-		
-		<xsl:if test="$mhsParamCNT_ &gt; 0">
-		<TR></TR>	
-		<TD COLSPAN="5" WIDTH="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">Parameters</SPAN></TD>
-			<TR></TR>
-			<TD COLSPAN="5" width="100%" align="left" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					These are parameters set for this module.
-					<xsl:if test="@DOC_IP">
-						 Refer to the IP <A HREF="{@DOC_IP}" style="text-decoration:none; color:{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_XPRP}; font: bold italic 9px Verdana,Arial,Helvetica,sans-serif"> documentation </SPAN></A>for complete information about module parameters.
-					</xsl:if>
-				</SPAN>
-				<BR></BR>
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-						Parameters marked with 
-				</SPAN>
-				<SPAN style="color:#FFBB00; font: bold 9px Verdana,Arial,Helvetica,sans-serif">yellow</SPAN>
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					indicate parameters set by the user.
-				</SPAN>
-				<BR></BR>
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-						Parameters marked with 
-				</SPAN>
-				<SPAN style="color:{$DS_COL_MODSYSNW}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">blue</SPAN>
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					indicate parameters set by the system.
-				</SPAN>
-			</TD>
-			
-		<xsl:if test="$mhsParamCNT_ &lt;= 10">
-			<TR></TR>	
-			<TD COLSPAN="2" WIDTH="40%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Name</SPAN></TD>
-			<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Value</SPAN></TD>
-		
-			<xsl:for-each select="PARAMETER">
-				<xsl:sort select="@INDEX" data-type="number"/>
-					<xsl:variable name="name_bg_col_">
-						<xsl:choose>
-							
-							<xsl:when test="@CHANGEDBY='USER'">
-								<xsl:value-of select="$DS_COL_MODUSR"/>
-							</xsl:when>		
-								
-							<xsl:when test="@CHANGEDBY='SYSTEM'">
-								<xsl:value-of select="$DS_COL_MODSYS"/>
-							</xsl:when>		
-							
-							<xsl:when test="((position() - 1) mod 2) = 0">
-								<xsl:value-of select="$DS_COL_ASH1"/>
-							</xsl:when>		
-							
-							<xsl:otherwise>
-								<xsl:value-of select="$DS_COL_WHITE"/>
-							</xsl:otherwise>		
-						</xsl:choose>	
-					</xsl:variable>
-						
-					<xsl:variable name="value_bg_col_">
-						<xsl:choose>
-							
-							<xsl:when test="@CHANGEDBY='USER'">
-								<xsl:value-of select="$DS_COL_MODUSR"/>
-							</xsl:when>		
-								
-							<xsl:when test="@CHANGEDBY='SYSTEM'">
-								<xsl:value-of select="$DS_COL_MODSYS"/>
-							</xsl:when>	
-							
-							<xsl:when test="((position() - 1) mod 2) = 0">
-								<xsl:value-of select="$DS_COL_ASH1"/>
-							</xsl:when>		
-							
-							<xsl:otherwise>
-								<xsl:value-of select="$DS_COL_WHITE"/>
-							</xsl:otherwise>		
-								
-						</xsl:choose>	
-					</xsl:variable>
-						
-				<TR></TR>	
-				<TD COLSPAN="2" WIDTH="40%" align="left"   bgcolor="{$name_bg_col_}">
-					<SPAN style="color:{$DS_COL_BLACK};  font: normal 12px Verdana,Arial,Helvetica,sans-serif">
-							<xsl:value-of select="@NAME"/>
-					</SPAN>
-					<xsl:if test="DESCRIPTION">
-						<BR/>
-						<SPAN style="color:{$DS_COL_BLACK};  font: bold italic 9px Verdana,Arial,Helvetica,sans-serif">
-							<xsl:value-of select="DESCRIPTION"/>
-						</SPAN>
-					</xsl:if>	
-				</TD>
-				<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$value_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@VALUE"/></SPAN></TD>
-			</xsl:for-each>
-	</xsl:if>			
-	
-	<xsl:if test="$mhsParamCNT_ &gt; 10">
-	<TR></TR>	
-	<TD COLSPAN="5" WIDTH="100%">
-	<TABLE BGCOLOR="{$DS_COL_GREY}" WIDTH="100%" COLS="5" cellspacing="0" cellpadding="0" border="0">
-		
-		<TD COLSPAN="2" WIDTH="49%">
-			<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="100%" COLS="2" cellspacing="1" cellpadding="0" border="0">
-				<TD COLSPAN="1" WIDTH="50%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Name</SPAN></TD>
-				<TD COLSPAN="1" WIDTH="50%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Value</SPAN></TD>
-				
-				<xsl:for-each select="PARAMETER">
-					<xsl:sort select="@INDEX" data-type="number"/>
-					<xsl:if test="position() &lt;= $num_left_">	
-						
-						<xsl:variable name="name_bg_col_">
-							<xsl:choose>
-								<xsl:when test="@CHANGEDBY='USER'">
-									<xsl:value-of select="$DS_COL_MODUSR"/>
-								</xsl:when>		
-								
-								<xsl:when test="@CHANGEDBY='SYSTEM'">
-									<xsl:value-of select="$DS_COL_MODSYS"/>
-								</xsl:when>		
-							
-								<xsl:when test="((position() - 1) mod 2) = 0">
-									<xsl:value-of select="$DS_COL_ASH1"/>
-								</xsl:when>		
-							
-								<xsl:otherwise>
-									<xsl:value-of select="$DS_COL_WHITE"/>
-								</xsl:otherwise>		
-							</xsl:choose>	
-						</xsl:variable>
-						
-						<xsl:variable name="value_bg_col_">
-							<xsl:choose>
-								<xsl:when test="@CHANGEDBY='USER'">
-									<xsl:value-of select="$DS_COL_MODUSR"/>
-								</xsl:when>		
-								
-								<xsl:when test="@CHANGEDBY='SYSTEM'">
-									<xsl:value-of select="$DS_COL_MODSYS"/>
-								</xsl:when>		
-							
-								<xsl:when test="((position() - 1) mod 2) = 0">
-									<xsl:value-of select="$DS_COL_ASH1"/>
-								</xsl:when>		
-							
-								<xsl:otherwise>
-									<xsl:value-of select="$DS_COL_WHITE"/>
-								</xsl:otherwise>		
-							</xsl:choose>	
-						</xsl:variable>
-						
-					<TR></TR>	
-					<TD COLSPAN="1" WIDTH="50%" align="left"   bgcolor="{$name_bg_col_}">
-						<SPAN style="color:{$DS_COL_BLACK};  font: normal 12px Verdana,Arial,Helvetica,sans-serif">
-							<xsl:value-of select="@NAME"/>
-						</SPAN>
-						<xsl:if test="DESCRIPTION">
-							<BR/>
-							<SPAN style="color:{$DS_COL_BLACK};  font: bold italic 9px Verdana,Arial,Helvetica,sans-serif">
-								<xsl:value-of select="DESCRIPTION"/>
-							</SPAN>
-						</xsl:if>	
-					</TD>
-					<TD COLSPAN="1" WIDTH="50%" align="middle" bgcolor="{$value_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@VALUE"/></SPAN></TD>
-				</xsl:if>
-			</xsl:for-each>
-			</TABLE>
-		</TD> 
-	
-		<TD COLSPAN="1" WIDTH="2%">
-			<TABLE BGCOLOR="{$DS_COL_GREY}"  WIDTH="100%" COLS="1" cellspacing="0" cellpadding="0" border="0">
-				<TD COLSPAN="1" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;</SPAN></TD>
-			</TABLE>
-		</TD> 
-	
-		<TD COLSPAN="2" WIDTH="49%">
-			<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="100%" COLS="2" cellspacing="1" cellpadding="0" border="0">
-				<TD COLSPAN="1" WIDTH="50%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Name</SPAN></TD>
-				<TD COLSPAN="1" WIDTH="50%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Value</SPAN></TD>
-				<xsl:for-each select="PARAMETER">
-					<xsl:sort select="@INDEX" data-type="number"/>
-					<xsl:if test="position() &gt; $num_left_">	
-						
-						<xsl:variable name="name_bg_col_">
-							<xsl:choose>
-								<xsl:when test="@CHANGEDBY='USER'">
-									<xsl:value-of select="$DS_COL_MODUSR"/>
-								</xsl:when>		
-								
-								<xsl:when test="@CHANGEDBY='SYSTEM'">
-									<xsl:value-of select="$DS_COL_MODSYS"/>
-								</xsl:when>		
-							
-								<xsl:when test="((position() - $num_left_ - 1) mod 2) = 0">
-									<xsl:value-of select="$DS_COL_ASH1"/>
-								</xsl:when>		
-							
-								<xsl:otherwise>
-									<xsl:value-of select="$DS_COL_WHITE"/>
-								</xsl:otherwise>		
-							</xsl:choose>	
-						</xsl:variable>
-						
-						<xsl:variable name="value_bg_col_">
-							<xsl:choose>
-							
-								<xsl:when test="@CHANGEDBY='USER'">
-									<xsl:value-of select="$DS_COL_MODUSR"/>
-								</xsl:when>		
-								
-								<xsl:when test="@CHANGEDBY='SYSTEM'">
-									<xsl:value-of select="$DS_COL_MODSYS"/>
-								</xsl:when>		
-							
-								<xsl:when test="((position() - $num_left_ - 1) mod 2) = 0">
-									<xsl:value-of select="$DS_COL_ASH1"/>
-								</xsl:when>		
-							
-								<xsl:otherwise>
-									<xsl:value-of select="$DS_COL_WHITE"/>
-								</xsl:otherwise>		
-							</xsl:choose>	
-						</xsl:variable>
-					<TR></TR>	
-					<TD COLSPAN="1" WIDTH="50%" align="left"   bgcolor="{$name_bg_col_}">
-						<SPAN style="color:{$DS_COL_BLACK};  font: normal 12px Verdana,Arial,Helvetica,sans-serif">
-							<xsl:value-of select="@NAME"/>
-						</SPAN>
-						<xsl:if test="DESCRIPTION">
-							<BR/>
-							<SPAN style="color:{$DS_COL_BLACK};  font: bold italic 9px Verdana,Arial,Helvetica,sans-serif">
-								<xsl:value-of select="DESCRIPTION"/>
-							</SPAN>
-						</xsl:if>	
-					</TD>
-					<TD COLSPAN="1" WIDTH="50%" align="middle" bgcolor="{$value_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@VALUE"/></SPAN></TD>
-					
-				</xsl:if>
-			</xsl:for-each>
-			
-			<xsl:if test="$left_extra_ &gt; 0">
-				<TR></TR>	
-				<TD COLSPAN="2" WIDTH="100%" align="left" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;</SPAN></TD>
-			</xsl:if>
-			
-			</TABLE>
-		</TD> 
-		
-	</TABLE>
-	</TD>	
-	</xsl:if>			
-	</xsl:if>
-	</TABLE>
-<!--	
-		<BR></BR>	
--->		
-		<xsl:if test="(@MODCLASS = 'PROCESSOR') and MEMORYMAP">
-<!--			
-			<xsl:message>Found a memory map</xsl:message>
--->			
-			<xsl:call-template name="Layout_MemoryMap">
-				<xsl:with-param name="table_width" select="$table_width_"/>
-			</xsl:call-template>	
-		</xsl:if>
-<!--		
-		<BR></BR>
--->	
-		<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{$table_width_}" COLS="5" cellspacing="1" cellpadding="1" border="0">
-		<TD width="100%" COLSPAN="5" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">Post Synthesis Device Utilization</SPAN></TD>
-		<xsl:choose>
-			<xsl:when test="not(RESOURCES)">
-				<TR></TR>
-				<TD width="100%" COLSPAN="5" align="middle" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					Device utilization information is not available for this IP. Run platgen to generate synthesis information.
-				</SPAN>
-				</TD>
-			</xsl:when>	
-			<xsl:otherwise>
-				<TR></TR>
-				<TD COLSPAN="2" width="55%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Resource Type</SPAN></TD>
-				<TD COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Used</SPAN></TD>
-				<TD COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Available</SPAN></TD>
-				<TD COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Percent</SPAN></TD>
-				
-				<xsl:for-each select="RESOURCES/RESOURCE">
-					<TR></TR>	
-					<TD COLSPAN="2" width="55%" align="left"   bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@TYPE"/></SPAN></TD>
-					<TD COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@USED"/></SPAN></TD>
-					<TD COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@TOTAL"/></SPAN></TD>
-					<TD COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@PERCENT"/></SPAN></TD>
-				</xsl:for-each>
-			</xsl:otherwise>
-		</xsl:choose>
-<!--		
-	    <BR></BR>	
-		<TD COLSPAN="5" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif"></SPAN></TD>
--->		
-	</TABLE>
-
-</xsl:template>
-
-<!-- Layout the Module's Port list table -->
-<xsl:template name="Peri_PortListTable">
-
-	
-	<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{ceiling($DS_WIDTH div 2)}" COLS="7" cellspacing="1" cellpadding="1" border="0">
-		<TH COLSPAN="7" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">PORT LIST</SPAN></TH>
-	 	<TR></TR>	
-		<TH COLSPAN="7" width="100%" align="left" bgcolor="{$DS_COL_WHITE}">
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-				The ports listed here are only those connected in the MHS file. 
-				<xsl:if test="@DOC_IP">
-					Refer to the IP <A HREF="{@DOC_IP}" style="text-decoration:none; color:{$DS_COL_XPRP}"> <SPAN style="color:{$DS_COL_XPRP}; font: bold italic 9px Verdana,Arial,Helvetica,sans-serif"> documentation </SPAN> </A>for complete information about module ports.
-				</xsl:if>
-			</SPAN>
-		</TH>
-		<TR></TR>
-		<TH COLSPAN="1" width="5%"  align="left"   bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TH>
-		<TH COLSPAN="2" width="25%" align="left"   bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TH>
-		<TH COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TH>
-		<TH COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TH>
-		<TH COLSPAN="2" width="50%" align="left"   bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIGNAL</SPAN></TH>
-		<xsl:for-each select="PORT[(not(@SIGNAME = '__NOC__') and not(@SIGNAME = '__DEF__') and (@INMHS))]">
-			<xsl:sort data-type="number" select="@INDEX" order="ascending"/>
-			<TR></TR>	
-			<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK};   font: normal 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INDEX"/></SPAN></TD>
-			<TD COLSPAN="2" width="25%" align="left" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK};   font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD>
-			<TD COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@DIR"/></SPAN></TD>
-			
-			<xsl:if test="@MSB and @LSB">
-				<TD COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@LSB"/>:<xsl:value-of select="@MSB"/></SPAN></TD>
-			</xsl:if>			
-			<xsl:if test="not(@MSB and @LSB)">
-				<TD COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-			</xsl:if>			
-			
-			<TD COLSPAN="2" width="50%" align="left" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@SIGNAME"/></SPAN></TD>
-		</xsl:for-each>
-		
-		<xsl:if test="BUSINTERFACE">
-			<xsl:variable name="instance_"><xsl:value-of select="@INSTANCE"/></xsl:variable>
-			<TR></TR>
-			<TH COLSPAN="7" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}">
-				<SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Bus Interfaces</SPAN>
-			</TH>	
-			<TR></TR>
-			
-			<TH COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MASTERSHIP</SPAN></TH>
-			<TH COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TH>
-			<TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">STD</SPAN></TH>
-			<TH COLSPAN="3" width="25%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">BUS</SPAN></TH>
-			<TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">P2P</SPAN></TH>
-			<xsl:for-each select="BUSINTERFACE[(not(@BUSNAME = '__NOC__') and not(@BUSNAME = '__DEF__'))]">
-			<xsl:sort select="@BIFRANK"/>
-					
-				<xsl:variable name="busname_"><xsl:value-of select="@BUSNAME"/></xsl:variable>
-					
-				<xsl:variable name="p2pname_">
-					<xsl:choose>
-						<xsl:when test="(@BUSSTD and not((@BUSSTD='PLB') or (@BUSSTD='OPB')) or (@BIFRANK='TRANSPARENT'))">
-							<xsl:value-of select="../../MODULE[not(@INSTANCE = $instance_) and BUSINTERFACE[(@BUSNAME = $busname_)]]/@INSTANCE"/>
-						</xsl:when>
-						<xsl:when test="not(@BUSSTD) or (@BUSSTD='OPB') or (@BUSSTD='PLB') or (@BIFRANK='TRANSPARENT')">NA</xsl:when>
-				   </xsl:choose>
-				</xsl:variable>					
-				
-				<xsl:variable name="bus_std_">
-					<xsl:if test="@BUSSTD">
-						<xsl:value-of select="@BUSSTD"/>
-					</xsl:if>
-					<xsl:if test="not(@BUSSTD)">NA</xsl:if>
-				</xsl:variable>					
-				
-				
-				<TR></TR>
-				<TH COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@BIFRANK"/></SPAN></TH>
-				<TH COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TH>
-				<TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$bus_std_"/></SPAN></TH>
-				<xsl:if test="$bus_std_ = 'NA'">
-					<TH COLSPAN="3" width="25%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@BUSNAME"/></SPAN></TH>
-				</xsl:if>	
-				<xsl:if test="not($bus_std_ = 'NA')">
-					<TH COLSPAN="3" width="25%" align="middle" bgcolor="{$DS_COL_WHITE}"><A HREF="#_{@BUSNAME}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@BUSNAME"/></SPAN></A></TH>
-				</xsl:if>	
-				<xsl:if test="$p2pname_ = 'NA'">
-					<TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$p2pname_"/></SPAN></TH>
-				</xsl:if>
-				<xsl:if test="not($p2pname_ = 'NA')">
-				    <TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_WHITE}"><A HREF="#_{$p2pname_}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$p2pname_"/></SPAN></A></TH>
-				</xsl:if>
-			</xsl:for-each>
-		</xsl:if>
-		
-		<xsl:if test="@MODCLASS='BUS'">
-			<xsl:variable name="instance_"><xsl:value-of select="@INSTANCE"/></xsl:variable>
-			<TR></TR>
-			<TH COLSPAN="7" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Bus Connections</SPAN></TH>	
-			<TR></TR>
-			<TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">TYPE</SPAN></TH>
-			<TH COLSPAN="5" width="50%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TH>
-			<TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">BIF</SPAN></TH>
-			<xsl:for-each select="../MODULE/BUSINTERFACE[(@BUSNAME = $instance_)]">
-				<xsl:sort select="@BIFRANK"/>
-				<xsl:variable name="buscName_"><xsl:value-of select="../@INSTANCE"/></xsl:variable>
-				<TR></TR>
-				<TD COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@BIFRANK"/></SPAN></TD>
-				<TD COLSPAN="5" width="50%" align="middle" bgcolor="{$DS_COL_WHITE}"><A HREF="#_{$buscName_}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$buscName_"/></SPAN></A></TD>
-				<TD COLSPAN="1" width="25%" align="left"   bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD>
-			</xsl:for-each>
-		</xsl:if>
-		
-		<xsl:if test="INTERRUPTSRCS">
-			<TR></TR>
-			<TH COLSPAN="7" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}">
-				<SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Interrupt Priorities</SPAN>
-				<TR></TR>
-				<TH COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Priority</SPAN></TH>
-				<TH COLSPAN="3" width="55%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TH>
-				<TH COLSPAN="3" width="35%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MODULE</SPAN></TH>
-				<TR></TR>
-				<xsl:for-each select="INTERRUPTSRCS/INTRSRC">
-				<xsl:sort data-type="number" select="@PRIORITY" order="ascending"/>
-				
-					<xsl:variable name="intrsrc_"><xsl:value-of select="@SIGNAME"/></xsl:variable>
-					<xsl:variable name="intrpri_"><xsl:value-of select="@PRIORITY"/></xsl:variable>
-					
-					<xsl:for-each select="../../../MODULE[PORT[((@DIR='O') and (@SIGNAME = $intrsrc_))]]">
-						<TR></TR>
-						<TH COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$intrpri_"/></SPAN></TH>
-						<TH COLSPAN="3" width="55%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$intrsrc_"/></SPAN></TH>
-						<TH COLSPAN="3" width="35%" align="middle" bgcolor="{$DS_COL_WHITE}"><A HREF="#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INSTANCE"/></SPAN></A></TH>
-					</xsl:for-each>
-				</xsl:for-each>
-			</TH>
-		</xsl:if>
-		
-	</TABLE>	
-	
-</xsl:template>
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl
deleted file mode 100644
index 96e9f0c..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE stylesheet [
-	<!ENTITY HEXUPPER "ABCDEFxx0123456789">
-	<!ENTITY HEXLOWER "abcdefxX0123456789">
-	<!ENTITY HEXU2L " '&HEXLOWER;' , '&HEXUPPER;' ">
-]>	
-<!--
--->
-
-<xsl:stylesheet version="1.0"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-         
-<xsl:output method="html"/>
-			
-<!-- ======================= MAIN MEMORY MAP SECTION =============================== -->
-<xsl:template name="Layout_MemoryMap">
-<xsl:param name="table_width" select="600"/>
-
-<xsl:variable name="procName" select="@INSTANCE"/>
-<!--
-<BR></BR>
-<BR></BR>
--->
-	<xsl:if test="MEMORYMAP/MEMRANGE[(@INSTANCE)]">
-		
-	<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{$table_width}" COLS="5" cellspacing="1" cellpadding="2" border="0">
-		<TR></TR>	
-		<TD COLSPAN="5" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}">
-			<A name="_{@INSTANCE}_MemoryMap"/>
-			<SPAN style="color:{$DS_COL_WHITE}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MEMORY MAP</SPAN>
-		</TD>
-		<TR></TR>
-		<TD COLSPAN="5" width="100%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_INFO}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">D=DATA ADDRESSABLE &#160;&#160; I=INSTRUCTION ADDRESSABLE</SPAN></TD>
-		<TR></TR>
-		<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">D</SPAN></TD>
-		<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">I</SPAN></TD>
-		<TD COLSPAN="1" width="20%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">BASE</SPAN></TD>
-		<TD COLSPAN="1" width="20%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">HIGH</SPAN></TD>
-		<TD COLSPAN="1" width="50%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MODULE</SPAN></TD>
-		<TR></TR>
-		
-		<xsl:for-each select="MEMORYMAP/MEMRANGE[(@INSTANCE)]">
-			<xsl:sort data-type="number" select="@BASEVALUE" order="ascending"/>
-			<TR></TR>
-				<xsl:variable name="isdata">
-					<xsl:if test="@IS_DATA='TRUE'">&#9632;</xsl:if>	
-					<xsl:if test="not(@IS_DATA='TRUE')">&#160;</xsl:if>	
-				</xsl:variable>
-			
-			<xsl:variable name="isinst">
-				<xsl:if test="@IS_INSTRUCTION='TRUE'">
-					&#9632;
-				</xsl:if>	
-				<xsl:if test="not(@IS_INSTRUCTION='TRUE')">
-					&#160;
-				</xsl:if>	
-			</xsl:variable>
-			
-			<xsl:variable name="bupper" select ="@BASE"/>
-			<xsl:variable name="hupper" select ="@HIGH"/>
-			<xsl:variable name="iname"  select ="@INSTANCE"/>
-			<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,sans-serif"><xsl:value-of select="$isdata"/></SPAN></TD>
-			<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,sans-serif"><xsl:value-of select="$isinst"/></SPAN></TD>
-			<TD COLSPAN="1" width="20%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="translate($bupper,&HEXU2L;)"/></SPAN></TD>
-			<TD COLSPAN="1" width="20%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="translate($hupper,&HEXU2L;)"/></SPAN></TD>
-			<TD COLSPAN="1" width="50%" align="right"  bgcolor="{$DS_COL_WHITE}">
-				<A HREF="#_{$iname}" style="text-decoration:none">
-				<SPAN style="color:{$DS_COL_BLACK}; vertical-align:sub; font: normal 8px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@BASENAME"/>:<xsl:value-of select="@HIGHNAME"/></SPAN><SPAN style="color:{$DS_COL_XPRP}; font: bold 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INSTANCE"/></SPAN>
-				</A>
-			</TD>
-		</xsl:for-each>
-	</TABLE>			
-	</xsl:if>
-</xsl:template>
-
-<xsl:template name="FindCorrectLocation">
-	<xsl:param name="ranges"/>
-	<xsl:param name="location"/>
-	<xsl:param name="instname"/>
-	
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl
deleted file mode 100644
index 862b710..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl
+++ /dev/null
@@ -1,235 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-         
-<xsl:template name="Write_TOCTree">
-<HTML>
-<HEAD>
-<TITLE>Table of Contents</TITLE>
-	
-	<BASE target="{$DS_FRAME_MAIN}"></BASE>
-	
-	<!--specify a css for the TOC -->
-	<link   rel="stylesheet"      href="ds_Report.css" type="text/css"></link>
-	
-	<!--specify the javascript for the TOC-->
-	<script src="ds_Report.js" type="text/javascript"></script>
-</HEAD>	
-
-	<!--Layout Table of contents   -->
-	<BODY class="main_body">
-		<xsl:call-template name="Layout_TOCTree"/>
-	</BODY>		
-	
-</HTML>
-</xsl:template>
-
-	
-<!-- ======================= LAYOUT TABLE OF CONTENTS ====================================== -->
-<xsl:template name="Layout_TOCTree">
-	
-<xsl:variable name="toc_col_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="$DS_COL_LGRY"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_COL_WHITE"/>	
-	</xsl:if>
-</xsl:variable>
-
-<xsl:variable name="toc_width_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="$DS_WIDTH"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_TOC_WIDTH"/>	
-	</xsl:if>
-</xsl:variable>
-
-<xsl:variable name="toc_target_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="$DS_FRAME_SELF"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_FRAME_MAIN"/>	
-	</xsl:if>
-</xsl:variable>
-
-<xsl:variable name="trg_html_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="''"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_HTML_MAIN"/>	
-	</xsl:if>
-</xsl:variable>
-	
-	
-<A name="_TOC"/>
-<TABLE BGCOLOR="{$toc_col_}" WIDTH="{$toc_width_}" COLS="2" cellspacing="0" cellpadding="3" border="0">
-
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<TH COLSPAN="2" width="100%" align="middle"><SPAN style="color:{$DS_COL_XPRP}; font: bold 20px Arial,Helvetica,sans-serif">TABLE OF CONTENTS</SPAN></TH>
-	</xsl:if>
-	
-	<TR></TR>
-	<TD COLSPAN="1" width="40%" align="left">
-		<BR></BR>
-		<A HREF="{$trg_html_}#_Overview" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Overview</SPAN></A>
-		
-		<BR></BR>
-		<A HREF="{$trg_html_}#_BlockDiagram" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Block Diagram</SPAN></A>
-		
-		<BR></BR>
-		<A HREF="{$trg_html_}#_ExternalPorts" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">External Ports</SPAN></A>
-		
-		<BR></BR>
-		<xsl:variable name="proc_CNT" select="count(MODULES/MODULE[(@MODCLASS = 'PROCESSOR')])"/>
-		
-		<xsl:if test="MODULES/MODULE[(@MODCLASS='PROCESSOR')]">
-		<DIV class="trigger" onClick="showBranch('Processors'); swapBranchImg('BranchImg_Processors');">
-			<xsl:if test="$proc_CNT &gt; 1">
-				<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Processors&#160;</SPAN>
-			</xsl:if>	
-			<xsl:if test="not($proc_CNT &gt; 1)">
-				<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Processor&#160;</SPAN>
-			</xsl:if>	
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Processors"></IMG>	
-		</DIV>
-		
-		<SPAN class="branch" id="Processors">		
-			<xsl:for-each select="MODULES/MODULE[(@MODCLASS='PROCESSOR')]">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><BR></BR>
-				<xsl:if test="MEMORYMAP/MEMRANGE[(@INSTANCE)]">
-					<A HREF="{$trg_html_}#_{@INSTANCE}_MemoryMap" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;memory map</SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-				</xsl:if>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[(@MODCLASS='DEBUG')]">
-		<DIV class="trigger" onClick="showBranch('Debuggers'); swapBranchImg('BranchImg_Debugger');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Debuggers&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Debugger"></IMG>	
-		</DIV>		
-		
-		<SPAN class="branch" id="Debuggers">		
-			<xsl:for-each select="MODULES/MODULE[(@MODCLASS='DEBUG')]">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>
-		
-		
-		<xsl:if test="MODULES/MODULE[(@MODCLASS='INTERRUPT_CNTLR')]">
-		<DIV class="trigger" onClick="showBranch('Interrupts'); swapBranchImg('BranchImg_Interrupts');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Interrupt Controllers&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Interrupts"></IMG>	
-		</DIV>
-		
-		<SPAN class="branch" id="Interrupts">		
-			<xsl:for-each select="MODULES/MODULE[(@MODCLASS='INTERRUPT_CNTLR')]">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='BUS' or @MODCLASS='BUS_ARBITER']">
-		<DIV class="trigger" onClick="showBranch('Busses'); swapBranchImg('BranchImg_Busses');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Busses&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Busses"></IMG>	
-		</DIV>		
-			
-		<SPAN class="branch" id="Busses">		
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='BUS' or @MODCLASS='BUS_ARBITER']">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='BUS_BRIDGE']">
-		<DIV class="trigger" onClick="showBranch('Bridges'); swapBranchImg('BranchImg_Bridges');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Bridges&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Bridges"></IMG>	
-		</DIV>	
-		<SPAN class="branch" id="Bridges">
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='BUS_BRIDGE']">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='MEMORY']">
-		<DIV class="trigger" onClick="showBranch('Memory'); swapBranchImg('BranchImg_Memory');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Memory&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Memory"></IMG>	
-		</DIV>		
-		<SPAN class="branch" id="Memory">
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='MEMORY']">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>		
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='MEMORY_CNTLR']">
-		<DIV class="trigger" onClick="showBranch('MemoryCntlr'); swapBranchImg('BranchImg_MemoryCntlr');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Memory Controllers&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_MemoryCntlr"></IMG>	
-		</DIV>		
-		<SPAN class="branch" id="MemoryCntlr">
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='MEMORY_CNTLR']">
-			<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>		
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='PERIPHERAL']">
-		<DIV class="trigger" onClick="showBranch('Peripheral'); swapBranchImg('BranchImg_Peripheral');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Peripherals&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Peripheral"></IMG>	
-		</DIV>	
-		<SPAN class="branch" id="Peripheral">
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='PERIPHERAL']">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Courier Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>		
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='IP']">
-		<DIV class="trigger" onClick="showBranch('IP'); swapBranchImg('BranchImg_IP');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">IP&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_IP"></IMG>	
-		</DIV>
-		<SPAN class="branch" id="IP">
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='IP']">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Courier Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>			
-		
-		<A HREF="{$trg_html_}#_TimingInfo" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Timing Information</SPAN></A><BR></BR>
-<!--		
--->	
-
-	</TD>
-	
-</TABLE>
-</xsl:template>
-
-</xsl:stylesheet>
-<!-- ======================= END LAYOUT TABLE OF CONTENT TREE =================================== -->
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd
deleted file mode 100644
index 110f5ce..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd
+++ /dev/null
@@ -1,1704 +0,0 @@
-<!-- =====================================================================
-  This is the DTD for SVG 1.0.
-
-  The specification for SVG that corresponds to this DTD is available at:
-
-    http://www.w3.org/TR/2001/REC-SVG-20010904/
-
-  Copyright (c) 2000 W3C (MIT, INRIA, Keio), All Rights Reserved.
-
-  For SVG 1.0:
-
-    Namespace:
-      http://www.w3.org/2000/svg  
-
-    Public identifier:
-      PUBLIC "-//W3C//DTD SVG 1.0//EN"
-
-    URI for the DTD:
-      http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd
-============================================================================= -->
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: Data types 
-     ============================================================== -->
-
-<!ENTITY % BaselineShiftValue "CDATA">
-    <!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) -->
-
-<!ENTITY % Boolean "(false | true)">
-    <!-- feature specification -->
-
-<!ENTITY % ClassList "CDATA">
-    <!-- list of classes -->
-
-<!ENTITY % ClipValue "CDATA">
-    <!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) -->
-
-<!ENTITY % ClipPathValue "CDATA">
-    <!-- 'clip-path' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % ClipFillRule "(nonzero | evenodd | inherit)">
-    <!-- 'clip-rule' or fill-rule property/attribute value -->
-
-<!ENTITY % ContentType "CDATA">
-    <!-- media type, as per [RFC2045] -->
-
-<!ENTITY % Coordinate "CDATA">
-    <!-- a <coordinate> -->
-
-<!ENTITY % Coordinates "CDATA">
-    <!-- a list of <coordinate>s -->
-
-<!ENTITY % Color "CDATA">
-    <!-- a <color> value -->
-
-<!ENTITY % CursorValue "CDATA">
-    <!-- 'cursor' property/attribute value (e.g., 'crosshair', %URI;) -->
-
-<!ENTITY % EnableBackgroundValue "CDATA">
-    <!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') -->
-
-<!ENTITY % ExtensionList "CDATA">
-    <!-- extension list specification -->
-
-<!ENTITY % FeatureList "CDATA">
-    <!-- feature list specification -->
-
-<!ENTITY % FilterValue "CDATA">
-    <!-- 'filter' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % FontFamilyValue "CDATA">
-    <!-- 'font-family' property/attribute value (i.e., list of fonts) -->
-
-<!ENTITY % FontSizeValue "CDATA">
-    <!-- 'font-size' property/attribute value -->
-
-<!ENTITY % FontSizeAdjustValue "CDATA">
-    <!-- 'font-size-adjust' property/attribute value -->
-
-<!ENTITY % GlyphOrientationHorizontalValue "CDATA">
-    <!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) -->
-
-<!ENTITY % GlyphOrientationVerticalValue "CDATA">
-    <!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) -->
-
-<!ENTITY % Integer "CDATA">
-    <!-- a <integer> -->
-
-<!ENTITY % KerningValue "CDATA">
-    <!-- 'kerning' property/attribute value (e.g., auto | <length>) -->
-
-<!ENTITY % LanguageCode "NMTOKEN">
-    <!-- a language code, as per [RFC3066] -->
-
-<!ENTITY % LanguageCodes "CDATA">
-    <!-- comma-separated list of language codes, as per [RFC3066] -->
-
-<!ENTITY % Length "CDATA">
-    <!-- a <length> -->
-
-<!ENTITY % Lengths "CDATA">
-    <!-- a list of <length>s -->
-
-<!ENTITY % LinkTarget "NMTOKEN">
-    <!-- link to this target -->
-
-<!ENTITY % MarkerValue "CDATA">
-    <!-- 'marker' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % MaskValue "CDATA">
-    <!-- 'mask' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % MediaDesc "CDATA">
-    <!-- comma-separated list of media descriptors. -->
-
-<!ENTITY % Number "CDATA">
-    <!-- a <number> -->
-
-<!ENTITY % NumberOptionalNumber "CDATA">
-    <!-- list of <number>s, but at least one and at most two -->
-
-<!ENTITY % NumberOrPercentage "CDATA">
-    <!-- a <number> or a  <percentage> -->
-
-<!ENTITY % Numbers "CDATA">
-    <!-- a list of <number>s -->
-
-<!ENTITY % OpacityValue "CDATA">
-    <!-- opacity value (e.g., <number>) -->
-
-<!ENTITY % Paint "CDATA">
-    <!-- a 'fill' or 'stroke' property/attribute value: <paint> -->
-
-<!ENTITY % PathData "CDATA">
-    <!-- a path data specification -->
-
-<!ENTITY % Points "CDATA">
-    <!-- a list of points -->
-
-<!ENTITY % PreserveAspectRatioSpec "CDATA">
-    <!-- 'preserveAspectRatio' attribute specification -->
-
-<!ENTITY % Script "CDATA">
-    <!-- script expression -->
-
-<!ENTITY % SpacingValue "CDATA">
-    <!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., normal | <length>) -->
-
-<!ENTITY % StrokeDashArrayValue "CDATA">
-    <!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) -->
-
-<!ENTITY % StrokeDashOffsetValue "CDATA">
-    <!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) -->
-
-<!ENTITY % StrokeMiterLimitValue "CDATA">
-    <!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) -->
-
-<!ENTITY % StrokeWidthValue "CDATA">
-    <!-- 'stroke-width' property/attribute value (e.g., <length>) -->
-
-<!ENTITY % StructuredText
-  "content CDATA #FIXED 'structured text'" >
-
-<!ENTITY % StyleSheet "CDATA">
-    <!-- style sheet data -->
-
-<!ENTITY % SVGColor "CDATA">
-    <!-- An SVG color value (RGB plus optional ICC) -->
-
-<!ENTITY % Text "CDATA">
-    <!-- arbitrary text string -->
-
-<!ENTITY % TextDecorationValue "CDATA">
-    <!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') -->
-
-<!ENTITY % TransformList "CDATA">
-    <!-- list of transforms -->
-
-<!ENTITY % URI "CDATA">
-    <!-- a Uniform Resource Identifier, see [URI] -->
-
-<!ENTITY % ViewBoxSpec "CDATA">
-    <!-- 'viewBox' attribute specification -->
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: Collections of common attributes 
-     ============================================================== -->
-
-<!-- All elements have an ID. -->
-<!ENTITY % stdAttrs
- "id ID #IMPLIED
-  xml:base %URI; #IMPLIED" >
-
-<!-- Common attributes for elements that might contain character data content. -->
-<!ENTITY % langSpaceAttrs
- "xml:lang %LanguageCode; #IMPLIED
-  xml:space (default|preserve) #IMPLIED" >
-
-<!-- Common attributes to check for system capabilities. -->
-<!ENTITY % testAttrs
- "requiredFeatures %FeatureList; #IMPLIED
-  requiredExtensions %ExtensionList; #IMPLIED
-  systemLanguage %LanguageCodes; #IMPLIED" >
-
-<!-- For most uses of URI referencing:
-        standard XLink attributes other than xlink:href. -->
-<!ENTITY % xlinkRefAttrs
- "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
-  xlink:type (simple) #FIXED 'simple' 
-  xlink:role %URI; #IMPLIED
-  xlink:arcrole %URI; #IMPLIED
-  xlink:title CDATA #IMPLIED
-  xlink:show (other) 'other'
-  xlink:actuate (onLoad) #FIXED 'onLoad'" >
-
-<!-- Standard XLink attributes for uses of URI referencing where xlink:show is 'embed' -->
-<!ENTITY % xlinkRefAttrsEmbed
- "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
-  xlink:type (simple) #FIXED 'simple' 
-  xlink:role %URI; #IMPLIED
-  xlink:arcrole %URI; #IMPLIED
-  xlink:title CDATA #IMPLIED
-  xlink:show (embed) 'embed'
-  xlink:actuate (onLoad) #FIXED 'onLoad'" >
-
-<!ENTITY % graphicsElementEvents
-  "onfocusin %Script; #IMPLIED
-   onfocusout %Script; #IMPLIED
-   onactivate %Script; #IMPLIED
-   onclick %Script; #IMPLIED
-   onmousedown %Script; #IMPLIED
-   onmouseup %Script; #IMPLIED
-   onmouseover %Script; #IMPLIED
-   onmousemove %Script; #IMPLIED
-   onmouseout %Script; #IMPLIED
-   onload %Script; #IMPLIED" >
-
-<!ENTITY % documentEvents
-  "onunload %Script; #IMPLIED
-   onabort %Script; #IMPLIED
-   onerror %Script; #IMPLIED
-   onresize %Script; #IMPLIED
-   onscroll %Script; #IMPLIED
-   onzoom %Script; #IMPLIED" >
-
-<!ENTITY % animationEvents
-  "onbegin %Script; #IMPLIED
-   onend %Script; #IMPLIED
-   onrepeat %Script; #IMPLIED" >
-
-<!-- This entity allows for at most one of desc, title and metadata,
-     supplied in any order -->
-<!ENTITY % descTitleMetadata
-          "(((desc,((title,metadata?)|(metadata,title?))?)|
-          (title,((desc,metadata?)|(metadata,desc?))?)|
-          (metadata,((desc,title?)|(title,desc?))?))?)" >
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: Collections of presentation attributes 
-     ============================================================== -->
-
-<!-- The following presentation attributes have to do with specifying color. -->
-<!ENTITY % PresentationAttributes-Color
-  "color %Color; #IMPLIED
-   color-interpolation (auto | sRGB | linearRGB | inherit) #IMPLIED
-   color-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to container elements. -->
-<!ENTITY % PresentationAttributes-Containers
-  "enable-background %EnableBackgroundValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to 'feFlood' elements. -->
-<!ENTITY % PresentationAttributes-feFlood
-  "flood-color %SVGColor; #IMPLIED
-   flood-opacity %OpacityValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to filling and stroking operations. -->
-<!ENTITY % PresentationAttributes-FillStroke
-  "fill %Paint; #IMPLIED
-   fill-opacity %OpacityValue; #IMPLIED
-   fill-rule %ClipFillRule; #IMPLIED
-   stroke %Paint; #IMPLIED
-   stroke-dasharray %StrokeDashArrayValue; #IMPLIED
-   stroke-dashoffset %StrokeDashOffsetValue; #IMPLIED
-   stroke-linecap (butt | round | square | inherit) #IMPLIED
-   stroke-linejoin (miter | round | bevel | inherit) #IMPLIED
-   stroke-miterlimit %StrokeMiterLimitValue; #IMPLIED
-   stroke-opacity %OpacityValue; #IMPLIED
-   stroke-width %StrokeWidthValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to filter primitives. -->
-<!ENTITY % PresentationAttributes-FilterPrimitives
-  "color-interpolation-filters (auto | sRGB | linearRGB | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes have to do with selecting a font to use. -->
-<!ENTITY % PresentationAttributes-FontSpecification
-  "font-family %FontFamilyValue; #IMPLIED
-   font-size %FontSizeValue; #IMPLIED
-   font-size-adjust %FontSizeAdjustValue; #IMPLIED
-   font-stretch (normal | wider | narrower | ultra-condensed | extra-condensed |
-                 condensed | semi-condensed | semi-expanded | expanded |
-                 extra-expanded | ultra-expanded | inherit) #IMPLIED
-   font-style (normal | italic | oblique | inherit) #IMPLIED
-   font-variant (normal | small-caps | inherit) #IMPLIED
-   font-weight (normal | bold | bolder | lighter | 100 | 200 | 300 |
-               400 | 500 | 600 | 700 | 800 | 900 | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to gradient 'stop' elements. -->
-<!ENTITY % PresentationAttributes-Gradients
-  "stop-color %SVGColor; #IMPLIED
-   stop-opacity %OpacityValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to graphics elements. -->
-<!ENTITY % PresentationAttributes-Graphics
-  "clip-path %ClipPathValue; #IMPLIED
-   clip-rule %ClipFillRule; #IMPLIED
-   cursor %CursorValue; #IMPLIED
-   display (inline | block | list-item | run-in | compact | marker |
-            table | inline-table | table-row-group | table-header-group |
-            table-footer-group | table-row | table-column-group | table-column |
-            table-cell | table-caption | none | inherit) #IMPLIED
-   filter %FilterValue; #IMPLIED
-   image-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED
-   mask %MaskValue; #IMPLIED
-   opacity %OpacityValue; #IMPLIED
-   pointer-events (visiblePainted | visibleFill | visibleStroke | visible |
-                   painted | fill | stroke | all | none | inherit) #IMPLIED
-   shape-rendering (auto | optimizeSpeed | crispEdges | geometricPrecision | inherit) #IMPLIED
-   text-rendering (auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit) #IMPLIED
-   visibility (visible | hidden | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to 'image' elements. -->
-<!ENTITY % PresentationAttributes-Images
-  "color-profile CDATA #IMPLIED " >
-
-<!--The following presentation attributes apply to 'feDiffuseLighting' and 'feSpecularLighting' elements. -->
-<!ENTITY % PresentationAttributes-LightingEffects
-  "lighting-color %SVGColor; #IMPLIED " >
-
-<!-- The following presentation attributes apply to marker operations. -->
-<!ENTITY % PresentationAttributes-Markers
-  "marker-start %MarkerValue; #IMPLIED
-   marker-mid %MarkerValue; #IMPLIED
-   marker-end %MarkerValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to text content elements. -->
-<!ENTITY % PresentationAttributes-TextContentElements
-  "alignment-baseline (baseline | top | before-edge | text-top | text-before-edge |
-                        middle | bottom | after-edge | text-bottom | text-after-edge |
-                        ideographic | lower | hanging | mathematical | inherit) #IMPLIED
-   baseline-shift %BaselineShiftValue; #IMPLIED
-   direction (ltr | rtl | inherit) #IMPLIED
-   dominant-baseline (auto | autosense-script | no-change | reset|
-                      ideographic | lower | hanging | mathematical | inherit ) #IMPLIED
-   glyph-orientation-horizontal %GlyphOrientationHorizontalValue; #IMPLIED
-   glyph-orientation-vertical %GlyphOrientationVerticalValue; #IMPLIED
-   kerning %KerningValue; #IMPLIED
-   letter-spacing %SpacingValue; #IMPLIED
-   text-anchor (start | middle | end | inherit) #IMPLIED
-   text-decoration %TextDecorationValue; #IMPLIED
-   unicode-bidi (normal | embed | bidi-override | inherit) #IMPLIED
-   word-spacing %SpacingValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to 'text' elements. -->
-<!ENTITY % PresentationAttributes-TextElements
-  "writing-mode (lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to elements that establish viewports. -->
-<!ENTITY % PresentationAttributes-Viewports
-  "clip %ClipValue; #IMPLIED
-   overflow (visible | hidden | scroll | auto | inherit) #IMPLIED " >
-
-<!--The following represents the complete list of presentation attributes. -->
-<!ENTITY % PresentationAttributes-All
-  "%PresentationAttributes-Color;
-   %PresentationAttributes-Containers;
-   %PresentationAttributes-feFlood;
-   %PresentationAttributes-FillStroke;
-   %PresentationAttributes-FilterPrimitives;
-   %PresentationAttributes-FontSpecification;
-   %PresentationAttributes-Gradients;
-   %PresentationAttributes-Graphics;
-   %PresentationAttributes-Images;
-   %PresentationAttributes-LightingEffects;
-   %PresentationAttributes-Markers;
-   %PresentationAttributes-TextContentElements;
-   %PresentationAttributes-TextElements;
-   %PresentationAttributes-Viewports;" >
-
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: DTD extensions 
-     ============================================================== -->
-
-<!-- Allow for extending the DTD with internal subset for 
-     container and graphics elements -->
-<!ENTITY % ceExt "" >
-<!ENTITY % geExt "" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Document Structure 
-     ============================================================== -->
-
-<!ENTITY % svgExt "" >
-<!ELEMENT svg (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%svgExt;)* >
-<!ATTLIST svg
-  xmlns CDATA #FIXED "http://www.w3.org/2000/svg"
-  xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED 
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  zoomAndPan (disable | magnify) 'magnify'
-  %graphicsElementEvents;
-  %documentEvents;
-  version %Number; #FIXED "1.0"
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED
-  contentScriptType %ContentType; "text/ecmascript"
-  contentStyleType %ContentType; "text/css" >
-
-<!ENTITY % gExt "" >
-<!ELEMENT g (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%gExt;)* >
-<!ATTLIST g
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;  >
-
-<!ENTITY % defsExt "" >
-<!ELEMENT defs (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%defsExt;)* >
-<!ATTLIST defs
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;  >
-
-<!ENTITY % descExt "" >
-<!ELEMENT desc (#PCDATA %descExt;)* >
-<!ATTLIST desc
-  %stdAttrs;
-  %langSpaceAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %StructuredText; >
-
-<!ENTITY % titleExt "" >
-<!ELEMENT title (#PCDATA %titleExt;)* >
-<!ATTLIST title
-  %stdAttrs;
-  %langSpaceAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %StructuredText; >
-
-<!ENTITY % symbolExt "" >
-<!ELEMENT symbol (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%symbolExt;)* >
-<!ATTLIST symbol
-  %stdAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  %graphicsElementEvents; >
-
-<!ENTITY % useExt "" >
-<!ELEMENT use (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                   %geExt;%useExt;)*) >
-<!ATTLIST use
-  %stdAttrs;
-  %xlinkRefAttrsEmbed;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED >
-
-<!ENTITY % imageExt "" >
-<!ELEMENT image (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                   %geExt;%imageExt;)*) >
-<!ATTLIST image
-  %stdAttrs;
-  %xlinkRefAttrsEmbed;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Images;
-  %PresentationAttributes-Viewports;
-  transform %TransformList; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #REQUIRED
-  height %Length; #REQUIRED >
-
-<!ENTITY % switchExt "" >
-<!ELEMENT switch (%descTitleMetadata;,
-                  (path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|switch|a|foreignObject|
-                   animate|set|animateMotion|animateColor|animateTransform
-                   %ceExt;%switchExt;)*) >
-<!ATTLIST switch
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents; >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Styling 
-     ============================================================== -->
-
-<!ELEMENT style (#PCDATA) >
-<!ATTLIST style 
-  %stdAttrs;
-  xml:space (preserve) #FIXED "preserve"
-  type %ContentType; #REQUIRED
-  media %MediaDesc; #IMPLIED
-  title %Text; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Paths
-     ============================================================== -->
-
-<!ENTITY % pathExt "" >
-<!ELEMENT path (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%pathExt;)*) >
-<!ATTLIST path
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  d %PathData; #REQUIRED
-  pathLength %Number; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Basic Shapes
-     ============================================================== -->
-
-<!ENTITY % rectExt "" >
-<!ELEMENT rect (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%rectExt;)*) >
-<!ATTLIST rect
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #REQUIRED
-  height %Length; #REQUIRED
-  rx %Length; #IMPLIED
-  ry %Length; #IMPLIED >
-
-<!ENTITY % circleExt "" >
-<!ELEMENT circle (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%circleExt;)*) >
-<!ATTLIST circle
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  cx %Coordinate; #IMPLIED
-  cy %Coordinate; #IMPLIED
-  r %Length; #REQUIRED >
-
-<!ENTITY % ellipseExt "" >
-<!ELEMENT ellipse (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%ellipseExt;)*) >
-<!ATTLIST ellipse
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  cx %Coordinate; #IMPLIED
-  cy %Coordinate; #IMPLIED
-  rx %Length; #REQUIRED
-  ry %Length; #REQUIRED >
-
-<!ENTITY % lineExt "" >
-<!ELEMENT line (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%lineExt;)*) >
-<!ATTLIST line
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x1 %Coordinate; #IMPLIED
-  y1 %Coordinate; #IMPLIED
-  x2 %Coordinate; #IMPLIED
-  y2 %Coordinate; #IMPLIED >
-
-<!ENTITY % polylineExt "" >
-<!ELEMENT polyline (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%polylineExt;)*) >
-<!ATTLIST polyline
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  points %Points; #REQUIRED >
-
-<!ENTITY % polygonExt "" >
-<!ELEMENT polygon (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%polygonExt;)*) >
-<!ATTLIST polygon
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  points %Points; #REQUIRED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Text
-     ============================================================== -->
-
-<!ENTITY % textExt "" >
-<!ELEMENT text (#PCDATA|desc|title|metadata|
-                tspan|tref|textPath|altGlyph|a|animate|set|
-                animateMotion|animateColor|animateTransform
-                %geExt;%textExt;)* >
-<!ATTLIST text
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %PresentationAttributes-TextElements;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >
-
-<!ENTITY % tspanExt "" >
-<!ELEMENT tspan (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
-                %tspanExt;)* >
-<!ATTLIST tspan
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >
-
-<!ENTITY % trefExt "" >
-<!ELEMENT tref (desc|title|metadata|animate|set|animateColor
-                %trefExt;)* >
-<!ATTLIST tref
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >
-
-<!ENTITY % textPathExt "" >
-<!ELEMENT textPath (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
-                %textPathExt;)* >
-<!ATTLIST textPath
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  %langSpaceAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  startOffset %Length; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED
-  method (align|stretch) #IMPLIED
-  spacing (auto|exact) #IMPLIED >
-
-<!ENTITY % altGlyphExt "" >
-<!ELEMENT altGlyph (#PCDATA %altGlyphExt;)* >
-<!ATTLIST altGlyph
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED 
-  glyphRef CDATA #IMPLIED
-  format CDATA #IMPLIED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED >
-
-<!ENTITY % altGlyphDefExt "" >
-<!ELEMENT altGlyphDef ((glyphRef+|altGlyphItem+) %altGlyphDefExt;) >
-<!ATTLIST altGlyphDef
-  %stdAttrs; >
-
-<!ENTITY % altGlyphItemExt "" >
-<!ELEMENT altGlyphItem (glyphRef+ %altGlyphItemExt;) >
-<!ATTLIST altGlyphItem
-  %stdAttrs; >
-
-<!ELEMENT glyphRef EMPTY >
-<!ATTLIST glyphRef
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-FontSpecification;
-  glyphRef CDATA #IMPLIED
-  format CDATA #IMPLIED
-  x %Number; #IMPLIED
-  y %Number; #IMPLIED
-  dx %Number; #IMPLIED
-  dy %Number; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Painting: Filling, Stroking and Marker Symbols 
-     ============================================================== -->
-
-<!ENTITY % markerExt "" >
-<!ELEMENT marker (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%markerExt;)* >
-<!ATTLIST marker
-  %stdAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  refX %Coordinate; #IMPLIED
-  refY %Coordinate; #IMPLIED
-  markerUnits (strokeWidth | userSpaceOnUse) #IMPLIED
-  markerWidth  %Length; #IMPLIED
-  markerHeight %Length; #IMPLIED
-  orient CDATA #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Color 
-     ============================================================== -->
-
-<!ELEMENT color-profile (%descTitleMetadata;) >
-<!ATTLIST color-profile 
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  local CDATA #IMPLIED  
-  name CDATA #REQUIRED
-  rendering-intent (auto | perceptual | relative-colorimetric | saturation | absolute-colorimetric) "auto" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Gradients and Patterns 
-     ============================================================== -->
-
-<!ENTITY % linearGradientExt "" >
-<!ELEMENT linearGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
-                   %linearGradientExt;)*) >
-<!ATTLIST linearGradient
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Gradients;
-  gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  gradientTransform %TransformList; #IMPLIED
-  x1 %Coordinate; #IMPLIED
-  y1 %Coordinate; #IMPLIED
-  x2 %Coordinate; #IMPLIED
-  y2 %Coordinate; #IMPLIED
-  spreadMethod (pad | reflect | repeat) #IMPLIED >
-
-
-<!ENTITY % radialGradientExt "" >
-<!ELEMENT radialGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
-                   %radialGradientExt;)*) >
-<!ATTLIST radialGradient
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Gradients;
-  gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  gradientTransform %TransformList; #IMPLIED
-  cx %Coordinate; #IMPLIED
-  cy %Coordinate; #IMPLIED
-  r %Length; #IMPLIED
-  fx %Coordinate; #IMPLIED
-  fy %Coordinate; #IMPLIED
-  spreadMethod (pad | reflect | repeat) #IMPLIED >
-
-
-<!ENTITY % stopExt "" >
-<!ELEMENT stop (animate|set|animateColor
-                   %stopExt;)* >
-<!ATTLIST stop
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Gradients;
-  offset %NumberOrPercentage; #REQUIRED >
-
-<!ENTITY % patternExt "" >
-<!ELEMENT pattern (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%patternExt;)* >
-<!ATTLIST pattern
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  patternUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  patternContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  patternTransform %TransformList; #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Clipping, Masking and Compositing 
-     ============================================================== -->
-
-<!ENTITY % clipPathExt "" >
-<!ELEMENT clipPath (%descTitleMetadata;,
-                    (path|text|rect|circle|ellipse|line|polyline|polygon|
-                     use|animate|set|animateMotion|animateColor|animateTransform
-                     %ceExt;%clipPathExt;)*) >
-<!ATTLIST clipPath
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %PresentationAttributes-TextElements;
-  transform %TransformList; #IMPLIED
-  clipPathUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED >
-
-<!ENTITY % maskExt "" >
-<!ELEMENT mask (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%maskExt;)*  >
-<!ATTLIST mask
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  maskUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  maskContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Filter Effects
-     ============================================================== -->
-
-<!ENTITY % filterExt "" >
-<!ELEMENT filter (%descTitleMetadata;,(feBlend|feFlood|
-  feColorMatrix|feComponentTransfer|
-  feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap|
-  feGaussianBlur|feImage|feMerge|
-  feMorphology|feOffset|feSpecularLighting|
-  feTile|feTurbulence|
-  animate|set
-  %filterExt;)*) >
-<!ATTLIST filter
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  filterUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  primitiveUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED
-  filterRes %NumberOptionalNumber; #IMPLIED >
-
-<!ENTITY % filter_primitive_attributes
-  "x %Coordinate; #IMPLIED
-   y %Coordinate; #IMPLIED
-   width %Length; #IMPLIED
-   height %Length; #IMPLIED
-   result CDATA #IMPLIED" >
-
-<!ENTITY % filter_primitive_attributes_with_in
-  "%filter_primitive_attributes;
-   in CDATA #IMPLIED">
-
-<!ELEMENT feDistantLight (animate|set)* >
-<!ATTLIST feDistantLight
-  %stdAttrs;
-  azimuth %Number; #IMPLIED
-  elevation %Number; #IMPLIED >
-
-<!ELEMENT fePointLight (animate|set)* >
-<!ATTLIST fePointLight
-  %stdAttrs;
-  x %Number; #IMPLIED
-  y %Number; #IMPLIED
-  z %Number; #IMPLIED >
-
-<!ELEMENT feSpotLight (animate|set)* >
-<!ATTLIST feSpotLight
-  %stdAttrs;
-  x %Number; #IMPLIED
-  y %Number; #IMPLIED
-  z %Number; #IMPLIED
-  pointsAtX %Number; #IMPLIED
-  pointsAtY %Number; #IMPLIED
-  pointsAtZ %Number; #IMPLIED
-  specularExponent %Number; #IMPLIED
-  limitingConeAngle %Number; #IMPLIED >
-
-<!ELEMENT feBlend (animate|set)* >
-<!ATTLIST feBlend
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  in2 CDATA #REQUIRED
-  mode (normal | multiply | screen | darken | lighten) "normal" >
-
-<!ELEMENT feColorMatrix (animate|set)* >
-<!ATTLIST feColorMatrix
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  type (matrix | saturate | hueRotate | luminanceToAlpha) "matrix"
-  values CDATA #IMPLIED >
-
-<!ELEMENT feComponentTransfer (feFuncR?,feFuncG?,feFuncB?,feFuncA?) >
-<!ATTLIST feComponentTransfer
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in; >
-
-<!ENTITY % component_transfer_function_attributes
-  "type (identity | table | discrete | linear | gamma) #REQUIRED
-   tableValues CDATA #IMPLIED
-   slope %Number; #IMPLIED
-   intercept %Number; #IMPLIED
-   amplitude %Number; #IMPLIED
-   exponent %Number; #IMPLIED
-   offset %Number; #IMPLIED" >
-
-<!ELEMENT feFuncR (animate|set)* >
-<!ATTLIST feFuncR
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feFuncG (animate|set)* >
-<!ATTLIST feFuncG
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feFuncB (animate|set)* >
-<!ATTLIST feFuncB
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feFuncA (animate|set)* >
-<!ATTLIST feFuncA
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feComposite (animate|set)* >
-<!ATTLIST feComposite
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  in2 CDATA #REQUIRED
-  operator (over | in | out | atop | xor | arithmetic) "over"
-  k1 %Number; #IMPLIED
-  k2 %Number; #IMPLIED
-  k3 %Number; #IMPLIED
-  k4 %Number; #IMPLIED >
-
-<!ELEMENT feConvolveMatrix (animate|set)* >
-<!ATTLIST feConvolveMatrix
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  order %NumberOptionalNumber; #REQUIRED
-  kernelMatrix CDATA #REQUIRED
-  divisor %Number; #IMPLIED
-  bias %Number; #IMPLIED
-  targetX %Integer; #IMPLIED
-  targetY %Integer; #IMPLIED
-  edgeMode (duplicate|wrap|none) "duplicate" 
-  kernelUnitLength %NumberOptionalNumber; #IMPLIED 
-  preserveAlpha %Boolean; #IMPLIED >
-
-<!ELEMENT feDiffuseLighting ((feDistantLight|fePointLight|feSpotLight),(animate|set|animateColor)*) >
-<!ATTLIST feDiffuseLighting
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FilterPrimitives;
-  %PresentationAttributes-LightingEffects;
-  %filter_primitive_attributes_with_in;
-  surfaceScale %Number; #IMPLIED
-  diffuseConstant %Number; #IMPLIED 
-  kernelUnitLength %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feDisplacementMap (animate|set)* >
-<!ATTLIST feDisplacementMap
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  in2 CDATA #REQUIRED
-  scale %Number; #IMPLIED
-  xChannelSelector (R | G | B | A) "A"
-  yChannelSelector (R | G | B | A) "A" >
-
-<!ELEMENT feFlood (animate|set|animateColor)* >
-<!ATTLIST feFlood
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-feFlood;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in; >
-
-<!ELEMENT feGaussianBlur (animate|set)* >
-<!ATTLIST feGaussianBlur
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  stdDeviation %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feImage (animate|set|animateTransform)* >
-<!ATTLIST feImage
-  %stdAttrs;
-  %xlinkRefAttrsEmbed;
-  xlink:href %URI; #REQUIRED
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  %filter_primitive_attributes;
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet' >
-
-<!ELEMENT feMerge (feMergeNode)* >
-<!ATTLIST feMerge
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes; >
-
-<!ELEMENT feMergeNode (animate|set)* >
-<!ATTLIST feMergeNode
-  %stdAttrs;
-  in CDATA #IMPLIED >
-
-<!ELEMENT feMorphology (animate|set)* >
-<!ATTLIST feMorphology
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  operator (erode | dilate) "erode"
-  radius %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feOffset (animate|set)* >
-<!ATTLIST feOffset
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  dx %Number; #IMPLIED
-  dy %Number; #IMPLIED >
-
-<!ELEMENT feSpecularLighting ((feDistantLight|fePointLight|feSpotLight),(animate|set|animateColor)*) >
-<!ATTLIST feSpecularLighting
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FilterPrimitives;
-  %PresentationAttributes-LightingEffects;
-  %filter_primitive_attributes_with_in;
-  surfaceScale %Number; #IMPLIED
-  specularConstant %Number; #IMPLIED
-  specularExponent %Number; #IMPLIED 
-  kernelUnitLength %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feTile (animate|set)* >
-<!ATTLIST feTile
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in; >
-
-<!ELEMENT feTurbulence (animate|set)* >
-<!ATTLIST feTurbulence
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes;
-  baseFrequency %NumberOptionalNumber; #IMPLIED
-  numOctaves %Integer; #IMPLIED
-  seed %Number; #IMPLIED
-  stitchTiles (stitch | noStitch) "noStitch"
-  type (fractalNoise | turbulence) "turbulence" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Interactivity 
-     ============================================================== -->
-
-<!ELEMENT cursor (%descTitleMetadata;) >
-<!ATTLIST cursor
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Linking
-     ============================================================== -->
-
-<!ENTITY % aExt "" >
-<!ELEMENT a       (#PCDATA|desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%aExt;)* >
-<!ATTLIST a
-  %stdAttrs;
-  xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
-  xlink:type (simple) #FIXED "simple" 
-  xlink:role %URI; #IMPLIED
-  xlink:arcrole %URI; #IMPLIED
-  xlink:title CDATA #IMPLIED
-  xlink:show (new|replace) 'replace'
-  xlink:actuate (onRequest) #FIXED 'onRequest'
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  target %LinkTarget; #IMPLIED >
-
-<!ENTITY % viewExt "" >
-<!ELEMENT view (%descTitleMetadata;%viewExt;) >
-<!ATTLIST view
-  %stdAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  zoomAndPan (disable | magnify) 'magnify' 
-  viewTarget CDATA #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Scripting 
-     ============================================================== -->
-
-<!ELEMENT script (#PCDATA) >
-<!ATTLIST script
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  externalResourcesRequired %Boolean; #IMPLIED
-  type %ContentType; #REQUIRED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Animation 
-     ============================================================== -->
-
-<!ENTITY % animElementAttrs
- "%xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED" >
-
-<!ENTITY % animAttributeAttrs
- "attributeName  CDATA  #REQUIRED
-  attributeType  CDATA  #IMPLIED" >
-
-<!ENTITY % animTimingAttrs
- "begin CDATA #IMPLIED 
-  dur CDATA #IMPLIED
-  end CDATA #IMPLIED
-  min CDATA #IMPLIED
-  max CDATA #IMPLIED
-  restart (always | never | whenNotActive) 'always'
-  repeatCount CDATA #IMPLIED 
-  repeatDur CDATA #IMPLIED
-  fill (remove | freeze) 'remove'" >
-
-<!ENTITY % animValueAttrs
- "calcMode (discrete | linear | paced | spline) 'linear'
-  values CDATA #IMPLIED
-  keyTimes CDATA #IMPLIED
-  keySplines CDATA #IMPLIED
-  from CDATA #IMPLIED
-  to CDATA #IMPLIED
-  by CDATA #IMPLIED" >
-
-<!ENTITY % animAdditionAttrs
- "additive       (replace | sum) 'replace'
-  accumulate     (none | sum) 'none'" >
-
-<!ENTITY % animateExt "" >
-<!ELEMENT animate (%descTitleMetadata;%animateExt;) >
-<!ATTLIST animate
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  %animValueAttrs;
-  %animAdditionAttrs; >
-
-<!ENTITY % setExt "" >
-<!ELEMENT set (%descTitleMetadata;%setExt;) >
-<!ATTLIST set
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  to CDATA #IMPLIED >
-
-<!ENTITY % animateMotionExt "" >
-<!ELEMENT animateMotion (%descTitleMetadata;,mpath? %animateMotionExt;) >
-<!ATTLIST animateMotion
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animTimingAttrs;
-  calcMode (discrete | linear | paced | spline) 'paced'
-  values CDATA #IMPLIED
-  keyTimes CDATA #IMPLIED
-  keySplines CDATA #IMPLIED
-  from CDATA #IMPLIED
-  to CDATA #IMPLIED
-  by CDATA #IMPLIED
-  %animAdditionAttrs;
-  path CDATA #IMPLIED
-  keyPoints CDATA #IMPLIED
-  rotate CDATA #IMPLIED
-  origin CDATA #IMPLIED >
-
-<!ENTITY % mpathExt "" >
-<!ELEMENT mpath (%descTitleMetadata;%mpathExt;) >
-<!ATTLIST mpath
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  externalResourcesRequired %Boolean; #IMPLIED >
-
-<!ENTITY % animateColorExt "" >
-<!ELEMENT animateColor (%descTitleMetadata;%animateColorExt;) >
-<!ATTLIST animateColor
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  %animValueAttrs;
-  %animAdditionAttrs; >
-
-<!ENTITY % animateTransformExt "" >
-<!ELEMENT animateTransform (%descTitleMetadata;%animateTransformExt;) >
-<!ATTLIST animateTransform
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  %animValueAttrs;
-  %animAdditionAttrs;
-  type (translate | scale | rotate | skewX | skewY) "translate" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Fonts 
-     ============================================================== -->
-
-<!ENTITY % fontExt "" >
-<!ELEMENT font (%descTitleMetadata;,font-face,
-                   missing-glyph,(glyph|hkern|vkern %fontExt;)*) >
-<!ATTLIST font
-  %stdAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  horiz-origin-x %Number; #IMPLIED
-  horiz-origin-y %Number; #IMPLIED
-  horiz-adv-x %Number; #REQUIRED
-  vert-origin-x %Number; #IMPLIED
-  vert-origin-y %Number; #IMPLIED
-  vert-adv-y %Number; #IMPLIED >
-
-<!ENTITY % glyphExt "" >
-<!ELEMENT glyph (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %glyphExt;)* >
-<!ATTLIST glyph
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  unicode CDATA #IMPLIED
-  glyph-name CDATA #IMPLIED
-  d %PathData; #IMPLIED
-  orientation CDATA #IMPLIED
-  arabic-form CDATA #IMPLIED
-  lang %LanguageCodes; #IMPLIED
-  horiz-adv-x %Number; #IMPLIED
-  vert-origin-x %Number; #IMPLIED
-  vert-origin-y %Number; #IMPLIED
-  vert-adv-y %Number; #IMPLIED >
-
-<!ENTITY % missing-glyphExt "" >
-<!ELEMENT missing-glyph (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %missing-glyphExt;)* >
-<!ATTLIST missing-glyph
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  d %PathData; #IMPLIED
-  horiz-adv-x %Number; #IMPLIED
-  vert-origin-x %Number; #IMPLIED
-  vert-origin-y %Number; #IMPLIED
-  vert-adv-y %Number; #IMPLIED >
-
-<!ELEMENT hkern EMPTY >
-<!ATTLIST hkern
-  %stdAttrs;
-  u1 CDATA #IMPLIED
-  g1 CDATA #IMPLIED
-  u2 CDATA #IMPLIED
-  g2 CDATA #IMPLIED
-  k %Number; #REQUIRED >
-
-<!ELEMENT vkern EMPTY >
-<!ATTLIST vkern
-  %stdAttrs;
-  u1 CDATA #IMPLIED
-  g1 CDATA #IMPLIED
-  u2 CDATA #IMPLIED
-  g2 CDATA #IMPLIED
-  k %Number; #REQUIRED >
-
-<!ELEMENT font-face (%descTitleMetadata;,font-face-src?,definition-src?) >
-<!ATTLIST font-face 
-  %stdAttrs;
-  font-family CDATA #IMPLIED
-  font-style CDATA #IMPLIED
-  font-variant CDATA #IMPLIED
-  font-weight CDATA #IMPLIED
-  font-stretch CDATA #IMPLIED
-  font-size CDATA #IMPLIED
-  unicode-range CDATA #IMPLIED
-  units-per-em %Number; #IMPLIED
-  panose-1 CDATA #IMPLIED
-  stemv %Number; #IMPLIED
-  stemh %Number; #IMPLIED
-  slope %Number; #IMPLIED
-  cap-height %Number; #IMPLIED
-  x-height %Number; #IMPLIED
-  accent-height %Number; #IMPLIED
-  ascent %Number; #IMPLIED
-  descent %Number; #IMPLIED
-  widths CDATA #IMPLIED
-  bbox CDATA #IMPLIED
-  ideographic %Number; #IMPLIED
-  alphabetic %Number; #IMPLIED
-  mathematical %Number; #IMPLIED
-  hanging %Number; #IMPLIED
-  v-ideographic %Number; #IMPLIED
-  v-alphabetic %Number; #IMPLIED
-  v-mathematical %Number; #IMPLIED
-  v-hanging %Number; #IMPLIED
-  underline-position %Number; #IMPLIED
-  underline-thickness %Number; #IMPLIED
-  strikethrough-position %Number; #IMPLIED
-  strikethrough-thickness %Number; #IMPLIED
-  overline-position %Number; #IMPLIED
-  overline-thickness %Number; #IMPLIED >
-
-<!ELEMENT font-face-src (font-face-uri|font-face-name)+ >
-<!ATTLIST font-face-src 
-  %stdAttrs; >
-
-<!ELEMENT font-face-uri (font-face-format*) >
-<!ATTLIST font-face-uri 
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED >
-
-<!ELEMENT font-face-format EMPTY >
-<!ATTLIST font-face-format 
-  %stdAttrs;
-  string CDATA #IMPLIED >
-
-<!ELEMENT font-face-name EMPTY >
-<!ATTLIST font-face-name 
-  %stdAttrs;
-  name CDATA #IMPLIED >
-
-<!ELEMENT definition-src EMPTY >
-<!ATTLIST definition-src 
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Metadata 
-     ============================================================== -->
-
-<!ENTITY % metadataExt "" >
-<!ELEMENT metadata (#PCDATA %metadataExt;)* >
-<!ATTLIST metadata
-  %stdAttrs; >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Extensibility 
-     ============================================================== -->
-
-<!ENTITY % foreignObjectExt "" >
-<!ELEMENT foreignObject (#PCDATA %ceExt;%foreignObjectExt;)* >
-<!ATTLIST foreignObject
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #REQUIRED
-  height %Length; #REQUIRED
-  %StructuredText; >
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml
deleted file mode 100644
index 132e36c..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml
+++ /dev/null
@@ -1,1821 +0,0 @@
-
-<EDKSYSTEM ARCH="virtex4" EDKVERSION="10.1.01" PART="xc4vfx12ff668-10" SRC="C:/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.xmp" TIMESTAMP="Sun May 11 14:31:02 2008&#xA;">
-
-  <MODULES>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/cpu_ppc405_v1_10_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/ppc405_virtex4_v2_01_a/doc/ppc405_virtex4.pdf" HWVERSION="2.01.a" INSTANCE="ppc405_0" INTERRUPT_CNTLR="xps_intc_0" IPTYPE="PROCESSOR" IS_PLACED="TRUE" MHS_INDEX="0" MODCLASS="PROCESSOR" MODTYPE="ppc405_virtex4" SAV_INDEX="0">
-      <DESCRIPTION TYPE="SHORT">PowerPC 405 Virtex-4</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">A wrapper to instantiate the PowerPC 405 Processor Block primitive</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_DPLB0_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_DPLB0_NATIVE_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_IPLB0_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_IPLB0_NATIVE_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_DPLB1_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_DPLB1_NATIVE_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_IPLB1_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_IPLB1_NATIVE_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_DPLB1_ADDR_BASE" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_DPLB1_ADDR_HIGH" VALUE="0x00000000"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_IPLB1_ADDR_BASE" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_IPLB1_ADDR_HIGH" VALUE="0x00000000"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="12" NAME="C_FASTEST_PLB_CLOCK" VALUE="DPLB0"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_GENERATE_PLB_TIMESPECS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="14" NAME="C_DPLB0_P2P" VALUE="1"/>
-      <PARAMETER MPD_INDEX="15" NAME="C_DPLB1_P2P" VALUE="1"/>
-      <PARAMETER MPD_INDEX="16" NAME="C_IPLB0_P2P" VALUE="1"/>
-      <PARAMETER MPD_INDEX="17" NAME="C_IPLB1_P2P" VALUE="1"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="18" NAME="C_IDCR_BASEADDR" VALUE="0b0100000000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="19" NAME="C_IDCR_HIGHADDR" VALUE="0b0111111111"/>
-      <PARAMETER MPD_INDEX="20" NAME="C_DISABLE_OPERAND_FORWARDING" VALUE="1"/>
-      <PARAMETER MPD_INDEX="21" NAME="C_MMU_ENABLE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="22" NAME="C_DETERMINISTIC_MULT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="23" NAME="C_PLBSYNCBYPASS" VALUE="1"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="24" NAME="C_APU_CONTROL" VALUE="0b0000000000000001"/>
-      <PARAMETER MPD_INDEX="25" NAME="C_APU_UDI_1" VALUE="0b101000011000100110000011"/>
-      <PARAMETER MPD_INDEX="26" NAME="C_APU_UDI_2" VALUE="0b101000111000100110000011"/>
-      <PARAMETER MPD_INDEX="27" NAME="C_APU_UDI_3" VALUE="0b101001011000100111000011"/>
-      <PARAMETER MPD_INDEX="28" NAME="C_APU_UDI_4" VALUE="0b101001111000100111000011"/>
-      <PARAMETER MPD_INDEX="29" NAME="C_APU_UDI_5" VALUE="0b101010011000110000000011"/>
-      <PARAMETER MPD_INDEX="30" NAME="C_APU_UDI_6" VALUE="0b101010111000110000000011"/>
-      <PARAMETER MPD_INDEX="31" NAME="C_APU_UDI_7" VALUE="0b101011011000110001000011"/>
-      <PARAMETER MPD_INDEX="32" NAME="C_APU_UDI_8" VALUE="0b101011111000110001000011"/>
-      <PARAMETER MPD_INDEX="33" NAME="C_PVR_HIGH" VALUE="0b0000"/>
-      <PARAMETER MPD_INDEX="34" NAME="C_PVR_LOW" VALUE="0b0000"/>
-      <BUSINTERFACE BIFRANK="TARGET" BIF_X="0" BIF_Y="0" BUSNAME="jtagppc_0_0" BUSSTD="XIL" BUS_STD="XIL_JTAGPPC" MPD_INDEX="10" NAME="JTAGPPC" ORIENTED="WEST"/>
-      <BUSINTERFACE BIFRANK="MASTER" BIF_X="1" BIF_Y="2" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="2" NAME="IPLB0" ORIENTED="EAST"/>
-      <BUSINTERFACE BIFRANK="MASTER" BIF_X="0" BIF_Y="2" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="1" NAME="DPLB0" ORIENTED="WEST"/>
-      <BUSINTERFACE BIFRANK="TARGET" BIF_X="1" BIF_Y="1" BUSNAME="ppc_reset_bus" BUSSTD="XIL" BUS_STD="XIL_RESETPPC" MPD_INDEX="11" NAME="RESETPPC" ORIENTED="EAST"/>
-      <BUSINTERFACE BIFRANK="MASTER" BIF_X="1" BIF_Y="0" BUSNAME="fcb_v10_0" BUSSTD="FCB" BUS_STD="FCB" MPD_INDEX="7" NAME="MFCB" ORIENTED="EAST"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="6" NAME="CPMC405CLOCK" SIGIS="CLK" SIGNAME="proc_clk_s"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="237" NAME="EICC405EXTINPUTIRQ" SENSITIVITY="EDGE_RISING" SIGIS="INTERRUPT" SIGNAME="EICC405EXTINPUTIRQ"/>
-      <PORT DIR="O" MPD_INDEX="0" NAME="C405CPMCORESLEEPREQ" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="1" NAME="C405CPMMSRCE" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="2" NAME="C405CPMMSREE" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="3" NAME="C405CPMTIMERIRQ" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="4" NAME="C405CPMTIMERRESETREQ" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="5" NAME="C405XXXMACHINECHECK" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="CPMC405CORECLKINACTIVE" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="CPMC405CPUCLKEN" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="CPMC405JTAGCLKEN" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="CPMC405TIMERCLKEN" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="CPMC405TIMERTICK" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="MCBCPUCLKEN" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="MCBTIMEREN" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="MCPPCRST" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="CPMDCRCLK" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="CPMFCMCLK" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="17" NAME="C405RSTCHIPRESETREQ" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="18" NAME="C405RSTCORERESETREQ" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="19" NAME="C405RSTSYSRESETREQ" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="RSTC405RESETCHIP" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="RSTC405RESETCORE" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="RSTC405RESETSYS" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="23" NAME="APUFCMDECODED" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="24" NAME="APUFCMDECUDI" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="25" NAME="APUFCMDECUDIVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="APUFCMENDIAN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="APUFCMFLUSH" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="APUFCMINSTRUCTION" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="APUFCMINSTRVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="APUFCMLOADBYTEEN" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="APUFCMLOADDATA" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="APUFCMLOADDVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="APUFCMOPERANDVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="APUFCMRADATA" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="APUFCMRBDATA" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="APUFCMWRITEBACKOK" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="APUFCMXERCA" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="38" NAME="FCMAPUCR" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="39" NAME="FCMAPUDCDCREN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="40" NAME="FCMAPUDCDFORCEALIGN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="41" NAME="FCMAPUDCDFORCEBESTEERING" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="42" NAME="FCMAPUDCDFPUOP" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="43" NAME="FCMAPUDCDGPRWRITE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="44" NAME="FCMAPUDCDLDSTBYTE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="45" NAME="FCMAPUDCDLDSTDW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="46" NAME="FCMAPUDCDLDSTHW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="47" NAME="FCMAPUDCDLDSTQW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="48" NAME="FCMAPUDCDLDSTWD" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="49" NAME="FCMAPUDCDLOAD" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="50" NAME="FCMAPUDCDPRIVOP" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="51" NAME="FCMAPUDCDRAEN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="52" NAME="FCMAPUDCDRBEN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="53" NAME="FCMAPUDCDSTORE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="54" NAME="FCMAPUDCDTRAPBE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="55" NAME="FCMAPUDCDTRAPLE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="56" NAME="FCMAPUDCDUPDATE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="57" NAME="FCMAPUDCDXERCAEN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="58" NAME="FCMAPUDCDXEROVEN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="59" NAME="FCMAPUDECODEBUSY" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="60" NAME="FCMAPUDONE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="61" NAME="FCMAPUEXCEPTION" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="62" NAME="FCMAPUEXEBLOCKINGMCO" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="63" NAME="FCMAPUEXECRFIELD" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="64" NAME="FCMAPUEXENONBLOCKINGMCO" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="65" NAME="FCMAPUINSTRACK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="66" NAME="FCMAPULOADWAIT" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="67" NAME="FCMAPURESULT" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="68" NAME="FCMAPURESULTVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="69" NAME="FCMAPUSLEEPNOTREADY" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="70" NAME="FCMAPUXERCA" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="71" NAME="FCMAPUXEROV" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="72" NAME="IPLB0_PLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="73" NAME="IPLB0_PLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="74" NAME="IPLB0_PLB_MBusy" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="75" NAME="IPLB0_PLB_MRdErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="76" NAME="IPLB0_PLB_MWrErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="77" NAME="IPLB0_PLB_MWrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="78" NAME="IPLB0_PLB_MWrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="79" NAME="IPLB0_PLB_MAddrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="80" NAME="IPLB0_PLB_MRdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="81" NAME="IPLB0_PLB_MRdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="82" NAME="IPLB0_PLB_MRdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_IPLB0_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="83" NAME="IPLB0_PLB_MRearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="84" NAME="IPLB0_PLB_MSSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="85" NAME="IPLB0_PLB_MTimeout" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="86" NAME="IPLB0_PLB_MRdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="87" NAME="IPLB0_M_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="88" NAME="IPLB0_M_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_IPLB0_DWIDTH/8)-1)]"/>
-      <PORT DIR="O" MPD_INDEX="89" NAME="IPLB0_M_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="90" NAME="IPLB0_M_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="91" NAME="IPLB0_M_request" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="92" NAME="IPLB0_M_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="93" NAME="IPLB0_M_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="94" NAME="IPLB0_M_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="95" NAME="IPLB0_M_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_IPLB0_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="96" NAME="IPLB0_M_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="97" NAME="IPLB0_M_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="98" NAME="IPLB0_M_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="99" NAME="IPLB0_M_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="100" NAME="IPLB0_M_priority" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="101" NAME="IPLB0_M_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="102" NAME="IPLB0_M_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="I" MPD_INDEX="103" NAME="DPLB0_PLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="104" NAME="DPLB0_PLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="105" NAME="DPLB0_PLB_MBusy" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="106" NAME="DPLB0_PLB_MRdErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="107" NAME="DPLB0_PLB_MWrErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="108" NAME="DPLB0_PLB_MWrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="109" NAME="DPLB0_PLB_MWrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="110" NAME="DPLB0_PLB_MAddrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="111" NAME="DPLB0_PLB_MRdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="112" NAME="DPLB0_PLB_MRdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="113" NAME="DPLB0_PLB_MRdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_DPLB0_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="114" NAME="DPLB0_PLB_MRearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="115" NAME="DPLB0_PLB_MSSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="116" NAME="DPLB0_PLB_MTimeout" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="117" NAME="DPLB0_PLB_MRdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="118" NAME="DPLB0_M_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="119" NAME="DPLB0_M_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_DPLB0_DWIDTH/8)-1)]"/>
-      <PORT DIR="O" MPD_INDEX="120" NAME="DPLB0_M_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="121" NAME="DPLB0_M_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="122" NAME="DPLB0_M_request" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="123" NAME="DPLB0_M_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="124" NAME="DPLB0_M_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="125" NAME="DPLB0_M_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="126" NAME="DPLB0_M_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_DPLB0_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="127" NAME="DPLB0_M_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="128" NAME="DPLB0_M_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="129" NAME="DPLB0_M_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="130" NAME="DPLB0_M_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="131" NAME="DPLB0_M_priority" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="132" NAME="DPLB0_M_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="133" NAME="DPLB0_M_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="I" MPD_INDEX="134" NAME="IPLB1_PLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="135" NAME="IPLB1_PLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="136" NAME="IPLB1_PLB_MBusy" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="137" NAME="IPLB1_PLB_MRdErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="138" NAME="IPLB1_PLB_MWrErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="139" NAME="IPLB1_PLB_MWrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="140" NAME="IPLB1_PLB_MWrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="141" NAME="IPLB1_PLB_MAddrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="142" NAME="IPLB1_PLB_MRdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="143" NAME="IPLB1_PLB_MRdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="144" NAME="IPLB1_PLB_MRdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_IPLB1_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="145" NAME="IPLB1_PLB_MRearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="146" NAME="IPLB1_PLB_MSSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="147" NAME="IPLB1_PLB_MTimeout" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="148" NAME="IPLB1_PLB_MRdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="149" NAME="IPLB1_M_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="150" NAME="IPLB1_M_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_IPLB1_DWIDTH/8)-1)]"/>
-      <PORT DIR="O" MPD_INDEX="151" NAME="IPLB1_M_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="152" NAME="IPLB1_M_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="153" NAME="IPLB1_M_request" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="154" NAME="IPLB1_M_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="155" NAME="IPLB1_M_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="156" NAME="IPLB1_M_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="157" NAME="IPLB1_M_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_IPLB1_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="158" NAME="IPLB1_M_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="159" NAME="IPLB1_M_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="160" NAME="IPLB1_M_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="161" NAME="IPLB1_M_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="162" NAME="IPLB1_M_priority" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="163" NAME="IPLB1_M_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="164" NAME="IPLB1_M_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="I" MPD_INDEX="165" NAME="DPLB1_PLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="166" NAME="DPLB1_PLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="167" NAME="DPLB1_PLB_MBusy" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="168" NAME="DPLB1_PLB_MRdErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="169" NAME="DPLB1_PLB_MWrErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="170" NAME="DPLB1_PLB_MWrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="171" NAME="DPLB1_PLB_MWrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="172" NAME="DPLB1_PLB_MAddrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="173" NAME="DPLB1_PLB_MRdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="174" NAME="DPLB1_PLB_MRdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="175" NAME="DPLB1_PLB_MRdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_DPLB1_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="176" NAME="DPLB1_PLB_MRearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="177" NAME="DPLB1_PLB_MSSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="178" NAME="DPLB1_PLB_MTimeout" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="179" NAME="DPLB1_PLB_MRdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="180" NAME="DPLB1_M_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="181" NAME="DPLB1_M_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_DPLB1_DWIDTH/8)-1)]"/>
-      <PORT DIR="O" MPD_INDEX="182" NAME="DPLB1_M_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="183" NAME="DPLB1_M_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="184" NAME="DPLB1_M_request" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="185" NAME="DPLB1_M_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="186" NAME="DPLB1_M_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="187" NAME="DPLB1_M_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="188" NAME="DPLB1_M_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_DPLB1_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="189" NAME="DPLB1_M_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="190" NAME="DPLB1_M_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="191" NAME="DPLB1_M_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="192" NAME="DPLB1_M_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="193" NAME="DPLB1_M_priority" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="194" NAME="DPLB1_M_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="195" NAME="DPLB1_M_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="I" MPD_INDEX="196" NAME="BRAMDSOCMCLK" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="197" NAME="BRAMDSOCMRDDBUS" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="198" NAME="DSARCVALUE" SIGNAME="__DEF__" VECFORMULA="[0:7]"/>
-      <PORT DIR="I" MPD_INDEX="199" NAME="DSCNTLVALUE" SIGNAME="__DEF__" VECFORMULA="[0:7]"/>
-      <PORT DIR="O" MPD_INDEX="200" NAME="DSOCMBRAMABUS" SIGNAME="__DEF__" VECFORMULA="[8:29]"/>
-      <PORT DIR="O" MPD_INDEX="201" NAME="DSOCMBRAMBYTEWRITE" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="202" NAME="DSOCMBRAMEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="203" NAME="DSOCMBRAMWRDBUS" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="204" NAME="DSOCMBUSY" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="205" NAME="DSOCMRDADDRVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="206" NAME="DSOCMWRADDRVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="207" NAME="DSOCMRWCOMPLETE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="208" NAME="BRAMISOCMCLK" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="209" NAME="BRAMISOCMRDDBUS" SIGNAME="__DEF__" VECFORMULA="[0:63]"/>
-      <PORT DIR="I" MPD_INDEX="210" NAME="BRAMISOCMDCRRDDBUS" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="211" NAME="ISARCVALUE" SIGNAME="__DEF__" VECFORMULA="[0:7]"/>
-      <PORT DIR="I" MPD_INDEX="212" NAME="ISCNTLVALUE" SIGNAME="__DEF__" VECFORMULA="[0:7]"/>
-      <PORT DIR="O" MPD_INDEX="213" NAME="ISOCMBRAMEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="214" NAME="ISOCMBRAMEVENWRITEEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="215" NAME="ISOCMBRAMODDWRITEEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="216" NAME="ISOCMBRAMRDABUS" SIGNAME="__DEF__" VECFORMULA="[8:28]"/>
-      <PORT DIR="O" MPD_INDEX="217" NAME="ISOCMBRAMWRABUS" SIGNAME="__DEF__" VECFORMULA="[8:28]"/>
-      <PORT DIR="O" MPD_INDEX="218" NAME="ISOCMBRAMWRDBUS" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="219" NAME="ISOCMDCRBRAMEVENEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="220" NAME="ISOCMDCRBRAMODDEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="221" NAME="ISOCMDCRBRAMRDSELECT" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="222" NAME="DCREMACABUS" SIGNAME="__DEF__" VECFORMULA="[8:9]"/>
-      <PORT DIR="O" MPD_INDEX="223" NAME="DCREMACCLK" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="224" NAME="DCREMACDBUS" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="225" NAME="DCREMACENABLER" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="226" NAME="DCREMACREAD" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="227" NAME="DCREMACWRITE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="228" NAME="EMACDCRACK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="229" NAME="EMACDCRDBUS" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="230" NAME="EXTDCRABUS" SIGNAME="__DEF__" VECFORMULA="[0:9]"/>
-      <PORT DIR="O" MPD_INDEX="231" NAME="EXTDCRDBUSOUT" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="232" NAME="EXTDCRREAD" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="233" NAME="EXTDCRWRITE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="234" NAME="EXTDCRACK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="235" NAME="EXTDCRDBUSIN" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="236" NAME="EICC405CRITINPUTIRQ" SENSITIVITY="EDGE_RISING" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="238" NAME="C405JTGCAPTUREDR" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="239" NAME="C405JTGEXTEST" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="240" NAME="C405JTGPGMOUT" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="241" NAME="C405JTGSHIFTDR" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="242" NAME="C405JTGTDO" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="243" NAME="C405JTGTDOEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="244" NAME="C405JTGUPDATEDR" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="245" NAME="MCBJTAGEN" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="246" NAME="JTGC405BNDSCANTDO" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="247" NAME="JTGC405TCK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="248" NAME="JTGC405TDI" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="249" NAME="JTGC405TMS" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="250" NAME="JTGC405TRSTNEG" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="251" NAME="C405DBGMSRWE" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="252" NAME="C405DBGSTOPACK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="253" NAME="C405DBGWBCOMPLETE" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="254" NAME="C405DBGWBFULL" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="255" NAME="C405DBGWBIAR" SIGNAME="__NOC__" VECFORMULA="[0:29]"/>
-      <PORT DIR="I" MPD_INDEX="256" NAME="DBGC405DEBUGHALT" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="257" NAME="DBGC405DEBUGHALTNEG" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="258" NAME="DBGC405EXTBUSHOLDACK" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="259" NAME="DBGC405UNCONDDEBUGEVENT" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="260" NAME="C405DBGLOADDATAONAPUDBUS" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="261" NAME="C405TRCCYCLE" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="262" NAME="C405TRCEVENEXECUTIONSTATUS" SIGNAME="__NOC__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="263" NAME="C405TRCODDEXECUTIONSTATUS" SIGNAME="__NOC__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="264" NAME="C405TRCTRACESTATUS" SIGNAME="__NOC__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="265" NAME="C405TRCTRIGGEREVENTOUT" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="266" NAME="C405TRCTRIGGEREVENTTYPE" SIGNAME="__NOC__" VECFORMULA="[0:10]"/>
-      <PORT DIR="I" MPD_INDEX="267" NAME="TRCC405TRACEDISABLE" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="268" NAME="TRCC405TRIGGEREVENTIN" SIGNAME="__NOC__"/>
-      <BUSINTERFACE BIFRANK="MASTER" BUSNAME="__NOC__" BUSSTD="DCR" BUS_STD="DCR" MPD_INDEX="0" NAME="MDCR"/>
-      <BUSINTERFACE BIFRANK="MASTER" BUSNAME="__NOC__" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="3" NAME="DPLB1"/>
-      <BUSINTERFACE BIFRANK="MASTER" BUSNAME="__NOC__" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="4" NAME="IPLB1"/>
-      <BUSINTERFACE BIFRANK="MASTER" BUSNAME="__NOC__" BUSSTD="OCM" BUS_STD="DSOCM" IS_DATA="TRUE" MPD_INDEX="5" NAME="DSOCM"/>
-      <BUSINTERFACE BIFRANK="MASTER" BUSNAME="__NOC__" BUSSTD="OCM" BUS_STD="ISOCM" IS_INSTRUCTION="TRUE" MPD_INDEX="6" NAME="ISOCM"/>
-      <BUSINTERFACE BIFRANK="INITIATOR" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_FCM" MPD_INDEX="8" NAME="MFCM"/>
-      <BUSINTERFACE BIFRANK="INITIATOR" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_EMACDCR" MPD_INDEX="9" NAME="EMACDCR"/>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0b0100000000" BASENAME="C_IDCR_BASEADDR" BASEVALUE="256" HIGH="0b0111111111" HIGHNAME="C_IDCR_HIGHADDR" HIGHVALUE="511" MINSIZE="16" SIZE="256" SIZEABRV="256">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="MDCR"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/generic_v1_00_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/jtagppc_cntlr_v2_01_a/doc/jtagppc_cntlr.pdf" HWVERSION="2.01.a" INSTANCE="jtagppc_0" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="1" MODCLASS="PERIPHERAL" MODTYPE="jtagppc_cntlr" SAV_INDEX="5">
-      <DESCRIPTION TYPE="SHORT">PowerPC JTAG Controller</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">JTAGPPC wrapper allows the PowerPC to connect to the JTAG chain of the FPGA.</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_DEVICE" VALUE="X2VP4"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_NUM_PPC_USED" VALUE="0"/>
-      <BUSINTERFACE BIFRANK="INITIATOR" BIF_X="0" BIF_Y="0" BUSNAME="jtagppc_0_0" BUSSTD="XIL" BUS_STD="XIL_JTAGPPC" MPD_INDEX="0" NAME="JTAGPPC0"/>
-      <PORT DIR="I" MPD_INDEX="0" NAME="TRSTNEG" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="HALTNEG0" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="2" NAME="DBGC405DEBUGHALT0" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="HALTNEG1" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="4" NAME="DBGC405DEBUGHALT1" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="C405JTGTDO0" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="C405JTGTDOEN0" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="7" NAME="JTGC405TCK0" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="8" NAME="JTGC405TDI0" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="9" NAME="JTGC405TMS0" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="10" NAME="JTGC405TRSTNEG0" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="C405JTGTDO1" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="C405JTGTDOEN1" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="13" NAME="JTGC405TCK1" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="14" NAME="JTGC405TDI1" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="15" NAME="JTGC405TMS1" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="16" NAME="JTGC405TRSTNEG1" SIGNAME="__DEF__"/>
-      <BUSINTERFACE BIFRANK="INITIATOR" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_JTAGPPC" MPD_INDEX="1" NAME="JTAGPPC1"/>
-    </MODULE>
-    <MODULE BUSINDEX="0" BUSSTD="PLBV46" BUS_STD="PLBV46" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/plb_v46_v1_02_a/doc/plb_v46.pdf" HWVERSION="1.02.a" INSTANCE="plb" IPTYPE="BUS" IS_PLACED="TRUE" MHS_INDEX="2" MODCLASS="BUS" MODTYPE="plb_v46" SAV_INDEX="2">
-      <DESCRIPTION TYPE="SHORT">Processor Local Bus (PLB) 4.6</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">'Xilinx 64-bit Processor Local Bus (PLB) consists of a bus control unit, a watchdog timer, and separate address, write, and read data path units with a a three-cycle only arbitration feature'</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_PLBV46_NUM_MASTERS" VALUE="4"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_PLBV46_NUM_SLAVES" VALUE="8"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_PLBV46_MID_WIDTH" VALUE="2"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_PLBV46_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_PLBV46_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_DCR_INTFCE" VALUE="0"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" MPD_INDEX="6" NAME="C_BASEADDR" VALUE="0b1111111111"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" MPD_INDEX="7" NAME="C_HIGHADDR" VALUE="0b0000000000"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_DCR_AWIDTH" VALUE="10"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_DCR_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_IRQ_ACTIVE" VALUE="1"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="12" NAME="C_NUM_CLK_PLB2OPB_REARB" VALUE="100"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_ADDR_PIPELINING_TYPE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="14" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="15" NAME="C_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="16" NAME="C_ARB_TYPE" VALUE="0"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="0" NAME="PLB_Clk" SIGIS="CLK" SIGNAME="sys_clk_s"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="1" NAME="SYS_Rst" SIGIS="RST" SIGNAME="sys_bus_reset"/>
-      <PORT DIR="O" MPD_INDEX="2" NAME="PLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="3" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="O" MPD_INDEX="4" NAME="MPLB_Rst" SIGIS="RST" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="5" NAME="PLB_dcrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="6" NAME="PLB_dcrDBus" SIGNAME="__DEF__" VECFORMULA="[0:C_DCR_DWIDTH-1]"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="DCR_ABus" SIGNAME="__DEF__" VECFORMULA="[0:C_DCR_AWIDTH-1]"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="DCR_DBus" SIGNAME="__DEF__" VECFORMULA="[0:C_DCR_DWIDTH-1]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="DCR_Read" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="DCR_Write" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="M_ABus" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*32)-1]"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="M_UABus" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*32)-1]"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="M_BE" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*(C_PLBV46_DWIDTH/8))-1]"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="M_RNW" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="M_abort" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="M_busLock" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="M_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*16)-1]"/>
-      <PORT DIR="I" MPD_INDEX="18" NAME="M_lockErr" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="M_MSize" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*2)-1]"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="M_priority" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*2)-1]"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="M_rdBurst" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="M_request" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="23" NAME="M_size" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*4)-1]"/>
-      <PORT DIR="I" MPD_INDEX="24" NAME="M_type" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*3)-1]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="M_wrBurst" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="26" NAME="M_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*C_PLBV46_DWIDTH)-1]"/>
-      <PORT DIR="I" MPD_INDEX="27" NAME="Sl_addrAck" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="28" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_SLAVES*C_PLBV46_NUM_MASTERS)-1]"/>
-      <PORT DIR="I" MPD_INDEX="29" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_SLAVES*C_PLBV46_NUM_MASTERS)-1]"/>
-      <PORT DIR="I" MPD_INDEX="30" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES*C_PLBV46_NUM_MASTERS - 1 ]"/>
-      <PORT DIR="I" MPD_INDEX="31" NAME="Sl_rdBTerm" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="32" NAME="Sl_rdComp" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="33" NAME="Sl_rdDAck" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="34" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES*C_PLBV46_DWIDTH-1]"/>
-      <PORT DIR="I" MPD_INDEX="35" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES*4-1]"/>
-      <PORT DIR="I" MPD_INDEX="36" NAME="Sl_rearbitrate" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="37" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES*2-1]"/>
-      <PORT DIR="I" MPD_INDEX="38" NAME="Sl_wait" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="39" NAME="Sl_wrBTerm" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="40" NAME="Sl_wrComp" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="41" NAME="Sl_wrDAck" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="42" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES*C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="43" NAME="PLB_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="44" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="45" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="46" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_DWIDTH/8)-1]"/>
-      <PORT DIR="O" MPD_INDEX="47" NAME="PLB_MAddrAck" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="48" NAME="PLB_MTimeout" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="49" NAME="PLB_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="50" NAME="PLB_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="51" NAME="PLB_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="52" NAME="PLB_MRdBTerm" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="53" NAME="PLB_MRdDAck" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="54" NAME="PLB_MRdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*C_PLBV46_DWIDTH)-1]"/>
-      <PORT DIR="O" MPD_INDEX="55" NAME="PLB_MRdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*4)-1]"/>
-      <PORT DIR="O" MPD_INDEX="56" NAME="PLB_MRearbitrate" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="57" NAME="PLB_MWrBTerm" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="58" NAME="PLB_MWrDAck" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="59" NAME="PLB_MSSize" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*2)-1]"/>
-      <PORT DIR="O" MPD_INDEX="60" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="61" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="62" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="63" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="64" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="65" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="66" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="67" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_MID_WIDTH-1]"/>
-      <PORT DIR="O" MPD_INDEX="68" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="69" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="70" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="71" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="72" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="73" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="74" NAME="PLB_rdPrim" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="O" MPD_INDEX="75" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="76" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="77" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="78" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="79" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_DWIDTH-1]"/>
-      <PORT DIR="O" MPD_INDEX="80" NAME="PLB_wrPrim" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="O" MPD_INDEX="81" NAME="PLB_SaddrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="82" NAME="PLB_SMRdErr" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="83" NAME="PLB_SMWrErr" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="84" NAME="PLB_SMBusy" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="85" NAME="PLB_SrdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="86" NAME="PLB_SrdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="87" NAME="PLB_SrdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="88" NAME="PLB_SrdDBus" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_DWIDTH-1]"/>
-      <PORT DIR="O" MPD_INDEX="89" NAME="PLB_SrdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="90" NAME="PLB_Srearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="91" NAME="PLB_Sssize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="92" NAME="PLB_Swait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="93" NAME="PLB_SwrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="94" NAME="PLB_SwrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="95" NAME="PLB_SwrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="96" NAME="Bus_Error_Det" SENSITIVITY="EDGE_RISING" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="__NOC__" BUSSTD="DCR" BUS_STD="DCR" ISVALID="FALSE" MPD_INDEX="0" NAME="SDCR"/>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0b1111111111" BASENAME="C_BASEADDR" BASEVALUE="1023" HIGH="0b0000000000" HIGHNAME="C_HIGHADDR" HIGHVALUE="0" ISVALID="FALSE" MINSIZE="0x08" SIZE="0" SIZEABRV="U">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SDCR"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/uartlite_v1_13_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/xps_uartlite_v1_00_a/doc/xps_uartlite.pdf" GROUP="C" HWVERSION="1.00.a" INSTANCE="RS232_Uart" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="3" MODCLASS="PERIPHERAL" MODTYPE="xps_uartlite" SAV_INDEX="11">
-      <DESCRIPTION TYPE="SHORT">XPS UART (Lite)</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Generic UART (Universal Asynchronous Receiver/Transmitter) for PLBV46 bus.</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_SPLB_CLK_FREQ_HZ" VALUE="100000000"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="2" NAME="C_BASEADDR" VALUE="0x84000000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="3" NAME="C_HIGHADDR" VALUE="0x8400ffff"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_SPLB_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_SPLB_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_SPLB_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_SPLB_MID_WIDTH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_SPLB_NUM_MASTERS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_SPLB_SUPPORT_BURSTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_SPLB_NATIVE_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_BAUDRATE" VALUE="9600"/>
-      <PARAMETER MPD_INDEX="12" NAME="C_DATA_BITS" VALUE="8"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="13" NAME="C_USE_PARITY" VALUE="0"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="14" NAME="C_ODD_PARITY" VALUE="0"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="0" NAME="SPLB"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="42" NAME="RX" SIGNAME="fpga_0_RS232_Uart_RX">
-        <DESCRIPTION>Serial Data In</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="43" NAME="TX" SIGNAME="fpga_0_RS232_Uart_TX">
-        <DESCRIPTION>Serial Data Out</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="44" NAME="Interrupt" SENSITIVITY="EDGE_RISING" SIGIS="INTERRUPT" SIGNAME="RS232_Uart_Interrupt"/>
-      <PORT DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="PLB_rdPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="PLB_wrPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="23" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="24" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="Sl_rdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="Sl_rdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="38" NAME="Sl_wrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="39" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="40" NAME="Sl_rdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="41" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <INTCCNTLRTRGS>
-        <INTCTRG INTCINDEX="0" PRIORITY="0"/>
-      </INTCCNTLRTRGS>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0x84000000" BASENAME="C_BASEADDR" BASEVALUE="2214592512" HIGH="0x8400ffff" HIGHNAME="C_HIGHADDR" HIGHVALUE="2214658047" MINSIZE="0x10" SIZE="65536" SIZEABRV="64K">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/gpio_v2_12_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/xps_gpio_v1_00_a/doc/xps_gpio.pdf" GROUP="A" HWVERSION="1.00.a" INSTANCE="LEDs_4Bit" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="4" MODCLASS="PERIPHERAL" MODTYPE="xps_gpio" SAV_INDEX="7">
-      <DESCRIPTION TYPE="SHORT">XPS General Purpose IO</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">General Purpose Input/Output (GPIO) core for the PLBV46 bus.</DESCRIPTION>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="0" NAME="C_BASEADDR" VALUE="0x81400000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="1" NAME="C_HIGHADDR" VALUE="0x8140ffff"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_SPLB_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_SPLB_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_SPLB_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_SPLB_MID_WIDTH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_SPLB_NUM_MASTERS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_SPLB_NATIVE_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_SPLB_SUPPORT_BURSTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="10" NAME="C_GPIO_WIDTH" VALUE="4"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_ALL_INPUTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="12" NAME="C_INTERRUPT_PRESENT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_IS_BIDIR" VALUE="1"/>
-      <PARAMETER MPD_INDEX="14" NAME="C_DOUT_DEFAULT" VALUE="0x00000000"/>
-      <PARAMETER MPD_INDEX="15" NAME="C_TRI_DEFAULT" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="16" NAME="C_IS_DUAL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="17" NAME="C_ALL_INPUTS_2" VALUE="0"/>
-      <PARAMETER MPD_INDEX="18" NAME="C_IS_BIDIR_2" VALUE="1"/>
-      <PARAMETER MPD_INDEX="19" NAME="C_DOUT_DEFAULT_2" VALUE="0x00000000"/>
-      <PARAMETER MPD_INDEX="20" NAME="C_TRI_DEFAULT_2" VALUE="0xffffffff"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="0" NAME="SPLB"/>
-      <PORT DIR="IO" INMHS="TRUE" MPD_INDEX="43" NAME="GPIO_IO" SIGNAME="fpga_0_LEDs_4Bit_GPIO_IO" VECFORMULA="[0:(C_GPIO_WIDTH-1)]">
-        <DESCRIPTION>GPIO1 Data IO</DESCRIPTION>
-      </PORT>
-      <PORT DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="PLB_rdPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="PLB_wrPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="23" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="24" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="Sl_wrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="Sl_rdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="Sl_rdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="Sl_rdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="38" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="39" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="40" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="41" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="42" NAME="IP2INTC_Irpt" SENSITIVITY="LEVEL_HIGH" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="44" NAME="GPIO_IO_I" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="45" NAME="GPIO_IO_O" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="46" NAME="GPIO_IO_T" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="47" NAME="GPIO_in" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="48" NAME="GPIO_d_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="49" NAME="GPIO_t_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="IO" ISVALID="FALSE" MPD_INDEX="50" NAME="GPIO2_IO" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="I" ISVALID="FALSE" MPD_INDEX="51" NAME="GPIO2_IO_I" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="52" NAME="GPIO2_IO_O" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="53" NAME="GPIO2_IO_T" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="I" ISVALID="FALSE" MPD_INDEX="54" NAME="GPIO2_in" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="55" NAME="GPIO2_d_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="56" NAME="GPIO2_t_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0x81400000" BASENAME="C_BASEADDR" BASEVALUE="2168455168" HIGH="0x8140ffff" HIGHNAME="C_HIGHADDR" HIGHVALUE="2168520703" MINSIZE="0x200" SIZE="65536" SIZEABRV="64K">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/gpio_v2_12_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/xps_gpio_v1_00_a/doc/xps_gpio.pdf" GROUP="B" HWVERSION="1.00.a" INSTANCE="LEDs_Positions" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="5" MODCLASS="PERIPHERAL" MODTYPE="xps_gpio" SAV_INDEX="8">
-      <DESCRIPTION TYPE="SHORT">XPS General Purpose IO</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">General Purpose Input/Output (GPIO) core for the PLBV46 bus.</DESCRIPTION>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="0" NAME="C_BASEADDR" VALUE="0x81420000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="1" NAME="C_HIGHADDR" VALUE="0x8142ffff"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_SPLB_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_SPLB_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_SPLB_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_SPLB_MID_WIDTH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_SPLB_NUM_MASTERS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_SPLB_NATIVE_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_SPLB_SUPPORT_BURSTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="10" NAME="C_GPIO_WIDTH" VALUE="5"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_ALL_INPUTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="12" NAME="C_INTERRUPT_PRESENT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_IS_BIDIR" VALUE="1"/>
-      <PARAMETER MPD_INDEX="14" NAME="C_DOUT_DEFAULT" VALUE="0x00000000"/>
-      <PARAMETER MPD_INDEX="15" NAME="C_TRI_DEFAULT" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="16" NAME="C_IS_DUAL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="17" NAME="C_ALL_INPUTS_2" VALUE="0"/>
-      <PARAMETER MPD_INDEX="18" NAME="C_IS_BIDIR_2" VALUE="1"/>
-      <PARAMETER MPD_INDEX="19" NAME="C_DOUT_DEFAULT_2" VALUE="0x00000000"/>
-      <PARAMETER MPD_INDEX="20" NAME="C_TRI_DEFAULT_2" VALUE="0xffffffff"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="0" NAME="SPLB"/>
-      <PORT DIR="IO" INMHS="TRUE" MPD_INDEX="43" NAME="GPIO_IO" SIGNAME="fpga_0_LEDs_Positions_GPIO_IO" VECFORMULA="[0:(C_GPIO_WIDTH-1)]">
-        <DESCRIPTION>GPIO1 Data IO</DESCRIPTION>
-      </PORT>
-      <PORT DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="PLB_rdPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="PLB_wrPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="23" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="24" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="Sl_wrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="Sl_rdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="Sl_rdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="Sl_rdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="38" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="39" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="40" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="41" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="42" NAME="IP2INTC_Irpt" SENSITIVITY="LEVEL_HIGH" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="44" NAME="GPIO_IO_I" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="45" NAME="GPIO_IO_O" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="46" NAME="GPIO_IO_T" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="47" NAME="GPIO_in" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="48" NAME="GPIO_d_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="49" NAME="GPIO_t_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="IO" ISVALID="FALSE" MPD_INDEX="50" NAME="GPIO2_IO" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="I" ISVALID="FALSE" MPD_INDEX="51" NAME="GPIO2_IO_I" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="52" NAME="GPIO2_IO_O" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="53" NAME="GPIO2_IO_T" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="I" ISVALID="FALSE" MPD_INDEX="54" NAME="GPIO2_in" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="55" NAME="GPIO2_d_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="56" NAME="GPIO2_t_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0x81420000" BASENAME="C_BASEADDR" BASEVALUE="2168586240" HIGH="0x8142ffff" HIGHNAME="C_HIGHADDR" HIGHVALUE="2168651775" MINSIZE="0x200" SIZE="65536" SIZEABRV="64K">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/sysace_v1_11_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/xps_sysace_v1_00_a/doc/xps_sysace.pdf" GROUP="F" HWVERSION="1.00.a" INSTANCE="SysACE_CompactFlash" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="6" MODCLASS="PERIPHERAL" MODTYPE="xps_sysace" SAV_INDEX="10">
-      <DESCRIPTION TYPE="SHORT">XPS System ACE Interface Controller(Compact Flash)</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Interface between the PLBV46 and the Microprocessor Interface (MPU) of the System ACE Compact Flash solution peripheral</DESCRIPTION>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="0" NAME="C_BASEADDR" VALUE="0x83600000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="1" NAME="C_HIGHADDR" VALUE="0x8360ffff"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_MEM_WIDTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_SPLB_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_SPLB_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_SPLB_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_SPLB_MID_WIDTH" VALUE="3"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_SPLB_NUM_MASTERS" VALUE="8"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_SPLB_NATIVE_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_SPLB_SUPPORT_BURSTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_FAMILY" VALUE="virtex5"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="0" NAME="SPLB"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="43" NAME="SysACE_CLK" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_CLK">
-        <DESCRIPTION>Clock Input</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="42" NAME="SysACE_MPA" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_MPA &amp; SysACE_CompactFlash_SysACE_MPA" VECFORMULA="[6:0]">
-        <DESCRIPTION>Address Input</DESCRIPTION>
-      </PORT>
-      <PORT DIR="IO" INMHS="TRUE" MPD_INDEX="45" NAME="SysACE_MPD" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_MPD" VECFORMULA="[(C_MEM_WIDTH-1):0]">
-        <DESCRIPTION>Data Input/Output</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="49" NAME="SysACE_CEN" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_CEN">
-        <DESCRIPTION>Active LOW Chip Enable</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="50" NAME="SysACE_OEN" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_OEN">
-        <DESCRIPTION>Active LOW Output Enable</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="51" NAME="SysACE_WEN" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_WEN">
-        <DESCRIPTION>Active LOW Write Enable</DESCRIPTION>
-      </PORT>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="44" NAME="SysACE_MPIRQ" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_MPIRQ">
-        <DESCRIPTION>Active high Interrupt Output</DESCRIPTION>
-      </PORT>
-      <PORT DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="PLB_rdPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="PLB_wrPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="23" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="24" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="Sl_wrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="Sl_rdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="Sl_rdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="Sl_rdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="38" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="39" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="40" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="41" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="I" MPD_INDEX="46" NAME="SysACE_MPD_I" SIGNAME="__NOC__" VECFORMULA="[(C_MEM_WIDTH-1):0]"/>
-      <PORT DIR="O" MPD_INDEX="47" NAME="SysACE_MPD_O" SIGNAME="__NOC__" VECFORMULA="[(C_MEM_WIDTH-1):0]"/>
-      <PORT DIR="O" MPD_INDEX="48" NAME="SysACE_MPD_T" SIGNAME="__NOC__" VECFORMULA="[(C_MEM_WIDTH-1):0]"/>
-      <PORT DIR="O" MPD_INDEX="52" NAME="SysACE_IRQ" SENSITIVITY="LEVEL_HIGH" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0x83600000" BASENAME="C_BASEADDR" BASEVALUE="2204106752" HIGH="0x8360ffff" HIGHNAME="C_HIGHADDR" HIGHVALUE="2204172287" MINSIZE="0x80" SIZE="65536" SIZEABRV="64K">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/emc_v2_00_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/xps_mch_emc_v1_01_a/doc/xps_mch_emc.pdf" GROUP="D" HWVERSION="1.01.a" INSTANCE="SRAM" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="7" MODCLASS="MEMORY_CNTLR" MODTYPE="xps_mch_emc" SAV_INDEX="3">
-      <DESCRIPTION TYPE="SHORT">XPS Multi-Channel External Memory Controller(SRAM/Flash)</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Xilinx Multi-CHannel (MCH) PLBV46 external memory controller</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_NUM_BANKS_MEM" VALUE="1"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_NUM_CHANNELS" VALUE="2"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_PRIORITY_MODE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_INCLUDE_PLB_IPIF" VALUE="1"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_INCLUDE_WRBUF" VALUE="1"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_SPLB_MID_WIDTH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_SPLB_NUM_MASTERS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_SPLB_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_SPLB_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_MCH_SPLB_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_SPLB_SMALLEST_MASTER" VALUE="32"/>
-      <PARAMETER MPD_INDEX="12" NAME="C_MCH_NATIVE_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_MCH_PLB_CLK_PERIOD_PS" VALUE="10000"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="MEMORY" CHANGEDBY="USER" MPD_INDEX="14" NAME="C_MEM0_BASEADDR" VALUE="0xfff00000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" CHANGEDBY="USER" MPD_INDEX="15" NAME="C_MEM0_HIGHADDR" VALUE="0xffffffff"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="MEMORY" MPD_INDEX="16" NAME="C_MEM1_BASEADDR" VALUE="0xffffffff"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" MPD_INDEX="17" NAME="C_MEM1_HIGHADDR" VALUE="0x00000000"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="MEMORY" MPD_INDEX="18" NAME="C_MEM2_BASEADDR" VALUE="0xffffffff"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" MPD_INDEX="19" NAME="C_MEM2_HIGHADDR" VALUE="0x00000000"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="MEMORY" MPD_INDEX="20" NAME="C_MEM3_BASEADDR" VALUE="0xffffffff"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" MPD_INDEX="21" NAME="C_MEM3_HIGHADDR" VALUE="0x00000000"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="22" NAME="C_INCLUDE_NEGEDGE_IOREGS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="23" NAME="C_MEM0_WIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="24" NAME="C_MEM1_WIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="25" NAME="C_MEM2_WIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="26" NAME="C_MEM3_WIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="27" NAME="C_MAX_MEM_WIDTH" VALUE="32"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="28" NAME="C_INCLUDE_DATAWIDTH_MATCHING_0" VALUE="1"/>
-      <PARAMETER MPD_INDEX="29" NAME="C_INCLUDE_DATAWIDTH_MATCHING_1" VALUE="0"/>
-      <PARAMETER MPD_INDEX="30" NAME="C_INCLUDE_DATAWIDTH_MATCHING_2" VALUE="0"/>
-      <PARAMETER MPD_INDEX="31" NAME="C_INCLUDE_DATAWIDTH_MATCHING_3" VALUE="0"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="32" NAME="C_SYNCH_MEM_0" VALUE="1"/>
-      <PARAMETER MPD_INDEX="33" NAME="C_SYNCH_PIPEDELAY_0" VALUE="2"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="34" NAME="C_TCEDV_PS_MEM_0" VALUE="0"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="35" NAME="C_TAVDV_PS_MEM_0" VALUE="0"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="36" NAME="C_THZCE_PS_MEM_0" VALUE="0"/>
-      <PARAMETER MPD_INDEX="37" NAME="C_THZOE_PS_MEM_0" VALUE="7000"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="38" NAME="C_TWC_PS_MEM_0" VALUE="0"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="39" NAME="C_TWP_PS_MEM_0" VALUE="0"/>
-      <PARAMETER MPD_INDEX="40" NAME="C_TLZWE_PS_MEM_0" VALUE="0"/>
-      <PARAMETER MPD_INDEX="41" NAME="C_SYNCH_MEM_1" VALUE="0"/>
-      <PARAMETER MPD_INDEX="42" NAME="C_SYNCH_PIPEDELAY_1" VALUE="2"/>
-      <PARAMETER MPD_INDEX="43" NAME="C_TCEDV_PS_MEM_1" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="44" NAME="C_TAVDV_PS_MEM_1" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="45" NAME="C_THZCE_PS_MEM_1" VALUE="7000"/>
-      <PARAMETER MPD_INDEX="46" NAME="C_THZOE_PS_MEM_1" VALUE="7000"/>
-      <PARAMETER MPD_INDEX="47" NAME="C_TWC_PS_MEM_1" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="48" NAME="C_TWP_PS_MEM_1" VALUE="12000"/>
-      <PARAMETER MPD_INDEX="49" NAME="C_TLZWE_PS_MEM_1" VALUE="0"/>
-      <PARAMETER MPD_INDEX="50" NAME="C_SYNCH_MEM_2" VALUE="0"/>
-      <PARAMETER MPD_INDEX="51" NAME="C_SYNCH_PIPEDELAY_2" VALUE="2"/>
-      <PARAMETER MPD_INDEX="52" NAME="C_TCEDV_PS_MEM_2" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="53" NAME="C_TAVDV_PS_MEM_2" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="54" NAME="C_THZCE_PS_MEM_2" VALUE="7000"/>
-      <PARAMETER MPD_INDEX="55" NAME="C_THZOE_PS_MEM_2" VALUE="7000"/>
-      <PARAMETER MPD_INDEX="56" NAME="C_TWC_PS_MEM_2" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="57" NAME="C_TWP_PS_MEM_2" VALUE="12000"/>
-      <PARAMETER MPD_INDEX="58" NAME="C_TLZWE_PS_MEM_2" VALUE="0"/>
-      <PARAMETER MPD_INDEX="59" NAME="C_SYNCH_MEM_3" VALUE="0"/>
-      <PARAMETER MPD_INDEX="60" NAME="C_SYNCH_PIPEDELAY_3" VALUE="2"/>
-      <PARAMETER MPD_INDEX="61" NAME="C_TCEDV_PS_MEM_3" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="62" NAME="C_TAVDV_PS_MEM_3" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="63" NAME="C_THZCE_PS_MEM_3" VALUE="7000"/>
-      <PARAMETER MPD_INDEX="64" NAME="C_THZOE_PS_MEM_3" VALUE="7000"/>
-      <PARAMETER MPD_INDEX="65" NAME="C_TWC_PS_MEM_3" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="66" NAME="C_TWP_PS_MEM_3" VALUE="12000"/>
-      <PARAMETER MPD_INDEX="67" NAME="C_TLZWE_PS_MEM_3" VALUE="0"/>
-      <PARAMETER MPD_INDEX="68" NAME="C_MCH0_PROTOCOL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="69" NAME="C_MCH0_ACCESSBUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="70" NAME="C_MCH0_RDDATABUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="71" NAME="C_MCH1_PROTOCOL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="72" NAME="C_MCH1_ACCESSBUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="73" NAME="C_MCH1_RDDATABUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="74" NAME="C_MCH2_PROTOCOL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="75" NAME="C_MCH2_ACCESSBUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="76" NAME="C_MCH2_RDDATABUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="77" NAME="C_MCH3_PROTOCOL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="78" NAME="C_MCH3_ACCESSBUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="79" NAME="C_MCH3_RDDATABUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="80" NAME="C_XCL0_LINESIZE" VALUE="4"/>
-      <PARAMETER MPD_INDEX="81" NAME="C_XCL0_WRITEXFER" VALUE="1"/>
-      <PARAMETER MPD_INDEX="82" NAME="C_XCL1_LINESIZE" VALUE="4"/>
-      <PARAMETER MPD_INDEX="83" NAME="C_XCL1_WRITEXFER" VALUE="1"/>
-      <PARAMETER MPD_INDEX="84" NAME="C_XCL2_LINESIZE" VALUE="4"/>
-      <PARAMETER MPD_INDEX="85" NAME="C_XCL2_WRITEXFER" VALUE="1"/>
-      <PARAMETER MPD_INDEX="86" NAME="C_XCL3_LINESIZE" VALUE="4"/>
-      <PARAMETER MPD_INDEX="87" NAME="C_XCL3_WRITEXFER" VALUE="1"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="0" NAME="SPLB"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="79" NAME="Mem_A" SIGNAME="fpga_0_SRAM_Mem_A_split" VECFORMULA="[0:(C_MCH_SPLB_AWIDTH-1)]">
-        <DESCRIPTION>Memory Address Bus</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="85" NAME="Mem_BEN" SIGNAME="fpga_0_SRAM_Mem_BEN" VECFORMULA="[0:((C_MAX_MEM_WIDTH/8)-1)]">
-        <DESCRIPTION>Memory Byte Enable</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="83" NAME="Mem_WEN" SIGNAME="fpga_0_SRAM_Mem_WEN">
-        <DESCRIPTION>Memory Write Enable</DESCRIPTION>
-      </PORT>
-      <PORT DIR="IO" INMHS="TRUE" MPD_INDEX="75" NAME="Mem_DQ" SIGNAME="fpga_0_SRAM_Mem_DQ" VECFORMULA="[0:(C_MAX_MEM_WIDTH-1)]">
-        <DESCRIPTION>Memory Data Bus</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="82" NAME="Mem_OEN" SIGNAME="fpga_0_SRAM_Mem_OEN" VECFORMULA="[0:(C_NUM_BANKS_MEM-1)]">
-        <DESCRIPTION>Memory Output Enable</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="81" NAME="Mem_CEN" SIGNAME="fpga_0_SRAM_Mem_CEN" VECFORMULA="[0:(C_NUM_BANKS_MEM-1)]">
-        <DESCRIPTION>Memory Chip Enable Active Low</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="87" NAME="Mem_ADV_LDN" SIGNAME="fpga_0_SRAM_Mem_ADV_LDN">
-        <DESCRIPTION>Memory Advanced Burst Address/Load New Address</DESCRIPTION>
-      </PORT>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="1" NAME="RdClk" SIGIS="CLK" SIGNAME="sys_clk_s"/>
-      <PORT DIR="I" MPD_INDEX="0" NAME="MCH_PLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="MCH_PLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="MCH0_Access_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="MCH0_Access_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="MCH0_Access_Write" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="6" NAME="MCH0_Access_Full" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="7" NAME="MCH0_ReadData_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="8" NAME="MCH0_ReadData_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="MCH0_ReadData_Read" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="10" NAME="MCH0_ReadData_Exists" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="MCH1_Access_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="MCH1_Access_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="MCH1_Access_Write" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="14" NAME="MCH1_Access_Full" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="15" NAME="MCH1_ReadData_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="16" NAME="MCH1_ReadData_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="MCH1_ReadData_Read" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="18" NAME="MCH1_ReadData_Exists" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="MCH2_Access_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="MCH2_Access_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="MCH2_Access_Write" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="22" NAME="MCH2_Access_Full" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="23" NAME="MCH2_ReadData_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="24" NAME="MCH2_ReadData_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="MCH2_ReadData_Read" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="MCH2_ReadData_Exists" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="27" NAME="MCH3_Access_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="28" NAME="MCH3_Access_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="29" NAME="MCH3_Access_Write" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="MCH3_Access_Full" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="MCH3_ReadData_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="MCH3_ReadData_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="33" NAME="MCH3_ReadData_Read" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="MCH3_ReadData_Exists" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="35" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="36" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="37" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="38" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="39" NAME="PLB_rdPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="40" NAME="PLB_wrPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="41" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="42" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="43" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="44" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="45" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="46" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="47" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="48" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="49" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="50" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="51" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="52" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="53" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="54" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="55" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="56" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="57" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="58" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="59" NAME="Sl_addrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="60" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="61" NAME="Sl_wait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="62" NAME="Sl_rearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="63" NAME="Sl_wrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="64" NAME="Sl_wrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="65" NAME="Sl_wrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="66" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="67" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="68" NAME="Sl_rdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="69" NAME="Sl_rdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="70" NAME="Sl_rdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="71" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="72" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="73" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="74" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="I" MPD_INDEX="76" NAME="Mem_DQ_I" SIGNAME="__NOC__" VECFORMULA="[0:(C_MAX_MEM_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="77" NAME="Mem_DQ_O" SIGNAME="__NOC__" VECFORMULA="[0:(C_MAX_MEM_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="78" NAME="Mem_DQ_T" SIGNAME="__NOC__" VECFORMULA="[0:(C_MAX_MEM_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="80" NAME="Mem_RPN" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="84" NAME="Mem_QWEN" SIGNAME="__NOC__" VECFORMULA="[0:((C_MAX_MEM_WIDTH/8)-1)]"/>
-      <PORT DIR="O" MPD_INDEX="86" NAME="Mem_CE" SIGNAME="__NOC__" VECFORMULA="[0:(C_NUM_BANKS_MEM-1)]"/>
-      <PORT DIR="O" MPD_INDEX="88" NAME="Mem_LBON" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="89" NAME="Mem_CKEN" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="90" NAME="Mem_RNW" SIGNAME="__NOC__"/>
-      <BUSINTERFACE BIFRANK="TARGET" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_MEMORY_CHANNEL" MPD_INDEX="1" NAME="MCH0"/>
-      <BUSINTERFACE BIFRANK="TARGET" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_MEMORY_CHANNEL" MPD_INDEX="2" NAME="MCH1"/>
-      <BUSINTERFACE BIFRANK="TARGET" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_MEMORY_CHANNEL" ISVALID="FALSE" MPD_INDEX="3" NAME="MCH2"/>
-      <BUSINTERFACE BIFRANK="TARGET" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_MEMORY_CHANNEL" ISVALID="FALSE" MPD_INDEX="4" NAME="MCH3"/>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0xfff00000" BASENAME="C_MEM0_BASEADDR" BASEVALUE="4293918720" HIGH="0xffffffff" HIGHNAME="C_MEM0_HIGHADDR" HIGHVALUE="4294967295" IS_CACHEABLE="TRUE" SIZE="1048576" SIZEABRV="1M">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-            <MEMBUSINTERFACE NAME="MCH0"/>
-            <MEMBUSINTERFACE NAME="MCH1"/>
-            <MEMBUSINTERFACE NAME="MCH2"/>
-            <MEMBUSINTERFACE NAME="MCH3"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-        <MEMRANGE BASE="0xffffffff" BASENAME="C_MEM1_BASEADDR" BASEVALUE="4294967295" HIGH="0x00000000" HIGHNAME="C_MEM1_HIGHADDR" HIGHVALUE="0" ISVALID="FALSE" IS_CACHEABLE="TRUE" SIZE="0" SIZEABRV="U">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-            <MEMBUSINTERFACE NAME="MCH0"/>
-            <MEMBUSINTERFACE NAME="MCH1"/>
-            <MEMBUSINTERFACE NAME="MCH2"/>
-            <MEMBUSINTERFACE NAME="MCH3"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-        <MEMRANGE BASE="0xffffffff" BASENAME="C_MEM2_BASEADDR" BASEVALUE="4294967295" HIGH="0x00000000" HIGHNAME="C_MEM2_HIGHADDR" HIGHVALUE="0" ISVALID="FALSE" IS_CACHEABLE="TRUE" SIZE="0" SIZEABRV="U">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-            <MEMBUSINTERFACE NAME="MCH0"/>
-            <MEMBUSINTERFACE NAME="MCH1"/>
-            <MEMBUSINTERFACE NAME="MCH2"/>
-            <MEMBUSINTERFACE NAME="MCH3"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-        <MEMRANGE BASE="0xffffffff" BASENAME="C_MEM3_BASEADDR" BASEVALUE="4294967295" HIGH="0x00000000" HIGHNAME="C_MEM3_HIGHADDR" HIGHVALUE="0" ISVALID="FALSE" IS_CACHEABLE="TRUE" SIZE="0" SIZEABRV="U">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-            <MEMBUSINTERFACE NAME="MCH0"/>
-            <MEMBUSINTERFACE NAME="MCH1"/>
-            <MEMBUSINTERFACE NAME="MCH2"/>
-            <MEMBUSINTERFACE NAME="MCH3"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/generic_v1_00_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/util_bus_split_v1_00_a/doc/util_bus_split.pdf" GROUP="E" HWVERSION="1.00.a" INSTANCE="SRAM_util_bus_split_0" IPTYPE="PERIPHERAL" MHS_INDEX="8" MODCLASS="IP" MODTYPE="util_bus_split" SAV_INDEX="13">
-      <DESCRIPTION TYPE="SHORT">Utility Bus Split</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Bus splitting primitive</DESCRIPTION>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="0" NAME="C_SIZE_IN" VALUE="32"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="1" NAME="C_LEFT_POS" VALUE="9"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="2" NAME="C_SPLIT" VALUE="30"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="0" NAME="Sig" SIGNAME="fpga_0_SRAM_Mem_A_split" VECFORMULA="[0:C_SIZE_IN-1]"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="1" NAME="Out1" SIGNAME="fpga_0_SRAM_Mem_A" VECFORMULA="[C_LEFT_POS:C_SPLIT-1]"/>
-      <PORT DIR="O" MPD_INDEX="2" NAME="Out2" SIGNAME="__NOC__" VECFORMULA="[C_SPLIT:C_SIZE_IN-1]"/>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/generic_v1_00_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/clock_generator_v2_01_a/doc/html.pdf" GROUP="G" HWVERSION="2.01.a" INSTANCE="clock_generator_0" IPTYPE="PERIPHERAL" MHS_INDEX="9" MODCLASS="IP" MODTYPE="clock_generator" SAV_INDEX="12">
-      <DESCRIPTION TYPE="SHORT">Clock Generator</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Clock generator for processor system.</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_CLK_GEN" VALUE="0"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_NUM_PLL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_NUM_DCM" VALUE="0"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_CLKOUT0_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_CLKOUT0_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_CLKOUT1_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_CLKOUT1_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_CLKOUT2_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_CLKOUT2_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_CLKOUT3_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="12" NAME="C_CLKOUT3_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_CLKOUT4_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="14" NAME="C_CLKOUT4_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="15" NAME="C_CLKOUT5_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="16" NAME="C_CLKOUT5_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="17" NAME="C_CLKOUT6_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="18" NAME="C_CLKOUT6_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="19" NAME="C_CLKOUT7_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="20" NAME="C_CLKOUT7_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="21" NAME="C_CLKOUT8_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="22" NAME="C_CLKOUT8_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="23" NAME="C_CLKOUT9_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="24" NAME="C_CLKOUT9_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="25" NAME="C_CLKOUT10_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="26" NAME="C_CLKOUT10_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="27" NAME="C_CLKOUT11_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="28" NAME="C_CLKOUT11_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="29" NAME="C_CLKOUT12_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="30" NAME="C_CLKOUT12_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="31" NAME="C_CLKOUT13_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="32" NAME="C_CLKOUT13_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="33" NAME="C_CLKOUT14_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="34" NAME="C_CLKOUT14_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="35" NAME="C_CLKOUT15_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="36" NAME="C_CLKOUT15_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="37" NAME="C_CLKFBOUT_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="38" NAME="C_CLKFBOUT_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="39" NAME="C_PLL0_DIVCLK_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="40" NAME="C_PLL0_CLKFBOUT_MULT" VALUE="1"/>
-      <PARAMETER MPD_INDEX="41" NAME="C_PLL0_CLKFBOUT_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="42" NAME="C_PLL0_CLKIN1_PERIOD" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="43" NAME="C_PLL0_CLKOUT0_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="44" NAME="C_PLL0_CLKOUT0_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="45" NAME="C_PLL0_CLKOUT0_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="46" NAME="C_PLL0_CLKOUT1_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="47" NAME="C_PLL0_CLKOUT1_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="48" NAME="C_PLL0_CLKOUT1_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="49" NAME="C_PLL0_CLKOUT2_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="50" NAME="C_PLL0_CLKOUT2_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="51" NAME="C_PLL0_CLKOUT2_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="52" NAME="C_PLL0_CLKOUT3_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="53" NAME="C_PLL0_CLKOUT3_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="54" NAME="C_PLL0_CLKOUT3_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="55" NAME="C_PLL0_CLKOUT4_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="56" NAME="C_PLL0_CLKOUT4_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="57" NAME="C_PLL0_CLKOUT4_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="58" NAME="C_PLL0_CLKOUT5_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="59" NAME="C_PLL0_CLKOUT5_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="60" NAME="C_PLL0_CLKOUT5_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="61" NAME="C_PLL0_BANDWIDTH" VALUE="OPTIMIZED"/>
-      <PARAMETER MPD_INDEX="62" NAME="C_PLL0_COMPENSATION" VALUE="SYSTEM_SYNCHRONOUS"/>
-      <PARAMETER MPD_INDEX="63" NAME="C_PLL0_REF_JITTER" VALUE="0.100000"/>
-      <PARAMETER MPD_INDEX="64" NAME="C_PLL0_RESET_ON_LOSS_OF_LOCK" VALUE="false"/>
-      <PARAMETER MPD_INDEX="65" NAME="C_PLL0_RST_DEASSERT_CLK" VALUE="CLKIN1"/>
-      <PARAMETER MPD_INDEX="66" NAME="C_PLL0_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="67" NAME="C_PLL0_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="68" NAME="C_PLL0_CLKOUT0_DESKEW_ADJUST" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="69" NAME="C_PLL0_CLKOUT1_DESKEW_ADJUST" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="70" NAME="C_PLL0_CLKOUT2_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="71" NAME="C_PLL0_CLKOUT3_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="72" NAME="C_PLL0_CLKOUT4_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="73" NAME="C_PLL0_CLKOUT5_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="74" NAME="C_PLL0_CLKFBOUT_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="75" NAME="C_PLL0_CLKIN1_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="76" NAME="C_PLL0_CLKFBOUT_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="77" NAME="C_PLL0_CLKOUT0_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="78" NAME="C_PLL0_CLKOUT1_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="79" NAME="C_PLL0_CLKOUT2_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="80" NAME="C_PLL0_CLKOUT3_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="81" NAME="C_PLL0_CLKOUT4_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="82" NAME="C_PLL0_CLKOUT5_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="83" NAME="C_PLL0_CLKIN1_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="84" NAME="C_PLL0_CLKIN1_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="85" NAME="C_PLL0_CLKFBIN_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="86" NAME="C_PLL0_CLKFBIN_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="87" NAME="C_PLL0_RST_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="88" NAME="C_PLL1_DIVCLK_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="89" NAME="C_PLL1_CLKFBOUT_MULT" VALUE="1"/>
-      <PARAMETER MPD_INDEX="90" NAME="C_PLL1_CLKFBOUT_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="91" NAME="C_PLL1_CLKIN1_PERIOD" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="92" NAME="C_PLL1_CLKOUT0_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="93" NAME="C_PLL1_CLKOUT0_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="94" NAME="C_PLL1_CLKOUT0_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="95" NAME="C_PLL1_CLKOUT1_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="96" NAME="C_PLL1_CLKOUT1_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="97" NAME="C_PLL1_CLKOUT1_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="98" NAME="C_PLL1_CLKOUT2_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="99" NAME="C_PLL1_CLKOUT2_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="100" NAME="C_PLL1_CLKOUT2_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="101" NAME="C_PLL1_CLKOUT3_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="102" NAME="C_PLL1_CLKOUT3_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="103" NAME="C_PLL1_CLKOUT3_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="104" NAME="C_PLL1_CLKOUT4_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="105" NAME="C_PLL1_CLKOUT4_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="106" NAME="C_PLL1_CLKOUT4_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="107" NAME="C_PLL1_CLKOUT5_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="108" NAME="C_PLL1_CLKOUT5_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="109" NAME="C_PLL1_CLKOUT5_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="110" NAME="C_PLL1_BANDWIDTH" VALUE="OPTIMIZED"/>
-      <PARAMETER MPD_INDEX="111" NAME="C_PLL1_COMPENSATION" VALUE="SYSTEM_SYNCHRONOUS"/>
-      <PARAMETER MPD_INDEX="112" NAME="C_PLL1_REF_JITTER" VALUE="0.100000"/>
-      <PARAMETER MPD_INDEX="113" NAME="C_PLL1_RESET_ON_LOSS_OF_LOCK" VALUE="false"/>
-      <PARAMETER MPD_INDEX="114" NAME="C_PLL1_RST_DEASSERT_CLK" VALUE="CLKIN1"/>
-      <PARAMETER MPD_INDEX="115" NAME="C_PLL1_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="116" NAME="C_PLL1_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="117" NAME="C_PLL1_CLKOUT0_DESKEW_ADJUST" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="118" NAME="C_PLL1_CLKOUT1_DESKEW_ADJUST" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="119" NAME="C_PLL1_CLKOUT2_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="120" NAME="C_PLL1_CLKOUT3_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="121" NAME="C_PLL1_CLKOUT4_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="122" NAME="C_PLL1_CLKOUT5_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="123" NAME="C_PLL1_CLKFBOUT_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="124" NAME="C_PLL1_CLKIN1_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="125" NAME="C_PLL1_CLKFBOUT_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="126" NAME="C_PLL1_CLKOUT0_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="127" NAME="C_PLL1_CLKOUT1_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="128" NAME="C_PLL1_CLKOUT2_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="129" NAME="C_PLL1_CLKOUT3_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="130" NAME="C_PLL1_CLKOUT4_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="131" NAME="C_PLL1_CLKOUT5_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="132" NAME="C_PLL1_CLKIN1_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="133" NAME="C_PLL1_CLKIN1_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="134" NAME="C_PLL1_CLKFBIN_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="135" NAME="C_PLL1_CLKFBIN_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="136" NAME="C_PLL1_RST_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="137" NAME="C_DCM0_DFS_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="138" NAME="C_DCM0_DLL_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="139" NAME="C_DCM0_DUTY_CYCLE_CORRECTION" VALUE="true"/>
-      <PARAMETER MPD_INDEX="140" NAME="C_DCM0_CLKIN_DIVIDE_BY_2" VALUE="false"/>
-      <PARAMETER MPD_INDEX="141" NAME="C_DCM0_CLK_FEEDBACK" VALUE="1X"/>
-      <PARAMETER MPD_INDEX="142" NAME="C_DCM0_CLKOUT_PHASE_SHIFT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="143" NAME="C_DCM0_DSS_MODE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="144" NAME="C_DCM0_STARTUP_WAIT" VALUE="false"/>
-      <PARAMETER MPD_INDEX="145" NAME="C_DCM0_PHASE_SHIFT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="146" NAME="C_DCM0_CLKFX_MULTIPLY" VALUE="4"/>
-      <PARAMETER MPD_INDEX="147" NAME="C_DCM0_CLKFX_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="148" NAME="C_DCM0_CLKDV_DIVIDE" VALUE="2.000000"/>
-      <PARAMETER MPD_INDEX="149" NAME="C_DCM0_CLKIN_PERIOD" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="150" NAME="C_DCM0_DESKEW_ADJUST" VALUE="SYSTEM_SYNCHRONOUS"/>
-      <PARAMETER MPD_INDEX="151" NAME="C_DCM0_CLKIN_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="152" NAME="C_DCM0_CLKFB_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="153" NAME="C_DCM0_CLK0_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="154" NAME="C_DCM0_CLK90_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="155" NAME="C_DCM0_CLK180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="156" NAME="C_DCM0_CLK270_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="157" NAME="C_DCM0_CLKDV_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="158" NAME="C_DCM0_CLKDV180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="159" NAME="C_DCM0_CLK2X_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="160" NAME="C_DCM0_CLK2X180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="161" NAME="C_DCM0_CLKFX_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="162" NAME="C_DCM0_CLKFX180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="163" NAME="C_DCM0_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="164" NAME="C_DCM0_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="165" NAME="C_DCM0_CLKIN_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="166" NAME="C_DCM0_CLKIN_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="167" NAME="C_DCM0_CLKFB_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="168" NAME="C_DCM0_CLKFB_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="169" NAME="C_DCM0_RST_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="170" NAME="C_DCM1_DFS_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="171" NAME="C_DCM1_DLL_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="172" NAME="C_DCM1_DUTY_CYCLE_CORRECTION" VALUE="true"/>
-      <PARAMETER MPD_INDEX="173" NAME="C_DCM1_CLKIN_DIVIDE_BY_2" VALUE="false"/>
-      <PARAMETER MPD_INDEX="174" NAME="C_DCM1_CLK_FEEDBACK" VALUE="1X"/>
-      <PARAMETER MPD_INDEX="175" NAME="C_DCM1_CLKOUT_PHASE_SHIFT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="176" NAME="C_DCM1_DSS_MODE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="177" NAME="C_DCM1_STARTUP_WAIT" VALUE="false"/>
-      <PARAMETER MPD_INDEX="178" NAME="C_DCM1_PHASE_SHIFT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="179" NAME="C_DCM1_CLKFX_MULTIPLY" VALUE="4"/>
-      <PARAMETER MPD_INDEX="180" NAME="C_DCM1_CLKFX_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="181" NAME="C_DCM1_CLKDV_DIVIDE" VALUE="2.000000"/>
-      <PARAMETER MPD_INDEX="182" NAME="C_DCM1_CLKIN_PERIOD" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="183" NAME="C_DCM1_DESKEW_ADJUST" VALUE="SYSTEM_SYNCHRONOUS"/>
-      <PARAMETER MPD_INDEX="184" NAME="C_DCM1_CLKIN_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="185" NAME="C_DCM1_CLKFB_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="186" NAME="C_DCM1_CLK0_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="187" NAME="C_DCM1_CLK90_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="188" NAME="C_DCM1_CLK180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="189" NAME="C_DCM1_CLK270_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="190" NAME="C_DCM1_CLKDV_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="191" NAME="C_DCM1_CLKDV180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="192" NAME="C_DCM1_CLK2X_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="193" NAME="C_DCM1_CLK2X180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="194" NAME="C_DCM1_CLKFX_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="195" NAME="C_DCM1_CLKFX180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="196" NAME="C_DCM1_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="197" NAME="C_DCM1_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="198" NAME="C_DCM1_CLKIN_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="199" NAME="C_DCM1_CLKIN_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="200" NAME="C_DCM1_CLKFB_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="201" NAME="C_DCM1_CLKFB_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="202" NAME="C_DCM1_RST_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="203" NAME="C_DCM2_DFS_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="204" NAME="C_DCM2_DLL_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="205" NAME="C_DCM2_DUTY_CYCLE_CORRECTION" VALUE="true"/>
-      <PARAMETER MPD_INDEX="206" NAME="C_DCM2_CLKIN_DIVIDE_BY_2" VALUE="false"/>
-      <PARAMETER MPD_INDEX="207" NAME="C_DCM2_CLK_FEEDBACK" VALUE="1X"/>
-      <PARAMETER MPD_INDEX="208" NAME="C_DCM2_CLKOUT_PHASE_SHIFT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="209" NAME="C_DCM2_DSS_MODE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="210" NAME="C_DCM2_STARTUP_WAIT" VALUE="false"/>
-      <PARAMETER MPD_INDEX="211" NAME="C_DCM2_PHASE_SHIFT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="212" NAME="C_DCM2_CLKFX_MULTIPLY" VALUE="4"/>
-      <PARAMETER MPD_INDEX="213" NAME="C_DCM2_CLKFX_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="214" NAME="C_DCM2_CLKDV_DIVIDE" VALUE="2.000000"/>
-      <PARAMETER MPD_INDEX="215" NAME="C_DCM2_CLKIN_PERIOD" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="216" NAME="C_DCM2_DESKEW_ADJUST" VALUE="SYSTEM_SYNCHRONOUS"/>
-      <PARAMETER MPD_INDEX="217" NAME="C_DCM2_CLKIN_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="218" NAME="C_DCM2_CLKFB_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="219" NAME="C_DCM2_CLK0_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="220" NAME="C_DCM2_CLK90_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="221" NAME="C_DCM2_CLK180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="222" NAME="C_DCM2_CLK270_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="223" NAME="C_DCM2_CLKDV_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="224" NAME="C_DCM2_CLKDV180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="225" NAME="C_DCM2_CLK2X_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="226" NAME="C_DCM2_CLK2X180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="227" NAME="C_DCM2_CLKFX_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="228" NAME="C_DCM2_CLKFX180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="229" NAME="C_DCM2_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="230" NAME="C_DCM2_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="231" NAME="C_DCM2_CLKIN_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="232" NAME="C_DCM2_CLKIN_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="233" NAME="C_DCM2_CLKFB_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="234" NAME="C_DCM2_CLKFB_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="235" NAME="C_DCM2_RST_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="236" NAME="C_DCM3_DFS_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="237" NAME="C_DCM3_DLL_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="238" NAME="C_DCM3_DUTY_CYCLE_CORRECTION" VALUE="true"/>
-      <PARAMETER MPD_INDEX="239" NAME="C_DCM3_CLKIN_DIVIDE_BY_2" VALUE="false"/>
-      <PARAMETER MPD_INDEX="240" NAME="C_DCM3_CLK_FEEDBACK" VALUE="1X"/>
-      <PARAMETER MPD_INDEX="241" NAME="C_DCM3_CLKOUT_PHASE_SHIFT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="242" NAME="C_DCM3_DSS_MODE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="243" NAME="C_DCM3_STARTUP_WAIT" VALUE="false"/>
-      <PARAMETER MPD_INDEX="244" NAME="C_DCM3_PHASE_SHIFT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="245" NAME="C_DCM3_CLKFX_MULTIPLY" VALUE="4"/>
-      <PARAMETER MPD_INDEX="246" NAME="C_DCM3_CLKFX_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="247" NAME="C_DCM3_CLKDV_DIVIDE" VALUE="2.000000"/>
-      <PARAMETER MPD_INDEX="248" NAME="C_DCM3_CLKIN_PERIOD" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="249" NAME="C_DCM3_DESKEW_ADJUST" VALUE="SYSTEM_SYNCHRONOUS"/>
-      <PARAMETER MPD_INDEX="250" NAME="C_DCM3_CLKIN_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="251" NAME="C_DCM3_CLKFB_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="252" NAME="C_DCM3_CLK0_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="253" NAME="C_DCM3_CLK90_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="254" NAME="C_DCM3_CLK180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="255" NAME="C_DCM3_CLK270_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="256" NAME="C_DCM3_CLKDV_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="257" NAME="C_DCM3_CLKDV180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="258" NAME="C_DCM3_CLK2X_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="259" NAME="C_DCM3_CLK2X180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="260" NAME="C_DCM3_CLKFX_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="261" NAME="C_DCM3_CLKFX180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="262" NAME="C_DCM3_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="263" NAME="C_DCM3_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="264" NAME="C_DCM3_CLKIN_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="265" NAME="C_DCM3_CLKIN_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="266" NAME="C_DCM3_CLKFB_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="267" NAME="C_DCM3_CLKFB_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="268" NAME="C_DCM3_RST_MODULE" VALUE="NONE"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="269" NAME="C_CLKIN_FREQ" VALUE="100000000"/>
-      <PARAMETER MPD_INDEX="270" NAME="C_CLKIN_BUF" VALUE="FALSE"/>
-      <PARAMETER MPD_INDEX="271" NAME="C_CLKFBIN_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="272" NAME="C_CLKFBIN_BUF" VALUE="FALSE"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="273" NAME="C_CLKOUT0_FREQ" VALUE="200000000"/>
-      <PARAMETER MPD_INDEX="274" NAME="C_CLKOUT0_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="275" NAME="C_CLKOUT0_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="276" NAME="C_CLKOUT0_BUF" VALUE="TRUE"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="277" NAME="C_CLKOUT1_FREQ" VALUE="100000000"/>
-      <PARAMETER MPD_INDEX="278" NAME="C_CLKOUT1_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="279" NAME="C_CLKOUT1_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="280" NAME="C_CLKOUT1_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="281" NAME="C_CLKOUT2_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="282" NAME="C_CLKOUT2_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="283" NAME="C_CLKOUT2_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="284" NAME="C_CLKOUT2_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="285" NAME="C_CLKOUT3_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="286" NAME="C_CLKOUT3_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="287" NAME="C_CLKOUT3_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="288" NAME="C_CLKOUT3_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="289" NAME="C_CLKOUT4_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="290" NAME="C_CLKOUT4_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="291" NAME="C_CLKOUT4_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="292" NAME="C_CLKOUT4_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="293" NAME="C_CLKOUT5_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="294" NAME="C_CLKOUT5_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="295" NAME="C_CLKOUT5_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="296" NAME="C_CLKOUT5_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="297" NAME="C_CLKOUT6_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="298" NAME="C_CLKOUT6_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="299" NAME="C_CLKOUT6_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="300" NAME="C_CLKOUT6_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="301" NAME="C_CLKOUT7_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="302" NAME="C_CLKOUT7_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="303" NAME="C_CLKOUT7_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="304" NAME="C_CLKOUT7_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="305" NAME="C_CLKOUT8_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="306" NAME="C_CLKOUT8_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="307" NAME="C_CLKOUT8_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="308" NAME="C_CLKOUT8_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="309" NAME="C_CLKOUT9_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="310" NAME="C_CLKOUT9_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="311" NAME="C_CLKOUT9_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="312" NAME="C_CLKOUT9_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="313" NAME="C_CLKOUT10_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="314" NAME="C_CLKOUT10_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="315" NAME="C_CLKOUT10_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="316" NAME="C_CLKOUT10_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="317" NAME="C_CLKOUT11_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="318" NAME="C_CLKOUT11_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="319" NAME="C_CLKOUT11_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="320" NAME="C_CLKOUT11_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="321" NAME="C_CLKOUT12_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="322" NAME="C_CLKOUT12_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="323" NAME="C_CLKOUT12_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="324" NAME="C_CLKOUT12_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="325" NAME="C_CLKOUT13_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="326" NAME="C_CLKOUT13_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="327" NAME="C_CLKOUT13_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="328" NAME="C_CLKOUT13_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="329" NAME="C_CLKOUT14_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="330" NAME="C_CLKOUT14_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="331" NAME="C_CLKOUT14_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="332" NAME="C_CLKOUT14_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="333" NAME="C_CLKOUT15_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="334" NAME="C_CLKOUT15_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="335" NAME="C_CLKOUT15_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="336" NAME="C_CLKOUT15_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="337" NAME="C_CLKFBOUT_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="338" NAME="C_CLKFBOUT_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="339" NAME="C_SPEEDGRADE" VALUE="DEFAULT"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="2" NAME="CLKOUT0" SIGIS="CLK" SIGNAME="proc_clk_s"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="3" NAME="CLKOUT1" SIGIS="CLK" SIGNAME="sys_clk_s"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="0" NAME="CLKIN" SIGIS="CLK" SIGNAME="dcm_clk_s"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="20" NAME="LOCKED" SIGNAME="Dcm_all_locked"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="19" NAME="RST" SIGIS="RST" SIGNAME="net_gnd"/>
-      <PORT DIR="I" ISVALID="FALSE" MPD_INDEX="1" NAME="CLKFBIN" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="4" NAME="CLKOUT2" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="5" NAME="CLKOUT3" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="6" NAME="CLKOUT4" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="7" NAME="CLKOUT5" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="8" NAME="CLKOUT6" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="9" NAME="CLKOUT7" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="10" NAME="CLKOUT8" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="11" NAME="CLKOUT9" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="12" NAME="CLKOUT10" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="13" NAME="CLKOUT11" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="14" NAME="CLKOUT12" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="15" NAME="CLKOUT13" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="16" NAME="CLKOUT14" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="17" NAME="CLKOUT15" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="18" NAME="CLKFBOUT" SIGIS="CLK" SIGNAME="__NOC__"/>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/generic_v1_00_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/proc_sys_reset_v2_00_a/doc/proc_sys_reset.pdf" GROUP="H" HWVERSION="2.00.a" INSTANCE="proc_sys_reset_0" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="10" MODCLASS="PERIPHERAL" MODTYPE="proc_sys_reset" SAV_INDEX="6">
-      <DESCRIPTION TYPE="SHORT">Processor System Reset Module</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Reset management module</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_SUBFAMILY" VALUE="lx"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_EXT_RST_WIDTH" VALUE="4"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_AUX_RST_WIDTH" VALUE="4"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="3" NAME="C_EXT_RESET_HIGH" VALUE="0"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_AUX_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_NUM_BUS_RST" VALUE="1"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_NUM_PERP_RST" VALUE="1"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_FAMILY" VALUE="virtex5"/>
-      <BUSINTERFACE BIFRANK="INITIATOR" BIF_X="1" BIF_Y="0" BUSNAME="ppc_reset_bus" BUSSTD="XIL" BUS_STD="XIL_RESETPPC" MPD_INDEX="0" NAME="RESETPPC0"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="0" NAME="Slowest_sync_clk" SIGIS="CLK" SIGNAME="sys_clk_s"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="10" NAME="Dcm_locked" SIGNAME="Dcm_all_locked"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="1" NAME="Ext_Reset_In" SIGIS="RST" SIGNAME="sys_rst_s"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="18" NAME="Bus_Struct_Reset" SIGIS="RST" SIGNAME="sys_bus_reset" VECFORMULA="[0:C_NUM_BUS_RST-1]"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="19" NAME="Peripheral_Reset" SIGIS="RST" SIGNAME="sys_periph_reset" VECFORMULA="[0:C_NUM_PERP_RST-1]"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="Aux_Reset_In" SIGIS="RST" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="MB_Debug_Sys_Rst" SIGIS="RST" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="Core_Reset_Req_0" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="Chip_Reset_Req_0" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="System_Reset_Req_0" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="Core_Reset_Req_1" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="Chip_Reset_Req_1" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="System_Reset_Req_1" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="11" NAME="RstcPPCresetcore_0" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="12" NAME="RstcPPCresetchip_0" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="13" NAME="RstcPPCresetsys_0" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="14" NAME="RstcPPCresetcore_1" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="15" NAME="RstcPPCresetchip_1" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="16" NAME="RstcPPCresetsys_1" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="17" NAME="MB_Reset" SIGIS="RST" SIGNAME="__NOC__"/>
-      <BUSINTERFACE BIFRANK="INITIATOR" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_RESETPPC" MPD_INDEX="1" NAME="RESETPPC1"/>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/intc_v1_11_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/xps_intc_v1_00_a/doc/xps_intc.pdf" HWVERSION="1.00.a" INSTANCE="xps_intc_0" INTCINDEX="0" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="11" MODCLASS="INTERRUPT_CNTLR" MODTYPE="xps_intc" PROCESSOR="ppc405_0" SAV_INDEX="9">
-      <DESCRIPTION TYPE="SHORT">XPS Interrupt Controller</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">intc core attached to the PLBV46</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="1" NAME="C_BASEADDR" VALUE="0x81800000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="2" NAME="C_HIGHADDR" VALUE="0x8180ffff"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_SPLB_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_SPLB_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_SPLB_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_SPLB_NUM_MASTERS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_SPLB_MID_WIDTH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_SPLB_NATIVE_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_SPLB_SUPPORT_BURSTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_NUM_INTR_INPUTS" VALUE="2"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_KIND_OF_INTR" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="12" NAME="C_KIND_OF_EDGE" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_KIND_OF_LVL" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="14" NAME="C_HAS_IPR" VALUE="1"/>
-      <PARAMETER MPD_INDEX="15" NAME="C_HAS_SIE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="16" NAME="C_HAS_CIE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="17" NAME="C_HAS_IVR" VALUE="1"/>
-      <PARAMETER MPD_INDEX="18" NAME="C_IRQ_ACTIVE" VALUE="1"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="0" NAME="SPLB"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="43" NAME="Irq" SENSITIVITY="EDGE_RISING" SIGIS="INTERRUPT" SIGNAME="EICC405EXTINPUTIRQ"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="42" NAME="Intr" SENSITIVITY="EDGE_RISING" SIGIS="INTERRUPT" SIGNAME="RS232_Uart_Interrupt" VECFORMULA="[(C_NUM_INTR_INPUTS-1):0]"/>
-      <PORT DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="PLB_rdPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="PLB_wrPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="23" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="24" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="Sl_rdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="Sl_rdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="38" NAME="Sl_wrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="39" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="40" NAME="Sl_rdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="41" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <INTERRUPTSRCS>
-        <INTRSRC INSTANCE="RS232_Uart" PRIORITY="0" SIGNAME="RS232_Uart_Interrupt"/>
-      </INTERRUPTSRCS>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0x81800000" BASENAME="C_BASEADDR" BASEVALUE="2172649472" HIGH="0x8180ffff" HIGHNAME="C_HIGHADDR" HIGHVALUE="2172715007" MINSIZE="0x20" SIZE="65536" SIZEABRV="64K">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE BUSSTD="FCB" BUS_STD="FCB" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/fcb_v10_v1_00_a/doc/fcb_v10.pdf" HWVERSION="1.00.a" INSTANCE="fcb_v10_0" IPTYPE="BUS" IS_PLACED="TRUE" MHS_INDEX="12" MODCLASS="BUS" MODTYPE="fcb_v10" SAV_INDEX="1">
-      <DESCRIPTION TYPE="SHORT">Fabric Co-processor Bus (FCB)</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Fabric Co-processor Bus (FCB) connects one or more FPGA fabric accelerator slaves to the Auxiliary Processor Unit (APU) controller in a Virtex-4 PowerPC 405.</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_FCB_NUM_MASTERS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_FCB_NUM_SLAVES" VALUE="1"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_DATA_WIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_EXT_RESET_HIGH" VALUE="1"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="0" NAME="FCB_CLK" SIGIS="CLK" SIGNAME="proc_clk_s"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="1" NAME="SYS_RST" SIGIS="RST" SIGNAME="sys_bus_reset"/>
-      <PORT DIR="O" MPD_INDEX="2" NAME="FCB_RST" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="M_DECODED" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_MASTERS-1)]"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="M_DECUDI" SIGNAME="__DEF__" VECFORMULA="[0:((3*C_FCB_NUM_MASTERS)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="M_DECUDIVALID" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_MASTERS-1)]"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="M_ENDIAN" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_MASTERS-1)]"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="M_FLUSH" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_MASTERS-1)]"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="M_INSTRUCTION" SIGNAME="__DEF__" VECFORMULA="[0:((C_DATA_WIDTH*C_FCB_NUM_MASTERS)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="M_INSTRVALID" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_MASTERS-1)]"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="M_LOADBYTEEN" SIGNAME="__DEF__" VECFORMULA="[0:((C_DATA_WIDTH/8*C_FCB_NUM_MASTERS)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="M_LOADDATA" SIGNAME="__DEF__" VECFORMULA="[0:((C_DATA_WIDTH*C_FCB_NUM_MASTERS)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="M_LOADDVALID" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_MASTERS-1)]"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="M_OPERANDVALID" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_MASTERS-1)]"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="M_RADATA" SIGNAME="__DEF__" VECFORMULA="[0:((C_DATA_WIDTH*C_FCB_NUM_MASTERS)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="M_RBDATA" SIGNAME="__DEF__" VECFORMULA="[0:((C_DATA_WIDTH*C_FCB_NUM_MASTERS)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="M_WRITEBACKOK" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_MASTERS-1)]"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="M_XERCA" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="18" NAME="FCB_CR" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="19" NAME="FCB_DCDCREN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="20" NAME="FCB_DCDFORCEALIGN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="21" NAME="FCB_DCDFORCEBESTEERING" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="22" NAME="FCB_DCDFPUOP" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="23" NAME="FCB_DCDGPRWRITE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="24" NAME="FCB_DCDLDSTBYTE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="25" NAME="FCB_DCDLDSTDW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="FCB_DCDLDSTHW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="FCB_DCDLDSTQW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="FCB_DCDLDSTWD" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="FCB_DCDLOAD" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="FCB_DCDPRIVOP" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="FCB_DCDRAEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="FCB_DCDRBEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="FCB_DCDSTORE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="FCB_DCDTRAPBE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="FCB_DCDTRAPLE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="FCB_DCDUPDATE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="FCB_DCDXERCAEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="38" NAME="FCB_DCDXEROVEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="39" NAME="FCB_DECODEBUSY" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="40" NAME="FCB_DONE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="41" NAME="FCB_EXCEPTION" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="42" NAME="FCB_EXEBLOCKINGMCO" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="43" NAME="FCB_EXECRFIELD" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="44" NAME="FCB_EXENONBLOCKINGMCO" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="45" NAME="FCB_INSTRACK" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="46" NAME="FCB_LOADWAIT" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="47" NAME="FCB_RESULT" SIGNAME="__DEF__" VECFORMULA="[0:C_DATA_WIDTH-1]"/>
-      <PORT DIR="O" MPD_INDEX="48" NAME="FCB_RESULTVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="49" NAME="FCB_SLEEPNOTREADY" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="50" NAME="FCB_FCM_XERCA" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="51" NAME="FCB_XEROV" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="52" NAME="FCB_DECODED" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="53" NAME="FCB_DECUDI" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="54" NAME="FCB_DECUDIVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="55" NAME="FCB_ENDIAN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="56" NAME="FCB_FLUSH" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="57" NAME="FCB_INSTRUCTION" SIGNAME="__DEF__" VECFORMULA="[0:C_DATA_WIDTH-1]"/>
-      <PORT DIR="O" MPD_INDEX="58" NAME="FCB_INSTRVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="59" NAME="FCB_LOADBYTEEN" SIGNAME="__DEF__" VECFORMULA="[0:C_DATA_WIDTH/8-1]"/>
-      <PORT DIR="O" MPD_INDEX="60" NAME="FCB_LOADDATA" SIGNAME="__DEF__" VECFORMULA="[0:C_DATA_WIDTH-1]"/>
-      <PORT DIR="O" MPD_INDEX="61" NAME="FCB_LOADDVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="62" NAME="FCB_OPERANDVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="63" NAME="FCB_RADATA" SIGNAME="__DEF__" VECFORMULA="[0:C_DATA_WIDTH-1]"/>
-      <PORT DIR="O" MPD_INDEX="64" NAME="FCB_RBDATA" SIGNAME="__DEF__" VECFORMULA="[0:C_DATA_WIDTH-1]"/>
-      <PORT DIR="O" MPD_INDEX="65" NAME="FCB_WRITEBACKOK" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="66" NAME="FCB_APU_XERCA" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="67" NAME="FCB_ABORTDECODE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="68" NAME="Sl_CR" SIGNAME="__DEF__" VECFORMULA="[0:((4*C_FCB_NUM_SLAVES)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="69" NAME="Sl_DCDCREN" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="70" NAME="Sl_DCDFORCEALIGN" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="71" NAME="Sl_DCDFORCEBESTEERING" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="72" NAME="Sl_DCDFPUOP" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="73" NAME="Sl_DCDGPRWRITE" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="74" NAME="Sl_DCDLDSTBYTE" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="75" NAME="Sl_DCDLDSTDW" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="76" NAME="Sl_DCDLDSTHW" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="77" NAME="Sl_DCDLDSTQW" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="78" NAME="Sl_DCDLDSTWD" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="79" NAME="Sl_DCDLOAD" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="80" NAME="Sl_DCDPRIVOP" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="81" NAME="Sl_DCDRAEN" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="82" NAME="Sl_DCDRBEN" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="83" NAME="Sl_DCDSTORE" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="84" NAME="Sl_DCDTRAPBE" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="85" NAME="Sl_DCDTRAPLE" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="86" NAME="Sl_DCDUPDATE" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="87" NAME="Sl_DCDXERCAEN" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="88" NAME="Sl_DCDXEROVEN" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="89" NAME="Sl_DECODEBUSY" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="90" NAME="Sl_DONE" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="91" NAME="Sl_EXCEPTION" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="92" NAME="Sl_EXEBLOCKINGMCO" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="93" NAME="Sl_EXECRFIELD" SIGNAME="__DEF__" VECFORMULA="[0:((3*C_FCB_NUM_SLAVES)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="94" NAME="Sl_EXENONBLOCKINGMCO" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="95" NAME="Sl_INSTRACK" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="96" NAME="Sl_LOADWAIT" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="97" NAME="Sl_RESULT" SIGNAME="__DEF__" VECFORMULA="[0:((C_DATA_WIDTH*C_FCB_NUM_SLAVES)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="98" NAME="Sl_RESULTVALID" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="99" NAME="Sl_SLEEPNOTREADY" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="100" NAME="Sl_XERCA" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-      <PORT DIR="I" MPD_INDEX="101" NAME="Sl_XEROV" SIGNAME="__DEF__" VECFORMULA="[0:(C_FCB_NUM_SLAVES-1)]"/>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/apu_fpu_v2_10_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/apu_fpu_v3_10_a/doc/apu_fpu_v3_10_a.pdf" HWVERSION="3.10.a" INSTANCE="apu_fpu_0" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="13" MODCLASS="PERIPHERAL" MODTYPE="apu_fpu" SAV_INDEX="4">
-      <DESCRIPTION TYPE="SHORT">APU Floating Point Unit</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Floating Point Unit via Auxilary Processor Unit.</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_FULL_FEATURES" VALUE="1"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BIF_X="1" BIF_Y="0" BUSNAME="fcb_v10_0" BUSSTD="FCB" BUS_STD="FCB" MPD_INDEX="0" NAME="SFCB"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="2" NAME="FPU_CLK" SIGIS="CLK" SIGNAME="sys_clk_s"/>
-      <PORT DIR="I" MPD_INDEX="0" NAME="FCB_CLK" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="FCB_RST" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="APUFCMDECODED" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="APUFCMDECUDI" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="APUFCMDECUDIVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="APUFCMENDIAN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="APUFCMFLUSH" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="APUFCMINSTRUCTION" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="APUFCMINSTRVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="APUFCMLOADBYTEEN" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="APUFCMLOADDATA" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="APUFCMLOADDVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="APUFCMOPERANDVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="APUFCMRADATA" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="APUFCMRBDATA" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="APUFCMWRITEBACKOK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="APUFCMXERCA" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="18" NAME="FCMAPUCR" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="19" NAME="FCMAPUDCDCREN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="20" NAME="FCMAPUDCDFORCEALIGN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="21" NAME="FCMAPUDCDFORCEBESTEERING" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="22" NAME="FCMAPUDCDFPUOP" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="23" NAME="FCMAPUDCDGPRWRITE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="24" NAME="FCMAPUDCDLDSTBYTE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="25" NAME="FCMAPUDCDLDSTDW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="FCMAPUDCDLDSTHW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="FCMAPUDCDLDSTQW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="FCMAPUDCDLDSTWD" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="FCMAPUDCDLOAD" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="FCMAPUDCDPRIVOP" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="FCMAPUDCDRAEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="FCMAPUDCDRBEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="FCMAPUDCDSTORE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="FCMAPUDCDTRAPBE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="FCMAPUDCDTRAPLE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="FCMAPUDCDUPDATE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="FCMAPUDCDXERCAEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="38" NAME="FCMAPUDCDXEROVEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="39" NAME="FCMAPUDECODEBUSY" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="40" NAME="FCMAPUDONE" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="41" NAME="FCMAPUEXCEPTION" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="42" NAME="FCMAPUEXEBLOCKINGMCO" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="43" NAME="FCMAPUEXECRFIELD" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="44" NAME="FCMAPUEXENONBLOCKINGMCO" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="45" NAME="FCMAPUINSTRACK" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="46" NAME="FCMAPULOADWAIT" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="47" NAME="FCMAPURESULT" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="48" NAME="FCMAPURESULTVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="49" NAME="FCMAPUSLEEPNOTREADY" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="50" NAME="FCMAPUXERCA" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="51" NAME="FCMAPUXEROV" SIGNAME="__DEF__"/>
-    </MODULE>
-  </MODULES>
-
-  <EXTERNALPORTS>
-    <PORT DIR="I" MHS_INDEX="0" NAME="fpga_0_RS232_Uart_RX_pin" SIGNAME="fpga_0_RS232_Uart_RX"/>
-    <PORT DIR="O" MHS_INDEX="1" NAME="fpga_0_RS232_Uart_TX_pin" SIGNAME="fpga_0_RS232_Uart_TX"/>
-    <PORT DIR="IO" ENDIAN="BIG" LSB="0" MHS_INDEX="2" MSB="3" NAME="fpga_0_LEDs_4Bit_GPIO_IO_pin" SIGNAME="fpga_0_LEDs_4Bit_GPIO_IO"/>
-    <PORT DIR="IO" ENDIAN="LITTLE" LSB="0" MHS_INDEX="3" MSB="4" NAME="fpga_0_LEDs_Positions_GPIO_IO_pin" SIGNAME="fpga_0_LEDs_Positions_GPIO_IO"/>
-    <PORT DIR="I" MHS_INDEX="4" NAME="fpga_0_SysACE_CompactFlash_SysACE_CLK_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_CLK"/>
-    <PORT DIR="O" ENDIAN="BIG" LSB="6" MHS_INDEX="5" MSB="1" NAME="fpga_0_SysACE_CompactFlash_SysACE_MPA_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_MPA"/>
-    <PORT DIR="IO" ENDIAN="LITTLE" LSB="15" MHS_INDEX="6" MSB="0" NAME="fpga_0_SysACE_CompactFlash_SysACE_MPD_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_MPD"/>
-    <PORT DIR="O" MHS_INDEX="7" NAME="fpga_0_SysACE_CompactFlash_SysACE_CEN_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_CEN"/>
-    <PORT DIR="O" MHS_INDEX="8" NAME="fpga_0_SysACE_CompactFlash_SysACE_OEN_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_OEN"/>
-    <PORT DIR="O" MHS_INDEX="9" NAME="fpga_0_SysACE_CompactFlash_SysACE_WEN_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_WEN"/>
-    <PORT DIR="I" MHS_INDEX="10" NAME="fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_MPIRQ"/>
-    <PORT DIR="O" ENDIAN="BIG" LSB="9" MHS_INDEX="11" MSB="29" NAME="fpga_0_SRAM_Mem_A_pin" SIGNAME="fpga_0_SRAM_Mem_A"/>
-    <PORT DIR="O" ENDIAN="LITTLE" LSB="0" MHS_INDEX="12" MSB="3" NAME="fpga_0_SRAM_Mem_BEN_pin" SIGNAME="fpga_0_SRAM_Mem_BEN"/>
-    <PORT DIR="O" MHS_INDEX="13" NAME="fpga_0_SRAM_Mem_WEN_pin" SIGNAME="fpga_0_SRAM_Mem_WEN"/>
-    <PORT DIR="IO" ENDIAN="BIG" LSB="0" MHS_INDEX="14" MSB="31" NAME="fpga_0_SRAM_Mem_DQ_pin" SIGNAME="fpga_0_SRAM_Mem_DQ"/>
-    <PORT DIR="O" ENDIAN="LITTLE" LSB="0" MHS_INDEX="15" MSB="0" NAME="fpga_0_SRAM_Mem_OEN_pin" SIGNAME="fpga_0_SRAM_Mem_OEN"/>
-    <PORT DIR="O" ENDIAN="BIG" LSB="0" MHS_INDEX="16" MSB="0" NAME="fpga_0_SRAM_Mem_CEN_pin" SIGNAME="fpga_0_SRAM_Mem_CEN"/>
-    <PORT DIR="O" MHS_INDEX="17" NAME="fpga_0_SRAM_Mem_ADV_LDN_pin" SIGNAME="fpga_0_SRAM_Mem_ADV_LDN"/>
-    <PORT DIR="O" MHS_INDEX="18" NAME="fpga_0_SRAM_CLOCK" SIGNAME="sys_clk_s"/>
-    <PORT CLKFREQUENCY="100000000" DIR="I" MHS_INDEX="19" NAME="sys_clk_pin" SIGIS="CLK" SIGNAME="dcm_clk_s"/>
-    <PORT DIR="I" MHS_INDEX="20" NAME="sys_rst_pin" RSTPOLARITY="0" SIGIS="RST" SIGNAME="sys_rst_s"/>
-  </EXTERNALPORTS>
-
-  <BLKDSHAPES STACK_HORIZ_WIDTH="1">
-    <PROCSHAPES>
-      <MODULE BIFS_H="3" BIFS_W="2" INSTANCE="ppc405_0" IS_ABVSBS="TRUE" SHAPE_VERTI_INDEX="3" STACK_HORIZ_INDEX="0"/>
-    </PROCSHAPES>
-    <IPBUCKET MODS_H="1" MODS_W="2">
-      <MODULE INSTANCE="SRAM_util_bus_split_0" IS_PLACED="TRUE" MODTYPE="util_bus_split"/>
-      <MODULE INSTANCE="clock_generator_0" IS_PLACED="TRUE" MODTYPE="clock_generator"/>
-    </IPBUCKET>
-    <SBSSHAPES>
-      <MODULE INSTANCE="plb"/>
-    </SBSSHAPES>
-    <SBSBUCKETS>
-      <SBSBUCKET BUSINDEX="0" BUSNAME="plb" BUSSTD="PLBV46" IS_BLWSBS="TRUE" MODS_H="2" MODS_W="3" SHAPE_VERTI_INDEX="4" STACK_HORIZ_INDEX="0">
-        <MODULE INSTANCE="RS232_Uart" MODTYPE="xps_uartlite"/>
-        <MODULE INSTANCE="LEDs_4Bit" MODTYPE="xps_gpio"/>
-        <MODULE INSTANCE="LEDs_Positions" MODTYPE="xps_gpio"/>
-        <MODULE INSTANCE="SysACE_CompactFlash" MODTYPE="xps_sysace"/>
-        <MODULE INSTANCE="SRAM" MODTYPE="xps_mch_emc"/>
-        <MODULE INSTANCE="xps_intc_0" MODTYPE="xps_intc"/>
-      </SBSBUCKET>
-    </SBSBUCKETS>
-    <P2PSHAPES>
-      <MODULE INSTANCE="fcb_v10_0"/>
-    </P2PSHAPES>
-    <CMPLXSHAPES>
-      <CMPLXSHAPE IS_ABVSBS="TRUE" MODCLASS="PERIPHERAL" MODS_H="1" MODS_W="1" SHAPE_ID="0" SHAPE_VERTI_INDEX="1" STACK_HORIZ_INDEX="0">
-        <MODULE BIFS_H="1" BIFS_W="2" INSTANCE="jtagppc_0" MODCLASS="PERIPHERAL"/>
-      </CMPLXSHAPE>
-      <CMPLXSHAPE IS_ABVSBS="TRUE" MODCLASS="PERIPHERAL" MODS_H="1" MODS_W="1" SHAPE_ID="1" SHAPE_VERTI_INDEX="0" STACK_HORIZ_INDEX="0">
-        <MODULE BIFS_H="1" BIFS_W="2" INSTANCE="proc_sys_reset_0" MODCLASS="PERIPHERAL"/>
-      </CMPLXSHAPE>
-      <CMPLXSHAPE IS_ABVSBS="TRUE" MODCLASS="PERIPHERAL" MODS_H="1" MODS_W="1" SHAPE_ID="2" SHAPE_VERTI_INDEX="2" STACK_HORIZ_INDEX="0">
-        <MODULE BIFS_H="1" BIFS_W="2" INSTANCE="apu_fpu_0" MODCLASS="PERIPHERAL"/>
-      </CMPLXSHAPE>
-    </CMPLXSHAPES>
-    <BCLANESPACES>
-      <BCLANESPACE BUSLANES_W="4" EAST="0">
-        <BUSCONNLANE BUSLANE_X="2" BUSNAME="jtagppc_0_0" BUSSTD="XIL" IS_ABVSBS="TRUE" ORIENTED="EAST" STACK_HORIZ_INDEX="0">
-          <BUSCONN BIF_Y="0" BUSINTERFACE="JTAGPPC" INSTANCE="ppc405_0" IS_PROCCONN="TRUE"/>
-          <BUSCONN BUSINTERFACE="JTAGPPC0" BUSSTD="XIL" INSTANCE="jtagppc_0"/>
-        </BUSCONNLANE>
-        <BUSCONNLANE BUSLANE_X="2" BUSNAME="plb" BUSSTD="PLBV46" IS_BLWSBS="TRUE" IS_SBSCONN="TRUE" ORIENTED="EAST" STACK_HORIZ_INDEX="0">
-          <BUSCONN BIF_Y="2" BUSINTERFACE="DPLB0" INSTANCE="ppc405_0" IS_PROCCONN="TRUE"/>
-        </BUSCONNLANE>
-        <BUSCONNLANE BUSLANE_X="1" BUSNAME="plb" BUSSTD="PLBV46" IS_BKTCONN="TRUE" IS_BLWSBS="TRUE" ORIENTED="EAST" STACK_HORIZ_INDEX="0">
-          <BUSCONN BIFRANK="SLAVE" BUSINTERFACE="SPLBV46"/>
-        </BUSCONNLANE>
-      </BCLANESPACE>
-      <BCLANESPACE BUSLANES_W="4" WEST="0">
-        <BUSCONNLANE BUSLANE_X="1" BUSNAME="plb" BUSSTD="PLBV46" IS_BLWSBS="TRUE" IS_SBSCONN="TRUE" ORIENTED="WEST" STACK_HORIZ_INDEX="0">
-          <BUSCONN BIF_Y="2" BUSINTERFACE="IPLB0" INSTANCE="ppc405_0" IS_PROCCONN="TRUE"/>
-        </BUSCONNLANE>
-        <BUSCONNLANE BUSLANE_X="2" BUSNAME="ppc_reset_bus" BUSSTD="XIL" IS_ABVSBS="TRUE" ORIENTED="WEST" STACK_HORIZ_INDEX="0">
-          <BUSCONN BIF_Y="1" BUSINTERFACE="RESETPPC" INSTANCE="ppc405_0" IS_PROCCONN="TRUE"/>
-          <BUSCONN BUSINTERFACE="RESETPPC0" BUSSTD="XIL" INSTANCE="proc_sys_reset_0"/>
-        </BUSCONNLANE>
-        <BUSCONNLANE BUSLANE_X="1" BUSNAME="fcb_v10_0" BUSSTD="FCB" IS_ABVSBS="TRUE" ORIENTED="WEST" STACK_HORIZ_INDEX="0">
-          <BUSCONN BIF_Y="0" BUSINTERFACE="MFCB" INSTANCE="ppc405_0" IS_PROCCONN="TRUE"/>
-          <BUSCONN BUSINTERFACE="SFCB" BUSSTD="FCB" INSTANCE="apu_fpu_0"/>
-        </BUSCONNLANE>
-      </BCLANESPACE>
-    </BCLANESPACES>
-  </BLKDSHAPES>
-
-</EDKSYSTEM>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/bitinit.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/bitinit.opt
deleted file mode 100644
index 3645236..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/bitinit.opt
+++ /dev/null
@@ -1 +0,0 @@
-   -pe ppc405_0  $(PPC405_0_BOOTLOOP) 

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/libgen.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/libgen.opt
deleted file mode 100644
index 77b1548..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/libgen.opt
+++ /dev/null
@@ -1 +0,0 @@
- -p virtex4

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/platgen.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/platgen.opt
deleted file mode 100644
index 25299b7..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/platgen.opt
+++ /dev/null
@@ -1,2 +0,0 @@
- -p xc4vfx12ff668-10 -lang vhdl
-

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt
deleted file mode 100644
index 2979e43..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt
+++ /dev/null
@@ -1,20 +0,0 @@
-ppc405_0

-RTOSDEMO_SOURCES = RTOSDemo/../../Common/Minimal/BlockQ.c RTOSDemo/../../Common/Minimal/blocktim.c RTOSDemo/../../Common/Minimal/comtest.c RTOSDemo/../../Common/Minimal/countsem.c RTOSDemo/../../Common/Minimal/death.c RTOSDemo/../../Common/Minimal/dynamic.c RTOSDemo/../../Common/Minimal/flash.c RTOSDemo/../../Common/Minimal/GenQTest.c RTOSDemo/../../Common/Minimal/integer.c RTOSDemo/../../Common/Minimal/QPeek.c RTOSDemo/../../Common/Minimal/recmutex.c RTOSDemo/../../Common/Minimal/semtest.c RTOSDemo/../../../Source/tasks.c RTOSDemo/../../../Source/list.c RTOSDemo/../../../Source/queue.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/port.c RTOSDemo/main.c RTOSDemo/serial/serial.c RTOSDemo/partest/partest.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/portasm.S RTOSDemo/../../../Source/portable/MemMang/heap_2.c  RTOSDemo/flop/flop.c RTOSDemo/flop/flop-reg-test.c

-RTOSDEMO_HEADERS = RTOSDemo/FreeRTOSConfig.h 

-RTOSDEMO_CC = powerpc-eabi-gcc

-RTOSDEMO_CC_SIZE = powerpc-eabi-size

-RTOSDEMO_CC_OPT = -O0

-RTOSDEMO_CFLAGS = -I./RTOSDemo/flop -I../../Source/portable/GCC/PPC405_Xilinx -I./ppc405_0/include/  -IRTOSDemo/   -I. -I./RTOSDemo/ -I../Common/include/ -I../../Source/include/ -I./ppc405_0/include/ -I./ppc405_0/include -D GCC_PPC405 -mregnames -Wextra

-RTOSDEMO_CC_SEARCH = # -B

-RTOSDEMO_LIBPATH = -L./ppc405_0/lib/ # -L

-RTOSDEMO_INCLUDES = -I./ppc405_0/include/  -IRTOSDemo/ # -I

-RTOSDEMO_LFLAGS = # -l

-RTOSDEMO_LINKER_SCRIPT = RTOSDemo/RTOSDemo_linker_script.ld

-RTOSDEMO_CC_DEBUG_FLAG =  -g 

-RTOSDEMO_CC_PROFILE_FLAG = # -pg

-RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi

-RTOSDEMO_CC_INFERRED_FLAGS= -mfpu=sp_full 

-RTOSDEMO_CC_START_ADDR_FLAG=  #  # -Wl,-defsym -Wl,_START_ADDR=

-RTOSDEMO_CC_STACK_SIZE_FLAG=  #  # -Wl,-defsym -Wl,_STACK_SIZE=

-RTOSDEMO_CC_HEAP_SIZE_FLAG=  #  # -Wl,-defsym -Wl,_HEAP_SIZE=

-                  $(RTOSDEMO_CC_INFERRED_FLAGS)  \

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/simgen.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/simgen.opt
deleted file mode 100644
index 970a4ea..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/simgen.opt
+++ /dev/null
@@ -1 +0,0 @@
- -p virtex4 -lang vhdl   -pe ppc405_0  $(PPC405_0_BOOTLOOP)  -s mti -X C:/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/ -E C:/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system.gui b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system.gui
deleted file mode 100644
index 9ccbebe..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system.gui
+++ /dev/null
@@ -1,101 +0,0 @@
-
-<PRO_GUISETTING VIEWSTATUS="BIFS_TREE">
-
-  <GUISETTING HSCROLL="0" ID="BIFS_TREE" SPSIZE1="88" SPSIZE2="365" VSCROLL="0">
-
-    <COLHDR INDEX="0" NAME="Name" VISIBLE="TRUE" WIDTH="151"/>
-
-    <COLHDR INDEX="4" NAME="Bus Connection" VISIBLE="TRUE" WIDTH="156"/>
-
-    <COLHDR INDEX="6" NAME="Bus Standard" VISIBLE="FALSE" WIDTH="0"/>
-
-    <COLHDR INDEX="1" NAME="IP Type" VISIBLE="TRUE" WIDTH="93"/>
-
-    <COLHDR INDEX="2" NAME="IP Version" VISIBLE="TRUE" WIDTH="104"/>
-
-    <COLHDR INDEX="5" NAME="Mastership" VISIBLE="FALSE" WIDTH="0"/>
-
-    <COLHDR INDEX="3" NAME="IP CLASSIFICATION" VISIBLE="FALSE" WIDTH="0"/>
-
-    <EXPANDED/>
-
-</GUISETTING>
-  <GUISETTING HSCROLL="0" ID="PORTS_TREE" VSCROLL="0">
-
-    <COLHDR INDEX="0" NAME="Name" VISIBLE="TRUE" WIDTH="200"/>
-
-    <COLHDR INDEX="1" NAME="Net" VISIBLE="TRUE" WIDTH="200"/>
-
-    <COLHDR INDEX="2" NAME="Direction" VISIBLE="TRUE" WIDTH="98"/>
-
-    <COLHDR INDEX="4" NAME="Range" VISIBLE="TRUE" WIDTH="200"/>
-
-    <COLHDR INDEX="3" NAME="Class" VISIBLE="TRUE" WIDTH="81"/>
-
-    <COLHDR INDEX="5" NAME="Frequency" VISIBLE="TRUE" WIDTH="106"/>
-
-    <COLHDR INDEX="6" NAME="Reset Polarity" VISIBLE="TRUE" WIDTH="121"/>
-
-    <COLHDR INDEX="9" NAME="Sensitivity" VISIBLE="TRUE" WIDTH="103"/>
-
-    <COLHDR INDEX="7" NAME="IP Type" VISIBLE="TRUE" WIDTH="93"/>
-
-    <COLHDR INDEX="8" NAME="IP Version" VISIBLE="FALSE" WIDTH="0"/>
-
-    <EXPANDED/>
-
-</GUISETTING>
-  <GUISETTING HSCROLL="0" ID="ADDRESSES_TREE" VSCROLL="0">                        
-
-    <COLHDR INDEX="0" NAME="Name" VISIBLE="TRUE" WIDTH="153"/>                        
-
-    <COLHDR INDEX="3" NAME="Base Address" VISIBLE="TRUE" WIDTH="121"/>                        
-
-    <COLHDR INDEX="4" NAME="High Address" VISIBLE="TRUE" WIDTH="119"/>                        
-
-    <COLHDR INDEX="5" NAME="Size" VISIBLE="TRUE" WIDTH="76"/>                        
-
-    <COLHDR INDEX="7" NAME="Bus Interface(s)" VISIBLE="TRUE" WIDTH="130"/>                        
-
-    <COLHDR INDEX="10" NAME="Bus Connection" VISIBLE="TRUE" WIDTH="131"/>                        
-
-    <COLHDR INDEX="6" NAME="Lock" VISIBLE="TRUE" WIDTH="80"/>                        
-
-    <COLHDR INDEX="9" NAME="ICache" VISIBLE="TRUE" WIDTH="90"/>                        
-
-    <COLHDR INDEX="8" NAME="DCache" VISIBLE="TRUE" WIDTH="95"/>                        
-
-    <COLHDR INDEX="1" NAME="IP Type" VISIBLE="TRUE" WIDTH="93"/>                        
-
-    <COLHDR INDEX="2" NAME="IP Version" VISIBLE="TRUE" WIDTH="104"/>                        
-
-    <EXPANDED/>
-
-</GUISETTING>
-  <GUISETTING COLSORT="0" HSCROLL="0" ID="ADDRESSES_FLAT" SORTORE="1" VSCROLL="0">
-
-    <COLHDR INDEX="11" NAME="Instance" VISIBLE="TRUE" WIDTH="115"/>
-
-    <COLHDR INDEX="0" NAME="Name" VISIBLE="TRUE" WIDTH="153"/>
-
-    <COLHDR INDEX="3" NAME="Base Address" VISIBLE="TRUE" WIDTH="121"/>
-
-    <COLHDR INDEX="4" NAME="High Address" VISIBLE="TRUE" WIDTH="119"/>
-
-    <COLHDR INDEX="5" NAME="Size" VISIBLE="TRUE" WIDTH="76"/>
-
-    <COLHDR INDEX="7" NAME="Bus Interface(s)" VISIBLE="TRUE" WIDTH="130"/>
-
-    <COLHDR INDEX="10" NAME="Bus Connection" VISIBLE="TRUE" WIDTH="131"/>
-
-    <COLHDR INDEX="6" NAME="Lock" VISIBLE="TRUE" WIDTH="80"/>
-
-    <COLHDR INDEX="9" NAME="ICache" VISIBLE="TRUE" WIDTH="90"/>
-
-    <COLHDR INDEX="8" NAME="DCache" VISIBLE="TRUE" WIDTH="95"/>
-
-    <COLHDR INDEX="1" NAME="IP Type" VISIBLE="TRUE" WIDTH="93"/>
-
-    <COLHDR INDEX="2" NAME="IP Version" VISIBLE="TRUE" WIDTH="104"/>
-
-</GUISETTING></PRO_GUISETTING>

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system_routed b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system_routed
deleted file mode 100644
index e69de29..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/system_routed
+++ /dev/null
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt
deleted file mode 100644
index 39ff0ed..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt
+++ /dev/null
@@ -1,20 +0,0 @@
-ppc405_0

-TESTAPP_PERIPHERAL_SOURCES = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/TestApp_Peripheral.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/xintc_tapp_example.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/xuartlite_selftest_example.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/xuartlite_intr_tapp_example.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/xgpio_tapp_example.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/xsysace_selftest_example.c 

-TESTAPP_PERIPHERAL_HEADERS = /cygdrive/c//E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/intc_header.h /cygdrive/c//E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/uartlite_header.h /cygdrive/c//E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/uartlite_intr_header.h /cygdrive/c//E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/gpio_header.h /cygdrive/c//E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/sysace_header.h 

-TESTAPP_PERIPHERAL_CC = powerpc-eabi-gcc

-TESTAPP_PERIPHERAL_CC_SIZE = powerpc-eabi-size

-TESTAPP_PERIPHERAL_CC_OPT = -O0

-TESTAPP_PERIPHERAL_CFLAGS = 

-TESTAPP_PERIPHERAL_CC_SEARCH = # -B

-TESTAPP_PERIPHERAL_LIBPATH = -L./ppc405_0/lib/ # -L

-TESTAPP_PERIPHERAL_INCLUDES = -I./ppc405_0/include/  -ITestApp_Peripheral/src/ # -I

-TESTAPP_PERIPHERAL_LFLAGS = # -l

-TESTAPP_PERIPHERAL_LINKER_SCRIPT = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/TestApp_Peripheral_LinkScr.ld

-TESTAPP_PERIPHERAL_CC_DEBUG_FLAG =  -g 

-TESTAPP_PERIPHERAL_CC_PROFILE_FLAG = # -pg

-TESTAPP_PERIPHERAL_CC_GLOBPTR_FLAG= # -msdata=eabi

-TESTAPP_PERIPHERAL_CC_INFERRED_FLAGS= -mfpu=sp_full 

-TESTAPP_PERIPHERAL_CC_START_ADDR_FLAG=  #  # -Wl,-defsym -Wl,_START_ADDR=

-TESTAPP_PERIPHERAL_CC_STACK_SIZE_FLAG=  #  # -Wl,-defsym -Wl,_STACK_SIZE=

-TESTAPP_PERIPHERAL_CC_HEAP_SIZE_FLAG=  #  # -Wl,-defsym -Wl,_HEAP_SIZE=

-                  $(TESTAPP_PERIPHERAL_CC_INFERRED_FLAGS)  \

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/vpgen.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/vpgen.opt
deleted file mode 100644
index 8ea8f66..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/vpgen.opt
+++ /dev/null
@@ -1 +0,0 @@
- -p xc4vfx12ff668-10

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xplorer.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xplorer.opt
deleted file mode 100644
index 37e5b11..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xplorer.opt
+++ /dev/null
@@ -1 +0,0 @@
--device xc4vfx12ff668-10data/system.ucf7 0

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt
deleted file mode 100644
index 33391f0..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt
+++ /dev/null
@@ -1 +0,0 @@
--device xc4vfx12ff668-10data/system.ucf 0

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd
deleted file mode 100644
index 110f5ce..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd
+++ /dev/null
@@ -1,1704 +0,0 @@
-<!-- =====================================================================
-  This is the DTD for SVG 1.0.
-
-  The specification for SVG that corresponds to this DTD is available at:
-
-    http://www.w3.org/TR/2001/REC-SVG-20010904/
-
-  Copyright (c) 2000 W3C (MIT, INRIA, Keio), All Rights Reserved.
-
-  For SVG 1.0:
-
-    Namespace:
-      http://www.w3.org/2000/svg  
-
-    Public identifier:
-      PUBLIC "-//W3C//DTD SVG 1.0//EN"
-
-    URI for the DTD:
-      http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd
-============================================================================= -->
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: Data types 
-     ============================================================== -->
-
-<!ENTITY % BaselineShiftValue "CDATA">
-    <!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) -->
-
-<!ENTITY % Boolean "(false | true)">
-    <!-- feature specification -->
-
-<!ENTITY % ClassList "CDATA">
-    <!-- list of classes -->
-
-<!ENTITY % ClipValue "CDATA">
-    <!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) -->
-
-<!ENTITY % ClipPathValue "CDATA">
-    <!-- 'clip-path' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % ClipFillRule "(nonzero | evenodd | inherit)">
-    <!-- 'clip-rule' or fill-rule property/attribute value -->
-
-<!ENTITY % ContentType "CDATA">
-    <!-- media type, as per [RFC2045] -->
-
-<!ENTITY % Coordinate "CDATA">
-    <!-- a <coordinate> -->
-
-<!ENTITY % Coordinates "CDATA">
-    <!-- a list of <coordinate>s -->
-
-<!ENTITY % Color "CDATA">
-    <!-- a <color> value -->
-
-<!ENTITY % CursorValue "CDATA">
-    <!-- 'cursor' property/attribute value (e.g., 'crosshair', %URI;) -->
-
-<!ENTITY % EnableBackgroundValue "CDATA">
-    <!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') -->
-
-<!ENTITY % ExtensionList "CDATA">
-    <!-- extension list specification -->
-
-<!ENTITY % FeatureList "CDATA">
-    <!-- feature list specification -->
-
-<!ENTITY % FilterValue "CDATA">
-    <!-- 'filter' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % FontFamilyValue "CDATA">
-    <!-- 'font-family' property/attribute value (i.e., list of fonts) -->
-
-<!ENTITY % FontSizeValue "CDATA">
-    <!-- 'font-size' property/attribute value -->
-
-<!ENTITY % FontSizeAdjustValue "CDATA">
-    <!-- 'font-size-adjust' property/attribute value -->
-
-<!ENTITY % GlyphOrientationHorizontalValue "CDATA">
-    <!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) -->
-
-<!ENTITY % GlyphOrientationVerticalValue "CDATA">
-    <!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) -->
-
-<!ENTITY % Integer "CDATA">
-    <!-- a <integer> -->
-
-<!ENTITY % KerningValue "CDATA">
-    <!-- 'kerning' property/attribute value (e.g., auto | <length>) -->
-
-<!ENTITY % LanguageCode "NMTOKEN">
-    <!-- a language code, as per [RFC3066] -->
-
-<!ENTITY % LanguageCodes "CDATA">
-    <!-- comma-separated list of language codes, as per [RFC3066] -->
-
-<!ENTITY % Length "CDATA">
-    <!-- a <length> -->
-
-<!ENTITY % Lengths "CDATA">
-    <!-- a list of <length>s -->
-
-<!ENTITY % LinkTarget "NMTOKEN">
-    <!-- link to this target -->
-
-<!ENTITY % MarkerValue "CDATA">
-    <!-- 'marker' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % MaskValue "CDATA">
-    <!-- 'mask' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % MediaDesc "CDATA">
-    <!-- comma-separated list of media descriptors. -->
-
-<!ENTITY % Number "CDATA">
-    <!-- a <number> -->
-
-<!ENTITY % NumberOptionalNumber "CDATA">
-    <!-- list of <number>s, but at least one and at most two -->
-
-<!ENTITY % NumberOrPercentage "CDATA">
-    <!-- a <number> or a  <percentage> -->
-
-<!ENTITY % Numbers "CDATA">
-    <!-- a list of <number>s -->
-
-<!ENTITY % OpacityValue "CDATA">
-    <!-- opacity value (e.g., <number>) -->
-
-<!ENTITY % Paint "CDATA">
-    <!-- a 'fill' or 'stroke' property/attribute value: <paint> -->
-
-<!ENTITY % PathData "CDATA">
-    <!-- a path data specification -->
-
-<!ENTITY % Points "CDATA">
-    <!-- a list of points -->
-
-<!ENTITY % PreserveAspectRatioSpec "CDATA">
-    <!-- 'preserveAspectRatio' attribute specification -->
-
-<!ENTITY % Script "CDATA">
-    <!-- script expression -->
-
-<!ENTITY % SpacingValue "CDATA">
-    <!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., normal | <length>) -->
-
-<!ENTITY % StrokeDashArrayValue "CDATA">
-    <!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) -->
-
-<!ENTITY % StrokeDashOffsetValue "CDATA">
-    <!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) -->
-
-<!ENTITY % StrokeMiterLimitValue "CDATA">
-    <!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) -->
-
-<!ENTITY % StrokeWidthValue "CDATA">
-    <!-- 'stroke-width' property/attribute value (e.g., <length>) -->
-
-<!ENTITY % StructuredText
-  "content CDATA #FIXED 'structured text'" >
-
-<!ENTITY % StyleSheet "CDATA">
-    <!-- style sheet data -->
-
-<!ENTITY % SVGColor "CDATA">
-    <!-- An SVG color value (RGB plus optional ICC) -->
-
-<!ENTITY % Text "CDATA">
-    <!-- arbitrary text string -->
-
-<!ENTITY % TextDecorationValue "CDATA">
-    <!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') -->
-
-<!ENTITY % TransformList "CDATA">
-    <!-- list of transforms -->
-
-<!ENTITY % URI "CDATA">
-    <!-- a Uniform Resource Identifier, see [URI] -->
-
-<!ENTITY % ViewBoxSpec "CDATA">
-    <!-- 'viewBox' attribute specification -->
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: Collections of common attributes 
-     ============================================================== -->
-
-<!-- All elements have an ID. -->
-<!ENTITY % stdAttrs
- "id ID #IMPLIED
-  xml:base %URI; #IMPLIED" >
-
-<!-- Common attributes for elements that might contain character data content. -->
-<!ENTITY % langSpaceAttrs
- "xml:lang %LanguageCode; #IMPLIED
-  xml:space (default|preserve) #IMPLIED" >
-
-<!-- Common attributes to check for system capabilities. -->
-<!ENTITY % testAttrs
- "requiredFeatures %FeatureList; #IMPLIED
-  requiredExtensions %ExtensionList; #IMPLIED
-  systemLanguage %LanguageCodes; #IMPLIED" >
-
-<!-- For most uses of URI referencing:
-        standard XLink attributes other than xlink:href. -->
-<!ENTITY % xlinkRefAttrs
- "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
-  xlink:type (simple) #FIXED 'simple' 
-  xlink:role %URI; #IMPLIED
-  xlink:arcrole %URI; #IMPLIED
-  xlink:title CDATA #IMPLIED
-  xlink:show (other) 'other'
-  xlink:actuate (onLoad) #FIXED 'onLoad'" >
-
-<!-- Standard XLink attributes for uses of URI referencing where xlink:show is 'embed' -->
-<!ENTITY % xlinkRefAttrsEmbed
- "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
-  xlink:type (simple) #FIXED 'simple' 
-  xlink:role %URI; #IMPLIED
-  xlink:arcrole %URI; #IMPLIED
-  xlink:title CDATA #IMPLIED
-  xlink:show (embed) 'embed'
-  xlink:actuate (onLoad) #FIXED 'onLoad'" >
-
-<!ENTITY % graphicsElementEvents
-  "onfocusin %Script; #IMPLIED
-   onfocusout %Script; #IMPLIED
-   onactivate %Script; #IMPLIED
-   onclick %Script; #IMPLIED
-   onmousedown %Script; #IMPLIED
-   onmouseup %Script; #IMPLIED
-   onmouseover %Script; #IMPLIED
-   onmousemove %Script; #IMPLIED
-   onmouseout %Script; #IMPLIED
-   onload %Script; #IMPLIED" >
-
-<!ENTITY % documentEvents
-  "onunload %Script; #IMPLIED
-   onabort %Script; #IMPLIED
-   onerror %Script; #IMPLIED
-   onresize %Script; #IMPLIED
-   onscroll %Script; #IMPLIED
-   onzoom %Script; #IMPLIED" >
-
-<!ENTITY % animationEvents
-  "onbegin %Script; #IMPLIED
-   onend %Script; #IMPLIED
-   onrepeat %Script; #IMPLIED" >
-
-<!-- This entity allows for at most one of desc, title and metadata,
-     supplied in any order -->
-<!ENTITY % descTitleMetadata
-          "(((desc,((title,metadata?)|(metadata,title?))?)|
-          (title,((desc,metadata?)|(metadata,desc?))?)|
-          (metadata,((desc,title?)|(title,desc?))?))?)" >
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: Collections of presentation attributes 
-     ============================================================== -->
-
-<!-- The following presentation attributes have to do with specifying color. -->
-<!ENTITY % PresentationAttributes-Color
-  "color %Color; #IMPLIED
-   color-interpolation (auto | sRGB | linearRGB | inherit) #IMPLIED
-   color-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to container elements. -->
-<!ENTITY % PresentationAttributes-Containers
-  "enable-background %EnableBackgroundValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to 'feFlood' elements. -->
-<!ENTITY % PresentationAttributes-feFlood
-  "flood-color %SVGColor; #IMPLIED
-   flood-opacity %OpacityValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to filling and stroking operations. -->
-<!ENTITY % PresentationAttributes-FillStroke
-  "fill %Paint; #IMPLIED
-   fill-opacity %OpacityValue; #IMPLIED
-   fill-rule %ClipFillRule; #IMPLIED
-   stroke %Paint; #IMPLIED
-   stroke-dasharray %StrokeDashArrayValue; #IMPLIED
-   stroke-dashoffset %StrokeDashOffsetValue; #IMPLIED
-   stroke-linecap (butt | round | square | inherit) #IMPLIED
-   stroke-linejoin (miter | round | bevel | inherit) #IMPLIED
-   stroke-miterlimit %StrokeMiterLimitValue; #IMPLIED
-   stroke-opacity %OpacityValue; #IMPLIED
-   stroke-width %StrokeWidthValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to filter primitives. -->
-<!ENTITY % PresentationAttributes-FilterPrimitives
-  "color-interpolation-filters (auto | sRGB | linearRGB | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes have to do with selecting a font to use. -->
-<!ENTITY % PresentationAttributes-FontSpecification
-  "font-family %FontFamilyValue; #IMPLIED
-   font-size %FontSizeValue; #IMPLIED
-   font-size-adjust %FontSizeAdjustValue; #IMPLIED
-   font-stretch (normal | wider | narrower | ultra-condensed | extra-condensed |
-                 condensed | semi-condensed | semi-expanded | expanded |
-                 extra-expanded | ultra-expanded | inherit) #IMPLIED
-   font-style (normal | italic | oblique | inherit) #IMPLIED
-   font-variant (normal | small-caps | inherit) #IMPLIED
-   font-weight (normal | bold | bolder | lighter | 100 | 200 | 300 |
-               400 | 500 | 600 | 700 | 800 | 900 | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to gradient 'stop' elements. -->
-<!ENTITY % PresentationAttributes-Gradients
-  "stop-color %SVGColor; #IMPLIED
-   stop-opacity %OpacityValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to graphics elements. -->
-<!ENTITY % PresentationAttributes-Graphics
-  "clip-path %ClipPathValue; #IMPLIED
-   clip-rule %ClipFillRule; #IMPLIED
-   cursor %CursorValue; #IMPLIED
-   display (inline | block | list-item | run-in | compact | marker |
-            table | inline-table | table-row-group | table-header-group |
-            table-footer-group | table-row | table-column-group | table-column |
-            table-cell | table-caption | none | inherit) #IMPLIED
-   filter %FilterValue; #IMPLIED
-   image-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED
-   mask %MaskValue; #IMPLIED
-   opacity %OpacityValue; #IMPLIED
-   pointer-events (visiblePainted | visibleFill | visibleStroke | visible |
-                   painted | fill | stroke | all | none | inherit) #IMPLIED
-   shape-rendering (auto | optimizeSpeed | crispEdges | geometricPrecision | inherit) #IMPLIED
-   text-rendering (auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit) #IMPLIED
-   visibility (visible | hidden | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to 'image' elements. -->
-<!ENTITY % PresentationAttributes-Images
-  "color-profile CDATA #IMPLIED " >
-
-<!--The following presentation attributes apply to 'feDiffuseLighting' and 'feSpecularLighting' elements. -->
-<!ENTITY % PresentationAttributes-LightingEffects
-  "lighting-color %SVGColor; #IMPLIED " >
-
-<!-- The following presentation attributes apply to marker operations. -->
-<!ENTITY % PresentationAttributes-Markers
-  "marker-start %MarkerValue; #IMPLIED
-   marker-mid %MarkerValue; #IMPLIED
-   marker-end %MarkerValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to text content elements. -->
-<!ENTITY % PresentationAttributes-TextContentElements
-  "alignment-baseline (baseline | top | before-edge | text-top | text-before-edge |
-                        middle | bottom | after-edge | text-bottom | text-after-edge |
-                        ideographic | lower | hanging | mathematical | inherit) #IMPLIED
-   baseline-shift %BaselineShiftValue; #IMPLIED
-   direction (ltr | rtl | inherit) #IMPLIED
-   dominant-baseline (auto | autosense-script | no-change | reset|
-                      ideographic | lower | hanging | mathematical | inherit ) #IMPLIED
-   glyph-orientation-horizontal %GlyphOrientationHorizontalValue; #IMPLIED
-   glyph-orientation-vertical %GlyphOrientationVerticalValue; #IMPLIED
-   kerning %KerningValue; #IMPLIED
-   letter-spacing %SpacingValue; #IMPLIED
-   text-anchor (start | middle | end | inherit) #IMPLIED
-   text-decoration %TextDecorationValue; #IMPLIED
-   unicode-bidi (normal | embed | bidi-override | inherit) #IMPLIED
-   word-spacing %SpacingValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to 'text' elements. -->
-<!ENTITY % PresentationAttributes-TextElements
-  "writing-mode (lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to elements that establish viewports. -->
-<!ENTITY % PresentationAttributes-Viewports
-  "clip %ClipValue; #IMPLIED
-   overflow (visible | hidden | scroll | auto | inherit) #IMPLIED " >
-
-<!--The following represents the complete list of presentation attributes. -->
-<!ENTITY % PresentationAttributes-All
-  "%PresentationAttributes-Color;
-   %PresentationAttributes-Containers;
-   %PresentationAttributes-feFlood;
-   %PresentationAttributes-FillStroke;
-   %PresentationAttributes-FilterPrimitives;
-   %PresentationAttributes-FontSpecification;
-   %PresentationAttributes-Gradients;
-   %PresentationAttributes-Graphics;
-   %PresentationAttributes-Images;
-   %PresentationAttributes-LightingEffects;
-   %PresentationAttributes-Markers;
-   %PresentationAttributes-TextContentElements;
-   %PresentationAttributes-TextElements;
-   %PresentationAttributes-Viewports;" >
-
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: DTD extensions 
-     ============================================================== -->
-
-<!-- Allow for extending the DTD with internal subset for 
-     container and graphics elements -->
-<!ENTITY % ceExt "" >
-<!ENTITY % geExt "" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Document Structure 
-     ============================================================== -->
-
-<!ENTITY % svgExt "" >
-<!ELEMENT svg (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%svgExt;)* >
-<!ATTLIST svg
-  xmlns CDATA #FIXED "http://www.w3.org/2000/svg"
-  xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED 
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  zoomAndPan (disable | magnify) 'magnify'
-  %graphicsElementEvents;
-  %documentEvents;
-  version %Number; #FIXED "1.0"
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED
-  contentScriptType %ContentType; "text/ecmascript"
-  contentStyleType %ContentType; "text/css" >
-
-<!ENTITY % gExt "" >
-<!ELEMENT g (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%gExt;)* >
-<!ATTLIST g
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;  >
-
-<!ENTITY % defsExt "" >
-<!ELEMENT defs (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%defsExt;)* >
-<!ATTLIST defs
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;  >
-
-<!ENTITY % descExt "" >
-<!ELEMENT desc (#PCDATA %descExt;)* >
-<!ATTLIST desc
-  %stdAttrs;
-  %langSpaceAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %StructuredText; >
-
-<!ENTITY % titleExt "" >
-<!ELEMENT title (#PCDATA %titleExt;)* >
-<!ATTLIST title
-  %stdAttrs;
-  %langSpaceAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %StructuredText; >
-
-<!ENTITY % symbolExt "" >
-<!ELEMENT symbol (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%symbolExt;)* >
-<!ATTLIST symbol
-  %stdAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  %graphicsElementEvents; >
-
-<!ENTITY % useExt "" >
-<!ELEMENT use (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                   %geExt;%useExt;)*) >
-<!ATTLIST use
-  %stdAttrs;
-  %xlinkRefAttrsEmbed;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED >
-
-<!ENTITY % imageExt "" >
-<!ELEMENT image (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                   %geExt;%imageExt;)*) >
-<!ATTLIST image
-  %stdAttrs;
-  %xlinkRefAttrsEmbed;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Images;
-  %PresentationAttributes-Viewports;
-  transform %TransformList; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #REQUIRED
-  height %Length; #REQUIRED >
-
-<!ENTITY % switchExt "" >
-<!ELEMENT switch (%descTitleMetadata;,
-                  (path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|switch|a|foreignObject|
-                   animate|set|animateMotion|animateColor|animateTransform
-                   %ceExt;%switchExt;)*) >
-<!ATTLIST switch
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents; >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Styling 
-     ============================================================== -->
-
-<!ELEMENT style (#PCDATA) >
-<!ATTLIST style 
-  %stdAttrs;
-  xml:space (preserve) #FIXED "preserve"
-  type %ContentType; #REQUIRED
-  media %MediaDesc; #IMPLIED
-  title %Text; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Paths
-     ============================================================== -->
-
-<!ENTITY % pathExt "" >
-<!ELEMENT path (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%pathExt;)*) >
-<!ATTLIST path
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  d %PathData; #REQUIRED
-  pathLength %Number; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Basic Shapes
-     ============================================================== -->
-
-<!ENTITY % rectExt "" >
-<!ELEMENT rect (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%rectExt;)*) >
-<!ATTLIST rect
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #REQUIRED
-  height %Length; #REQUIRED
-  rx %Length; #IMPLIED
-  ry %Length; #IMPLIED >
-
-<!ENTITY % circleExt "" >
-<!ELEMENT circle (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%circleExt;)*) >
-<!ATTLIST circle
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  cx %Coordinate; #IMPLIED
-  cy %Coordinate; #IMPLIED
-  r %Length; #REQUIRED >
-
-<!ENTITY % ellipseExt "" >
-<!ELEMENT ellipse (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%ellipseExt;)*) >
-<!ATTLIST ellipse
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  cx %Coordinate; #IMPLIED
-  cy %Coordinate; #IMPLIED
-  rx %Length; #REQUIRED
-  ry %Length; #REQUIRED >
-
-<!ENTITY % lineExt "" >
-<!ELEMENT line (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%lineExt;)*) >
-<!ATTLIST line
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x1 %Coordinate; #IMPLIED
-  y1 %Coordinate; #IMPLIED
-  x2 %Coordinate; #IMPLIED
-  y2 %Coordinate; #IMPLIED >
-
-<!ENTITY % polylineExt "" >
-<!ELEMENT polyline (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%polylineExt;)*) >
-<!ATTLIST polyline
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  points %Points; #REQUIRED >
-
-<!ENTITY % polygonExt "" >
-<!ELEMENT polygon (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%polygonExt;)*) >
-<!ATTLIST polygon
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  points %Points; #REQUIRED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Text
-     ============================================================== -->
-
-<!ENTITY % textExt "" >
-<!ELEMENT text (#PCDATA|desc|title|metadata|
-                tspan|tref|textPath|altGlyph|a|animate|set|
-                animateMotion|animateColor|animateTransform
-                %geExt;%textExt;)* >
-<!ATTLIST text
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %PresentationAttributes-TextElements;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >
-
-<!ENTITY % tspanExt "" >
-<!ELEMENT tspan (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
-                %tspanExt;)* >
-<!ATTLIST tspan
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >
-
-<!ENTITY % trefExt "" >
-<!ELEMENT tref (desc|title|metadata|animate|set|animateColor
-                %trefExt;)* >
-<!ATTLIST tref
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >
-
-<!ENTITY % textPathExt "" >
-<!ELEMENT textPath (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
-                %textPathExt;)* >
-<!ATTLIST textPath
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  %langSpaceAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  startOffset %Length; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED
-  method (align|stretch) #IMPLIED
-  spacing (auto|exact) #IMPLIED >
-
-<!ENTITY % altGlyphExt "" >
-<!ELEMENT altGlyph (#PCDATA %altGlyphExt;)* >
-<!ATTLIST altGlyph
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED 
-  glyphRef CDATA #IMPLIED
-  format CDATA #IMPLIED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED >
-
-<!ENTITY % altGlyphDefExt "" >
-<!ELEMENT altGlyphDef ((glyphRef+|altGlyphItem+) %altGlyphDefExt;) >
-<!ATTLIST altGlyphDef
-  %stdAttrs; >
-
-<!ENTITY % altGlyphItemExt "" >
-<!ELEMENT altGlyphItem (glyphRef+ %altGlyphItemExt;) >
-<!ATTLIST altGlyphItem
-  %stdAttrs; >
-
-<!ELEMENT glyphRef EMPTY >
-<!ATTLIST glyphRef
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-FontSpecification;
-  glyphRef CDATA #IMPLIED
-  format CDATA #IMPLIED
-  x %Number; #IMPLIED
-  y %Number; #IMPLIED
-  dx %Number; #IMPLIED
-  dy %Number; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Painting: Filling, Stroking and Marker Symbols 
-     ============================================================== -->
-
-<!ENTITY % markerExt "" >
-<!ELEMENT marker (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%markerExt;)* >
-<!ATTLIST marker
-  %stdAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  refX %Coordinate; #IMPLIED
-  refY %Coordinate; #IMPLIED
-  markerUnits (strokeWidth | userSpaceOnUse) #IMPLIED
-  markerWidth  %Length; #IMPLIED
-  markerHeight %Length; #IMPLIED
-  orient CDATA #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Color 
-     ============================================================== -->
-
-<!ELEMENT color-profile (%descTitleMetadata;) >
-<!ATTLIST color-profile 
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  local CDATA #IMPLIED  
-  name CDATA #REQUIRED
-  rendering-intent (auto | perceptual | relative-colorimetric | saturation | absolute-colorimetric) "auto" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Gradients and Patterns 
-     ============================================================== -->
-
-<!ENTITY % linearGradientExt "" >
-<!ELEMENT linearGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
-                   %linearGradientExt;)*) >
-<!ATTLIST linearGradient
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Gradients;
-  gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  gradientTransform %TransformList; #IMPLIED
-  x1 %Coordinate; #IMPLIED
-  y1 %Coordinate; #IMPLIED
-  x2 %Coordinate; #IMPLIED
-  y2 %Coordinate; #IMPLIED
-  spreadMethod (pad | reflect | repeat) #IMPLIED >
-
-
-<!ENTITY % radialGradientExt "" >
-<!ELEMENT radialGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
-                   %radialGradientExt;)*) >
-<!ATTLIST radialGradient
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Gradients;
-  gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  gradientTransform %TransformList; #IMPLIED
-  cx %Coordinate; #IMPLIED
-  cy %Coordinate; #IMPLIED
-  r %Length; #IMPLIED
-  fx %Coordinate; #IMPLIED
-  fy %Coordinate; #IMPLIED
-  spreadMethod (pad | reflect | repeat) #IMPLIED >
-
-
-<!ENTITY % stopExt "" >
-<!ELEMENT stop (animate|set|animateColor
-                   %stopExt;)* >
-<!ATTLIST stop
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Gradients;
-  offset %NumberOrPercentage; #REQUIRED >
-
-<!ENTITY % patternExt "" >
-<!ELEMENT pattern (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%patternExt;)* >
-<!ATTLIST pattern
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  patternUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  patternContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  patternTransform %TransformList; #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Clipping, Masking and Compositing 
-     ============================================================== -->
-
-<!ENTITY % clipPathExt "" >
-<!ELEMENT clipPath (%descTitleMetadata;,
-                    (path|text|rect|circle|ellipse|line|polyline|polygon|
-                     use|animate|set|animateMotion|animateColor|animateTransform
-                     %ceExt;%clipPathExt;)*) >
-<!ATTLIST clipPath
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %PresentationAttributes-TextElements;
-  transform %TransformList; #IMPLIED
-  clipPathUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED >
-
-<!ENTITY % maskExt "" >
-<!ELEMENT mask (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%maskExt;)*  >
-<!ATTLIST mask
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  maskUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  maskContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Filter Effects
-     ============================================================== -->
-
-<!ENTITY % filterExt "" >
-<!ELEMENT filter (%descTitleMetadata;,(feBlend|feFlood|
-  feColorMatrix|feComponentTransfer|
-  feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap|
-  feGaussianBlur|feImage|feMerge|
-  feMorphology|feOffset|feSpecularLighting|
-  feTile|feTurbulence|
-  animate|set
-  %filterExt;)*) >
-<!ATTLIST filter
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  filterUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  primitiveUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED
-  filterRes %NumberOptionalNumber; #IMPLIED >
-
-<!ENTITY % filter_primitive_attributes
-  "x %Coordinate; #IMPLIED
-   y %Coordinate; #IMPLIED
-   width %Length; #IMPLIED
-   height %Length; #IMPLIED
-   result CDATA #IMPLIED" >
-
-<!ENTITY % filter_primitive_attributes_with_in
-  "%filter_primitive_attributes;
-   in CDATA #IMPLIED">
-
-<!ELEMENT feDistantLight (animate|set)* >
-<!ATTLIST feDistantLight
-  %stdAttrs;
-  azimuth %Number; #IMPLIED
-  elevation %Number; #IMPLIED >
-
-<!ELEMENT fePointLight (animate|set)* >
-<!ATTLIST fePointLight
-  %stdAttrs;
-  x %Number; #IMPLIED
-  y %Number; #IMPLIED
-  z %Number; #IMPLIED >
-
-<!ELEMENT feSpotLight (animate|set)* >
-<!ATTLIST feSpotLight
-  %stdAttrs;
-  x %Number; #IMPLIED
-  y %Number; #IMPLIED
-  z %Number; #IMPLIED
-  pointsAtX %Number; #IMPLIED
-  pointsAtY %Number; #IMPLIED
-  pointsAtZ %Number; #IMPLIED
-  specularExponent %Number; #IMPLIED
-  limitingConeAngle %Number; #IMPLIED >
-
-<!ELEMENT feBlend (animate|set)* >
-<!ATTLIST feBlend
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  in2 CDATA #REQUIRED
-  mode (normal | multiply | screen | darken | lighten) "normal" >
-
-<!ELEMENT feColorMatrix (animate|set)* >
-<!ATTLIST feColorMatrix
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  type (matrix | saturate | hueRotate | luminanceToAlpha) "matrix"
-  values CDATA #IMPLIED >
-
-<!ELEMENT feComponentTransfer (feFuncR?,feFuncG?,feFuncB?,feFuncA?) >
-<!ATTLIST feComponentTransfer
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in; >
-
-<!ENTITY % component_transfer_function_attributes
-  "type (identity | table | discrete | linear | gamma) #REQUIRED
-   tableValues CDATA #IMPLIED
-   slope %Number; #IMPLIED
-   intercept %Number; #IMPLIED
-   amplitude %Number; #IMPLIED
-   exponent %Number; #IMPLIED
-   offset %Number; #IMPLIED" >
-
-<!ELEMENT feFuncR (animate|set)* >
-<!ATTLIST feFuncR
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feFuncG (animate|set)* >
-<!ATTLIST feFuncG
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feFuncB (animate|set)* >
-<!ATTLIST feFuncB
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feFuncA (animate|set)* >
-<!ATTLIST feFuncA
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feComposite (animate|set)* >
-<!ATTLIST feComposite
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  in2 CDATA #REQUIRED
-  operator (over | in | out | atop | xor | arithmetic) "over"
-  k1 %Number; #IMPLIED
-  k2 %Number; #IMPLIED
-  k3 %Number; #IMPLIED
-  k4 %Number; #IMPLIED >
-
-<!ELEMENT feConvolveMatrix (animate|set)* >
-<!ATTLIST feConvolveMatrix
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  order %NumberOptionalNumber; #REQUIRED
-  kernelMatrix CDATA #REQUIRED
-  divisor %Number; #IMPLIED
-  bias %Number; #IMPLIED
-  targetX %Integer; #IMPLIED
-  targetY %Integer; #IMPLIED
-  edgeMode (duplicate|wrap|none) "duplicate" 
-  kernelUnitLength %NumberOptionalNumber; #IMPLIED 
-  preserveAlpha %Boolean; #IMPLIED >
-
-<!ELEMENT feDiffuseLighting ((feDistantLight|fePointLight|feSpotLight),(animate|set|animateColor)*) >
-<!ATTLIST feDiffuseLighting
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FilterPrimitives;
-  %PresentationAttributes-LightingEffects;
-  %filter_primitive_attributes_with_in;
-  surfaceScale %Number; #IMPLIED
-  diffuseConstant %Number; #IMPLIED 
-  kernelUnitLength %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feDisplacementMap (animate|set)* >
-<!ATTLIST feDisplacementMap
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  in2 CDATA #REQUIRED
-  scale %Number; #IMPLIED
-  xChannelSelector (R | G | B | A) "A"
-  yChannelSelector (R | G | B | A) "A" >
-
-<!ELEMENT feFlood (animate|set|animateColor)* >
-<!ATTLIST feFlood
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-feFlood;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in; >
-
-<!ELEMENT feGaussianBlur (animate|set)* >
-<!ATTLIST feGaussianBlur
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  stdDeviation %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feImage (animate|set|animateTransform)* >
-<!ATTLIST feImage
-  %stdAttrs;
-  %xlinkRefAttrsEmbed;
-  xlink:href %URI; #REQUIRED
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  %filter_primitive_attributes;
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet' >
-
-<!ELEMENT feMerge (feMergeNode)* >
-<!ATTLIST feMerge
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes; >
-
-<!ELEMENT feMergeNode (animate|set)* >
-<!ATTLIST feMergeNode
-  %stdAttrs;
-  in CDATA #IMPLIED >
-
-<!ELEMENT feMorphology (animate|set)* >
-<!ATTLIST feMorphology
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  operator (erode | dilate) "erode"
-  radius %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feOffset (animate|set)* >
-<!ATTLIST feOffset
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  dx %Number; #IMPLIED
-  dy %Number; #IMPLIED >
-
-<!ELEMENT feSpecularLighting ((feDistantLight|fePointLight|feSpotLight),(animate|set|animateColor)*) >
-<!ATTLIST feSpecularLighting
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FilterPrimitives;
-  %PresentationAttributes-LightingEffects;
-  %filter_primitive_attributes_with_in;
-  surfaceScale %Number; #IMPLIED
-  specularConstant %Number; #IMPLIED
-  specularExponent %Number; #IMPLIED 
-  kernelUnitLength %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feTile (animate|set)* >
-<!ATTLIST feTile
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in; >
-
-<!ELEMENT feTurbulence (animate|set)* >
-<!ATTLIST feTurbulence
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes;
-  baseFrequency %NumberOptionalNumber; #IMPLIED
-  numOctaves %Integer; #IMPLIED
-  seed %Number; #IMPLIED
-  stitchTiles (stitch | noStitch) "noStitch"
-  type (fractalNoise | turbulence) "turbulence" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Interactivity 
-     ============================================================== -->
-
-<!ELEMENT cursor (%descTitleMetadata;) >
-<!ATTLIST cursor
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Linking
-     ============================================================== -->
-
-<!ENTITY % aExt "" >
-<!ELEMENT a       (#PCDATA|desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%aExt;)* >
-<!ATTLIST a
-  %stdAttrs;
-  xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
-  xlink:type (simple) #FIXED "simple" 
-  xlink:role %URI; #IMPLIED
-  xlink:arcrole %URI; #IMPLIED
-  xlink:title CDATA #IMPLIED
-  xlink:show (new|replace) 'replace'
-  xlink:actuate (onRequest) #FIXED 'onRequest'
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  target %LinkTarget; #IMPLIED >
-
-<!ENTITY % viewExt "" >
-<!ELEMENT view (%descTitleMetadata;%viewExt;) >
-<!ATTLIST view
-  %stdAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  zoomAndPan (disable | magnify) 'magnify' 
-  viewTarget CDATA #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Scripting 
-     ============================================================== -->
-
-<!ELEMENT script (#PCDATA) >
-<!ATTLIST script
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  externalResourcesRequired %Boolean; #IMPLIED
-  type %ContentType; #REQUIRED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Animation 
-     ============================================================== -->
-
-<!ENTITY % animElementAttrs
- "%xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED" >
-
-<!ENTITY % animAttributeAttrs
- "attributeName  CDATA  #REQUIRED
-  attributeType  CDATA  #IMPLIED" >
-
-<!ENTITY % animTimingAttrs
- "begin CDATA #IMPLIED 
-  dur CDATA #IMPLIED
-  end CDATA #IMPLIED
-  min CDATA #IMPLIED
-  max CDATA #IMPLIED
-  restart (always | never | whenNotActive) 'always'
-  repeatCount CDATA #IMPLIED 
-  repeatDur CDATA #IMPLIED
-  fill (remove | freeze) 'remove'" >
-
-<!ENTITY % animValueAttrs
- "calcMode (discrete | linear | paced | spline) 'linear'
-  values CDATA #IMPLIED
-  keyTimes CDATA #IMPLIED
-  keySplines CDATA #IMPLIED
-  from CDATA #IMPLIED
-  to CDATA #IMPLIED
-  by CDATA #IMPLIED" >
-
-<!ENTITY % animAdditionAttrs
- "additive       (replace | sum) 'replace'
-  accumulate     (none | sum) 'none'" >
-
-<!ENTITY % animateExt "" >
-<!ELEMENT animate (%descTitleMetadata;%animateExt;) >
-<!ATTLIST animate
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  %animValueAttrs;
-  %animAdditionAttrs; >
-
-<!ENTITY % setExt "" >
-<!ELEMENT set (%descTitleMetadata;%setExt;) >
-<!ATTLIST set
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  to CDATA #IMPLIED >
-
-<!ENTITY % animateMotionExt "" >
-<!ELEMENT animateMotion (%descTitleMetadata;,mpath? %animateMotionExt;) >
-<!ATTLIST animateMotion
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animTimingAttrs;
-  calcMode (discrete | linear | paced | spline) 'paced'
-  values CDATA #IMPLIED
-  keyTimes CDATA #IMPLIED
-  keySplines CDATA #IMPLIED
-  from CDATA #IMPLIED
-  to CDATA #IMPLIED
-  by CDATA #IMPLIED
-  %animAdditionAttrs;
-  path CDATA #IMPLIED
-  keyPoints CDATA #IMPLIED
-  rotate CDATA #IMPLIED
-  origin CDATA #IMPLIED >
-
-<!ENTITY % mpathExt "" >
-<!ELEMENT mpath (%descTitleMetadata;%mpathExt;) >
-<!ATTLIST mpath
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  externalResourcesRequired %Boolean; #IMPLIED >
-
-<!ENTITY % animateColorExt "" >
-<!ELEMENT animateColor (%descTitleMetadata;%animateColorExt;) >
-<!ATTLIST animateColor
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  %animValueAttrs;
-  %animAdditionAttrs; >
-
-<!ENTITY % animateTransformExt "" >
-<!ELEMENT animateTransform (%descTitleMetadata;%animateTransformExt;) >
-<!ATTLIST animateTransform
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  %animValueAttrs;
-  %animAdditionAttrs;
-  type (translate | scale | rotate | skewX | skewY) "translate" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Fonts 
-     ============================================================== -->
-
-<!ENTITY % fontExt "" >
-<!ELEMENT font (%descTitleMetadata;,font-face,
-                   missing-glyph,(glyph|hkern|vkern %fontExt;)*) >
-<!ATTLIST font
-  %stdAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  horiz-origin-x %Number; #IMPLIED
-  horiz-origin-y %Number; #IMPLIED
-  horiz-adv-x %Number; #REQUIRED
-  vert-origin-x %Number; #IMPLIED
-  vert-origin-y %Number; #IMPLIED
-  vert-adv-y %Number; #IMPLIED >
-
-<!ENTITY % glyphExt "" >
-<!ELEMENT glyph (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %glyphExt;)* >
-<!ATTLIST glyph
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  unicode CDATA #IMPLIED
-  glyph-name CDATA #IMPLIED
-  d %PathData; #IMPLIED
-  orientation CDATA #IMPLIED
-  arabic-form CDATA #IMPLIED
-  lang %LanguageCodes; #IMPLIED
-  horiz-adv-x %Number; #IMPLIED
-  vert-origin-x %Number; #IMPLIED
-  vert-origin-y %Number; #IMPLIED
-  vert-adv-y %Number; #IMPLIED >
-
-<!ENTITY % missing-glyphExt "" >
-<!ELEMENT missing-glyph (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %missing-glyphExt;)* >
-<!ATTLIST missing-glyph
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  d %PathData; #IMPLIED
-  horiz-adv-x %Number; #IMPLIED
-  vert-origin-x %Number; #IMPLIED
-  vert-origin-y %Number; #IMPLIED
-  vert-adv-y %Number; #IMPLIED >
-
-<!ELEMENT hkern EMPTY >
-<!ATTLIST hkern
-  %stdAttrs;
-  u1 CDATA #IMPLIED
-  g1 CDATA #IMPLIED
-  u2 CDATA #IMPLIED
-  g2 CDATA #IMPLIED
-  k %Number; #REQUIRED >
-
-<!ELEMENT vkern EMPTY >
-<!ATTLIST vkern
-  %stdAttrs;
-  u1 CDATA #IMPLIED
-  g1 CDATA #IMPLIED
-  u2 CDATA #IMPLIED
-  g2 CDATA #IMPLIED
-  k %Number; #REQUIRED >
-
-<!ELEMENT font-face (%descTitleMetadata;,font-face-src?,definition-src?) >
-<!ATTLIST font-face 
-  %stdAttrs;
-  font-family CDATA #IMPLIED
-  font-style CDATA #IMPLIED
-  font-variant CDATA #IMPLIED
-  font-weight CDATA #IMPLIED
-  font-stretch CDATA #IMPLIED
-  font-size CDATA #IMPLIED
-  unicode-range CDATA #IMPLIED
-  units-per-em %Number; #IMPLIED
-  panose-1 CDATA #IMPLIED
-  stemv %Number; #IMPLIED
-  stemh %Number; #IMPLIED
-  slope %Number; #IMPLIED
-  cap-height %Number; #IMPLIED
-  x-height %Number; #IMPLIED
-  accent-height %Number; #IMPLIED
-  ascent %Number; #IMPLIED
-  descent %Number; #IMPLIED
-  widths CDATA #IMPLIED
-  bbox CDATA #IMPLIED
-  ideographic %Number; #IMPLIED
-  alphabetic %Number; #IMPLIED
-  mathematical %Number; #IMPLIED
-  hanging %Number; #IMPLIED
-  v-ideographic %Number; #IMPLIED
-  v-alphabetic %Number; #IMPLIED
-  v-mathematical %Number; #IMPLIED
-  v-hanging %Number; #IMPLIED
-  underline-position %Number; #IMPLIED
-  underline-thickness %Number; #IMPLIED
-  strikethrough-position %Number; #IMPLIED
-  strikethrough-thickness %Number; #IMPLIED
-  overline-position %Number; #IMPLIED
-  overline-thickness %Number; #IMPLIED >
-
-<!ELEMENT font-face-src (font-face-uri|font-face-name)+ >
-<!ATTLIST font-face-src 
-  %stdAttrs; >
-
-<!ELEMENT font-face-uri (font-face-format*) >
-<!ATTLIST font-face-uri 
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED >
-
-<!ELEMENT font-face-format EMPTY >
-<!ATTLIST font-face-format 
-  %stdAttrs;
-  string CDATA #IMPLIED >
-
-<!ELEMENT font-face-name EMPTY >
-<!ATTLIST font-face-name 
-  %stdAttrs;
-  name CDATA #IMPLIED >
-
-<!ELEMENT definition-src EMPTY >
-<!ATTLIST definition-src 
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Metadata 
-     ============================================================== -->
-
-<!ENTITY % metadataExt "" >
-<!ELEMENT metadata (#PCDATA %metadataExt;)* >
-<!ATTLIST metadata
-  %stdAttrs; >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Extensibility 
-     ============================================================== -->
-
-<!ENTITY % foreignObjectExt "" >
-<!ELEMENT foreignObject (#PCDATA %ceExt;%foreignObjectExt;)* >
-<!ATTLIST foreignObject
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #REQUIRED
-  height %Length; #REQUIRED
-  %StructuredText; >
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.css b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.css
deleted file mode 100644
index bde7995..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.css
+++ /dev/null
@@ -1,329 +0,0 @@
-	text.busintlabel {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  italic;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mpmctitle {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   16pt; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Arial Verdana Helvetica sans-serif;
-	}
-	
-	text.mpmcbiflabel {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-
-	}
-
-	text.buslabel {
-		fill:        #CC3333;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-			
-	text.iplabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: 800;
-		text-anchor: middle;
-		font-family: Courier Arial Helvetica sans-serif;
-	}
-		
-	text.iptype {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.ipclass {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-
-	text.procclass {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-		
-		
-	text.portlabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.ipdbiflbl {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: bold;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-		
-	text.mmMHeader {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mmSHeader {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-
-
-	text.dbglabel {
-		fill:        #555555;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-
-	text.iopnumb {
-		fill:        #555555;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.ioplblgrp {
-		fill:        #000088;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-
-	tspan.iopgrp {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		baseline-shift:super;
-		font-family: Arial Courier san-serif;
-	}
-
-
-	text.biflabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-
-	}
-
-	text.p2pbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    10pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		writing-mode: tb;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mpbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    6pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		writing-mode: tb;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-
-	text.sharedbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    10pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-
-	text.bciplabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Courier Arial Helvetica sans-serif;
-	}
-		
-	text.bciptype {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.splitbustxt {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: sans-serif;
-	}
-
-	text.horizp2pbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    6pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-
-
-	text.keytitle {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   12pt; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.keyheader {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   10pt; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.keylabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.keylblul {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: start;
-		text-decoration: underline;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.specsheader {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   10pt; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.specsvalue {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.specsvaluemid {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.intrsymbol {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Arial Helvetica sans-serif;
-	}
-
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.html b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.html
deleted file mode 100644
index 0f88d62..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<HTML xmlns:exsl="http://exslt.org/common" xmlns:xlink="http://www.w3.org/1999/xlink">
-<HEAD>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<TITLE>Block Diagram</TITLE>
-</HEAD>
-<BODY class="main_body">
-<EMBED src="system.svg" width="1032" height="1531" type="image/svg+xml"></EMBED><BR><BR><TABLE BGCOLOR="#000000" WIDTH="850" COLS="8" cellspacing="1" cellpadding="1" border="0">
-<TD COLSPAN="8" ALIGN="middle" BGCOLOR="#810017"><SPAN style="color:#FFFFFF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">EXTERNAL PORTS</SPAN></TD>
-<TR></TR>
-<TD COLSPAN="8" ALIGN="middle" bgcolor="#FFFFFF"><SPAN style="color:#2233FF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-				These are the external ports defined in the MHS file.
-			</SPAN></TD>
-<TR></TR>
-<TD COLSPAN="8" ALIGN="left" bgcolor="#FFFFFF">
-<SPAN style="color:#2233FF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Attributes Key</SPAN><BR><SPAN style="color:#000000; font: italic 9px Verdana,Arial,Helvetica,sans-serif">The attributes are obtained from the SIGIS and IOB_STATE parameters set on the PORT in the MHS file </SPAN><BR><SPAN style="color:#55FF55; font: bold 12px Verdana,Arial,Helvetica,sans-serif">CLK</SPAN><SPAN style="color:#2233FF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">  indicates Clock ports, (SIGIS = CLK) </SPAN><BR><SPAN style="color:#5555FF; font: bold 12px Verdana,Arial,Helvetica,sans-serif">INTR</SPAN><SPAN style="color:#2233FF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">  indicates Interrupt ports,(SIGIS = INTR) </SPAN><BR><SPAN style="color:#FFCC00; font: bold 12px Verdana,Arial,Helvetica,sans-serif">RESET</SPAN><SPAN style="color:#2233FF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">  indicates Reset ports, (SIGIS = RST) </SPAN><BR><SPAN style="color:#FF5555; font: bold 12px Verdana,Arial,Helvetica,sans-serif">BUF or REG</SPAN><SPAN style="color:#2233FF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">  Indicates ports that instantiate or infer IOB primitives, (IOB_STATE = BUF or REG) </SPAN>
-</TD>
-<TR></TR>
-<TD COLSPAN="3" WIDTH="49%"><TABLE BGCOLOR="#000000" WIDTH="100%" COLS="9" cellspacing="1" cellpadding="0" border="0">
-<TD COLSPAN="1" width="5" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">ATTRIBUTES</SPAN></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_RS232_Uart_RX_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">I</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_RS232_Uart_RX</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_RS232_Uart_TX_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_RS232_Uart_TX</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_LEDs_4Bit_GPIO_IO_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">IO</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">0:3</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_LEDs_4Bit_GPIO_IO</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_LEDs_Positions_GPIO_IO_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">IO</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">0:4</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_LEDs_Positions_GPIO_IO</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_CLK_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">I</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_CLK</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_MPA_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">6:1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_MPA</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_MPD_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">IO</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">15:0</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_MPD</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_CEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_CEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_OEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_OEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_WEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_WEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">I</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_MPIRQ</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-</TABLE></TD>
-<TD COLSPAN="1" WIDTH="2%" BGCOLOR="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> </SPAN></TD>
-<TD COLSPAN="3" WIDTH="49%"><TABLE BGCOLOR="#000000" WIDTH="100%" COLS="9" cellspacing="1" cellpadding="0" border="0">
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">ATTRIBUTES</SPAN></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_A_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">9:29</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_A</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_BEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">0:3</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_BEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_WEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_WEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_DQ_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">IO</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">0:31</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_DQ</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_OEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">0:0</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_OEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_CEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">0:0</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_CEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_ADV_LDN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_ADV_LDN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_CLOCK</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">sys_clk_s</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">sys_clk_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">I</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">dcm_clk_s</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#33CC33; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> CLK </SPAN></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">sys_rst_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">I</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">sys_rst_s</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#FFCC00; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> RESET </SPAN></TD>
-<TR></TR>
-<TD COLSPAN="9" WIDTH="100%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#FFFFFF; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> </SPAN></TD>
-</TABLE></TD>
-</TABLE>
-<BR>
-</BODY>
-</HTML>
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.svg b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.svg
deleted file mode 100644
index 5991ebf..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/blkdiagram/system.svg
+++ /dev/null
@@ -1,1473 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "svg10.dtd">
-<?xml-stylesheet href="system.css" type="text/css"?>
-<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns:exsl="http://exslt.org/common" xmlns:xlink="http://www.w3.org/1999/xlink" width="1032" height="1531" viewBox="0 0 0 3062">
-  <defs>
-    <symbol id="KEY_IntrCntrl">
-      <rect x="0" y="0" rx="3" ry="3" width="9" height="18" style="fill:#888888; stroke:none; stroke-width:1"/>
-      <line x1="0" y1="5" x2="9" y2="5" style="stroke:#000000;stroke-width:2"/>
-      <text class="intrsymbol" x="1.5" y="16">x</text>
-    </symbol>
-    <symbol id="KEY_IntrdProc">
-      <rect x="0" y="0" rx="3" ry="3" width="9" height="18" style="fill:#888888; stroke:none; stroke-width:1"/>
-      <line x1="0" y1="3" x2="9" y2="3" style="stroke:#000000;stroke-width:1"/>
-      <line x1="0" y1="7" x2="9" y2="7" style="stroke:#000000;stroke-width:1"/>
-      <text class="intrsymbol" x="1.5" y="16">x</text>
-    </symbol>
-    <symbol id="KEY_IntrSrc">
-      <rect x="0" y="0" rx="3" ry="3" width="18" height="9" style="fill:#888888; stroke:none; stroke-width:1"/>
-      <line x1="9" y1="0" x2="9" y2="9" style="stroke:#000000;stroke-width:1"/>
-      <text class="intrsymbol" x="2" y="7">y</text>
-      <text class="intrsymbol" x="11" y="7">x</text>
-    </symbol>
-    <symbol id="BlkDiagram_Key">
-      <rect x="0" y="0" width="468" height="250" style="fill:#CCCCCC; stroke:none;"/>
-      <rect x="0" y="0" width="468" height="16" style="fill:#CCCCCC; stroke:none;"/>
-      <text class="keytitle" x="234 " y="14">KEY</text>
-      <rect x="0" y="16" width="468" height="16" style="fill:#EEEEEE; stroke:none;"/>
-      <text class="keyheader" x="234 " y="30">SYMBOLS</text>
-      <use x="32" y="47" xlink:href="#KEY_Bif" transform="scale(0.75)"/>
-      <text class="keylabel" x="12" y="60">bus interface</text>
-      <use x="20" y="68" xlink:href="#KEY_SharedBus"/>
-      <text class="keylabel" x="12" y="85">shared bus</text>
-      <text class="keylblul" x="110" y="47">Bus connections</text>
-      <use x="110" y="58" xlink:href="#KEY_busconn_MASTER"/>
-      <text class="keylabel" x="140" y="72">master or initiator</text>
-      <use x="110" y="86" xlink:href="#KEY_busconn_SLAVE"/>
-      <text class="keylabel" x="140" y="100">slave or target</text>
-      <use x="110" y="114" xlink:href="#KEY_busconn_MASTER_SLAVE"/>
-      <text class="keylabel" x="140" y="128">master slave</text>
-      <use x="110" y="142" xlink:href="#KEY_busconn_MONITOR"/>
-      <text class="keylabel" x="140" y="156">monitor</text>
-      <text class="keylblul" x="258" y="47">External Ports</text>
-      <use x="258" y="58" xlink:href="#KEY_INPort"/>
-      <text class="keylabel" x="288" y="72">input</text>
-      <use x="258" y="78" xlink:href="#KEY_OUTPort"/>
-      <text class="keylabel" x="288" y="92">output</text>
-      <use x="258" y="98" xlink:href="#KEY_INOUTPort"/>
-      <text class="keylabel" x="288" y="112">inout</text>
-      <text class="keylblul" x="380" y="47">Interrupts</text>
-      <use x="380" y="58" xlink:href="#KEY_IntrCntrl"/>
-      <text class="keylabel" x="396" y="64">interrupt</text>
-      <text class="keylabel" x="396" y="74">controller</text>
-      <use x="380" y="88" xlink:href="#KEY_IntrdProc"/>
-      <text class="keylabel" x="396" y="94">interrupted</text>
-      <text class="keylabel" x="396" y="104">processor</text>
-      <use x="380" y="118" xlink:href="#KEY_IntrSrc"/>
-      <text class="keylabel" x="400" y="124">interrupt</text>
-      <text class="keylabel" x="400" y="134">source</text>
-      <text class="keylabel" x="360" y="146">x = controller ID</text>
-      <text class="keylabel" x="360" y="156">y = priority</text>
-      <rect x="0" y="160" width="468" height="16" style="fill:#EEEEEE; stroke:none;"/>
-      <text class="keyheader" x="234 " y="172">COLORS</text>
-      <text class="keylblul" x="110" y="190">Bus Standards</text>
-      <rect x="12" y="200" width="24" height="24" style="fill:#6699FF; stroke:none;"/>
-      <text class="keylabel" x="40" y="220">DCR</text>
-      <rect x="12" y="228" width="24" height="24" style="fill:#8C00FF; stroke:none;"/>
-      <text class="keylabel" x="40" y="240">FCB</text>
-      <rect x="84" y="200" width="24" height="24" style="fill:#CC00CC; stroke:none;"/>
-      <text class="keylabel" x="112" y="220">FSL</text>
-      <rect x="84" y="228" width="24" height="24" style="fill:#7777FF; stroke:none;"/>
-      <text class="keylabel" x="112" y="240">LMB</text>
-      <rect x="156" y="200" width="24" height="24" style="fill:#339900; stroke:none;"/>
-      <text class="keylabel" x="184" y="220">OPB</text>
-      <rect x="156" y="228" width="24" height="24" style="fill:#FF5500; stroke:none;"/>
-      <text class="keylabel" x="184" y="240">PLB</text>
-      <rect x="228" y="200" width="24" height="24" style="fill:#0000DD; stroke:none;"/>
-      <text class="keylabel" x="256" y="220">SOCM</text>
-      <rect x="228" y="228" width="24" height="24" style="fill:#990066; stroke:none;"/>
-      <text class="keylabel" x="256" y="240">XIL (prefix) P2P</text>
-      <rect x="300" y="200" width="24" height="24" style="fill:#009999; stroke:none;"/>
-      <text class="keylabel" x="328" y="220">GEN. P2P, USER, etc</text>
-    </symbol>
-    <symbol id="BlkDiagram_Specs">
-      <rect x="0" y="0" width="300" height="100" style="fill:#CCCCCC; stroke:none;"/>
-      <rect x="0" y="0" width="300" height="16" style="fill:#CCCCCC; stroke:none;"/>
-      <text class="keytitle" x="150 " y="14">SPECS</text>
-      <rect x="0" y="20" width="300" height="16" style="fill:#EEEEEE; stroke:none;"/>
-      <text class="specsheader" x="4" y="32">EDK VERSION</text>
-      <text class="specsvaluemid" x="241" y="32">10.1.01</text>
-      <rect x="0" y="40" width="300" height="16" style="fill:#EEEEEE; stroke:none;"/>
-      <text class="specsheader" x="4" y="52">ARCH</text>
-      <text class="specsvaluemid" x="241" y="52">virtex4</text>
-      <rect x="0" y="60" width="300" height="16" style="fill:#EEEEEE; stroke:none;"/>
-      <text class="specsheader" x="4" y="72">PART</text>
-      <text class="specsvaluemid" x="241" y="72">xc4vfx12ff668-10</text>
-      <rect x="0" y="80" width="300" height="16" style="fill:#EEEEEE; stroke:none;"/>
-      <text class="specsheader" x="4" y="92">GENERATED</text>
-      <text class="specsvalue" x="138.5" y="92">Sun May 11 14:31:02 2008
-</text>
-    </symbol>
-    <symbol id="G_IOPort">
-      <rect x="0" y="0" width="16" height="16" style="fill:#CCCCFF; stroke:#000088; stroke-width:1"/>
-      <path class="ioport" d="M   0,0      L   16,8      L   0,16      Z" style="stroke:none; fill:#0000BB"/>
-    </symbol>
-    <symbol id="G_BIPort">
-      <rect x="0" y="0" width="16" height="16" style="fill:#CCCCFF; stroke:#000088; stroke-width:1"/>
-      <path class="btop" d="M 0,8      8,0      16,8      Z" style="stroke:none; fill:#0000BB"/>
-      <path class="bbot" d="M 0,8      8,16      16,8      Z" style="stroke:none; fill:#0000BB"/>
-    </symbol>
-    <symbol id="KEY_IOPort">
-      <rect x="0" y="0" width="16" height="16" style="fill:#888888; stroke:none;"/>
-      <path class="ioport" d="M   0,0      L   16,8      L   0,16      Z" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_BIPort">
-      <rect x="0" y="0" width="16" height="16" style="fill:#888888; stroke:none;"/>
-      <path class="btop" d="M 0,8      8,0      16,8      Z" style="stroke:none; fill:#444444"/>
-      <path class="bbot" d="M 0,8      8,16      16,8      Z" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_INPort">
-      <use x="0" y="0" xlink:href="#KEY_IOPort"/>
-      <rect x="16" y="0" width="8" height="16" style="fill:#0000BB; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_OUTPort">
-      <use x="0" y="0" xlink:href="#KEY_IOPort" transform="scale(-1,1) translate(-16,0)"/>
-      <rect x="16" y="0" width="8" height="16" style="fill:#0000BB; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_INOUTPort">
-      <use x="0" y="0" xlink:href="#KEY_BIPort"/>
-      <rect x="16" y="0" width="8" height="16" style="fill:#0000BB; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#990066; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="XIL_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#990066; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#990066; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#990066; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#0000DD; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="OCM_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#0000DD; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#0000DD; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#0000DD; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#339900; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="OPB_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#339900; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#339900; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#339900; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#7777FF; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="LMB_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#7777FF; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#7777FF; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#7777FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#CC00CC; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="FSL_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#CC00CC; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#CC00CC; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#CC00CC; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#6699FF; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="DCR_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#6699FF; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#6699FF; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#6699FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#8C00FF; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="FCB_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#8C00FF; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#8C00FF; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#8C00FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#FF5500; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="PLB_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FF5500; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#FF5500; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#FF5500; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#BB9955; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#BB9955; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#BB9955; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#BB9955; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#009999; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="TRS_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#009999; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="TRANS_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#009999; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#009999; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="TARGET_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#009999; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#444444; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="KEY_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#444444; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#444444; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#444444; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#990066"/>
-    </symbol>
-    <symbol id="XIL_BusArrowWest">
-      <use x="0" y="0" xlink:href="#XIL_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="XIL_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#990066"/>
-    </symbol>
-    <symbol id="XIL_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#990066"/>
-    </symbol>
-    <symbol id="XIL_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#XIL_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="XIL_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#990066"/>
-    </symbol>
-    <symbol id="XIL_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#XIL_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#990066"/>
-    </symbol>
-    <symbol id="XIL_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#XIL_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="XIL_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#990066"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#990066"/>
-    </symbol>
-    <symbol id="OCM_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#0000DD"/>
-    </symbol>
-    <symbol id="OCM_BusArrowWest">
-      <use x="0" y="0" xlink:href="#OCM_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="OCM_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#0000DD"/>
-    </symbol>
-    <symbol id="OCM_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#0000DD"/>
-    </symbol>
-    <symbol id="OCM_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#OCM_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="OCM_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#0000DD"/>
-    </symbol>
-    <symbol id="OCM_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#OCM_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#0000DD"/>
-    </symbol>
-    <symbol id="OCM_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#OCM_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="OCM_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#0000DD"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#0000DD"/>
-    </symbol>
-    <symbol id="OPB_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="OPB_BusArrowWest">
-      <use x="0" y="0" xlink:href="#OPB_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="OPB_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="OPB_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="OPB_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#OPB_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="OPB_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="OPB_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#OPB_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="OPB_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#OPB_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="OPB_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#339900"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="LMB_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#7777FF"/>
-    </symbol>
-    <symbol id="LMB_BusArrowWest">
-      <use x="0" y="0" xlink:href="#LMB_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="LMB_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#7777FF"/>
-    </symbol>
-    <symbol id="LMB_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#7777FF"/>
-    </symbol>
-    <symbol id="LMB_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#LMB_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="LMB_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#7777FF"/>
-    </symbol>
-    <symbol id="LMB_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#LMB_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#7777FF"/>
-    </symbol>
-    <symbol id="LMB_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#LMB_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="LMB_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#7777FF"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#7777FF"/>
-    </symbol>
-    <symbol id="FSL_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#CC00CC"/>
-    </symbol>
-    <symbol id="FSL_BusArrowWest">
-      <use x="0" y="0" xlink:href="#FSL_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="FSL_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#CC00CC"/>
-    </symbol>
-    <symbol id="FSL_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#CC00CC"/>
-    </symbol>
-    <symbol id="FSL_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#FSL_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="FSL_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#CC00CC"/>
-    </symbol>
-    <symbol id="FSL_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#FSL_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#CC00CC"/>
-    </symbol>
-    <symbol id="FSL_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#FSL_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="FSL_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#CC00CC"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#CC00CC"/>
-    </symbol>
-    <symbol id="DCR_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#6699FF"/>
-    </symbol>
-    <symbol id="DCR_BusArrowWest">
-      <use x="0" y="0" xlink:href="#DCR_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="DCR_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#6699FF"/>
-    </symbol>
-    <symbol id="DCR_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#6699FF"/>
-    </symbol>
-    <symbol id="DCR_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#DCR_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="DCR_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#6699FF"/>
-    </symbol>
-    <symbol id="DCR_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#DCR_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#6699FF"/>
-    </symbol>
-    <symbol id="DCR_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#DCR_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="DCR_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#6699FF"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#6699FF"/>
-    </symbol>
-    <symbol id="FCB_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-    <symbol id="FCB_BusArrowWest">
-      <use x="0" y="0" xlink:href="#FCB_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="FCB_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-    <symbol id="FCB_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-    <symbol id="FCB_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#FCB_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="FCB_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-    <symbol id="FCB_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#FCB_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-    <symbol id="FCB_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#FCB_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="FCB_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#8C00FF"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-    <symbol id="PLB_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLB_BusArrowWest">
-      <use x="0" y="0" xlink:href="#PLB_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="PLB_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLB_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLB_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#PLB_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="PLB_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLB_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#PLB_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLB_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#PLB_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="PLB_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#FF5500"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLBV46_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_BusArrowWest">
-      <use x="0" y="0" xlink:href="#PLBV46_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="PLBV46_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#PLBV46_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="PLBV46_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#PLBV46_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#PLBV46_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="PLBV46_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#BB9955"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_BusArrowWest">
-      <use x="0" y="0" xlink:href="#PLBV46_P2P_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#PLBV46_P2P_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#PLBV46_P2P_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#PLBV46_P2P_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#BB9955"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="TRS_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRS_BusArrowWest">
-      <use x="0" y="0" xlink:href="#TRS_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="TRS_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRS_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRS_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#TRS_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="TRS_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRS_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#TRS_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRS_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#TRS_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="TRS_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#009999"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANS_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANS_BusArrowWest">
-      <use x="0" y="0" xlink:href="#TRANS_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="TRANS_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANS_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANS_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#TRANS_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="TRANS_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANS_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#TRANS_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANS_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#TRANS_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="TRANS_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#009999"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANSPARENT_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANSPARENT_BusArrowWest">
-      <use x="0" y="0" xlink:href="#TRANSPARENT_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="TRANSPARENT_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANSPARENT_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANSPARENT_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#TRANSPARENT_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="TRANSPARENT_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANSPARENT_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#TRANSPARENT_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANSPARENT_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#TRANSPARENT_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="TRANSPARENT_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#009999"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TARGET_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TARGET_BusArrowWest">
-      <use x="0" y="0" xlink:href="#TARGET_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="TARGET_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TARGET_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TARGET_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#TARGET_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="TARGET_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TARGET_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#TARGET_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TARGET_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#TARGET_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="TARGET_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#009999"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="INITIATOR_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="INITIATOR_BusArrowWest">
-      <use x="0" y="0" xlink:href="#INITIATOR_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="INITIATOR_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="INITIATOR_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="INITIATOR_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#INITIATOR_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="INITIATOR_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="INITIATOR_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#INITIATOR_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="INITIATOR_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#INITIATOR_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="INITIATOR_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#009999"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="KEY_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_BusArrowWest">
-      <use x="0" y="0" xlink:href="#KEY_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="KEY_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#KEY_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="KEY_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#KEY_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#KEY_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="KEY_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#444444"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="PLB_SharedBus">
-      <use x="0" y="0" xlink:href="#PLB_BusArrowWest"/>
-      <use x="806" y="0" xlink:href="#PLB_BusArrowEast"/>
-      <rect x="8" y="2" width="798" height="8" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLBV46_SharedBus">
-      <use x="0" y="0" xlink:href="#PLBV46_BusArrowWest"/>
-      <use x="806" y="0" xlink:href="#PLBV46_BusArrowEast"/>
-      <rect x="8" y="2" width="798" height="8" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="OPB_SharedBus">
-      <use x="0" y="0" xlink:href="#OPB_BusArrowWest"/>
-      <use x="806" y="0" xlink:href="#OPB_BusArrowEast"/>
-      <rect x="8" y="2" width="798" height="8" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="group_sharedBusses">
-      <use x="0" y="0" xlink:href="#PLBV46_SharedBus"/>
-      <text class="sharedbuslabel" x="8" y="22">plb</text>
-    </symbol>
-    <symbol id="KEY_SharedBus">
-      <use x="0" y="0" xlink:href="#KEY_BusArrowWest"/>
-      <use x="30" y="0" xlink:href="#KEY_BusArrowEast"/>
-      <rect x="8" y="2" width="22" height="8" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="sbsbktmodule_LEDs_4Bit">
-      <rect x="0" y="24" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="56" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <rect x="11" y="76" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="90">A</text>
-      <text class="bciptype" x="45" y="64">xps_gpio</text>
-      <text class="bciplabel" x="45" y="72">LEDs_4Bit</text>
-      <use x="29" y="28" xlink:href="#PLBV46_Bif"/>
-      <use x="33" y="0" xlink:href="#PLBV46_busconn_SLAVE"/>
-      <text class="biflabel" x="45" y="39">SPLB</text>
-    </symbol>
-    <symbol id="sbsbktmodule_LEDs_Positions">
-      <rect x="0" y="24" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="56" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <rect x="11" y="76" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="90">B</text>
-      <text class="bciptype" x="45" y="64">xps_gpio</text>
-      <text class="bciplabel" x="45" y="72">LEDs_Positions</text>
-      <use x="29" y="28" xlink:href="#PLBV46_Bif"/>
-      <use x="33" y="0" xlink:href="#PLBV46_busconn_SLAVE"/>
-      <text class="biflabel" x="45" y="39">SPLB</text>
-    </symbol>
-    <symbol id="sbsbktmodule_RS232_Uart">
-      <rect x="0" y="24" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="56" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <rect x="11" y="76" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="90">C</text>
-      <text class="bciptype" x="45" y="64">xps_uartlite</text>
-      <text class="bciplabel" x="45" y="72">RS232_Uart</text>
-      <use x="29" y="28" xlink:href="#PLBV46_Bif"/>
-      <use x="33" y="0" xlink:href="#PLBV46_busconn_SLAVE"/>
-      <text class="biflabel" x="45" y="39">SPLB</text>
-      <rect x="72" y="24" rx="3" ry="3" width="18" height="9" style="fill:#FF9900; stroke:none; stroke-width:1"/>
-      <line x1="81" y1="24" x2="81" y2="33" style="stroke:#000000;stroke-width:1"/>
-      <text class="intrsymbol" x="74" y="32">0</text>
-      <text class="intrsymbol" x="83" y="32">0</text>
-    </symbol>
-    <symbol id="sbsbktmodule_SRAM">
-      <rect x="0" y="24" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="56" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <rect x="11" y="76" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="90">D</text>
-      <text class="bciptype" x="45" y="64">xps_mch_emc</text>
-      <text class="bciplabel" x="45" y="72">SRAM</text>
-      <use x="29" y="28" xlink:href="#PLBV46_Bif"/>
-      <use x="33" y="0" xlink:href="#PLBV46_busconn_SLAVE"/>
-      <text class="biflabel" x="45" y="39">SPLB</text>
-    </symbol>
-    <symbol id="sbsbktmodule_SysACE_CompactFlash">
-      <rect x="0" y="24" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="56" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <rect x="11" y="76" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="90">F</text>
-      <text class="bciptype" x="45" y="64">xps_sysace</text>
-      <text class="bciplabel" x="45" y="72">SysACE_CompactFlash</text>
-      <use x="29" y="28" xlink:href="#PLBV46_Bif"/>
-      <use x="33" y="0" xlink:href="#PLBV46_busconn_SLAVE"/>
-      <text class="biflabel" x="45" y="39">SPLB</text>
-    </symbol>
-    <symbol id="sbsbktmodule_xps_intc_0">
-      <rect x="0" y="24" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="56" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="64">xps_intc</text>
-      <text class="bciplabel" x="45" y="72">xps_intc_0</text>
-      <use x="29" y="28" xlink:href="#PLBV46_Bif"/>
-      <use x="33" y="0" xlink:href="#PLBV46_busconn_SLAVE"/>
-      <text class="biflabel" x="45" y="39">SPLB</text>
-      <rect x="81" y="27" rx="3" ry="3" width="9" height="18" style="fill:#FF9900; stroke:none; stroke-width:1"/>
-      <line x1="81" y1="32" x2="90" y2="32" style="stroke:#000000;stroke-width:2"/>
-      <text class="intrsymbol" x="83" y="44">0</text>
-    </symbol>
-    <symbol id="sbsbucket_plb">
-      <rect x="0" y="0" rx="4" ry="4" width="334" height="244" style="stroke-width:2; stroke:#BB9955; fill:#FFFFDD"/>
-      <use x="16" y="16" xlink:href="#sbsbktmodule_LEDs_4Bit"/>
-      <rect x="0" y="24" width="61" height="8" style="fill:#BB9955"/>
-      <use x="122" y="16" xlink:href="#sbsbktmodule_LEDs_Positions"/>
-      <rect x="61" y="24" width="106" height="8" style="fill:#BB9955"/>
-      <use x="228" y="16" xlink:href="#sbsbktmodule_RS232_Uart"/>
-      <rect x="167" y="24" width="106" height="8" style="fill:#BB9955"/>
-      <use x="16" y="130" xlink:href="#sbsbktmodule_SRAM"/>
-      <rect x="0" y="138" width="61" height="8" style="fill:#BB9955"/>
-      <use x="122" y="130" xlink:href="#sbsbktmodule_SysACE_CompactFlash"/>
-      <rect x="61" y="138" width="106" height="8" style="fill:#BB9955"/>
-      <use x="228" y="130" xlink:href="#sbsbktmodule_xps_intc_0"/>
-      <rect x="167" y="138" width="106" height="8" style="fill:#BB9955"/>
-      <rect x="0" y="24" width="8" height="114" style="fill:#BB9955"/>
-    </symbol>
-    <symbol id="ipbktmodule_SRAM_util_bus_split_0">
-      <rect x="0" y="0" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#000000; stroke-width:2"/>
-      <rect x="11" y="18" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="26">util_bus_split</text>
-      <text class="bciplabel" x="45" y="34">SRAM_util_bus_split_0</text>
-      <rect x="11" y="38" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="52">E</text>
-    </symbol>
-    <symbol id="ipbktmodule_clock_generator_0">
-      <rect x="0" y="0" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#000000; stroke-width:2"/>
-      <rect x="11" y="18" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="26">clock_generator</text>
-      <text class="bciplabel" x="45" y="34">clock_generator_0</text>
-      <rect x="11" y="38" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="52">G</text>
-    </symbol>
-    <symbol id="ipbucket">
-      <rect x="0" y="0" rx="4" ry="4" width="228" height="106" style="stroke-width:2; stroke:#000000; fill:#CCCCFF"/>
-      <use x="16" y="16" xlink:href="#ipbktmodule_SRAM_util_bus_split_0"/>
-      <use x="122" y="16" xlink:href="#ipbktmodule_clock_generator_0"/>
-    </symbol>
-    <symbol id="symbol_STACK_0_SHAPE_1">
-      <rect x="0" y="0" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="4" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="12">jtagppc_cntlr</text>
-      <text class="bciplabel" x="45" y="20">jtagppc_0</text>
-      <line x1="0" y1="64" x2="11" y2="64" style="stroke:#990066;stroke-width:1"/>
-      <use x="11" y="54" xlink:href="#XIL_Bif"/>
-      <text class="biflabel" x="27" y="65">JTAG</text>
-    </symbol>
-    <symbol id="symbol_STACK_0_SHAPE_0">
-      <rect x="0" y="0" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="4" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="12">proc_sys_reset</text>
-      <text class="bciplabel" x="45" y="20">proc_sys_reset_0</text>
-      <rect x="11" y="24" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="38">H</text>
-      <line x1="79" y1="64" x2="91" y2="64" style="stroke:#990066;stroke-width:1"/>
-      <use x="47" y="54" xlink:href="#XIL_Bif"/>
-      <text class="biflabel" x="63" y="65">RESE</text>
-    </symbol>
-    <symbol id="symbol_STACK_0_SHAPE_2">
-      <rect x="0" y="0" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="4" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="12">apu_fpu</text>
-      <text class="bciplabel" x="45" y="20">apu_fpu_0</text>
-      <line x1="79" y1="64" x2="91" y2="64" style="stroke:#8C00FF;stroke-width:1"/>
-      <use x="47" y="54" xlink:href="#FCB_Bif"/>
-      <text class="biflabel" x="63" y="65">SFCB</text>
-    </symbol>
-    <symbol id="symbol_STACK_0_SHAPE_3">
-      <rect x="0" y="0" rx="6" ry="6" width="90" height="142" style="fill:#90001C; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="4" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="12">ppc405_virtex4</text>
-      <text class="bciplabel" x="45" y="20">ppc405_0</text>
-      <line x1="0" y1="64" x2="11" y2="64" style="stroke:#990066;stroke-width:1"/>
-      <use x="11" y="54" xlink:href="#XIL_Bif"/>
-      <text class="biflabel" x="27" y="65">JTAG</text>
-      <line x1="79" y1="120" x2="91" y2="120" style="stroke:#BB9955;stroke-width:1"/>
-      <use x="47" y="110" xlink:href="#PLBV46_Bif"/>
-      <text class="biflabel" x="63" y="121">IPLB0</text>
-      <line x1="0" y1="120" x2="11" y2="120" style="stroke:#BB9955;stroke-width:1"/>
-      <use x="11" y="110" xlink:href="#PLBV46_Bif"/>
-      <text class="biflabel" x="27" y="121">DPLB0</text>
-      <line x1="79" y1="92" x2="91" y2="92" style="stroke:#990066;stroke-width:1"/>
-      <use x="47" y="82" xlink:href="#XIL_Bif"/>
-      <text class="biflabel" x="63" y="93">RESE</text>
-      <line x1="79" y1="64" x2="91" y2="64" style="stroke:#8C00FF;stroke-width:1"/>
-      <use x="47" y="54" xlink:href="#FCB_Bif"/>
-      <text class="biflabel" x="63" y="65">MFCB</text>
-      <rect x="81" y="3" rx="3" ry="3" width="9" height="18" style="fill:#FF9900; stroke:none; stroke-width:1"/>
-      <line x1="81" y1="6" x2="90" y2="6" style="stroke:#000000;stroke-width:1"/>
-      <line x1="81" y1="10" x2="90" y2="10" style="stroke:#000000;stroke-width:1"/>
-      <text class="intrsymbol" x="83" y="20">0</text>
-    </symbol>
-    <symbol id="symbol_STACK_0">
-      <rect x="0" y="0" rx="6" ry="6" width="334" height="0" style="fill:#CCCCCC; stroke:none;"/>
-      <use x="122" y="90" xlink:href="#symbol_STACK_0_SHAPE_1"/>
-      <use x="122" y="0" xlink:href="#symbol_STACK_0_SHAPE_0"/>
-      <use x="122" y="180" xlink:href="#symbol_STACK_0_SHAPE_2"/>
-      <use x="0" y="554" xlink:href="#sbsbucket_plb"/>
-      <text class="ipclass" x="0" y="550">SLAVES OF plb</text>
-      <use x="122" y="270" xlink:href="#symbol_STACK_0_SHAPE_3"/>
-      <text class="ipclass" x="122" y="266">PROCESSOR</text>
-    </symbol>
-    <symbol id="symbol_SPACE_WEST_NONE_EAST_0">
-      <rect x="80" y="148" width="8" height="188" style="stroke:none;fill:#990066"/>
-      <text class="p2pbuslabel" x="92" y="176">jtagppc_0_0</text>
-      <use x="258" y="320" xlink:href="#XIL_busconn_TARGET"/>
-      <use x="250" y="326" xlink:href="#XIL_BusArrowEast"/>
-      <rect x="84" y="328" width="166" height="8" style="stroke:none; fill:#990066"/>
-      <use x="258" y="140" xlink:href="#XIL_busconn_INITIATOR"/>
-      <use x="250" y="146" xlink:href="#XIL_BusArrowEast"/>
-      <rect x="84" y="148" width="166" height="8" style="stroke:none; fill:#990066"/>
-      <use x="258" y="376" xlink:href="#PLBV46_busconn_MASTER"/>
-      <rect x="72" y="390" width="8" height="64" style="stroke:none; fill:#BB9955"/>
-      <rect x="72" y="384" width="192" height="8" style="stroke:none; fill:#BB9955"/>
-      <rect x="36" y="458" width="8" height="127" style="stroke:none; fill:#BB9955"/>
-      <rect x="36" y="578" width="247" height="8" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="symbol_SPACE_WEST_0_EAST_NONE">
-      <use x="45" y="376" xlink:href="#PLBV46_busconn_MASTER"/>
-      <rect x="223" y="390" width="8" height="64" style="stroke:none; fill:#BB9955"/>
-      <rect x="64" y="384" width="167" height="8" style="stroke:none; fill:#BB9955"/>
-      <rect x="263" y="58" width="8" height="306" style="stroke:none;fill:#990066"/>
-      <text class="p2pbuslabel" x="275" y="86">ppc_reset_bus</text>
-      <use x="45" y="348" xlink:href="#XIL_busconn_TARGET"/>
-      <use x="69" y="354" xlink:href="#XIL_BusArrowWest"/>
-      <rect x="76" y="356" width="192" height="8" style="stroke:none; fill:#990066"/>
-      <use x="45" y="50" xlink:href="#XIL_busconn_INITIATOR"/>
-      <use x="69" y="56" xlink:href="#XIL_BusArrowWest"/>
-      <rect x="76" y="58" width="192" height="8" style="stroke:none; fill:#990066"/>
-      <rect x="223" y="238" width="8" height="98" style="stroke:none;fill:#8C00FF"/>
-      <text class="p2pbuslabel" x="235" y="266">fcb_v10_0</text>
-      <use x="45" y="320" xlink:href="#FCB_busconn_MASTER"/>
-      <use x="69" y="326" xlink:href="#FCB_BusArrowWest"/>
-      <rect x="76" y="328" width="152" height="8" style="stroke:none; fill:#8C00FF"/>
-      <use x="45" y="230" xlink:href="#FCB_busconn_SLAVE"/>
-      <use x="69" y="236" xlink:href="#FCB_BusArrowWest"/>
-      <rect x="76" y="238" width="152" height="8" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-  </defs>
-  <rect x="0" y="0" width="1032" height="1531" style="fill:#FFFFFF; stroke:#000000;stroke-width:4"/>
-  <rect x="48" y="40" width="936" height="1190" style="fill:#000088"/>
-  <rect x="64" y="56" width="904" height="1158" rx="8" ry="8" style="fill:#CCCCCC"/>
-  <use x="32" y="471" id="fpga_0_RS232_Uart_RX_pin" xlink:href="#G_IOPort" transform="rotate(0,40,479)"/>
-  <text class="iopnumb" x="22" y="485"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="499" id="fpga_0_RS232_Uart_TX_pin" xlink:href="#G_IOPort" transform="rotate(180,40,507)"/>
-  <text class="iopnumb" x="22" y="513"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="527" id="fpga_0_LEDs_4Bit_GPIO_IO_pin" xlink:href="#G_BIPort" transform="rotate(0,40,535)"/>
-  <text class="iopnumb" x="22" y="541"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="555" id="fpga_0_LEDs_Positions_GPIO_IO_pin" xlink:href="#G_BIPort" transform="rotate(0,40,563)"/>
-  <text class="iopnumb" x="22" y="569"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="583" id="fpga_0_SysACE_CompactFlash_SysACE_CLK_pin" xlink:href="#G_IOPort" transform="rotate(0,40,591)"/>
-  <text class="iopnumb" x="22" y="597"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="611" id="fpga_0_SysACE_CompactFlash_SysACE_MPA_pin" xlink:href="#G_IOPort" transform="rotate(180,40,619)"/>
-  <text class="iopnumb" x="22" y="625"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="639" id="fpga_0_SysACE_CompactFlash_SysACE_MPD_pin" xlink:href="#G_BIPort" transform="rotate(0,40,647)"/>
-  <text class="iopnumb" x="22" y="653"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="667" id="fpga_0_SysACE_CompactFlash_SysACE_CEN_pin" xlink:href="#G_IOPort" transform="rotate(180,40,675)"/>
-  <text class="iopnumb" x="22" y="681"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="695" id="fpga_0_SysACE_CompactFlash_SysACE_OEN_pin" xlink:href="#G_IOPort" transform="rotate(180,40,703)"/>
-  <text class="iopnumb" x="22" y="709"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="723" id="fpga_0_SysACE_CompactFlash_SysACE_WEN_pin" xlink:href="#G_IOPort" transform="rotate(180,40,731)"/>
-  <text class="iopnumb" x="22" y="737"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="751" id="fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin" xlink:href="#G_IOPort" transform="rotate(0,40,759)"/>
-  <text class="iopnumb" x="22" y="765"><tspan class="iopgrp"></tspan></text>
-  <use x="984" y="471" id="fpga_0_SRAM_Mem_A_pin" xlink:href="#G_IOPort" transform="rotate(0,992,479)"/>
-  <text class="iopnumb" x="1012" y="485"><tspan class="iopgrp"></tspan></text>
-  <use x="984" y="499" id="fpga_0_SRAM_Mem_BEN_pin" xlink:href="#G_IOPort" transform="rotate(0,992,507)"/>
-  <text class="iopnumb" x="1012" y="513"><tspan class="iopgrp"></tspan></text>
-  <use x="984" y="527" id="fpga_0_SRAM_Mem_WEN_pin" xlink:href="#G_IOPort" transform="rotate(0,992,535)"/>
-  <text class="iopnumb" x="1012" y="541"><tspan class="iopgrp"></tspan></text>
-  <use x="984" y="555" id="fpga_0_SRAM_Mem_DQ_pin" xlink:href="#G_BIPort" transform="rotate(0,992,563)"/>
-  <text class="iopnumb" x="1012" y="569"><tspan class="iopgrp"></tspan></text>
-  <use x="984" y="583" id="fpga_0_SRAM_Mem_OEN_pin" xlink:href="#G_IOPort" transform="rotate(0,992,591)"/>
-  <text class="iopnumb" x="1012" y="597"><tspan class="iopgrp"></tspan></text>
-  <use x="984" y="611" id="fpga_0_SRAM_Mem_CEN_pin" xlink:href="#G_IOPort" transform="rotate(0,992,619)"/>
-  <text class="iopnumb" x="1012" y="625"><tspan class="iopgrp"></tspan></text>
-  <use x="984" y="639" id="fpga_0_SRAM_Mem_ADV_LDN_pin" xlink:href="#G_IOPort" transform="rotate(0,992,647)"/>
-  <text class="iopnumb" x="1012" y="653"><tspan class="iopgrp"></tspan></text>
-  <use x="984" y="667" id="fpga_0_SRAM_CLOCK" xlink:href="#G_IOPort" transform="rotate(0,992,675)"/>
-  <text class="iopnumb" x="1012" y="681"><tspan class="iopgrp"></tspan></text>
-  <use x="984" y="695" id="sys_clk_pin" xlink:href="#G_IOPort" transform="rotate(180,992,703)"/>
-  <text class="iopnumb" x="1012" y="709"><tspan class="iopgrp"></tspan></text>
-  <use x="984" y="723" id="sys_rst_pin" xlink:href="#G_IOPort" transform="rotate(180,992,731)"/>
-  <text class="iopnumb" x="1012" y="737"><tspan class="iopgrp"></tspan></text>
-  <use x="109" y="549" xlink:href="#group_sharedBusses"/>
-  <use x="269" y="101" xlink:href="#symbol_SPACE_WEST_NONE_EAST_0"/>
-  <use x="596" y="101" xlink:href="#symbol_SPACE_WEST_0_EAST_NONE"/>
-  <use x="429" y="101" xlink:href="#symbol_STACK_0"/>
-  <text class="ipclass" x="402" y="1001">IP</text>
-  <use x="402" y="1005" xlink:href="#ipbucket"/>
-  <use x="516" y="1273" xlink:href="#BlkDiagram_Key"/>
-  <use x="48" y="1273" xlink:href="#BlkDiagram_Specs"/>
-</svg>
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/data/system.ucf b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/data/system.ucf
deleted file mode 100644
index 0b81c8f..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/data/system.ucf
+++ /dev/null
@@ -1,398 +0,0 @@
-############################################################################

-## This system.ucf file is generated by Base System Builder based on the

-## settings in the selected Xilinx Board Definition file. Please add other

-## user constraints to this file based on customer design specifications.

-############################################################################

-

-Net sys_clk_pin LOC=AE14;

-Net sys_clk_pin IOSTANDARD = LVCMOS33;

-Net sys_rst_pin LOC=D6;

-Net sys_rst_pin PULLUP;

-## System level constraints

-Net sys_clk_pin TNM_NET = sys_clk_pin;

-TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 10000 ps;

-Net sys_rst_pin TIG;

-NET "ppc_reset_bus_Chip_Reset_Req" TPTHRU = "RST_GRP";

-NET "ppc_reset_bus_Core_Reset_Req" TPTHRU = "RST_GRP";

-NET "ppc_reset_bus_System_Reset_Req" TPTHRU = "RST_GRP";

-TIMESPEC "TS_RST1" = FROM CPUS THRU RST_GRP TO FFS  TIG;

-Net fpga_0_SRAM_CLOCK LOC=AF7;

-Net fpga_0_SRAM_CLOCK SLEW = FAST;

-Net fpga_0_SRAM_CLOCK IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_CLOCK DRIVE = 16;

-

-## IO Devices constraints

-

-#### Module RS232_Uart constraints

-

-Net fpga_0_RS232_Uart_RX_pin LOC=W2;

-Net fpga_0_RS232_Uart_RX_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_RS232_Uart_TX_pin LOC=W1;

-Net fpga_0_RS232_Uart_TX_pin IOSTANDARD = LVCMOS33;

-

-#### Module LEDs_4Bit constraints

-

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> LOC=G5;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> PULLUP;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> SLEW = SLOW;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> DRIVE = 2;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> TIG;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> LOC=G6;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> PULLUP;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> SLEW = SLOW;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> DRIVE = 2;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> TIG;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> LOC=A11;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> PULLUP;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> SLEW = SLOW;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> DRIVE = 2;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> TIG;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> LOC=A12;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> PULLUP;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> SLEW = SLOW;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> DRIVE = 2;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> TIG;

-

-#### Module LEDs_Positions constraints

-

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> LOC=C6;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> PULLUP;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> SLEW = SLOW;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> DRIVE = 2;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> TIG;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> LOC=F9;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> PULLUP;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> SLEW = SLOW;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> DRIVE = 2;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> TIG;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> LOC=A5;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> PULLUP;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> SLEW = SLOW;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> DRIVE = 2;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> TIG;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> LOC=E10;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> PULLUP;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> SLEW = SLOW;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> DRIVE = 2;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> TIG;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> LOC=E2;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> PULLUP;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> SLEW = SLOW;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> DRIVE = 2;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> TIG;

-

-#### Module SysACE_CompactFlash constraints

-

-Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin LOC=AF11;

-Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin PERIOD = 30000 ps;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<1> LOC=Y10;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<1> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<2> LOC=AA10;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<2> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<3> LOC=AC7;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<3> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<4> LOC=Y7;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<4> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<5> LOC=AA9;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<5> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<6> LOC=Y9;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<6> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<0> LOC=AB7;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<0> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<1> LOC=AC9;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<1> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<2> LOC=AB9;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<2> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<3> LOC=AE6;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<3> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<4> LOC=AD6;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<4> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<5> LOC=AF9;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<5> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<6> LOC=AE9;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<6> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<7> LOC=AD8;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<7> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<8> LOC=AC8;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<8> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<9> LOC=AF4;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<9> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<10> LOC=AE4;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<10> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<11> LOC=AD3;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<11> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<12> LOC=AC3;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<12> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<13> LOC=AF6;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<13> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<14> LOC=AF5;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<14> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<15> LOC=AA7;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<15> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_CEN_pin LOC=AD5;

-Net fpga_0_SysACE_CompactFlash_SysACE_CEN_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_OEN_pin LOC=AA8;

-Net fpga_0_SysACE_CompactFlash_SysACE_OEN_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_WEN_pin LOC=Y8;

-Net fpga_0_SysACE_CompactFlash_SysACE_WEN_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin LOC=AD4;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin TIG;

-

-#### Module SRAM constraints

-

-Net fpga_0_SRAM_Mem_A_pin<29> LOC=Y1;

-Net fpga_0_SRAM_Mem_A_pin<29> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<29> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<29> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<28> LOC=Y2;

-Net fpga_0_SRAM_Mem_A_pin<28> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<28> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<28> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<27> LOC=AA1;

-Net fpga_0_SRAM_Mem_A_pin<27> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<27> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<27> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<26> LOC=AB1;

-Net fpga_0_SRAM_Mem_A_pin<26> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<26> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<26> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<25> LOC=AB2;

-Net fpga_0_SRAM_Mem_A_pin<25> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<25> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<25> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<24> LOC=AC1;

-Net fpga_0_SRAM_Mem_A_pin<24> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<24> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<24> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<23> LOC=AC2;

-Net fpga_0_SRAM_Mem_A_pin<23> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<23> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<23> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<22> LOC=AD1;

-Net fpga_0_SRAM_Mem_A_pin<22> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<22> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<22> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<21> LOC=AD2;

-Net fpga_0_SRAM_Mem_A_pin<21> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<21> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<21> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<20> LOC=AE3;

-Net fpga_0_SRAM_Mem_A_pin<20> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<20> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<20> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<19> LOC=AF3;

-Net fpga_0_SRAM_Mem_A_pin<19> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<19> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<19> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<18> LOC=W3;

-Net fpga_0_SRAM_Mem_A_pin<18> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<18> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<18> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<17> LOC=W6;

-Net fpga_0_SRAM_Mem_A_pin<17> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<17> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<17> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<16> LOC=W5;

-Net fpga_0_SRAM_Mem_A_pin<16> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<16> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<16> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<15> LOC=AA3;

-Net fpga_0_SRAM_Mem_A_pin<15> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<15> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<15> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<14> LOC=AA4;

-Net fpga_0_SRAM_Mem_A_pin<14> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<14> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<14> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<13> LOC=AB3;

-Net fpga_0_SRAM_Mem_A_pin<13> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<13> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<13> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<12> LOC=AB4;

-Net fpga_0_SRAM_Mem_A_pin<12> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<12> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<12> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<11> LOC=AC4;

-Net fpga_0_SRAM_Mem_A_pin<11> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<11> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<11> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<10> LOC=AB5;

-Net fpga_0_SRAM_Mem_A_pin<10> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<10> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<10> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<9> LOC=AC5;

-Net fpga_0_SRAM_Mem_A_pin<9> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<9> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<9> DRIVE = 8;

-Net fpga_0_SRAM_Mem_BEN_pin<3> LOC=Y6;

-Net fpga_0_SRAM_Mem_BEN_pin<3> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_BEN_pin<3> SLEW = FAST;

-Net fpga_0_SRAM_Mem_BEN_pin<3> DRIVE = 8;

-Net fpga_0_SRAM_Mem_BEN_pin<2> LOC=Y5;

-Net fpga_0_SRAM_Mem_BEN_pin<2> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_BEN_pin<2> SLEW = FAST;

-Net fpga_0_SRAM_Mem_BEN_pin<2> DRIVE = 8;

-Net fpga_0_SRAM_Mem_BEN_pin<1> LOC=Y4;

-Net fpga_0_SRAM_Mem_BEN_pin<1> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_BEN_pin<1> SLEW = FAST;

-Net fpga_0_SRAM_Mem_BEN_pin<1> DRIVE = 8;

-Net fpga_0_SRAM_Mem_BEN_pin<0> LOC=Y3;

-Net fpga_0_SRAM_Mem_BEN_pin<0> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_BEN_pin<0> SLEW = FAST;

-Net fpga_0_SRAM_Mem_BEN_pin<0> DRIVE = 8;

-Net fpga_0_SRAM_Mem_WEN_pin LOC=AB6;

-Net fpga_0_SRAM_Mem_WEN_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_WEN_pin SLEW = FAST;

-Net fpga_0_SRAM_Mem_WEN_pin DRIVE = 8;

-Net fpga_0_SRAM_Mem_DQ_pin<31> LOC=AD13;

-Net fpga_0_SRAM_Mem_DQ_pin<31> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<31> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<31> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<30> LOC=AC13;

-Net fpga_0_SRAM_Mem_DQ_pin<30> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<30> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<30> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<29> LOC=AC15;

-Net fpga_0_SRAM_Mem_DQ_pin<29> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<29> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<29> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<28> LOC=AC16;

-Net fpga_0_SRAM_Mem_DQ_pin<28> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<28> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<28> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<27> LOC=AA11;

-Net fpga_0_SRAM_Mem_DQ_pin<27> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<27> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<27> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<26> LOC=AA12;

-Net fpga_0_SRAM_Mem_DQ_pin<26> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<26> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<26> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<25> LOC=AD14;

-Net fpga_0_SRAM_Mem_DQ_pin<25> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<25> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<25> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<24> LOC=AC14;

-Net fpga_0_SRAM_Mem_DQ_pin<24> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<24> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<24> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<23> LOC=AA13;

-Net fpga_0_SRAM_Mem_DQ_pin<23> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<23> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<23> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<22> LOC=AB13;

-Net fpga_0_SRAM_Mem_DQ_pin<22> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<22> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<22> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<21> LOC=AA15;

-Net fpga_0_SRAM_Mem_DQ_pin<21> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<21> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<21> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<20> LOC=AA16;

-Net fpga_0_SRAM_Mem_DQ_pin<20> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<20> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<20> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<19> LOC=AC11;

-Net fpga_0_SRAM_Mem_DQ_pin<19> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<19> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<19> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<18> LOC=AC12;

-Net fpga_0_SRAM_Mem_DQ_pin<18> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<18> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<18> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<17> LOC=AB14;

-Net fpga_0_SRAM_Mem_DQ_pin<17> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<17> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<17> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<16> LOC=AA14;

-Net fpga_0_SRAM_Mem_DQ_pin<16> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<16> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<16> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<15> LOC=D12;

-Net fpga_0_SRAM_Mem_DQ_pin<15> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<15> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<15> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<14> LOC=E13;

-Net fpga_0_SRAM_Mem_DQ_pin<14> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<14> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<14> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<13> LOC=C16;

-Net fpga_0_SRAM_Mem_DQ_pin<13> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<13> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<13> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<12> LOC=D16;

-Net fpga_0_SRAM_Mem_DQ_pin<12> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<12> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<12> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<11> LOC=D11;

-Net fpga_0_SRAM_Mem_DQ_pin<11> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<11> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<11> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<10> LOC=C11;

-Net fpga_0_SRAM_Mem_DQ_pin<10> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<10> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<10> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<9> LOC=E14;

-Net fpga_0_SRAM_Mem_DQ_pin<9> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<9> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<9> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<8> LOC=D15;

-Net fpga_0_SRAM_Mem_DQ_pin<8> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<8> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<8> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<7> LOC=D13;

-Net fpga_0_SRAM_Mem_DQ_pin<7> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<7> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<7> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<6> LOC=D14;

-Net fpga_0_SRAM_Mem_DQ_pin<6> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<6> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<6> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<5> LOC=F15;

-Net fpga_0_SRAM_Mem_DQ_pin<5> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<5> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<5> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<4> LOC=F16;

-Net fpga_0_SRAM_Mem_DQ_pin<4> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<4> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<4> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<3> LOC=F11;

-Net fpga_0_SRAM_Mem_DQ_pin<3> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<3> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<3> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<2> LOC=F12;

-Net fpga_0_SRAM_Mem_DQ_pin<2> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<2> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<2> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<1> LOC=F13;

-Net fpga_0_SRAM_Mem_DQ_pin<1> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<1> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<1> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<0> LOC=F14;

-Net fpga_0_SRAM_Mem_DQ_pin<0> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<0> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<0> DRIVE = 12;

-Net fpga_0_SRAM_Mem_OEN_pin<0> LOC=AC6;

-Net fpga_0_SRAM_Mem_OEN_pin<0> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_OEN_pin<0> SLEW = FAST;

-Net fpga_0_SRAM_Mem_OEN_pin<0> DRIVE = 8;

-Net fpga_0_SRAM_Mem_CEN_pin<0> LOC=V7;

-Net fpga_0_SRAM_Mem_CEN_pin<0> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_CEN_pin<0> SLEW = FAST;

-Net fpga_0_SRAM_Mem_CEN_pin<0> DRIVE = 8;

-Net fpga_0_SRAM_Mem_ADV_LDN_pin LOC=W4;

-Net fpga_0_SRAM_Mem_ADV_LDN_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_ADV_LDN_pin SLEW = FAST;

-Net fpga_0_SRAM_Mem_ADV_LDN_pin DRIVE = 8;

-

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/bitgen.ut b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/bitgen.ut
deleted file mode 100644
index 9765363..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/bitgen.ut
+++ /dev/null
@@ -1,20 +0,0 @@
--g CclkPin:PULLUP
--g TdoPin:PULLNONE
--g M1Pin:PULLDOWN
--g DonePin:PULLUP
--g DriveDone:No
--g StartUpClk:JTAGCLK
--g DONE_cycle:4
--g GTS_cycle:5
--g M0Pin:PULLUP
--g M2Pin:PULLUP
--g ProgPin:PULLUP
--g TckPin:PULLUP
--g TdiPin:PULLUP
--g TmsPin:PULLUP
--g DonePipe:No
--g GWE_cycle:6
--g LCK_cycle:NoWait
--g Security:NONE
-#-m
--g Persist:No
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/download.cmd b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/download.cmd
deleted file mode 100644
index 15728dc..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/download.cmd
+++ /dev/null
@@ -1,6 +0,0 @@
-setMode -bscan

-setCable -p auto

-identify

-assignfile -p 3 -file implementation/download.bit

-program -p 3

-quit

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/fast_runtime.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/fast_runtime.opt
deleted file mode 100644
index 6cc2599..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/fast_runtime.opt
+++ /dev/null
@@ -1,82 +0,0 @@
-FLOWTYPE = FPGA;
-###############################################################
-## Filename: fast_runtime.opt
-##
-## Option File For Xilinx FPGA Implementation Flow for Fast
-## Runtime.
-## 
-## Version: 4.1.1
-###############################################################
-#
-# Options for Translator
-#
-# Type "ngdbuild -h" for a detailed list of ngdbuild command line options
-#
-Program ngdbuild 
--p <partname>;        # Partname to use - picked from xflow commandline
--nt timestamp;        # NGO File generation. Regenerate only when
-                      # source netlist is newer than existing 
-                      # NGO file (default)
--bm <design>.bmm     # Block RAM memory map file
-<userdesign>;         # User design - pick from xflow command line
--uc <design>.ucf;     # ucf constraints
-<design>.ngd;         # Name of NGD file. Filebase same as design filebase
-End Program ngdbuild
-
-#
-# Options for Mapper
-#
-# Type "map -h <arch>" for a detailed list of map command line options
-#
-Program map
--o <design>_map.ncd;     # Output Mapped ncd file
--pr b;                   # Pack internal FF/latches into IOBs
-#-fp <design>.mfp;       # Floorplan file
--ol high;
--timing;
-<inputdir><design>.ngd;  # Input NGD file
-<inputdir><design>.pcf;  # Physical constraints file
-END Program map
-
-#
-# Options for Post Map Trace
-#
-# Type "trce -h" for a detailed list of trce command line options
-#
-Program post_map_trce
--e 3;                 # Produce error report limited to 3 items per constraint
-#-o <design>_map.twr;  # Output trace report file
--xml <design>_map.twx;     # Output XML version of the timing report
-#-tsi <design>_map.tsi; # Produce Timing Specification Interaction report
-<inputdir><design>_map.ncd;  # Input mapped ncd
-<inputdir><design>.pcf;      # Physical constraints file
-END Program post_map_trce
-
-#
-# Options for Place and Route
-#
-# Type "par -h" for a detailed list of par command line options
-#
-Program par
--w;                 # Overwrite existing placed and routed ncd
--ol high;              # Overall effort level
-<inputdir><design>_map.ncd;  # Input mapped NCD file
-<design>.ncd;                # Output placed and routed NCD
-<inputdir><design>.pcf;      # Input physical constraints file
-END Program par
-
-#
-# Options for Post Par Trace
-#
-# Type "trce -h" for a detailed list of trce command line options
-#
-Program post_par_trce
--e 3;                 # Produce error report limited to 3 items per constraint
-#-o <design>.twr;     # Output trace report file
--xml <design>.twx;    # Output XML version of the timing report
-#-tsi <design>.tsi;  # Produce Timing Specification Interaction report
-<inputdir><design>.ncd;   # Input placed and routed ncd
-<inputdir><design>.pcf;   # Physical constraints file
-END Program post_par_trce
-
-
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt
deleted file mode 100644
index 7adb1c0..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt
+++ /dev/null
@@ -1 +0,0 @@
-connect ppc hw -cable type xilinx_parallel port LPT1 frequency 2500000 -debugdevice cpunr 1 fpuType sp

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/platgen.opt b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/platgen.opt
deleted file mode 100644
index 1854735..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/platgen.opt
+++ /dev/null
@@ -1,5 +0,0 @@
--p

-xc4vfx12ff668-10

--lang

-vhdl

-system.mhs

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.bsb b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.bsb
deleted file mode 100644
index 12d83ba..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.bsb
+++ /dev/null
@@ -1 +0,0 @@
-„æÄ®Òôtt¦Êè¬ÊäæÒÞÜ@Db`\b\`bDvC„æÄ®Òôtt¦Êè„ÞÂäÈ@D°ÒØÒÜðD@D¬ÒäèÊð@h@š˜h`f@ŠìÂØêÂèÒÞÜ@ ØÂèÌÞäÚD@DbDv,„æÄ®ÒôttªàÈÂèʌ Ž‚@D‚¤†’¨Š†¨ª¤ŠD@DìÒäèÊðhDv,„æÄ®ÒôttªàÈÂèʌ Ž‚@DˆŠ¬’†Š¾¦’´ŠD@DðÆhìÌðbdDv%„æÄ®ÒôttªàÈÂèʌ Ž‚@D ‚†–‚ŽŠD@DÌÌllpDv&„æÄ®ÒôttªàÈÂèʌ Ž‚@D¦ ŠŠˆŽ¤‚ˆŠD@DZb`Dv3„æÄ®Òôtt¦Êè¦òæèÊÚ@DààÆh`j¾ìÒäèÊðh¾àØÄìhlD@Db\``\ÂDv,„æÄ®ÒôttªàÈÂèʆØÞÆÖ@D„ª¦¾Œ¤Š¢D@Db``\``````Dv,„æÄ®ÒôttªàÈÂèʆØÞÆÖ@D†˜–¾Œ¤Š¢D@Db``\``````Dv-„æÄ®ÒôttªàÈÂèʆØÞÆÖ@D ¤ž†¾Œ¤Š¢D@Dd``\``````Dv(„æÄ®ÒôttªàÈÂèʦòæèÊÚ@D¤¦¨¾ ž˜‚¤’¨²D@D`Dv1„æÄ®Òôtt‚ÈÈ äÞÆÊææÞä@DààÆh`j¾`D@DààÆh`j¾ìÒäèÊðhDv/„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DààÆh`j¾`D@D†‚†ŠD@DbDv3„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DààÆh`j¾`D@D†¾ª¦Š¾Œ ªD@DbDv:„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DààÆh`j¾`D@DˆŠ„ªŽ¾’ŒD@DŒ Ž‚@”¨‚ŽDv6„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DààÆh`j¾`D@Dˆž†š@¦’´ŠD@DœžœŠDv6„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DààÆh`j¾`D@D’ž†š@¦’´ŠD@DœžœŠDv2„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DààÆh`j¾`D@Dž†š¾žœ˜²D@D`Dv2„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D¤¦dfd¾ªÂäèD@Dðàæ¾êÂäèØÒèÊDv9„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D†¾„‚ªˆ¤‚¨ŠD@Drl``Dv7„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D†¾ˆ‚¨‚¾„’¨¦D@DpDv8„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D†¾žˆˆ¾ ‚¤’¨²D@D`Dv8„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D†¾ª¦Š¾ ‚¤’¨²D@D`Dv<„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D’ž¨² ŠD@D°’˜¾ª‚¤¨¾¬bDv<„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@Dª¦Š¾’œ¨Š¤¤ª ¨D@D¨¤ªŠDv-„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D˜Šˆæ¾h„ÒèD@Dðàæ¾ÎàÒÞDv;„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D˜Šˆæ¾h„ÒèD@D’ž¨² ŠD@D°’˜¾Ž ’ž¾¬bDv2„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D˜Šˆæ¾ ÞæÒèÒÞÜæD@Dðàæ¾ÎàÒÞDv@„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D˜Šˆæ¾ ÞæÒèÒÞÜæD@D’ž¨² ŠD@D°’˜¾Ž ’ž¾¬bDv9„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D¦ò悆Š¾†ÞÚàÂÆèŒØÂæÐD@Dðàæ¾æòæÂÆÊDvG„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¦ò悆Š¾†ÞÚàÂÆèŒØÂæÐD@D’ž¨² ŠD@D°’˜¾¦²¦‚†Š¾¬bDv+„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D¦¤‚šD@Dðàæ¾ÚÆоÊÚÆDv5„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¦¤‚šD@D’ž¨² ŠD@D°’˜¾Šš†¾¬bDv:„æÄ®ÒôttªàÈÂèʆÂÆÐÊ@DààÆh`j¾`D@D†‚†Š¾†‚œˆ’ˆ‚¨Š¦D@D¦¤‚švDv8„æÄ®ÒôttªàÈÂèʆÂÆÐÊ@DààÆh`j¾`D@D†¾†‚†Š¾„²¨Š¾¦’´ŠD@DblDv9„æÄ®ÒôttªàÈÂèʆÂÆÐÊ@DààÆh`j¾`D@D†¾ˆ†‚†Š¾„²¨Š¾¦’´ŠD@DblDv9„æÄ®ÒôttªàÈÂèʆÂÆÐÊ@DààÆh`j¾`D@Dˆ†‚†Š¾†ž¤Š˜’¦¨D@Dv¦¤‚šDv9„æÄ®ÒôttªàÈÂèʆÂÆÐÊ@DààÆh`j¾`D@D’†‚†Š¾†ž¤Š˜’¦¨D@Dv¦¤‚šDv:„æÄ®ÒôttªàÈÂèʆÂÆÐÊ@DààÆh`j¾`D@D’œ¦¨‚œ†Š¾œ‚šŠD@DààÆh`j¾`Dv/„æÄ®ÒôttªàÈÂèʦ®@D¦®¾ŽŠœŠ¤‚¨Š¾šŠš¨Š¦¨D@DŒ‚˜¦ŠDv1„æÄ®ÒôttªàÈÂèʦ®@D¦®¾ŽŠœŠ¤‚¨Š¾ Š¤’ ¨Š¦¨D@D¨¤ªŠDv)„æÄ®ÒôttªàÈÂèʦ®@D¦®¾ŽŠœŠ¤‚¨Š¾¦®‚  ¦D@DDv7„æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D’œ¦¨‚œ†Š¾œ‚šŠD@DààÆh`j¾`Dv0„æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D¦®¾„žž¨šŠšD@D¦¤‚šDv.„æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D¦®¾¦¨ˆ’œD@DœÞÜÊDv/„æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D¦®¾¦¨ˆžª¨D@DœÞÜÊDv@„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾ˆ‚¨‚¾’œ¦D@D¦¤‚šDvK„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾ˆ‚¨‚¾ ‚¤D@D†¾šŠš`¾„‚¦Š‚ˆˆ¤DvC„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾ ¤žŽ¤‚š¾’œ¦D@D¦¤‚šDvN„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾ ¤žŽ¤‚š¾ ‚¤D@D†¾šŠš`¾„‚¦Š‚ˆˆ¤DvA„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾¦¨‚†–¾’œ¦D@D¦¤‚šDvL„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾¦¨‚†–¾ ‚¤D@D†¾šŠš`¾„‚¦Š‚ˆˆ¤DvC„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾¬Š†¨ž¤¦¾’œ¦D@D¦¤‚šDvN„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾¬Š†¨ž¤¦¾ ‚¤D@D†¾šŠš`¾„‚¦Š‚ˆˆ¤Dv
\ No newline at end of file
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.make b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.make
deleted file mode 100644
index 492fe88..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.make
+++ /dev/null
@@ -1,269 +0,0 @@
-#################################################################

-# Makefile generated by Xilinx Platform Studio 

-# Project:C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\PPC405_FPU_Xilinx_Virtex4_GCC\system.xmp

-#

-# WARNING : This file will be re-generated every time a command

-# to run a make target is invoked. So, any changes made to this  

-# file manually, will be lost when make is invoked next. 

-#################################################################

-

-# Name of the Microprocessor system

-# The hardware specification of the system is in file :

-# C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\PPC405_FPU_Xilinx_Virtex4_GCC\system.mhs

-# The software specification of the system is in file :

-# C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\PPC405_FPU_Xilinx_Virtex4_GCC\system.mss

-

-include system_incl.make

-

-#################################################################

-# PHONY TARGETS

-#################################################################

-.PHONY: dummy

-.PHONY: netlistclean

-.PHONY: bitsclean

-.PHONY: simclean

-.PHONY: vpclean

-

-#################################################################

-# EXTERNAL TARGETS

-#################################################################

-all:

-	@echo "Makefile to build a Microprocessor system :"

-	@echo "Run make with any of the following targets"

-	@echo " "

-	@echo "  netlist  : Generates the netlist for the given MHS "

-	@echo "  bits     : Runs Implementation tools to generate the bitstream"

-	@echo " "

-	@echo "  libs     : Configures the sw libraries for this system"

-	@echo "  program  : Compiles the program sources for all the processor instances"

-	@echo " "

-	@echo "  init_bram: Initializes bitstream with BRAM data"

-	@echo "  ace      : Generate ace file from bitstream and elf"

-	@echo "  download : Downloads the bitstream onto the board"

-	@echo " "

-	@echo "  sim      : Generates HDL simulation models and runs simulator for chosen simulation mode"

-	@echo "  simmodel : Generates HDL simulation models for chosen simulation mode"

-	@echo "  behavioral_model : Generates behavioral HDL models with BRAM initialization"

-	@echo "  structural_model : Generates structural simulation HDL models with BRAM initialization"

-	@echo "  timing   : Generates timing simulation HDL models with BRAM initialization"

-	@echo "  vp       : Generates virtual platform model"

-	@echo " "

-	@echo "  netlistclean: Deletes netlist"

-	@echo "  bitsclean: Deletes bit, ncd, bmm files"

-	@echo "  hwclean  : Deletes implementation dir"

-	@echo "  libsclean: Deletes sw libraries"

-	@echo "  programclean: Deletes compiled ELF files"

-	@echo "  swclean  : Deletes sw libraries and ELF files"

-	@echo "  simclean : Deletes simulation dir"

-	@echo "  vpclean  : Deletes virtualplatform dir"

-	@echo "  clean    : Deletes all generated files/directories"

-	@echo " "

-	@echo "  make <target> : (Default)"

-	@echo "      Creates a Microprocessor system using default initializations"

-	@echo "      specified for each processor in MSS file"

-

-

-bits: $(SYSTEM_BIT)

-

-ace: $(SYSTEM_ACE)

-

-netlist: $(POSTSYN_NETLIST)

-

-libs: $(LIBRARIES)

-

-program: $(ALL_USER_ELF_FILES)

-

-download: $(DOWNLOAD_BIT) dummy

-	@echo "*********************************************"

-	@echo "Downloading Bitstream onto the target board"

-	@echo "*********************************************"

-	impact -batch etc/download.cmd

-

-init_bram: $(DOWNLOAD_BIT)

-

-sim: $(DEFAULT_SIM_SCRIPT)

-	cd simulation/behavioral; \

-	$(SIM_CMD)  &

-

-simmodel: $(DEFAULT_SIM_SCRIPT)

-

-behavioral_model: $(BEHAVIORAL_SIM_SCRIPT)

-

-structural_model: $(STRUCTURAL_SIM_SCRIPT)

-

-vp: $(VPEXEC)

-

-clean: hwclean libsclean programclean simclean vpclean

-	rm -f _impact.cmd

-	rm -f *.log

-

-hwclean: netlistclean bitsclean

-	rm -rf implementation synthesis xst hdl

-	rm -rf xst.srp $(SYSTEM).srp

-

-netlistclean:

-	rm -f $(POSTSYN_NETLIST)

-	rm -f platgen.log

-	rm -f $(BMM_FILE)

-

-bitsclean:

-	rm -f $(SYSTEM_BIT)

-	rm -f implementation/$(SYSTEM).ncd

-	rm -f implementation/$(SYSTEM)_bd.bmm 

-	rm -f implementation/$(SYSTEM)_map.ncd 

-

-simclean: 

-	rm -rf simulation/behavioral

-	rm -f simgen.log

-

-swclean: libsclean programclean

-	@echo ""

-

-libsclean: $(LIBSCLEAN_TARGETS)

-	rm -f libgen.log

-

-programclean: $(PROGRAMCLEAN_TARGETS)

-

-vpclean:

-	rm -rf virtualplatform

-	rm -f vpgen.log

-

-#################################################################

-# SOFTWARE PLATFORM FLOW

-#################################################################

-

-

-$(LIBRARIES): $(MHSFILE) $(MSSFILE) __xps/libgen.opt

-	@echo "*********************************************"

-	@echo "Creating software libraries..."

-	@echo "*********************************************"

-	libgen $(LIBGEN_OPTIONS) $(MSSFILE)

-

-

-ppc405_0_libsclean:

-	rm -rf ppc405_0/

-

-#################################################################

-# SOFTWARE APPLICATION RTOSDEMO

-#################################################################

-

-RTOSDemo_program: $(RTOSDEMO_OUTPUT) 

-

-$(RTOSDEMO_OUTPUT) : $(RTOSDEMO_SOURCES) $(RTOSDEMO_HEADERS) $(RTOSDEMO_LINKER_SCRIPT) \

-                    $(LIBRARIES) __xps/rtosdemo_compiler.opt

-	@mkdir -p $(RTOSDEMO_OUTPUT_DIR) 

-	$(RTOSDEMO_CC) $(RTOSDEMO_CC_OPT) $(RTOSDEMO_SOURCES) -o $(RTOSDEMO_OUTPUT) \

-	$(RTOSDEMO_OTHER_CC_FLAGS) $(RTOSDEMO_INCLUDES) $(RTOSDEMO_LIBPATH) \

-	$(RTOSDEMO_CFLAGS) $(RTOSDEMO_LFLAGS) 

-	$(RTOSDEMO_CC_SIZE) $(RTOSDEMO_OUTPUT) 

-	@echo ""

-

-RTOSDemo_programclean:

-	rm -f $(RTOSDEMO_OUTPUT) 

-

-#################################################################

-# BOOTLOOP ELF FILES

-#################################################################

-

-

-

-$(PPC405_0_BOOTLOOP): $(PPC405_BOOTLOOP)

-	@mkdir -p $(BOOTLOOP_DIR)

-	cp -f $(PPC405_BOOTLOOP) $(PPC405_0_BOOTLOOP)

-

-#################################################################

-# HARDWARE IMPLEMENTATION FLOW

-#################################################################

-

-

-$(BMM_FILE) \

-$(WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \

-                      $(CORE_STATE_DEVELOPMENT_FILES)

-	@echo "****************************************************"

-	@echo "Creating system netlist for hardware specification.."

-	@echo "****************************************************"

-	platgen $(PLATGEN_OPTIONS) $(MHSFILE)

-

-$(POSTSYN_NETLIST): $(WRAPPER_NGC_FILES)

-	@echo "Running synthesis..."

-	bash -c "cd synthesis; ./synthesis.sh"

-

-__xps/$(SYSTEM)_routed: $(FPGA_IMP_DEPENDENCY)

-	@echo "*********************************************"

-	@echo "Running Xilinx Implementation tools.."

-	@echo "*********************************************"

-	@cp -f $(UCF_FILE) implementation/$(SYSTEM).ucf

-	xilperl $(NON_CYG_XILINX_EDK_DIR)/data/fpga_impl/manage_fastruntime_opt.pl $(MANAGE_FASTRT_OPTIONS)

-	xflow -wd implementation -p $(DEVICE) -implement xflow.opt $(SYSTEM).ngc

-	touch __xps/$(SYSTEM)_routed

-

-$(SYSTEM_BIT): __xps/$(SYSTEM)_routed

-	xilperl $(NON_CYG_XILINX_EDK_DIR)/data/fpga_impl/observe_par.pl $(OBSERVE_PAR_OPTIONS) implementation/$(SYSTEM).par

-	@echo "*********************************************"

-	@echo "Running Bitgen.."

-	@echo "*********************************************"

-	@cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut

-	cd implementation; bitgen -w -f bitgen.ut $(SYSTEM)

-

-$(DOWNLOAD_BIT): $(SYSTEM_BIT) $(BRAMINIT_ELF_FILES) __xps/bitinit.opt

-	# @cp -f implementation/$(SYSTEM)_bd.bmm .

-	@echo "*********************************************"

-	@echo "Initializing BRAM contents of the bitstream"

-	@echo "*********************************************"

-	bitinit $(MHSFILE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) \

-	-bt $(SYSTEM_BIT) -o $(DOWNLOAD_BIT)

-	@rm -f $(SYSTEM)_bd.bmm

-

-$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(RTOSDEMO_OUTPUT) 

-	@echo "*********************************************"

-	@echo "Creating system ace file"

-	@echo "*********************************************"

-	xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(RTOSDEMO_OUTPUT)  -target ppc_hw  -ace $(SYSTEM_ACE)

-

-#################################################################

-# SIMULATION FLOW

-#################################################################

-

-

-################## BEHAVIORAL SIMULATION ##################

-

-$(BEHAVIORAL_SIM_SCRIPT): $(MHSFILE) __xps/simgen.opt \

-                          $(BRAMINIT_ELF_FILES)

-	@echo "*********************************************"

-	@echo "Creating behavioral simulation models..."

-	@echo "*********************************************"

-	simgen $(SIMGEN_OPTIONS) -m behavioral $(MHSFILE)

-

-################## STRUCTURAL SIMULATION ##################

-

-$(STRUCTURAL_SIM_SCRIPT): $(WRAPPER_NGC_FILES) __xps/simgen.opt \

-                          $(BRAMINIT_ELF_FILES)

-	@echo "*********************************************"

-	@echo "Creating structural simulation models..."

-	@echo "*********************************************"

-	simgen $(SIMGEN_OPTIONS) -sd implementation -m structural $(MHSFILE)

-

-

-################## TIMING SIMULATION ##################

-

-$(TIMING_SIM_SCRIPT): $(SYSTEM_BIT) __xps/simgen.opt \

-                      $(BRAMINIT_ELF_FILES)

-	@echo "*********************************************"

-	@echo "Creating timing simulation models..."

-	@echo "*********************************************"

-	simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE)

-

-#################################################################

-# VIRTUAL PLATFORM FLOW

-#################################################################

-

-

-$(VPEXEC): $(MHSFILE) __xps/vpgen.opt

-	@echo "****************************************************"

-	@echo "Creating virtual platform for hardware specification.."

-	@echo "****************************************************"

-	vpgen $(VPGEN_OPTIONS) $(MHSFILE)

-

-dummy:

-	@echo ""

-

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mhs b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mhs
deleted file mode 100644
index 640fae0..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mhs
+++ /dev/null
@@ -1,225 +0,0 @@
-

-# ##############################################################################

-# Created by Base System Builder Wizard for Xilinx EDK 10.1.01 Build EDK_K_SP1.3

-# Fri May 09 11:01:33 2008

-# Target Board:  Xilinx Virtex 4 ML403 Evaluation Platform Rev 1

-# Family:    virtex4

-# Device:    xc4vfx12

-# Package:   ff668

-# Speed Grade:  -10

-# Processor: ppc405_0

-# Processor clock frequency: 200.00 MHz

-# Bus clock frequency: 100.00 MHz

-# Total Off Chip Memory :   1 MB

-# - SRAM =   1 MB

-# ##############################################################################

- PARAMETER VERSION = 2.1.0

-

-

- PORT fpga_0_RS232_Uart_RX_pin = fpga_0_RS232_Uart_RX, DIR = I

- PORT fpga_0_RS232_Uart_TX_pin = fpga_0_RS232_Uart_TX, DIR = O

- PORT fpga_0_LEDs_4Bit_GPIO_IO_pin = fpga_0_LEDs_4Bit_GPIO_IO, DIR = IO, VEC = [0:3]

- PORT fpga_0_LEDs_Positions_GPIO_IO_pin = fpga_0_LEDs_Positions_GPIO_IO, DIR = IO, VEC = [0:4]

- PORT fpga_0_SysACE_CompactFlash_SysACE_CLK_pin = fpga_0_SysACE_CompactFlash_SysACE_CLK, DIR = I

- PORT fpga_0_SysACE_CompactFlash_SysACE_MPA_pin = fpga_0_SysACE_CompactFlash_SysACE_MPA, DIR = O, VEC = [6:1]

- PORT fpga_0_SysACE_CompactFlash_SysACE_MPD_pin = fpga_0_SysACE_CompactFlash_SysACE_MPD, DIR = IO, VEC = [15:0]

- PORT fpga_0_SysACE_CompactFlash_SysACE_CEN_pin = fpga_0_SysACE_CompactFlash_SysACE_CEN, DIR = O

- PORT fpga_0_SysACE_CompactFlash_SysACE_OEN_pin = fpga_0_SysACE_CompactFlash_SysACE_OEN, DIR = O

- PORT fpga_0_SysACE_CompactFlash_SysACE_WEN_pin = fpga_0_SysACE_CompactFlash_SysACE_WEN, DIR = O

- PORT fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin = fpga_0_SysACE_CompactFlash_SysACE_MPIRQ, DIR = I

- PORT fpga_0_SRAM_Mem_A_pin = fpga_0_SRAM_Mem_A, DIR = O, VEC = [9:29]

- PORT fpga_0_SRAM_Mem_BEN_pin = fpga_0_SRAM_Mem_BEN, DIR = O, VEC = [0:3]

- PORT fpga_0_SRAM_Mem_WEN_pin = fpga_0_SRAM_Mem_WEN, DIR = O

- PORT fpga_0_SRAM_Mem_DQ_pin = fpga_0_SRAM_Mem_DQ, DIR = IO, VEC = [0:31]

- PORT fpga_0_SRAM_Mem_OEN_pin = fpga_0_SRAM_Mem_OEN, DIR = O, VEC = [0:0]

- PORT fpga_0_SRAM_Mem_CEN_pin = fpga_0_SRAM_Mem_CEN, DIR = O, VEC = [0:0]

- PORT fpga_0_SRAM_Mem_ADV_LDN_pin = fpga_0_SRAM_Mem_ADV_LDN, DIR = O

- PORT fpga_0_SRAM_CLOCK = sys_clk_s, DIR = O

- PORT sys_clk_pin = dcm_clk_s, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000

- PORT sys_rst_pin = sys_rst_s, DIR = I, RST_POLARITY = 0, SIGIS = RST

-

-

-BEGIN ppc405_virtex4

- PARAMETER INSTANCE = ppc405_0

- PARAMETER HW_VER = 2.01.a

- PARAMETER C_FASTEST_PLB_CLOCK = DPLB0

- PARAMETER C_APU_CONTROL = 0b0000000000000001

- PARAMETER C_IDCR_BASEADDR = 0b0100000000

- PARAMETER C_IDCR_HIGHADDR = 0b0111111111

- BUS_INTERFACE JTAGPPC = jtagppc_0_0

- BUS_INTERFACE IPLB0 = plb

- BUS_INTERFACE DPLB0 = plb

- BUS_INTERFACE RESETPPC = ppc_reset_bus

- BUS_INTERFACE MFCB = fcb_v10_0

- PORT CPMC405CLOCK = proc_clk_s

- PORT EICC405EXTINPUTIRQ = EICC405EXTINPUTIRQ

-END

-

-BEGIN jtagppc_cntlr

- PARAMETER INSTANCE = jtagppc_0

- PARAMETER HW_VER = 2.01.a

- BUS_INTERFACE JTAGPPC0 = jtagppc_0_0

-END

-

-BEGIN plb_v46

- PARAMETER INSTANCE = plb

- PARAMETER C_DCR_INTFCE = 0

- PARAMETER C_NUM_CLK_PLB2OPB_REARB = 100

- PARAMETER HW_VER = 1.02.a

- PORT PLB_Clk = sys_clk_s

- PORT SYS_Rst = sys_bus_reset

-END

-

-BEGIN xps_uartlite

- PARAMETER INSTANCE = RS232_Uart

- PARAMETER HW_VER = 1.00.a

- PARAMETER C_BAUDRATE = 9600

- PARAMETER C_DATA_BITS = 8

- PARAMETER C_ODD_PARITY = 0

- PARAMETER C_USE_PARITY = 0

- PARAMETER C_SPLB_CLK_FREQ_HZ = 100000000

- PARAMETER C_BASEADDR = 0x84000000

- PARAMETER C_HIGHADDR = 0x8400ffff

- BUS_INTERFACE SPLB = plb

- PORT RX = fpga_0_RS232_Uart_RX

- PORT TX = fpga_0_RS232_Uart_TX

- PORT Interrupt = RS232_Uart_Interrupt

-END

-

-BEGIN xps_gpio

- PARAMETER INSTANCE = LEDs_4Bit

- PARAMETER HW_VER = 1.00.a

- PARAMETER C_GPIO_WIDTH = 4

- PARAMETER C_IS_DUAL = 0

- PARAMETER C_IS_BIDIR = 1

- PARAMETER C_ALL_INPUTS = 0

- PARAMETER C_BASEADDR = 0x81400000

- PARAMETER C_HIGHADDR = 0x8140ffff

- BUS_INTERFACE SPLB = plb

- PORT GPIO_IO = fpga_0_LEDs_4Bit_GPIO_IO

-END

-

-BEGIN xps_gpio

- PARAMETER INSTANCE = LEDs_Positions

- PARAMETER HW_VER = 1.00.a

- PARAMETER C_GPIO_WIDTH = 5

- PARAMETER C_IS_DUAL = 0

- PARAMETER C_IS_BIDIR = 1

- PARAMETER C_ALL_INPUTS = 0

- PARAMETER C_BASEADDR = 0x81420000

- PARAMETER C_HIGHADDR = 0x8142ffff

- BUS_INTERFACE SPLB = plb

- PORT GPIO_IO = fpga_0_LEDs_Positions_GPIO_IO

-END

-

-BEGIN xps_sysace

- PARAMETER INSTANCE = SysACE_CompactFlash

- PARAMETER HW_VER = 1.00.a

- PARAMETER C_MEM_WIDTH = 16

- PARAMETER C_BASEADDR = 0x83600000

- PARAMETER C_HIGHADDR = 0x8360ffff

- BUS_INTERFACE SPLB = plb

- PORT SysACE_CLK = fpga_0_SysACE_CompactFlash_SysACE_CLK

- PORT SysACE_MPA = fpga_0_SysACE_CompactFlash_SysACE_MPA & SysACE_CompactFlash_SysACE_MPA

- PORT SysACE_MPD = fpga_0_SysACE_CompactFlash_SysACE_MPD

- PORT SysACE_CEN = fpga_0_SysACE_CompactFlash_SysACE_CEN

- PORT SysACE_OEN = fpga_0_SysACE_CompactFlash_SysACE_OEN

- PORT SysACE_WEN = fpga_0_SysACE_CompactFlash_SysACE_WEN

- PORT SysACE_MPIRQ = fpga_0_SysACE_CompactFlash_SysACE_MPIRQ

-END

-

-BEGIN xps_mch_emc

- PARAMETER INSTANCE = SRAM

- PARAMETER HW_VER = 1.01.a

- PARAMETER C_MCH_PLB_CLK_PERIOD_PS = 10000

- PARAMETER C_NUM_BANKS_MEM = 1

- PARAMETER C_MAX_MEM_WIDTH = 32

- PARAMETER C_INCLUDE_NEGEDGE_IOREGS = 1

- PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1

- PARAMETER C_MEM0_WIDTH = 32

- PARAMETER C_SYNCH_MEM_0 = 1

- PARAMETER C_TCEDV_PS_MEM_0 = 0

- PARAMETER C_TWC_PS_MEM_0 = 0

- PARAMETER C_TAVDV_PS_MEM_0 = 0

- PARAMETER C_TWP_PS_MEM_0 = 0

- PARAMETER C_THZCE_PS_MEM_0 = 0

- PARAMETER C_TLZWE_PS_MEM_0 = 0

- PARAMETER C_MEM0_BASEADDR = 0xfff00000

- PARAMETER C_MEM0_HIGHADDR = 0xffffffff

- BUS_INTERFACE SPLB = plb

- PORT Mem_A = fpga_0_SRAM_Mem_A_split

- PORT Mem_BEN = fpga_0_SRAM_Mem_BEN

- PORT Mem_WEN = fpga_0_SRAM_Mem_WEN

- PORT Mem_DQ = fpga_0_SRAM_Mem_DQ

- PORT Mem_OEN = fpga_0_SRAM_Mem_OEN

- PORT Mem_CEN = fpga_0_SRAM_Mem_CEN

- PORT Mem_ADV_LDN = fpga_0_SRAM_Mem_ADV_LDN

- PORT RdClk = sys_clk_s

-END

-

-BEGIN util_bus_split

- PARAMETER INSTANCE = SRAM_util_bus_split_0

- PARAMETER HW_VER = 1.00.a

- PARAMETER C_SIZE_IN = 32

- PARAMETER C_LEFT_POS = 9

- PARAMETER C_SPLIT = 30

- PORT Sig = fpga_0_SRAM_Mem_A_split

- PORT Out1 = fpga_0_SRAM_Mem_A

-END

-

-BEGIN clock_generator

- PARAMETER INSTANCE = clock_generator_0

- PARAMETER HW_VER = 2.01.a

- PARAMETER C_EXT_RESET_HIGH = 1

- PARAMETER C_CLKIN_FREQ = 100000000

- PARAMETER C_CLKOUT0_FREQ = 200000000

- PARAMETER C_CLKOUT0_BUF = TRUE

- PARAMETER C_CLKOUT0_PHASE = 0

- PARAMETER C_CLKOUT0_GROUP = NONE

- PARAMETER C_CLKOUT1_FREQ = 100000000

- PARAMETER C_CLKOUT1_BUF = TRUE

- PARAMETER C_CLKOUT1_PHASE = 0

- PARAMETER C_CLKOUT1_GROUP = NONE

- PORT CLKOUT0 = proc_clk_s

- PORT CLKOUT1 = sys_clk_s

- PORT CLKIN = dcm_clk_s

- PORT LOCKED = Dcm_all_locked

- PORT RST = net_gnd

-END

-

-BEGIN proc_sys_reset

- PARAMETER INSTANCE = proc_sys_reset_0

- PARAMETER HW_VER = 2.00.a

- PARAMETER C_EXT_RESET_HIGH = 0

- BUS_INTERFACE RESETPPC0 = ppc_reset_bus

- PORT Slowest_sync_clk = sys_clk_s

- PORT Dcm_locked = Dcm_all_locked

- PORT Ext_Reset_In = sys_rst_s

- PORT Bus_Struct_Reset = sys_bus_reset

- PORT Peripheral_Reset = sys_periph_reset

-END

-

-BEGIN xps_intc

- PARAMETER INSTANCE = xps_intc_0

- PARAMETER HW_VER = 1.00.a

- PARAMETER C_BASEADDR = 0x81800000

- PARAMETER C_HIGHADDR = 0x8180ffff

- BUS_INTERFACE SPLB = plb

- PORT Irq = EICC405EXTINPUTIRQ

- PORT Intr = RS232_Uart_Interrupt

-END

-

-BEGIN fcb_v10

- PARAMETER INSTANCE = fcb_v10_0

- PARAMETER HW_VER = 1.00.a

- PORT FCB_CLK = proc_clk_s

- PORT SYS_RST = sys_bus_reset

-END

-

-BEGIN apu_fpu

- PARAMETER INSTANCE = apu_fpu_0

- PARAMETER HW_VER = 3.10.a

- BUS_INTERFACE SFCB = fcb_v10_0

- PORT FPU_CLK = sys_clk_s

-END

-

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mss b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mss
deleted file mode 100644
index 737c308..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.mss
+++ /dev/null
@@ -1,88 +0,0 @@
-

- PARAMETER VERSION = 2.2.0

-

-

-BEGIN OS

- PARAMETER OS_NAME = standalone

- PARAMETER OS_VER = 2.00.a

- PARAMETER PROC_INSTANCE = ppc405_0

-END

-

-

-BEGIN PROCESSOR

- PARAMETER DRIVER_NAME = cpu_ppc405

- PARAMETER DRIVER_VER = 1.10.a

- PARAMETER HW_INSTANCE = ppc405_0

- PARAMETER COMPILER = powerpc-eabi-gcc

- PARAMETER ARCHIVER = powerpc-eabi-ar

- PARAMETER CORE_CLOCK_FREQ_HZ = 200000000

-END

-

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = generic

- PARAMETER DRIVER_VER = 1.00.a

- PARAMETER HW_INSTANCE = jtagppc_0

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = uartlite

- PARAMETER DRIVER_VER = 1.13.a

- PARAMETER HW_INSTANCE = RS232_Uart

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = gpio

- PARAMETER DRIVER_VER = 2.12.a

- PARAMETER HW_INSTANCE = LEDs_4Bit

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = gpio

- PARAMETER DRIVER_VER = 2.12.a

- PARAMETER HW_INSTANCE = LEDs_Positions

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = sysace

- PARAMETER DRIVER_VER = 1.11.a

- PARAMETER HW_INSTANCE = SysACE_CompactFlash

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = emc

- PARAMETER DRIVER_VER = 2.00.a

- PARAMETER HW_INSTANCE = SRAM

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = generic

- PARAMETER DRIVER_VER = 1.00.a

- PARAMETER HW_INSTANCE = SRAM_util_bus_split_0

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = generic

- PARAMETER DRIVER_VER = 1.00.a

- PARAMETER HW_INSTANCE = clock_generator_0

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = generic

- PARAMETER DRIVER_VER = 1.00.a

- PARAMETER HW_INSTANCE = proc_sys_reset_0

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = intc

- PARAMETER DRIVER_VER = 1.11.a

- PARAMETER HW_INSTANCE = xps_intc_0

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = apu_fpu

- PARAMETER DRIVER_VER = 2.10.a

- PARAMETER HW_INSTANCE = apu_fpu_0

-END

-

-

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.xmp b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.xmp
deleted file mode 100644
index 4a7a93c..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system.xmp
+++ /dev/null
@@ -1,74 +0,0 @@
-#Please do not modify this file by hand

-XmpVersion: 10.1.01

-VerMgmt: 10.1.01

-IntStyle: default

-MHS File: system.mhs

-MSS File: system.mss

-NPL File: projnav/system.ise

-Architecture: virtex4

-Device: xc4vfx12

-Package: ff668

-SpeedGrade: -10

-UserCmd1: 

-UserCmd1Type: 0

-UserCmd2: 

-UserCmd2Type: 0

-TopInst: system_i

-GenSimTB: 0

-InsertNoPads: 0

-WarnForEAArch: 1

-HdlLang: VHDL

-Simulator: mti

-SimModel: BEHAVIORAL

-MixLangSim: 1

-UcfFile: data/system.ucf

-FpgaImpMode: 0

-EnableParTimingError: 1

-EnableResetOptimization: 0

-ShowLicenseDialog: 1

-ICacheAddr: SRAM,

-DCacheAddr: SRAM,

-Processor: ppc405_0

-BootLoop: 1

-XmdStub: 0

-SwProj: RTOSDemo

-Processor: ppc405_0

-Executable: RTOSDemo/executable.elf

-Source: RTOSDemo/../../Common/Minimal/BlockQ.c

-Source: RTOSDemo/../../Common/Minimal/blocktim.c

-Source: RTOSDemo/../../Common/Minimal/comtest.c

-Source: RTOSDemo/../../Common/Minimal/countsem.c

-Source: RTOSDemo/../../Common/Minimal/death.c

-Source: RTOSDemo/../../Common/Minimal/dynamic.c

-Source: RTOSDemo/../../Common/Minimal/flash.c

-Source: RTOSDemo/../../Common/Minimal/GenQTest.c

-Source: RTOSDemo/../../Common/Minimal/integer.c

-Source: RTOSDemo/../../Common/Minimal/QPeek.c

-Source: RTOSDemo/../../Common/Minimal/recmutex.c

-Source: RTOSDemo/../../Common/Minimal/semtest.c

-Source: RTOSDemo/../../../Source/tasks.c

-Source: RTOSDemo/../../../Source/list.c

-Source: RTOSDemo/../../../Source/queue.c

-Source: RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/port.c

-Source: RTOSDemo/main.c

-Source: RTOSDemo/serial/serial.c

-Source: RTOSDemo/partest/partest.c

-Source: RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/portasm.S

-Source: RTOSDemo/../../../Source/portable/MemMang/heap_2.c

-Source: RTOSDemo/flop/flop.c

-Source: RTOSDemo/flop/flop-reg-test.c

-Header: RTOSDemo/FreeRTOSConfig.h

-DefaultInit: EXECUTABLE

-InitBram: 0

-Active: 1

-CompilerOptLevel: 0

-GlobPtrOpt: 0

-DebugSym: 1

-ProfileFlag: 0

-ProgStart: 

-StackSize: 

-HeapSize: 

-LinkerScript: RTOSDemo/RTOSDemo_linker_script.ld

-ProgCCFlags: -I./RTOSDemo/flop -I../../Source/portable/GCC/PPC405_Xilinx -I./ppc405_0/include/  -IRTOSDemo/   -I. -I./RTOSDemo/ -I../Common/include/ -I../../Source/include/ -I./ppc405_0/include/ -I./ppc405_0/include -D GCC_PPC405 -mregnames

-CompileInXps: 1

-NonXpsApp: 0

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system_incl.make b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system_incl.make
deleted file mode 100644
index 7f55869..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/system_incl.make
+++ /dev/null
@@ -1,144 +0,0 @@
-#################################################################

-# Makefile generated by Xilinx Platform Studio 

-# Project:C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\PPC405_FPU_Xilinx_Virtex4_GCC\system.xmp

-#

-# WARNING : This file will be re-generated every time a command

-# to run a make target is invoked. So, any changes made to this  

-# file manually, will be lost when make is invoked next. 

-#################################################################

-

-XILINX_EDK_DIR = /cygdrive/c/devtools/Xilinx/10.1/EDK

-NON_CYG_XILINX_EDK_DIR = C:/devtools/Xilinx/10.1/EDK

-

-SYSTEM = system

-

-MHSFILE = system.mhs

-

-MSSFILE = system.mss

-

-FPGA_ARCH = virtex4

-

-DEVICE = xc4vfx12ff668-10

-

-LANGUAGE = vhdl

-

-SEARCHPATHOPT = 

-

-SUBMODULE_OPT = 

-

-PLATGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT)

-

-LIBGEN_OPTIONS = -mhs $(MHSFILE) -p $(DEVICE) $(SEARCHPATHOPT)

-

-VPGEN_OPTIONS = -p $(DEVICE) $(SEARCHPATHOPT)

-

-MANAGE_FASTRT_OPTIONS = -reduce_fanout no

-

-OBSERVE_PAR_OPTIONS = -error yes

-

-RTOSDEMO_OUTPUT_DIR = RTOSDemo

-RTOSDEMO_OUTPUT = $(RTOSDEMO_OUTPUT_DIR)/executable.elf

-

-MICROBLAZE_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop.elf

-PPC405_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc405/ppc_bootloop.elf

-PPC440_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc440/ppc440_bootloop.elf

-BOOTLOOP_DIR = bootloops

-

-PPC405_0_BOOTLOOP = $(BOOTLOOP_DIR)/ppc405_0.elf

-

-BRAMINIT_ELF_FILES =  

-BRAMINIT_ELF_FILE_ARGS =  

-

-ALL_USER_ELF_FILES = $(RTOSDEMO_OUTPUT) 

-

-SIM_CMD = vsim

-

-BEHAVIORAL_SIM_SCRIPT = simulation/behavioral/$(SYSTEM)_setup.do

-

-STRUCTURAL_SIM_SCRIPT = simulation/structural/$(SYSTEM)_setup.do

-

-TIMING_SIM_SCRIPT = simulation/timing/$(SYSTEM)_setup.do

-

-DEFAULT_SIM_SCRIPT = $(BEHAVIORAL_SIM_SCRIPT)

-

-MIX_LANG_SIM_OPT = -mixed yes

-

-SIMGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) $(MIX_LANG_SIM_OPT)  -s mti -X C:/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/ -E C:/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/

-

-

-LIBRARIES =  \

-       ppc405_0/lib/libxil.a 

-VPEXEC = virtualplatform/vpexec.exe

-

-LIBSCLEAN_TARGETS = ppc405_0_libsclean 

-

-PROGRAMCLEAN_TARGETS = RTOSDemo_programclean 

-

-CORE_STATE_DEVELOPMENT_FILES = 

-

-WRAPPER_NGC_FILES = implementation/ppc405_0_wrapper.ngc \
-implementation/jtagppc_0_wrapper.ngc \
-implementation/plb_wrapper.ngc \
-implementation/rs232_uart_wrapper.ngc \
-implementation/leds_4bit_wrapper.ngc \
-implementation/leds_positions_wrapper.ngc \
-implementation/sysace_compactflash_wrapper.ngc \
-implementation/sram_wrapper.ngc \
-implementation/sram_util_bus_split_0_wrapper.ngc \
-implementation/clock_generator_0_wrapper.ngc \
-implementation/proc_sys_reset_0_wrapper.ngc \
-implementation/xps_intc_0_wrapper.ngc \
-implementation/fcb_v10_0_wrapper.ngc \
-implementation/apu_fpu_0_wrapper.ngc

-

-POSTSYN_NETLIST = implementation/$(SYSTEM).ngc

-

-SYSTEM_BIT = implementation/$(SYSTEM).bit

-

-DOWNLOAD_BIT = implementation/download.bit

-

-SYSTEM_ACE = implementation/$(SYSTEM).ace

-

-UCF_FILE = data/system.ucf

-

-BMM_FILE = implementation/$(SYSTEM).bmm

-

-BITGEN_UT_FILE = etc/bitgen.ut

-

-XFLOW_OPT_FILE = etc/fast_runtime.opt

-XFLOW_DEPENDENCY = __xps/xpsxflow.opt $(XFLOW_OPT_FILE)

-

-XPLORER_DEPENDENCY = __xps/xplorer.opt

-XPLORER_OPTIONS = -p $(DEVICE) -uc $(SYSTEM).ucf -bm $(SYSTEM).bmm -max_runs 7

-

-FPGA_IMP_DEPENDENCY = $(BMM_FILE) $(POSTSYN_NETLIST) $(UCF_FILE) $(BITGEN_UT_FILE) $(XFLOW_DEPENDENCY)

-

-#################################################################

-# SOFTWARE APPLICATION RTOSDEMO

-#################################################################

-

-RTOSDEMO_SOURCES = RTOSDemo/../../Common/Minimal/BlockQ.c RTOSDemo/../../Common/Minimal/blocktim.c RTOSDemo/../../Common/Minimal/comtest.c RTOSDemo/../../Common/Minimal/countsem.c RTOSDemo/../../Common/Minimal/death.c RTOSDemo/../../Common/Minimal/dynamic.c RTOSDemo/../../Common/Minimal/flash.c RTOSDemo/../../Common/Minimal/GenQTest.c RTOSDemo/../../Common/Minimal/integer.c RTOSDemo/../../Common/Minimal/QPeek.c RTOSDemo/../../Common/Minimal/recmutex.c RTOSDemo/../../Common/Minimal/semtest.c RTOSDemo/../../../Source/tasks.c RTOSDemo/../../../Source/list.c RTOSDemo/../../../Source/queue.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/port.c RTOSDemo/main.c RTOSDemo/serial/serial.c RTOSDemo/partest/partest.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/portasm.S RTOSDemo/../../../Source/portable/MemMang/heap_2.c RTOSDemo/flop/flop.c RTOSDemo/flop/flop-reg-test.c

-

-RTOSDEMO_HEADERS = RTOSDemo/FreeRTOSConfig.h 

-

-RTOSDEMO_CC = powerpc-eabi-gcc

-RTOSDEMO_CC_SIZE = powerpc-eabi-size

-RTOSDEMO_CC_OPT = -O0

-RTOSDEMO_CFLAGS = -I./RTOSDemo/flop -I../../Source/portable/GCC/PPC405_Xilinx -I./ppc405_0/include/  -IRTOSDemo/   -I. -I./RTOSDemo/ -I../Common/include/ -I../../Source/include/ -I./ppc405_0/include/ -I./ppc405_0/include -D GCC_PPC405 -mregnames

-RTOSDEMO_CC_SEARCH = # -B

-RTOSDEMO_LIBPATH = -L./ppc405_0/lib/ # -L

-RTOSDEMO_INCLUDES = -I./ppc405_0/include/  -IRTOSDemo/ # -I

-RTOSDEMO_LFLAGS = # -l

-RTOSDEMO_LINKER_SCRIPT = RTOSDemo/RTOSDemo_linker_script.ld

-RTOSDEMO_LINKER_SCRIPT_FLAG = -Wl,-T -Wl,$(RTOSDEMO_LINKER_SCRIPT) 

-RTOSDEMO_CC_DEBUG_FLAG =  -g 

-RTOSDEMO_CC_PROFILE_FLAG = # -pg

-RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi

-RTOSDEMO_CC_INFERRED_FLAGS= -mfpu=sp_full 

-RTOSDEMO_CC_START_ADDR_FLAG=  #  # -Wl,-defsym -Wl,_START_ADDR=

-RTOSDEMO_CC_STACK_SIZE_FLAG=  #  # -Wl,-defsym -Wl,_STACK_SIZE=

-RTOSDEMO_CC_HEAP_SIZE_FLAG=  #  # -Wl,-defsym -Wl,_HEAP_SIZE=

-RTOSDEMO_OTHER_CC_FLAGS= $(RTOSDEMO_CC_GLOBPTR_FLAG)  \

-                  $(RTOSDEMO_CC_START_ADDR_FLAG) $(RTOSDEMO_CC_STACK_SIZE_FLAG) $(RTOSDEMO_CC_HEAP_SIZE_FLAG)  \

-                  $(RTOSDEMO_CC_INFERRED_FLAGS)  \

-                  $(RTOSDEMO_LINKER_SCRIPT_FLAG) $(RTOSDEMO_CC_DEBUG_FLAG) $(RTOSDEMO_CC_PROFILE_FLAG) 

diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/wizlog b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/wizlog
deleted file mode 100644
index 3f4f483..0000000
--- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/wizlog
+++ /dev/null
@@ -1,3 +0,0 @@
-WARNING:MDT - ppc405_virtex4 (ppc405_0) -

-   C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\PPC405_FPU_Xilinx_Virtex4_GCC\dump.mhs

-   line 28 - ADDRESS specified by PARAMETER C_IDCR_BASEADDR is ignored
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
deleted file mode 100644
index f2072a2..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-#ifndef FREERTOS_CONFIG_H

-#define FREERTOS_CONFIG_H

-

-/*-----------------------------------------------------------

- * Application specific definitions.

- *

- * These definitions should be adjusted for your particular hardware and

- * application requirements.

- *

- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE

- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. 

- *

- * See http://www.freertos.org/a00110.html.

- *----------------------------------------------------------*/

-

-#define configUSE_PREEMPTION			1

-#define configUSE_IDLE_HOOK				0

-#define configUSE_TICK_HOOK				0

-#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 250 )

-#define configCPU_CLOCK_HZ				( ( unsigned long ) 200000000 )	/* Clock setup from start.asm in the demo application. */

-#define configTICK_RATE_HZ				( (TickType_t) 1000 )

-#define configMAX_PRIORITIES			( 6 )

-#define configTOTAL_HEAP_SIZE			( (size_t) (80 * 1024) )

-#define configMAX_TASK_NAME_LEN			( 20 )

-#define configUSE_16_BIT_TICKS			0

-#define configIDLE_SHOULD_YIELD			1

-#define configUSE_MUTEXES				1

-#define configUSE_TRACE_FACILITY		0

-#define configCHECK_FOR_STACK_OVERFLOW	2

-#define configUSE_COUNTING_SEMAPHORES	1

-#define configUSE_APPLICATION_TASK_TAG	1

-#define configUSE_FPU					0

-

-

-/* Co-routine definitions. */

-#define configUSE_CO_ROUTINES			0

-#define configMAX_CO_ROUTINE_PRIORITIES ( 4 )

-

-/* Set the following definitions to 1 to include the API function, or zero

-to exclude the API function. */

-#define INCLUDE_vTaskPrioritySet			1

-#define INCLUDE_uxTaskPriorityGet			1

-#define INCLUDE_vTaskDelete					1

-#define INCLUDE_vTaskCleanUpResources		1

-#define INCLUDE_vTaskSuspend				1

-#define INCLUDE_vResumeFromISR				1

-#define INCLUDE_vTaskDelayUntil				1

-#define INCLUDE_vTaskDelay					1

-#define INCLUDE_xTaskGetSchedulerState		1

-#define INCLUDE_xTaskGetCurrentTaskHandle	1

-#define INCLUDE_uxTaskGetStackHighWaterMark	1

-#define configUSE_RECURSIVE_MUTEXES			1

-

-

-#if configUSE_FPU == 1

-	/* Include the header that define the traceTASK_SWITCHED_IN() and

-	traceTASK_SWITCHED_OUT() macros to save and restore the floating

-	point registers for tasks that have requested this behaviour. */

-	#include "FPU_Macros.h"

-#endif

-

-#endif /* FREERTOS_CONFIG_H */

-

-

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld
deleted file mode 100644
index 0a5bdac..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/RTOSDemo_linker_script.ld
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************/

-/*                                                                 */

-/* This file is automatically generated by linker script generator.*/

-/*                                                                 */

-/* Version: Xilinx EDK 10.1.01 EDK_K_SP1.3                                */

-/*                                                                 */

-/* Copyright (c) 2004 Xilinx, Inc.  All rights reserved.           */

-/*                                                                 */

-/* Description : PowerPC405 Linker Script                          */

-/*                                                                 */

-/*******************************************************************/

-

-_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x400;

-_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x100;

-

-/* Define Memories in the system */

-

-MEMORY

-{

-   SRAM_C_MEM0_BASEADDR : ORIGIN = 0xFFF00000, LENGTH = 0x000FFFEC

-}

-

-/* Specify the default entry point to the program */

-

-ENTRY(_boot)

-STARTUP(boot.o)

-

-/* Define the sections, and where they are mapped in memory */

-

-SECTIONS

-{

-.vectors : {

-   __vectors_start = .;

-   *(.vectors)

-   __vectors_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.text : {

-   *(.text)

-   *(.text.*)

-   *(.gnu.linkonce.t.*)

-} > SRAM_C_MEM0_BASEADDR

-

-.init : {

-   KEEP (*(.init))

-} > SRAM_C_MEM0_BASEADDR

-

-.fini : {

-   KEEP (*(.fini))

-} > SRAM_C_MEM0_BASEADDR

-

-.rodata : {

-   __rodata_start = .;

-   *(.rodata)

-   *(.rodata.*)

-   *(.gnu.linkonce.r.*)

-   __rodata_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.sdata2 : {

-   __sdata2_start = .;

-   *(.sdata2)

-   *(.sdata2.*)

-   *(.gnu.linkonce.s2.*)

-   __sdata2_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.sbss2 : {

-   __sbss2_start = .;

-   *(.sbss2)

-   *(.sbss2.*)

-   *(.gnu.linkonce.sb2.*)

-   __sbss2_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.data : {

-   __data_start = .;

-   *(.data)

-   *(.data.*)

-   *(.gnu.linkonce.d.*)

-   __data_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.got : {

-   *(.got)

-} > SRAM_C_MEM0_BASEADDR

-

-.got1 : {

-   *(.got1)

-} > SRAM_C_MEM0_BASEADDR

-

-.got2 : {

-   *(.got2)

-} > SRAM_C_MEM0_BASEADDR

-

-.ctors : {

-   __CTOR_LIST__ = .;

-   ___CTORS_LIST___ = .;

-   KEEP (*crtbegin.o(.ctors))

-   KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))

-   KEEP (*(SORT(.ctors.*)))

-   KEEP (*(.ctors))

-   __CTOR_END__ = .;

-   ___CTORS_END___ = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.dtors : {

-   __DTOR_LIST__ = .;

-   ___DTORS_LIST___ = .;

-   KEEP (*crtbegin.o(.dtors))

-   KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))

-   KEEP (*(SORT(.dtors.*)))

-   KEEP (*(.dtors))

-   __DTOR_END__ = .;

-   ___DTORS_END___ = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.fixup : {

-   __fixup_start = .;

-   *(.fixup)

-   __fixup_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.eh_frame : {

-   *(.eh_frame)

-} > SRAM_C_MEM0_BASEADDR

-

-.jcr : {

-   *(.jcr)

-} > SRAM_C_MEM0_BASEADDR

-

-.gcc_except_table : {

-   *(.gcc_except_table)

-} > SRAM_C_MEM0_BASEADDR

-

-.sdata : {

-   __sdata_start = .;

-   *(.sdata)

-   *(.sdata.*)

-   *(.gnu.linkonce.s.*)

-   __sdata_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.sbss : {

-   __sbss_start = .;

-   *(.sbss)

-   *(.sbss.*)

-   *(.gnu.linkonce.sb.*)

-   __sbss_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.tdata : {

-   __tdata_start = .;

-   *(.tdata)

-   *(.tdata.*)

-   *(.gnu.linkonce.td.*)

-   __tdata_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.tbss : {

-   __tbss_start = .;

-   *(.tbss)

-   *(.tbss.*)

-   *(.gnu.linkonce.tb.*)

-   __tbss_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.bss : {

-   __bss_start = .;

-   *(.bss)

-   *(.bss.*)

-   *(.gnu.linkonce.b.*)

-   *(COMMON)

-   . = ALIGN(4);

-   __bss_end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.boot0 0xFFFFFFEC : {

-   __boot0_start = .;

-   *(.boot0)

-   __boot0_end = .;

-} 

-

-.boot 0xFFFFFFFC : {

-   __boot_start = .;

-   *(.boot)

-   __boot_end = .;

-} 

-

-/* Generate Stack and Heap Sections */

-

-.stack : {

-   _stack_end = .;

-   . += _STACK_SIZE;

-   . = ALIGN(16);

-   __stack = .;

-} > SRAM_C_MEM0_BASEADDR

-

-.heap : {

-   . = ALIGN(16);

-   _heap_start = .;

-   . += _HEAP_SIZE;

-   . = ALIGN(16);

-   _heap_end = .;

-   _end = .;

-} > SRAM_C_MEM0_BASEADDR

-

-}

-

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c
deleted file mode 100644
index 1d2d19d..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c
+++ /dev/null
@@ -1,264 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-/*

- * Tests the floating point context save and restore mechanism.

- *

- * Two tasks are created - each of which is allocated a buffer of 

- * portNO_FLOP_REGISTERS_TO_SAVE 32bit variables into which the flop context

- * of the task is saved when the task is switched out, and from which the

- * flop context of the task is restored when the task is switch in.  Prior to 

- * the tasks being created each position in the two buffers is filled with a 

- * unique value - this way the flop context of each task is different.

- *

- * The two test tasks never block so are always in either the Running or

- * Ready state.  They execute at the lowest priority so will get pre-empted

- * regularly, although the yield frequently so will not get much execution

- * time.  The lack of execution time is not a problem as its only the 

- * switching in and out that is being tested.

- *

- * Whenever a task is moved from the Ready to the Running state its flop 

- * context will be loaded from the buffer, but while the task is in the

- * Running state the buffer is not used and can contain any value - in this

- * case and for test purposes the task itself clears the buffer to zero.  

- * The next time the task is moved out of the Running state into the

- * Ready state the flop context will once more get saved to the buffer - 

- * overwriting the zeros.

- *

- * Therefore whenever the task is not in the Running state its buffer contains

- * the most recent values of its floating point registers - the zeroing out

- * of the buffer while the task was executing being used to ensure the values 

- * the buffer contains are not stale.

- *

- * When neither test task is in the Running state the buffers should contain

- * the unique values allocated before the tasks were created.  If so then

- * the floating point context has been maintained.  This check is performed

- * by the 'check' task (defined in main.c) by calling 

- * xAreFlopRegisterTestsStillRunning().

- *

- * The test tasks also increment a value each time they execute.

- * xAreFlopRegisterTestsStillRunning() also checks that this value has changed

- * since it last ran to ensure the test tasks are still getting processing time.

- */

-

-/* Standard includes files. */

-#include <string.h>

-

-/* Scheduler include files. */

-#include "FreeRTOS.h"

-#include "task.h"

-

-/*-----------------------------------------------------------*/

-

-#define flopNUMBER_OF_TASKS		2

-#define flopSTART_VALUE ( 0x1 )

-

-/*-----------------------------------------------------------*/

-

-/* The two test tasks as described at the top of this file. */

-static void vFlopTest1( void *pvParameters );

-static void vFlopTest2( void *pvParameters );

-

-/*-----------------------------------------------------------*/

-

-/* Buffers into which the flop registers will be saved.  There is a buffer for 

-both tasks. */

-static volatile unsigned long ulFlopRegisters[ flopNUMBER_OF_TASKS ][ portNO_FLOP_REGISTERS_TO_SAVE ];

-

-/* Variables that are incremented by the tasks to indicate that they are still

-running. */

-static volatile unsigned long ulFlop1CycleCount = 0, ulFlop2CycleCount = 0;

-

-/*-----------------------------------------------------------*/

-

-void vStartFlopRegTests( void )

-{

-TaskHandle_t xTaskJustCreated;

-unsigned portBASE_TYPE x, y, z = flopSTART_VALUE;

-

-	/* Fill the arrays into which the flop registers are to be saved with 

-	known values.  These are the values that will be written to the flop

-	registers when the tasks start, and as the tasks do not perform any

-	flop operations the values should never change.  Each position in the

-	buffer contains a different value so the flop context of each task

-	will be different. */

-	for( x = 0; x < flopNUMBER_OF_TASKS; x++ )

-	{

-		for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1); y++ )

-		{

-			ulFlopRegisters[ x ][ y ] = z;

-			z++;

-		}

-	}

-

-

-	/* Create the first task. */

-	xTaskCreate( vFlopTest1, "flop1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xTaskJustCreated );

-

-	/* The task	tag value is a value that can be associated with a task, but 

-	is not used by the scheduler itself.  Its use is down to the application so

-	it makes a convenient place in this case to store the pointer to the buffer

-	into which the flop context of the task will be stored.  The first created

-	task uses ulFlopRegisters[ 0 ], the second ulFlopRegisters[ 1 ]. */

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 0 ][ 0 ] ) );

-

-	/* Do the same for the second task. */

-	xTaskCreate( vFlopTest2, "flop2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xTaskJustCreated );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 1 ][ 0 ] ) );

-}

-/*-----------------------------------------------------------*/

-

-static void vFlopTest1( void *pvParameters )

-{

-	/* Just to remove compiler warning. */

-	( void ) pvParameters;

-

-	for( ;; )

-	{

-		/* The values from the buffer should have now been written to the flop

-		registers.  Clear the buffer to ensure the same values then get written

-		back the next time the task runs.  Being preempted during this memset

-		could cause the test to fail, hence the critical section. */

-		portENTER_CRITICAL();

-			memset( ( void * ) ulFlopRegisters[ 0 ], 0x00, ( portNO_FLOP_REGISTERS_TO_SAVE * sizeof( unsigned portBASE_TYPE ) ) );

-		portEXIT_CRITICAL();

-

-		/* We don't have to do anything other than indicate that we are 

-		still running. */

-		ulFlop1CycleCount++;

-		taskYIELD();

-	}

-}

-/*-----------------------------------------------------------*/

-

-static void vFlopTest2( void *pvParameters )

-{

-	/* Just to remove compiler warning. */

-	( void ) pvParameters;

-

-	for( ;; )

-	{

-		/* The values from the buffer should have now been written to the flop

-		registers.  Clear the buffer to ensure the same values then get written

-		back the next time the task runs. */

-		portENTER_CRITICAL();

-			memset( ( void * ) ulFlopRegisters[ 1 ], 0x00, ( portNO_FLOP_REGISTERS_TO_SAVE * sizeof( unsigned portBASE_TYPE ) ) );

-		portEXIT_CRITICAL();

-

-		/* We don't have to do anything other than indicate that we are 

-		still running. */

-		ulFlop2CycleCount++;

-		taskYIELD();

-	}

-}

-/*-----------------------------------------------------------*/

-

-portBASE_TYPE xAreFlopRegisterTestsStillRunning( void )

-{

-portBASE_TYPE xReturn = pdPASS;

-unsigned portBASE_TYPE x, y, z = flopSTART_VALUE;

-static unsigned long ulLastFlop1CycleCount = 0, ulLastFlop2CycleCount = 0;

-

-	/* Called from the 'check' task.

-	

-	The flop tasks cannot be currently running, check their saved registers

-	are as expected.  The tests tasks do not perform any flop operations so

-	their registers should be as per their initial setting. */

-	for( x = 0; x < flopNUMBER_OF_TASKS; x++ )

-	{

-		for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1 ); y++ )

-		{

-			if( ulFlopRegisters[ x ][ y ] != z )

-			{

-				xReturn = pdFAIL;

-				break;

-			}

-

-			z++;

-		}

-	}

-

-	/* Check both tasks have actually been swapped in and out since this function

-	last executed. */

-	if( ulFlop1CycleCount == ulLastFlop1CycleCount )

-	{

-		xReturn = pdFAIL;

-	}

-

-	if( ulFlop2CycleCount == ulLastFlop2CycleCount )

-	{

-		xReturn = pdFAIL;

-	}

-

-	ulLastFlop1CycleCount = ulFlop1CycleCount;

-	ulLastFlop2CycleCount = ulFlop2CycleCount;

-

-	return xReturn;

-}

-

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h
deleted file mode 100644
index ee587f0..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-#ifndef FLOP_REG_TEST_H

-#define FLOP_REG_TEST_H

-

-void vStartFlopRegTests( void );

-portBASE_TYPE xAreFlopRegisterTestsStillRunning( void );

-

-#endif

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c
deleted file mode 100644
index 32b4485..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c
+++ /dev/null
@@ -1,420 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-/*

- * Creates eight tasks, each of which loops continuously performing a

- * floating point calculation.

- *

- * All the tasks run at the idle priority and never block or yield.  This causes 

- * all eight tasks to time slice with the idle task.  Running at the idle priority 

- * means that these tasks will get pre-empted any time another task is ready to run

- * or a time slice occurs.  More often than not the pre-emption will occur mid 

- * calculation, creating a good test of the schedulers context switch mechanism - a 

- * calculation producing an unexpected result could be a symptom of a corruption in 

- * the context of a task.

- *

- * This file demonstrates the use of the task tag and traceTASK_SWITCHED_IN and

- * traceTASK_SWITCHED_OUT macros to save and restore the floating point context.

- */

-

-#include <stdlib.h>

-#include <math.h>

-

-/* Scheduler include files. */

-#include "FreeRTOS.h"

-#include "task.h"

-

-/* Demo program include files. */

-#include "flop.h"

-

-/* Misc. definitions. */

-#define mathSTACK_SIZE		configMINIMAL_STACK_SIZE

-#define mathNUMBER_OF_TASKS  ( 8 )

-

-/* Four tasks, each of which performs a different floating point calculation.  

-Each of the four is created twice. */

-static portTASK_FUNCTION_PROTO( vCompetingMathTask1, pvParameters );

-static portTASK_FUNCTION_PROTO( vCompetingMathTask2, pvParameters );

-static portTASK_FUNCTION_PROTO( vCompetingMathTask3, pvParameters );

-static portTASK_FUNCTION_PROTO( vCompetingMathTask4, pvParameters );

-

-/* These variables are used to check that all the tasks are still running.  If a 

-task gets a calculation wrong it will stop incrementing its check variable. */

-static volatile unsigned short usTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };

-

-/* Buffers into which the flop registers will be saved.  There is a buffer for 

-each task created within this file.  Zeroing out this array is the normal and

-safe option as this will cause the task to start with all zeros in its flop

-context. */

-static unsigned long ulFlopRegisters[ mathNUMBER_OF_TASKS ][ portNO_FLOP_REGISTERS_TO_SAVE ];

-

-/*-----------------------------------------------------------*/

-

-void vStartMathTasks( unsigned portBASE_TYPE uxPriority )

-{

-TaskHandle_t xTaskJustCreated;

-portBASE_TYPE x, y;

-

-	/* Place known values into the buffers into which the flop registers are 

-	to be saved.  This is for debug purposes only, it is not normally

-	required.  The last position in each array is left at zero as the status

-	register will be loaded from there. 

-	

-	It is intended that these values can be viewed being loaded into the

-	flop registers when a task is started - however the Insight debugger

-	does not seem to want to show the flop register values. */

-	for( x = 0; x < mathNUMBER_OF_TASKS; x++ )

-	{

-		for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1 ); y++ )

-		{

-			ulFlopRegisters[ x ][ y ] = ( x + 1 );

-		}

-	}

-

-	/* Create the first task - passing it the address of the check variable

-	that it is going to increment.  This check variable is used as an 

-	indication that the task is still running. */

-	xTaskCreate( vCompetingMathTask1, "Math1", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 0 ] ), uxPriority, &xTaskJustCreated );

-

-	/* The task	tag value is a value that can be associated with a task, but 

-	is not used by the scheduler itself.  Its use is down to the application so

-	it makes a convenient place in this case to store the pointer to the buffer

-	into which the flop context of the task will be stored.  The first created

-	task uses ulFlopRegisters[ 0 ], the second ulFlopRegisters[ 1 ], etc. */

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 0 ][ 0 ] ) );

-

-	/* Create another 7 tasks, allocating a buffer for each. */

-	xTaskCreate( vCompetingMathTask2, "Math2", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 1 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 1 ][ 0 ] ) );

-

-	xTaskCreate( vCompetingMathTask3, "Math3", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 2 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 2 ][ 0 ] ) );

-

-	xTaskCreate( vCompetingMathTask4, "Math4", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 3 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 3 ][ 0 ] ) );

-

-	xTaskCreate( vCompetingMathTask1, "Math5", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 4 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 4 ][ 0 ] ) );

-

-	xTaskCreate( vCompetingMathTask2, "Math6", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 5 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 5 ][ 0 ] ) );

-

-	xTaskCreate( vCompetingMathTask3, "Math7", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 6 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 6 ][ 0 ] ) );

-

-	xTaskCreate( vCompetingMathTask4, "Math8", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 7 ] ), uxPriority, &xTaskJustCreated  );

-	vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 7 ][ 0 ] ) );

-}

-/*-----------------------------------------------------------*/

-

-static portTASK_FUNCTION( vCompetingMathTask1, pvParameters )

-{

-volatile portFLOAT ff1, ff2, ff3, ff4;

-volatile unsigned short *pusTaskCheckVariable;

-volatile portFLOAT fAnswer;

-short sError = pdFALSE;

-

-	ff1 = 123.4567F;

-	ff2 = 2345.6789F;

-	ff3 = -918.222F;

-

-	fAnswer = ( ff1 + ff2 ) * ff3;

-

-	/* The variable this task increments to show it is still running is passed in 

-	as the parameter. */

-	pusTaskCheckVariable = ( unsigned short * ) pvParameters;

-

-	/* Keep performing a calculation and checking the result against a constant. */

-	for(;;)

-	{

-		ff1 = 123.4567F;

-		ff2 = 2345.6789F;

-		ff3 = -918.222F;

-

-		ff4 = ( ff1 + ff2 ) * ff3;

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-

-		/* If the calculation does not match the expected constant, stop the 

-		increment of the check variable. */

-		if( fabs( ff4 - fAnswer ) > 0.001F )

-		{

-			sError = pdTRUE;

-		}

-

-		if( sError == pdFALSE )

-		{

-			/* If the calculation has always been correct, increment the check 

-			variable so we know this task is still running okay. */

-			( *pusTaskCheckVariable )++;

-		}

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-

-	}

-}

-/*-----------------------------------------------------------*/

-

-static portTASK_FUNCTION( vCompetingMathTask2, pvParameters )

-{

-volatile portFLOAT ff1, ff2, ff3, ff4;

-volatile unsigned short *pusTaskCheckVariable;

-volatile portFLOAT fAnswer;

-short sError = pdFALSE;

-

-	ff1 = -389.38F;

-	ff2 = 32498.2F;

-	ff3 = -2.0001F;

-

-	fAnswer = ( ff1 / ff2 ) * ff3;

-

-

-	/* The variable this task increments to show it is still running is passed in 

-	as the parameter. */

-	pusTaskCheckVariable = ( unsigned short * ) pvParameters;

-

-	/* Keep performing a calculation and checking the result against a constant. */

-	for( ;; )

-	{

-		ff1 = -389.38F;

-		ff2 = 32498.2F;

-		ff3 = -2.0001F;

-

-		ff4 = ( ff1 / ff2 ) * ff3;

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-		

-		/* If the calculation does not match the expected constant, stop the 

-		increment of the check variable. */

-		if( fabs( ff4 - fAnswer ) > 0.001F )

-		{

-			sError = pdTRUE;

-		}

-

-		if( sError == pdFALSE )

-		{

-			/* If the calculation has always been correct, increment the check 

-			variable so we know

-			this task is still running okay. */

-			( *pusTaskCheckVariable )++;

-		}

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-	}

-}

-/*-----------------------------------------------------------*/

-

-static portTASK_FUNCTION( vCompetingMathTask3, pvParameters )

-{

-volatile portFLOAT *pfArray, fTotal1, fTotal2, fDifference;

-volatile unsigned short *pusTaskCheckVariable;

-const size_t xArraySize = 10;

-size_t xPosition;

-short sError = pdFALSE;

-

-	/* The variable this task increments to show it is still running is passed in 

-	as the parameter. */

-	pusTaskCheckVariable = ( unsigned short * ) pvParameters;

-

-	pfArray = ( portFLOAT * ) pvPortMalloc( xArraySize * sizeof( portFLOAT ) );

-

-	/* Keep filling an array, keeping a running total of the values placed in the 

-	array.  Then run through the array adding up all the values.  If the two totals 

-	do not match, stop the check variable from incrementing. */

-	for( ;; )

-	{

-		fTotal1 = 0.0F;

-		fTotal2 = 0.0F;

-

-		for( xPosition = 0; xPosition < xArraySize; xPosition++ )

-		{

-			pfArray[ xPosition ] = ( portFLOAT ) xPosition + 5.5F;

-			fTotal1 += ( portFLOAT ) xPosition + 5.5F;	

-		}

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-

-		for( xPosition = 0; xPosition < xArraySize; xPosition++ )

-		{

-			fTotal2 += pfArray[ xPosition ];

-		}

-

-		fDifference = fTotal1 - fTotal2;

-		if( fabs( fDifference ) > 0.001F )

-		{

-			sError = pdTRUE;

-		}

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-

-		if( sError == pdFALSE )

-		{

-			/* If the calculation has always been correct, increment the check 

-			variable so we know	this task is still running okay. */

-			( *pusTaskCheckVariable )++;

-		}

-	}

-}

-/*-----------------------------------------------------------*/

-

-static portTASK_FUNCTION( vCompetingMathTask4, pvParameters )

-{

-volatile portFLOAT *pfArray, fTotal1, fTotal2, fDifference;

-volatile unsigned short *pusTaskCheckVariable;

-const size_t xArraySize = 10;

-size_t xPosition;

-short sError = pdFALSE;

-

-	/* The variable this task increments to show it is still running is passed in 

-	as the parameter. */

-	pusTaskCheckVariable = ( unsigned short * ) pvParameters;

-

-	pfArray = ( portFLOAT * ) pvPortMalloc( xArraySize * sizeof( portFLOAT ) );

-

-	/* Keep filling an array, keeping a running total of the values placed in the 

-	array.  Then run through the array adding up all the values.  If the two totals 

-	do not match, stop the check variable from incrementing. */

-	for( ;; )

-	{

-		fTotal1 = 0.0F;

-		fTotal2 = 0.0F;

-

-		for( xPosition = 0; xPosition < xArraySize; xPosition++ )

-		{

-			pfArray[ xPosition ] = ( portFLOAT ) xPosition * 12.123F;

-			fTotal1 += ( portFLOAT ) xPosition * 12.123F;	

-		}

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-

-		for( xPosition = 0; xPosition < xArraySize; xPosition++ )

-		{

-			fTotal2 += pfArray[ xPosition ];

-		}

-

-		fDifference = fTotal1 - fTotal2;

-		if( fabs( fDifference ) > 0.001F )

-		{

-			sError = pdTRUE;

-		}

-

-		#if configUSE_PREEMPTION == 0

-			taskYIELD();

-		#endif

-

-		if( sError == pdFALSE )

-		{

-			/* If the calculation has always been correct, increment the check 

-			variable so we know	this task is still running okay. */

-			( *pusTaskCheckVariable )++;

-		}

-	}

-}				 

-/*-----------------------------------------------------------*/

-

-/* This is called to check that all the created tasks are still running. */

-portBASE_TYPE xAreMathsTaskStillRunning( void )

-{

-/* Keep a history of the check variables so we know if they have been incremented 

-since the last call. */

-static unsigned short usLastTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };

-portBASE_TYPE xReturn = pdTRUE, xTask;

-

-	/* Check the maths tasks are still running by ensuring their check variables 

-	are still incrementing. */

-	for( xTask = 0; xTask < mathNUMBER_OF_TASKS; xTask++ )

-	{

-		if( usTaskCheck[ xTask ] == usLastTaskCheck[ xTask ] )

-		{

-			/* The check has not incremented so an error exists. */

-			xReturn = pdFALSE;

-		}

-

-		usLastTaskCheck[ xTask ] = usTaskCheck[ xTask ];

-	}

-

-	return xReturn;

-}

-

-

-

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/main.c b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/main.c
deleted file mode 100644
index 4b002dd..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/main.c
+++ /dev/null
@@ -1,725 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-/*

- * Creates all the demo application tasks, then starts the scheduler.  The WEB

- * documentation provides more details of the demo application tasks.

- * 

- * In addition to the standard demo tasks, the follow demo specific tasks are

- * create:

- *

- * The "Check" task.  This only executes every three seconds but has the highest 

- * priority so is guaranteed to get processor time.  Its main function is to 

- * check that all the other tasks are still operational.  Most tasks maintain 

- * a unique count that is incremented each time the task successfully completes 

- * its function.  Should any error occur within such a task the count is 

- * permanently halted.  The check task inspects the count of each task to ensure 

- * it has changed since the last time the check task executed.  If all the count 

- * variables have changed all the tasks are still executing error free, and the 

- * check task toggles the onboard LED.  Should any task contain an error at any time 

- * the LED toggle rate will change from 3 seconds to 500ms.

- *

- * The "Register Check" tasks.  These tasks fill the CPU registers with known

- * values, then check that each register still contains the expected value, the

- * discovery of an unexpected value being indicative of an error in the RTOS

- * context switch mechanism.  The register check tasks operate at low priority

- * so are switched in and out frequently.

- *

- */

-

-/* Scheduler includes. */

-#include "FreeRTOS.h"

-#include "task.h"

-

-/* Xilinx library includes. */

-#include "xcache_l.h"

-#include "xintc.h"

-

-/* Demo application includes. */

-#include "flash.h"

-#include "integer.h"

-#include "comtest2.h"

-#include "semtest.h"

-#include "BlockQ.h"

-#include "dynamic.h"

-#include "GenQTest.h"

-#include "QPeek.h"

-#include "blocktim.h"

-#include "death.h"

-#include "partest.h"

-#include "countsem.h"

-#include "recmutex.h"

-#include "flop.h"

-#include "flop-reg-test.h"

-

-/* Priorities assigned to the demo tasks. */

-#define mainCHECK_TASK_PRIORITY			( tskIDLE_PRIORITY + 4 )

-#define mainSEM_TEST_PRIORITY			( tskIDLE_PRIORITY + 2 )

-#define mainCOM_TEST_PRIORITY			( tskIDLE_PRIORITY + 1 )

-#define mainQUEUE_BLOCK_PRIORITY		( tskIDLE_PRIORITY + 1 )

-#define mainDEATH_PRIORITY 				( tskIDLE_PRIORITY + 1 )

-#define mainLED_TASK_PRIORITY			( tskIDLE_PRIORITY + 1 )

-#define mainGENERIC_QUEUE_PRIORITY		( tskIDLE_PRIORITY )

-#define mainQUEUE_POLL_PRIORITY			( tskIDLE_PRIORITY + 1 )

-#define mainFLOP_PRIORITY				( tskIDLE_PRIORITY )

-

-/* The first LED used by the COM test and check tasks respectively. */

-#define mainCOM_TEST_LED				( 4 )

-#define mainCHECK_TEST_LED				( 3 )

-

-/* The baud rate used by the comtest tasks is set by the hardware, so the

-baud rate parameters passed into the comtest initialisation has no effect. */

-#define mainBAUD_SET_IN_HARDWARE		( 0 )

-

-/* Delay periods used by the check task.  If no errors have been found then

-the check LED will toggle every mainNO_ERROR_CHECK_DELAY milliseconds.  If an

-error has been found at any time then the toggle rate will increase to 

-mainERROR_CHECK_DELAY milliseconds. */

-#define mainNO_ERROR_CHECK_DELAY		( ( TickType_t ) 3000 / portTICK_PERIOD_MS  )

-#define mainERROR_CHECK_DELAY			( ( TickType_t ) 500 / portTICK_PERIOD_MS  )

-

-

-/* 

- * The tasks defined within this file - described within the comments at the

- * head of this page. 

- */

-static void prvRegTestTask1( void *pvParameters );

-static void prvRegTestTask2( void *pvParameters );

-static void prvErrorChecks( void *pvParameters );

-

-/*

- * Called by the 'check' task to inspect all the standard demo tasks within

- * the system, as described within the comments at the head of this page.

- */

-static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void );

-

-/*

- * Perform any hardware initialisation required by the demo application.

- */

-static void prvSetupHardware( void );

-

-/*-----------------------------------------------------------*/

-

-/* xRegTestStatus will get set to pdFAIL by the regtest tasks if they

-discover an unexpected value. */

-static volatile unsigned portBASE_TYPE xRegTestStatus = pdPASS;

-

-/* Counters used to ensure the regtest tasks are still running. */

-static volatile unsigned long ulRegTest1Counter = 0UL, ulRegTest2Counter = 0UL;

-

-/*-----------------------------------------------------------*/

-

-int main( void )

-{

-

-	/* Must be called prior to installing any interrupt handlers! */

-	vPortSetupInterruptController();

-

-	/* In this case prvSetupHardware() just enables the caches and and

-	configures the IO ports for the LED outputs. */

-	prvSetupHardware();

-

-	/* Start the standard demo application tasks.  Note that the baud rate used

-	by the comtest tasks is set by the hardware, so the baud rate parameter

-	passed has no effect. */

-	vStartLEDFlashTasks( mainLED_TASK_PRIORITY );	

-	vStartIntegerMathTasks( tskIDLE_PRIORITY );

-	vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainBAUD_SET_IN_HARDWARE, mainCOM_TEST_LED );

-	vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );

-	vStartBlockingQueueTasks ( mainQUEUE_BLOCK_PRIORITY );	

-	vStartDynamicPriorityTasks();	

-	vStartGenericQueueTasks( mainGENERIC_QUEUE_PRIORITY );

-	vStartQueuePeekTasks();

-	vCreateBlockTimeTasks();

-	vStartCountingSemaphoreTasks();

-	vStartRecursiveMutexTasks();

-

-	#if ( configUSE_FPU == 1 )

-	{

-		/* A different project is provided that has configUSE_FPU set to 1

-		in order to demonstrate all the settings required to use the floating

-		point unit.  If you wish to use the floating point unit do not start

-		with this project. */

-		vStartMathTasks( mainFLOP_PRIORITY );

-		vStartFlopRegTests();

-	}

-	#endif

-

-	/* Create the tasks defined within this file. */

-	xTaskCreate( prvRegTestTask1, "Regtest1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );

-	xTaskCreate( prvRegTestTask2, "Regtest2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );

-	xTaskCreate( prvErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );

-

-	/* The suicide tasks must be started last as they record the number of other

-	tasks that exist within the system.  The value is then used to ensure at run

-	time the number of tasks that exists is within expected bounds. */

-	vCreateSuicidalTasks( mainDEATH_PRIORITY );

-

-	/* Now start the scheduler.  Following this call the created tasks should

-	be executing. */	

-	vTaskStartScheduler();

-

-	/* vTaskStartScheduler() will only return if an error occurs while the 

-	idle task is being created. */

-	for( ;; );

-

-	return 0;

-}

-/*-----------------------------------------------------------*/

-

-static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void )

-{

-portBASE_TYPE lReturn = pdPASS;

-static unsigned long ulLastRegTest1Counter= 0UL, ulLastRegTest2Counter = 0UL;

-

-	/* The demo tasks maintain a count that increments every cycle of the task

-	provided that the task has never encountered an error.  This function 

-	checks the counts maintained by the tasks to ensure they are still being

-	incremented.  A count remaining at the same value between calls therefore

-	indicates that an error has been detected. */

-

-	if( xAreIntegerMathsTaskStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-

-	if( xAreComTestTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xAreSemaphoreTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xAreBlockingQueuesStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xIsCreateTaskStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xAreGenericQueueTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-	

-	if( xAreQueuePeekTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-

-	if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-

-	if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )

-	{

-		lReturn = pdFAIL;

-	}

-

-	#if ( configUSE_FPU == 1 )

-		if( xAreMathsTaskStillRunning() != pdTRUE )

-		{

-			lReturn = pdFAIL;

-		}

-

-		if( xAreFlopRegisterTestsStillRunning() != pdTRUE )

-		{

-			lReturn = pdFAIL;

-		}

-	#endif

-

-	/* Have the register test tasks found any errors? */

-	if( xRegTestStatus != pdPASS )

-	{

-		lReturn = pdFAIL;

-	}

-

-	/* Are the register test tasks still looping? */

-	if( ulLastRegTest1Counter == ulRegTest1Counter )

-	{

-		lReturn = pdFAIL;

-	}

-	else

-	{

-		ulLastRegTest1Counter = ulRegTest1Counter;

-	}

-

-	if( ulLastRegTest2Counter == ulRegTest2Counter )

-	{

-		lReturn = pdFAIL;

-	}

-	else

-	{

-		ulLastRegTest2Counter = ulRegTest2Counter;

-	}

-

-	return lReturn;

-}

-/*-----------------------------------------------------------*/

-

-static void prvErrorChecks( void *pvParameters )

-{

-TickType_t xDelayPeriod = mainNO_ERROR_CHECK_DELAY, xLastExecutionTime;

-volatile unsigned portBASE_TYPE uxFreeStack;

-

-	/* Just to remove compiler warning. */

-	( void ) pvParameters;

-

-	/* This call is just to demonstrate the use of the function - nothing is

-	done with the value.  You would expect the stack high water mark to be

-	lower (the function to return a larger value) here at function entry than

-	later following calls to other functions. */

-	uxFreeStack = uxTaskGetStackHighWaterMark( NULL );

-

-	/* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()

-	works correctly. */

-	xLastExecutionTime = xTaskGetTickCount();

-

-	/* Cycle for ever, delaying then checking all the other tasks are still

-	operating without error. */

-	for( ;; )

-	{

-		/* Again just for demo purposes - uxFreeStack should have a lower value

-		here than following the call to uxTaskGetStackHighWaterMark() on the

-		task entry. */

-		uxFreeStack = uxTaskGetStackHighWaterMark( NULL );

-

-		/* Wait until it is time to check again.  The time we wait here depends

-		on whether an error has been detected or not.  When an error is 

-		detected the time is shortened resulting in a faster LED flash rate. */

-		vTaskDelayUntil( &xLastExecutionTime, xDelayPeriod );

-

-		/* See if the other tasks are all ok. */

-		if( prvCheckOtherTasksAreStillRunning() != pdPASS )

-		{

-			/* An error occurred in one of the tasks so shorten the delay 

-			period - which has the effect of increasing the frequency of the

-			LED toggle. */

-			xDelayPeriod = mainERROR_CHECK_DELAY;

-		}

-

-		/* Flash! */

-		vParTestToggleLED( mainCHECK_TEST_LED );

-	}

-}

-/*-----------------------------------------------------------*/

-

-static void prvSetupHardware( void )

-{

-	XCache_EnableICache( 0x80000000 );

-	XCache_EnableDCache( 0x80000000 );

-

-	/* Setup the IO port for use with the LED outputs. */

-	vParTestInitialise();

-}

-/*-----------------------------------------------------------*/

-

-void prvRegTest1Pass( void )

-{

-	/* Called from the inline assembler - this cannot be static

-	otherwise it can get optimised away. */

-	ulRegTest1Counter++;

-}

-/*-----------------------------------------------------------*/

-

-void prvRegTest2Pass( void )

-{

-	/* Called from the inline assembler - this cannot be static

-	otherwise it can get optimised away. */

-	ulRegTest2Counter++;

-}

-/*-----------------------------------------------------------*/

-

-void prvRegTestFail( void )

-{

-	/* Called from the inline assembler - this cannot be static

-	otherwise it can get optimised away. */

-	xRegTestStatus = pdFAIL;

-}

-/*-----------------------------------------------------------*/

-

-static void prvRegTestTask1( void *pvParameters )

-{

-	/* Just to remove compiler warning. */

-	( void ) pvParameters;

-

-	/* The first register test task as described at the top of this file.  The

-	values used in the registers are different to those use in the second 

-	register test task.  Also, unlike the second register test task, this task

-	yields between setting the register values and subsequently checking the

-	register values. */

-	asm volatile

-	(

-		"RegTest1Start:					\n\t" \

-		"								\n\t" \

-		"	li		0, 301				\n\t" \

-		"	mtspr	256, 0	#USPRG0		\n\t" \

-		"	li		0, 501				\n\t" \

-		"	mtspr	8, 0	#LR			\n\t" \

-		"	li		0, 4				\n\t" \

-		"	mtspr	1, 0	#XER		\n\t" \

-		"								\n\t" \

-		"	li		0, 1				\n\t" \

-		"	li		2, 2				\n\t" \

-		"	li		3, 3				\n\t" \

-		"	li		4,	4				\n\t" \

-		"	li		5,	5				\n\t" \

-		"	li		6,	6				\n\t" \

-		"	li		7,	7				\n\t" \

-		"	li		8,	8				\n\t" \

-		"	li		9,	9				\n\t" \

-		"	li		10,	10				\n\t" \

-		"	li		11,	11				\n\t" \

-		"	li		12,	12				\n\t" \

-		"	li		13,	13				\n\t" \

-		"	li		14,	14				\n\t" \

-		"	li		15,	15				\n\t" \

-		"	li		16,	16				\n\t" \

-		"	li		17,	17				\n\t" \

-		"	li		18,	18				\n\t" \

-		"	li		19,	19				\n\t" \

-		"	li		20,	20				\n\t" \

-		"	li		21,	21				\n\t" \

-		"	li		22,	22				\n\t" \

-		"	li		23,	23				\n\t" \

-		"	li		24,	24				\n\t" \

-		"	li		25,	25				\n\t" \

-		"	li		26,	26				\n\t" \

-		"	li		27,	27				\n\t" \

-		"	li		28,	28				\n\t" \

-		"	li		29,	29				\n\t" \

-		"	li		30,	30				\n\t" \

-		"	li		31,	31				\n\t" \

-		"								\n\t" \

-		"	sc							\n\t" \

-		"	nop							\n\t" \

-		"								\n\t" \

-		"	cmpwi	0, 1				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	2, 2				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	3, 3				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	4, 4				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	5, 5				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	6, 6				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	7, 7				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	8, 8				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	9, 9				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	10, 10				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	11, 11				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	12, 12				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	13, 13				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	14, 14				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	15, 15				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	16, 16				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	17, 17				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	18, 18				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	19, 19				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	20, 20				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	21, 21				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	22, 22				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	23, 23				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	24, 24				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	25, 25				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	26, 26				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	27, 27				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	28, 28				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	29, 29				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	30, 30				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	cmpwi	31, 31				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"								\n\t" \

-		"	mfspr	0, 256	#USPRG0		\n\t" \

-		"	cmpwi	0, 301				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	mfspr	0, 8	#LR			\n\t" \

-		"	cmpwi	0, 501				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"	mfspr	0, 1	#XER		\n\t" \

-		"	cmpwi	0, 4				\n\t" \

-		"	bne	RegTest1Fail			\n\t" \

-		"								\n\t" \

-		"	bl prvRegTest1Pass			\n\t" \

-		"	b RegTest1Start				\n\t" \

-		"								\n\t" \

-		"RegTest1Fail:					\n\t" \

-		"								\n\t" \

-		"								\n\t" \

-		"	bl prvRegTestFail			\n\t" \

-		"	b RegTest1Start				\n\t" \

-	);

-}

-/*-----------------------------------------------------------*/

-

-static void prvRegTestTask2( void *pvParameters )

-{

-	/* Just to remove compiler warning. */

-	( void ) pvParameters;

-

-	/* The second register test task as described at the top of this file.  

-	Note that this task fills the registers with different values to the

-	first register test task. */

-	asm volatile

-	(

-		"RegTest2Start:					\n\t" \

-		"								\n\t" \

-		"	li		0, 300				\n\t" \

-		"	mtspr	256, 0	#USPRG0		\n\t" \

-		"	li		0, 500				\n\t" \

-		"	mtspr	8, 0	#LR			\n\t" \

-		"	li		0, 4				\n\t" \

-		"	mtspr	1, 0	#XER		\n\t" \

-		"								\n\t" \

-		"	li		0, 11				\n\t" \

-		"	li		2, 12				\n\t" \

-		"	li		3, 13				\n\t" \

-		"	li		4,	14				\n\t" \

-		"	li		5,	15				\n\t" \

-		"	li		6,	16				\n\t" \

-		"	li		7,	17				\n\t" \

-		"	li		8,	18				\n\t" \

-		"	li		9,	19				\n\t" \

-		"	li		10,	110				\n\t" \

-		"	li		11,	111				\n\t" \

-		"	li		12,	112				\n\t" \

-		"	li		13,	113				\n\t" \

-		"	li		14,	114				\n\t" \

-		"	li		15,	115				\n\t" \

-		"	li		16,	116				\n\t" \

-		"	li		17,	117				\n\t" \

-		"	li		18,	118				\n\t" \

-		"	li		19,	119				\n\t" \

-		"	li		20,	120				\n\t" \

-		"	li		21,	121				\n\t" \

-		"	li		22,	122				\n\t" \

-		"	li		23,	123				\n\t" \

-		"	li		24,	124				\n\t" \

-		"	li		25,	125				\n\t" \

-		"	li		26,	126				\n\t" \

-		"	li		27,	127				\n\t" \

-		"	li		28,	128				\n\t" \

-		"	li		29,	129				\n\t" \

-		"	li		30,	130				\n\t" \

-		"	li		31,	131				\n\t" \

-		"								\n\t" \

-		"	cmpwi	0, 11				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	2, 12				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	3, 13				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	4, 14				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	5, 15				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	6, 16				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	7, 17				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	8, 18				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	9, 19				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	10, 110				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	11, 111				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	12, 112				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	13, 113				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	14, 114				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	15, 115				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	16, 116				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	17, 117				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	18, 118				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	19, 119				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	20, 120				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	21, 121				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	22, 122				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	23, 123				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	24, 124				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	25, 125				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	26, 126				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	27, 127				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	28, 128				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	29, 129				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	30, 130				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	cmpwi	31, 131				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"								\n\t" \

-		"	mfspr	0, 256	#USPRG0		\n\t" \

-		"	cmpwi	0, 300				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	mfspr	0, 8	#LR			\n\t" \

-		"	cmpwi	0, 500				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"	mfspr	0, 1	#XER		\n\t" \

-		"	cmpwi	0, 4				\n\t" \

-		"	bne	RegTest2Fail			\n\t" \

-		"								\n\t" \

-		"	bl prvRegTest2Pass			\n\t" \

-		"	b RegTest2Start				\n\t" \

-		"								\n\t" \

-		"RegTest2Fail:					\n\t" \

-		"								\n\t" \

-		"								\n\t" \

-		"	bl prvRegTestFail			\n\t" \

-		"	b RegTest2Start				\n\t" \

-	);

-}

-/*-----------------------------------------------------------*/

-

-/* This hook function will get called if there is a suspected stack overflow.

-An overflow can cause the task name to be corrupted, in which case the task

-handle needs to be used to determine the offending task. */

-void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName );

-void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName )

-{

-/* To prevent the optimiser removing the variables. */

-volatile TaskHandle_t xTaskIn = xTask;

-volatile signed char *pcTaskNameIn = pcTaskName;

-

-	/* Remove compiler warnings. */

-	( void ) xTaskIn;

-	( void ) pcTaskNameIn;

-

-	/* The following three calls are simply to stop compiler warnings about the

-	functions not being used - they are called from the inline assembly. */

-	prvRegTest1Pass();

-	prvRegTest2Pass();

-	prvRegTestFail();

-

-	for( ;; );

-}

-

-

-

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
deleted file mode 100644
index 6311f14..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-

-/* Scheduler includes. */

-#include "FreeRTOS.h"

-

-/* Demo application includes. */

-#include "partest.h"

-

-/* Library includes. */

-#include "xparameters.h"

-#include "xgpio_l.h"

-

-/* Misc hardware specific definitions. */

-#define partstALL_AS_OUTPUT	0x00

-#define partstCHANNEL_1		0x01

-#define partstMAX_4BIT_LED	0x03

-

-/* The outputs are split into two IO sections, these variables maintain the 

-current value of either section. */

-static unsigned portBASE_TYPE uxCurrentOutput4Bit, uxCurrentOutput5Bit;

-

-/*-----------------------------------------------------------*/

-/*

- * Setup the IO for the LED outputs.

- */

-void vParTestInitialise( void )

-{

-	/* Set both sets of LED's on the demo board to outputs. */

-	XGpio_mSetDataDirection( XPAR_LEDS_4BIT_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT );

-	XGpio_mSetDataDirection( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT );

-

-	/* Start with all outputs off. */

-	uxCurrentOutput4Bit = 0;

-	XGpio_mSetDataReg( XPAR_LEDS_4BIT_BASEADDR, partstCHANNEL_1, 0x00 );

-	uxCurrentOutput5Bit = 0;

-	XGpio_mSetDataReg( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, 0x00 );

-}

-/*-----------------------------------------------------------*/

-

-void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )

-{

-unsigned portBASE_TYPE uxBaseAddress, *puxCurrentValue;

-

-	portENTER_CRITICAL();

-	{

-		/* Which IO section does the LED being set/cleared belong to?  The

-		4 bit or 5 bit outputs? */

-		if( uxLED <= partstMAX_4BIT_LED )

-		{

-			uxBaseAddress = XPAR_LEDS_4BIT_BASEADDR;

-			puxCurrentValue = &uxCurrentOutput5Bit;

-		}	

-		else

-		{

-			uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR;

-			puxCurrentValue = &uxCurrentOutput4Bit;

-			uxLED -= partstMAX_4BIT_LED;

-		}

-

-		/* Setup the bit mask accordingly. */

-		uxLED = 0x01 << uxLED;

-

-		/* Maintain the current output value. */

-		if( xValue )

-		{

-			*puxCurrentValue |= uxLED;

-		}

-		else

-		{

-			*puxCurrentValue &= ~uxLED;

-		}

-

-		/* Write the value to the port. */

-		XGpio_mSetDataReg( uxBaseAddress, partstCHANNEL_1, *puxCurrentValue );

-	}

-	portEXIT_CRITICAL();

-}

-/*-----------------------------------------------------------*/

-

-void vParTestToggleLED( unsigned portBASE_TYPE uxLED )

-{

-unsigned portBASE_TYPE uxBaseAddress, *puxCurrentValue;

-

-	portENTER_CRITICAL();

-	{

-		/* Which IO section does the LED being toggled belong to?  The

-		4 bit or 5 bit outputs? */

-		if( uxLED <= partstMAX_4BIT_LED )

-		{

-

-			uxBaseAddress = XPAR_LEDS_4BIT_BASEADDR;

-			puxCurrentValue = &uxCurrentOutput5Bit;

-		}	

-		else

-		{

-			uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR;

-			puxCurrentValue = &uxCurrentOutput4Bit;

-			uxLED -= partstMAX_4BIT_LED;

-		}

-

-		/* Setup the bit mask accordingly. */

-		uxLED = 0x01 << uxLED;

-

-		/* Maintain the current output value. */

-		if( *puxCurrentValue & uxLED )

-		{

-			*puxCurrentValue &= ~uxLED;

-		}

-		else

-		{

-			*puxCurrentValue |= uxLED;

-		}

-

-		/* Write the value to the port. */

-		XGpio_mSetDataReg(uxBaseAddress, partstCHANNEL_1, *puxCurrentValue );

-	}

-	portEXIT_CRITICAL();

-}

-

-

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
deleted file mode 100644
index 5e390a6..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-

-/* 

-	BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR UART

-*/

-

-/* Scheduler includes. */

-#include "FreeRTOS.h"

-#include "queue.h"

-#include "task.h"

-

-/* Demo application includes. */

-#include "serial.h"

-

-/* Library includes. */

-#include "xparameters.h"

-#include "xuartlite.h"

-#include "xuartlite_l.h"

-

-/*-----------------------------------------------------------*/

-

-/* Queues used to hold received characters, and characters waiting to be

-transmitted. */

-static QueueHandle_t xRxedChars; 

-static QueueHandle_t xCharsForTx; 

-

-/* Structure that maintains information on the UART being used. */

-static XUartLite xUART;

-

-/*

- * Sample UART interrupt handler.  Note this is used to demonstrate the kernel

- * features and test the port - it is not intended to represent an efficient

- * implementation.

- */

-static void vSerialISR( XUartLite *pxUART );

-

-/*-----------------------------------------------------------*/

-

-xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )

-{

-	/* NOTE: The baud rate used by this driver is determined by the hardware

-	parameterization of the UART Lite peripheral, and the baud value passed to

-	this function has no effect. */

-	( void ) ulWantedBaud;

-

-	/* Create the queues used to hold Rx and Tx characters. */

-	xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );

-	xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );

-

-	/* Only initialise the UART if the queues were created correctly. */

-	if( ( xRxedChars != NULL ) && ( xCharsForTx != NULL ) )

-	{

-

-		XUartLite_Initialize( &xUART, XPAR_RS232_UART_DEVICE_ID );

-		XUartLite_ResetFifos( &xUART );

-		XUartLite_DisableInterrupt( &xUART );

-

-		if( xPortInstallInterruptHandler( XPAR_XPS_INTC_0_RS232_UART_INTERRUPT_INTR, ( XInterruptHandler )vSerialISR, (void *)&xUART ) == pdPASS )

-		{

-			/* xPortInstallInterruptHandler() could fail if 

-			vPortSetupInterruptController() has not been called prior to this 

-			function. */

-			XUartLite_EnableInterrupt( &xUART );

-		}

-	}

-	

-	/* There is only one port so the handle is not used. */

-	return ( xComPortHandle ) 0;

-}

-/*-----------------------------------------------------------*/

-

-signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime )

-{

-	/* The port handle is not required as this driver only supports one UART. */

-	( void ) pxPort;

-

-	/* Get the next character from the buffer.  Return false if no characters

-	are available, or arrive before xBlockTime expires. */

-	if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )

-	{

-		return pdTRUE;

-	}

-	else

-	{

-		return pdFALSE;

-	}

-}

-/*-----------------------------------------------------------*/

-

-signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime )

-{

-portBASE_TYPE xReturn = pdTRUE;

-

-	/* Just to remove compiler warning. */

-	( void ) pxPort;

-

-	portENTER_CRITICAL();

-	{

-		/* If the UART FIFO is full we can block posting the new data on the

-		Tx queue. */

-		if( XUartLite_mIsTransmitFull( XPAR_RS232_UART_BASEADDR ) )

-		{

-			if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )

-			{

-				xReturn = pdFAIL;

-			}

-		}

-		/* Otherwise, if there is data already in the queue we should add the

-		new data to the back of the queue to ensure the sequencing is 

-		maintained. */

-		else if( uxQueueMessagesWaiting( xCharsForTx ) )

-		{

-			if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )

-			{

-				xReturn = pdFAIL;

-			}			

-		}

-		/* If the UART FIFO is not full and there is no data already in the

-		queue we can write directly to the FIFO without disrupting the 

-		sequence. */

-		else

-		{

-			XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cOutChar );

-		}

-	}

-	portEXIT_CRITICAL();

-

-	return xReturn;

-}

-/*-----------------------------------------------------------*/

-

-void vSerialClose( xComPortHandle xPort )

-{

-	/* Not supported as not required by the demo application. */

-	( void ) xPort;

-}

-/*-----------------------------------------------------------*/

-

-static void vSerialISR( XUartLite *pxUART )

-{

-unsigned long ulISRStatus;

-portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE, lDidSomething;

-char cChar;

-

-	/* Just to remove compiler warning. */

-	( void ) pxUART;

-

-	do

-	{

-		lDidSomething = pdFALSE;

-

-		ulISRStatus = XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_STATUS_REG_OFFSET );

-

-		if( ( ulISRStatus & XUL_SR_RX_FIFO_VALID_DATA ) != 0 )

-		{

-			/* A character is available - place it in the queue of received

-			characters.  This might wake a task that was blocked waiting for 

-			data. */

-			cChar = ( char ) XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_RX_FIFO_OFFSET );

-			xQueueSendFromISR( xRxedChars, &cChar, &xHigherPriorityTaskWoken );

-			lDidSomething = pdTRUE;

-		}

-		

-		if( ( ulISRStatus & XUL_SR_TX_FIFO_EMPTY ) != 0 )

-		{

-			/* There is space in the FIFO - if there are any characters queue for

-			transmission they can be sent to the UART now.  This might unblock a

-			task that was waiting for space to become available on the Tx queue. */

-			if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xHigherPriorityTaskWoken ) == pdTRUE )

-			{

-				XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cChar );

-				lDidSomething = pdTRUE;

-			}			

-		}

-	} while( lDidSomething == pdTRUE );

-

-	/* If we woke any tasks we may require a context switch. */

-	if( xHigherPriorityTaskWoken )

-	{

-		portYIELD_FROM_ISR();

-	}

-}

-

-

-

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/ReadMe.txt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/ReadMe.txt
new file mode 100644
index 0000000..ad84b27
--- /dev/null
+++ b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/ReadMe.txt
@@ -0,0 +1,3 @@
+If you need the demo that used to be in this directory then download FreeRTOS V8.2.3

+from http://sourceforge.net/projects/freertos/files/FreeRTOS/

+

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl
deleted file mode 100644
index e3f4c3f..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_BifShapes.xsl
+++ /dev/null
@@ -1,211 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-                
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-			
-<!-- ======================= DEF BLOCK =================================== -->
-	
-<xsl:template name="Define_BifTypes">
-	
-	<xsl:for-each select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR">
-		
-		<xsl:call-template name="Define_BifType"> 
-			<xsl:with-param name="iBusType"    select="@BUSSTD"/>
-		</xsl:call-template>
-		
-		<xsl:call-template name="Define_BifBusConnectors"> 
-			<xsl:with-param name="iBusType"    select="@BUSSTD"/>
-		</xsl:call-template>
-		
-	</xsl:for-each>
-	
-<!--	
-	<xsl:message>The color of bus  <xsl:value-of select="@BUSSTD"/> is <xsl:value-of select="@RGB"/></xsl:message>
-	<xsl:message>The OPB Bus color is  <xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[@BUSSTD = 'OPB']/@RGB"/> </xsl:message>
--->	
-</xsl:template>	
-	
-
-<xsl:template name="Define_BifType"> 
-	
-	<xsl:param name="iBusType"    select="'OPB'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-			
-    <symbol id="{$iBusType}_Bif">
-		<rect x="0"  
-			  y="0" 
-			  rx="3"
-			  ry="3"
-			  width= "{$BIF_W}" 
-			  height="{$BIF_H}" 
-			  style="fill:{$busColor_}; stroke:black; stroke-width:1"/> 
-	</symbol>
-	
-</xsl:template>
-
-<xsl:template name="Define_BifBusConnectors"> 
-	
-	<xsl:param name="iBusType"    select="'OPB'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="busColor_lt_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="bifc_wi_" select="ceiling($BIFC_W div 3)"/>
-	<xsl:variable name="bifc_hi_" select="ceiling($BIFC_H div 3)"/>
-	
-    <symbol id="{$iBusType}_busconn_MASTER">
-		<rect x="0"  
-			  y="0" 
-			  width= "{$BIFC_W}" 
-			  height="{$BIFC_H}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<rect x="{$BIFC_dx + 0.5}"  
-			  y="{$BIFC_dy}" 
-			  width= "{$BIFC_Wi}" 
-			  height="{$BIFC_Hi}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-	</symbol>
-	
-    <symbol id="{$iBusType}_busconn_INITIATOR">
-		<rect x="0"  
-			  y="0" 
-			  width= "{$BIFC_W}" 
-			  height="{$BIFC_H}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<rect x="{$BIFC_dx + 0.5}"  
-			  y="{$BIFC_dy}" 
-			  width= "{$BIFC_Wi}" 
-			  height="{$BIFC_Hi}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-	</symbol>
-	
-    <symbol id="{$iBusType}_busconn_SLAVE">
-		<circle 
-			  cx="{ceiling($BIFC_W div 2)}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_W  div 2)}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<circle 
-			  cx="{ceiling($BIFC_W div 2) + 0.5}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_Wi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-	</symbol>
-	
-    <symbol id="{$iBusType}_busconn_TARGET">
-		<circle 
-			  cx="{ceiling($BIFC_W div 2)}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_W  div 2)}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<circle 
-			  cx="{ceiling($BIFC_W div 2) + 0.5}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_Wi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-	</symbol>
-	
-	
-    <symbol id="{$iBusType}_busconn_MASTER_SLAVE">
-		<circle 
-			  cx="{ceiling($BIFC_W div 2)}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_W  div 2)}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<circle 
-			  cx="{ceiling($BIFC_W div 2) + 0.5}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_Wi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-			  
-		<rect x="0"  
-			  y="{ceiling($BIFC_H div 2)}" 
-			  width= "{$BIFC_W}" 
-			  height="{ceiling($BIFC_H div 2)}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<rect x="{$BIFC_dx + 0.5}"  
-			  y="{ceiling($BIFC_H div 2)}" 
-			  width= "{$BIFC_Wi}" 
-			  height="{ceiling($BIFC_Hi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-			  
-	</symbol>
-
-    <symbol id="{$iBusType}_busconn_MONITOR">
-		
-		<rect x="0"  
-			  y="0.5" 
-			  width= "{$BIFC_W}" 
-			  height="{ceiling($BIFC_Hi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-			  
-		<rect x="0"  
-			  y="{ceiling($BIFC_H div 2) + 4}" 
-			  width= "{$BIFC_W}" 
-			  height="{ceiling($BIFC_Hi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-			  
-	</symbol>
-	
-    <symbol id="{$iBusType}_busconn_TRANSPARENT">
-    
-		<circle 
-			  cx="{ceiling($BIFC_W div 2)}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_W  div 2)}" 
-			  style="fill:{$busColor_lt_}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<circle 
-			  cx="{ceiling($BIFC_W div 2) + 0.5}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_Wi div 2)}" 
-			  style="fill:{$busColor_}; stroke:none;"/> 
-		
-	</symbol>
-	
-    <symbol id="{$iBusType}_busconn_">
-    
-		<circle 
-			  cx="{ceiling($BIFC_W div 2)}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_W  div 2)}" 
-			  style="fill:{$COL_WHITE}; stroke:{$busColor_}; stroke-width:1"/> 
-			  
-		<circle 
-			  cx="{ceiling($BIFC_W div 2) + 0.5}"  
-			  cy="{ceiling($BIFC_H div 2)}" 
-			  r="{ceiling($BIFC_Wi div 2)}" 
-			  style="fill:{$COL_WHITE}; stroke:none;"/> 
-		
-	</symbol>
-	
-	
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl
deleted file mode 100644
index a4efce5..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Colors.xsl
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-           
-<xsl:variable name="COL_RED"        select="'#AA0000'"/>
-<xsl:variable name="COL_GRAY"       select="'#E1E1E1'"/>
-<xsl:variable name="COL_BLACK"      select="'#000000'"/>
-<xsl:variable name="COL_WHITE"      select="'#FFFFFF'"/>
-<xsl:variable name="COL_YELLOW"     select="'#FFFFDD'"/>
-<xsl:variable name="COL_YELLOW_LT"  select="'#FFFFEE'"/>				
-				
-<xsl:variable name="COL_BG"          select="'#CCCCCC'"/>				
-<xsl:variable name="COL_BG_LT"       select="'#EEEEEE'"/>				
-<xsl:variable name="COL_BG_UNK"      select="'#DDDDDD'"/>				
-	
-<xsl:variable name="COL_PROC_BG"     select="'#FFCCCC'"/>				
-<xsl:variable name="COL_PROC_BG_MB"  select="'#222222'"/>				
-<xsl:variable name="COL_PROC_BG_PP"  select="'#90001C'"/>				
-<xsl:variable name="COL_PROC_BG_USR" select="'#666699'"/>				
-	
-<xsl:variable name="COL_MPMC_BG"     select="'#8B0800'"/>
-	
-<xsl:variable name="COL_MOD_BG"      select="'#F0F0F0'"/>				
-<xsl:variable name="COL_MOD_SPRT"    select="'#888888'"/>
-<xsl:variable name="COL_MOD_MPRT"    select="'#888888'"/>
-
-<xsl:variable name="COL_INTR_0"      select="'#FF9900'"/>
-<xsl:variable name="COL_INTR_1"      select="'#00CCCC'"/>
-<xsl:variable name="COL_INTR_2"      select="'#33FF33'"/>
-<xsl:variable name="COL_INTR_3"      select="'#FF00CC'"/>
-<xsl:variable name="COL_INTR_4"      select="'#99FF33'"/>
-<xsl:variable name="COL_INTR_5"      select="'#0066CC'"/>
-<xsl:variable name="COL_INTR_6"      select="'#9933FF'"/>
-<xsl:variable name="COL_INTR_7"      select="'#3300FF'"/>
-<xsl:variable name="COL_INTR_8"      select="'#00FF33'"/>
-<xsl:variable name="COL_INTR_9"      select="'#FF3333'"/>
-
-
-<xsl:variable name="COL_IORING"     select="'#000088'"/>				
-<xsl:variable name="COL_IORING_LT"  select="'#CCCCFF'"/>				
-<xsl:variable name="COL_SYSPRT"     select="'#0000BB'"/>		        
-	
-	
-<xsl:variable name="COL_BUSSTDS">
-	
-	<BUSCOLOR BUSSTD="XIL"        RGB="#990066" RGB_LT="#CC3399"/>
-	<BUSCOLOR BUSSTD="OCM" 		  RGB="#0000DD" RGB_LT="#9999DD"/>
-	<BUSCOLOR BUSSTD="OPB"        RGB="#339900" RGB_LT="#CCDDCC"/>
-	<BUSCOLOR BUSSTD="LMB"        RGB="#7777FF" RGB_LT="#DDDDFF"/>
-	<BUSCOLOR BUSSTD="FSL"        RGB="#CC00CC" RGB_LT="#FFBBFF"/>
-	<BUSCOLOR BUSSTD="DCR"        RGB="#6699FF" RGB_LT="#BBDDFF"/>
-	<BUSCOLOR BUSSTD="FCB"        RGB="#8C00FF" RGB_LT="#CCCCFF"/>
-	<BUSCOLOR BUSSTD="PLB"        RGB="#FF5500" RGB_LT="#FFBB00"/>
-	<BUSCOLOR BUSSTD="PLBV46"     RGB="#BB9955" RGB_LT="#FFFFDD"/>
-	<BUSCOLOR BUSSTD="PLBV46_P2P" RGB="#BB9955" RGB_LT="#FFFFDD"/>
-	
-<!--	
-	<BUSCOLOR BUSSTD="PLBV46"     RGB="#9966FF" RGB_LT="#CCCCFF"/>
-	<BUSCOLOR BUSSTD="PLBV46_P2P" RGB="#9966FF" RGB_LT="#CCCCFF"/>
-	<BUSCOLOR BUSSTD="PLB"        RGB="#FFAA33" RGB_LT="#FFEE33"/>
-	<BUSCOLOR BUSSTD="PLBV46"     RGB="#FF5500" RGB_LT="#FFBB00"/>
-	<BUSCOLOR BUSSTD="PLBV46_P2P" RGB="#FF5500" RGB_LT="#FFBB00"/>
--->	
-	
-	<BUSCOLOR BUSSTD="TRS"         RGB="#009999" RGB_LT="#00CCCC"/>
-	<BUSCOLOR BUSSTD="TRANS"       RGB="#009999" RGB_LT="#00CCCC"/>
-	<BUSCOLOR BUSSTD="TRANSPARENT" RGB="#009999" RGB_LT="#00CCCC"/>
-
-	<BUSCOLOR BUSSTD="TARGET"      RGB="#009999" RGB_LT="#00CCCC"/>
-	<BUSCOLOR BUSSTD="INITIATOR"   RGB="#009999" RGB_LT="#00CCCC"/>
-	
-	<BUSCOLOR BUSSTD="KEY" 		   RGB="#444444" RGB_LT="#888888"/>
-	
-</xsl:variable>
-	
-<xsl:template name="BusType2Color">
-	<xsl:param name="iBusType"  select="'OPB'"/>
-	
-	<xsl:choose>
-		<xsl:when test="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusType)]/@RGB">
-			<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusType)]/@RGB"/>
-		</xsl:when>
-		<xsl:otherwise>
-			<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = 'TRS')]/@RGB"/>
-		</xsl:otherwise>
-	</xsl:choose>		
-</xsl:template>	
-	
-	
-<xsl:template name="BusType2LightColor">
-	<xsl:param name="iBusType"  select="'OPB'"/>
-	
-<!--	
-	<xsl:message>The color of bus  <xsl:value-of select="$busType"/> is <xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $busType)]/@RGB"/>
--->	
-		
-	<xsl:choose>
-		<xsl:when test="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusType)]/@RGB_LT">
-			<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusType)]/@RGB_LT"/>
-		</xsl:when>
-		<xsl:otherwise>
-			<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = 'TRS')]/@RGB_LT"/>
-		</xsl:otherwise>
-	</xsl:choose>		
-</xsl:template>	
-		
-
-<xsl:template name="intcIdx2Color">
-	<xsl:param name="iIntcIdx"  select="'0'"/>
-
-	<xsl:variable name="idx_" select="$iIntcIdx mod 9"/>
-	
-	<xsl:choose>
-		<xsl:when test="$idx_ = '0'"><xsl:value-of select="$COL_INTR_0"/></xsl:when>
-		<xsl:when test="$idx_ = '1'"><xsl:value-of select="$COL_INTR_1"/></xsl:when>
-		<xsl:when test="$idx_ = '2'"><xsl:value-of select="$COL_INTR_2"/></xsl:when>
-		<xsl:when test="$idx_ = '3'"><xsl:value-of select="$COL_INTR_3"/></xsl:when>
-		<xsl:when test="$idx_ = '4'"><xsl:value-of select="$COL_INTR_4"/></xsl:when>
-		<xsl:when test="$idx_ = '5'"><xsl:value-of select="$COL_INTR_5"/></xsl:when>
-		<xsl:when test="$idx_ = '6'"><xsl:value-of select="$COL_INTR_6"/></xsl:when>
-		<xsl:when test="$idx_ = '7'"><xsl:value-of select="$COL_INTR_7"/></xsl:when>
-		<xsl:when test="$idx_ = '8'"><xsl:value-of select="$COL_INTR_8"/></xsl:when>
-		<xsl:when test="$idx_ = '9'"><xsl:value-of select="$COL_INTR_9"/></xsl:when>
-		<xsl:otherwise>
-			<xsl:value-of select="$COL_INTR_0"/>	
-		</xsl:otherwise>
-	</xsl:choose>
-</xsl:template>
-
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css
deleted file mode 100644
index bde7995..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSVG_Diagrams.css
+++ /dev/null
@@ -1,329 +0,0 @@
-	text.busintlabel {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  italic;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mpmctitle {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   16pt; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Arial Verdana Helvetica sans-serif;
-	}
-	
-	text.mpmcbiflabel {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-
-	}
-
-	text.buslabel {
-		fill:        #CC3333;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-			
-	text.iplabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: 800;
-		text-anchor: middle;
-		font-family: Courier Arial Helvetica sans-serif;
-	}
-		
-	text.iptype {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.ipclass {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-
-	text.procclass {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-		
-		
-	text.portlabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.ipdbiflbl {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: bold;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-		
-	text.mmMHeader {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mmSHeader {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-
-
-	text.dbglabel {
-		fill:        #555555;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-
-	text.iopnumb {
-		fill:        #555555;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.ioplblgrp {
-		fill:        #000088;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-
-	tspan.iopgrp {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		baseline-shift:super;
-		font-family: Arial Courier san-serif;
-	}
-
-
-	text.biflabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-
-	}
-
-	text.p2pbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    10pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		writing-mode: tb;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mpbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    6pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		writing-mode: tb;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-
-	text.sharedbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    10pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-
-	text.bciplabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Courier Arial Helvetica sans-serif;
-	}
-		
-	text.bciptype {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.splitbustxt {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: sans-serif;
-	}
-
-	text.horizp2pbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    6pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-
-
-	text.keytitle {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   12pt; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.keyheader {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   10pt; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.keylabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.keylblul {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: start;
-		text-decoration: underline;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.specsheader {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   10pt; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.specsvalue {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.specsvaluemid {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.intrsymbol {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Arial Helvetica sans-serif;
-	}
-
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl
deleted file mode 100644
index 90ba612..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_BusLaneSpaces.xsl
+++ /dev/null
@@ -1,2774 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-                
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-	
-	
-<!-- 
-		 ===========================================================
-			Handle Bucket connections to the shared busses.
-		 ===========================================================
--->		
-	
-<xsl:template name="BCLaneSpace_BucketToSharedBus">	
-	
-	<xsl:param name="iBusStd"           select="'NONE'"/>	
-	<xsl:param name="iBusName"          select="'NONE'"/>	
-	<xsl:param name="iBifRank"          select="'NONE'"/>	
-	<xsl:param name="iStackToEast"      select="'NONE'"/>	
-	<xsl:param name="iStackToWest"      select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W"    select="0"/>	
-	<xsl:param name="iStackToWest_W"    select="0"/>	
-	<xsl:param name="iLaneInSpace_X"    select="0"/>	
-	<xsl:param name="iSpaceSharedBus_Y" select="0"/>	
-	
-<!--	
-	<xsl:message>Stack To East <xsl:value-of select="$iStackToEast"/></xsl:message>
-	<xsl:message>Stack to West <xsl:value-of select="$iStackToWest"/></xsl:message>
-	<xsl:message>Stack to East Width <xsl:value-of select="$iStackToEast_W"/></xsl:message>
-	<xsl:message>Stack to West Width <xsl:value-of select="$iStackToWest_W"/></xsl:message>
-	<xsl:message>Shared Bus Y <xsl:value-of select="$iSpaceSharedBus_Y"/></xsl:message>
-	<xsl:message>Lane in space X <xsl:value-of select="$iLaneInSpace_X"/></xsl:message>
--->	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="sbs_idx_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE= $iBusName)]/@BUSINDEX"/>
-	<xsl:variable name="sbs_name_" select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $sbs_idx_)]/@BUSNAME"/>
-					
-	<xsl:variable name="sbs_bc_y_" select="($iSpaceSharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H))"/>
-					
-	<xsl:variable name="bktshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $sbs_idx_)]/@STACK_HORIZ_INDEX"/>
-	<xsl:variable name="bktshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $sbs_idx_)]/@SHAPE_VERTI_INDEX"/>
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>
-	
-<!--	
-	<xsl:message>Ext Shape to West <xsl:value-of select="$extSpaceWest_W_"/></xsl:message>
-	<xsl:message>Ext Shape to East <xsl:value-of select="$extSpaceEast_W_"/></xsl:message>
--->	
-	<xsl:variable name="bktshp_Y_">
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$bktshp_hori_idx_"/>
-			<xsl:with-param name="iVertiIdx"  select="$bktshp_vert_idx_"/>
-		</xsl:call-template>
-	</xsl:variable>
-						
-	<xsl:variable name="sbsStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-				
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:if test="($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_)">
-					<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-				</xsl:if>	
-				
-				<xsl:if test="not($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_)">0</xsl:if>	
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="vert_line_x_"   select="($iLaneInSpace_X  +  ceiling($BLKD_BIFC_W div 2))"/>
-	<xsl:variable name="vert_line_y1_"  select="($iSpaceSharedBus_Y   + ($sbs_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_BIFC_W div 2))"/>
-	<xsl:variable name="vert_line_y2_"  select="($bktshp_Y_ + ceiling($BLKD_MOD_W div 2) + $sbsStack_H_diff_)"/>
-	<xsl:variable name="bcInSpace_X_"   select="($iLaneInSpace_X  +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-	
-	
-<!--	
-	<xsl:message>Shared Bus Y <xsl:value-of select="$G_SharedBus_Y"/></xsl:message>
-	<xsl:message>Vert Bus Y <xsl:value-of select="$vert_line_y1_"/></xsl:message>
-	<xsl:message>vert y1 <xsl:value-of select="$vert_line_y1_"/></xsl:message>
-	<xsl:message>vert y2 <xsl:value-of select="$vert_line_y2_"/></xsl:message>
--->	
-	
-	<xsl:variable name="horz_line_y_"   select="$vert_line_y2_"/>
-	<xsl:variable name="horz_line_x1_"  select="$vert_line_x_"/>
-	<xsl:variable name="horz_line_x2_"  select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_)"/>
-	
-	<xsl:variable name="v_bus_ul_x_"   select="$vert_line_x_"/>
-	<xsl:variable name="v_bus_ul_y_"   select="$vert_line_y1_"/>
-	<xsl:variable name="v_bus_width_"  select="$BLKD_P2P_BUS_W"/>
-		
-	<xsl:variable name="v_bus_height_" select="(($vert_line_y2_ - $vert_line_y1_) - ceiling($BLKD_BIFC_H div 2))"/>
-	
-	<xsl:variable name="h_bus_ul_x_"   select="$v_bus_ul_x_"/>
-	<xsl:variable name="h_bus_ul_y_"   select="$vert_line_y2_   - $BLKD_BIFC_H + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-	<xsl:variable name="h_bus_width_"  select="ceiling($space_W_ div 2) + $extSpaceEast_W_"/>
-	<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-	
-<!--	
-	<xsl:variable name="h_bus_width_"  select="($space_W_ + ceiling(($extSpaceWest_W_ + $extSpaceEast_W_) div 2) - $BLKD_BIFC_W)"/>
-	<xsl:message>v bus x <xsl:value-of select="$v_bus_ul_x_"/></xsl:message>
-	<xsl:message>v bus y <xsl:value-of select="$v_bus_ul_y_"/></xsl:message>
-	<xsl:message>v bus w <xsl:value-of select="$v_bus_width_"/></xsl:message>
-	<xsl:message>v bus y1 <xsl:value-of select="$vert_line_y1_"/></xsl:message>
-	<xsl:message>v bus y2 <xsl:value-of select="$vert_line_y2_"/></xsl:message>
-	<xsl:message>v bus h <xsl:value-of select="$v_bus_height_"/></xsl:message>
-	<xsl:message>h bus w <xsl:value-of select="$h_bus_width_"/></xsl:message>
--->	
-	
-	
-	<!-- Draw rectangular parts of the bus -->
-	<rect x="{$v_bus_ul_x_}" 
-	  	  y="{$v_bus_ul_y_ - 2}"  
-	 	  width= "{$v_bus_width_}" 
-	 	  height="{$v_bus_height_}" 
-	 	  style="stroke:none; fill:{$busColor_}"/>
-	
-	<rect x="{$h_bus_ul_x_}" 
-	  	  y="{$h_bus_ul_y_ - 5}"  
-	 	  width= "{$h_bus_width_}" 
-	 	  height="{$h_bus_height_}" 
-	 	  style="stroke:none; fill:{$busColor_}"/>
-<!--	
--->
-		
-</xsl:template>					
-	
-<!--
-		 ===========================================================
-			Handle Processor's Shared bus connections.
-		 ===========================================================
--->
-	
-<xsl:template name="BCLaneSpace_ProcBifToSharedBus">	
-	
-	<xsl:param name="iBusStd"           select="'NONE'"/>	
-	<xsl:param name="iBusName"          select="'NONE'"/>	
-	<xsl:param name="iBifRank"          select="'NONE'"/>	
-	<xsl:param name="iStackToEast"      select="'NONE'"/>	
-	<xsl:param name="iStackToWest"      select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W"    select="0"/>	
-	<xsl:param name="iStackToWest_W"    select="0"/>	
-	<xsl:param name="iLaneInSpace_X"    select="0"/>	
-	<xsl:param name="iSpaceSharedBus_Y" select="0"/>	
-	
-<!--						
-	<xsl:message>Proc diff  <xsl:value-of select="$procStack_H_diff_"/></xsl:message>
-	<xsl:message>Proc inst  <xsl:value-of select="$procInst_"/></xsl:message>
-	<xsl:message>Proc Bif Name <xsl:value-of select="$procBifName_"/></xsl:message>
-	<xsl:message>Proc Bif Rank <xsl:value-of select="$procBifRank_"/></xsl:message>
--->
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="sbs_idx_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE= $iBusName)]/@BUSINDEX"/>
-	<xsl:variable name="sbs_bc_y_" select="($iSpaceSharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H))"/>
-	<xsl:variable name="procInst_" select="BUSCONN/@INSTANCE"/>
-	
-	
-<!--	
-	<xsl:message>Shared Bus Idx <xsl:value-of select="$sbs_idx_"/></xsl:message>
-	<xsl:message>Proc inst  <xsl:value-of select="$procInst_"/></xsl:message>
--->						
-	
-	<xsl:variable name="procBif_Y_"    select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * BUSCONN/@BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-	<xsl:variable name="procBifName_"  select="BUSCONN/@BUSINTERFACE"/>
-	<xsl:variable name="procBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInst_)]/BUSINTERFACE[(@NAME = $procBifName_)]/@BIF_X"/>
-	<xsl:variable name="procBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInst_)]/BUSINTERFACE[(@NAME = $procBifName_)]/@BIFRANK"/>
-						
-	<xsl:variable name="procshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInst_)]/@STACK_HORIZ_INDEX"/>
-	<xsl:variable name="procshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInst_)]/@SHAPE_VERTI_INDEX"/>
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>
-	
-						
-<!--						
-	<xsl:message>Stack horiz  <xsl:value-of select="$procshp_hori_idx_"/></xsl:message>
-	<xsl:message>Stack verti  <xsl:value-of select="$procshp_vert_idx_"/></xsl:message>
-	<xsl:message>Proc Bif Y   <xsl:value-of select="$procBif_Y_"/></xsl:message>
--->						
-						
-	<xsl:variable name="procshp_Y_">
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$procshp_hori_idx_"/>
-			<xsl:with-param name="iVertiIdx"  select="$procshp_vert_idx_"/>
-		</xsl:call-template>
-	</xsl:variable>
-						
-	
-	<xsl:variable name="procStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-		
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="(($procshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($procshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="bc_Y_"  select="($procshp_Y_ + $procBif_Y_ + ceiling($BIF_H div 2) + $procStack_H_diff_) - ceiling($BLKD_BIFC_H div 2)"/>
-<!--	
-	<xsl:variable name="bc_x_"  select="($laneInSpace_X +  ceiling($BLKD_BIFC_W div 2))"/>
-	<xsl:variable name="bc_x_"  select="0"/>
--->	
-	<xsl:variable name="bc_X_">
-		<xsl:choose>
-			<xsl:when test="$procBifSide_ = '0'">
-		 		<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-<!--				
-		 		<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - ceiling($BLKD_MOD_W div 2))"/>
-		 		<xsl:value-of select="($space_W_ -  ceiling($BLKD_MOD_W div 2))"/>
--->				
-			</xsl:when>
-			<xsl:when test="$procBifSide_ = '1'">
-		 		<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-			</xsl:when>
-			<xsl:otherwise>0</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-						
-	<!-- Place the bus connection -->
-	<use   x="{$bc_X_}"   y="{$bc_Y_}"  xlink:href="#{$iBusStd}_busconn_{$procBifRank_}"/>
-						
-	
-	<xsl:variable name="vert_line_x_"   select="($iLaneInSpace_X +  ceiling($BLKD_BIFC_W div 2))"/>
-	<xsl:variable name="vert_line_y1_"  select="($procshp_Y_ + $procBif_Y_ + ceiling($BLKD_BIF_H div 2) + $procStack_H_diff_)"/>
-	<xsl:variable name="vert_line_y2_"  select="($iSpaceSharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_BIFC_W div 2))"/>
-	
-<!--	
-	<xsl:message>Vert line Y1 <xsl:value-of select="$vert_line_y1_"/></xsl:message>
-	<xsl:message>Vert line Y2 <xsl:value-of select="$vert_line_y2_"/></xsl:message>
--->		
-	
-	<xsl:variable name="v_bus_ul_y_">
-		<xsl:choose>
-			<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-				<xsl:value-of select="$vert_line_y2_"/>
-			</xsl:when>
-			<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-				<xsl:value-of select="$vert_line_y1_"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-	
-	<xsl:variable name="v_bus_ul_x_">
-		<xsl:choose>
-			<xsl:when test="@ORIENTED='WEST'">
-				<xsl:value-of select="($vert_line_x_ + $BLKD_MOD_BIF_GAP_H)"/>
-			</xsl:when>
-			<xsl:when test="@ORIENTED='EAST'">
-				<xsl:value-of select="($vert_line_x_ - $BLKD_MOD_BIF_GAP_H)"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-		
-		
-	<xsl:variable name="v_bus_width_" select="$BLKD_P2P_BUS_W"/>
-	<xsl:variable name="v_bus_height_">
-		<xsl:choose>
-			<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-				<xsl:value-of select="($vert_line_y1_ - $vert_line_y2_) - $BLKD_P2P_BUS_W"/>
-			</xsl:when>
-			<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-				<xsl:value-of select="($vert_line_y2_ - $vert_line_y1_) - $BLKD_P2P_BUS_W"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-		
-	<xsl:variable name="h_bus_ul_x_">
-		<xsl:choose>
-			<xsl:when test="@ORIENTED='WEST'">
-				<xsl:value-of select="($bc_X_ + $BLKD_BIFC_W - ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2))"/>
-<!--				
-				<xsl:value-of select="$v_bus_ul_x_"/>
--->	
-			</xsl:when>
-			<xsl:when test="@ORIENTED='EAST'">
-				<xsl:value-of select="$v_bus_ul_x_"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-		
-		<xsl:variable name="h_bus_ul_y_">
-			<xsl:choose>
-				<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-					<xsl:value-of select="$vert_line_y2_ - ceiling($BLKD_P2P_BUS_W div 2)"/>
-				</xsl:when>
-				<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-					<xsl:value-of select="$vert_line_y1_ - ceiling($BLKD_P2P_BUS_W div 2)"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-	
-	
-		<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-		<xsl:variable name="h_bus_width_">
-			<xsl:choose>
-				<xsl:when test="@ORIENTED='WEST'">
-					<xsl:value-of select="$v_bus_ul_x_ - $h_bus_ul_x_ + $BLKD_P2P_BUS_W"/>
-				</xsl:when>
-				<xsl:when test="@ORIENTED='EAST'">
-					<xsl:value-of select="($bc_X_ - $v_bus_ul_x_) + ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2) + 1"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-			
-<!--			
-		<xsl:if test="(@ORIENTED = 'WEST')">
-		</xsl:if>
-			
- 		<xsl:message>bc_X_  <xsl:value-of select="$bc_X_"/></xsl:message>
- 		<xsl:message>v_bus_ul_x  <xsl:value-of select="$v_bus_ul_x_"/></xsl:message>
- 		<xsl:message>h_bus_width <xsl:value-of select="$h_bus_width_"/></xsl:message>
- 		<xsl:message>h_bus_ul_y  <xsl:value-of select="$h_bus_ul_y_"/></xsl:message>
--->	
-			
-		<rect x="{$v_bus_ul_x_}" 
-		  	  y="{$v_bus_ul_y_ + 2}"  
-		 	  width= "{$v_bus_width_}" 
-		 	  height="{$v_bus_height_}" 
-		 	  style="stroke:none; fill:{$busColor_}"/>
-		
-		<rect x="{$h_bus_ul_x_}" 
-		  	  y="{$h_bus_ul_y_}"  
-		 	  width= "{$h_bus_width_}" 
-		 	  height="{$h_bus_height_}" 
-		 	  style="stroke:none; fill:{$busColor_}"/>
-		
-<!--						
-		<xsl:message>Proc diff  <xsl:value-of select="$procStack_H_diff_"/></xsl:message>
-		<xsl:message>Proc inst  <xsl:value-of select="$procInst_"/></xsl:message>
-		<xsl:message>Proc Bif Name <xsl:value-of select="$procBifName_"/></xsl:message>
-		<xsl:message>Proc Bif Rank <xsl:value-of select="$procBifRank_"/></xsl:message>
--->
-	
-</xsl:template>					
-	
-					
-<!--
-		 ===========================================================
-			Handle non Processor Sharedebus connections.
-		 ===========================================================
--->
-				
-<xsl:template name="BCLaneSpace_NonProcBifToSharedBus">	
-	
-	<xsl:param name="iBusStd"           select="'NONE'"/>	
-	<xsl:param name="iBusName"          select="'NONE'"/>	
-	<xsl:param name="iBifRank"          select="'NONE'"/>	
-	<xsl:param name="iStackToEast"      select="'NONE'"/>	
-	<xsl:param name="iStackToWest"      select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W"    select="0"/>	
-	<xsl:param name="iStackToWest_W"    select="0"/>	
-	<xsl:param name="iLaneInSpace_X"    select="0"/>	
-	<xsl:param name="iSpaceSharedBus_Y" select="0"/>	
-	
-						
-	<xsl:variable name="sbs_idx_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE= $iBusName)]/@BUSINDEX"/>
-	<xsl:variable name="sbs_bc_y_" select="($iSpaceSharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H))"/>
-<!--	
-	<xsl:variable name="sbs_bc_y_" select="($G_SharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H))"/>
--->	
-						
-	<xsl:variable name="cmplxInst_" select="BUSCONN/@INSTANCE"/>
-						
-	<xsl:variable name="cmplxBif_Y_"    select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * BUSCONN/@BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-	<xsl:variable name="cmplxBifName_"  select="BUSCONN/@BUSINTERFACE"/>
-	<xsl:variable name="cmplxBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $cmplxInst_)]/BUSINTERFACE[(@NAME = $cmplxBifName_)]/@BIF_X"/>
-	<xsl:variable name="cmplxBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $cmplxInst_)]/BUSINTERFACE[(@NAME = $cmplxBifName_)]/@BIFRANK"/>
-						
-	<xsl:variable name="cmplxshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $cmplxInst_)])]/@STACK_HORIZ_INDEX"/>
-	<xsl:variable name="cmplxshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $cmplxInst_)])]/@SHAPE_VERTI_INDEX"/>
-						
-	<xsl:variable name="is_abvSbs_" select="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $cmplxInst_)]]/@IS_ABVSBS)"/>
-	<xsl:variable name="is_blwSbs_" select="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $cmplxInst_)]]/@IS_BLWSBS)"/>
-	
-	
-<!--						
-	<xsl:message>iStackToEast <xsl:value-of select="$iStackToEast"/></xsl:message>
-	<xsl:message>iStackToWest <xsl:value-of select="$iStackToWest"/></xsl:message>
-	<xsl:message><xsl:value-of select="$cmplxInst_"/> : <xsl:value-of select="$is_blwSbs_"/></xsl:message>
-	<xsl:message><xsl:value-of select="$cmplxInst_"/> : <xsl:value-of select="$is_abvSbs_"/></xsl:message>
-	<xsl:message><xsl:value-of select="$cmplxInst_"/> : <xsl:value-of select="$is_blwSbs_"/></xsl:message>
-	<xsl:message><xsl:value-of select="$cmplxInst_"/> : <xsl:value-of select="$is_abvSbs_"/></xsl:message>
-	<xsl:message>Stack horiz  <xsl:value-of select="$cmplxshp_hori_idx_"/></xsl:message>
-	<xsl:message>Stack verti  <xsl:value-of select="$cmplxshp_vert_idx_"/></xsl:message>
-	<xsl:message>Proc Bif Y   <xsl:value-of select="$procBif_Y_"/></xsl:message>
--->						
-	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>						
-	
-	<xsl:variable name="cmplxshp_Y_">
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$cmplxshp_hori_idx_"/>
-			<xsl:with-param name="iVertiIdx"  select="$cmplxshp_vert_idx_"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>Complex shape Y <xsl:value-of select="$cmplxshp_Y_"/></xsl:message>
--->	
-	
-	<xsl:variable name="stackToEast_">
-		<xsl:choose>
-			<xsl:when test="not($iStackToEast = 'NONE')"><xsl:value-of select="$iStackToEast"/></xsl:when>
-			<xsl:otherwise>NONE</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-	<xsl:variable name="stackToWest_">
-		<xsl:choose>
-			<xsl:when test=" not($iStackToWest = 'NONE')"><xsl:value-of select="$iStackToWest"/></xsl:when>
-			<xsl:when test="(not($iStackToEast = 'NONE') and not($iStackToEast = '0'))"><xsl:value-of select="($iStackToEast - 1)"/></xsl:when>
-			<xsl:otherwise>NONE</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-						
-	<xsl:variable name="cmplxStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($stackToEast_ = 'NONE') or ($stackToWest_ = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($stackToEast_ = 'NONE') or ($stackToWest_ = 'NONE'))">
-				
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$stackToWest_"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$stackToEast_"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="(($cmplxshp_hori_idx_ = $stackToEast_) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($cmplxshp_hori_idx_ = $stackToWest_) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-									
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-	
-	
-	<xsl:variable name="bc_Y_"  select="($cmplxshp_Y_ + $cmplxBif_Y_ + ceiling($BIF_H div 2) + $cmplxStack_H_diff_) - ceiling($BLKD_BIFC_H div 2)"/>
-	
-	
-<!--	
-	<xsl:message>Sstack H Diff  <xsl:value-of select="$cmplxStack_H_diff_"/></xsl:message>
-	<xsl:message>BC Y <xsl:value-of select="$bc_Y_"/></xsl:message>
-	<xsl:variable name="bc_x_"  select="($laneInSpace_X +  ceiling($BLKD_BIFC_W div 2))"/>
-	<xsl:variable name="bc_x_"  select="0"/>
--->	
-	<xsl:variable name="bc_X_">
-		<xsl:choose>
-			<xsl:when test="$cmplxBifSide_ = '0'">
-		 		<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-			</xsl:when>
-			<xsl:when test="$cmplxBifSide_ = '1'">
-		 		<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-			</xsl:when>
-			<xsl:otherwise>0</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-	<use   x="{$bc_X_}"   y="{$bc_Y_}"  xlink:href="#{$iBusStd}_busconn_{$cmplxBifRank_}"/>
-	
-<!--	
-	<xsl:message>Bif Rank <xsl:value-of select="$cmplxBifRank_"/></xsl:message>
--->	
-	<xsl:variable name="vert_line_x_"  select="($iLaneInSpace_X +  ceiling($BLKD_BIFC_W div 2))"/>
-	<xsl:variable name="vert_line_y1_" select="($cmplxshp_Y_ + $cmplxBif_Y_ + ceiling($BLKD_BIF_H div 2) + $cmplxStack_H_diff_)"/>
-	<xsl:variable name="vert_line_y2_"  select="($iSpaceSharedBus_Y  + ($sbs_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_BIFC_W div 2))"/>
-<!--	
-	<xsl:variable name="vert_line_y2_"  select="($G_SharedBus_Y  + ($sbs_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_BIFC_W div 2))"/>
--->	
-	
-	<xsl:variable name="v_bus_ul_y_">
-		<xsl:choose>
-			<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-				<xsl:value-of select="$vert_line_y2_"/>
-			</xsl:when>
-			<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-				<xsl:value-of select="$vert_line_y1_"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-	
-	<xsl:variable name="v_bus_ul_x_">
-		<xsl:choose>
-			<xsl:when test="@ORIENTED='WEST'">
-				<xsl:value-of select="($vert_line_x_ + $BLKD_MOD_BIF_GAP_H)"/>
-			</xsl:when>
-			<xsl:when test="@ORIENTED='EAST'">
-				<xsl:value-of select="($vert_line_x_ - $BLKD_MOD_BIF_GAP_H)"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-		
-	<xsl:variable name="v_bus_width_" select="$BLKD_P2P_BUS_W"/>
-	<xsl:variable name="v_bus_height_">
-		<xsl:choose>
-			<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-				<xsl:value-of select="($vert_line_y1_ - $vert_line_y2_) - $BLKD_P2P_BUS_W + 8"/>
-			</xsl:when>
-			<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-				<xsl:value-of select="($vert_line_y2_ - $vert_line_y1_) - $BLKD_P2P_BUS_W + 8"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-		
-	<xsl:variable name="h_bus_ul_x_">
-		<xsl:choose>
-			<xsl:when test="@ORIENTED='WEST'">
-				<xsl:value-of select="($bc_X_ + $BLKD_BIFC_W - ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2))"/>
-			</xsl:when>
-			<xsl:when test="@ORIENTED='EAST'">
-				<xsl:value-of select="$v_bus_ul_x_"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-		
-	<xsl:variable name="h_bus_ul_y_">
-		<xsl:choose>
-			
-			<xsl:when test="($is_blwSbs_ = 'TRUE') and ($vert_line_y1_ &gt; $vert_line_y2_)">
-				<xsl:value-of select="$vert_line_y1_ - ceiling($BLKD_P2P_BUS_W div 2)"/>
-			</xsl:when>
-			<xsl:when test="($is_blwSbs_ = 'TRUE') and ($vert_line_y2_ &gt; $vert_line_y1_)">
-				<xsl:value-of select="$vert_line_y2_ - ceiling($BLKD_P2P_BUS_W div 2)"/>
-			</xsl:when>
-			
-			<xsl:when test="($is_abvSbs_ = 'TRUE') and ($vert_line_y1_ &gt; $vert_line_y2_)">
-				<xsl:value-of select="$vert_line_y2_ - ceiling($BLKD_P2P_BUS_W div 2)"/>
-			</xsl:when>
-			<xsl:when test="($is_abvSbs_ = 'TRUE') and ($vert_line_y2_ &gt; $vert_line_y1_)">
-				<xsl:value-of select="$vert_line_y1_ - ceiling($BLKD_P2P_BUS_W div 2)"/>
-			</xsl:when>
-			
-		</xsl:choose>
-	</xsl:variable>	
-	
-	
-	<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-	<xsl:variable name="h_bus_width_">
-		<xsl:choose>
-			<xsl:when test="@ORIENTED='WEST'">
-				<xsl:value-of select="$v_bus_ul_x_ - $h_bus_ul_x_ + $BLKD_P2P_BUS_W"/>
-			</xsl:when>
-			<xsl:when test="@ORIENTED='EAST'">
-				<xsl:value-of select="($bc_X_ - $v_bus_ul_x_) + ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2) + 1"/>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>	
-	
-			
-	<rect x="{$v_bus_ul_x_}" 
-	  	  y="{$v_bus_ul_y_ - 2}"  
-	 	  width= "{$v_bus_width_}" 
-		  height="{$v_bus_height_}" 
-	 	  style="stroke:none; fill:{$busColor_}"/>
-		
-	<rect x="{$h_bus_ul_x_}" 
-	  	  y="{$h_bus_ul_y_}"  
-	 	  width= "{$h_bus_width_}" 
-	 	  height="{$h_bus_height_}" 
-	 	  style="stroke:none; fill:{$busColor_}"/>
-		
-</xsl:template>					
-	
-<!-- 
-		 ===========================================================
-			Handle connections from processors to Memory UNITs
-		 ===========================================================
--->
-	
-<xsl:template name="BCLaneSpace_ProcBifToMemoryUnit">	
-	
-	<xsl:param name="iBusStd"        select="'NONE'"/>	
-	<xsl:param name="iBusName"       select="'NONE'"/>	
-	<xsl:param name="iBifRank"       select="'NONE'"/>	
-	<xsl:param name="iStackToEast"   select="'NONE'"/>	
-	<xsl:param name="iStackToWest"   select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W" select="0"/>	
-	<xsl:param name="iStackToWest_W" select="0"/>	
-	<xsl:param name="iLaneInSpace_X" select="0"/>	
-	
-						
-<!--	
-	<xsl:message>Stack To East <xsl:value-of select="$iStackToEast"/></xsl:message>
-	<xsl:message>Stack to West <xsl:value-of select="$iStackToWest"/></xsl:message>
-	<xsl:message>Stack to East Width <xsl:value-of select="$iStackToEast_W"/></xsl:message>
-	<xsl:message>Stack to West Width <xsl:value-of select="$iStackToWest_W"/></xsl:message>
-	<xsl:message>Shared Bus Y <xsl:value-of select="$iSpaceSharedBus_Y"/></xsl:message>
-	<xsl:message>Lane in space X <xsl:value-of select="$iLaneInSpace_X"/></xsl:message>
-	<xsl:variable name="bcInSpace_X_"  select="($laneInSpace_X +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-	
--->	
-	
-	
-	<xsl:variable name="bcInSpace_X_"  select="$iLaneInSpace_X"/>
-	<xsl:variable name="procInstance_" select="BUSCONN[@IS_PROCCONN]/@INSTANCE"/>
-	<xsl:variable name="mem_procshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInstance_)]/@STACK_HORIZ_INDEX"/>
-	<xsl:variable name="mem_procshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInstance_)]/@SHAPE_VERTI_INDEX"/>
-						
-	<xsl:variable name="mem_procshp_Y_">
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$mem_procshp_hori_idx_"/>
-			<xsl:with-param name="iVertiIdx"  select="$mem_procshp_vert_idx_"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>							
-	
-	<xsl:variable name="cmplxStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-				
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="(($mem_procshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($mem_procshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-									
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-						
-	<xsl:variable name="mem_procStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-	
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-			<xsl:choose>
-				<xsl:when test="(($mem_procshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-					<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-				</xsl:when>	
-				<xsl:when test="(($mem_procshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-					<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-				</xsl:when>	
-				<xsl:otherwise>0</xsl:otherwise>	
-			</xsl:choose>	
-									
-		</xsl:when>
-	</xsl:choose>
-  </xsl:variable>
-						
-	<!-- Store the conns in a variable -->	
-	<xsl:variable name="memConn_heights_">
-
-		<xsl:for-each select="BUSCONN">
-								
-			<xsl:variable name="bifName_"       select="@BUSINTERFACE"/>
-			
-							
-			<xsl:choose>
-				<xsl:when test="@IS_PROCCONN and @BIF_Y">
-							
-					<xsl:variable name="procBif_Y_"    select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-					<xsl:variable name="procBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-					<xsl:variable name="procBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-					<xsl:variable name="procBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-					<xsl:variable name="bcProc_Y_"     select="($mem_procshp_Y_ + $procBif_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $mem_procStack_H_diff_)"/>
-					<xsl:variable name="bcProc_X_">
-						<xsl:choose>
-							<xsl:when test="$procBifSide_ = '0'">
-		 						<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-							</xsl:when>
-							<xsl:when test="$procBifSide_ = '1'">
-		 						<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-							</xsl:when>
-							<xsl:otherwise>0</xsl:otherwise>
-						</xsl:choose>
-					</xsl:variable>
-						
-					<MEMCONN X="{$bcProc_X_}" Y="{$bcProc_Y_}" BUSNAME="{$procBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$procBifRank_}" BIFSIDE="{$procBifSide_}"/>
-										
-				</xsl:when>
-									
-				<xsl:otherwise>
-									
-					<xsl:variable name="memcInstance_"  select="@INSTANCE"/>
-					<xsl:variable name="memcshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $memcInstance_)]]/@SHAPE_VERTI_INDEX"/>
-					<xsl:variable name="memcBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $memcInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-					<xsl:variable name="memcBif_Y_"    select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $memcInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_Y"/>
-										
-					<xsl:variable name="memshp_Y_">
-						<xsl:call-template name="_calc_Stack_Shape_Y">
-							<xsl:with-param name="iHorizIdx"  select="$mem_procshp_hori_idx_"/>
-							<xsl:with-param name="iVertiIdx"  select="$memcshp_vert_idx_"/>
-						</xsl:call-template>
-				    </xsl:variable>
-					
-					<xsl:variable name="memcMOD_W_" select="((/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $memcInstance_)]]/@MODS_W) * $BLKD_MOD_W)"/>
-										
-					<xsl:variable name="procBif_Y_"   select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-					
-					<xsl:variable name="memcConn_Y_">
-						<xsl:choose>
-							<xsl:when test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $memcInstance_)]]/@MODS_H = 1)">
-								<xsl:value-of  select="($memshp_Y_ + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V) +  ($memcBif_Y_ * ($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V)) + ceiling($BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $cmplxStack_H_diff_)"/>
-							</xsl:when>
-							<xsl:otherwise>
-								<xsl:value-of  select="($memshp_Y_ + $BLKD_MOD_H + $BLKD_MOD_LANE_H + ($memcBif_Y_ * ($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V)) + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $cmplxStack_H_diff_)"/>
-							</xsl:otherwise>
-						</xsl:choose>
-					</xsl:variable>
-					
-					<xsl:variable name="memcConn_X_">
-						<xsl:choose>
-							<xsl:when test="$memcBifSide_ = '0'">
- 								<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($memcMOD_W_ div 2) + $BLKD_BIFC_W))"/>
-							</xsl:when>
-							<xsl:when test="$memcBifSide_ = '1'">
- 								<xsl:value-of select="ceiling($memcMOD_W_ div 2)"/>
-							</xsl:when>
-						</xsl:choose>
-					</xsl:variable>
-						
-					<xsl:variable name="memcBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $memcInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-					<xsl:variable name="memcBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $memcInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-					
-					<MEMCONN X="{$memcConn_X_}" Y="{$memcConn_Y_}" BUSNAME="{$memcBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$memcBifRank_}" BIFSIDE="{$memcBifSide_}"/>
-<!--					
--->					
-					
-				</xsl:otherwise>
-			</xsl:choose>
-		</xsl:for-each>
-	</xsl:variable>
-						
-						
-	<!-- Draw the busconnection and horizontal lines.-->						
-	<xsl:for-each select="exsl:node-set($memConn_heights_)/MEMCONN">
-							
-		<xsl:variable name="bus_x_" select="($bcInSpace_X_ + ceiling($BLKD_BIFC_W div 2))"/>
-		<xsl:variable name="bus_y_" select="@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-		
-		<xsl:variable name="h_bus_ul_x_">
-			<xsl:choose>
-				<xsl:when test="@BIFSIDE='0'">
-					<xsl:value-of select="$bus_x_"/>
-				</xsl:when>
-				<xsl:when test="@BIFSIDE='1'">
-					<xsl:value-of select="(@X + $BLKD_BIFC_W + $BLKD_BUS_ARROW_W)"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		<xsl:variable name="h_bus_ul_y_" select="$bus_y_"/>
-	
-		<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-		<xsl:variable name="h_bus_width_">
-			<xsl:choose>
-				<xsl:when test="@BIFSIDE='0'">
-					<xsl:value-of select="(@X - $bus_x_ - $BLKD_BUS_ARROW_W)"/>
-				</xsl:when>
-				<xsl:when test="@BIFSIDE='1'">
-					<xsl:value-of select="$bus_x_ - $h_bus_ul_x_"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-<!--		
- 		<xsl:message>bc_X_       <xsl:value-of select="@X"/></xsl:message>
- 		<xsl:message>h_bus_ul_x  <xsl:value-of select="$h_bus_ul_x_"/></xsl:message>
- 		<xsl:message>h_bus_ul_y  <xsl:value-of select="$h_bus_ul_y_"/></xsl:message>
- 		<xsl:message>h_bus_width <xsl:value-of select="$h_bus_width_"/></xsl:message>
--->		
-		
-		<!-- Place the bus connection -->
-		<use   x="{@X}"   y="{@Y}"  xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/>
-		
-		<!-- Draw the arrow -->
-		<xsl:choose>
-			<xsl:when test="@BIFSIDE='0'">
-				<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowEast"/>
-			</xsl:when>
-			<xsl:when test="@BIFSIDE='1'">
-				<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowWest"/>
-			</xsl:when>
-		</xsl:choose>
-		
-		
-		<!-- Draw the horizontal part of the bus -->
-		<rect x="{$h_bus_ul_x_}" 
-		  	  y="{$h_bus_ul_y_}"  
-		 	  width= "{$h_bus_width_}" 
-		 	  height="{$h_bus_height_}" 
-		 	  style="stroke:none; fill:{$busColor_}"/>
-<!--		
--->	
-		
-	</xsl:for-each>
-						
-	<xsl:variable name="busTop_"  select="math:min(exsl:node-set($memConn_heights_)/MEMCONN/@Y)"/>
-	<xsl:variable name="busBot_"  select="math:max(exsl:node-set($memConn_heights_)/MEMCONN/@Y)"/>
-	<xsl:variable name="busName_" select="exsl:node-set($memConn_heights_)/MEMCONN/@BUSNAME"/>
-	
-	<xsl:variable name="v_bus_y_" select="$busTop_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-	
-	
-	<!-- Draw the vertical part of the bus -->	
-	<rect x="{$bcInSpace_X_ + $BLKD_P2P_BUS_W}" 
-	  	  y="{$v_bus_y_}"  
-	 	  width= "{$BLKD_P2P_BUS_W}" 
-	 	  height="{($busBot_ - $busTop_) + $BLKD_P2P_BUS_W}" 
-	 	  style="stroke:none; fill:{$busColor_}"/>
-<!--	
--->	
-	<!-- Place the bus label.-->	
-	<text class="p2pbuslabel" 
-			  x="{$bcInSpace_X_   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
-			  y="{$busTop_ + ($BLKD_BUS_ARROW_H * 3)}">
-			<xsl:value-of select="$busName_"/>
-	</text>	
-	
-						
-</xsl:template>					
-	
-	
-<!-- 
-		 ===========================================================
-			Handle generic Point to Point connections
-		 ===========================================================
--->
-	
-<xsl:template name="BCLaneSpace_PointToPoint">	
-	
-	<xsl:param name="iBusStd"        select="'NONE'"/>	
-	<xsl:param name="iBusName"       select="'NONE'"/>	
-	<xsl:param name="iBifRank"       select="'NONE'"/>	
-	<xsl:param name="iStackToEast"   select="'NONE'"/>	
-	<xsl:param name="iStackToWest"   select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W" select="0"/>	
-	<xsl:param name="iStackToWest_W" select="0"/>	
-	<xsl:param name="iLaneInSpace_X" select="0"/>	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="busColor_lt_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>							
-	
-	<xsl:variable name="bcInSpace_X_"  select="($iLaneInSpace_X +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-	<xsl:variable name="p2pInstance_" select="BUSCONN[(@BIF_Y)]/@INSTANCE"/>
-					
-	<xsl:variable name="p2pshp_hori_idx_">
-		<xsl:choose>
-			<xsl:when test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]">
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]/@STACK_HORIZ_INDEX"/>
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $p2pInstance_)])]/@STACK_HORIZ_INDEX"/>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>		
-					
-	<xsl:variable name="p2pshp_vert_idx_">
-		<xsl:choose>
-			<xsl:when test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]">
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]/@SHAPE_VERTI_INDEX"/>
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $p2pInstance_)])]/@SHAPE_VERTI_INDEX"/>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>		
-					
-<!--					
-					<xsl:variable name="p2pshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInstance_)]/@STACK_HORIZ_INDEX"/>
-					<xsl:variable name="p2pshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInstance_)]/@SHAPE_VERTI_INDEX"/>
--->					
-						
-	<xsl:variable name="p2pshp_Y_">
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$p2pshp_hori_idx_"/>
-			<xsl:with-param name="iVertiIdx"  select="$p2pshp_vert_idx_"/>
-		</xsl:call-template>
-	</xsl:variable>
-			
-	<xsl:variable name="cmplxStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-				
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-									
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-						
-																				
-	<xsl:variable name="procStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-			
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-									
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-						
-	
-	
-	<!-- Store the conns in a variable -->	
-	<xsl:variable name="p2pConn_heights_">
-	
-		<xsl:for-each select="BUSCONN">
-									
-			<xsl:variable name="bifName_" select="@BUSINTERFACE"/>
-							
-				<xsl:choose>
-					<xsl:when test="@IS_PROCCONN and @BIF_Y">
-										
-<!--										
-										<xsl:message>Proc <xsl:value-of select="$procInstance_"/></xsl:message>
--->										
-						<xsl:variable name="procBif_Y_"   select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-						<xsl:variable name="procBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $p2pInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-						<xsl:variable name="procBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $p2pInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-						<xsl:variable name="procBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $p2pInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-										
-						<xsl:variable name="bcProc_Y_"     select="($p2pshp_Y_ + $procBif_Y_ + ceiling($BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $procStack_H_diff_)"/>
-						<xsl:variable name="bcProc_X_">
-							<xsl:choose>
-								<xsl:when test="$procBifSide_ = '0'">
-		 							<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-								</xsl:when>
-								<xsl:when test="$procBifSide_ = '1'">
-		 							<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-								</xsl:when>
-								<xsl:otherwise>0</xsl:otherwise>
-							</xsl:choose>
-						</xsl:variable>
-						
-						<P2PCONN X="{$bcProc_X_}" Y="{$bcProc_Y_}" BUSNAME= "{$procBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$procBifRank_}" BIFSIDE="{$procBifSide_}"/>
-										
-<!--						
-						<xsl:message>bcProc_X_ <xsl:value-of select="$bcProc_X_"/></xsl:message>
-						<xsl:message>bcProc_Y_ <xsl:value-of select="$bcProc_Y_"/></xsl:message>
-						<P2PCONN X="{$bcInSpace_X_}" Y="{$bcProc_Y_}" BUSSTD="{$busStd}" BIFRANK="{$procBifRank_}" BIFSIDE="{$procBifSide_}" STACK_ID=""/>
--->						
-					</xsl:when>
-									
-					<xsl:otherwise>
-										
-						<xsl:variable name="modInstance_"     select="@INSTANCE"/>
-						<xsl:variable name="modshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $modInstance_)]]/@SHAPE_VERTI_INDEX"/>
-						<xsl:variable name="modBifSide_"      select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-						<xsl:variable name="modBif_Y_"        select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_Y"/>
-						<xsl:variable name="modBc_Y_"         select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * $modBif_Y_) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-										
-<!--										
-						<xsl:message>Memory Instance <xsl:value-of select="$procInstance_"/></xsl:message>
--->										
-						
-						<xsl:variable name="modshp_Y_">
-							<xsl:call-template name="_calc_Stack_Shape_Y">
-								<xsl:with-param name="iHorizIdx"  select="$p2pshp_hori_idx_"/>
-								<xsl:with-param name="iVertiIdx"  select="$modshp_vert_idx_"/>
-							</xsl:call-template>
-						</xsl:variable>
-										
-						<xsl:variable name="modBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-						<xsl:variable name="modBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-						<xsl:variable name="bcMod_Y_"     select="($modshp_Y_ + $modBc_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $cmplxStack_H_diff_)"/>
-						<xsl:variable name="bcMod_X_">
-							<xsl:choose>
-								<xsl:when test="$modBifSide_ = '0'">
-		 							<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-								</xsl:when>
-								<xsl:when test="$modBifSide_ = '1'">
-		 							<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-								</xsl:when>
-								<xsl:otherwise>0</xsl:otherwise>
-							</xsl:choose>
-						</xsl:variable>
-						
-<!--										
-						<xsl:message>Bc Bif Y <xsl:value-of select="$modBif_Y_"/></xsl:message>	
-						<xsl:message>Bc Mod Y <xsl:value-of select="$modBc_Y_"/></xsl:message>	
-						<xsl:message>Bc Mod X <xsl:value-of select="$bcMod_X_"/></xsl:message>	
-						<P2PCONN X="{$bcInSpace_X_}" Y="{$bcMod_Y_}" BUSSTD="{$busStd}" BIFRANK="{$modBifRank_}" BIFSIDE="{$modBifSide_}"/>
--->										
-						<P2PCONN X="{$bcMod_X_}" Y="{$bcMod_Y_}" BUSNAME="{$modBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$modBifRank_}" BIFSIDE="{$modBifSide_}"/>
-						
-					</xsl:otherwise>
-									
-				</xsl:choose>
-			</xsl:for-each>
-		</xsl:variable>
-	
-	
-	<xsl:variable name="busTop_"  select="math:min(exsl:node-set($p2pConn_heights_)/P2PCONN/@Y)"/>
-	<xsl:variable name="busBot_"  select="math:max(exsl:node-set($p2pConn_heights_)/P2PCONN/@Y)"/>
-	<xsl:variable name="v_bus_y_" select="$busTop_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-	<xsl:variable name="busName_" select="exsl:node-set($p2pConn_heights_)/P2PCONN/@BUSNAME"/>
-	<xsl:variable name="busStd_"  select="exsl:node-set($p2pConn_heights_)/P2PCONN/@BUSSTD"/>
-<!--	
--->	
-	<!-- Draw the vertical part of the bus -->	
-	
-	<xsl:if test="$busStd_ = 'PLBV46_P2P'">
-	<rect x="{$bcInSpace_X_ + $BLKD_P2P_BUS_W}" 
-	  	  y="{$v_bus_y_}"  
-	 	  width= "{$BLKD_P2P_BUS_W}" 
-	 	  height="{($busBot_ - $busTop_) + $BLKD_P2P_BUS_W}" 
-	 	  style="stroke:{$COL_WHITE};stroke-width:1.5;fill:{$busColor_}"/>
-	</xsl:if>
-	
-	<xsl:if test="not($busStd_ = 'PLBV46_P2P')">
-	<rect x="{$bcInSpace_X_ + $BLKD_P2P_BUS_W}" 
-	  	  y="{$v_bus_y_}"  
-	 	  width= "{$BLKD_P2P_BUS_W}" 
-	 	  height="{($busBot_ - $busTop_) + $BLKD_P2P_BUS_W}" 
-	 	  style="stroke:none;fill:{$busColor_}"/>
-	</xsl:if>
-	
-<!--	
--->	
-	
-<!--	
-	 	  style="stroke:{$busColor_lt_};stroke-width:1;stroke-opacity:0.9;fill-opacity:2.0;fill:{$busColor_}"/>
--->	
-	<!-- Place the bus label.-->	
-	<text class="p2pbuslabel" 
-			  x="{$bcInSpace_X_   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
-			  y="{$busTop_ + ($BLKD_BUS_ARROW_H * 3)}">
-			<xsl:value-of select="$busName_"/>
-	</text>	
-						
-		<!-- Draw the busconnection and horizontal lines.-->						
-		<xsl:for-each select="exsl:node-set($p2pConn_heights_)/P2PCONN">
-							
-			<xsl:variable name="bus_x_" select="($bcInSpace_X_ + ceiling($BLKD_BIFC_W div 2))"/>
-			<xsl:variable name="bus_y_" select="@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-		
-			<xsl:variable name="h_bus_ul_x_">
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'">
-						<xsl:value-of select="$bus_x_"/>
-					</xsl:when>
-					<xsl:when test="@BIFSIDE='1'">
-						<xsl:value-of select="(@X + $BLKD_BIFC_W + $BLKD_BUS_ARROW_W) - 1"/>
-					</xsl:when>
-				</xsl:choose>
-			</xsl:variable>	
-		
-			<xsl:variable name="h_bus_ul_y_" select="$bus_y_"/>
-	
-			<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-			<xsl:variable name="h_bus_width_">
-<!--				
-				<xsl:message>BIFSIDE <xsl:value-of select="@BIFSIDE"/></xsl:message>
-				<xsl:message>BUSSTD  <xsl:value-of select="@BUSSTD"/></xsl:message>
-				<xsl:message>BIFRANK <xsl:value-of select="@BIFRANK"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'">
-						<xsl:value-of select="(@X - $bus_x_ - $BLKD_BUS_ARROW_W)"/>
-					</xsl:when>
-					<xsl:when test="@BIFSIDE='1'">
-						<xsl:value-of select="$bus_x_ - $h_bus_ul_x_ + 1"/>
-					</xsl:when>
-					
-				</xsl:choose>
-			</xsl:variable>	
-			
-			<!-- Draw Bus connection-->
-			<use   x="{@X}"   y="{@Y}"  xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/>
-			
-			<!-- Draw the arrow -->
-			<xsl:choose>
-				<xsl:when test="((@BIFSIDE='0') and not((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowEast"/>
-				</xsl:when>
-				<xsl:when test="((@BIFSIDE='1') and not((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowWest"/>
-				</xsl:when>
-				
-				<xsl:when test="((@BIFSIDE='0') and ((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowHInitiator"/>
-				</xsl:when>
-				
-				<xsl:when test="((@BIFSIDE='1') and ((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowHInitiator"/>
-				</xsl:when>
-					
-			</xsl:choose>
-		
-			<!-- Draw the horizontal part of the bus -->
-			<rect x="{$h_bus_ul_x_}" 
-		  	  	  y="{$h_bus_ul_y_}"  
-		 	  	  width= "{$h_bus_width_}" 
-		 	 	  height="{$h_bus_height_}" 
-		 	      style="stroke:none; fill:{$busColor_}"/>
-		
-	</xsl:for-each>
-						
-<!--	
-	<xsl:variable name="busTop_" select="math:min(exsl:node-set($p2pConn_heights_)/P2PCONN/@Y)"/>
-	<xsl:variable name="busBot_" select="math:max(exsl:node-set($p2pConn_heights_)/P2PCONN/@Y)"/>
-	<xsl:variable name="v_bus_y_" select="$busTop_ + ceiling($BLKD_BIFC_H div 2) - ceiling($P2P_BUS_W div 2)"/>
-	<xsl:variable name="busName_" select="exsl:node-set($p2pConn_heights_)/P2PCONN/@BUSNAME"/>
--->	
-	<!-- Draw the vertical part of the bus -->	
-<!--	
-	<rect x="{$bcInSpace_X_ + $P2P_BUS_W}" 
-	  	  y="{$v_bus_y_}"  
-	 	  width= "{$P2P_BUS_W}" 
-	 	  height="{($busBot_ - $busTop_) + $P2P_BUS_W}" 
-	 	  style="stroke:{$COL_WHITE};stroke-width:1;stroke-opacity:0.9;fill-opacity:2.0;fill:{$busColor_}"/>
--->	
-	
-<!--	
-	 	  style="stroke:{$busColor_lt_};stroke-width:1;stroke-opacity:0.9;fill-opacity:2.0;fill:{$busColor_}"/>
--->	
-	<!-- Place the bus label.-->	
-<!--	
-	<text class="p2pbuslabel" 
-			  x="{$bcInSpace_X_   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
-			  y="{$busTop_ + ($BLKD_BUS_ARROW_H * 3)}">
-			<xsl:value-of select="$busName_"/>
-	</text>	
--->	
-	
-						
-</xsl:template>	
-	
-	
-					
-<!-- 
-		 ===========================================================
-			Handle MultiStack Point to Point connections
-		 ===========================================================
--->
-					
-<xsl:template name="BCLaneSpace_MultiStack_PointToPoint">	
-	
-	<xsl:param name="iBusStd"          select="'NONE'"/>	
-	<xsl:param name="iBusName"         select="'NONE'"/>	
-	<xsl:param name="iBifRank"         select="'NONE'"/>	
-	<xsl:param name="iStackToEast"     select="'NONE'"/>	
-	<xsl:param name="iStackToWest"     select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W"   select="0"/>	
-	<xsl:param name="iStackToWest_W"   select="0"/>	
-	<xsl:param name="iLaneInSpace_X"   select="0"/>	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>							
-	
-	<!-- Store the connections in a variable -->
-	<xsl:variable name="bcInSpace_X_"  select="($iLaneInSpace_X +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-					
-	<xsl:variable name="multiConns_">
-						
-		<xsl:for-each select="BUSCONN">
-							
-			<xsl:variable name="bifName_"      select="@BUSINTERFACE"/>
-			<xsl:variable name="multiInstance_" select="@INSTANCE"/>
-			<xsl:variable name="mulshp_hori_idx_">
-				<xsl:choose>
-					<xsl:when test="@IS_PROCCONN">
-						<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $multiInstance_)]/@STACK_HORIZ_INDEX"/>
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $multiInstance_)])]/@STACK_HORIZ_INDEX"/>
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable> 
-							
-			<xsl:variable name="mulshp_vert_idx_">
-				<xsl:choose>
-					<xsl:when test="@IS_PROCCONN">
-						<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $multiInstance_)]/@SHAPE_VERTI_INDEX"/>
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $multiInstance_)])]/@SHAPE_VERTI_INDEX"/>
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable> 
-				
-<!--							
-			<xsl:message>Shape Horiz <xsl:value-of select="$mulshp_hori_idx_"/></xsl:message>
-			<xsl:message>Shape Verti <xsl:value-of select="$mulshp_vert_idx_"/></xsl:message>
--->	
-							
-			<xsl:variable name="mulshp_Y_">
-				<xsl:call-template name="_calc_Stack_Shape_Y">
-					<xsl:with-param name="iHorizIdx"  select="$mulshp_hori_idx_"/>
-					<xsl:with-param name="iVertiIdx"  select="$mulshp_vert_idx_"/>
-				</xsl:call-template>
-			</xsl:variable>
-						
-			<xsl:variable name="cmplxStack_H_diff_">
-				<xsl:choose>
-					<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-					<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-						
-						<xsl:variable name="stackToWest_AbvSbs_H_">
-							<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-								<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-							</xsl:call-template>
-						</xsl:variable>
-			
-						<xsl:variable name="stackToEast_AbvSbs_H_">
-							<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-								<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-							</xsl:call-template>
-						</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-						<xsl:choose>
-							<xsl:when test="(($mulshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-									<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-							</xsl:when>	
-							<xsl:when test="(($mulshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-								<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-							</xsl:when>	
-							<xsl:otherwise>0</xsl:otherwise>	
-						</xsl:choose>	
-									
-					</xsl:when>
-				</xsl:choose>
-			</xsl:variable>
-						
-																				
-			<xsl:variable name="procStack_H_diff_">
-				<xsl:choose>
-					<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-					<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-			
-						<xsl:variable name="stackToWest_AbvSbs_H_">
-							<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-								<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-							</xsl:call-template>
-						</xsl:variable>
-				
-						<xsl:variable name="stackToEast_AbvSbs_H_">
-							<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-								<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-							</xsl:call-template>
-						</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-						<xsl:choose>
-							<xsl:when test="(($mulshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-								<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-							</xsl:when>	
-							<xsl:when test="(($mulshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-								<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-							</xsl:when>	
-							<xsl:otherwise>0</xsl:otherwise>	
-						</xsl:choose>	
-									
-					</xsl:when>
-				</xsl:choose>
-			</xsl:variable>
-							
-			<xsl:choose>
-							
-				<xsl:when test="@IS_PROCCONN and @BIF_Y">
-										
-					<xsl:variable name="procBif_Y_"   select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-										
-					<xsl:variable name="procBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-					<xsl:variable name="procBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-					<xsl:variable name="procBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-										
-					<xsl:variable name="bcProc_Y_"     select="($mulshp_Y_ + $procBif_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $procStack_H_diff_)"/>
-					
-					<xsl:variable name="bcProc_X_">
-						<xsl:choose>
-							<xsl:when test="$procBifSide_ = '0'">
-		 						<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-							</xsl:when>
-							<xsl:when test="$procBifSide_ = '1'">
-		 						<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-							</xsl:when>
-							<xsl:otherwise>0</xsl:otherwise>
-						</xsl:choose>
-					</xsl:variable>
-						
-					<MULTICONN X="{$bcProc_X_}" Y="{$bcProc_Y_}" BUSNAME="{$procBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$procBifRank_}" BIFSIDE="{$procBifSide_}"/>
-				</xsl:when>
-									
-				<xsl:otherwise>
-											
-					<xsl:variable name="modType_"     select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/@MODCLASS"/>
-					<xsl:variable name="modBif_Y_"    select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_Y"/>
-					<xsl:variable name="modBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-					<xsl:variable name="modBusStd_"   select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSSTD"/>
-					<xsl:variable name="memcMOD_W_"   select="((/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $multiInstance_)]]/@MODS_W) * $BLKD_MOD_W)"/>
-								
-					<xsl:variable name="modBc_Y_">
-						<xsl:choose>
-							<xsl:when test="($modType_ = 'MEMORY_CNTLR') and (($modBusStd_ = 'LMB') or ($modBusStd_= 'OCM'))">
-					      		<xsl:value-of select="$BLKD_MOD_H + $BLKD_MOD_LANE_H + ((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * $modBif_Y_))"/>
-							</xsl:when>
-							<xsl:otherwise>
-					      		<xsl:value-of select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * $modBif_Y_) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-							</xsl:otherwise>
-						</xsl:choose>
-					</xsl:variable>   
-<!--					
-					<xsl:message><xsl:value-of select="$multiInstance_"/>.<xsl:value-of select="$bifName_"/>:Y = <xsl:value-of select="$modBif_Y_"/></xsl:message>
-					<xsl:message><xsl:value-of select="$multiInstance_"/>.<xsl:value-of select="$bifName_"/>:BcY = <xsl:value-of select="$modBc_Y_"/></xsl:message>
-					<xsl:message><xsl:value-of select="$multiInstance_"/>.<xsl:value-of select="$bifName_"/>:TcY = <xsl:value-of select="($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V)"/></xsl:message>
--->	
-					
-					<xsl:variable name="modBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-					<xsl:variable name="modBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $multiInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-					
-<!--					
-					<xsl:variable name="bcMod_Y_"     select="($mulshp_Y_ + $modBc_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2))"/>
--->					
-					<xsl:variable name="bcMod_Y_"     select="($mulshp_Y_ + $modBc_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $cmplxStack_H_diff_)"/>
-					
-					<xsl:variable name="bcMod_X_">
-						<xsl:choose>
-							<xsl:when test="$modBifSide_ = '0'">
-		 						<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($memcMOD_W_ div 2) + $BLKD_BIFC_W))"/>
-							</xsl:when>
-							<xsl:when test="$modBifSide_ = '1'">
-		 						<xsl:value-of select="ceiling($memcMOD_W_ div 2)"/>
-							</xsl:when>
-							<xsl:otherwise>0</xsl:otherwise>
-						</xsl:choose>
-					</xsl:variable>
-						
-					
-					<MULTICONN X="{$bcMod_X_}" Y="{$bcMod_Y_}" BUSNAME="{$modBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$modBifRank_}" BIFSIDE="{$modBifSide_}"/>
-<!--					
-					<MULTICONN X="{$bcInSpace_X_}" Y="{$bcMod_Y_}" BUSSTD="{$busStd}" BIFRANK="{$modBifRank_}" BIFSIDE="{$modBifSide_}"/>
--->					
-						
-					</xsl:otherwise>
-				</xsl:choose>	
-			</xsl:for-each>
-		</xsl:variable>
-					
-		<!-- Draw the busconnection and horizontal lines.-->						
-		<xsl:for-each select="exsl:node-set($multiConns_)/MULTICONN">
-							
-			<xsl:variable name="bus_x_" select="($bcInSpace_X_ + ceiling($BLKD_BIFC_W div 2))"/>
-			<xsl:variable name="bus_y_" select="@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-		
-			<xsl:variable name="h_bus_ul_x_">
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'">
-						<xsl:value-of select="$bus_x_"/>
-					</xsl:when>
-					<xsl:when test="@BIFSIDE='1'">
-						<xsl:value-of select="(@X + $BLKD_BIFC_W + $BLKD_BUS_ARROW_W)"/>
-					</xsl:when>
-				</xsl:choose>
-			</xsl:variable>	
-		
-			<xsl:variable name="h_bus_ul_y_" select="$bus_y_"/>
-	
-			<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-			<xsl:variable name="h_bus_width_">
-<!--				
-				<xsl:message>BUSSTD  <xsl:value-of select="@BUSSTD"/></xsl:message>
-				<xsl:message>BIFSIDE <xsl:value-of select="@BIFSIDE"/></xsl:message>
-				<xsl:message>BIFRANK <xsl:value-of select="@BIFRANK"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'">
-						<xsl:value-of select="(@X - $bus_x_ - $BLKD_BUS_ARROW_W)"/>
-					</xsl:when>
-					<xsl:when test="@BIFSIDE='1'">
-						<xsl:value-of select="$bus_x_ - $h_bus_ul_x_"/>
-					</xsl:when>
-				</xsl:choose>
-			</xsl:variable>		
-			
-			
-			<!-- Draw the horizontal part of the bus -->
-			<rect x="{$h_bus_ul_x_}" 
-		  	  	  y="{$h_bus_ul_y_}"  
-		 	  	  width= "{$h_bus_width_}" 
-		 	 	  height="{$h_bus_height_}" 
-		 	      style="stroke:none; fill:{$busColor_}"/>
-		
-			
-			<!-- Draw the arrow -->
-			<xsl:choose>
-				<xsl:when test="((@BIFSIDE='0') and not((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowEast"/>
-				</xsl:when>
-				<xsl:when test="((@BIFSIDE='1') and not((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowWest"/>
-				</xsl:when>
-				
-				<xsl:when test="((@BIFSIDE='0') and ((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowHInitiator"/>
-				</xsl:when>
-				
-				<xsl:when test="((@BIFSIDE='1') and ((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowHInitiator"/>
-				</xsl:when>
-					
-			</xsl:choose>
-		
-			<use   x="{@X}"   y="{@Y}"  xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/>
-			
-							
-		</xsl:for-each>
-						
-		<xsl:variable name="busTop_" select="math:min(exsl:node-set($multiConns_)/MULTICONN/@Y)"/>
-		<xsl:variable name="busBot_" select="math:max(exsl:node-set($multiConns_)/MULTICONN/@Y)"/>
-<!--	
-		<xsl:variable name="topRnk_" select="(exsl:node-set($multiConns_)/MULTICONN[(@Y = $busTop_)]/@BIFRANK)"/>
-		<xsl:variable name="botRnk_" select="(exsl:node-set($multiConns_)/MULTICONN[(@Y = $busBot_)]/@BIFRANK)"/>
--->	
-	
-		<xsl:variable name="v_bus_y_" select="$busTop_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-		<xsl:variable name="busName_" select="exsl:node-set($multiConns_)/MULTICONN/@BUSNAME"/>
-	
-		<!-- Draw the vertical part of the bus -->	
-		<rect x="{$bcInSpace_X_ + $BLKD_P2P_BUS_W}" 
-	  	  	  y="{$v_bus_y_}"  
-	 	      width= "{$BLKD_P2P_BUS_W}" 
-	 	      height="{($busBot_ - $busTop_) + $BLKD_P2P_BUS_W}" 
-	 	      style="stroke:none; fill:{$busColor_}"/>
-						
-	<!-- Place the bus label.-->	
-		<text class="p2pbuslabel" 
-			  x="{$bcInSpace_X_   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
-			  y="{$busTop_ + ($BLKD_BUS_ARROW_H * 3)}">
-			<xsl:value-of select="$busName_"/>
-		</text>	
-	
-<!--						
-		<xsl:message>Bot Rank  <xsl:value-of select="$botRnk_"/></xsl:message>	
--->						
-						
-<!--	
-		<xsl:call-template name="Draw_P2PBus">
-			<xsl:with-param name="busX"    select="$bcInSpace_X_"/>
-			<xsl:with-param name="busTop"  select="$busTop_"/>
-			<xsl:with-param name="busBot"  select="$busBot_"/>
-			<xsl:with-param name="topRnk"  select="$topRnk_"/>
-			<xsl:with-param name="botRnk"  select="$botRnk_"/>
-			<xsl:with-param name="busStd"  select="$busStd"/>
-			<xsl:with-param name="busName" select="$busName"/>
-		</xsl:call-template>
--->	
-					
-</xsl:template>	
-	
-	
-<!-- 
-		 ===========================================================
-			Handle Processor to processor connections
-		 ===========================================================
--->
-<xsl:template name="BCLaneSpace_ProcToProc">	
-	
-	<xsl:param name="iBusStd"         select="'NONE'"/>	
-	<xsl:param name="iBusName"        select="'NONE'"/>	
-	<xsl:param name="iBifRank"        select="'NONE'"/>	
-	<xsl:param name="iStackToEast"    select="'NONE'"/>	
-	<xsl:param name="iStackToWest"    select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W"  select="0"/>	
-	<xsl:param name="iStackToWest_W"  select="0"/>	
-	<xsl:param name="iLaneInSpace_X"  select="0"/>	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>							
-		
-	<xsl:variable name="pr2pr_StackToWest_"   select="math:min(BUSCONN/@STACK_HORIZ_INDEX)"/>
-	<xsl:variable name="pr2pr_StackToEast_"   select="math:max(BUSCONN/@STACK_HORIZ_INDEX)"/>
-	<xsl:variable name="proc2procConn_heights_">
-	
-	<xsl:for-each select="BUSCONN">
-					
-		<xsl:variable name="procInstance_" select="@INSTANCE"/>
-		<xsl:variable name="bifName_"      select="@BUSINTERFACE"/>
-		<xsl:variable name="procshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInstance_)]/@STACK_HORIZ_INDEX"/>
-		<xsl:variable name="procshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $procInstance_)]/@SHAPE_VERTI_INDEX"/>
-		<xsl:variable name="procshp_Y_">
-			<xsl:call-template name="_calc_Stack_Shape_Y">
-				<xsl:with-param name="iHorizIdx"  select="$procshp_hori_idx_"/>
-				<xsl:with-param name="iVertiIdx"  select="$procshp_vert_idx_"/>
-			</xsl:call-template>
-		</xsl:variable>
-						
-		<xsl:variable name="procStack_H_diff_">
-			<xsl:choose>
-				<xsl:when test="   (($pr2pr_StackToEast_ = 'NONE') or ($pr2pr_StackToWest_ = 'NONE'))">0</xsl:when>
-				<xsl:when test="not(($pr2pr_StackToEast_ = 'NONE') or ($pr2pr_StackToWest_ = 'NONE'))">
-			
-					<xsl:variable name="stackToWest_AbvSbs_H_">
-						<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-							<xsl:with-param name="iStackIdx"  select="$pr2pr_StackToWest_"/>
-						</xsl:call-template>
-					</xsl:variable>
-				
-					<xsl:variable name="stackToEast_AbvSbs_H_">
-						<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-							<xsl:with-param name="iStackIdx"  select="$pr2pr_StackToEast_"/>
-						</xsl:call-template>
-					</xsl:variable>
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-					<xsl:choose>
-						<xsl:when test="(($procshp_hori_idx_ = $pr2pr_StackToEast_) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-							<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-						</xsl:when>	
-						<xsl:when test="(($procshp_hori_idx_ = $pr2pr_StackToWest_) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-							<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-						</xsl:when>	
-						<xsl:otherwise>0</xsl:otherwise>	
-					</xsl:choose>	
-										
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>
-						
-		<!-- Store the conns in a variable -->	
-		<xsl:variable name="procBif_Y_"   select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-											
-		<xsl:variable name="procBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-		<xsl:variable name="procBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $procInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-									
-		<xsl:variable name="bcInSpace_X_">
-			<xsl:choose>
-				<xsl:when test="$procBifSide_ = '1'"><xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/></xsl:when>
-				<xsl:when test="$procBifSide_ = '0'"><xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - ceiling($BLKD_MOD_W div 2) - $BLKD_BIFC_W)"/></xsl:when>
-			</xsl:choose>
-		</xsl:variable> 
-							
-		<xsl:variable name="bcProc_Y_"     select="($procshp_Y_ + $procBif_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $procStack_H_diff_)"/>
-<!--							
-		<xsl:message>Conn X <xsl:value-of select="$bcInSpace_X_"/></xsl:message>
-		<xsl:message>Conn Y <xsl:value-of select="$bcProc_Y_"/></xsl:message>
--->							
-										
-				<PR2PRCONN X="{$bcInSpace_X_}" Y="{$bcProc_Y_}" BUSSTD="{$iBusStd}" BIFRANK="{$procBifRank_}" BIFSIDE="{$procBifSide_}" SHAPE_ID="{$procshp_hori_idx_}"/>
-			</xsl:for-each>
-		</xsl:variable>
-					
-		<xsl:variable name="pr2prLeft_"   select="math:min(exsl:node-set($proc2procConn_heights_)/PR2PRCONN/@SHAPE_ID)"/>
-		<xsl:variable name="pr2prRght_"   select="math:max(exsl:node-set($proc2procConn_heights_)/PR2PRCONN/@SHAPE_ID)"/>
-				
-		<xsl:variable name="pr2pr_stack_Left_X_">
-			<xsl:call-template name="_calc_Stack_X"> 
-				<xsl:with-param name="iStackIdx"  select="$pr2prLeft_"/>
-			</xsl:call-template>		
-		</xsl:variable>	
-					
-		<xsl:variable name="pr2pr_stack_Rght_X_">
-			<xsl:call-template name="_calc_Stack_X"> 
-				<xsl:with-param name="iStackIdx"  select="$pr2prRght_"/>
-			</xsl:call-template>		
-		</xsl:variable>	
-					
-<!--					
-					<xsl:message>Left stack X <xsl:value-of select="$pr2pr_stack_Left_X_"/></xsl:message>
-					<xsl:message>Rght stack X <xsl:value-of select="$pr2pr_stack_Rght_X_"/></xsl:message>
--->					
-		<xsl:variable name="pr2pr_space_W_" select="($pr2pr_stack_Rght_X_ - $pr2pr_stack_Left_X_)"/>
-						
-					
-		<xsl:variable name="pr2pr_extStackEast_W_">
-			<xsl:call-template name="_calc_Stack_Width">
-				<xsl:with-param name="iStackIdx"  select="$pr2prRght_"/>
-			</xsl:call-template>
-		</xsl:variable>
-					
-		<xsl:variable name="pr2pr_extStackWest_W_">
-			<xsl:call-template name="_calc_Stack_Width">
-				<xsl:with-param name="iStackIdx"  select="$pr2prLeft_"/>
-			</xsl:call-template>
-		</xsl:variable>
-					
-<!--					
-					<xsl:message>Space W <xsl:value-of select="$pr2pr_space_W_"/></xsl:message>
-					<xsl:message>Rght stack <xsl:value-of select="$pr2pr_extStackEast_W_"/></xsl:message>
-					<xsl:message>Left stack <xsl:value-of select="$pr2pr_extStackWest_W_"/></xsl:message>
--->					
-	
-		<xsl:variable name="connLeft_X_" select="ceiling($BLKD_MOD_W div 2)"/>
-		<xsl:variable name="connRght_X_" select="($pr2pr_space_W_ - ceiling($pr2pr_extStackWest_W_ div 2) + ceiling($pr2pr_extStackEast_W_ div 2) - ceiling($BLKD_MOD_W div 2) - $BLKD_BIFC_W)"/>
-					
-					<!-- Draw the busconnections .-->						
-		<xsl:for-each select="exsl:node-set($proc2procConn_heights_)/PR2PRCONN">
-			<xsl:variable name="conn_X_">
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE = '1'"><xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/></xsl:when>
-					<xsl:when test="@BIFSIDE = '0'"><xsl:value-of select="($pr2pr_space_W_ - ceiling($pr2pr_extStackWest_W_ div 2) + ceiling($pr2pr_extStackEast_W_ div 2) - ceiling($BLKD_MOD_W div 2) - $BLKD_BIFC_W)"/></xsl:when>
-<!--									
-									<xsl:when test="@BIFSIDE = '0'"><xsl:value-of select="($pr2pr_space_W_ + $pr2pr_extStackWest_W_ + $pr2pr_extStackEast_W_ - ceiling($BLKD_MOD_W div 2) - $BLKD_BIFC_W)"/></xsl:when>
--->	
-				</xsl:choose>
-			</xsl:variable> 
-							
-						
-			<use   x="{$conn_X_}"   y="{@Y}"  xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/>
-		</xsl:for-each>
-					
-		<xsl:variable name="bc_Y_"     select="math:min(exsl:node-set($proc2procConn_heights_)/PR2PRCONN/@Y)"/>
-		<xsl:variable name="bcLeft_"   select="math:min(exsl:node-set($proc2procConn_heights_)/PR2PRCONN/@X)"/>
-		<xsl:variable name="bcRght_"   select="math:max(exsl:node-set($proc2procConn_heights_)/PR2PRCONN/@X)"/>
-					
-		<xsl:variable name="leftRnk_"  select="(exsl:node-set($proc2procConn_heights_)/PR2PRCONN[(@X = $bcLeft_)]/@BIFRANK)"/>
-		<xsl:variable name="rghtRnk_"  select="(exsl:node-set($proc2procConn_heights_)/PR2PRCONN[(@X = $bcRght_)]/@BIFRANK)"/>
-						
-		<xsl:call-template name="Draw_Proc2ProcBus">
-			<xsl:with-param name="iBc_Y"     select="$bc_Y_"/>
-			<xsl:with-param name="iBusStd"   select="$iBusStd"/>
-			<xsl:with-param name="iBusName"  select="$iBusName"/>
-			<xsl:with-param name="iLeftRnk"  select="$leftRnk_"/>
-			<xsl:with-param name="iRghtRnk"  select="$rghtRnk_"/>
-			<xsl:with-param name="iBcLeft_X" select="$connLeft_X_ + $BLKD_BIFC_W"/>
-			<xsl:with-param name="iBcRght_X" select="$connRght_X_"/>
-		</xsl:call-template>
-				
-</xsl:template>	
-	
-<!-- 
-		 ===========================================================
-			Handle connections to the MPMC
-		 ===========================================================
--->
-<xsl:template name="BCLaneSpace_ToStandAloneMPMC">	
-	
-	<xsl:param name="iBusStd"        select="'NONE'"/>	
-	<xsl:param name="iBusName"       select="'NONE'"/>	
-	<xsl:param name="iBifRank"       select="'NONE'"/>	
-	<xsl:param name="iStackToEast"   select="'NONE'"/>	
-	<xsl:param name="iStackToWest"   select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W" select="0"/>	
-	<xsl:param name="iStackToWest_W" select="0"/>	
-	<xsl:param name="iLaneInSpace_X" select="0"/>	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="busColor_lt_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>							
-	
-	<xsl:variable name="bcInSpace_X_"  select="($iLaneInSpace_X +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-	<xsl:variable name="p2pInstance_" select="BUSCONN[(@BIF_Y)]/@INSTANCE"/>
-					
-	<xsl:variable name="p2pshp_hori_idx_">
-		<xsl:choose>
-			<xsl:when test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]">
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]/@STACK_HORIZ_INDEX"/>
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $p2pInstance_)])]/@STACK_HORIZ_INDEX"/>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>		
-					
-	<xsl:variable name="p2pshp_vert_idx_">
-		<xsl:choose>
-			<xsl:when test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]">
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $p2pInstance_)]/@SHAPE_VERTI_INDEX"/>
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $p2pInstance_)])]/@SHAPE_VERTI_INDEX"/>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>		
-					
-	<xsl:variable name="p2pshp_Y_">
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$p2pshp_hori_idx_"/>
-			<xsl:with-param name="iVertiIdx"  select="$p2pshp_vert_idx_"/>
-		</xsl:call-template>
-	</xsl:variable>
-			
-	<xsl:variable name="cmplxStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-				
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				
-				<xsl:choose>
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-									
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-						
-	<xsl:variable name="procStack_H_diff_">
-		<xsl:choose>
-			<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-			
-				<xsl:variable name="stackToWest_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-				<xsl:variable name="stackToEast_AbvSbs_H_">
-					<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-						<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-					</xsl:call-template>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-						<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:when test="(($p2pshp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-						<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-					</xsl:when>	
-					<xsl:otherwise>0</xsl:otherwise>	
-				</xsl:choose>	
-									
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-						
-	
-	
-	<!-- Store the conns in a variable -->	
-	<xsl:variable name="p2pConn_heights_">
-	
-		<xsl:for-each select="BUSCONN">
-									
-			<xsl:variable name="bifName_" select="@BUSINTERFACE"/>
-							
-				<xsl:choose>
-					<xsl:when test="@IS_PROCCONN and @BIF_Y">
-										
-<!--										
-										<xsl:message>Proc <xsl:value-of select="$procInstance_"/></xsl:message>
--->										
-						<xsl:variable name="procBif_Y_"   select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-						<xsl:variable name="procBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $p2pInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-						<xsl:variable name="procBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $p2pInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-						<xsl:variable name="procBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $p2pInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-										
-						<xsl:variable name="bcProc_Y_"     select="($p2pshp_Y_ + $procBif_Y_ + ceiling($BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $procStack_H_diff_)"/>
-						<xsl:variable name="bcProc_X_">
-							<xsl:choose>
-								<xsl:when test="$procBifSide_ = '0'">
-		 							<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-								</xsl:when>
-								<xsl:when test="$procBifSide_ = '1'">
-		 							<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-								</xsl:when>
-								<xsl:otherwise>0</xsl:otherwise>
-							</xsl:choose>
-						</xsl:variable>
-						
-						<P2PCONN X="{$bcProc_X_}" Y="{$bcProc_Y_}" BUSNAME= "{$procBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$procBifRank_}" BIFSIDE="{$procBifSide_}"/>
-										
-					</xsl:when>
-									
-					<xsl:otherwise>
-										
-						<xsl:variable name="modInstance_"     select="@INSTANCE"/>
-						<xsl:variable name="modshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $modInstance_)]]/@SHAPE_VERTI_INDEX"/>
-						<xsl:variable name="modBifSide_"      select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-						<xsl:variable name="modBif_Y_"        select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_Y"/>
-						<xsl:variable name="modBc_Y_"         select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * $modBif_Y_) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-										
-<!--										
-						<xsl:message>Memory Instance <xsl:value-of select="$procInstance_"/></xsl:message>
--->										
-						
-						<xsl:variable name="modshp_Y_">
-							<xsl:call-template name="_calc_Stack_Shape_Y">
-								<xsl:with-param name="iHorizIdx"  select="$p2pshp_hori_idx_"/>
-								<xsl:with-param name="iVertiIdx"  select="$modshp_vert_idx_"/>
-							</xsl:call-template>
-						</xsl:variable>
-										
-						<xsl:variable name="modBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-						<xsl:variable name="modBusName_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSNAME"/>
-						<xsl:variable name="bcMod_Y_"     select="($modshp_Y_ + $modBc_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $cmplxStack_H_diff_)"/>
-						<xsl:variable name="bcMod_X_">
-							<xsl:choose>
-								<xsl:when test="$modBifSide_ = '0'">
-		 							<xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/>
-								</xsl:when>
-								<xsl:when test="$modBifSide_ = '1'">
-		 							<xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/>
-								</xsl:when>
-								<xsl:otherwise>0</xsl:otherwise>
-							</xsl:choose>
-						</xsl:variable>
-						
-						<P2PCONN X="{$bcMod_X_}" Y="{$bcMod_Y_}" BUSNAME="{$modBusName_}" BUSSTD="{$iBusStd}" BIFRANK="{$modBifRank_}" BIFSIDE="{$modBifSide_}"/>
-						
-					</xsl:otherwise>
-									
-				</xsl:choose>
-			</xsl:for-each>
-		</xsl:variable>
-	
-	
-	<xsl:variable name="busTop_"  select="math:min(exsl:node-set($p2pConn_heights_)/P2PCONN/@Y)"/>
-	<xsl:variable name="busBot_"  select="math:max(exsl:node-set($p2pConn_heights_)/P2PCONN/@Y)"/>
-	<xsl:variable name="v_bus_y_" select="$busTop_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-	
-	<xsl:variable name="busName_" select="exsl:node-set($p2pConn_heights_)/P2PCONN/@BUSNAME"/>
-	<xsl:variable name="busStd_"  select="exsl:node-set($p2pConn_heights_)/P2PCONN/@BUSSTD"/>
-	
-<!--	
-	<xsl:message>BUS TOP <xsl:value-of select="$busTop_"/></xsl:message>
-	<xsl:message>BUS BOT <xsl:value-of select="$busBot_"/></xsl:message>
--->
-	
-	<!-- Draw the vertical part of the bus -->	
-<!--	
-	<rect x="{$bcInSpace_X_ + $BLKD_P2P_BUS_W}" 
-	  	  y="0"  
-	 	  width= "{$BLKD_P2P_BUS_W}" 
-	 	  height="{200 + $BLKD_P2P_BUS_W}" 
-	 	  style="stroke:none;fill:{$busColor_}"/>
--->	
-	
-	<!-- Place the bus label.-->	
-<!--	
-	<text class="p2pbuslabel" 
-			  x="{$bcInSpace_X_   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
-			  y="{$busTop_ + ($BLKD_BUS_ARROW_H * 3)}">
-			<xsl:value-of select="$busName_"/>
-	</text>	
--->	
-						
-		<!-- Draw the busconnection and horizontal lines.-->						
-		<xsl:for-each select="exsl:node-set($p2pConn_heights_)/P2PCONN">
-							
-			<xsl:variable name="bus_x_" select="($bcInSpace_X_ + ceiling($BLKD_BIFC_W div 2))"/>
-			<xsl:variable name="bus_y_" select="@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-		
-			<xsl:variable name="h_bus_ul_x_">
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'">
-						<xsl:value-of select="$bus_x_"/>
-					</xsl:when>
-					<xsl:when test="@BIFSIDE='1'">
-						<xsl:value-of select="(@X + $BLKD_BIFC_W + $BLKD_BUS_ARROW_W) - 1"/>
-					</xsl:when>
-				</xsl:choose>
-			</xsl:variable>	
-		
-			<xsl:variable name="h_bus_ul_y_" select="$bus_y_"/>
-	
-			<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-			<xsl:variable name="h_bus_width_">
-<!--				
-				<xsl:message>BIFSIDE <xsl:value-of select="@BIFSIDE"/></xsl:message>
-				<xsl:message>BUSSTD  <xsl:value-of select="@BUSSTD"/></xsl:message>
-				<xsl:message>BIFRANK <xsl:value-of select="@BIFRANK"/></xsl:message>
--->				
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'">
-						<xsl:value-of select="(@X - $bus_x_ - $BLKD_BUS_ARROW_W)"/>
-					</xsl:when>
-					<xsl:when test="@BIFSIDE='1'">
-						<xsl:value-of select="$bus_x_ - $h_bus_ul_x_ + 1"/>
-					</xsl:when>
-					
-				</xsl:choose>
-			</xsl:variable>	
-			
-			<!-- Draw Bus connection-->
-			<use   x="{@X}"   y="{@Y}"  xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/>
-			
-			<!-- Draw the arrow -->
-			<xsl:choose>
-				<xsl:when test="((@BIFSIDE='0') and not((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowEast"/>
-				</xsl:when>
-				<xsl:when test="((@BIFSIDE='1') and not((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowWest"/>
-				</xsl:when>
-				
-				<xsl:when test="((@BIFSIDE='0') and ((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{@X - $BLKD_BUS_ARROW_W}"   y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowHInitiator"/>
-				</xsl:when>
-				
-				<xsl:when test="((@BIFSIDE='1') and ((@BUSSTD = 'FSL') and ((@BIFRANK = 'INITIATOR') or (@BIFRANK = 'MASTER'))))">
-					<use   x="{(@X + $BLKD_BIFC_W)}" y="{@Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2)}"  xlink:href="#{@BUSSTD}_BusArrowHInitiator"/>
-				</xsl:when>
-					
-			</xsl:choose>
-		
-			<!-- Draw the horizontal part of the bus -->
-			<rect x="{$h_bus_ul_x_}" 
-		  	  	  y="{$h_bus_ul_y_}"  
-		 	  	  width= "{$h_bus_width_}" 
-		 	 	  height="{$h_bus_height_}" 
-				
-		 	      style="stroke:none; fill:{$busColor_}"/>
-			
-			<!-- 
-				Draw the vertical part of the bus. The MPMC BIF and the top arrow will
-				be added later when the main drawing happens.
-			-->
-			<xsl:variable name="v_bus_ul_x_">
-				<xsl:choose>
-					<xsl:when test="@BIFSIDE='0'"><xsl:value-of select="($h_bus_ul_x_)"/></xsl:when>
-					<xsl:when test="@BIFSIDE='1'"><xsl:value-of select="($h_bus_ul_x_ + $h_bus_width_ - $BLKD_P2P_BUS_W)"/></xsl:when>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<rect x="{$v_bus_ul_x_}" 
-		  	  	  y="0"  
-		 	  	  width= "{$BLKD_P2P_BUS_W}" 
-		  	  	  height="{$h_bus_ul_y_}"  
-		 	      style="stroke:none; fill:{$busColor_}"/>
-			
-<!--			
-			<text class="p2pbuslabel" 
-				  x="{$v_bus_ul_x_   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4)}"
-				  y="{($BLKD_BUS_ARROW_H * 3)}"><xsl:value-of select="$busName_"/></text>	
--->	
-		
-	</xsl:for-each>
-						
-						
-</xsl:template>	
-	
-	
-				
-<!-- 
-	 ======================================================================
-     Handle Split connections, (connections that go between adjacent stacks)
-	 ======================================================================
--->
-	
-<xsl:template name="BCLaneSpace_SplitConn">	
-	
-	<xsl:param name="iBusStd"          select="'NONE'"/>	
-	<xsl:param name="iBusName"         select="'NONE'"/>	
-	<xsl:param name="iBifRank"         select="'NONE'"/>	
-	<xsl:param name="iStackToEast"     select="'NONE'"/>	
-	<xsl:param name="iStackToWest"     select="'NONE'"/>	
-	<xsl:param name="iStackToEast_W"   select="0"/>	
-	<xsl:param name="iStackToWest_W"   select="0"/>	
-	<xsl:param name="iLaneInSpace_X"   select="0"/>	
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>	
-	
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/>							
-			
-					
-	<xsl:variable name="bifName_"      select="BUSCONN/@BUSINTERFACE"/>
-	<xsl:variable name="shpInstance_"  select="BUSCONN/@INSTANCE"/>
-					
-<!--					
-			<xsl:message>Found a split connection on <xsl:value-of select="$shpInstance_"/></xsl:message>	
--->					
-						
-					
-		<xsl:variable name="shp_hori_idx_">
-						
-			<xsl:choose>
-				<xsl:when  test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $shpInstance_)]">
-					<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $shpInstance_)]/@STACK_HORIZ_INDEX"/>
-				</xsl:when>
-							
-				<xsl:when  test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $shpInstance_)])]">
-					<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $shpInstance_)])]/@STACK_HORIZ_INDEX"/>
-				</xsl:when>
-				<xsl:otherwise>_unknown_</xsl:otherwise>
-			</xsl:choose>		
-						
-		</xsl:variable> 
-					
-		<xsl:variable name="shp_vert_idx_">
-						
-			<xsl:choose>
-				<xsl:when  test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $shpInstance_)]">
-					<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $shpInstance_)]/@SHAPE_VERTI_INDEX"/>
-				</xsl:when>
-							
-				<xsl:when  test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $shpInstance_)])]">
-					<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $shpInstance_)])]/@SHAPE_VERTI_INDEX"/>
-				</xsl:when>
-				<xsl:otherwise>_unknown_</xsl:otherwise>
-			</xsl:choose>		
-						
-		</xsl:variable> 
-					
-		<xsl:variable name="splitshp_Width_">
-						
-			<xsl:choose>
-				<xsl:when  test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $shpInstance_)]">
-					<xsl:value-of select="$BLKD_MOD_W"/>
-				</xsl:when>
-						
-				<xsl:when  test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $shpInstance_)])]/@MODS_W">
-<!--								
-								<xsl:message>Using mods width on <xsl:value-of select="$shpInstance_"/></xsl:message>
--->								
-					<xsl:value-of select="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $shpInstance_)])]/@MODS_W * $BLKD_MOD_W)"/>
-				</xsl:when>
-				<xsl:otherwise>
-					<xsl:value-of select="$BLKD_MOD_W"/>
-				</xsl:otherwise>
-			</xsl:choose>		
-						
-		</xsl:variable> 
-					
-<!--					
-					<xsl:message>Found width of <xsl:value-of select="$splitshp_Width_"/></xsl:message>
--->					
-	
-					
-		<xsl:variable name="splitshp_Y_">
-			<xsl:call-template name="_calc_Stack_Shape_Y">
-				<xsl:with-param name="iHorizIdx"  select="$shp_hori_idx_"/>
-				<xsl:with-param name="iVertiIdx"  select="$shp_vert_idx_"/>
-			</xsl:call-template>
-		</xsl:variable>
-					
-						
-		<xsl:variable name="splitStack_H_diff_">
-			<xsl:choose>
-				<xsl:when test="   (($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">0</xsl:when>
-				<xsl:when test="not(($iStackToEast = 'NONE') or ($iStackToWest = 'NONE'))">
-	
-					<xsl:variable name="stackToWest_AbvSbs_H_">
-						<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-							<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-						</xsl:call-template>
-					</xsl:variable>
-				
-					<xsl:variable name="stackToEast_AbvSbs_H_">
-						<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-							<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-						</xsl:call-template>
-					</xsl:variable>
-				
-<!--				
-				<xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message>
-				<xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>
--->				
-					<xsl:choose>
-						<xsl:when test="(($shp_hori_idx_ = $iStackToEast) and ($stackToWest_AbvSbs_H_ &gt; $stackToEast_AbvSbs_H_))">
-							<xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
-						</xsl:when>	
-						<xsl:when test="(($shp_hori_idx_ = $iStackToWest) and ($stackToEast_AbvSbs_H_ &gt; $stackToWest_AbvSbs_H_))">
-							<xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/>
-						</xsl:when>	
-						<xsl:otherwise>0</xsl:otherwise>	
-					</xsl:choose>	
-										
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>
-						
-					
-		<xsl:variable name="splitBif_Y_"    select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * BUSCONN/@BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-		<xsl:variable name="splitBusStd_"   select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $shpInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BUSSTD"/>
-		<xsl:variable name="splitBifRank_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $shpInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIFRANK"/>
-		<xsl:variable name="splitBifSide_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $shpInstance_)]/BUSINTERFACE[(@NAME = $bifName_)]/@BIF_X"/>
-									
-		<xsl:variable name="bcInSpace_X_">
-			<xsl:choose>
-				<xsl:when test="$splitBifSide_ = '1'"><xsl:value-of select="ceiling($splitshp_Width_ div 2)"/></xsl:when>
-				<xsl:when test="$splitBifSide_ = '0'"><xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - ceiling($splitshp_Width_ div 2) - $BLKD_BIFC_W)"/></xsl:when>
-			</xsl:choose>
-								
-		</xsl:variable> 
-					
-		<xsl:variable name="bcBus_X_">
-			<xsl:choose>
-				<xsl:when test="$splitBifSide_ = '1'"><xsl:value-of select="$bcInSpace_X_"/></xsl:when>
-				<xsl:when test="$splitBifSide_ = '0'"><xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - ceiling($BLKD_MOD_W div 2) - $BLKD_BIFC_W)"/></xsl:when>
-			</xsl:choose>
-		</xsl:variable> 
-							
-		<xsl:variable name="bcSplit_Y_">
-			<xsl:choose>
-				<xsl:when test="(BUSCONN/@IS_MEMCONN) and (($splitBusStd_ = 'LMB') or ($splitBusStd_ = 'OCM'))">
-<!--								
-					<xsl:message>Found memory conn split connection on <xsl:value-of select="$shpInstance_"/> </xsl:message>
--->	
-					<xsl:value-of select="($splitshp_Y_ + $BLKD_MOD_H + $BLKD_MOD_BIF_GAP_V + (BUSCONN/@BIF_Y * ($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V)) + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $splitStack_H_diff_)"/>
-				</xsl:when>     
-				<xsl:otherwise>
-					<xsl:value-of select="($splitshp_Y_ + $splitBif_Y_ + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $splitStack_H_diff_)"/>
-				</xsl:otherwise>
-			</xsl:choose>
-		</xsl:variable>    
-<!--								
-								<xsl:value-of select="($splitshp_Y_ + $splitBif_Y_ + ceiling($BIF_H div 2) - ceiling($BLKD_BIFC_H div 2) + $splitStack_H_diff_)"/>
--->								
-<!--					
-					<xsl:message>VERTI INDEX <xsl:value-of select="$shp_vert_idx_"/></xsl:message>	
-					<xsl:message>BIF Y <xsl:value-of select="$splitBif_Y_"/></xsl:message>	
-					<xsl:message>HORIZ INDEX <xsl:value-of select="$shp_hori_idx_"/></xsl:message>	
--->					
-					
-	<use   x="{$bcInSpace_X_}"   y="{$bcSplit_Y_}"  xlink:href="#{@BUSSTD}_busconn_{$splitBifRank_}"/>
-					
-			
-	<xsl:call-template name="Draw_SplitConnBus">
-		<xsl:with-param name="iBc_Y"    select="$bcSplit_Y_"/>
-		<xsl:with-param name="iBc_X"    select="$bcInSpace_X_"/>
-		<xsl:with-param name="iBc_Rnk"  select="$splitBifRank_"/>
-		<xsl:with-param name="iBc_Side" select="$splitBifSide_"/>
-		<xsl:with-param name="iBusStd"  select="$iBusStd"/>
-		<xsl:with-param name="iBusName" select="$iBusName"/>
-	</xsl:call-template>
-					
-	
-</xsl:template>	
-	
-	
-<xsl:template name="Define_BusLaneSpace"> 
-	
-	<xsl:param name="iStackToEast"  select="'NONE'"/>
-	<xsl:param name="iStackToWest"  select="'NONE'"/>
-	
-<!--	
-	<xsl:message>Input Stack to West <xsl:value-of select="$iStackToWest"/></xsl:message>
-	<xsl:message>Input Stack to East <xsl:value-of select="$iStackToEast"/></xsl:message>
--->
-	
-	<xsl:variable name="stackToEast_">
-		<xsl:choose>
-			<xsl:when test="not($iStackToEast = 'NONE')"><xsl:value-of select="$iStackToEast"/></xsl:when>
-			<xsl:otherwise>NONE</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-	<xsl:variable name="stackToWest_">
-		<xsl:choose>
-			<xsl:when test=" not($iStackToWest = 'NONE')"><xsl:value-of select="$iStackToWest"/></xsl:when>
-			<xsl:when test="(not($iStackToEast = 'NONE') and not($iStackToEast = '0'))"><xsl:value-of select="($iStackToEast - 1)"/></xsl:when>
-			<xsl:otherwise>NONE</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-<!--	
-	<xsl:message>Stack to West <xsl:value-of select="$stackToWest_"/></xsl:message>
-	<xsl:message>Stack to East <xsl:value-of select="$stackToEast_"/></xsl:message>
-	<xsl:message>Stack abv diff  <xsl:value-of select="$stack_H_diff_"/></xsl:message>
--->	
-	
-	<xsl:variable name="spaceAbvSbs_H_">
-		<xsl:call-template name="_calc_Space_AbvSbs_Height">
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>
-	</xsl:variable>	
-	
-	<xsl:variable name="spaceBlwSbs_H_">
-		<xsl:call-template name="_calc_Space_BlwSbs_Height">
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>
-	</xsl:variable>	
-	
-	
-	<xsl:variable name="space_H_" select="($spaceAbvSbs_H_ + $BLKD_PROC2SBS_GAP + $G_total_SharedBus_H + $spaceBlwSbs_H_)"/>
-	<xsl:variable name="space_W_">
-		<xsl:call-template name="_calc_Space_Width"> 
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name="spaceSharedBus_Y_" select="$spaceAbvSbs_H_ + $BLKD_PROC2SBS_GAP"/>
-	
-	<xsl:variable name="space_name_">
-		<xsl:call-template name="_gen_Space_Name"> 
-			<xsl:with-param name="iStackToEast"  select="$stackToEast_"/>
-			<xsl:with-param name="iStackToWest"  select="$stackToWest_"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>Stack Width <xsl:value-of select="$space_W_"/></xsl:message>
-	<xsl:message>Space Name <xsl:value-of select="$space_name_"/></xsl:message>
-	<xsl:message>Stack Abv <xsl:value-of select="$spaceAbvSbs_H_"/></xsl:message>
-	<xsl:message>Stack Blw <xsl:value-of select="$spaceBlwSbs_H_"/></xsl:message>
-	<xsl:message>Total Sbs <xsl:value-of select="$totalSbs_H_"/></xsl:message>
--->	
-	
-	<xsl:variable name = "stackToWest_W_">
-		<xsl:choose>
-			<xsl:when test="(($iStackToEast = '0')    and    ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="(($iStackToEast = 'NONE') and not($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_Width">
-					<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:when test="(not($iStackToEast = '0') and not($iStackToEast = 'NONE') and ($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_Width">
-					<xsl:with-param name="iStackIdx"  select="($iStackToEast - 1)"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:otherwise>0</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name = "stackToEast_W_">
-		<xsl:call-template name="_calc_Stack_Width">
-			<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($stackToWest_W_ div 2)"/>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($stackToEast_W_ div 2)"/>
-	
-<!--	
-	<xsl:message>Stack To West <xsl:value-of select="$stackToWest_W_"/></xsl:message>
-	<xsl:message>Stack To East <xsl:value-of select="$stackToEast_W_"/></xsl:message>
--->	
-	
-	<symbol id="{$space_name_}">
-
-<!--	
-		<rect x="0" 
-	  	  	  y="0"  
-			  width= "100" 
-		 	  height="200" 
-		 	  style="stroke:none; fill:{$COL_WHITE}"/>
--->		
-		
-		 <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[((@EAST = $iStackToEast) or (($iStackToEast = 'NONE') and (@WEST = $iStackToWest)))]/BUSCONNLANE[@BUSSTD and @BUSNAME]">
-				
-				<xsl:variable name="busStd_"          select="@BUSSTD"/>
-				<xsl:variable name="busName_"         select="@BUSNAME"/>
-				<xsl:variable name="lane_X_"          select="@BUSLANE_X"/>
-<!--			 
-				<xsl:variable name="laneInSpace_X_"   select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W))"/>
-				<xsl:message>Oriented <xsl:value-of select="@ORIENTED"/></xsl:message>
-				<xsl:message>laneInSpace_XY <xsl:value-of select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W))"/></xsl:message>
-				<xsl:message>Lane in space X <xsl:value-of select="$laneInSpace_X_"/></xsl:message>
--->	
-			 
-				<xsl:variable name="laneInSpace_X_">
-					<xsl:choose>
-					   <xsl:when test="(@ORIENTED = 'EAST')">
-						   <xsl:value-of select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W) - $BLKD_BUS_ARROW_W - $BLKD_P2P_BUS_W)"/>
-					   </xsl:when>
-					   <xsl:otherwise><xsl:value-of select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W))"/></xsl:otherwise>
-					</xsl:choose>
-				</xsl:variable> 
-						
-			 
-				<xsl:variable name="busColor_">
-					<xsl:call-template name="BusType2Color">
-						<xsl:with-param name="iBusType" select="@BUSSTD"/>
-					</xsl:call-template>	
-				</xsl:variable>
-				
-				<xsl:choose>
-<!-- 
-		 ===========================================================
-			Handle Bucket connections to the shared busses.
-		 ===========================================================
--->
-					<xsl:when test="@BUSLANE_X and @IS_BKTCONN and BUSCONN[@BIFRANK] and /EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $busName_)]/@BUSINDEX">
-						<xsl:call-template name="BCLaneSpace_BucketToSharedBus">
-							<xsl:with-param name="iBusName"           select="$busName_"/>
-							<xsl:with-param name="iBusStd"            select="$busStd_"/>
-							<xsl:with-param name="iBifRank"           select="BUSCONN/@BIFRANK"/>
-							<xsl:with-param name="iStackToEast"       select="$stackToEast_"/>
-							<xsl:with-param name="iStackToWest"       select="$stackToWest_"/>
-							<xsl:with-param name="iStackToEast_W"     select="$stackToEast_W_"/>
-							<xsl:with-param name="iStackToWest_W"     select="$stackToWest_W_"/>
-							<xsl:with-param name="iLaneInSpace_X"     select="$laneInSpace_X_"/>
-							<xsl:with-param name="iSpaceSharedBus_Y"  select="$spaceSharedBus_Y_"/>
-						</xsl:call-template>	
-<!--						
--->						
-					</xsl:when>
-					
-<!--
-		 ===========================================================
-			Handle Processor's Shared bus connections.
-		 ===========================================================
--->
-					<xsl:when test="@BUSLANE_X and @IS_SBSCONN and not(@IS_MPMCCONN) and BUSCONN[@BIF_Y and @IS_PROCCONN and @INSTANCE and @BUSINTERFACE] and /EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $busName_)]/@BUSINDEX">
-						<xsl:call-template name="BCLaneSpace_ProcBifToSharedBus">
-							<xsl:with-param name="iBusStd"            select="$busStd_"/>
-							<xsl:with-param name="iBusName"           select="$busName_"/>
-							<xsl:with-param name="iBifRank"           select="BUSCONN/@BIFRANK"/>
-							<xsl:with-param name="iStackToEast"       select="$stackToEast_"/>
-							<xsl:with-param name="iStackToWest"       select="$stackToWest_"/>
-							<xsl:with-param name="iStackToEast_W"     select="$stackToEast_W_"/>
-							<xsl:with-param name="iStackToWest_W"     select="$stackToWest_W_"/>
-							<xsl:with-param name="iLaneInSpace_X"     select="$laneInSpace_X_"/>
-							<xsl:with-param name="iSpaceSharedBus_Y"  select="$spaceSharedBus_Y_"/>
-						</xsl:call-template>	
-<!--						
--->	
-					</xsl:when>	
-					
-<!--
-		 ===========================================================
-			Handle non Processor Shared Bus connections.
-		 ===========================================================
--->
-					<xsl:when test="@BUSLANE_X and @IS_SBSCONN and not(@IS_MPMCCONN) and BUSCONN[@BIF_Y and not(@IS_PROCCONN) and @INSTANCE and @BUSINTERFACE] and /EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $busName_)]/@BUSINDEX">
-						<xsl:call-template name="BCLaneSpace_NonProcBifToSharedBus">
-							<xsl:with-param name="iBusStd"            select="$busStd_"/>
-							<xsl:with-param name="iBusName"           select="$busName_"/>
-							<xsl:with-param name="iBifRank"           select="BUSCONN/@BIFRANK"/>
-							<xsl:with-param name="iStackToEast"       select="$stackToEast_"/>
-							<xsl:with-param name="iStackToWest"       select="$stackToWest_"/>
-							<xsl:with-param name="iStackToEast_W"     select="$stackToEast_W_"/>
-							<xsl:with-param name="iStackToWest_W"     select="$stackToWest_W_"/>
-							<xsl:with-param name="iLaneInSpace_X"     select="$laneInSpace_X_"/>
-							<xsl:with-param name="iSpaceSharedBus_Y"  select="$spaceSharedBus_Y_"/>
-						</xsl:call-template>	
-<!--						
--->	
-					</xsl:when>					
-					
-<!-- 
-		 ===========================================================
-			Handle connections from processors to Memory UNITs
-		 ===========================================================
--->			
-					<xsl:when test="@BUSLANE_X and @IS_MEMCONN and not(@IS_MULTISTK) and BUSCONN[@BIF_Y and @IS_PROCCONN and not(@IS_SPLITCONN) and @INSTANCE and @BUSINTERFACE]">
-						<xsl:call-template name="BCLaneSpace_ProcBifToMemoryUnit">
-							<xsl:with-param name="iBusStd"         select="$busStd_"/>
-							<xsl:with-param name="iBusName"        select="$busName_"/>
-							<xsl:with-param name="iBifRank"        select="BUSCONN/@BIFRANK"/>
-							<xsl:with-param name="iStackToEast"    select="$stackToEast_"/>
-							<xsl:with-param name="iStackToWest"    select="$stackToWest_"/>
-							<xsl:with-param name="iStackToEast_W"  select="$stackToEast_W_"/>
-							<xsl:with-param name="iStackToWest_W"  select="$stackToWest_W_"/>
-							<xsl:with-param name="iLaneInSpace_X"  select="$laneInSpace_X_"/>
-						</xsl:call-template>	
-<!--						
--->	
-					</xsl:when>				
-				
-					
-<!-- 
-		 ===========================================================
-			Handle generic Point to Point connections
-		 ===========================================================
--->
-					<xsl:when test="@BUSLANE_X and not(@IS_MULTISTK) and not(@IS_MPMCCONN) and not(@IS_MEMCONN) and not(@IS_SBSCONN) and BUSCONN[@BIF_Y and @INSTANCE and @BUSINTERFACE and not(@IS_SPLITCONN)]">
-						<xsl:call-template name="BCLaneSpace_PointToPoint">
-							<xsl:with-param name="iBusStd"         select="$busStd_"/>
-							<xsl:with-param name="iBusName"        select="$busName_"/>
-							<xsl:with-param name="iBifRank"        select="BUSCONN/@BIFRANK"/>
-							<xsl:with-param name="iStackToEast"    select="$stackToEast_"/>
-							<xsl:with-param name="iStackToWest"    select="$stackToWest_"/>
-							<xsl:with-param name="iStackToEast_W"  select="$stackToEast_W_"/>
-							<xsl:with-param name="iStackToWest_W"  select="$stackToWest_W_"/>
-							<xsl:with-param name="iLaneInSpace_X"  select="$laneInSpace_X_"/>
-						</xsl:call-template>	
-<!--						
--->	
-					</xsl:when>				
-					
-<!-- 
-		 ===========================================================
-			Handle MultiStack Point to Point connections
-		 ===========================================================
--->
-					<xsl:when test="@BUSLANE_X and (@IS_MULTISTK) and not(@IS_SBSCONN) and BUSCONN[@BIF_Y and @IS_PROCCONN and @INSTANCE and @BUSINTERFACE]">
-						<xsl:call-template name="BCLaneSpace_MultiStack_PointToPoint">
-							<xsl:with-param name="iBusStd"         select="$busStd_"/>
-							<xsl:with-param name="iBusName"        select="$busName_"/>
-							<xsl:with-param name="iBifRank"        select="BUSCONN/@BIFRANK"/>
-							<xsl:with-param name="iStackToEast"    select="$stackToEast_"/>
-							<xsl:with-param name="iStackToWest"    select="$stackToWest_"/>
-							<xsl:with-param name="iStackToEast_W"  select="$stackToEast_W_"/>
-							<xsl:with-param name="iStackToWest_W"  select="$stackToWest_W_"/>
-							<xsl:with-param name="iLaneInSpace_X"  select="$laneInSpace_X_"/>
-						</xsl:call-template>	
-					</xsl:when>				
-						
-					
-<!-- 
-		 ===========================================================
-			Handle Processor to processor connections
-		 ===========================================================
--->
-<!--					
--->	
-				<xsl:when test="(@IS_PROC2PROC and (count(BUSCONN[@BIF_Y and @INSTANCE and @BUSINTERFACE]) = 2))">
-					<xsl:call-template name="BCLaneSpace_ProcToProc">
-						<xsl:with-param name="iBusStd"         select="$busStd_"/>
-						<xsl:with-param name="iBusName"        select="$busName_"/>
-						<xsl:with-param name="iBifRank"        select="BUSCONN/@BIFRANK"/>
-						<xsl:with-param name="iStackToEast"    select="$stackToEast_"/>
-						<xsl:with-param name="iStackToWest"    select="$stackToWest_"/>
-						<xsl:with-param name="iStackToEast_W"  select="$stackToEast_W_"/>
-						<xsl:with-param name="iStackToWest_W"  select="$stackToWest_W_"/>
-						<xsl:with-param name="iLaneInSpace_X"  select="$laneInSpace_X_"/>
-					</xsl:call-template>	
-				</xsl:when>
-					
-<!-- 
-		 ===========================================================
-			Handle connections to the StandAlone MPMC
-		 ===========================================================
--->
-			<xsl:when test="@BUSLANE_X and (@IS_MPMCCONN) and not(@IS_SBSCONN) and BUSCONN[(@BIF_Y and @INSTANCE and @BUSINTERFACE)]">
-<!--				
--->				
-					<xsl:call-template name="BCLaneSpace_ToStandAloneMPMC">
-						<xsl:with-param name="iBusStd"         select="$busStd_"/>
-						<xsl:with-param name="iBusName"        select="$busName_"/>
-						<xsl:with-param name="iBifRank"        select="BUSCONN/@BIFRANK"/>
-						<xsl:with-param name="iStackToEast"    select="$stackToEast_"/>
-						<xsl:with-param name="iStackToWest"    select="$stackToWest_"/>
-						<xsl:with-param name="iStackToEast_W"  select="$stackToEast_W_"/>
-						<xsl:with-param name="iStackToWest_W"  select="$stackToWest_W_"/>
-						<xsl:with-param name="iLaneInSpace_X"  select="$laneInSpace_X_"/>
-					</xsl:call-template>	
-			</xsl:when>
-					
-<!-- 
-		 ===========================================================
-			Handle Split connections, (connections that go between non adjacent stacks)
-		 ===========================================================
--->
-			<xsl:when test="(BUSCONN[@BIF_Y and @INSTANCE and @BUSINTERFACE and @IS_SPLITCONN])">
-				<xsl:call-template name="BCLaneSpace_SplitConn">
-					<xsl:with-param name="iBusStd"         select="$busStd_"/>
-					<xsl:with-param name="iBusName"        select="$busName_"/>
-					<xsl:with-param name="iBifRank"        select="BUSCONN/@BIFRANK"/>
-					<xsl:with-param name="iStackToEast"    select="$stackToEast_"/>
-					<xsl:with-param name="iStackToWest"    select="$stackToWest_"/>
-					<xsl:with-param name="iStackToEast_W"  select="$stackToEast_W_"/>
-					<xsl:with-param name="iStackToWest_W"  select="$stackToWest_W_"/>
-					<xsl:with-param name="iLaneInSpace_X"  select="$laneInSpace_X_"/>
-				</xsl:call-template>	
-<!--				
--->	
-			</xsl:when>
-					
-		</xsl:choose>
-								
-	</xsl:for-each>
-		
-	</symbol>
-			
-</xsl:template>	
-	
-<xsl:template name="Define_BusLaneSpaces"> 
-	
-	<xsl:variable name="lastStack_" select="(/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH) - 1"/>
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[@EAST]">
-		<xsl:sort select="@EAST" data-type="number"/>
-			
-		<xsl:call-template name="Define_BusLaneSpace">
-			<xsl:with-param name="iStackToEast"  select="@EAST"/>
-		</xsl:call-template>
-	</xsl:for-each>	
-	
-<!--	
-	<xsl:message>Last Stack <xsl:value-of select="$lastStack_"/></xsl:message>
--->	
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@WEST = $lastStack_)]">
-		<xsl:call-template name="Define_BusLaneSpace">
-			<xsl:with-param name="iStackToWest"  select="$lastStack_"/>
-		</xsl:call-template>
-	</xsl:for-each>	
-			
-</xsl:template>
-		
-</xsl:stylesheet>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl
deleted file mode 100644
index 41a472e..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Busses.xsl
+++ /dev/null
@@ -1,495 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-                
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-		
-
-	
-<xsl:template name="Define_Busses">
-<!--	
-	<xsl:param name="drawarea_w"  select="500"/>
-	<xsl:param name="drawarea_h"  select="500"/>
--->	
-	
-	<xsl:for-each select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR">
-		
-		<xsl:call-template name="Define_BusArrowsEastWest"> 
-			<xsl:with-param name="iBusType"    select="@BUSSTD"/>
-		</xsl:call-template>
-		
-		<xsl:call-template name="Define_BusArrowsNorthSouth"> 
-			<xsl:with-param name="iBusType"    select="@BUSSTD"/>
-		</xsl:call-template>
-		
-		<xsl:call-template name="Define_SplitBusses"> 
-			<xsl:with-param name="iBusType"    select="@BUSSTD"/>
-		</xsl:call-template>
-		
-	</xsl:for-each>
-	
-	<xsl:call-template name="Define_SharedBus"> 
-		<xsl:with-param name="iBusType"    select="'PLB'"/>
-	</xsl:call-template>
-	
-	<xsl:call-template name="Define_SharedBus"> 
-		<xsl:with-param name="iBusType"    select="'PLBV46'"/>
-	</xsl:call-template>
-	
-	<xsl:call-template name="Define_SharedBus"> 
-		<xsl:with-param name="iBusType"    select="'OPB'"/>
-	</xsl:call-template>
-	
-	<xsl:call-template name="Define_SharedBus_Group"/> 
-	
-</xsl:template>
-
-<xsl:template name="Define_BusArrowsEastWest"> 
-	<xsl:param name="iBusType"    select="'OPB'"/>
-	
-	<xsl:variable name="bus_col_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="bus_col_lt_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<symbol id="{$iBusType}_BusArrowEast">
-		<path class="bus"
-			  d="M   0,0
-				 L     {$BLKD_BUS_ARROW_W}, {ceiling($BLKD_BUS_ARROW_H div 2)}
-				 L   0,{$BLKD_BUS_ARROW_H}, 
-				 Z" style="stroke:none; fill:{$bus_col_}"/>
-	</symbol>
-	
-	<symbol id="{$iBusType}_BusArrowWest">
-		<use   x="0"   y="0"  xlink:href="#{$iBusType}_BusArrowEast" transform="scale(-1,1) translate({$BLKD_BUS_ARROW_W * -1},0)"/>
-	</symbol>
-	
-	<symbol id="{$iBusType}_BusArrowHInitiator">
-		<rect x="0" 
-		  	  y="{$BLKD_BUS_ARROW_G}"  
-		 	  width= "{$BLKD_BUS_ARROW_W}" 
-		 	  height="{$BLKD_P2P_BUS_W}" 
-		 	 style="stroke:none; fill:{$bus_col_}"/>
-	</symbol>
-	
-</xsl:template>
-
-<!--	
-	<xsl:param name="bus_col"     select="'OPB'"/>
--->	
-
-<xsl:template name="Define_BusArrowsNorthSouth">
-	<xsl:param name="iBusType"    select="'OPB'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="busColor_lt_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<symbol id="{$iBusType}_BusArrowSouth">
-		<path class="bus"
-			  d="M   0,0
-				 L   {$BLKD_BUS_ARROW_H},0
-				 L   {ceiling($BLKD_BUS_ARROW_H div 2)}, {$BLKD_BUS_ARROW_W}
-				 Z" style="stroke:none; fill:{$busColor_}"/>
-	</symbol>
-	
-	<symbol id="{$iBusType}_BusArrowNorth">
-		<use   x="0"   y="0"  xlink:href="#{$iBusType}_BusArrowSouth" transform="scale(1,-1) translate(0,{$BLKD_BUS_ARROW_H * -1})"/>
-	</symbol>
-	
-	<symbol id="{$iBusType}_BusArrowInitiator">
-		<rect x="{$BLKD_BUS_ARROW_G}" 
-		  	  y="0"  
-		 	  width= "{$BLKD_BUS_ARROW_W - ($BLKD_BUS_ARROW_G * 2)}" 
-		 	  height="{$BLKD_BUS_ARROW_H}" 
-		 	 style="stroke:none; fill:{$busColor_}"/>
-	</symbol>
-	
-</xsl:template>
-	
-
-<xsl:template name="Draw_P2PBus">
-	
-	<xsl:param name="iBusX"    select="0"/>
-	<xsl:param name="iBusTop"  select="0"/>
-	<xsl:param name="iBusBot"  select="0"/>
-	<xsl:param name="iBotRnk"  select="'_unk_'"/>
-	<xsl:param name="iTopRnk"  select="'_unk_'"/>
-	<xsl:param name="iBusStd"  select="'_bstd_'"/>
-	<xsl:param name="iBusName" select="'_p2pbus_'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:choose>
-			
-			<xsl:when test="@BUSSTD">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="@BUSSTD"/>
-				</xsl:call-template>	
-			</xsl:when>
-			
-			<xsl:when test="not($iBusStd = '_bstd_')">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="$iBusStd"/>
-				</xsl:call-template>	
-			</xsl:when>
-			
-			<xsl:otherwise>
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="'TRS'"/>
-				</xsl:call-template>	
-			</xsl:otherwise>
-			
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="p2pH_" select="($iBusBot - $iBusTop) - ($BLKD_BUS_ARROW_H * 2)"/>
-
-	<xsl:variable name="botArrow_">
-		<xsl:choose>
-			<xsl:when test="((($iBotRnk = 'INITIATOR') or ($iBotRnk = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowInitiator</xsl:when>
-			<xsl:otherwise>BusArrowSouth</xsl:otherwise> 
-		</xsl:choose>		
-	</xsl:variable>
-	
-	<xsl:variable name="topArrow_">
-		<xsl:choose>
-			<xsl:when test="((($iTopRnk = 'INITIATOR') or ($iTopRnk = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowInitiator</xsl:when>
-			<xsl:otherwise>BusArrowNorth</xsl:otherwise> 
-		</xsl:choose>		
-	</xsl:variable>
-	
-	<xsl:if test="@BUSSTD">		
-		<use  x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2)}"  
-		      y="{$iBusTop + ($BLKD_BIFC_H  - $BLKD_BUS_ARROW_H) + $BLKD_BUS_ARROW_H}"  
-		      xlink:href="#{@BUSSTD}_{$topArrow_}"/>	
-		  
-		<use  x="{($busX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2)}"  
-		      y="{$busBot - $BLKD_BUS_ARROW_H}"  
-		      xlink:href="#{@BUSSTD}_{$botArrow_}"/>	
-	</xsl:if>		  
-	
-	<xsl:if test="(not(@BUSSTD) and not($busStd = '_bstd_'))">		
-		<use  x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2)}"  
-		      y="{$iBusTop + ($BLKD_BIFC_H  - $BLKD_BUS_ARROW_H) + $BLKD_BUS_ARROW_H}"  
-		      xlink:href="#{$iBusStd}_{$topArrow_}"/>	
-		  
-		<use  x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2)}"  
-		      y="{$iBusBot - $BLKD_BUS_ARROW_H}"  
-		      xlink:href="#{$iBusStd}_{$botArrow_}"/>	
-	</xsl:if>		  
-	
-	
-	<rect x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2) + $BLKD_BUS_ARROW_G}"  
-		  y="{$iBusTop + $BLKD_BIFC_H + $BLKD_BUS_ARROW_H}"  
-		  height= "{$p2pH_  - ($BLKD_BUS_ARROW_H * 2)}" 
-		  width="{$BLKD_BUS_ARROW_W - ($BLKD_BUS_ARROW_G * 2)}" 
-		  style="stroke:none; fill:{$busColor_}"/>
-		  
-	<text class="p2pbuslabel" 
-			  x="{$iBusX   + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 4}"
-			  y="{$iBusTop + ($BLKD_BUS_ARROW_H * 3)}">
-			<xsl:value-of select="$iBusName"/>
-	</text>
-	
-  	<xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iBusName)]/@GROUP">
-	  	
-   	   <text class="ioplblgrp" 
-		  x="{$iBusX   +  $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
-		  y="{$iBusTop + ($BLKD_BUS_ARROW_H * 10)}">
-			   <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iBusName)]/@GROUP"/>
-   		</text>
-	   
-  	</xsl:if> 	
-		
-</xsl:template>
-
-	
-<xsl:template name="Draw_Proc2ProcBus">
-	
-	<xsl:param name="iBc_Y"     select="0"/>
-	<xsl:param name="iBcLeft_X" select="0"/>
-	<xsl:param name="iBcRght_X" select="0"/>
-	<xsl:param name="iLeftRnk"  select="'_unk_'"/>
-	<xsl:param name="iRghtRnk"  select="'_unk_'"/>
-	<xsl:param name="iBusStd"   select="'_bstd_'"/>
-	<xsl:param name="iBusName"  select="'_p2pbus_'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="pr2pr_W_" select="($iBcRght_X - $iBcLeft_X)"/>
-
-	<xsl:variable name="leftArrow_">
-		<xsl:choose>
-			<xsl:when test="((($iLeftRnk = 'INITIATOR') or ($iLeftRnk = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowHInitiator</xsl:when>
-			<xsl:otherwise>BusArrowWest</xsl:otherwise> 
-		</xsl:choose>		
-	</xsl:variable>
-	
-	<xsl:variable name="rghtArrow_">
-		<xsl:choose>
-			<xsl:when test="((($iRghtRnk = 'INITIATOR') or ($iRghtRnk = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowHInitiator</xsl:when>
-			<xsl:otherwise>BusArrowEast</xsl:otherwise> 
-		</xsl:choose>		
-	</xsl:variable>
-	
-	
-	<xsl:variable name="bus_Y_" select="($iBc_Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2))"/>
-	
-	<use  x="{$iBcLeft_X}"                     y="{$bus_Y_}"  xlink:href="#{$iBusStd}_{$leftArrow_}"/>	
-	<use  x="{$iBcRght_X - $BLKD_BUS_ARROW_W}" y="{$bus_Y_}"  xlink:href="#{$iBusStd}_{$rghtArrow_}"/>	
-	
-	<rect x="{$iBcLeft_X + $BLKD_BUS_ARROW_W}" 
-		  y="{$bus_Y_    + $BLKD_BUS_ARROW_G}"  
-		  width= "{$pr2pr_W_    -      (2 * $BLKD_BUS_ARROW_W)}" 
-		  height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$busColor_}"/>
-	
-	<text class="horizp2pbuslabel" 
-			  x="{$iBcLeft_X  + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 4}"
-			  y="{($bus_Y_)}"><xsl:value-of select="$iBusName"/></text>
-	
-	<text class="horizp2pbuslabel" 
-			  x="{$iBcRght_X - (string-length($iBusName) * 8)}"
-			  y="{($bus_Y_)}"><xsl:value-of select="$iBusName"/></text>
-	
-</xsl:template>
-	
-	
-<xsl:template name="Draw_SplitConnBus">
-	
-	<xsl:param name="iBc_X"     select="0"/>
-	<xsl:param name="iBc_Y"     select="0"/>
-	<xsl:param name="iBc_Rnk"   select="'_unk_'"/>
-	<xsl:param name="iBc_Side"  select="'_unk_'"/>
-	
-	<xsl:param name="iBusStd"   select="'_bstd_'"/>
-	<xsl:param name="iBusName"  select="'_p2pbus_'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusStd"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="connArrow_">
-		<xsl:choose>
-			<xsl:when test="((($iBc_Rnk = 'INITIATOR') or ($iBc_Rnk = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowHInitiator</xsl:when>
-			<xsl:otherwise>BusArrowEast</xsl:otherwise> 
-		</xsl:choose>		
-	</xsl:variable>
-	
-	<xsl:variable name="arrow_Y_" select="($iBc_Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2))"/>
-	
-	<xsl:variable name="bus_X_">
-		<xsl:choose>
-			<xsl:when test="$iBc_Side = '0'"><xsl:value-of select="($iBc_X - ($BLKD_BUS_ARROW_W * 2))"/></xsl:when>
-			<xsl:when test="$iBc_Side = '1'"><xsl:value-of select="($iBc_X + $BLKD_BIFC_W + $BLKD_BUS_ARROW_W)"/></xsl:when>
-		</xsl:choose>		
-	</xsl:variable>	
-	
-<!--	
-	<use  x="{$bus_X_}"  y="{$arrow_Y_}"  xlink:href="#{$busStd}_BusArrowHInitiator"/>	
--->	
-	
-	<xsl:variable name="arrow_X_">
-		<xsl:choose>
-			<xsl:when test="$iBc_Side = '0'"><xsl:value-of select="($iBc_X - $BLKD_BUS_ARROW_W)"/></xsl:when>
-			<xsl:when test="$iBc_Side = '1'"><xsl:value-of select="($iBc_X + $BLKD_BIFC_W)"/></xsl:when>
-		</xsl:choose>		
-	</xsl:variable>	
-	
-<!--	
-	<xsl:message>The bus name is <xsl:value-of select="$busName"/></xsl:message>
-	<xsl:message>The bif side is <xsl:value-of select="$bc_Side"/></xsl:message>
-	<xsl:message>The bif rank is <xsl:value-of select="$bc_Rnk"/></xsl:message>
--->	
-	<xsl:choose>
-		<xsl:when test="(($iBusStd = 'FSL') and (($iBc_Rnk = 'MASTER') or ($iBc_Rnk = 'INITIATOR')))">
-			<use  x="{$arrow_X_}"  y="{$arrow_Y_}"  xlink:href="#{$iBusStd}_{$connArrow_}"/>	
-			<use  x="{$bus_X_}"    y="{$arrow_Y_}"  xlink:href="#{$iBusStd}_BusArrowHInitiator"/>	
-		</xsl:when>
-		<xsl:when test="(($iBc_Side = '1') and not($iBusStd = 'FSL') and (($iBc_Rnk = 'MASTER') or ($iBc_Rnk = 'INITIATOR')))">
-			<use  x="{$arrow_X_ - $BLKD_BIFC_W}"  y="{$arrow_Y_}"  xlink:href="#{$iBusStd}_SplitBus_WEST"/>
-		</xsl:when>
-		<xsl:when test="(($iBc_Side = '1') and (($iBc_Rnk = 'SLAVE') or ($iBc_Rnk = 'TARGET') or ($iBc_Rnk = 'TRANSPARENT')))">
-			<use  x="{$arrow_X_}"  y="{$arrow_Y_}"  xlink:href="#{$iBusStd}_SplitBus_EAST"/>
-		</xsl:when>
-		<xsl:otherwise>
-			<use  x="{$arrow_X_}" y="{$arrow_Y_}" xlink:href="#{$iBusStd}_{$connArrow_}"/>	
-			<use  x="{$bus_X_}"   y="{$arrow_Y_}"   xlink:href="#{$iBusStd}_BusArrowHInitiator"/>	
-		</xsl:otherwise>
-	</xsl:choose>
-	
-	<xsl:variable name="text_X_">
-		<xsl:choose>
-			<xsl:when test="$iBc_Side = '0'"><xsl:value-of select="($bus_X_ - $BLKD_BUS_ARROW_W - (string-length($iBusName) * 5))"/></xsl:when>
-			<xsl:when test="$iBc_Side = '1'"><xsl:value-of select="($bus_X_ + $BLKD_BUS_ARROW_W)"/></xsl:when>
-		</xsl:choose>		
-	</xsl:variable>	
-		
-	
-	<text class="horizp2pbuslabel" 
-			  x="{$text_X_}"
-			  y="{($arrow_Y_)}">
-			<xsl:value-of select="$iBusName"/>
-	</text>
-	
-</xsl:template>
-	
-	
-<xsl:template name="Define_SharedBus"> 
-	
-	<xsl:param name="iBusType"    select="'OPB'"/>
-	
-	<xsl:variable name="sharedbus_w_"  select="($G_total_drawarea_W - ($BLKD_INNER_GAP * 2))"/>
-	
-	<xsl:variable name="bus_col_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="bus_col_lt_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	 <symbol id="{$iBusType}_SharedBus">
-		<use  x="0"                                   y="0"  xlink:href="#{$iBusType}_BusArrowWest"/>	
-		<use  x="{$sharedbus_w_ - $BLKD_BUS_ARROW_W}" y="0"  xlink:href="#{$iBusType}_BusArrowEast"/>	
-		
-		<rect x="{$BLKD_BUS_ARROW_W}" 
-			  y="{$BLKD_BUS_ARROW_G}"  
-			  width= "{$sharedbus_w_  - ($BLKD_BUS_ARROW_W * 2)}" 
-			  height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$bus_col_}"/>
-	</symbol>
-</xsl:template>
-
-	
-<xsl:template name="Define_SplitBusses"> 
-	
-	<xsl:param name="iBusType"    sselect="'FSL'"/>
-	
-	<xsl:variable name="busColor_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="$iBusType"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="bifc_r_" select="ceiling($BLKD_BIFC_W div 3)"/>
-	
-	 <symbol id="{$iBusType}_SplitBus_EAST">
-		<use  x="0"  y="0"    xlink:href="#{$iBusType}_BusArrowWest"/>	
-		
-		<rect x="{$BLKD_BUS_ARROW_W}" 
-			  y="{$BLKD_BUS_ARROW_G}"  
-			  width= "{$BLKD_BIFC_W}" 
-			  height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$busColor_}"/>
-		 
-	</symbol>
-	
-	<xsl:variable name="splbus_w_" select="($BLKD_BUS_ARROW_W + $BLKD_BIFC_W + $BLKD_BIFC_Wi)"/>
-	
-	 <symbol id="{$iBusType}_SplitBus_WEST">
-		<use   x="0"   y="0"  xlink:href="#{$iBusType}_SplitBus_EAST" transform="scale(-1,1) translate({$splbus_w_ * -1},0)"/>
-	</symbol>
-	
-	 <symbol id="{$iBusType}_SplitBus_OneWay">
-		 
-		<rect x="0" 
-			  y="{$BLKD_BUS_ARROW_G}"  
-			  width= "{($BLKD_BUS_ARROW_W * 2)}" 
-			  height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$busColor_}"/>
-		 
-		<rect x="{($BLKD_BUS_ARROW_W * 2)}"
-			  y="0"  
-			  width= "{$BLKD_BUS_ARROW_H}" 
-			  height="{$BLKD_BUS_ARROW_H}" style="stroke:none; fill:{$busColor_}"/>
-		 
-	</symbol>
-	
-	
-</xsl:template>
-
-
-<xsl:template name="Define_SharedBus_Group"> 
-
-<!-- The Bridges go into the shared bus shape -->
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE">	
-	
-		<xsl:variable name="modInst_" select="@INSTANCE"/>
-		<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInst_)]/@MODTYPE"/>
-		
-		<xsl:call-template name="Define_Peripheral"> 
-			<xsl:with-param name="iModVori"  select="'normal'"/>
-			<xsl:with-param name="iModInst"  select="$modInst_"/>
-			<xsl:with-param name="iModType"  select="$modType_"/>
-		</xsl:call-template>
-	
-	</xsl:for-each>
-	
- <symbol id="group_sharedBusses">
-	
-	<!-- Draw the shared bus shapes first -->	
-	<xsl:for-each select="BLKDSHAPES/SBSSHAPES/MODULE">	
-		<xsl:variable name="instance_"  select="@INSTANCE"/>
-		
-		<xsl:variable name="busStd_"   select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $instance_)]/@BUSSTD"/>	
-		<xsl:variable name="busIndex_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $instance_)]/@BUSINDEX"/>	
-		
-		<xsl:variable name="busY_"  select="($busIndex_ * $BLKD_SBS_LANE_H)"/>	
-		
-		<use  x="0"  y="{$busY_}"  xlink:href="#{$busStd_}_SharedBus"/>	
-		
-		<text class="sharedbuslabel" 
-			  x="8"
-			  y="{$busY_ + $BLKD_BUS_ARROW_H + 10}">
-			<xsl:value-of select="$instance_"/>
-		</text>
-		
-	</xsl:for-each>
-</symbol>	
-
- <symbol id="KEY_SharedBus">
-	<use  x="0"  y="0"  xlink:href="#KEY_BusArrowWest"/>	
-	<use  x="30" y="0"  xlink:href="#KEY_BusArrowEast"/>	
-	 
-	<xsl:variable name="key_col_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="'KEY'"/>
-		</xsl:call-template>	
-	</xsl:variable>
-		
-	<rect x="{$BLKD_BUS_ARROW_W}" 
-		  y="{$BLKD_BUS_ARROW_G}"  
-		  width= "{30 - $BLKD_BUS_ARROW_W}" 
-		  height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$key_col_}"/>
-</symbol>
-	
-</xsl:template>
-	
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl
deleted file mode 100644
index fcff090..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Calculations.xsl
+++ /dev/null
@@ -1,1080 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-                
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-	
-<xsl:template name="_calc_Proc_Height">
-	<xsl:param name="iProcInst"  select="_processor_"/>
-	
-	<xsl:variable name="tot_bifs_h_">
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iProcInst)]/@BIFS_H)">0</xsl:if>
-		
-		<xsl:if test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iProcInst)]/@BIFS_H">
-			<xsl:variable name="bifs_h_" select="(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iProcInst)]/@BIFS_H)"/>
-			<xsl:value-of select="(($BLKD_BIF_H + $BLKD_BIF_GAP) * $bifs_h_)"/>	
-		</xsl:if>
-	</xsl:variable>	
-	
-	<xsl:value-of select="(($BLKD_MOD_LANE_H * 2) + $tot_bifs_h_ + ($BLKD_MOD_LABEL_H + $BLKD_BIF_GAP))"/>	
-</xsl:template>
-
-<xsl:template name="_calc_Max_Proc_Height">
-
-	<!-- Store the heights in a variable -->	
-	<xsl:variable name="proc_heights_">
-	
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE)">
-			<PROC HEIGHT="0"/>
-		</xsl:if>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE">
-			<xsl:variable name="procInst_" select="@INSTANCE"/> 
-			<xsl:variable name="proc_height_">
-				<xsl:call-template name="_calc_Proc_Height">	
-					<xsl:with-param name="iProcInst" select="$procInst_"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-<!--			
-			<xsl:message>Found Proc height as <xsl:value-of select="$proc_height_"/></xsl:message>
--->			
-			<PROC HEIGHT="{$proc_height_}"/>
-		</xsl:for-each>
-	</xsl:variable>
-	
-	<!-- Return the max of them -->	
-<!--	
-	<xsl:message>Found Proc ax as <xsl:value-of select="math:max(exsl:node-set($proc_heights_)/PROC/@HEIGHT)"/></xsl:message>
--->	
-
-	<xsl:value-of select="math:max(exsl:node-set($proc_heights_)/PROC/@HEIGHT)"/>
-</xsl:template>
-
-
-<xsl:template name="_calc_Proc_MemoryUnits_Height">
-	<xsl:param name="iProcInst"  select="_processor_"/>
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and (@MODCLASS = 'MEMORY_UNIT'))])">0</xsl:if>
-	
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and (@MODCLASS='MEMORY_UNIT'))]">
-		
-	<xsl:variable name="peri_gap_">
-		<xsl:choose>
-			<xsl:when test="not(@CSTACK_INDEX)">
-				<xsl:value-of select="$BLKD_BIF_H"/>
-			</xsl:when>
-			<xsl:otherwise>0</xsl:otherwise>
-		</xsl:choose>	
-	</xsl:variable>	
-			
-		
-		<!-- Store the all memory unit heights in a variable -->
-		<xsl:variable name="memU_heights_">
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and (@MODCLASS='MEMORY_UNIT'))]">
-<!--				
-				<xsl:variable name="unitId_" select="@PSTACK_MODS_Y"/>
--->				
-				<xsl:variable name="unitHeight_">
-					<xsl:call-template name="_calc_MemoryUnit_Height">	
-						<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
-					</xsl:call-template>	
-				</xsl:variable>
-				
-				<MEM_UNIT HEIGHT="{$unitHeight_ + $peri_gap_}"/>
-			</xsl:for-each>
-		</xsl:variable>
-		
-		<xsl:value-of select="sum(exsl:node-set($memU_heights_)/MEM_UNIT/@HEIGHT)"/>
-	</xsl:if>
-</xsl:template>
-	
-
-<xsl:template name="_calc_Proc_Peripherals_Height">
-	<xsl:param name="iProcInst"  select="_processor_"/>
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and not(@MODCLASS = 'MEMORY_UNIT'))])">0</xsl:if>
-	
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and not(@MODCLASS='MEMORY_UNIT'))]">
-	
-		<xsl:variable name="peri_gap_">
-			<xsl:if test="@CSTACK_INDEX">
-				<xsl:value-of select="$BLKD_BIF_H"/>
-			</xsl:if>
-			<xsl:if test="not(@IS_CSTACK)">0</xsl:if>
-		</xsl:variable>
-	
-		<!-- Store the all peripheral heights in a variable -->
-		<xsl:variable name="peri_heights_">
-			
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and not(@MODCLASS='MEMORY_UNIT'))]">
-				<xsl:for-each select="MODULE">
-<!--					
-					<xsl:message><xsl:value-of select="@INSTANCE"/></xsl:message>		
--->					
-					<xsl:variable name="peri_height_">
-						<xsl:call-template name="_calc_PeriShape_Height">	
-							<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-						</xsl:call-template>	
-					</xsl:variable>
-					<PERI HEIGHT="{$peri_height_ + $peri_gap_}"/>
-				</xsl:for-each>		
-			</xsl:for-each>
-		</xsl:variable>
-		
-		<xsl:value-of select="sum(exsl:node-set($peri_heights_)/PERI/@HEIGHT)"/>
-	</xsl:if>
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Space_AbvSbs_Height">
-	<xsl:param name="iStackToEast"  select="'NONE'"/>
-	<xsl:param name="iStackToWest"  select="'NONE'"/>
-	
-	
-	<xsl:variable name = "stackAbvSbs_West_H_">
-		<xsl:choose>
-			<xsl:when test="(($iStackToEast = '0')   and     ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="(($iStackToEast = 'NONE') and not($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:when test="(not($iStackToEast = '0') and ($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="($iStackToEast - 1)"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:otherwise>0</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name = "stackAbvSbs_East_H_">
-		<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-			<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-	<xsl:variable name="stackAbvSbs_heights_">
-		<STACK HEIGHT="{$stackAbvSbs_East_H_}"/>
-		<STACK HEIGHT="{$stackAbvSbs_West_H_}"/>
-	</xsl:variable>
-	
-	<xsl:value-of select="math:max(exsl:node-set($stackAbvSbs_heights_)/STACK/@HEIGHT)"/>
-</xsl:template>
-
-	
-<xsl:template name="_calc_Space_BlwSbs_Height">
-	<xsl:param name="iStackToEast"  select="'NONE'"/>
-	<xsl:param name="iStackToWest"  select="'NONE'"/>
-		
-	<xsl:variable name = "stackBlwSbs_West_H_">
-		<xsl:choose>
-			<xsl:when test="(($iStackToEast = '0')    and    ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="(($iStackToEast = 'NONE') and not($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_BlwSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:when test="(not($iStackToEast = '0') and    ($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_BlwSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="($iStackToEast - 1)"/>
-				</xsl:call-template>
-			</xsl:when>
-		</xsl:choose>
-	</xsl:variable>
-	
-	
-	<xsl:variable name = "stackBlwSbs_East_H_">
-		<xsl:call-template name="_calc_Stack_BlwSbs_Height">
-			<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-	<xsl:variable name="stackBlwSbs_heights_">
-		<STACK HEIGHT="{$stackBlwSbs_East_H_}"/>
-		<STACK HEIGHT="{$stackBlwSbs_West_H_}"/>
-	</xsl:variable>
-	
-	<xsl:value-of select="math:max(exsl:node-set($stackBlwSbs_heights_)/STACK/@HEIGHT)"/>
-</xsl:template>
-	
-
-	
-<xsl:template name="_calc_Stack_AbvSbs_Height">
-	<xsl:param name="iStackIdx"  select="100"/>
-<!--	
-	<xsl:message>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</xsl:message>
--->	
-	
-	<xsl:if test="(not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_ABVSBS))]) and
-				   not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@STACK_HORIZ_INDEX = $iStackIdx)]))"><xsl:value-of select="$BLKD_PROC2SBS_GAP"/></xsl:if>
-	
-	<xsl:if test="((/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_ABVSBS))]) or
-				   (/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[      (@STACK_HORIZ_INDEX = $iStackIdx)]))">
-		
-<!--			
-		<xsl:variable name="peri_gap_">
-			<xsl:value-of select="$BLKD_BIF_H"/>
-			<xsl:choose>
-				<xsl:when test="(@SHAPE_VERTI_INDEX)">
-				</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>	
--->			
-			
-<!--		
-		<xsl:message>The gap is <xsl:value-of select="$peri_gap_"/></xsl:message>
-		<xsl:message>The gap is <xsl:value-of select="$peri_gap_"/></xsl:message>
-		<xsl:message>================================</xsl:message>
-		<xsl:message>================================</xsl:message>
-		<xsl:message>This is above <xsl:value-of select="@INSTANCE"/></xsl:message>
-		<xsl:message><xsl:value-of select="@INSTANCE"/> : <xsl:value-of select="$peri_height_"/></xsl:message>
--->	
-	
-	
-		<!-- Store the all peripheral heights in a variable -->
-		<xsl:variable name="peri_heights_">
-			
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and not(@MODCLASS = 'MEMORY_UNIT') and (@IS_ABVSBS))]">
-				<xsl:for-each select="MODULE">
-<!--					
-					<xsl:message>This is above <xsl:value-of select="@INSTANCE"/></xsl:message>
--->					
-					
-					<xsl:variable name="peri_height_">
-<!--						
-						<xsl:call-template name="_calc_Shape_Height">	
-							<xsl:with-param name="shapeId" select="@SHAPE_ID"/>
-						</xsl:call-template>	
--->	 
-	
-						<xsl:call-template name="_calc_PeriShape_Height">	
-							<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-						</xsl:call-template>	
-					</xsl:variable>
-					
-					<PERI HEIGHT="{$peri_height_ + $BLKD_BIF_H}"/>
-				</xsl:for-each>
-			</xsl:for-each>
-			
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@MODCLASS = 'MEMORY_UNIT') and (@IS_ABVSBS))]">
-			
-				<xsl:variable name="memu_height_">
-					<xsl:call-template name="_calc_MemoryUnit_Height">	
-						<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
-					</xsl:call-template>	
-				</xsl:variable>
-			
-<!--				
-				<xsl:message>Mem_Unit : <xsl:value-of select="@SHAPE_ID"/> : <xsl:value-of select="$memu_height_ + $peri_gap_"/></xsl:message>
--->				
-				<PERI HEIGHT="{$memu_height_ + $BLKD_BIF_H}"/>
-			
-			</xsl:for-each>
-			
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_ABVSBS))]">
-					
-				<xsl:variable name="proc_height_">
-					<xsl:call-template name="_calc_PeriShape_Height">	
-						<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-					</xsl:call-template>	
-				</xsl:variable>
-				
-<!--				
-		<xsl:message>===================================</xsl:message>
-		<xsl:message>Processor : <xsl:value-of select="@INSTANCE"/> : <xsl:value-of select="$peri_height_ + $peri_gap_"/></xsl:message>
-				<PERI HEIGHT="{$proc_height_ + $BLKD_PROC2SBS_GAP }"/>
--->					
-				<PERI HEIGHT="{$proc_height_ + $BLKD_BIF_H}"/>
-				
-			</xsl:for-each>
-		
-		</xsl:variable>
-		
-<!--		
-	<xsl:message><xsl:value-of select="@INSTANCE"/> : <xsl:value-of select="$peri_height_ + $peri_gap_"/></xsl:message>
-	<xsl:message>================================</xsl:message>
--->
-		
-<!--		
-	<xsl:message>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</xsl:message>
--->		
-		<xsl:value-of select="sum(exsl:node-set($peri_heights_)/PERI/@HEIGHT)"/>
-	</xsl:if>
-	
-</xsl:template>
-	
-<xsl:template name="_calc_Stack_BlwSbs_Height">
-	<xsl:param name="iStackIdx"  select="100"/>
-	
-		<!-- Store the all peripheral heights in a variable -->
-		<xsl:variable name="stack_heights_">
-			
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_BLWSBS))])">
-				<STACKSHAPE HEIGHT="0"/>
-			</xsl:if>
-			
-			<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_BLWSBS))]">
-	
-				<xsl:variable name="peri_gap_">
-					<xsl:choose>
-						<xsl:when test="(@SHAPE_VERTI_INDEX)">
-							<xsl:value-of select="$BLKD_BIF_H"/>
-						</xsl:when>
-						<xsl:otherwise>0</xsl:otherwise>
-					</xsl:choose>	
-				</xsl:variable>	
-				
-				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and not(@MODCLASS = 'MEMORY_UNIT') and (@IS_BLWSBS))]">
-					<xsl:for-each select="MODULE">
-<!--					
-					<xsl:message>This is below <xsl:value-of select="@INSTANCE"/></xsl:message>
--->	
-						<xsl:variable name="peri_height_">
-							<xsl:call-template name="_calc_PeriShape_Height">	
-								<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-							</xsl:call-template>	
-						</xsl:variable>
-						
-						<STACKSHAPE HEIGHT="{$peri_height_ + $peri_gap_}"/>
-					</xsl:for-each>
-				</xsl:for-each>
-		
-				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@MODCLASS = 'MEMORY_UNIT') and (@IS_BLWSBS))]">
-			
-					<xsl:variable name="memu_height_">
-						<xsl:call-template name="_calc_MemoryUnit_Height">	
-							<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
-						</xsl:call-template>	
-					</xsl:variable>
-			
-					<STACKSHAPE HEIGHT="{$memu_height_ + $peri_gap_}"/>
-				
-<!--				
-				<xsl:message>Mem_Unit : <xsl:value-of select="@SHAPE_ID"/> : <xsl:value-of select="$memu_height_ + $peri_gap_"/></xsl:message>
--->	
-			
-			</xsl:for-each>
-		</xsl:if>
-			
-		<xsl:variable name="sbsBuckets_H_">
-			<xsl:call-template name="_calc_Stack_SbsBuckets_Height">
-				<xsl:with-param name="iStackIdx" select="$iStackIdx"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			
-			<STACKSHAPE HEIGHT="{$sbsBuckets_H_}"/>
-<!--			
-			<xsl:message>Sbs Bucket H : <xsl:value-of select="$sbsBuckets_H_"/></xsl:message>
--->
-		</xsl:variable>
-		
-<!--		
-		<xsl:message>vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv</xsl:message>
--->		
-		<xsl:value-of select="sum(exsl:node-set($stack_heights_)/STACKSHAPE/@HEIGHT)"/>
-	
-</xsl:template>
-	
-
-<xsl:template name="_calc_Stack_SbsBuckets_Height">
-	<xsl:param name="iStackIdx"  select="1000"/>
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)])">0</xsl:if>
-	
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-	
-		<!-- Store the all buckets heights in a variable -->
-		<xsl:variable name="bkt_heights_">
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-		
-				<xsl:variable name="bkt_height_">
-					<xsl:call-template name="_calc_SbsBucket_Height">	
-						<xsl:with-param name="iBucketId" select="@BUSINDEX"/>
-					</xsl:call-template>	
-				</xsl:variable>
-<!--				
-				<xsl:message>Found shared buckets height as <xsl:value-of select="$bkt_height_"/></xsl:message>
--->				
-				<BKT HEIGHT="{$bkt_height_ + $BLKD_BIF_H}"/>
-			</xsl:for-each>
-		</xsl:variable>
-		
-		<xsl:value-of select="sum(exsl:node-set($bkt_heights_)/BKT/@HEIGHT)"/>
-	</xsl:if>
-</xsl:template>
-
-	
-<xsl:template name="_calc_Max_Stack_BlwSbs_Height">
-
-	<!-- Store the heights in a variable -->	
-	<xsl:variable name="blwSbs_heights_">
-		
-		<!-- Default, in case there are no modules or ports -->		
-		<BLW HEIGHT="0"/>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST &lt; /EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)]">
-	
-<!--			
-			<xsl:message>Found a space of index <xsl:value-of select="@EAST"/></xsl:message>
--->	
-			
-			<xsl:variable name="stack_height_">
-				<xsl:call-template name="_calc_Stack_BlwSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="@EAST"/>
-				</xsl:call-template>
-			</xsl:variable>
-			
-			
-			<BLW HEIGHT="{$stack_height_}"/>
-			
-		</xsl:for-each>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@WEST = (/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH -1))]">
-			
-<!--			
-			<xsl:message>Last stack of index <xsl:value-of select="@WEST"/></xsl:message>
--->			
-			
-			<xsl:variable name="stack_height_">
-				<xsl:call-template name="_calc_Stack_BlwSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="@WEST"/>
-				</xsl:call-template>
-			</xsl:variable>
-			
-			
-			<BLW HEIGHT="{$stack_height_}"/>
-			
-		</xsl:for-each>
-		
-		
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>Found Blw Sbs max as <xsl:value-of select="math:max(exsl:node-set($blwSbs_heights_)/BLW/@HEIGHT)"/></xsl:message>
--->	
-	<!-- Return the max of them -->	
-	<xsl:value-of select="math:max(exsl:node-set($blwSbs_heights_)/BLW/@HEIGHT)"/>
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Max_Stack_AbvSbs_Height">
-
-	<!-- Store the heights in a variable -->	
-	<xsl:variable name="abvSbs_heights_">
-		
-		<!-- Default, in case there are no modules or ports -->		
-		<ABV HEIGHT="0"/>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST &lt; /EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)]">
-			
-<!--			
-			<xsl:message>Found a space of index <xsl:value-of select="@EAST"/></xsl:message>
--->	
-			
-			<xsl:variable name="stack_height_">
-				<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-					<xsl:with-param name="iStackIdx"  select="@EAST"/>
-				</xsl:call-template>
-			</xsl:variable>
-			
-<!--			
-			<xsl:message>Found stack of width <xsl:value-of select="$stack_width_"/></xsl:message>
-			<xsl:message>==============================</xsl:message>
--->			
-			
-			<ABV HEIGHT="{$stack_height_}"/>
-			
-		</xsl:for-each>
-		
-		
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>Found Blw Sbs max as <xsl:value-of select="math:max(exsl:node-set($blwSbs_heights_)/BLW/@HEIGHT)"/></xsl:message>
--->	
-	<!-- Return the max of them -->	
-	<xsl:value-of select="math:max(exsl:node-set($abvSbs_heights_)/ABV/@HEIGHT)"/>
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Max_Proc_PerisAbvSbs_Height">
-	<xsl:param name="iProcInst"  select="_processor_"/>
-	
-	<!-- Store the heights in a variable -->	
-	<xsl:variable name="abvSbs_heights_">
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE)">
-			<ABV HEIGHT="0"/>
-		</xsl:if>
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE">
-			<xsl:variable name="procInst_" select="@INSTANCE"/> 
-<!--			
-			<xsl:message>Found Blw Sbs height as <xsl:value-of select="$blwSbs_"/></xsl:message>
-			<ABV HEIGHT="{$pAbvSbs_}"/>
--->			
-			
-			<xsl:variable name="pAbvSbs_">
-				<xsl:call-template name="_calc_Proc_PerisAbvSbs_Height">	
-					<xsl:with-param name="iProcInst" select="$iProcInst_"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:variable name="memUs_">
-				<xsl:call-template name="_calc_Proc_MemoryUnits_Height">	
-					<xsl:with-param name="iProcInst" select="$iProcInst_"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-<!--			
-			<xsl:message>Found Peris Above height as <xsl:value-of select="$pAbvSbs_"/></xsl:message>
-			<xsl:message>Found MemUs Above height as <xsl:value-of select="$memUs_"/></xsl:message>
-			<xsl:message>Found PAbv Above height as <xsl:value-of select="($pAbvSbs_ + $memUs_)"/></xsl:message>
--->			
-			<ABV HEIGHT="{$pAbvSbs_ + $memUs_}"/>
-		</xsl:for-each>
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>Found Abv Sbs max as <xsl:value-of select="math:max(exsl:node-set($abvSbs_heights_)/ABV/@HEIGHT)"/></xsl:message>
--->	
-	
-	<!-- Return the max of them -->	
-	<xsl:value-of select="math:max(exsl:node-set($abvSbs_heights_)/ABV/@HEIGHT)"/>
-</xsl:template>
-	
-
-<xsl:template name="_calc_MultiProc_Stack_Height">
-	<xsl:param name="iMPStack_Blkd_X"  select="100"/>
-	
-		<xsl:variable name="mpStk_ShpHeights_">
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@HAS_MULTIPROCCONNS) and (@PSTACK_BLKD_X = $iMPStack_Blkd_X))])">
-				<MPSHAPE HEIGHT="0"/>
-			</xsl:if>
-			
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@HAS_MULTIPROCCONNS) and (@PSTACK_BLKD_X = $iMPStack_Blkd_X))]">
-				<xsl:variable name="shpClass_" select="@MODCLASS"/> 
-				<xsl:variable name="shpHeight_">
-					<xsl:choose>
-						<xsl:when test="$shpClass_ = 'PERIPHERAL'">
-<!--							
-							<xsl:message>Found Multi Proc Peripheral</xsl:message> 
--->	
-							<xsl:call-template name="_calc_PeriShape_Height">	
-								<xsl:with-param name="iShapeInst" select="MODULE/@INSTANCE"/>
-							</xsl:call-template>	
-						</xsl:when>
-						<xsl:when test="$shpClass_ = 'MEMORY_UNIT'">
-<!--							
-							<xsl:message>Found Multi Proc Memory Unit</xsl:message> 
--->	
-							<xsl:call-template name="_calc_MemoryUnit_Height">	
-								<xsl:with-param name="iShapeIndex"  select="@CSHAPE_INDEX"/>
-							</xsl:call-template>	
-						</xsl:when>
-						<xsl:otherwise>0</xsl:otherwise>
-					</xsl:choose>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>Found <xsl:value-of select="$shpHeight_"/></xsl:message>
--->				
-				
-				<MPSHAPE HEIGHT="{$shpHeight_}"/>
-			</xsl:for-each>
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>Found stack of height <xsl:value-of select="sum(exsl:node-set($mpStk_ShpHeights_)/MPSHAPE/@HEIGHT)"/></xsl:message>
--->	
-	
-	<xsl:value-of select="sum(exsl:node-set($mpStk_ShpHeights_)/MPSHAPE/@HEIGHT)"/>
-</xsl:template>
-
-<xsl:template name="_calc_Max_MultiProc_Stack_Height">
-	
-	<!-- Store the heights in a variable -->	
-	
-	<xsl:variable name="mpStks_Heights_">
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE)">
-			<MPSTK HEIGHT="0"/>
-		</xsl:if>
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@PSTACK_BLKD_X)]">
-			<xsl:variable name="mpstack_height_">
-				<xsl:call-template name="_calc_MultiProc_Stack_Height">
-					<xsl:with-param name="iMPStack_Blkd_X" select="(@PSTACK_BLKD_X + 1)"/>
-				</xsl:call-template>
-			</xsl:variable>
-			
-<!--			
-			<xsl:message>Found <xsl:value-of select="$mpstack_height_"/></xsl:message>
--->			
-			<MPSTK HEIGHT="{$mpstack_height_}"/>
-		</xsl:for-each>
-		
-	</xsl:variable>
-
-		<!-- Return the max of them -->	
-	<xsl:value-of select="math:max(exsl:node-set($mpStks_Heights_)/MPSTK/@HEIGHT)"/>
-	
-</xsl:template>
-
-
-
-<xsl:template name="_calc_Stack_Shape_Y">
-	
-	<xsl:param name="iHorizIdx"  select="100"/>
-	<xsl:param name="iVertiIdx"  select="100"/>
-	
-	
-<!--	
-	<xsl:message>Y at H index <xsl:value-of select="$iHorizIdx"/></xsl:message>
-	<xsl:message>Y at V index <xsl:value-of select="$iVertiIdx"/></xsl:message>
-	<xsl:param name="sbsGap"    select="0"/>
-	<xsl:variable name="numSBSs_"     select="count(/EDKSYSTEM/BLKDSHAPES/SBSSHAPES/MODULE)"/>	
-	<xsl:variable name="sbs_LANE_H_"    select="($numSBSs_ * $BLKD_SBS_LANE_H)"/>
-	<xsl:variable name="sbsGap_"   select="($BLKD_PROC2SBS_GAP + $sbs_LANE_H_)"/>
--->	
-	
-	<xsl:variable name="sbsGap_" select="((count(/EDKSYSTEM/BLKDSHAPES/SBSSHAPES/MODULE) * $BLKD_SBS_LANE_H) + $BLKD_PROC2SBS_GAP)"/>	
-	
-	<xsl:if test="(not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]) and  
-		           not(/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(  (@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]) and
-		           not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(     (@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]))">0</xsl:if>
-	
-	
-	<xsl:if test="((/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))])   or  
-		           (/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(  (@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))])   or
-		           (/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(     (@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]))">
-		<!-- Store the spaces above this one in a variable -->
-		<xsl:variable name="spaces_above_">
-		
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX &lt; $iVertiIdx))])">
-				<SPACE HEIGHT="0"/>
-			</xsl:if>
-			
-			<!-- Store the height of all peripherals and memory units above this one-->
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx)  and (@SHAPE_VERTI_INDEX &lt; $iVertiIdx))]">
-				
-				<xsl:if test="not(@MODCLASS='MEMORY_UNIT')">	
-					<xsl:variable name="peri_height_">
-						<xsl:call-template name="_calc_Shape_Height">	
-							<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
-						</xsl:call-template>	
-					</xsl:variable>
-<!--					
-					<xsl:message>Found peri height <xsl:value-of select="$peri_height_"/></xsl:message>
--->	
-					<SPACE HEIGHT="{$peri_height_ + $BLKD_BIF_H}"/>
-				</xsl:if>
-				
-				<xsl:if test="(@MODCLASS='MEMORY_UNIT')">	
-					<xsl:variable name="memu_height_">
-						<xsl:call-template name="_calc_MemoryUnit_Height">	
-							<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
-						</xsl:call-template>	
-					</xsl:variable>
-<!--					
-					<xsl:message>Found unit height <xsl:value-of select="$memu_height_"/></xsl:message>
--->					
-					<SPACE HEIGHT="{$memu_height_ + $BLKD_BIF_H}"/>
-				</xsl:if>
-				
-			</xsl:for-each>
-			
-			<!-- Store the height of all the processors above this one-->
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[((@STACK_HORIZ_INDEX = $iHorizIdx)  and (@SHAPE_VERTI_INDEX &lt; $iVertiIdx))]">
-				<xsl:variable name="proc_height_">
-						<xsl:call-template name="_calc_PeriShape_Height">	
-							<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-						</xsl:call-template>	
-				</xsl:variable>
-				
-				<SPACE HEIGHT="{$proc_height_ + $BLKD_BIF_H}"/>
-			</xsl:for-each>
-			
-			<!-- If its a peripheral that is below the shared busses, or its a shared bus bucket -->
-			<!-- add the height of the shared busses and the processor.                           -->
-			<xsl:if  test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]/@IS_BLWSBS)">
-				<SPACE HEIGHT="{$sbsGap_}"/>
-			</xsl:if>
-			<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))])">
-				<SPACE HEIGHT="{$sbsGap_}"/>
-			</xsl:if>
-			
-			<!-- Store the height of all shared bus buckets above this one-->
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[((@STACK_HORIZ_INDEX = $iHorizIdx)  and (@SHAPE_VERTI_INDEX &lt; $iVertiIdx))]">
-				<xsl:variable name="bkt_height_">
-					<xsl:call-template name="_calc_SbsBucket_Height">
-						<xsl:with-param name="iBucketId" select="@BUSINDEX"/>
-					</xsl:call-template>	
-				</xsl:variable>
-				
-				<SPACE HEIGHT="{$bkt_height_ + $BLKD_BIF_H}"/>
-			</xsl:for-each>
-			
-		</xsl:variable>
-		
-		<xsl:value-of select="sum(exsl:node-set($spaces_above_)/SPACE/@HEIGHT)"/>
-	</xsl:if>
-	
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Max_BusConnLane_BifY">
-	
-	<xsl:param name="iBusName" select="'_busname_'"/>
-	
-	<!-- Store the heights in a variable -->	
-	<xsl:variable name="busConnYs_">
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/BUSCONNS/BUSCONNLANE/BUSCONN)">
-			<BUSCONNY HEIGHT="0"/>
-		</xsl:if>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/BUSCONNS/BUSCONNLANE[(@BUSNAME = $iBusName)]/BUSCONN">
-			
-			<xsl:variable name="peri_cstk_y_">
-				<xsl:call-template name="_calc_CStackShapesAbv_Height">
-					<xsl:with-param name="iCStackIndex"  select="../@CSTACK_INDEX"/>
-					<xsl:with-param name="ICStackModY"   select="@CSTACK_MODS_Y"/>
-				</xsl:call-template>	
-			</xsl:variable>	
-				
-				<xsl:variable name="peri_bif_dy_">
-					<xsl:value-of select="(($BLKD_BIF_H + $BLKD_BIF_GAP)  * @BIF_Y)"/>
-				</xsl:variable>
-				
-				<xsl:variable name="peri_bc_y_">
-					<xsl:value-of select="($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_BIF_GAP + $peri_bif_dy_ + ceiling($BLKD_BIF_H div 2)) - ceiling($BLKD_BIFC_H div 2)"/>
-				</xsl:variable>
-			
-<!--			
-			<xsl:message>Found a busconn lane</xsl:message>
--->			
-			<BUSCONNY HEIGHT="{$peri_cstk_y_ + $peri_bif_dy_ + $peri_bc_y_}"/>
-		</xsl:for-each>
-		
-	</xsl:variable>
-
-		<!-- Return the max of them -->	
-	<xsl:value-of select="math:max(exsl:node-set($busConnYs_)/BUSCONNY/@HEIGHT)"/>
-	
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Min_BusConnLane_BifY">
-	
-	<xsl:param name="iBusName" select="'_busname_'"/>
-	
-	<!-- Store the heights in a variable -->	
-	<xsl:variable name="busConnYs_">
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/BUSCONNS/BUSCONNLANE/BUSCONN)">
-			<BUSCONNY HEIGHT="0"/>
-		</xsl:if>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/BUSCONNS/BUSCONNLANE[(@BUSNAME = $iBusName)]/BUSCONN">
-			
-			<xsl:variable name="peri_cstk_y_">
-				<xsl:call-template name="_calc_CStackShapesAbv_Height">
-					<xsl:with-param name="iCStackIndex"  select="../@CSTACK_INDEX"/>
-					<xsl:with-param name="iCStackModY"   select="@CSTACK_MODS_Y"/>
-				</xsl:call-template>	
-			</xsl:variable>	
-				
-				<xsl:variable name="peri_bif_dy_">
-					<xsl:value-of select="(($BLKD_BIF_H + $BLKD_BIF_GAP)  * @BIF_Y)"/>
-				</xsl:variable>
-				
-				<xsl:variable name="peri_bc_y_">
-					<xsl:value-of select="($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_BIF_GAP + $peri_bif_dy_ + ceiling($BLKD_BIF_H div 2)) - ceiling($BLKD_BIFC_H div 2)"/>
-				</xsl:variable>
-			
-<!--			
-			<xsl:message>Found a busconn lane</xsl:message>
--->			
-			<BUSCONNY HEIGHT="{$peri_cstk_y_ + $peri_bc_y_}"/>
-		</xsl:for-each>
-		
-	</xsl:variable>
-
-		<!-- Return the min of them -->	
-	<xsl:value-of select="math:min(exsl:node-set($busConnYs_)/BUSCONNY/@HEIGHT)"/>
-	
-</xsl:template>
-	
-<xsl:template name="_calc_Stack_Height">
-	<xsl:param name="iStackIdx"  select="100"/>
-	
-	<xsl:variable name="stack_height_">
-		<!-- if this is called with no vert index of a shape 
-			 it defaults to the total height of the stack -->
-		<xsl:call-template name="_calc_Stack_Shape_Y">
-			<xsl:with-param name="iHorizIdx"  select="$iStackIdx"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-	<xsl:value-of select="$stack_height_"/>
-</xsl:template>
-	
-<!--	
--->	
-	
-	
-<xsl:template name="_calc_Stack_Width">
-	<xsl:param name="iStackIdx"  select="100"/>
-	
-<!--	
-	<xsl:message>=============Stack Idx <xsl:value-of select="$iStackIdx"/>====</xsl:message>			
--->	
-	<xsl:variable name="shape_widths_">	
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[@STACK_HORIZ_INDEX = $iStackIdx])">
-			<SHAPE WIDTH="0"/>
-		</xsl:if>
-			
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[@STACK_HORIZ_INDEX = $iStackIdx])">
-			<SHAPE WIDTH="0"/>
-		</xsl:if>
-			
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-<!--			
-			<xsl:variable name="proc_w_">
-				<xsl:value-of select="$BLKD_MOD_W"/>
-			</xsl:variable>
-			<xsl:message>Found processor of width <xsl:value-of select="$proc_w_"/></xsl:message>
--->	
-			<SHAPE WIDTH="{$BLKD_MOD_W}"/>
-		</xsl:for-each>
-			
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-				
-			<xsl:variable name="shpClass_" select="@MODCLASS"/> 
-			<xsl:variable name="shape_w_">
-				<xsl:choose>
-						
-						<xsl:when test="$shpClass_ = 'PERIPHERAL'">
-							<xsl:value-of select="$BLKD_MOD_W"/>
-						</xsl:when>
-						
-						<xsl:when test="$shpClass_ = 'MEMORY_UNIT'">
-							<xsl:value-of select="($BLKD_MOD_W * @MODS_W)"/>
-						</xsl:when>
-						
-						<xsl:otherwise>0</xsl:otherwise>
-						
-					</xsl:choose>
-				</xsl:variable>
-				
-<!--		
-			<xsl:message>Found shape width <xsl:value-of select="$shape_w_"/></xsl:message>
--->				
-				
-			<SHAPE WIDTH="{$shape_w_}"/>
-		</xsl:for-each>
-			
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-			<xsl:variable name="bucket_w_">
-				  <xsl:value-of select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
-			</xsl:variable>
-			
-<!--				
-			<xsl:message>Found bucket of width <xsl:value-of select="$bucket_w_"/></xsl:message>
--->				
-			<SHAPE WIDTH="{$bucket_w_}"/>
-		</xsl:for-each>
-			
-	</xsl:variable>
-	
-	<xsl:value-of select="math:max(exsl:node-set($shape_widths_)/SHAPE/@WIDTH)"/>
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Stack_X">
-	<xsl:param name="iStackIdx"  select="0"/>
-<!--	
-	<xsl:message>Looking for stack indexes less than <xsl:value-of select="$iStackIdx"/></xsl:message>
--->	
-	
-	<!-- Store the stack widths in a variable -->	
-	<xsl:variable name="stackspace_widths_">
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES[(@STACK_HORIZ_INDEX &lt; $iStackIdx)])">
-			<STACKSPACE WIDTH="0"/>
-		</xsl:if>
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES[(@STACK_HORIZ_INDEX &lt; $iStackIdx)])">
-			<STACKSPACE WIDTH="0"/>
-		</xsl:if>
-		
-		<xsl:if test="not(/EDKSYSTEM/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX &lt; $iStackIdx)])">
-			<STACKSPACE WIDTH="0"/>
-		</xsl:if>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST &lt;= $iStackIdx)]">
-			
-<!--		
-			<xsl:message>==============================</xsl:message>
-			<xsl:message>Found a space of index <xsl:value-of select="@EAST"/></xsl:message>
-			<xsl:message>Bus lane space width <xsl:value-of select="@BUSLANES_W"/></xsl:message>
-			<xsl:message>Bus lane space is <xsl:value-of select="$space_width_"/></xsl:message>
--->	
-			<xsl:variable name="space_width_" select="($BLKD_BUS_LANE_W * @BUSLANES_W)"/>
-			<xsl:variable name="stack_width_">
-				<xsl:if test="not(@EAST = $iStackIdx)">
-					<xsl:call-template name="_calc_Stack_Width">
-						<xsl:with-param name="iStackIdx"  select="@EAST"/>
-					</xsl:call-template>
-				</xsl:if>
-				<xsl:if test="(@EAST = $iStackIdx)">0</xsl:if>
-			</xsl:variable>
-			
-<!--			
-			<xsl:message>Found stack of width <xsl:value-of select="$stack_width_"/></xsl:message>
-			<xsl:message>==============================</xsl:message>
--->			
-			
-			<STACKSPACE WIDTH="{$stack_width_ + $space_width_}"/>
-			
-		</xsl:for-each>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(not(@EAST) and (@WEST = ($iStackIdx -1)))]">
-			<xsl:variable name="space_width_" select="($BLKD_BUS_LANE_W * @BUSLANES_W)"/>
-			
-<!--			
-			<xsl:message>Found end space of <xsl:value-of select="$space_width_"/></xsl:message>
--->			
-			<STACKSPACE WIDTH="{$space_width_}"/>
-		</xsl:for-each>
-		
-		
-	</xsl:variable>
-	
-	<xsl:value-of select="sum(exsl:node-set($stackspace_widths_)/STACKSPACE/@WIDTH)"/>
-	
-</xsl:template>	
-	
-<xsl:template name="_calc_Space_Width">
-	
-	<xsl:param name="iStackToWest"  select="'NONE'"/>
-	<xsl:param name="iStackToEast"  select="'NONE'"/>
-	
-<!--	
-	<xsl:message>Stack to West <xsl:value-of select="$stackToWest"/></xsl:message>
-	<xsl:message>Stack to East <xsl:value-of select="$stackToEast"/></xsl:message>
--->	
-	
-	<xsl:variable name="spaceWidth_">
-		<xsl:choose>
-			<xsl:when test="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[((@EAST = $iStackToEast) or (not($iStackToWest = 'NONE') and (@WEST = $iStackToWest)))]">
-				<xsl:value-of select="((/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[((@EAST = $iStackToEast) or (not($iStackToWest = 'NONE') and (@WEST = $iStackToWest)))]/@BUSLANES_W) * $BLKD_BUS_LANE_W)"/>
-			</xsl:when>	
-			<xsl:otherwise>0</xsl:otherwise>	
-		</xsl:choose>	
-	</xsl:variable>	
-	
-<!--	
-	<xsl:message>Space width <xsl:value-of select="$spaceWidth_"/></xsl:message>
--->	
-	
-	<xsl:value-of select="$spaceWidth_"/>
-</xsl:template>
-	
-	
-<xsl:template name="_calc_Space_X">
-	
-	<xsl:param name="iStackToWest"  select="'NONE'"/>
-	<xsl:param name="iStackToEast"  select="'NONE'"/>
-	
-<!--	
-	<xsl:message>Stack East <xsl:value-of select="$stackToEast"/></xsl:message>
-	<xsl:message>Stack West <xsl:value-of select="$stackToWest"/></xsl:message>
--->	
-	
-	<!-- Store the stack widths in a variable -->	
-	
-<!--	
-	<xsl:message>Looking for stack indexes less than <xsl:value-of select="$stackIdx"/></xsl:message>
--->	
-	
-	<xsl:variable name="stackspace_widths_">
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES[(@STACK_HORIZ_INDEX &lt; $iStackToEast)])">
-			<STACKSPACE WIDTH="0"/>
-		</xsl:if>
-		
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES[(@STACK_HORIZ_INDEX &lt; $iStackToEast)])">
-			<STACKSPACE WIDTH="0"/>
-		</xsl:if>
-		
-		<xsl:if test="not(/EDKSYSTEM/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX &lt; $iStackToEast)])">
-			<STACKSPACE WIDTH="0"/>
-		</xsl:if>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[((@EAST &lt; $iStackToEast) or (not($iStackToWest = 'NONE') and (@EAST &lt;= $iStackToWest)))]">
-			
-<!--		
-			<xsl:message>==============================</xsl:message>
-			<xsl:message>Found a space of index <xsl:value-of select="@EAST"/></xsl:message>
--->	
-			
-			<xsl:variable name="space_width_" select="($BLKD_BUS_LANE_W * @BUSLANES_W)"/>
-<!--			
-			<xsl:message>Bus lane space width <xsl:value-of select="@BUSLANES_W"/></xsl:message>
-			<xsl:message>Bus lane space is <xsl:value-of select="$space_width_"/></xsl:message>
--->	
-				<xsl:variable name="stack_width_">
-					<xsl:call-template name="_calc_Stack_Width">
-						<xsl:with-param name="iStackIdx"  select="@EAST"/>
-					</xsl:call-template>
-				</xsl:variable>
-			
-<!--			
-			<xsl:message>Found stack of width <xsl:value-of select="$stack_width_"/></xsl:message>
-			<xsl:message>==============================</xsl:message>
--->			
-			
-			<STACKSPACE WIDTH="{$stack_width_ + $space_width_}"/>
-		</xsl:for-each>
-	</xsl:variable>
-	
-	<xsl:variable name = "stackToWest_W_">
-		<xsl:choose>
-			<xsl:when test="(($iStackToEast = '0')   and     ($iStackToWest = 'NONE'))">0</xsl:when>
-			<xsl:when test="(($iStackToEast = 'NONE') and not($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_Width">
-					<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:when test="(not($iStackToEast = '0') and ($iStackToWest = 'NONE'))">
-				<xsl:call-template name="_calc_Stack_Width">
-					<xsl:with-param name="iStackIdx"  select="($iStackToEast - 1)"/>
-				</xsl:call-template>
-			</xsl:when>
-			<xsl:otherwise>0</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-<!--	
-	<xsl:variable name = "stackToEast_W_">
-		<xsl:call-template name="_calc_Stack_Width">
-			<xsl:with-param name="stackIdx"  select="$stackToEast"/>
-		</xsl:call-template>
-	</xsl:variable>
-	<xsl:variable name ="extSpaceEast_W_" select="ceiling($stackToEast_W_ div 2)"/>
--->	
-	
-	<xsl:variable name ="extSpaceWest_W_" select="ceiling($stackToWest_W_ div 2)"/>
-	 
-	<xsl:value-of select="sum(exsl:node-set($stackspace_widths_)/STACKSPACE/@WIDTH) - $extSpaceWest_W_"/>
-</xsl:template>	
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
deleted file mode 100644
index bf9bf94..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl
+++ /dev/null
@@ -1,173 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-                
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-	
-<!-- 
-	======================================================
-			BUS INTERFACE DIMENSIONS
-	======================================================
--->				
-	
-<xsl:variable name="BLKD_BIF_H"     select="16"/>				
-<xsl:variable name="BLKD_BIF_W"     select="32"/>				
-	
-<xsl:variable name="BLKD_BIFC_H"    select="24"/>				
-<xsl:variable name="BLKD_BIFC_W"    select="24"/>				
-
-<xsl:variable name="BLKD_BIFC_dx"   select="ceiling($BLKD_BIFC_W div 5)"/>
-<xsl:variable name="BLKD_BIFC_dy"   select="ceiling($BLKD_BIFC_H div 5)"/>
-<xsl:variable name="BLKD_BIFC_Hi"   select="($BLKD_BIFC_H - ($BLKD_BIFC_dy * 2))"/>	
-<xsl:variable name="BLKD_BIFC_Wi"   select="($BLKD_BIFC_W - ($BLKD_BIFC_dx * 2))"/>
-
-<xsl:variable name="BLKD_BIF_TYPE_ONEWAY"  select="'OneWay'"/>
-	
-<!-- 
-	======================================================
-			GLOLBAL BUS INTERFACE DIMENSIONS
-		(Define for global MdtSVG_BifShapes.xsl which is used across all
-	     diagrams to define the shapes of bifs the same across all diagrams)
-	======================================================
--->	
-	
-<xsl:variable name="BIF_H"     select="$BLKD_BIF_H"/>				
-<xsl:variable name="BIF_W"     select="$BLKD_BIF_W"/>
-	
-<xsl:variable name="BIFC_H"    select="$BLKD_BIFC_H"/>
-<xsl:variable name="BIFC_W"    select="$BLKD_BIFC_W"/>
-	
-<xsl:variable name="BIFC_dx"   select="$BLKD_BIFC_dx"/>
-<xsl:variable name="BIFC_dy"   select="$BLKD_BIFC_dy"/>
-	
-<xsl:variable name="BIFC_Hi"   select="$BLKD_BIFC_Hi"/>	
-<xsl:variable name="BIFC_Wi"   select="$BLKD_BIFC_Wi"/>
-
-
-<!-- 
-	======================================================
-			BUS DIMENSIONS
-	======================================================
--->				
-	
-<xsl:variable name="BLKD_P2P_BUS_W"     select="($BLKD_BUS_ARROW_H - ($BLKD_BUS_ARROW_G * 2))"/>	
-<xsl:variable name="BLKD_SBS_LANE_H"    select="($BLKD_MOD_H + ($BLKD_BIF_H * 2))"/>	
-<xsl:variable name="BLKD_BUS_LANE_W"    select="($BLKD_BIF_W + ($BLKD_MOD_BIF_GAP_H * 2))"/>
-<xsl:variable name="BLKD_BUS_ARROW_W"   select="ceiling($BLKD_BIFC_W div 3)"/>	
-<xsl:variable name="BLKD_BUS_ARROW_H"   select="ceiling($BLKD_BIFC_H div 2)"/>
-<xsl:variable name="BLKD_BUS_ARROW_G"   select="ceiling($BLKD_BIFC_W div 12)"/>
-	
-	
-<!-- 
-	======================================================
-			IO PORT DIMENSIONS
-	======================================================
--->				
-	
-<xsl:variable name="BLKD_IOP_H"   select="16"/>				
-<xsl:variable name="BLKD_IOP_W"   select="16"/>				
-<xsl:variable name="BLKD_IOP_SPC" select="12"/>				
-
-	
-<!-- 
-	======================================================
-			INTERRUPT NOTATION DIMENSIONS
-	======================================================
--->				
-	
-<xsl:variable name="BLKD_INTR_W"  select="18"/>
-<xsl:variable name="BLKD_INTR_H"  select="18"/>
-	
-<!-- 
-	======================================================
-			MODULE DIMENSIONS
-	======================================================
--->				
-	
-<xsl:variable name="BLKD_MOD_IO_GAP"   select="8"/>	
-	
-<xsl:variable name="BLKD_MOD_W"  select="(                    ($BLKD_BIF_W * 2) + ($BLKD_MOD_BIF_GAP_H * 1) + ($BLKD_MOD_LANE_W * 2))"/>
-<xsl:variable name="BLKD_MOD_H"  select="($BLKD_MOD_LABEL_H + ($BLKD_BIF_H * 1) + ($BLKD_MOD_BIF_GAP_V * 1) + ($BLKD_MOD_LANE_H * 2))"/>
-	
-<xsl:variable name="BLKD_MOD_BIF_GAP_H" select="ceiling($BLKD_BIF_H div 4)"/>				
-<xsl:variable name="BLKD_MOD_BIF_GAP_V" select="ceiling($BLKD_BIFC_H div 2)"/>				
-	
-<xsl:variable name="BLKD_MOD_LABEL_W"   select="(($BLKD_BIF_W * 2) + $BLKD_MOD_BIF_GAP_H)"/>
-<xsl:variable name="BLKD_MOD_LABEL_H"   select="(($BLKD_BIF_H * 2) + ceiling($BLKD_BIF_H div 3))"/>
-	
-<xsl:variable name="BLKD_MOD_LANE_W"    select="ceiling($BLKD_BIF_W div 3)"/>
-<xsl:variable name="BLKD_MOD_LANE_H"    select="ceiling($BLKD_BIF_H div 4)"/>
-	
-<xsl:variable name="BLKD_MOD_EDGE_W"    select="ceiling($BLKD_MOD_LANE_W div 2)"/>
-<xsl:variable name="BLKD_MOD_SHAPES_G"  select="($BLKD_BIF_W + $BLKD_BIF_W)"/>
-	
-<xsl:variable name="BLKD_MOD_BKTLANE_H" select="$BLKD_BIF_H"/>
-<xsl:variable name="BLKD_MOD_BKTLANE_W" select="$BLKD_BIF_H"/>
-	
-<xsl:variable name="BLKD_MOD_BUCKET_G"  select="ceiling($BLKD_BIF_W div 2)"/>
-	
-<xsl:variable name="BLKD_MPMC_MOD_H"    select="(($BLKD_BIF_H * 1) + ($BLKD_MOD_BIF_GAP_V * 2) + ($BLKD_MOD_LANE_H * 2))"/>
-	
-	
-<!-- 
-	======================================================
-			GLOBAL DIAGRAM DIMENSIONS
-	======================================================
--->				
-	
-<xsl:variable name="BLKD_IORCHAN_H"      select="$BLKD_BIF_H"/>
-<xsl:variable name="BLKD_IORCHAN_W"      select="$BLKD_BIF_H"/>
-	
-<xsl:variable name="BLKD_PRTCHAN_H"      select="($BLKD_BIF_H * 2) + ceiling($BLKD_BIF_H div 2)"/>
-<xsl:variable name="BLKD_PRTCHAN_W"      select="($BLKD_BIF_H * 2) + ceiling($BLKD_BIF_H div 2) + 8"/>
-	
-<xsl:variable name="BLKD_DRAWAREA_MIN_W" select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * 3) + ($BLKD_MOD_BUCKET_G * 2)))"/>
-	
-<xsl:variable name="BLKD_INNER_X" 		 select="($BLKD_PRTCHAN_W  + $BLKD_IORCHAN_W + $BLKD_INNER_GAP)"/>
-<xsl:variable name="BLKD_INNER_Y" 		 select="($BLKD_PRTCHAN_H  + $BLKD_IORCHAN_H + $BLKD_INNER_GAP)"/>
-<xsl:variable name="BLKD_INNER_GAP"      select="ceiling($BLKD_MOD_W div 2)"/>
-	
-<xsl:variable name="BLKD_SBS2IP_GAP"    select="$BLKD_MOD_H"/>
-<xsl:variable name="BLKD_BRIDGE_GAP"    select="($BLKD_BUS_LANE_W * 4)"/>
-<xsl:variable name="BLKD_IP2UNK_GAP"    select="$BLKD_MOD_H"/>
-<xsl:variable name="BLKD_PROC2SBS_GAP"  select="($BLKD_BIF_H * 2)"/>
-<xsl:variable name="BLKD_IOR2PROC_GAP"  select="$BLKD_BIF_W"/>
-<xsl:variable name="BLKD_MPMC2PROC_GAP" select="($BLKD_BIF_H * 2)"/>
-<xsl:variable name="BLKD_SPECS2KEY_GAP" select="$BLKD_BIF_W"/>
-<xsl:variable name="BLKD_DRAWAREA2KEY_GAP"  select="ceiling($BLKD_BIF_W div 3)"/>
-	
-<xsl:variable name="BLKD_KEY_H"         select="250"/>
-<xsl:variable name="BLKD_KEY_W"         select="($BLKD_DRAWAREA_MIN_W + ceiling($BLKD_DRAWAREA_MIN_W div 2.5))"/>
-	
-	
-<xsl:variable name="BLKD_SPECS_H"       select="100"/>
-<xsl:variable name="BLKD_SPECS_W"       select="300"/>
-	
-	
-	
-<xsl:variable name="BLKD_BKT_MODS_PER_ROW"   select="3"/>
-	
-<!--		
-<xsl:template name="Print_Dimensions">
-	<xsl:message>MOD_LABEL_W  : <xsl:value-of select="$MOD_LABEL_W"/></xsl:message>
-	<xsl:message>MOD_LABEL_H  : <xsl:value-of select="$MOD_LABEL_H"/></xsl:message>
-	
-	<xsl:message>MOD_LANE_W   : <xsl:value-of select="$MOD_LANE_W"/></xsl:message>
-	<xsl:message>MOD_LANE_H   : <xsl:value-of select="$MOD_LANE_H"/></xsl:message>
-	
-	<xsl:message>MOD_EDGE_W   : <xsl:value-of select="$MOD_EDGE_W"/></xsl:message>
-	<xsl:message>MOD_SHAPES_G : <xsl:value-of select="$MOD_SHAPES_G"/></xsl:message>
-	
-	<xsl:message>MOD_BKTLANE_W   : <xsl:value-of select="$MOD_BKTLANE_W"/></xsl:message>
-	<xsl:message>MOD_BKTLANE_H   : <xsl:value-of select="$MOD_BKTLANE_H"/></xsl:message>
-	<xsl:message>MOD_BUCKET_G    : <xsl:value-of select="$MOD_BUCKET_G"/></xsl:message>
-	
-</xsl:template>		
--->	
-	
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl
deleted file mode 100644
index 9a53158..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_IOPorts.xsl
+++ /dev/null
@@ -1,498 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-                
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-			
-<!--	
-<xsl:param name="BLKD_IOP_H"   select="16"/>				
-<xsl:param name="BLKD_IOP_W"   select="16"/>				
-<xsl:param name="BLKD_IOP_SPC" select="12"/>				
-<xsl:param name="MOD_IO_GAP"   select="8"/>				
--->
-	
-
-<!-- ======================= DEF BLOCK =============================== -->
-<xsl:template name="Define_IOPorts">
-	
-	<xsl:variable name="key_col_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="'KEY'"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-		<xsl:variable name="key_lt_col_">
-			<xsl:call-template name="BusType2LightColor">
-				<xsl:with-param name="iBusType" select="'KEY'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-
-	 <symbol id="G_IOPort">
-		<rect  
-			x="0"  
-			y="0" 
-			width= "{$BLKD_IOP_W}" 
-			height="{$BLKD_IOP_H}" style="fill:{$COL_IORING_LT}; stroke:{$COL_IORING}; stroke-width:1"/> 
-			
-		<path class="ioport"
-			  d="M   0,0
-				 L   {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
-				 L   0,{$BLKD_IOP_H}
-				 Z" style="stroke:none; fill:{$COL_SYSPRT}"/>	
-	</symbol>
-
-	 <symbol id="G_BIPort">
-		<rect  
-			x="0"  
-			y="0" 
-			width= "{$BLKD_IOP_W}" 
-			height="{$BLKD_IOP_H}" style="fill:{$COL_IORING_LT}; stroke:{$COL_IORING}; stroke-width:1"/> 
-			
-		<path class="btop"
-			  d="M 0,{ceiling($BLKD_IOP_H div 2)}
-				 {ceiling($BLKD_IOP_W div 2)},0
-				 {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
-				 Z" style="stroke:none; fill:{$COL_SYSPRT}"/>	
-				 
-		<path class="bbot"
-			  d="M 0,{ceiling($BLKD_IOP_H div 2)}
-				 {ceiling($BLKD_IOP_W div 2)},{$BLKD_IOP_H}
-				 {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
-				 Z" style="stroke:none; fill:{$COL_SYSPRT}"/>	
-				 
-	</symbol>
-
-	 <symbol id="KEY_IOPort">
-		<rect  
-			x="0"  
-			y="0" 
-			width= "{$BLKD_IOP_W}" 
-			height="{$BLKD_IOP_H}" style="fill:{$key_lt_col_}; stroke:none;"/> 
-			
-		<path class="ioport"
-			  d="M   0,0
-				 L   {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
-				 L   0,{$BLKD_IOP_H}
-				 Z" style="stroke:none; fill:{$key_col_}"/>	
-	</symbol>
-	
-	 <symbol id="KEY_BIPort">
-		<rect  
-			x="0"  
-			y="0" 
-			width= "{$BLKD_IOP_W}" 
-			height="{$BLKD_IOP_H}" style="fill:{$key_lt_col_}; stroke:none;"/> 
-			
-		<path class="btop"
-			  d="M 0,{ceiling($BLKD_IOP_H div 2)}
-				 {ceiling($BLKD_IOP_W div 2)},0
-				 {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
-				 Z" style="stroke:none; fill:{$key_col_}"/>	
-				 
-		<path class="bbot"
-			  d="M 0,{ceiling($BLKD_IOP_H div 2)}
-				 {ceiling($BLKD_IOP_W div 2)},{$BLKD_IOP_H}
-				 {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
-				 Z" style="stroke:none; fill:{$key_col_}"/>
-	</symbol>
-	
-	 <symbol id="KEY_INPort">
-		<use   x="0"   y="0"   xlink:href="#KEY_IOPort"/>
-		<rect  
-			x="{$BLKD_IOP_W}"  
-			y="0" 
-			width= "{ceiling($BLKD_IOP_W div 2)}" 
-			height="{$BLKD_IOP_H}" style="fill:{$COL_SYSPRT}; stroke:none;"/> 
-	</symbol>
-	
-	 <symbol id="KEY_OUTPort">
-		<use   x="0"   y="0"   xlink:href="#KEY_IOPort" transform="scale(-1,1) translate({$BLKD_IOP_W * -1},0)"/>
-		<rect  
-			x="{$BLKD_IOP_W}"  
-			y="0" 
-			width= "{ceiling($BLKD_IOP_W div 2)}" 
-			height="{$BLKD_IOP_H}" style="fill:{$COL_SYSPRT}; stroke:none;"/> 
-	</symbol>
-
-	 <symbol id="KEY_INOUTPort">
-		<use   x="0"   y="0"   xlink:href="#KEY_BIPort"/>
-		<rect  
-			x="{$BLKD_IOP_W}"  
-			y="0" 
-			width= "{ceiling($BLKD_IOP_W div 2)}" 
-			height="{$BLKD_IOP_H}" style="fill:{$COL_SYSPRT}; stroke:none;"/> 
-	</symbol>
-
-
-</xsl:template>
-
-<!-- ======================= DRAW BLOCK =============================== -->
-
-<xsl:template name="Draw_IOPorts"> 
-	
-	<xsl:variable name="ports_count_"    select="count(EXTERNALPORTS/PORT)"/>
-	
-	<xsl:if test="($ports_count_ &gt; 30)">
-		<xsl:call-template name="Draw_IOPorts_4Sides"/> 
-	</xsl:if>
-	
-	<xsl:if test="($ports_count_ &lt;= 30)">
-		<xsl:call-template name="Draw_IOPorts_2Sides"/> 
-	</xsl:if>
-</xsl:template>
-
-<xsl:template name="Draw_IOPorts_2Sides"> 
-	
-	<xsl:variable name="ports_count_"    select="count(EXTERNALPORTS/PORT)"/>
-	<xsl:variable name="ports_per_side_" select="ceiling($ports_count_ div 2)"/>
-	
-	<xsl:variable name="h_ofs_">
-		<xsl:value-of select="$BLKD_PRTCHAN_W + ceiling(($G_total_drawarea_W  - (($ports_per_side_ * $BLKD_IOP_W) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>
-	</xsl:variable>
-	
-	<xsl:variable name="v_ofs_">
-		<xsl:value-of select="$BLKD_PRTCHAN_H + ceiling(($G_total_drawarea_H  - (($ports_per_side_ * $BLKD_IOP_H) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>
-	</xsl:variable>
-	
-
-	<xsl:for-each select="EXTERNALPORTS/PORT">
-		<xsl:sort data-type="number" select="@INDEX" order="ascending"/>
-		
-		<xsl:variable name="poffset_" select="0"/>
-		<xsl:variable name="pcount_"  select="$poffset_ + (position() -1)"/>
-		
-		<xsl:variable name="pdir_">
-			<xsl:choose>
-				<xsl:when test="(@DIR='I'  or @DIR='IN'  or @DIR='INPUT')">I</xsl:when>
-				<xsl:when test="(@DIR='O'  or @DIR='OUT' or @DIR='OUTPUT')">O</xsl:when>
-				<xsl:when test="(@DIR='IO' or @DIR='INOUT')">B</xsl:when>
-				<xsl:otherwise>I</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="pside_">
-			<xsl:choose>
-				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 0) and ($pcount_ &lt; ($ports_per_side_ * 1)))">W</xsl:when>
-				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 1) and ($pcount_ &lt; ($ports_per_side_ * 2)))">E</xsl:when>
-				<xsl:otherwise>D</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="pdec_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($ports_per_side_ * 0)"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($ports_per_side_ * 1)"/></xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="px_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($BLKD_PRTCHAN_W - $BLKD_IOP_W)"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)) - 2)"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($BLKD_PRTCHAN_W + ($BLKD_IORCHAN_W * 2) + $G_total_drawarea_W)"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)))"/></xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="py_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_PRTCHAN_H + ($BLKD_IORCHAN_H * 2) + $G_total_drawarea_H)"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($BLKD_PRTCHAN_H - $BLKD_IOP_H)"/></xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-	
-		<xsl:variable name="prot_">
-			<xsl:choose>
-				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'I'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'I'))">-90</xsl:when>
-				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'I'))">180</xsl:when>
-				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'I'))">90</xsl:when>
-				
-				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'O'))">180</xsl:when>
-				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'O'))">90</xsl:when>
-				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'O'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'O'))">-90</xsl:when>
-				
-				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		
-		<xsl:variable name="txo_">
-			<xsl:choose>
-				<xsl:when test="($pside_  = 'W')">-10</xsl:when>
-				<xsl:when test="($pside_  = 'S')">6</xsl:when>
-				 <xsl:when test="($pside_ = 'E')"><xsl:value-of select="(($BLKD_IOP_W * 2) - 4)"/></xsl:when>
-				<xsl:when test="($pside_  = 'N')">6</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="tyo_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_IOP_H * 2) + 4"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')">-2</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-
-		<xsl:if test="$pdir_ = 'B'">	   
-			<use   x="{$px_}"  
-			       y="{$py_}"  
-				   id="{@NAME}"
-			       xlink:href="#G_BIPort" 
-			       transform="rotate({$prot_},{$px_ + ceiling($BLKD_IOP_W div 2)},{$py_ + ceiling($BLKD_IOP_H div 2)})"/>
-		</xsl:if>
-		
-		<xsl:if test="(($pside_ = 'S') and not($pdir_ = 'B'))">	   
-			<rect  
-				x="{$px_}"  
-				y="{$py_}" 
-				width= "{$BLKD_IOP_W}" 
-				height="{$BLKD_IOP_H}" style="stroke:{$COL_IORING}; stroke-width:1"/> 
-		</xsl:if>
-		
-		<xsl:if test="not($pdir_ = 'B')">	   
-			<use   x="{$px_}"  
-			       y="{$py_}"  
-				   id="{@NAME}"
-			       xlink:href="#G_IOPort" 
-			       transform="rotate({$prot_},{$px_ + ceiling($BLKD_IOP_W div 2)},{$py_ + ceiling($BLKD_IOP_H div 2)})"/>
-		</xsl:if>
-		
-		<text class="iopnumb"
-	  		x="{$px_ + $txo_}" 
-	  		y="{$py_ + $tyo_}">
-			<xsl:value-of select="@INDEX"/><tspan class="iopgrp"><xsl:value-of select="@GROUP"/></tspan>
-		</text>
-		
-	</xsl:for-each>
-	
-</xsl:template>
-
-
-<xsl:template name="Draw_IOPorts_4Sides"> 
-	
-	<xsl:variable name="ports_count_"    select="count(EXTERNALPORTS/PORT)"/>
-	<xsl:variable name="ports_per_side_" select="ceiling($ports_count_ div 4)"/>
-	
-	<xsl:variable name="h_ofs_">
-		<xsl:value-of select="$BLKD_PRTCHAN_W + ceiling(($G_total_drawarea_W  - (($ports_per_side_ * $BLKD_IOP_W) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>
-	</xsl:variable>
-	
-	<xsl:variable name="v_ofs_">
-		<xsl:value-of select="$BLKD_PRTCHAN_H + ceiling(($G_total_drawarea_H  - (($ports_per_side_ * $BLKD_IOP_H) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>
-	</xsl:variable>
-	
-
-	<xsl:for-each select="EXTERNALPORTS/PORT">
-		<xsl:sort data-type="number" select="@INDEX" order="ascending"/>
-		
-		<xsl:variable name="poffset_" select="0"/>
-		<xsl:variable name="pcount_"  select="$poffset_ + (position() -1)"/>
-		
-		<xsl:variable name="pdir_">
-			<xsl:choose>
-				<xsl:when test="(@DIR='I'  or @DIR='IN'  or @DIR='INPUT')">I</xsl:when>
-				<xsl:when test="(@DIR='O'  or @DIR='OUT' or @DIR='OUTPUT')">O</xsl:when>
-				<xsl:when test="(@DIR='IO' or @DIR='INOUT')">B</xsl:when>
-				<xsl:otherwise>I</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="pside_">
-			<xsl:choose>
-				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 0) and ($pcount_ &lt; ($ports_per_side_ * 1)))">W</xsl:when>
-				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 1) and ($pcount_ &lt; ($ports_per_side_ * 2)))">S</xsl:when>
-				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 2) and ($pcount_ &lt; ($ports_per_side_ * 3)))">E</xsl:when>
-				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 3) and ($pcount_ &lt; ($ports_per_side_ * 4)))">N</xsl:when>
-				<xsl:otherwise>D</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="pdec_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($ports_per_side_ * 0)"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($ports_per_side_ * 1)"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($ports_per_side_ * 2)"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($ports_per_side_ * 3)"/></xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="px_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($BLKD_PRTCHAN_W - $BLKD_IOP_W)"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)) - 2)"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($BLKD_PRTCHAN_W + ($BLKD_IORCHAN_W * 2) + $G_total_drawarea_W)"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)))"/></xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="py_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_PRTCHAN_H + ($BLKD_IORCHAN_H * 2) + $G_total_drawarea_H)"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($BLKD_PRTCHAN_H - $BLKD_IOP_H)"/></xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-	
-		<xsl:variable name="prot_">
-			<xsl:choose>
-				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'I'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'I'))">-90</xsl:when>
-				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'I'))">180</xsl:when>
-				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'I'))">90</xsl:when>
-				
-				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'O'))">180</xsl:when>
-				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'O'))">90</xsl:when>
-				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'O'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'O'))">-90</xsl:when>
-				
-				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'B'))">0</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="txo_">
-			<xsl:choose>
-				<xsl:when test="($pside_  = 'W')">-14</xsl:when>
-				<xsl:when test="($pside_  = 'S')">8</xsl:when>
-				 <xsl:when test="($pside_ = 'E')"><xsl:value-of select="(($BLKD_IOP_W * 2) - 4)"/></xsl:when>
-				<xsl:when test="($pside_  = 'N')">8</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-		
-		<xsl:variable name="tyo_">
-			<xsl:choose>
-				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>
-				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_IOP_H * 2) + 4"/></xsl:when>
-				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>
-				<xsl:when test="($pside_ = 'N')">-2</xsl:when>
-				<xsl:otherwise>0</xsl:otherwise>
-			</xsl:choose>	
-		</xsl:variable>
-
-		<xsl:if test="$pdir_ = 'B'">	   
-			<use   x="{$px_}"
-			       y="{$py_}"
-				   id="{@NAME}"
-			       xlink:href="#G_BIPort" 
-			       transform="rotate({$prot_},{$px_ + ceiling($BLKD_IOP_W div 2)},{$py_ + ceiling($BLKD_IOP_H div 2)})"/>
-		</xsl:if>
-		
-		<xsl:if test="(($pside_ = 'S') and not($pdir_ = 'B'))">	   
-			<rect  
-				x="{$px_}"
-				y="{$py_}"
-				width= "{$BLKD_IOP_W}"
-				height="{$BLKD_IOP_H}" style="stroke:{$COL_IORING}; stroke-width:1"/> 
-		</xsl:if>
-		
-		<xsl:if test="not($pdir_ = 'B')">	   
-			<use   x="{$px_}"
-			       y="{$py_}"
-				   id="{@NAME}"
-			       xlink:href="#G_IOPort"
-			       transform="rotate({$prot_},{$px_ + ceiling($BLKD_IOP_W div 2)},{$py_ + ceiling($BLKD_IOP_H div 2)})"/>
-		</xsl:if>
-		
-		<text class="iopnumb"
-	  		x="{$px_ + $txo_}" 
-	  		y="{$py_ + $tyo_}"><xsl:value-of select="@INDEX"/><tspan class="iopgrp"><xsl:value-of select="@GROUP"/></tspan>
-		</text>
-
-	</xsl:for-each>
-	
-</xsl:template>
-	
-<xsl:template name="Define_ExtPortsTable">
-	
-<!--	
-		<xsl:if test="$oriented_= 'WEST'"><xsl:value-of select="$proc2procX_ - (string-length(@BUSNAME) * 6)"/></xsl:if>	
-		<xsl:variable name="max_name_" select="math:max(string-length(/EDKSYSTEM/EXTERNALPORTS/PORT/@NAME))"/>
-		<xsl:variable name="max_sgnm_" select="math:max(string-length(/EDKSYSTEM/EXTERNALPORTS/PORT/@SIGNAME))"/>
-	
-		<xsl:message>MAX NAME <xsl:value-of select="$max_name_"/></xsl:message>
-		<xsl:message>MAX SIG  <xsl:value-of select="$max_sgnm_"/></xsl:message>
--->	
-	
-		<xsl:variable name="ext_ports_">	
-			<xsl:if test="not(/EDKSYSTEM/EXTERNALPORTS/PORT)">
-				<EXTPORT NAME="__none__" SIGNAME="__none_" NAMELEN="0" SIGLEN="0"/>
-			</xsl:if>
-			<xsl:if test="/EDKSYSTEM/EXTERNALPORTS/PORT">
-				<xsl:for-each select="/EDKSYSTEM/EXTERNALPORTS/PORT">
-					<EXTPORT  NAME="{@NAME}" SIGNAME="{@SIGNAME}" NAMELEN="{string-length(@NAME)}" SIGLEN="{string-length(@SIGNAME)}"/>
-				</xsl:for-each>
-			</xsl:if>
-		</xsl:variable>
-	
-		<xsl:variable name="max_name_" select="math:max(exsl:node-set($ext_ports_)/EXTPORT/@NAMELEN)"/>
-		<xsl:variable name="max_sign_" select="math:max(exsl:node-set($ext_ports_)/EXTPORT/@SIGLEN)"/>
-	
-		<xsl:variable name="h_font_" select="12"/>
-		<xsl:variable name="w_font_" select="12"/>
-	
-		<xsl:variable name="w_num_"    select="($w_font_ * 5)"/>
-		<xsl:variable name="w_dir_"    select="($w_font_ * 3)"/>
-		<xsl:variable name="w_lsbmsb_" select="($w_font_ * 9)"/>
-		<xsl:variable name="w_attr_"   select="($w_font_ * 4)"/>
-		<xsl:variable name="w_name_"   select="($w_font_ * $max_name_)"/>
-		<xsl:variable name="w_sign_"   select="($w_font_ * $max_sign_)"/>
-	
-		<xsl:variable name="w_table_" select="($w_num_ + $w_name_ + $w_dir_ + $w_sign_ + $w_attr_)"/>
-	
-<!--	
-		<xsl:message>MAX NAME <xsl:value-of select="$max_name_"/></xsl:message>
-		<xsl:message>MAX SIG  <xsl:value-of select="$max_sign_"/></xsl:message>
-	
-		<xsl:message>W NUM  <xsl:value-of select="$w_num_"/></xsl:message>
-		<xsl:message>W DIR  <xsl:value-of select="$w_dir_"/></xsl:message>
-		<xsl:message>W NAM  <xsl:value-of select="$w_name_"/></xsl:message>
-		<xsl:message>W SIG  <xsl:value-of select="$w_sign_"/></xsl:message>
-		<xsl:message>W ATT  <xsl:value-of select="$w_attr_"/></xsl:message>
-	
-		<xsl:message>W TABLE  <xsl:value-of select="$w_table_"/></xsl:message>
--->	
-	
-	 <symbol id="BlkDiagram_ExtPortsTable">
-		<rect  
-			x="0"  
-			y="0" 
-			width= "{$w_table_}" 
-			height="{$h_font_}"  style="fill:{$COL_RED}; stroke:none; stroke-width:1"/> 
-	</symbol>	 
-	
-	
-	
-</xsl:template>
-
-<!-- ======================= END MAIN BLOCK =========================== -->
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl
deleted file mode 100644
index 55c9b85..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl
+++ /dev/null
@@ -1,1391 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:math="http://exslt.org/math"
- 	       xmlns:xlink="http://www.w3.org/1999/xlink"
-           extension-element-prefixes="math">
-		   
-<xsl:include href="MdtSVG_Colors.xsl"/>
-<xsl:include href="MdtSVG_BifShapes.xsl"/>
-	
-<xsl:include href="MdtSvgBLKD_Busses.xsl"/>
-<xsl:include href="MdtSvgBLKD_IOPorts.xsl"/>
-<xsl:include href="MdtSvgBLKD_Dimensions.xsl"/>
-<xsl:include href="MdtSvgBLKD_Processors.xsl"/>
-<xsl:include href="MdtSvgBLKD_Peripherals.xsl"/>
-<xsl:include href="MdtSvgBLKD_Calculations.xsl"/>
-<xsl:include href="MdtSvgBLKD_BusLaneSpaces.xsl"/>
-	
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="svg10.dtd"/>
-	
-<xsl:param    name="ADD_VIEWBOX"        select="'FALSE'"/>		   
-<xsl:param    name="IN_TESTMODE"        select="'FALSE'"/>
-
-<xsl:param    name="CSS_SVG_DIAGRAMS"   select="'MdtSVG_Diagrams.css'"/>
-	
-<!-- 
-   ===========================================================================
-			CALCULATE GLOBAL DIMENSIONS BASED ON BLKDSHAPES DEF IN INPUT XML	
-   ===========================================================================
--->
-	
-<xsl:variable name="G_total_StandAloneMpmc_H">
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE">
-		<xsl:value-of select="($BLKD_MPMC_MOD_H + $BLKD_MPMC2PROC_GAP)"/>	
-	</xsl:if>
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE)">0</xsl:if>
-</xsl:variable>
-	
-<xsl:variable name="G_max_Stack_BlwSbs_H">
-	<xsl:call-template name="_calc_Max_Stack_BlwSbs_Height"/>
-</xsl:variable>
-
-<xsl:variable name="G_max_Stack_AbvSbs_H">
-	<xsl:call-template name="_calc_Max_Stack_AbvSbs_Height"/>
-</xsl:variable>
-	
-<xsl:variable name="G_total_Stacks_W">
-	<xsl:call-template name="_calc_Stack_X">
-		<xsl:with-param name="iStackIdx"    select="(/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)"/>
-	</xsl:call-template>
-</xsl:variable>
-	
-<xsl:variable name="G_NumOfSharedBusses"   select="count(/EDKSYSTEM/BLKDSHAPES/SBSSHAPES/MODULE)"/>
-<xsl:variable name="G_total_SharedBus_H"   select="($G_NumOfSharedBusses * $BLKD_SBS_LANE_H)"/>
-
-<xsl:variable name="G_NumOfBridges"        select="count(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE)"/>
-<xsl:variable name="G_total_Bridges_W"     select="(($G_NumOfBridges * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))) + $BLKD_BRIDGE_GAP)"/>
-	
-<xsl:variable name="G_total_drawarea_CLC"  select="($G_total_Stacks_W + $G_total_Bridges_W + ($BLKD_INNER_GAP * 2))"/>
-	
-<xsl:variable name="G_total_drawarea_W">
-	<xsl:if test="$G_total_drawarea_CLC &gt; ($BLKD_KEY_W + $BLKD_SPECS_W + $BLKD_SPECS2KEY_GAP)">
-		<xsl:value-of select="$G_total_drawarea_CLC"/>
-	</xsl:if>
-	<xsl:if test="not($G_total_drawarea_CLC &gt; ($BLKD_KEY_W + $BLKD_SPECS2KEY_GAP + $BLKD_SPECS_W))">
-		<xsl:value-of select="($BLKD_KEY_W + $BLKD_SPECS_W + $BLKD_SPECS2KEY_GAP)"/>
-	</xsl:if>
-</xsl:variable>
-	
-<xsl:variable name="G_IpBucketMods_H">
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/IPBUCKET/@MODS_H"><xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/IPBUCKET/@MODS_H"/></xsl:if>
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/IPBUCKET/@MODS_H)">0</xsl:if>
-</xsl:variable>
-<xsl:variable name="G_total_IpBucket_H"   select="($G_IpBucketMods_H * ($BLKD_MOD_H + $BLKD_BIF_H))"/>
-	
-<xsl:variable name="G_total_UnkBucket_H">
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET">
-	
-		<xsl:variable name="unkBucketMods_H_">
-			<xsl:if test="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@MODS_H"><xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@MODS_H"/></xsl:if>
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@MODS_H)">0</xsl:if>
-		</xsl:variable>
-		
-		<xsl:variable name="total_UnkMod_H_"       select="($unkBucketMods_H_ * ($BLKD_MOD_H + $BLKD_BIF_H))"/> 		<xsl:variable name="unkBucketBifs_H_"> <xsl:if test="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@BIFS_H"><xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@BIFS_H"/></xsl:if>
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@BIFS_H)">0</xsl:if>
-		</xsl:variable>
-		<xsl:variable name="total_UnkBif_H_"       select="($unkBucktBifs_H_ * ($BLKD_MOD_H + $BLKD_BIF_H))"/>
-		
-		<xsl:value-of select="($total_UnkBif_H_ + $G_totalUnkMod_H_)"/>	
-	</xsl:if>
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/UNKBUCKET)">0</xsl:if>
-</xsl:variable>
-	
-<xsl:variable name="G_SharedBus_Y"    select="($BLKD_INNER_Y + $G_total_StandAloneMpmc_H + $G_max_Stack_AbvSbs_H + $BLKD_PROC2SBS_GAP)"/>
-	
-<!-- ===========================================================================
-    Calculate the width of the Block Diagram based on the total number of      
-    buslanes and modules in the design. If there are no buslanes or modules,
-	a default width, just wide enough to display the KEY and SPECS is used
-   =========================================================================== -->
-<xsl:variable name="G_total_blkd_W"  select="($G_total_drawarea_W + (($BLKD_PRTCHAN_W  + $BLKD_IORCHAN_W)* 2))"/>
-<xsl:variable name="G_total_diag_W"    select="$G_total_blkd_W"/>
-	
-<!-- =========================================================================== -->
-<!-- Calculate the height of the Block Diagram based on the total number of      -->
-<!-- buslanes and modules in the design. Take into account special shapes such   -->
-<!-- as MultiProc shapes.													     -->
-<!-- =========================================================================== -->
-	
-	
-<xsl:variable name="G_total_drawarea_H"  select="($G_total_StandAloneMpmc_H + $G_max_Stack_AbvSbs_H + $BLKD_PROC2SBS_GAP + $G_total_SharedBus_H + $G_max_Stack_BlwSbs_H + $BLKD_SBS2IP_GAP + $G_total_IpBucket_H + $BLKD_IP2UNK_GAP + $G_total_UnkBucket_H + ($BLKD_INNER_GAP * 2))"/>
-<xsl:variable name="G_total_blkd_H"      select="($G_total_drawarea_H + (($BLKD_PRTCHAN_H  + $BLKD_IORCHAN_H)* 2))"/>
-	
-<xsl:variable name="G_total_diag_H">
-	<xsl:if test="($IN_TESTMODE = 'TRUE')">
-		<xsl:message>Generating Blkdiagram in TestMode </xsl:message>
-       <xsl:value-of select="$G_total_blkd_H"/>
-	</xsl:if>
-	<xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))">
-       <xsl:value-of select="($G_total_blkd_H + $BLKD_DRAWAREA2KEY_GAP + $BLKD_KEY_H)"/>
-	</xsl:if>
-</xsl:variable>
-		
-<!-- ======================= MAIN SVG BLOCK =============================== -->
-<xsl:template match="EDKSYSTEM">
-	
-<!--
-<xsl:message>STCK_W is <xsl:value-of select="$G_total_Stacks_W"/></xsl:message>
-<xsl:message>BRDG_W is <xsl:value-of select="$G_total_Bridges_W"/></xsl:message>
-<xsl:message>MPMC is <xsl:value-of select="$G_total_StandAloneMpmc_H"/></xsl:message>
-<xsl:message>MPMC is <xsl:value-of select="$G_total_StandAloneMpmc_H"/></xsl:message>
-<xsl:message>MABV is <xsl:value-of select="$G_max_Stack_AbvSbs_H"/></xsl:message>
-<xsl:message>MBLW is <xsl:value-of select="$G_max_Stack_BlwSbs_H"/></xsl:message>
-<xsl:message>IPBK is <xsl:value-of select="$G_total_IpBucket_H"/></xsl:message>
-<xsl:message>Blkd Total is <xsl:value-of select="$blkd_H_"/></xsl:message>
-<xsl:message>max abv is <xsl:value-of select="$max_Stack_AbvSbs_H_"/></xsl:message>
-<xsl:message>max blw is <xsl:value-of select="$max_Stack_BlwSbs_H_"/></xsl:message>
-<xsl:message>Ip Bkt is <xsl:value-of select="$totalIpBkt_H_"/></xsl:message>
-<xsl:message>Sbs is <xsl:value-of select="$totalSbs_H_"/></xsl:message>
-<xsl:message>Unk Bkt is <xsl:value-of select="$totalUnkBkt_H_"/></xsl:message>
-<xsl:message>Blkd DrawArea height as <xsl:value-of select="$total_drawarea_H_"/></xsl:message>
--->
-
-<!--specify a css for the file -->
-<xsl:processing-instruction name="xml-stylesheet">href="<xsl:value-of select="$CSS_SVG_DIAGRAMS"/>" type="text/css"</xsl:processing-instruction>
-
-<xsl:variable name="BLKD_ZOOM_Y">
-	<xsl:choose>
-		<xsl:when test="($ADD_VIEWBOX = 'TRUE')">
-			<xsl:value-of select="($G_total_diag_H * 2)"/>
-		</xsl:when>
-		<xsl:otherwise>0</xsl:otherwise>		
-	</xsl:choose>
-</xsl:variable>
-	
-<xsl:text>&#10;</xsl:text>
-<svg width="{$G_total_diag_W}" height="{$G_total_diag_H}" viewBox="0 0 0 {$BLKD_ZOOM_Y}">	
-<!-- 
-	 =============================================== 
-	       Layout All the various definitions       
-	 =============================================== 
--->
-	<defs>
-		<!-- Diagram Key Definition -->
-		<xsl:call-template name="Define_BlkDiagram_Key"/>		
-		
-		<!-- Diagram Specs Definition -->
-		<xsl:call-template name="Define_BlkDiagram_Specs">		
-			<xsl:with-param name="iArch"       select="@ARCH"/>
-			<xsl:with-param name="iPart"       select="@PART"/>
-			<xsl:with-param name="iTimeStamp"  select="@TIMESTAMP"/>
-			<xsl:with-param name="iEdkVersion" select="@EDKVERSION"/>
-		</xsl:call-template>		
-		
-		<!-- IO Port Defs -->
-		<xsl:call-template name="Define_IOPorts"/>		
-		
-		<!-- BIF Defs -->
-		<xsl:call-template name="Define_BifTypes"/>		
-		
-		<!-- Bus Defs -->
-		<xsl:call-template name="Define_Busses"/>		
-		
-		<!-- Shared Bus Buckets Defs -->
-		<xsl:call-template name="Define_SBSBuckets"/>		
-		
-		<!-- IP Bucket Defs -->
-		<xsl:call-template name="Define_IPBucket"/>		
-		
-		<!-- Stack Defs -->
-		<xsl:call-template name="Define_AllStacks"/>		
-		
-		<!-- Space Defs -->
-		<xsl:call-template name="Define_BusLaneSpaces"/>		
-		
-		<!-- Main MPMC Defs -->
-		<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE">
-			<xsl:call-template name="Define_StandAlone_MPMC"/>	
-		</xsl:if>
-	</defs>
-	
-<!-- =============================================== -->
-<!--             Draw Outlines                       -->
-<!-- =============================================== -->
-	
-	 <!-- The surrounding black liner -->
-     <rect x="0"  
-		   y="0" 
-		   width ="{$G_total_diag_W}"
-		   height="{$G_total_diag_H}" style="fill:{$COL_WHITE}; stroke:{$COL_BLACK};stroke-width:4"/>
-		   
-	 <!-- The outer IO channel -->
-     <rect x="{$BLKD_PRTCHAN_W}"  
-		   y="{$BLKD_PRTCHAN_H}" 
-		   width= "{$G_total_blkd_W - ($BLKD_PRTCHAN_W * 2)}" 
-		   height="{$G_total_blkd_H - ($BLKD_PRTCHAN_H * 2)}" style="fill:{$COL_IORING}"/>
-		   
-	 <!-- The Diagram's drawing area -->
-     <rect x="{$BLKD_PRTCHAN_W + $BLKD_IORCHAN_W}"  
-		   y="{$BLKD_PRTCHAN_H + $BLKD_IORCHAN_H}" 
-		   width= "{$G_total_drawarea_W}"
-		   height="{$G_total_drawarea_H}" rx="8" ry="8" style="fill:{$COL_BG}"/>
-		   
-<!-- =============================================== -->
-<!--        Draw All the various components          -->
-<!-- =============================================== -->
-	
-	<!--   Layout the IO Ports    -->	
-	<xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))">
-		<xsl:call-template name="Draw_IOPorts"/>	
-	</xsl:if>
-	
-	<!--   Layout the Shapes      -->	
-	<xsl:call-template name="Draw_BlkDiagram_Shapes"/>		
-	
-</svg>
-	
-<!-- ======================= END MAIN SVG BLOCK =============================== -->
-</xsl:template>
-	
-<xsl:template name="Draw_BlkDiagram_Shapes">
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the shared busses 
-		 ===========================================================
-	-->
-	<use   x="{$BLKD_INNER_X}"      y="{$G_SharedBus_Y}"  xlink:href="#group_sharedBusses"/> 
-	
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Bus Lane Spaces 
-		 ===========================================================
-	-->
-	<xsl:call-template name="Draw_BlkDiagram_BusLaneSpaces"/>	
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Bridges
-		 ===========================================================
-	-->
-	<xsl:call-template name="Draw_BlkDiagram_Bridges"/>	
-	
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Stacks
-		 ===========================================================
-	-->
-	<xsl:call-template name="Draw_BlkDiagram_Stacks"/>	
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Stand Alone MPMC, (if any)
-		 ===========================================================
-	-->
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE">
-		<xsl:variable name="mpmc_inst_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE/@INSTANCE"/>
-		<use   x="{$BLKD_INNER_X}"  y="{$BLKD_INNER_Y}"  xlink:href="#mpmcmodule_{$mpmc_inst_}"/> 
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the connections to the Stand Alone MPMC
-		 ===========================================================
-	-->
-		<xsl:call-template name="Draw_BlkDiagram_StandAloneMpmcConnections"/>	
-	</xsl:if>	
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Ip Bucket
-		 ===========================================================
-	-->
-	
-	<xsl:call-template name="Draw_BlkDiagram_IPBucket"/>
-	
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Key
-		 ===========================================================
-	-->
-	<xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))">
-		<use   x="{$G_total_blkd_W - $BLKD_KEY_W - $BLKD_PRTCHAN_W}" y="{$G_total_blkd_H + $BLKD_DRAWAREA2KEY_GAP - 8}"  xlink:href="#BlkDiagram_Key"/> 
-	</xsl:if>
-	
-	<!-- 
-		 ===========================================================
-	 					Draw the Specs
-		 ===========================================================
-	-->
-	<xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))">
-		<use   x="{$BLKD_PRTCHAN_W}"  y="{$G_total_blkd_H + $BLKD_DRAWAREA2KEY_GAP - 8}"  xlink:href="#BlkDiagram_Specs"/> 
-	</xsl:if>
-	
-	<!-- 
-		************************************************************ 
-		***************  DONE DRAWING BLOCK DIAGRAM   ************** 
-		************************************************************ 
-	-->	
-	
-</xsl:template>	
-	
-	
-<!-- ======================================================================= -->
-<!--                         FUNCTION TEMPLATE                               -->
-<!--																		 -->
-<!--  Draw stacks on the Block Diagram										 -->
-<!-- ======================================================================= -->
-<xsl:template name="Draw_BlkDiagram_Stacks">
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST &lt; /EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)]">
-			
-		<xsl:variable name="stack_line_x_">
-			<xsl:call-template name="_calc_Stack_X">
-				<xsl:with-param name="iStackIdx"  select="@EAST"/>
-			</xsl:call-template>
-		</xsl:variable>
-		
-		<xsl:variable name="stack_abv_sbs_">
-			<xsl:call-template name="_calc_Stack_AbvSbs_Height">
-				<xsl:with-param name="iStackIdx"  select="@EAST"/>
-			</xsl:call-template>
-		</xsl:variable>
-		
-		<xsl:variable name="bridges_w_"    select="(($G_NumOfBridges * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))) + $BLKD_BRIDGE_GAP)"/>
-		
-		<xsl:variable name="stack_y_" select="($G_SharedBus_Y - $stack_abv_sbs_ - $BLKD_PROC2SBS_GAP)"/>
-		<xsl:variable name="stack_x_" select="($BLKD_INNER_X + $stack_line_x_ + $bridges_w_)"/>
-		
-		<xsl:variable name="stack_name_">
-			<xsl:call-template name="_gen_Stack_Name"> 
-				<xsl:with-param name="iHorizIdx" select="@EAST"/>
-			</xsl:call-template>		
-		</xsl:variable>	
-		
-		<use   x="{$stack_x_}"    y="{$stack_y_}"  xlink:href="#{$stack_name_}"/> 
-	
-	</xsl:for-each>	
-			
-</xsl:template>
-	
-<xsl:template name="Draw_BlkDiagram_StandAloneMpmcConnections">
-	
-	<xsl:variable name="mpmcInst_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE/@INSTANCE"/>
-	<xsl:variable name="lastStack_" select="(/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH) - 1"/>
-	
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE">
-		<xsl:variable name="currentLane_" select="position()"/>
-<!--		
-		<xsl:message>Looking in space <xsl:value-of select="$currentLane_"/></xsl:message>
--->	
-		<xsl:variable name="stackToEast_">
-			<xsl:choose>
-				<xsl:when test="not(@WEST = $lastStack_)"><xsl:value-of select="@EAST"/></xsl:when>
-				<xsl:when test="   (@WEST = $lastStack_)"><xsl:value-of select="'NONE'"/></xsl:when>
-			</xsl:choose>
-		</xsl:variable>
-		
-		<xsl:variable name="stackToWest_">
-			<xsl:choose>
-				<xsl:when test="not(@WEST = $lastStack_)"><xsl:value-of select="'NONE'"/></xsl:when>
-				<xsl:when test="   (@WEST = $lastStack_)"><xsl:value-of select="@WEST"/></xsl:when>
-			</xsl:choose>
-		</xsl:variable>
-		
-		<xsl:variable name="spaceAbvSbs_H_">
-			<xsl:call-template name="_calc_Space_AbvSbs_Height">
-				<xsl:with-param name="iStackToEast"  select="$stackToEast_"/>
-				<xsl:with-param name="iStackToWest"  select="$stackToWest_"/>
-			</xsl:call-template>
-		</xsl:variable>	
-		
-		<xsl:variable name="space_y_"   select="($G_SharedBus_Y - $spaceAbvSbs_H_ - $BLKD_PROC2SBS_GAP)"/>
-	
-<!--		
-		<xsl:message>Stack To East <xsl:value-of select="$stackToEast_"/></xsl:message>
-		<xsl:message>Stack To West <xsl:value-of select="$stackToWest_"/></xsl:message>
-		<xsl:variable name="space_X_">
-			<xsl:call-template name="_calc_Space_X"> 
-				<xsl:with-param name="iStackToEast" select="$stackToEast_"/>
-				<xsl:with-param name="iStackToWest" select="$stackToWest_"/>
-			</xsl:call-template>		
-		</xsl:variable>
-		<xsl:variable name="space_y_"   select="($G_SharedBus_Y - $spaceAbvSbs_H_ - $BLKD_PROC2SBS_GAP)"/>
-		<xsl:variable name="space_x_"   select="($BLKD_INNER_X + $G_total_Bridges_W + $space_line_x_)"/>
--->		
-		
-	
-		<xsl:for-each select="BUSCONNLANE[@IS_MPMCCONN]">
-			
-<!--			
-			<xsl:variable name="bifSide_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = BUSCONN/@INSTANCE)]/BUSINTERFACE[(@BUSNAME = @BUSNAME)]/@BIF_X"/>
--->	
-			<xsl:variable name="bifInst_"     select="BUSCONN/@INSTANCE"/>
-			<xsl:variable name="busName_"     select="@BUSNAME"/>
-			<xsl:variable name="bifSide_"     select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $bifInst_)]/BUSINTERFACE[(@BUSNAME = $busName_)]/@BIF_X"/>
-			
-			<xsl:variable name="mpmcBifName_">
-				<xsl:choose>
-					<xsl:when test="   (@IS_SBSCONN)"><xsl:value-of select="BUSCONN/@BUSINTERFACE"/></xsl:when>
-					<xsl:when test="not(@IS_SBSCONN)"><xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $mpmcInst_)]/BUSINTERFACE[(@BUSNAME = $busName_)]/@NAME"/></xsl:when>
-					<xsl:otherwise><xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $mpmcInst_)]/BUSINTERFACE[(@BUSNAME = $busName_)]/@NAME"/></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-<!--			
-			<xsl:message>MPMC Bif Name <xsl:value-of select="$mpmcBifName_"/></xsl:message>
-			<xsl:message>Bif Side <xsl:value-of select="$bifSide_"/></xsl:message>
-			<xsl:message>Bus Name <xsl:value-of select="@BUSNAME"/></xsl:message>
-			<xsl:message>Instance <xsl:value-of select="$bifInst_"/></xsl:message>
--->	
-			
-			<xsl:variable name="space_line_X_">
-				<xsl:call-template name="_calc_Space_X">
-					<xsl:with-param name="iStackToEast"  select="$stackToEast_"/>
-					<xsl:with-param name="iStackToWest"  select="$stackToWest_"/>
-				</xsl:call-template>
-			</xsl:variable>
-			
-			<xsl:variable name="space_X_"   select="($BLKD_INNER_X + $G_total_Bridges_W + $space_line_X_)"/>
-			
-			<xsl:variable name = "stackToWest_W_">
-				<xsl:choose>
-					<xsl:when test="(($stackToEast_ = '0')   and     ($stackToWest_ = 'NONE'))">0</xsl:when>
-					<xsl:when test="(($stackToEast_ = 'NONE') and not($stackToWest_ = 'NONE'))">
-						<xsl:call-template name="_calc_Stack_Width">
-							<xsl:with-param name="iStackIdx"  select="$stackToWest_"/>
-						</xsl:call-template>
-					</xsl:when>
-					<xsl:when test="(not($stackToEast_ = '0') and not($stackToEast_ = 'NONE') and ($stackToWest_ = 'NONE'))">
-						<xsl:call-template name="_calc_Stack_Width">
-							<xsl:with-param name="iStackIdx"  select="($stackToEast_ - 1)"/>
-						</xsl:call-template>
-					</xsl:when>
-					<xsl:otherwise>0</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-	
-			<xsl:variable name = "stackToEast_W_">
-				<xsl:call-template name="_calc_Stack_Width">
-					<xsl:with-param name="iStackIdx"  select="$stackToEast_"/>
-				</xsl:call-template>
-			</xsl:variable>
-	
-			<xsl:variable name ="extSpaceWest_W_" select="ceiling($stackToWest_W_ div 2)"/>
-			<xsl:variable name ="extSpaceEast_W_" select="ceiling($stackToEast_W_ div 2)"/>
-<!--			
-			<xsl:message>extSpaceWest_W_ <xsl:value-of select="$extSpaceWest_W_"/></xsl:message>
-			<xsl:message>extSpaceEast_W_ <xsl:value-of select="$extSpaceEast_W_"/></xsl:message>
-			<xsl:message>Found a MPMC lane in space <xsl:value-of select="$currentLane_"/> at X <xsl:value-of select="$lane_X_"/></xsl:message>
-			<xsl:message>mpmcBifRank <xsl:value-of select="$mpmcBifRank_"/></xsl:message>
--->			
-			
-<!--			
-			<xsl:variable name="laneInSpace_X_" select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W))"/>
--->			
-			<xsl:variable name="laneInSpace_X_">
-				<xsl:choose>
-				   <xsl:when test="(@ORIENTED = 'EAST')">
-					   <xsl:value-of select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W) - $BLKD_BUS_ARROW_W - $BLKD_P2P_BUS_W)"/>
-				   </xsl:when>
-				   <xsl:otherwise><xsl:value-of select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W))"/></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable> 
-						
-			
-			
-			<xsl:variable name="lane_X_"        select="($space_X_ + $laneInSpace_X_)"/>
-			
-			<xsl:variable name="mpmcBifRank_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $mpmcInst_)]/BUSINTERFACE[(@BUSNAME = @BUSNAME)]/@BIFRANK"/>
-			
-		<!--	
-			<xsl:variable name="bc_X_" select="($lane_X_ +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-			<xsl:variable name="bc_X_" select="($lane_X_ +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/>
-			<xsl:variable name="bc_X_" select="($lane_X_ + ceiling($BLKD_BIFC_W div 2))"/>
-		-->	
-			
-			<xsl:variable name="bc_Y_" select="($BLKD_INNER_Y + $BLKD_MPMC_MOD_H)"/>
-			<xsl:variable name="bc_X_" >
-				<xsl:choose>
-					<xsl:when test="($bifSide_ = '0')"><xsl:value-of select="($lane_X_ + ceiling($BLKD_BIFC_W div 2))"/></xsl:when>
-					<xsl:when test="($bifSide_ = '1')"><xsl:value-of select="($lane_X_ + $BLKD_BIFC_dx)"/></xsl:when>
-					<xsl:otherwise>                    <xsl:value-of select="($lane_X_ + ceiling($BLKD_BIFC_W div 2))"/></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="busColor_">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="@BUSSTD"/>
-				</xsl:call-template>	
-			</xsl:variable>
-		
-			<!-- Place the MPMC bif label -->
-			<xsl:variable name="bcl_X_" select="($bc_X_ + ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BIF_W div 2))"/>
-			<xsl:variable name="bcl_Y_" select="($bc_Y_ - $BLKD_BIF_H - $BLKD_MOD_BIF_GAP_H)"/>
-			<use  x="{$bcl_X_}"   y="{$bcl_Y_}"  xlink:href="#{@BUSSTD}_Bif"/>
-			<text class="mpmcbiflabel" 
-				  x="{$bcl_X_ + ceiling($BLKD_BIF_W div 2)}"
-				  y="{$bcl_Y_ + ceiling($BLKD_BIF_H div 2) + 3}"><xsl:value-of select="$mpmcBifName_"/></text>
-			
-			<!-- Place the MPMC bif -->
-			<use   x="{$bc_X_}"   y="{$bc_Y_}"  xlink:href="#{@BUSSTD}_busconn_{$mpmcBifRank_}"/>
-			
-			<xsl:variable name="bcArrow_X_" select="($bc_X_ +  ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_H div 2))"/>
-			<xsl:variable name="bcArrow_Y_" select="($bc_Y_ + $BLKD_BIFC_H - 3)"/>
-			
-			<!-- Place the MPMC Arrow -->
-			<use   x="{$bcArrow_X_}"   y="{$bcArrow_Y_}"  xlink:href="#{@BUSSTD}_BusArrowNorth"/>
-			
-			<!-- 
-				Place a block to cover the gap btw MPMC and top of Bus Lane Space, or to the correct SBS 
-				For non SBS connections a vertical block will already have been drawn to the top of the
-				space.
-			-->
-			
-			<xsl:variable name="sbsDy_">
-				<xsl:choose>
-					<xsl:when test="@IS_SBSCONN"><xsl:value-of select="2 + (/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $busName_)]/@BUSINDEX * $BLKD_SBS_LANE_H)"/></xsl:when>
-					<xsl:when test="not(@IS_SBSCONN)">0</xsl:when>
-					<xsl:otherwise>0></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="mpmcBusHeight_">
-				<xsl:choose>
-					<xsl:when    test="(@IS_SBSCONN)"><xsl:value-of select="($G_SharedBus_Y - ($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4) + $sbsDy_)"/></xsl:when>
-					<xsl:when test="not(@IS_SBSCONN)">
-						<xsl:choose>
-							<xsl:when test="($space_y_ &gt;= ($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4 + $sbsDy_))">
-								<xsl:value-of select="($space_y_ - ($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4 + $sbsDy_))"/>
-							</xsl:when>
-							<xsl:when test="($space_y_ &lt; ($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4 + $sbsDy_))">
-								<xsl:value-of select="(($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4 + $sbsDy_) - $space_y_)"/>
-							</xsl:when>
-						</xsl:choose>
-					</xsl:when>
-					<xsl:otherwise><xsl:value-of select="$BLKD_BIFC_H"/></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<rect x="{$bcArrow_X_ + $BLKD_BUS_ARROW_G}" 
-		  	  	  y="{$bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4}"  
-		 	  	  width= "{$BLKD_P2P_BUS_W}" 
-		  	  	  height="{$mpmcBusHeight_}"  
-		 	      style="stroke:none; fill:{$busColor_}"/>	
-			
-			<!-- place the bus label here -->
-			<text class="p2pbuslabel" 
-				  x="{$bcArrow_X_ + $BLKD_BUS_ARROW_W + 6}"
-				  y="{$bcArrow_Y_ + ceiling($mpmcBusHeight_ div 2) + 6}"><xsl:value-of select="$busName_"/></text>	
-			
-			
-		</xsl:for-each>    			
-	</xsl:for-each>	
-	
-</xsl:template>
-	
-	
-<!-- ======================================================================= -->
-<!--                         FUNCTION TEMPLATE                               -->
-<!--																		 -->
-<!--  Draw bus lane spaces on the Block Diagram								 -->
-<!-- ======================================================================= -->
-<xsl:template name="Draw_BlkDiagram_BusLaneSpaces">
-	
-	<xsl:variable name="lastStack_" select="(/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH) - 1"/>
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[@EAST]">
-		<xsl:sort select="@EAST" data-type="number"/>
-			
-		<xsl:call-template name="Draw_BlkDiagram_BusLaneSpace">
-			<xsl:with-param name="iStackToEast"  select="@EAST"/>
-		</xsl:call-template>
-	</xsl:for-each>	
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@WEST = $lastStack_)]">
-		<xsl:call-template name="Draw_BlkDiagram_BusLaneSpace">
-			<xsl:with-param name="iStackToWest"  select="$lastStack_"/>
-		</xsl:call-template>
-	</xsl:for-each>	
-			
-</xsl:template>
-	
-<xsl:template name="Draw_BlkDiagram_BusLaneSpace">
-	
-	<xsl:param name="iStackToEast" select="'NONE'"/>
-	<xsl:param name="iStackToWest" select="'NONE'"/>
-	
-	<xsl:variable name="spaceAbvSbs_H_">
-		<xsl:call-template name="_calc_Space_AbvSbs_Height">
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>
-	</xsl:variable>	
-	
-	<xsl:variable name="spaceBlwSbs_H_">
-		<xsl:call-template name="_calc_Space_BlwSbs_Height">
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>
-	</xsl:variable>	
-	
-	<xsl:variable name="space_line_x_">
-		<xsl:call-template name="_calc_Space_X">
-			<xsl:with-param name="iStackToEast"  select="$iStackToEast"/>
-			<xsl:with-param name="iStackToWest"  select="$iStackToWest"/>
-		</xsl:call-template>
-	</xsl:variable>
-	
-	<xsl:variable name="space_y_"   select="($G_SharedBus_Y - $spaceAbvSbs_H_ - $BLKD_PROC2SBS_GAP)"/>
-	<xsl:variable name="space_x_"   select="($BLKD_INNER_X + $G_total_Bridges_W + $space_line_x_)"/>
-	
-	<xsl:variable name="stackToEast_">
-		<xsl:choose>
-			<xsl:when test="not($iStackToEast = 'NONE')"><xsl:value-of select="$iStackToEast"/></xsl:when>
-			<xsl:otherwise>NONE</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-	<xsl:variable name="stackToWest_">
-		<xsl:choose>
-			<xsl:when test=" not($iStackToWest = 'NONE')"><xsl:value-of select="$iStackToWest"/></xsl:when>
-			<xsl:when test="(not($iStackToEast = 'NONE') and not($iStackToEast = '0'))"><xsl:value-of select="($iStackToEast - 1)"/></xsl:when>
-			<xsl:otherwise>NONE</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>	
-	
-		
-	<xsl:variable name="space_Name_">
-		<xsl:call-template name="_gen_Space_Name"> 
-			<xsl:with-param name="iStackToEast" select="$stackToEast_"/>
-			<xsl:with-param name="iStackToWest" select="$stackToWest_"/>
-		</xsl:call-template>		
-	</xsl:variable>	
-	
-<!--	
-	<xsl:message>StackToEast is <xsl:value-of select="$iStackToEast"/></xsl:message>
-	<xsl:message>StackToWest is <xsl:value-of select="$iStackToWest"/></xsl:message>
-	<xsl:message>SpaceName is <xsl:value-of select="$space_Name_"/></xsl:message>
--->	
-		
-	<use   x="{$space_x_}"    y="{$space_y_}"  xlink:href="#{$space_Name_}"/> 
-	
-</xsl:template>
-	
-	
-<!-- =========================================================================== -->
-<!--                          FUNCTION TEMPLATE                                  -->
-<!--																			 -->
-<!--  Draw Bridges on the Block Diagram											 -->
-<!-- =========================================================================== -->
-<xsl:template name="Draw_BlkDiagram_Bridges">
-	
-	<!-- First save all the bridge indexs in a variable	 -->
-	<xsl:variable name="bridgeShapes_">
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE/BUSCONNS[(@ORIENTED = 'WEST')]/BUSCONN">	
-			<BRIDGE BUSINDEX="{@BUSINDEX}" INSTANCE="{../../@INSTANCE}" POSITION="{(position() -1)}"/>
-			<BRIDGECONN BUSINDEX="{@BUSINDEX}" INSTANCE="{../../@INSTANCE}" ORIENTED="{../@ORIENTED}" POSITION="{(position()  - 1)}" BUSSTD="{@BUSSTD}" BIFRANK="{@BIFRANK}"/>
-			<!-- So both bus conns have same position.... -->
-			<xsl:if test="../../BUSCONNS[(@ORIENTED = 'EAST')]">
-				<BRIDGECONN BUSINDEX="{../../BUSCONNS[(@ORIENTED ='EAST')]/BUSCONN/@BUSINDEX}" INSTANCE="{../../@INSTANCE}" ORIENTED="EAST" POSITION="{(position()  - 1)}"   BUSSTD="{../../BUSCONNS[(@ORIENTED = 'EAST')]/BUSCONN/@BUSSTD}" BIFRANK="{../../BUSCONNS[(@ORIENTED = 'EAST')]/BUSCONN/@BIFRANK}"/>
-			</xsl:if>
-		</xsl:for-each>
-	</xsl:variable>
-<!--				
-			<xsl:message>Found an east connection on <xsl:value-of select="../../@INSTANCE"/></xsl:message>
--->				
-	<!-- Now layout the bridge shapes between the shared busses	 -->
-	<xsl:for-each select="exsl:node-set($bridgeShapes_)/BRIDGE">
-		<xsl:sort select="@POSITION" data-type="number"/>
-		
-		<xsl:variable name="brdgPosition_"  select="@POSITION"/>
-		<xsl:variable name="brdgInstance_"  select="@INSTANCE"/>
-		
-		<xsl:variable name="min_bus_idx_" select="math:min(exsl:node-set($bridgeShapes_)/BRIDGECONN[(@POSITION = $brdgPosition_)]/@BUSINDEX)"/>
-<!--		
-		<xsl:variable name="max_bus_idx_" select="math:max(exsl:node-set($bridgeShapes_)/BRIDGECONN[(@POSITION = $brdgPosition_)]/@BUSINDEX)"/>
-		
-     	<xsl:message>Maximum index <xsl:value-of select="$max_bus_idx_"/></xsl:message>
-     	<xsl:message>Minimum index <xsl:value-of select="$min_bus_idx_"/></xsl:message>
--->
-		
-		
-		<xsl:variable name="brdg_X_"  select="($BLKD_INNER_X + $BLKD_BRIDGE_GAP + $BLKD_BUS_LANE_W + (@POSITION * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))))"/>	
-		<xsl:variable name="brdg_Y_"  select="($G_SharedBus_Y  + ($min_bus_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_SBS_LANE_H div 2) - ceiling($BLKD_MOD_H div 2))"/>
-		
-		<use  x="{$brdg_X_}"  y="{$brdg_Y_}"  xlink:href="#symbol_{$brdgInstance_}"/>	
-	</xsl:for-each>	
-	
-		
-	
-<!--	
-	<xsl:message>Found <xsl:value-of select="count(exsl:node-set($bridgeShapes_)/BRIDGECONN)"/> busconns </xsl:message>
-		<xsl:message>Drawing connection for bridge <xsl:value-of select="$brdgInstance_"/> at <xsl:value-of select="@POSITION"/> </xsl:message>
--->	
-	
-	<xsl:for-each select="exsl:node-set($bridgeShapes_)/BRIDGECONN">
-		<xsl:sort select="@POSITION" data-type="number"/>
-		
-		<xsl:variable name="brdgInstance_"  select="@INSTANCE"/>
-		<xsl:variable name="brdgPosition_"  select="@POSITION"/>
-		
-		<xsl:variable name="busColor_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="@BUSSTD"/>
-			</xsl:call-template>	
-		</xsl:variable>
-		
-		<xsl:variable name="min_bus_idx_" select="math:min(exsl:node-set($bridgeShapes_)/BRIDGECONN[(@POSITION = $brdgPosition_)]/@BUSINDEX)"/>
-		<xsl:variable name="brdg_Y1_"     select="($G_SharedBus_Y  + ($min_bus_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_SBS_LANE_H div 2) - ceiling($BLKD_MOD_H div 2))"/>
-		<xsl:variable name="brdg_X_"      select="($BLKD_INNER_X   + $BLKD_BRIDGE_GAP + $BLKD_BUS_LANE_W + (@POSITION * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))))"/>	
-		
-		<xsl:variable name="bc_Y_"        select="$brdg_Y1_ + $BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2)"/>	
-		<xsl:variable name="bc_X_">
-			<xsl:choose>
-				<xsl:when test="@ORIENTED='WEST'">
-					<xsl:value-of select="($brdg_X_ - $BLKD_BIFC_W)"/>
-				</xsl:when>
-				<xsl:when test="@ORIENTED='EAST'">
-					<xsl:value-of select="($brdg_X_ + $BLKD_MOD_W)"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		<!-- Layout the bus conn -->
-		<use   x="{$bc_X_}"   y="{$bc_Y_}"  xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/>
-		
-		<!-- Figure out the positions of the lines -->
-		
-<!--		
-		<xsl:variable name="vert_line_x_"  select="$bc_X_    + ceiling($BLKD_BIFC_W div 2)"/>
-		<xsl:message>vert line x <xsl:value-of select="$vert_line_x_"/></xsl:message>
-		<xsl:message>bus index <xsl:value-of select="@BUSINDEX"/></xsl:message>
--->		
-		
-		<xsl:variable name="vert_line_x_">
-			<xsl:choose>
-				<xsl:when test="@ORIENTED='WEST'">
-					<xsl:value-of select="($bc_X_ - ($BLKD_BUS_LANE_W - $BLKD_BIFC_W))"/>
-				</xsl:when>
-				<xsl:when test="@ORIENTED='EAST'">
-					<xsl:value-of select="($bc_X_ + ($BLKD_BUS_LANE_W - $BLKD_P2P_BUS_W))"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		<!-- At least one of the points is going to be the bus -->
-<!--		
-		<xsl:variable name="vert_line_y1_" select="($G_SharedBus_Y  + $BLKD_PROC2SBS_GAP + (@BUSINDEX * $BLKD_SBS_LANE_H))"/>
--->		
-		<xsl:variable name="vert_line_y1_" select="($G_SharedBus_Y  + (@BUSINDEX * $BLKD_SBS_LANE_H))"/>
-		<xsl:variable name="vert_line_y2_" select="$bc_Y_ + ceiling($BLKD_BIFC_H div 2)"/>
-		
-		<xsl:variable name="v_bus_ul_y_">
-			<xsl:choose>
-				<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-					<xsl:value-of select="$vert_line_y2_"/>
-				</xsl:when>
-				<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-					<xsl:value-of select="$vert_line_y1_"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-<!--		
-		<xsl:variable name="v_bus_ul_x_" select="$vert_line_x_"/>
--->	
-		<xsl:variable name="v_bus_ul_x_">
-			<xsl:choose>
-				<xsl:when test="@ORIENTED='WEST'">
-					<xsl:value-of select="($vert_line_x_ + $BLKD_MOD_BIF_GAP_H)"/>
-				</xsl:when>
-				<xsl:when test="@ORIENTED='EAST'">
-					<xsl:value-of select="($vert_line_x_ - $BLKD_MOD_BIF_GAP_H)"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		
-		<xsl:variable name="v_bus_width_" select="$BLKD_P2P_BUS_W"/>
-		<xsl:variable name="v_bus_height_">
-			<xsl:choose>
-				<xsl:when test="$vert_line_y1_ &gt; $vert_line_y2_">
-					<xsl:value-of select="($vert_line_y1_ - $vert_line_y2_)"/>
-				</xsl:when>
-				<xsl:when test="$vert_line_y2_ &gt; $vert_line_y1_">
-					<xsl:value-of select="($vert_line_y2_ - $vert_line_y1_)"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		<xsl:variable name="h_bus_ul_x_">
-			<xsl:choose>
-				<xsl:when test="@ORIENTED='WEST'">
-					<xsl:value-of select="($bc_X_ - ($BLKD_BUS_LANE_W - $BLKD_BIFC_W) + $BLKD_MOD_BIF_GAP_H)"/>
-				</xsl:when>
-				<xsl:when test="@ORIENTED='EAST'">
-					<xsl:value-of select="($bc_X_ + $BLKD_BIFC_W - ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2))"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		<xsl:variable name="h_bus_ul_y_" select="$bc_Y_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-		<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-		
-		<xsl:variable name="h_bus_width_">
-			<xsl:choose>
-				<xsl:when test="@ORIENTED='WEST'">
-					<xsl:value-of select="(($bc_X_ + ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2)) - $h_bus_ul_x_ + 1)"/>
-				</xsl:when>
-				<xsl:when test="@ORIENTED='EAST'">
-					<xsl:value-of select="(($v_bus_ul_x_ + $BLKD_P2P_BUS_W) - $h_bus_ul_x_)"/>
-				</xsl:when>
-			</xsl:choose>
-		</xsl:variable>	
-		
-		
-<!--		
-		<xsl:message>vert line y1 <xsl:value-of select="$vert_line_y1_"/></xsl:message>
--->		
-		
-		<rect x="{$v_bus_ul_x_}" 
-		  	  y="{$v_bus_ul_y_ + 2}"  
-		 	  width= "{$v_bus_width_}" 
-		 	  height="{$v_bus_height_}" 
-		 	  style="stroke:none; fill:{$busColor_}"/>
-		
-		<rect x="{$h_bus_ul_x_}" 
-		  	  y="{$h_bus_ul_y_}"  
-		 	  width= "{$h_bus_width_}" 
-		 	  height="{$h_bus_height_}" 
-		 	  style="stroke:none; fill:{$busColor_}"/>
-		
-	</xsl:for-each>	
-	
-</xsl:template>
-	
-	
-	
-	
-<!-- =========================================================================== -->
-<!--                          FUNCTION TEMPLATE                                  -->
-<!--																			 -->
-<!-- Draw the IP Bucket          												 -->
-<!-- =========================================================================== -->
-<xsl:template name="Draw_BlkDiagram_IPBucket">
-	
-	<!-- Draw IP Bucket -->	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/IPBUCKET">
-	
-		<xsl:variable name="bucket_w_"  select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
-		<xsl:variable name="bucket_h_"  select="(($BLKD_MOD_BKTLANE_H * 2) + (($BLKD_MOD_H * @MODS_H) + ($BLKD_MOD_BUCKET_G * (@MODS_H - 1))))"/>
-		
-		<xsl:variable name="bucket_x_"  select="(ceiling($G_total_blkd_W div 2) - ceiling($bucket_w_ div 2))"/>
-		<xsl:variable name="bucket_y_"  select="($G_SharedBus_Y + $G_total_SharedBus_H + $G_max_Stack_BlwSbs_H + $BLKD_SBS2IP_GAP)"/>
-		
-		<text class="ipclass"
-			x="{$bucket_x_}" 
-			y="{$bucket_y_ - 4}">IP</text>
-		
-		<use   x="{$bucket_x_}"   y="{$bucket_y_}"  xlink:href="#ipbucket"/>
-		
-	</xsl:for-each>
-	
-</xsl:template>
-	
-	
-<xsl:template name="Draw_BlkDiagram_Key">
-	<use   x="{ceiling($G_blkd_W div 2) - ceiling($BLKD_KEY_W div 2)}"   y="0"  xlink:href="#BlkDiagram_Key"/> 
-</xsl:template>
-
-<xsl:template name="Define_BlkDiagram_Key">
-	
-	<xsl:variable name="key_col_">
-		<xsl:call-template name="BusType2Color">
-			<xsl:with-param name="iBusType" select="'KEY'"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<xsl:variable name="key_lt_col_">
-		<xsl:call-template name="BusType2LightColor">
-			<xsl:with-param name="iBusType" select="'KEY'"/>
-		</xsl:call-template>	
-	</xsl:variable>
-	
-	<symbol id="KEY_IntrCntrl">
-		<rect  
-			x="0"
-			y="0"
-			rx="3"
-			ry="3"
-			width= "{ceiling($BLKD_INTR_W div 2)}" 
-			height="{$BLKD_INTR_H}" style="fill:{$key_lt_col_}; stroke:none; stroke-width:1"/> 
-			
-		<line x1="0" 
-			  y1="{ceiling($BLKD_INTR_H div 4)}"
-			  x2="{ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{ceiling($BLKD_INTR_H div 4)}" 
-			  style="stroke:{$COL_BLACK};stroke-width:2"/>
-			  
-		<text class="intrsymbol" 
-			  x="1.5"
-			  y="{7 + ceiling($BLKD_INTR_H div 2)}">x</text>
-			
-	</symbol>
-		
-	<symbol id="KEY_IntrdProc">
-		<rect  
-			x="0"
-			y="0"
-			rx="3"
-			ry="3"
-			width= "{ceiling($BLKD_INTR_W div 2)}" 
-			height="{$BLKD_INTR_H}" style="fill:{$key_lt_col_}; stroke:none; stroke-width:1"/> 
-			
-		<line x1="0" 
-			  y1="{ceiling($BLKD_INTR_H div 4) - 2}"
-			  x2="{ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{ceiling($BLKD_INTR_H div 4) - 2}" 
-			  style="stroke:{$COL_BLACK};stroke-width:1"/>
-			  
-		<line x1="0" 
-			  y1="{ceiling($BLKD_INTR_H div 4) + 2}"
-			  x2="{ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{ceiling($BLKD_INTR_H div 4) + 2}" 
-			  style="stroke:{$COL_BLACK};stroke-width:1"/>
-			  
-		<text class="intrsymbol" 
-			  x="1.5"
-			  y="{7 + ceiling($BLKD_INTR_H div 2)}">x</text>
-	</symbol>
-	
-	<symbol id="KEY_IntrSrc">
-		<rect  
-			x="0"
-			y="0"
-			rx="3"
-			ry="3"
-			width= "{$BLKD_INTR_W}" 
-			height="{ceiling($BLKD_INTR_H div 2)}" style="fill:{$key_lt_col_}; stroke:none; stroke-width:1"/> 
-			
-		<line x1="{ceiling($BLKD_INTR_W div 2)}" 
-			  y1="0"
-			  x2="{ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{ceiling($BLKD_INTR_H div 2)}" 
-			  style="stroke:{$COL_BLACK};stroke-width:1"/>
-			  
-		<text class="intrsymbol" 
-			  x="2"
-			  y="7">y</text>
-			
-		<text class="intrsymbol" 
-			  x="{2 + ceiling($BLKD_INTR_W div 2)}"
-			  y="7">x</text>
-	</symbol>
-	
-	
-	<symbol id="BlkDiagram_Key">
-		<rect 
-              x="0"
-			  y="0"
-		      width= "{$BLKD_KEY_W}"
-		      height="{$BLKD_KEY_H}"
-			  style="fill:{$COL_BG}; stroke:none;"/>		
-			  
-		<rect 
-              x="0"
-			  y="0"
-		      width= "{$BLKD_KEY_W}"
-		      height="16"
-			  style="fill:{$COL_BG}; stroke:none;"/>		
-			  
-		<text class="keytitle"
-              x="{ceiling($BLKD_KEY_W div 2)} "
-			  y="14">KEY</text>		  
-			  
-		<rect 
-              x="0"
-			  y="16"
-		      width= "{$BLKD_KEY_W}"
-		      height="16"
-			  style="fill:{$COL_BG_LT}; stroke:none;"/>		
-			  
-		<text class="keyheader"
-              x="{ceiling($BLKD_KEY_W div 2)} "
-			  y="30">SYMBOLS</text>		  
-			  
-   		<use  x="32"  y="47"  xlink:href="#KEY_Bif" transform="scale(0.75)"/> 
-		<text class="keylabel"
-              x="12"
-			  y="60">bus interface</text>		  
-			  
-   		<use   x="20"  y="68"  xlink:href="#KEY_SharedBus"/> 
-		<text class="keylabel"
-              x="12"
-			  y="85">shared bus</text>		  
-			  
-		<text class="keylblul"
-              x="110"
-			  y="47">Bus connections</text>		  
-			  
-   		<use   x="110"  y="58"  xlink:href="#KEY_busconn_MASTER"/> 
-		<text class="keylabel"
-              x="140"
-			  y="72">master or initiator</text>		  
-			  
-   		<use   x="110"  y="{58 + (($BLKD_BIFC_H  + 4) * 1)}"  xlink:href="#KEY_busconn_SLAVE"/> 
-		<text class="keylabel"
-              x="140"
-			  y="{72 + (($BLKD_BIFC_H + 4) * 1)}">slave or target</text>		  
-			  
-   		<use   x="110"  y="{58 + (($BLKD_BIFC_H  + 4) * 2)}"  xlink:href="#KEY_busconn_MASTER_SLAVE"/> 
-		<text class="keylabel"
-              x="140"
-			  y="{72 + (($BLKD_BIFC_H + 4) * 2)}">master slave</text>		  
-			  
-   		<use   x="110"  y="{58 + (($BLKD_BIFC_H  + 4) * 3)}"  xlink:href="#KEY_busconn_MONITOR"/>
-		<text class="keylabel"
-              x="140"
-			  y="{72 + (($BLKD_BIFC_H + 4) * 3)}">monitor</text>		  
-			  
-		<text class="keylblul"
-              x="258"
-			  y="47">External Ports</text>		  
-		
-   		<use   x="258"  y="58"  xlink:href="#KEY_INPort"/> 
-		<text class="keylabel"
-              x="288"
-			  y="72">input</text>		  
-			  
-   		<use   x="258"  y="{58 + ($BLKD_IOP_H * 1) + 4}"  xlink:href="#KEY_OUTPort"/> 
-		<text class="keylabel"
-              x="288"
-			  y="{72 + ($BLKD_IOP_H * 1) + 4}">output</text>		  
-			  
-   		<use   x="258" y="{58 + ($BLKD_IOP_H * 2) + 8}"  xlink:href="#KEY_INOUTPort"/> 
-		<text class="keylabel"
-              x="288"
-			  y="{72 + ($BLKD_IOP_H * 2) + 8}">inout</text>		  
-		
-		
-		<text class="keylblul"
-              x="380"
-			  y="47">Interrupts</text>
-		
-   		<use   x="380"  y="58"  xlink:href="#KEY_IntrCntrl"/> 
-		<text class="keylabel"
-              x="396"
-			  y="64">interrupt</text>		  
-		<text class="keylabel"
-              x="396"
-			  y="74">controller</text>		  
-			  
-		
-		<use   x="380"  y="88"  xlink:href="#KEY_IntrdProc"/> 
-		<text class="keylabel"
-              x="396"
-			  y="94">interrupted</text>		  
-		<text class="keylabel"
-              x="396"
-			  y="104">processor</text>		  
-			  
-		
-		<use   x="380"  y="118"  xlink:href="#KEY_IntrSrc"/> 
-		<text class="keylabel"
-              x="400"
-			  y="124">interrupt</text>		  
-		<text class="keylabel"
-              x="400"
-			  y="134">source</text>		  
-		
-		<text class="keylabel"
-              x="360"
-			  y="146">x = controller ID</text>		  
-		
-		<text class="keylabel"
-              x="360"
-			  y="156">y = priority</text>		  
-<!--		
-		<text class="keylabel"
-              x="400"
-			  y="134">source</text>		  
-	
--->
-		<rect 
-              x="0"
-			  y="160"
-		      width= "{$BLKD_KEY_W}"
-		      height="16"
-			  style="fill:{$COL_BG_LT}; stroke:none;"/>		
-			  
-		<text class="keyheader"
-              x="{ceiling($BLKD_KEY_W div 2)} "
-			  y="172">COLORS</text>		  
-		
-			  
-		<text class="keylblul"
-              x="110"
-			  y="190">Bus Standards</text>		  
-			  
-		<xsl:variable name="dcr_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'DCR'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-		
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 0)}"
-			  y="200"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$dcr_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  + $BLKD_BIFC_W + 4}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 1)}">DCR</text>		  
-			  
-		<xsl:variable name="fcb_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'FCB'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-		
-		<rect 
-              x="{12  + ((12 + $BLKD_BIFC_W + 36) * 0)}"
-			  y="{200 + (($BLKD_BIFC_H + 4) * 1)}"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$fcb_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  + $BLKD_BIFC_W + 4}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 2)}">FCB</text>		  
-		
-		<xsl:variable name="fsl_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'FSL'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			  
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 1)}"
-			  y="200"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$fsl_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  +  ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 1)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 1)}">FSL</text>		  
-		
-		<xsl:variable name="col_lmb_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'LMB'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			  
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 1)}"
-			  y="{200 + (($BLKD_BIFC_H + 4) * 1)}"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$col_lmb_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 1)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 2)}">LMB</text>		  
-			  
-		
-		<xsl:variable name="opb_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'OPB'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			  
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 2)}"
-			  y="200"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$opb_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  +  ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 2)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 1)}">OPB</text>		  
-		
-		<xsl:variable name="plb_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'PLB'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-		
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 2)}"
-			  y="{200 + (($BLKD_BIFC_H + 4) * 1)}"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$plb_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  +  ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 2)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 2)}">PLB</text>		  
-		
-			 
-		<xsl:variable name="ocm_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'OCM'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			  
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 3)}"
-			  y="200"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$ocm_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 3)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 1)}">SOCM</text>
-		
-		
-		<xsl:variable name="xil_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'XIL'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			  
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 3)}"
-			  y="{200 + (($BLKD_BIFC_H + 4) * 1)}"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$xil_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 3)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 2)}">XIL (prefix) P2P</text>		  
-			 
-			  
-		<xsl:variable name="trs_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="'TRS'"/>
-			</xsl:call-template>	
-		</xsl:variable>
-			  
-		<rect 
-              x="{12 + ((12 + $BLKD_BIFC_W + 36) * 4)}"
-			  y="200"
-		      width= "{$BLKD_BIFC_H}"
-		      height="{$BLKD_BIFC_W}"
-			  style="fill:{$trs_col_}; stroke:none;"/>		
-		<text class="keylabel"
-              x="{12  + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 4)}"
-			  y="{200 + (($BLKD_BIF_H + 4) * 1)}">GEN. P2P, USER, etc</text>		  
-			  
-</symbol>	
-</xsl:template>
-
-<xsl:template name="Define_BlkDiagram_Specs">
-
-	<xsl:param name="iArch"       select="'NA'"/>
-	<xsl:param name="iPart"       select="'NA'"/>
-	<xsl:param name="iTimeStamp"  select="'NA'"/>
-	<xsl:param name="iEdkVersion" select="'NA'"/>
-			
-	<symbol id="BlkDiagram_Specs">
-		<rect 
-              x="0"
-			  y="0"
-		      width= "{$BLKD_SPECS_W}"
-		      height="{$BLKD_SPECS_H}"
-			  style="fill:{$COL_BG}; stroke:none;"/>		
-			  
-		<rect 
-              x="0"
-			  y="0"
-		      width= "{$BLKD_SPECS_W}"
-		      height="16"
-			  style="fill:{$COL_BG}; stroke:none;"/>		
-			  
-		<text class="keytitle"
-              x="{ceiling($BLKD_SPECS_W div 2)} "
-			  y="14">SPECS</text>
-			  
-		<rect 
-              x="0"
-			  y="20"
-		      width= "{$BLKD_SPECS_W}"
-		      height="16"
-			  style="fill:{$COL_BG_LT}; stroke:none;"/>		
-			  
-		<text class="specsheader"
-              x="4"
-			  y="32">EDK VERSION</text>
-			  
-<!--		
-		<text class="specsvalue"
-              x="{($BLKD_SPECS_W + 1) - (string-length($blkd_edkver) * 6.5)}"
-			  y="32"><xsl:value-of select="$blkd_edkver"/></text>
--->		
-		<text class="specsvaluemid"
-              x="{($BLKD_SPECS_W + 1) - ceiling($BLKD_SPECS_W div 5)}"
-			  y="32"><xsl:value-of select="$iEdkVersion"/></text>
-			  
-		<rect 
-              x="0"
-			  y="40"
-		      width= "{$BLKD_SPECS_W}"
-		      height="16"
-			  style="fill:{$COL_BG_LT}; stroke:none;"/>		
-			  
-		<text class="specsheader"
-              x="4"
-			  y="52">ARCH</text>
-			  
-<!--		
-		<text class="specsvalue"
-              x="{($BLKD_SPECS_W + 1) - (string-length($blkd_arch) * 6.5)}"
-			  y="52"><xsl:value-of select="$blkd_arch"/></text>
--->		
-		<text class="specsvaluemid"
-              x="{($BLKD_SPECS_W + 1) - ceiling($BLKD_SPECS_W div 5)}"
-			  y="52"><xsl:value-of select="$iArch"/></text>
-			  
-		<rect 
-              x="0"
-			  y="60"
-		      width= "{$BLKD_SPECS_W}"
-		      height="16"
-			  style="fill:{$COL_BG_LT}; stroke:none;"/>		
-			  
-		<text class="specsheader"
-              x="4"
-			  y="72">PART</text>
-			  
-<!--		
-		<text class="specsvalue"
-              x="{($BLKD_SPECS_W  + 1) - ((string-length($blkd_part) + 2) * 6.5)}"
-			  y="72"><xsl:value-of select="$blkd_part"/></text>
--->		
-		<text class="specsvaluemid"
-              x="{($BLKD_SPECS_W + 1) - ceiling($BLKD_SPECS_W div 5)}"
-			  y="72"><xsl:value-of select="$iPart"/></text>
-			  
-		<rect 
-              x="0"
-			  y="80"
-		      width= "{$BLKD_SPECS_W}"
-		      height="16"
-			  style="fill:{$COL_BG_LT}; stroke:none;"/>		
-			  
-		<text class="specsheader"
-              x="4"
-			  y="92">GENERATED</text>
-			  
-		<text class="specsvalue"
-              x="{($BLKD_SPECS_W  + 1) - (string-length($iTimeStamp) * 6.5)}"
-			  y="92"><xsl:value-of select="$iTimeStamp"/></text>
-			  
-			  
-	</symbol>	
-</xsl:template>
-	
-
-	
-
-</xsl:stylesheet>
-
-<!-- =========================================================================== -->
-<!--                          FUNCTION TEMPLATE                                  -->
-<!--																			 -->
-<!-- =========================================================================== -->
\ No newline at end of file
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl
deleted file mode 100644
index 7498fe3..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Peripherals.xsl
+++ /dev/null
@@ -1,1499 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-			
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:math="http://exslt.org/math"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink"
-           extension-element-prefixes="math">
-				
-<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
-	       doctype-public="-//W3C//DTD SVG 1.0//EN"
-		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-			
-<!--	
-<xsl:variable name="INF_H"   select="$BIF_H       + ceiling($BIF_H div 2)"/>				
-<xsl:variable name="INF_W"   select="($BIF_W * 2) + $BIF_GAP"/>
--->	
-
-
-<!-- ======================= DEF FUNCTIONS =================================== -->
-
-<xsl:template name="Define_FreeCmplxModules">
-	
-	<xsl:for-each select="BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@IS_PROMOTED and not(@IS_PENALIZED) and not(@STACK_INDEX))]">	
-		
-		<xsl:variable name="cmplxId_" select="position()"/>
-		
-		<xsl:if test="@MODCLASS='MEMORY_UNIT'">
-			<xsl:call-template name="Define_PeripheralMemory">
-				<xsl:with-param name="iPeriId" select="$cmplxId_"/>
-			</xsl:call-template>
-		</xsl:if>
-		
-		<xsl:if test="((@MODCLASS='MASTER_SLAVE') or (@MODCLASS = 'MONITOR'))">
-			<xsl:variable name="modInst_" select="MODULE/@INSTANCE"/>
-			<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$modInst_)]/@MODTYPE"/>
-			<xsl:call-template name="Define_Peripheral">
-				<xsl:with-param name="iModInst"  select="$modInst_"/>
-				<xsl:with-param name="iModType"  select="$modType_"/>
-			</xsl:call-template>		
-		</xsl:if>
-		
-	</xsl:for-each>		
-</xsl:template>	
-
-
-<xsl:template name="Define_PenalizedModules">
-	
-	<xsl:for-each select="BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@IS_PROMOTED and @IS_PENALIZED)]">	
-		
-		<xsl:variable name="penalId_">unkmodule_<xsl:value-of select="@BKTROW"/>_<xsl:value-of select="@MODS_X"/></xsl:variable>
-		
-<!--		
-		<xsl:message>Drawing penalized module <xsl:value-of select="$penalId_"/></xsl:message>
--->		
-		
-		<xsl:if test="@MODCLASS='MEMORY_UNIT'">
-			<xsl:call-template name="Define_PeripheralMemory">
-				<xsl:with-param name="iPeriId" select="$penalId_"/>
-			</xsl:call-template>
-		</xsl:if>
-		
-<!--		
-		<xsl:if test="((@MODCLASS='MASTER_SLAVE') or (@MODCLASS = 'MONITOR'))">
--->		
-			<xsl:variable name="modInst_" select="MODULE/@INSTANCE"/>
-			<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInst_)]/@MODTYPE"/>
-			<xsl:call-template name="Define_Peripheral">
-				<xsl:with-param name="iModInst"  select="$modInst_"/>
-				<xsl:with-param name="iModType"  select="$modType_"/>
-				<xsl:with-param name="iUnkInst"  select="$penalId_"/>
-			</xsl:call-template>		
-<!--			
-		</xsl:if>
--->		
-		
-	</xsl:for-each>		
-</xsl:template>	
-
-
-<xsl:template name="Define_IPBucket">
-			
-	<xsl:for-each select="BLKDSHAPES/IPBUCKET">
-		
-		<xsl:for-each select="MODULE">	
-			
-			<xsl:call-template name="Define_IPBucketModule">
-				<xsl:with-param name="iIPType"   select="@MODTYPE"/>
-				<xsl:with-param name="iIPName"   select="@INSTANCE"/>
-			</xsl:call-template>	
-			
-		</xsl:for-each>		
-		
-		<symbol id="ipbucket">
-			<xsl:variable name="bucket_w_"  select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
-			<xsl:variable name="bucket_h_"  select="(($BLKD_MOD_BKTLANE_H * 2) + (($BLKD_MOD_H * @MODS_H) + ($BLKD_MOD_BUCKET_G * (@MODS_H - 1))))"/>
-		
-		<rect x="0" 
-		      y="0"  
-			  rx="4"
-			  ry="4"
-		      width= "{$bucket_w_}" 
-		      height="{$bucket_h_}" 
-		      style="stroke-width:2; stroke:{$COL_BLACK}; fill:{$COL_IORING_LT}"/>
-				 
-			<xsl:variable name="bkt_mods_w_" select="@MODS_W"/>
-			
-			<xsl:for-each select="MODULE">	
-				
-				<xsl:variable name="clm_"   select="((     position() - 1)  mod $bkt_mods_w_)"/>
-				<xsl:variable name="row_"   select="floor((position() - 1)  div $bkt_mods_w_)"/>
-				
-				<xsl:variable name="bk_x_"  select="$BLKD_MOD_BKTLANE_W + ($clm_ * ($BLKD_MOD_W + $BLKD_MOD_BUCKET_G))"/>
-				<xsl:variable name="bk_y_"  select="$BLKD_MOD_BKTLANE_H + ($row_ * ($BLKD_MOD_H + $BLKD_MOD_BUCKET_G))"/>
-				
-					 
-				<use x="{$bk_x_}"   
-					 y="{$bk_y_}" 
-					 xlink:href="#ipbktmodule_{@INSTANCE}"/>		  		  
-					 
-					 
-			</xsl:for-each>		 
-					 
-	</symbol>		
-	
-</xsl:for-each>	
-</xsl:template>	
-
-
-<xsl:template name="Define_UNKBucket">
-			
-	<xsl:for-each select="BLKDSHAPES/UNKBUCKET">
-	
-		<symbol id="unkbucket">
-			<xsl:variable name="bucket_w_"  select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
-			<xsl:variable name="bucket_h_"  select="(($BLKD_MOD_BKTLANE_H * 2) + (($BLKD_MOD_H * @MODS_H) + ($BLKD_MOD_BUCKET_G * (@MODS_H - 1))))"/>
-		
-		<rect x="0" 
-		      y="0"  
-			  rx="4"
-			  ry="4"
-		      width= "{$bucket_w_}" 
-		      height="{$bucket_h_}" 
-		      style="stroke-width:2; stroke:{$COL_BLACK}; fill:{$COL_BG_UNK}"/>
-				 
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@IS_PROMOTED and @IS_PENALIZED)]">	
-			
-			<xsl:variable name="bkt_mods_w_" select="@MODS_W"/>
-				
-				<xsl:variable name="mod_row_"    select="@BKTROW"/>	
-				<xsl:variable name="row_mods_h_" select="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/BKTROW[(@INDEX = $mod_row_)]/@MODS_H"/>	
-
-<!--				
-				<xsl:message>The row module is <xsl:value-of select="@BKTROW"/></xsl:message>
-				<xsl:message>The height of the module is <xsl:value-of select="$row_mods_h_"/></xsl:message>
--->				
-				
-				
-				<xsl:variable name="bk_x_"  select="$BLKD_MOD_BKTLANE_W + (@MODS_X * ($BLKD_MOD_W + $BLKD_MOD_BUCKET_G))"/>
-				<xsl:variable name="bk_y_"  select="$BLKD_MOD_BKTLANE_H + ($row_mods_h_ * ($BLKD_MOD_H + $BLKD_MOD_BUCKET_G))"/>
-				
-				<use x="{$bk_x_}"   
-					 y="{$bk_y_}" 
-					 xlink:href="#symbol_unkmodule_{@BKTROW}_{@MODS_X}"/>		  		  
-<!--				 
--->				 
-
-			</xsl:for-each>		 
-
-			
-		</symbol>		
-		
-	</xsl:for-each>	
-</xsl:template>	
-
-		
-<xsl:template name="Define_SBSBuckets">
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET">	
-		
-		<xsl:variable name="bus_name_"   select="@BUSNAME"/>
-		<xsl:variable name="bus_std_"    select="@BUSSTD"/>
-<!--		
-		<xsl:variable name="bus_std_"    select="BUSCONNS/BUSCONN/@BUSSTD"/>
--->	
-		<xsl:variable name="bus_conn_w_" select="BUSCONNS/@BUSLANE_W"/>
-		
-		<xsl:variable name="bucket_bg_col_">
-			<xsl:call-template name="BusType2LightColor">
-				<xsl:with-param name="iBusType" select="$bus_std_"/>
-			</xsl:call-template>
-		</xsl:variable>
-		
-		<xsl:variable name="bucket_col_">
-			<xsl:call-template name="BusType2Color">
-				<xsl:with-param name="iBusType" select="$bus_std_"/>
-			</xsl:call-template>
-		</xsl:variable>
-		
-		
-		<xsl:for-each select="MODULE">	
-			
-			<xsl:sort data-type="text" select="@INSTANCE" order="ascending"/>
-		
-			<xsl:call-template name="Define_SBSBucketModule">
-				<xsl:with-param name="iBifType"  select="$bus_std_"/>
-				<xsl:with-param name="iIPType"   select="@MODTYPE"/>
-				<xsl:with-param name="iIPName"   select="@INSTANCE"/>
-			</xsl:call-template>	
-			
-		</xsl:for-each>		
-		
-		<symbol id="sbsbucket_{$bus_name_}">
-			<xsl:variable name="bucket_w_"  select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
-			<xsl:variable name="bucket_h_"  select="(($BLKD_MOD_BKTLANE_H * 2) + ((($BLKD_MOD_H + $BLKD_BIFC_H) * @MODS_H) + ($BLKD_MOD_BUCKET_G * (@MODS_H - 1))))"/>
-			
-			<rect x="0"
-			      y="0"  
-				  rx="4"
-				  ry="4"
-			      width= "{$bucket_w_}" 
-			      height="{$bucket_h_}" 
-			      style="stroke-width:2; stroke:{$bucket_col_}; fill:{$bucket_bg_col_}"/>
-				 
-			<xsl:variable name="bkt_mods_w_" select="@MODS_W"/>
-			
-			<xsl:for-each select="MODULE">	
-				
-				<xsl:sort data-type="text" select="@INSTANCE" order="ascending"/>
-				
-				<xsl:variable name="clm_"   select="((     position() - 1)  mod $bkt_mods_w_)"/>
-				<xsl:variable name="row_"   select="floor((position() - 1)  div $bkt_mods_w_)"/>
-				
-				<xsl:variable name="bk_x_"  select="$BLKD_MOD_BKTLANE_W + ($clm_ * ($BLKD_MOD_W + $BLKD_MOD_BUCKET_G))"/>
-				<xsl:variable name="bk_y_"  select="$BLKD_MOD_BKTLANE_H + ($row_ * ($BLKD_MOD_H + $BLKD_BIFC_H + $BLKD_MOD_BUCKET_G))"/>
-					 
-				<!-- Lay out the module in the bucket -->
-				 <use x="{$bk_x_}" y="{$bk_y_}"  xlink:href="#sbsbktmodule_{@INSTANCE}"/>		  
-				
-				<!-- Add its connection to the piece shared bus -->
-				<xsl:variable name="h_bus_y_" select="$bk_y_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-				
-<!--				
-				<xsl:variable name="h_bus_x_" select="$bk_x_ - ($BLKD_MOD_BUCKET_G + ceiling($BLKD_MOD_W div 2))"/>
--->	
-				<xsl:variable name="h_bus_x_">
-					<xsl:choose>
-						<xsl:when test="($clm_ = '0')">0</xsl:when>
-					
-						<xsl:when test="not($clm_ = '0')">
-							<xsl:value-of select="$bk_x_ - ($BLKD_MOD_BUCKET_G + ceiling($BLKD_MOD_W div 2))"/>
-						</xsl:when>
-					</xsl:choose>
-				</xsl:variable>
-				
-<!--				
-				<xsl:variable name="h_bus_y_" select="$bk_y_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W)"/>
-				<xsl:message>h bus x <xsl:value-of select="$h_bus_x_"/></xsl:message>
-				<xsl:message>h bus y <xsl:value-of select="$h_bus_y_"/></xsl:message>
--->	
-				<xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/>
-				<xsl:variable name="h_bus_width_"  select="($bk_x_ - $h_bus_x_ + ceiling($BLKD_MOD_W div 2))"/>	
-				
-				<rect x="{$h_bus_x_}" 
-		      		  y="{$h_bus_y_}"  
-		      		  width= "{$h_bus_width_}" 
-		      		  height="{$BLKD_P2P_BUS_W}" 
-		      		  style="fill:{$bucket_col_}"/>
-				
-			</xsl:for-each>
-			
-			<xsl:variable name="num_sbsbktmods_" select="count(MODULE)"/>
-			<xsl:variable name="num_sbsbktrows_" select="ceiling($num_sbsbktmods_ div $BLKD_BKT_MODS_PER_ROW)"/>
-			
-			<!-- If there is more than one row, connect the rows with a vertical bar -->		
-			<xsl:if test="($num_sbsbktrows_ &gt; 1)">
-				
-				<xsl:variable name="v_bus_x_"    select="$BLKD_MOD_BKTLANE_W + ($BLKD_MOD_W + $BLKD_MOD_BUCKET_G)"/>
-				
-				<xsl:variable name="bkt_top_"    select="$BLKD_MOD_BKTLANE_H + (0                      * ($BLKD_MOD_H + $BLKD_BIFC_H + $BLKD_MOD_BUCKET_G))"/>
-				<xsl:variable name="bkt_bot_"    select="$BLKD_MOD_BKTLANE_H + (($num_sbsbktrows_ - 1) * ($BLKD_MOD_H + $BLKD_BIFC_H + $BLKD_MOD_BUCKET_G))"/>
-				
-				<xsl:variable name="v_bus_y_top_" select="$bkt_top_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-				<xsl:variable name="v_bus_y_bot_" select="$bkt_bot_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/>
-				
-				<xsl:variable name="v_bus_width_"   select="$BLKD_P2P_BUS_W"/>
-				<xsl:variable name="v_bus_height_"  select="($v_bus_y_bot_ - $v_bus_y_top_)"/>
-				<rect x="0" 
-		      		  y="{$v_bus_y_top_}"  
-		      		  width= "{$v_bus_width_}" 
-		      		  height="{$v_bus_height_}" 
-		      		  style="fill:{$bucket_col_}"/>
-			</xsl:if>
-			
-		</symbol>
-		
-	</xsl:for-each>		
-	
-	
-</xsl:template>	
-	
-	
-<xsl:template name="Define_SBSBucketModule">
-	
-	<xsl:param name="iBifType"  select="'OPB'"/>
-	<xsl:param name="iIPName"   select="'_ipType_'"/>
-	<xsl:param name="iIPType"   select="'_ipName_'"/>
-	
-<!--	
-	<xsl:message>The IPType is <xsl:value-of select="$iIPType"/> </xsl:message>
--->	
-	<xsl:variable name="bif_y_">
-		<xsl:value-of select="$BLKD_MOD_LANE_H + $BLKD_BIFC_H"/>	
-	</xsl:variable>
-
-	<xsl:variable name="label_y_">
-		<xsl:value-of select="$BLKD_MOD_LANE_H + $BLKD_BIF_H + $BLKD_BIFC_H +  $BLKD_MOD_BIF_GAP_V"/>	
-	</xsl:variable>
-	
-	<xsl:variable name="modBg_Col_">
-		<xsl:choose>
-			<xsl:when test="$iIPType = 'mpmc'"><xsl:value-of select="$COL_MPMC_BG"/></xsl:when>
-			<xsl:otherwise><xsl:value-of select="$COL_BG"/></xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-    <symbol id="sbsbktmodule_{$iIPName}">
-		
-		<rect x="0"
-		      y="{$BLKD_BIFC_H}"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$BLKD_MOD_W}"
-		      height= "{$BLKD_MOD_H}"
-			  style="fill:{$modBg_Col_}; stroke:{$COL_WHITE}; stroke-width:2"/>		
-			  
-		<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$label_y_}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_MOD_LABEL_H}"
-			  style="fill:{$COL_WHITE}; stroke:none;"/>		
-		
-	  	<xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/@GROUP">
-	  	
-			<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      	  y="{$label_y_ + $BLKD_BIF_H + ceiling($BLKD_BIF_H div 3) - 2}"
-			      rx="3" 
-			      ry="3" 
-		      	  width= "{$BLKD_MOD_LABEL_W}"
-		          height="{$BLKD_BIF_H}"
-			  	  style="fill:{$COL_IORING_LT}; stroke:none;"/>		
-			  
-	
-	   	   <text class="ioplblgrp" 
-			  	  x="{ceiling($BLKD_MOD_W div 2)}"
-		          y="{$label_y_ + $BLKD_BIF_H + ceiling($BLKD_BIF_H div 3) + 12}">
-			   <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/@GROUP"/>
-	   		</text>
-	   
-	  	</xsl:if> 
-	   
-		<text class="bciptype" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-			  y="{$label_y_ + 8}">
-				<xsl:value-of select="$iIPType"/>
-		</text>
-				
-		<text class="bciplabel" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-			  y="{$label_y_ + 16}">
-				<xsl:value-of select="$iIPName"/>
-	   </text>
-	   
-		<xsl:for-each select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iIPName)]/BUSINTERFACE[not(@BUSNAME = '__NOC__')]">
-			
-			<xsl:variable name="bif_busstd_">
-				<xsl:choose>
-					<xsl:when test="@BUSSTD">
-						<xsl:value-of select="@BUSSTD"/>	
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="'TRS'"/>	
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="bif_name_">
-				<xsl:choose>
-					<xsl:when test="string-length(@NAME) &lt;= 5">
-						<xsl:value-of select="@NAME"/>	
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="substring(@NAME,0,5)"/>	
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-	
-		    <xsl:variable name="bif_x_"  select="ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_BIF_W div 2)"/>
-			
-			<!-- Draw the BIF -->
-			<use  x="{$bif_x_}"   y="{$bif_y_}"  xlink:href="#{$bif_busstd_}_Bif"/>
-			
-<!--			
- 			<symbol id="{$bus_type}_busconn_SLAVE">	
--->		 
-	 
-			<!-- Draw the BIF connection -->
-			<use  x="{$bif_x_ + ceiling($BLKD_BIF_W div 2) - ceiling($BLKD_BIFC_W div 2)}"   y="{$bif_y_ - $BLKD_BIFC_H - $BLKD_MOD_LANE_H}"  xlink:href="#{$bif_busstd_}_busconn_{@BIFRANK}"/>
-				
-			<text class="biflabel" 
-				  x="{$bif_x_ + ceiling($BLKD_BIF_W div 2)}"
-				  y="{$bif_y_ + ceiling($BLKD_BIF_H div 2) + 3}">
-					<xsl:value-of select="$bif_name_"/>
-			</text>
-			
-		</xsl:for-each>
-		
-		<xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/@INTCINDEX">
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="iIntcIdx" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptCntrl">
-				<xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - ceiling($BLKD_INTR_W div 2))"/>
-				<xsl:with-param name="iIntr_Y"   select="3 + $BLKD_BIFC_H"/>
-				<xsl:with-param name="iIntr_COL" select="$intr_col_"/>
-				<xsl:with-param name="iIntr_IDX" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/@INTCINDEX"/>
-			</xsl:call-template>	
-		</xsl:if>
-		
-		      
-		<xsl:for-each select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/INTCCNTLRTRGS/INTCTRG">
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="intcIdx" select="@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptSource">
-				<xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - $BLKD_INTR_W)"/>
-				<xsl:with-param name="iIntr_Y"   select="((position() - 1) * (ceiling($BLKD_INTR_H div 2) + 3)) + $BLKD_BIFC_H"/>
-				<xsl:with-param name="iIntr_COL" select="$intr_col_"/>
-				<xsl:with-param name="iIntr_PRI" select="@PRIORITY"/>
-				<xsl:with-param name="iIntr_IDX" select="@INTCINDEX"/>
-			</xsl:call-template>	
-			
-		</xsl:for-each>
-		
-	</symbol>			  
-	
-</xsl:template>	
-
-<xsl:template name="Define_IPBucketModule">
-	
-	<xsl:param name="iIPType"   select="'_ip_type_'"/>
-	<xsl:param name="iIPName"   select="'_ip_name_'"/>
-	
-	<xsl:variable name="bif_y_">
-		<xsl:value-of select="$BLKD_MOD_LANE_H"/>	
-	</xsl:variable>
-
-	<xsl:variable name="label_y_">
-		<xsl:value-of select="(ceiling($BLKD_MOD_H div 2) - ceiling($BLKD_MOD_LABEL_H div 2))"/>	
-	</xsl:variable>
-	
-    <symbol id="ipbktmodule_{$iIPName}">
-
-		<rect x="0"
-		      y="0"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$BLKD_MOD_W}"
-		      height= "{$BLKD_MOD_H}"
-			  style="fill:{$COL_BG}; stroke:{$COL_BLACK}; stroke-width:2"/>		
-			  
-		<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$label_y_}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_MOD_LABEL_H}"
-			  style="fill:{$COL_WHITE}; stroke:none;"/>		
-			  
-<!--
-			  y="{$label_y_ + ceiling($BLKD_MOD_LABEL_H div 2) - 4}"
-			  y="{$label_y_ + ceiling($BLKD_MOD_LABEL_H div 2) + 4}"
--->			  
-
-		<text class="bciptype" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-			  y="{$label_y_ + 8}">
-				<xsl:value-of select="$iIPType"/>
-		</text>
-				
-		<text class="bciplabel" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-			  y="{$label_y_ + 16}">
-				<xsl:value-of select="$iIPName"/>
-	   </text>
-	   
-	  	<xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iIPName)]/@GROUP">
-	  	
-		<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$label_y_ + $BLKD_BIF_H + ceiling($BLKD_BIF_H div 3) - 2}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_BIF_H}"
-			  style="fill:{$COL_IORING_LT}; stroke:none;"/>		
-			  
-	
-	   	   <text class="ioplblgrp" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-		      y="{$label_y_ + $BLKD_BIF_H + ceiling($BLKD_BIF_H div 3) + 12}">
-			   <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$iIPName]/@GROUP"/>
-	   		</text>
-	   
-	  	</xsl:if> 
-	  	
-		<xsl:for-each select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iIPName)]/INTCCNTLRTRGS/INTCTRG">
-			
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="iIntcIdx" select="@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptSource">
-				<xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - $BLKD_INTR_W)"/>
-				<xsl:with-param name="iIntr_Y"   select="((position() - 1) * (ceiling($BLKD_INTR_H div 2) + 3))"/>
-				<xsl:with-param name="iIntr_COL" select="$intr_col_"/>
-				<xsl:with-param name="iIntr_PRI" select="@PRIORITY"/>
-				<xsl:with-param name="iIntr_IDX" select="@INTCINDEX"/>
-			</xsl:call-template>	
-			
-		</xsl:for-each>
-	   
-	</symbol>			  
-	
-</xsl:template>	
-	
-	
-<xsl:template name="Define_Peripheral"> 
-<!-- 
-	when the module is oriented normal its label goes above the bifs 
-    when the module is oriented rot180, (part of a processor memory  
-	controller for example) its label goes below the bifs 
--->	
-
-	<xsl:param name="iModVori"    select="'normal'"/>
-	<xsl:param name="iModInst"    select="'_instance_'"/>
-	<xsl:param name="iModType"    select="'_modtype_'"/>
-	<xsl:param name="iUnkInst"    select="'_unknown_'"/>
-	<xsl:param name="iHorizIdx"   select="'_unknown_'"/>
-	<xsl:param name="iVertiIdx"   select="'_unknown_'"/>
-	
-<!--	
-	<xsl:message>Stack       Y <xsl:value-of select="$cstkMods_Y"/></xsl:message>
-	<xsl:message>Stack Index Y <xsl:value-of select="$cstkIndex"/></xsl:message>
--->	
-	
-	<xsl:variable name="modName_">
-		<xsl:choose>
-			<xsl:when test="$iUnkInst = '_unknown_'">
-				<xsl:value-of select="$iModInst"/>	
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="$iUnkInst"/>	
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="modSymbolName_">
-		<xsl:choose>
-			<xsl:when test="(not($iHorizIdx = '_unknown_') and not($iVertiIdx = '_unknown_'))">
-				<xsl:call-template name="_gen_Stack_SymbolName"> 
-					<xsl:with-param name="iHorizIdx"  select="$iHorizIdx"/>
-					<xsl:with-param name="iVertiIdx"  select="$iVertiIdx"/>
-				</xsl:call-template>		
-			</xsl:when>
-			<xsl:otherwise>symbol_<xsl:value-of select="$modName_"/></xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="modTypeName_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iModInst)]/@MODTYPE"/>
-	
-	
-<!--	
-	<xsl:message>The symbol type of the module is <xsl:value-of select="$modTypeName_"/></xsl:message>
-	<xsl:message>The symbol name of the module is <xsl:value-of select="$modSymbolName_"/></xsl:message>
--->	
-	
-	<xsl:variable name="bifs_h_">	
-		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iModInst)]/@BIFS_H) and not(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iModInst)]/@BIFS_H)">0</xsl:if>
-	
-		<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iModInst)]/@BIFS_H)">
-			<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iModInst)]/@BIFS_H"/>
-		</xsl:if>
-	
-		<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iModInst)]/@BIFS_H)">
-			<xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iModInst)]/@BIFS_H"/>
-		</xsl:if>
-	</xsl:variable>		
-	
-	<xsl:variable name="label_y_">
-		<xsl:choose>
-			<xsl:when test="$iModVori = 'rot180'">
-				<xsl:value-of select="($BLKD_MOD_LANE_H + (($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * $bifs_h_))"/>	
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="$BLKD_MOD_LANE_H"/>	
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="bif_dy_">
-		<xsl:choose>
-			<xsl:when test="$iModVori = 'rot180'">
-				<xsl:value-of select="$BLKD_MOD_LANE_H"/>	
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V)"/>	
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="peri_stroke_col_">
-		<xsl:choose>
-			<xsl:when test="((@MODCLASS = 'MASTER_SLAVE') or (@MODCLASS = 'MONITOR')) and BUSCONNS/BUSCONN">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="BUSCONNS/BUSCONN/@BUSSTD"/>
-				</xsl:call-template>
-			</xsl:when>
-			
-			<xsl:otherwise>
-				<xsl:value-of select="$COL_WHITE"/>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-	<xsl:variable name="modHeight_">
-		<xsl:call-template name="_calc_PeriShape_Height">
-			<xsl:with-param name="iShapeInst"  select="$modName_"/>
-		</xsl:call-template>	
-	</xsl:variable>		
-	
-    <symbol id="{$modSymbolName_}">
-		
-		<xsl:if test="$modTypeName_ = 'mpmc'">
-		<rect x="0"
-		      y="0"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$BLKD_MOD_W}"
-		      height= "{$modHeight_}"
-			  style="fill:{$COL_MPMC_BG}; stroke:{$peri_stroke_col_}; stroke-width:2"/>		
-		</xsl:if>	
-		
-		<xsl:if test="not($modTypeName_ = 'mpmc')">
-		<rect x="0"
-		      y="0"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$BLKD_MOD_W}"
-		      height= "{$modHeight_}"
-			  style="fill:{$COL_BG}; stroke:{$peri_stroke_col_}; stroke-width:2"/>		
-		</xsl:if>	
-		
-					  
-		<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$label_y_}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_MOD_LABEL_H}"
-			  style="fill:{$COL_WHITE}; stroke:none;"/>		
-			  
-<!--			  
-			  y="{$label_y_ + ceiling($BLKD_MOD_LABEL_H div 2) - 4}">
-			  y="{$label_y_ + ceiling($BLKD_MOD_LABEL_H div 2) + 4}">
--->
-			  
-		<text class="bciptype" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-			  y="{$label_y_ + 8}">
-				<xsl:value-of select="$iModType"/>
-		</text>
-				
-		<text class="bciplabel" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-			  y="{$label_y_ + 16}">
-				<xsl:value-of select="$iModInst"/>
-	   </text>
-	   
-	  	<xsl:if test="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$iModInst]/@GROUP">
-	  	
-		<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$label_y_ + $BLKD_BIF_H + ceiling($BLKD_BIF_H div 3) - 2}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_BIF_H}"
-			  style="fill:{$COL_IORING_LT}; stroke:none;"/>		
-			  
-	   	   <text class="ioplblgrp" 
-			  x="{ceiling($BLKD_MOD_W div 2)}"
-		      y="{$label_y_ + $BLKD_BIF_H + ceiling($BLKD_BIF_H div 3) + 12}">
-			   <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$iModInst]/@GROUP"/>
-	   		</text>
-	   
-	  	</xsl:if> 
-	   
-		<xsl:for-each select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$iModInst]/BUSINTERFACE[(@BIF_X and @BIF_Y and not(@BUSNAME = '__NOC__'))]">
-			
-			<xsl:variable name="bif_busstd_">
-				<xsl:choose>
-					<xsl:when test="@BUSSTD">
-						<xsl:value-of select="@BUSSTD"/>	
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="'TRS'"/>	
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="bif_y_">
-				<xsl:value-of select="(($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V)  * @BIF_Y)"/>
-			</xsl:variable>
-			
-			<xsl:variable name="bif_buscol_">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="$bif_busstd_"/>
-				</xsl:call-template>
-			</xsl:variable>
-		
-			
-			<xsl:variable name="bif_name_">
-				<xsl:choose>
-					<xsl:when test="not(@NAME)">'UNK'</xsl:when>
-					<xsl:when test="string-length(@NAME) &lt;= 5">
-						<xsl:value-of select="@NAME"/>	
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="substring(@NAME,0,5)"/>	
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-	
-			<xsl:variable name="bif_x_" >
-				<xsl:if test="not(@ORIENTED='CENTER')">
-					<xsl:value-of select="(($BLKD_BIF_W * @BIF_X) + ($BLKD_MOD_BIF_GAP_H * @BIF_X) + ($BLKD_MOD_LANE_W * 1))"/>
-				</xsl:if>
-				<xsl:if test="(@ORIENTED='CENTER')">
-					<xsl:value-of select="ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_BIF_W div 2)"/>
-				</xsl:if>
-			</xsl:variable> 
-			
-			<xsl:if test="not(@IS_INTCONN)">
-				<xsl:variable name="horz_line_y_" select="($bif_y_  + $bif_dy_ + ceiling($BLKD_BIFC_H div 2))"/>
-			
-				<xsl:variable name="horz_line_x1_">
-					<xsl:choose>
-						<xsl:when test="@BIF_X = '0'">0</xsl:when>
-						<xsl:otherwise><xsl:value-of select="($BLKD_MOD_W - $BLKD_MOD_LANE_W)"/></xsl:otherwise>
-					</xsl:choose>
-				</xsl:variable>
-			
-				<xsl:variable name="horz_line_x2_">
-					<xsl:choose>
-						<xsl:when test="@BIF_X = '0'"><xsl:value-of select="$BLKD_MOD_LANE_W"/></xsl:when>
-						<xsl:otherwise><xsl:value-of select="$BLKD_MOD_W + 1"/></xsl:otherwise>
-					</xsl:choose>
-				</xsl:variable>
-			
-			
-				<line x1="{$horz_line_x1_}" 
-			  	  	  y1="{$horz_line_y_ - 2}"
-			          x2="{$horz_line_x2_}" 
-			          y2="{$horz_line_y_ - 2}" 
-			         style="stroke:{$bif_buscol_};stroke-width:1"/>
-			  
-			</xsl:if>
-			
-			<use  x="{$bif_x_}"   y="{$bif_y_ + $bif_dy_}"  xlink:href="#{$bif_busstd_}_Bif"/>
-				
-			<text class="biflabel" 
-				  x="{$bif_x_  + ceiling($BLKD_BIF_W div 2)}"
-				  y="{$bif_y_ + $bif_dy_ + ceiling($BLKD_BIF_H div 2) + 3}">
-					<xsl:value-of select="$bif_name_"/>
-			</text>
-			
-		</xsl:for-each>
-		
-<!--		
-		<xsl:if test="@INTCINDEX">
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="intcIdx" select="@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptCntrl">
-				<xsl:with-param name="intr_col" select="$intr_col_"/>
-				<xsl:with-param name="intr_x"   select="($BLKD_MOD_W - ceiling($BLKD_INTR_W div 2))"/>
-				<xsl:with-param name="intr_y"   select="3"/>
-				<xsl:with-param name="intr_idx" select="@INTCINDEX"/>
-			</xsl:call-template>	
-		</xsl:if>
--->		
-		<xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iModInst)]/@INTCINDEX">
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="iIntcIdx" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iModInst)]/@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptCntrl">
-				<xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - ceiling($BLKD_INTR_W div 2))"/>
-				<xsl:with-param name="iIntr_Y"   select="3"/>
-				<xsl:with-param name="iIntr_COL" select="$intr_col_"/>
-				<xsl:with-param name="iIntr_IDX" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iModInst)]/@INTCINDEX"/>
-			</xsl:call-template>	
-		</xsl:if>
-		
-		
-		<xsl:for-each select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iModInst)]/INTCCNTLRTRGS/INTCTRG">
-			
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="iIntcIdx" select="@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptSource">
-				<xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - $BLKD_INTR_W)"/>
-				<xsl:with-param name="iIntr_Y"   select="((position() - 1) * (ceiling($BLKD_INTR_H div 2) + 3))"/>
-				<xsl:with-param name="iIntr_COL" select="$intr_col_"/>
-				<xsl:with-param name="iIntr_PRI" select="@PRIORITY"/>
-				<xsl:with-param name="iIntr_IDX" select="@INTCINDEX"/>
-			</xsl:call-template>	
-			
-		</xsl:for-each>
-		
-	</symbol>			  
-</xsl:template>	
-	
-<xsl:template name="Define_MemoryUnit"> 
-	<xsl:param name="iShapeId"  select="1000"/>
-	
-	<xsl:variable name="horiz_idx_"   select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/@STACK_HORIZ_INDEX"/>
-	<xsl:variable name="is_multistk_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/@IS_MULTISTK"/>
-	
-	<xsl:choose>
-		<xsl:when test="(($is_multistk_ = 'TRUE') or (/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@STACK_HORIZ_INDEX = $horiz_idx_)]))">
-			<xsl:call-template name="Define_Processor_MemoryUnit"> 
-				<xsl:with-param name="iShapeId"  select="$iShapeId"/>
-			</xsl:call-template>
-		</xsl:when>
-		
-		<xsl:otherwise>
-			<xsl:call-template name="Define_StandAlone_MemoryUnit"> 
-				<xsl:with-param name="iShapeId"  select="$iShapeId"/>
-			</xsl:call-template>
-		</xsl:otherwise>
-		
-	</xsl:choose>
-	
-</xsl:template>	
-	
-	
-<xsl:template name="Define_Processor_MemoryUnit"> 
-	<xsl:param name="iShapeId"  select="1000"/>
-	
-<!--	
-	<xsl:param name="cstkIndex"    select="'_processor_'"/>
--->	
-	
-	<xsl:variable name="mods_h_"  select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/@MODS_H"/>
-	<xsl:variable name="mods_w_"  select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/@MODS_W"/>
-	<xsl:variable name="memW_" select="($BLKD_MOD_W * $mods_w_)"/>
-	<xsl:variable name="memH_" select="($BLKD_MOD_H * $mods_h_)"/>
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]">
-		
-		<!-- first define its symbols as individual modules -->	
-		<xsl:for-each select="MODULE[@MODCLASS='MEMORY']">
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$modInst_)]/@MODTYPE"/>
-		
-			<xsl:call-template name="Define_Peripheral"> 
-				<xsl:with-param name="iModVori"  select="'normal'"/>
-				<xsl:with-param name="iModInst"  select="$modInst_"/>
-				<xsl:with-param name="iModType"  select="$modType_"/>
-			</xsl:call-template>		
-		</xsl:for-each>	
-	
-		<xsl:for-each select="MODULE[@MODCLASS='MEMORY_CNTLR']">
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$modInst_)]/@MODTYPE"/>
-		
-			<xsl:call-template name="Define_Peripheral"> 
-				<xsl:with-param name="iModVori"  select="'rot180'"/>
-				<xsl:with-param name="iModInst"  select="$modInst_"/>
-				<xsl:with-param name="iModType"  select="$modType_"/>
-			</xsl:call-template>		
-		</xsl:for-each>	
-	</xsl:for-each>
-	
-<!--	
--->	
-	
-	<xsl:variable name="symbol_name_">
-		<xsl:call-template name="_gen_Stack_SymbolName"> 
-			<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
-			<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>The mp stack name is <xsl:value-of select="$mp_stack_name_"/></xsl:message>
--->	
-		
-    <symbol id="{$symbol_name_}">
-
-		<rect x="0"
-		      y="0"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$memW_}"
-		      height= "{$memH_}"
-			  style="fill:{$COL_BG}; stroke:{$COL_WHITE}; stroke-width:2"/>		
-			  
-		<!-- Draw the memory block-->		  
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY')]">
-			
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 <use  x="{ceiling($memW_ div 2) - ($BLKD_MOD_W div 2)}"  
-				   y="0"  
-				   xlink:href="#symbol_{$modInst_}"/> 
-		</xsl:for-each>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[((@MODCLASS='MEMORY_CNTLR') and (@ORIENTED = 'WEST'))]">
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 <use  x="0"  
-				   y="{$BLKD_MOD_H}"  
-				   xlink:href="#symbol_{$modInst_}"/> 
-		</xsl:for-each>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[((@MODCLASS='MEMORY_CNTLR') and (@ORIENTED = 'EAST'))]">
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 <use  x="{$BLKD_MOD_W}"  
-				   y="{$BLKD_MOD_H}"  
-				   xlink:href="#symbol_{$modInst_}"/> 
-		</xsl:for-each>
-		
-		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[((@MODCLASS='MEMORY_CNTLR') and (@ORIENTED = 'CENTER'))]">	
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 <use  x="{ceiling($memW_ div 2) - ($BLKD_MOD_W div 2)}"  
-				   y="{$BLKD_MOD_H}"  
-				   xlink:href="#symbol_{$modInst_}"/> 
-		</xsl:for-each>
-		
-	</symbol>			  
-	
-</xsl:template>	
-
-	
-<xsl:template name="Define_StandAlone_MemoryUnit"> 
-	
-	<xsl:param name="iShapeId" select="0"/>
-	
-	<xsl:variable name="mods_h_"  select="@MODS_H"/>
-	<xsl:variable name="mods_w_"  select="@MODS_W"/>
-	
-	<xsl:variable name="memc_name_" select="MODULE[not(@MODCLASS = 'MEMORY')]/@INSTANCE"/>
-	<xsl:variable name="memc_busstd_" select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE/BUSCONNLANE[(BUSCONN[(@INSTANCE = $memc_name_)])]/@BUSSTD"/>
-	
-<!--	
-	<xsl:variable name="memc_busstd_" select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE/BUSCONNLANE/@BUSSTD"/>
-	<xsl:variable name="memc_busstd_" select="/EDKSYSTEM/BCLANESPACES/BCLANESPACE/BUSCONNLANE[(BUSCONN[(@INSTANCE)])]/@BUSSTD"/>
-	<xsl:message>Memory cntlr name <xsl:value-of select="$memc_name_"/></xsl:message>
-	<xsl:message>Memory cntlr name <xsl:value-of select="$memc_name_"/></xsl:message>
-	<xsl:message>Memory cntlr busstd <xsl:value-of select="$memc_busstd_"/></xsl:message>
--->	
-	
-	<xsl:variable name="peri_col_">
-		
-		<xsl:choose>
-			<xsl:when test="$mods_w_ &gt; 1">
-				<xsl:value-of select="$COL_BG"/>
-			</xsl:when>
-			
-			<xsl:when test="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE/BUSCONNLANE[(BUSCONN[(@INSTANCE = $memc_name_)])]/@BUSSTD">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="$memc_busstd_"/>
-				</xsl:call-template>
-			</xsl:when>
-		
-			<xsl:otherwise>
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="'TRS'"/>
-				</xsl:call-template>
-			</xsl:otherwise>
-		</xsl:choose>		
-		
-	</xsl:variable>  
-	
-	<!-- first define its symbols as individual modules -->	
-	<xsl:for-each select="MODULE[(@MODCLASS = 'MEMORY')]">
-		<xsl:variable name="modInst_" select="@INSTANCE"/>
-		<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$modInst_]/@MODTYPE"/>
-		
-		<xsl:call-template name="Define_Peripheral"> 
-			<xsl:with-param name="iModVori"  select="'rot180'"/>
-			<xsl:with-param name="iModInst"  select="$modInst_"/>
-			<xsl:with-param name="iModType"  select="$modType_"/>
-		</xsl:call-template>		
-	</xsl:for-each>	
-	
-	<xsl:for-each select="MODULE[not(@MODCLASS='MEMORY')]">
-		<xsl:variable name="modInst_" select="@INSTANCE"/>
-		<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$modInst_]/@MODTYPE"/>
-		
-<!--		
-		<xsl:message>Memory cntlr inst <xsl:value-of select="$modInst_"/></xsl:message>
--->		
-		<xsl:call-template name="Define_Peripheral"> 
-			<xsl:with-param name="iModVori"  select="'normal'"/>
-			<xsl:with-param name="iModInst"  select="$modInst_"/>
-			<xsl:with-param name="iModType"  select="$modType_"/>
-		</xsl:call-template>		
-	</xsl:for-each>	
-	
-	<xsl:variable name="memW_" select="($BLKD_MOD_W * $mods_w_)"/>
-	<xsl:variable name="memH_" select="($BLKD_MOD_H * $mods_h_)"/>
-	
-	<xsl:variable name="symbol_name_">
-		<xsl:call-template name="_gen_Stack_SymbolName"> 
-			<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
-			<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-		
-    <symbol id="{$symbol_name_}">
-		
-		<rect x="0"
-		      y="0"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$memW_ + 4}"
-		      height= "{$memH_ + 4}"
-			  style="fill:{$peri_col_}; stroke:{$peri_col_}; stroke-width:2"/>		
-			  
-
-		<!-- Draw the memory block-->		  
-		<xsl:choose>
-			
-		<xsl:when test="$mods_w_ = 1">
-			
-			<xsl:for-each select="MODULE[(@MODCLASS='MEMORY')]">	
-				<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 	<use  x="2"  
-				      y="{$BLKD_MOD_H + 2}"  
-				      xlink:href="#symbol_{$modInst_}"/> 
-			</xsl:for-each>
-		
-		
-		<!-- Draw the memory controllers-->		  
-			<xsl:for-each select="MODULE[not(@MODCLASS='MEMORY')]">	
-				<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 	<use  x="2"  
-				   	  y="0"  
-				      xlink:href="#symbol_{$modInst_}"/> 
-			</xsl:for-each>
-		</xsl:when>	
-		
-		<xsl:when test="$mods_w_ &gt; 1">
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY')]">
-			
-				<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-				 <use  x="{ceiling($memW_ div 2) - ($BLKD_MOD_W div 2)}"  
-				   	   y="{$BLKD_MOD_H + 2}"  
-				   	   xlink:href="#symbol_{$modInst_}"/> 
-			</xsl:for-each>
-		
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(not(@MODCLASS='MEMORY') and (@ORIENTED = 'WEST'))]">
-				<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 	<use  x="0"  
-				      y="0"  
-				      xlink:href="#symbol_{$modInst_}"/> 
-			</xsl:for-each>
-		
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(not(@MODCLASS='MEMORY') and (@ORIENTED = 'EAST'))]">
-				<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 	<use  x="{$BLKD_MOD_W}"  
-				      y="0"  
-				      xlink:href="#symbol_{$modInst_}"/> 
-			</xsl:for-each>
-		
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(not(@MODCLASS='MEMORY') and (@ORIENTED = 'CENTER'))]">	
-				<xsl:variable name="modInst_" select="@INSTANCE"/>
-			
-			 	<use  x="{ceiling($memW_ div 2) - ($BLKD_MOD_W div 2)}"  
-				      y="0"  
-				   	  xlink:href="#symbol_{$modInst_}"/> 
-		    </xsl:for-each>
-			
-		</xsl:when>	
-		</xsl:choose>
-			  
-	</symbol>			  
-	
-</xsl:template>	
-	
-	
-<xsl:template name="Define_StandAlone_MPMC"> 
-	
-<!--	
-	<xsl:param name="drawarea_w"  select="500"/>
-	<xsl:param name="drawarea_h"  select="500"/>
--->	
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE">
-		
-		<xsl:variable name="mpmcInst_" select="@INSTANCE"/>
-		<xsl:variable name="mpmcType_" select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$mpmcInst_]/@MODTYPE"/>
-<!--		
-		<xsl:message>Drawing instance <xsl:value-of select="$mpmcInst_"/></xsl:message>
--->		
-		
-		<xsl:variable name="mpmc_w_"  select="($G_total_drawarea_W - ($BLKD_INNER_GAP * 2))"/>
-		<xsl:variable name="label_y_"  select="ceiling($BLKD_MPMC_MOD_H div 2) - ceiling($BLKD_MOD_LABEL_H div 2)"/>
-		
-		<symbol id="mpmcmodule_{$mpmcInst_}">
-			<rect x="0"
-		          y="0"
-		          width = "{$mpmc_w_}"
-		          height= "{$BLKD_MPMC_MOD_H}"
-			      style="fill:{$COL_MPMC_BG}; stroke:{$COL_BLACK}; stroke-width:2"/>
-			  
-		    <rect x="{$BLKD_MOD_LANE_H}"
-		          y="{$label_y_}"
-			      rx="3"
-			      ry="3"
-		          width= "{$BLKD_MOD_LABEL_W}"
-		          height="{$BLKD_MOD_LABEL_H}"
-			      style="fill:{$COL_WHITE}; stroke:none;"/>
-			
-			<text class="bciptype" 
-				  x="{ceiling(($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_W) div 2)}"
-				  y="{$label_y_ + 8}">
-					<xsl:value-of select="$mpmcType_"/>
-			</text>
-				
-			<text class="bciplabel" 
-				  x="{ceiling(($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_W) div 2)}"
-				  y="{$label_y_ + 16}">
-					<xsl:value-of select="$mpmcInst_"/>
-		   </text>
-			
-			<text class="mpmctitle" 
-				  x="{ceiling($mpmc_w_ div 2)}"
-				  y="{$label_y_ + 16}">MPMC Module Interface</text>
-<!--			
--->	
-	   
-		</symbol>	
-		
-	</xsl:for-each>
-	
-</xsl:template>	
-	
-
-<!-- ======================= END DEF FUNCTIONS ============================ -->
-
-<!-- ======================= UTILITY FUNCTIONS ============================ -->
-
-<xsl:template name="_draw_InterruptSource">
-
-	<xsl:param name="iIntr_X"   select="0"/>
-	<xsl:param name="iIntr_Y"   select="0"/>
-	<xsl:param name="iIntr_PRI" select="0"/>
-	<xsl:param name="iIntr_IDX" select="0"/>
-	<xsl:param name="iIntr_COL" select="$COL_BLKD_INTR_0"/>
-	
-		<rect  
-			x="{$iIntr_X}"
-			y="{$iIntr_Y}"
-			rx="3"
-			ry="3"
-			width= "{$BLKD_INTR_W}" 
-			height="{ceiling($BLKD_INTR_H div 2)}" style="fill:{$iIntr_COL}; stroke:none; stroke-width:1"/> 
-			
-		<line x1="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 
-			  y1="{$iIntr_Y}"
-			  x2="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{$iIntr_Y + ceiling($BLKD_INTR_H div 2)}" 
-			  style="stroke:{$COL_BLACK};stroke-width:1"/>
-			  
-		<xsl:variable name="txt_ofs_">
-			<xsl:if test="($iIntr_PRI &gt; 9)">4.5</xsl:if>
-			<xsl:if test="not($iIntr_PRI &gt; 9)">0</xsl:if>
-		</xsl:variable>	  
-		
-		<text class="intrsymbol" 
-			  x="{$iIntr_X + 2 - $txt_ofs_}"
-			  y="{$iIntr_Y + 8}">
-				<xsl:value-of select="$iIntr_PRI"/>
-		</text>
-			
-		<text class="intrsymbol" 
-			  x="{$iIntr_X + 2 + ceiling($BLKD_INTR_W div 2)}"
-			  y="{$iIntr_Y + 8}">
-				<xsl:value-of select="$iIntr_IDX"/>
-		</text>
-			
-</xsl:template>
-
-<xsl:template name="_draw_InterruptCntrl">
-
-	<xsl:param name="iIntr_X"   select="0"/>
-	<xsl:param name="iIntr_Y"   select="0"/>
-	<xsl:param name="iIntr_IDX" select="0"/>
-	<xsl:param name="iIntr_COL" select="$COL_BLKD_INTR_0"/>
-	
-		<rect  
-			x="{$iIntr_X}"
-			y="{$iIntr_Y}"
-			rx="3"
-			ry="3"
-			width= "{ceiling($BLKD_INTR_W div 2)}" 
-			height="{$BLKD_INTR_H}" style="fill:{$iIntr_COL}; stroke:none; stroke-width:1"/> 
-			
-		<line x1="{$iIntr_X}" 
-			  y1="{$iIntr_Y + ceiling($BLKD_INTR_H div 4)}"
-			  x2="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{$iIntr_Y + ceiling($BLKD_INTR_H div 4)}" 
-			  style="stroke:{$COL_BLACK};stroke-width:2"/>
-			  
-		<text class="intrsymbol" 
-			  x="{$iIntr_X + 2}"
-			  y="{$iIntr_Y + 8 + ceiling($BLKD_INTR_H div 2)}">
-				<xsl:value-of select="$iIntr_IDX"/>
-		</text>
-			
-</xsl:template>
-
-
-<xsl:template name="_draw_InterruptedProc">
-
-	<xsl:param name="iIntr_X"   select="0"/>
-	<xsl:param name="iIntr_Y"   select="0"/>
-	<xsl:param name="iIntr_IDX" select="0"/>
-	<xsl:param name="iIntr_COL" select="$COL_BLKD_INTR_0"/>
-	
-		<rect  
-			x="{$iIntr_X}"
-			y="{$iIntr_Y}"
-			rx="3"
-			ry="3"
-			width= "{ceiling($BLKD_INTR_W div 2)}" 
-			height="{$BLKD_INTR_H}" style="fill:{$iIntr_COL}; stroke:none; stroke-width:1"/> 
-			
-		<line x1="{$iIntr_X}" 
-			  y1="{$iIntr_Y + ceiling($BLKD_INTR_H div 4) - 2}"
-			  x2="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{$iIntr_Y + ceiling($BLKD_INTR_H div 4) - 2}" 
-			  style="stroke:{$COL_BLACK};stroke-width:1"/>
-			  
-		<line x1="{$iIntr_X}" 
-			  y1="{$iIntr_Y + ceiling($BLKD_INTR_H div 4) + 2}"
-			  x2="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 
-			  y2="{$iIntr_Y + ceiling($BLKD_INTR_H div 4) + 2}" 
-			  style="stroke:{$COL_BLACK};stroke-width:1"/>
-			  
-		<text class="intrsymbol" 
-			  x="{$iIntr_X + 2}"
-			  y="{$iIntr_Y + 8 + ceiling($BLKD_INTR_H div 2)}">
-				<xsl:value-of select="$iIntr_IDX"/>
-		</text>
-			
-</xsl:template>
-
-<xsl:template name="_calc_CStackShapesAbv_Height">
-	<xsl:param name="iCStackIndex"  select="100"/>
-	<xsl:param name="iCSactkMods_Y" select="1000"/>
-	
-<!--	
-	<xsl:message>Stack Index <xsl:value-of select="$cstackIndex"/></xsl:message>
-	
-	<xsl:message>Stack Y <xsl:value-of select="$cstackModY"/></xsl:message>
--->	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@CSTACK_INDEX = $iCStackIndex)])">0</xsl:if>
-	
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@CSTACK_INDEX = $iCStackIndex)]">
-	
-		<xsl:variable name="shapesAbv_Heights_">
-			<CSTACK_MOD HEIGHT="0"/>
-			
-			<!-- Store the heights of all the peripherals above this one heights in a variable -->
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@CSTACK_INDEX = $iCStackIndex) and (@CSTACK_MODS_Y &lt; $iCStackMods_Y))]">
-				
-				<xsl:variable name="shapeHeight_">
-					
-					<xsl:choose>
-						
-						<xsl:when test="@MODCLASS = 'PERIPHERAL'">
-							<xsl:call-template name="_calc_PeriShape_Height">	
-								<xsl:with-param name="iShapeInst" select="MODULE/@INSTANCE"/>
-							</xsl:call-template>	
-						</xsl:when>
-						
-						<xsl:when test="@MODCLASS = 'MEMORY_UNIT'">
-							<xsl:call-template name="_calc_MemoryUnit_Height">	
-								<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
-							</xsl:call-template>	
-						</xsl:when>
-						
-						<xsl:otherwise>0</xsl:otherwise>
-					</xsl:choose>
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>Calculated height of cstack shape of type <xsl:value-of select="@MODCLASS"/> as <xsl:value-of select="$shapeHeight_"/></xsl:message>
--->			
-				
-				<CSTACK_MOD HEIGHT="{$shapeHeight_ + $BLKD_BIF_H}"/>
-			</xsl:for-each>
-		</xsl:variable>
-		
-<!--		
-		<xsl:message>Calculated height of cstack as <xsl:value-of select="sum(exsl:node-set($shapesAbv_Heights_)/CSTACK_MOD/@HEIGHT)"/></xsl:message>
--->		
-		
-		<xsl:value-of select="sum(exsl:node-set($shapesAbv_Heights_)/CSTACK_MOD/@HEIGHT)"/>
-	</xsl:if>
-	
-</xsl:template>
-
-
-<xsl:template name="_calc_PeriShape_Height">
-	<xsl:param name="iShapeInst"  select="'_shape_'"/>
-	
-<!--	
-	<xsl:message>Calculating height of <xsl:value-of select="$shapeInst"/></xsl:message>
--->	
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H) and not(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H)">0</xsl:if>
-	
-	<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H)">
-		<xsl:variable name="bifs_h_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H"/>
-		
-		<xsl:value-of select="($BLKD_MOD_LABEL_H + ($BLKD_BIF_H * $bifs_h_) + ($BLKD_MOD_BIF_GAP_V * $bifs_h_) + ($BLKD_MOD_LANE_H * 2))"/>
-	</xsl:if>
-	
-	<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H)">
-		<xsl:variable name="bifs_h_" select="/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H"/>
-		
-		<xsl:value-of select="($BLKD_MOD_LABEL_H + ($BLKD_BIF_H * $bifs_h_) + ($BLKD_MOD_BIF_GAP_V * $bifs_h_) + ($BLKD_MOD_LANE_H * 2))"/>
-	</xsl:if>
-	
-	<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H)">
-		<xsl:variable name="bifs_h_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H"/>
-		
-		<xsl:value-of select="($BLKD_MOD_LABEL_H + ($BLKD_BIF_H * $bifs_h_) + ($BLKD_MOD_BIF_GAP_V * $bifs_h_) + ($BLKD_MOD_LANE_H * 2))"/>
-	</xsl:if>
-	
-</xsl:template>
-	
-<xsl:template name="_calc_Shape_Height">
-	<xsl:param name="iShapeId"  select="_shape_"/>
-	
-<!--	
-	<xsl:message>Calculating height of <xsl:value-of select="$shapeId"/></xsl:message>
--->	
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)])">0</xsl:if>
-	
-	<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE/@BIFS_H)">
-		<xsl:variable name="bifs_h_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE/@BIFS_H"/>
-		
-		<xsl:value-of select="($BLKD_MOD_LABEL_H + ($BIF_H * $bifs_h_) + ($BLKD_MOD_BIF_GAP_V * $bifs_h_) + ($BLKD_MOD_LANE_H * 2))"/>
-	</xsl:if>
-	
-</xsl:template>
-
-
-<xsl:template name="_calc_MemoryUnit_Height">
-	<xsl:param name="iShapeId"  select="1000"/>
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)])">0</xsl:if>
-	
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]">
-	
-		<!-- Store the memory controller heights in a variable -->	
-		<xsl:variable name="memC_heights_">	
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY_CNTLR')])">
-				<MEM_CNTLR INSTANCE="{@INSTANCE}" HEIGHT="0"/>
-			</xsl:if>
-			
-			<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY_CNTLR')])">
-				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY_CNTLR')]">
-					<xsl:variable name="memC_height_">
-						<xsl:call-template name="_calc_PeriShape_Height">	
-							<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-						</xsl:call-template>
-					</xsl:variable>
-					<MEM_CNTLR INSTANCE="{@INSTANCE}" HEIGHT="{$memC_height_}"/>
-				</xsl:for-each>
-			</xsl:if>
-		</xsl:variable>
-		
-		<!-- Store the bram heights in a variable -->	
-		<xsl:variable name="bram_heights_">	
-			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[not(@MODCLASS = 'MEMORY_CNTLR')])">
-				<BRAM INSTANCE="{@INSTANCE}" HEIGHT="0"/>
-			</xsl:if>
-			<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[not(@MODCLASS = 'MEMORY_CNTLR')]">
-				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[not(@MODCLASS = 'MEMORY_CNTLR')]">
-					<xsl:variable name="bram_height_">
-						<xsl:call-template name="_calc_PeriShape_Height">	
-							<xsl:with-param name="iShapeInst" select="@INSTANCE"/>
-						</xsl:call-template>
-					</xsl:variable>
-					<BRAM INSTANCE="{@INSTANCE}" HEIGHT="{$bram_height_}"/>
-				</xsl:for-each>
-			</xsl:if>
-		</xsl:variable>
-		
-		<!-- Select the maximum of them -->
-		<xsl:variable name="max_bram_height_" select="math:max(exsl:node-set($bram_heights_)/BRAM/@HEIGHT)"/>
-		<xsl:variable name="max_memC_height_" select="math:max(exsl:node-set($memC_heights_)/MEM_CNTLR/@HEIGHT)"/>
-		
-		<xsl:value-of select="$max_bram_height_ + $max_memC_height_"/>
-	</xsl:if>
-
-</xsl:template>
-
-
-<xsl:template name="_calc_SbsBucket_Height">
-	<xsl:param name="iBucketId"  select="100"/>
-	
-<!--	
-	<xsl:message>Looking of height of bucket <xsl:value-of select="$bucketId"/></xsl:message>
--->	
-	<xsl:variable name="bkt_gap_" select="$BLKD_BIF_H"/>
-	
-	<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $iBucketId)])">0</xsl:if>
-	
-	<xsl:if test="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $iBucketId)]">
-		<xsl:variable name="mods_h_" select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $iBucketId)]/@MODS_H"/>
-		
-		<xsl:value-of select="((($BLKD_MOD_BKTLANE_H * 2) + ((($BLKD_MOD_H + $BLKD_BIFC_H) * $mods_h_) + ($BLKD_MOD_BUCKET_G * ($mods_h_ - 1)))) + $bkt_gap_)"/>
-	</xsl:if>
-</xsl:template>
-	
-<!--
-	===============================================
-	
-		Symbol Naming Functions
-	
-	===============================================
--->		
-	
-	
-<xsl:template name="_gen_Proc_StackName">
-<xsl:param name="iProcInst"  select="'_unknown_'"/>
-symbol_STACK_<xsl:value-of select="$iProcInst"/>
-</xsl:template>
-	
-<xsl:template name="_gen_Proc_GroupName">
-<xsl:param name="iProcInst"  select="'_unknown_'"/>
-symbol_GROUP_<xsl:value-of select="$iProcInst"/>
-</xsl:template>
-	
-	
-<xsl:template name="_gen_Space_Name"><xsl:param name="iStackToEast"    select="'NONE'"/><xsl:param name="iStackToWest"  select="'NONE'"/>symbol_SPACE_WEST_<xsl:value-of select="$iStackToWest"/>_EAST_<xsl:value-of select="$iStackToEast"/></xsl:template>
-<xsl:template name="_gen_Stack_Name"><xsl:param name="iHorizIdx"       select="'_unknown_'"/>symbol_STACK_<xsl:value-of select="$iHorizIdx"/></xsl:template>
-<xsl:template name="_gen_Stack_SymbolName"><xsl:param name="iHorizIdx" select="'_unknown_'"/><xsl:param name="iVertiIdx" select="'_unknown_'"/>symbol_STACK_<xsl:value-of select="$iHorizIdx"/>_SHAPE_<xsl:value-of select="$iVertiIdx"/></xsl:template>
-	
-
-<!-- ======================= END UTILITY FUNCTIONS  ======================= -->
-</xsl:stylesheet>
-
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl
deleted file mode 100644
index 9e35694..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Processors.xsl
+++ /dev/null
@@ -1,390 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:svg="http://www.w3.org/2000/svg"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:math="http://exslt.org/math"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink"
-           extension-element-prefixes="math">
-           
-<xsl:output method="xml" 
-			version="1.0" 
-			encoding="UTF-8" 
-			indent="yes"
-	        doctype-public="-//W3C//DTD SVG 1.0//EN"
-		    doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-			
-
-<!-- ======================= DEF BLOCK =================================== -->
-<xsl:template name="Define_AllStacks"> 
-	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST &lt; /EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)]">
-			
-		<xsl:call-template name="Define_Stack">
-			<xsl:with-param name="iStackIdx"  select="@EAST"/>
-		</xsl:call-template>
-		
-	</xsl:for-each>	
-</xsl:template>
-	
-	
-<xsl:template name="Define_Stack"> 
-	<xsl:param name="iStackIdx"  select="100"/>
-	
-	<!-- Define the stack's peripheral shapes-->	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and not(@MODCLASS = 'MEMORY_UNIT'))]"> 
-			
-		<xsl:for-each select="MODULE">
-			<xsl:variable name="modInst_" select="@INSTANCE"/>
-			<xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$modInst_)]/@MODTYPE"/>
-			<xsl:call-template name="Define_Peripheral"> 
-				<xsl:with-param name="iModInst"    select="$modInst_"/>
-				<xsl:with-param name="iModType"    select="$modType_"/>
-				<xsl:with-param name="iShapeId"    select="../@SHAPE_ID"/>
-				<xsl:with-param name="iHorizIdx"   select="../@STACK_HORIZ_INDEX"/>
-				<xsl:with-param name="iVertiIdx"   select="../@SHAPE_VERTI_INDEX"/>
-			</xsl:call-template>		
-		</xsl:for-each>	
-		
-	</xsl:for-each>
-	
-	<!-- Define the stack's memory shapes-->	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@MODCLASS='MEMORY_UNIT'))]">
-		<xsl:call-template name="Define_MemoryUnit"> 
-			<xsl:with-param name="iShapeId"  select="@SHAPE_ID"/>
-		</xsl:call-template>
-	</xsl:for-each>
-	
-	
-	<!-- Define the stack's processors-->	
-	<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[@INSTANCE and @BIFS_W and @BIFS_H and (@STACK_HORIZ_INDEX = $iStackIdx)]">	
-		<xsl:call-template name="Define_Processor"/>		
-	</xsl:for-each>	
-		
-	<!-- Make an inventory of all the things in this processor's stack -->
-	<xsl:variable name="pstackW_">
-		<xsl:call-template name="_calc_Stack_Width"> 
-			<xsl:with-param name="iStackIdx"  select="$iStackIdx"/>
-		</xsl:call-template>		
-	</xsl:variable>
-		
-	<xsl:variable name="pstackH_">
-		<xsl:call-template name="_calc_Stack_Height"> 
-			<xsl:with-param name="iStackIdx"  select="$iStackIdx"/>
-		</xsl:call-template>		
-	</xsl:variable>
-	
-	<xsl:variable name="procW_"    select="$BLKD_MOD_W"/>
-	<xsl:variable name="procX_"    select="(ceiling($pstackW_ div 2) - ceiling($procW_ div 2))"/>
-	
-	
-	<xsl:variable name="sbsGap_"   select="($BLKD_PROC2SBS_GAP + $G_total_SharedBus_H)"/>
-
-	<xsl:variable name="stack_name_">
-		<xsl:call-template name="_gen_Stack_Name"> 
-			<xsl:with-param name="iHorizIdx" select="$iStackIdx"/>
-		</xsl:call-template>		
-	</xsl:variable>	
-	
-<!--	
-		<xsl:message>Horiz index<xsl:value-of select="$stackIdx"/></xsl:message>
-		<xsl:message>Drawing stack <xsl:value-of select="$stack_name_"/></xsl:message>
--->	
-		
-		<!-- Now use all this stuff to draw the stack-->	
-		<symbol id="{$stack_name_}">
-			<rect x="0"
-				  y="0"
-			      rx="6" 
-			      ry="6" 
-		          width = "{$pstackW_}"
-		          height= "{$pstackH_}"
-			      style="fill:{$COL_BG}; stroke:none;"/>
-			
-		
-			<!-- First draw the the processor's peripherals-->	
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-				<xsl:sort select="@STACK_VERTI_INDEX" data-type="number"/>
-				
-				
-				<xsl:variable name="shapeW_"    select="(@MODS_W * $BLKD_MOD_W)"/>
-				<xsl:variable name="shapeX_"    select="(ceiling($pstackW_ div 2) - ceiling($shapeW_ div 2))"/>
-				
-				<xsl:variable name="stack_SymName_">
-					<xsl:call-template name="_gen_Stack_SymbolName"> 
-						<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
-						<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
-					</xsl:call-template>		
-				</xsl:variable>
-				
-<!--				
-				<xsl:message>Drawing stack peripheral <xsl:value-of select="$stack_SymName_"/></xsl:message>
--->				
-				<xsl:variable name="shapeY_">
-					<xsl:call-template name="_calc_Stack_Shape_Y">
-						<xsl:with-param name="iHorizIdx"  select="@STACK_HORIZ_INDEX"/>
-						<xsl:with-param name="iVertiIdx"  select="@SHAPE_VERTI_INDEX"/>
-					</xsl:call-template>
-				</xsl:variable>  
-				
-			 	<use   x="{$shapeX_}"  y="{$shapeY_}"  xlink:href="#{$stack_SymName_}"/> 
-			
-			</xsl:for-each>
-			
-			
-			<!-- Then draw the slave buckets for the shared busses that this processor is master to -->	
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)]">	
-				<xsl:sort select="@SHAPE_VERTI_INDEX" data-type="number"/>
-			
-				<xsl:variable name="bucketW_"   select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
-				<xsl:variable name="bucketX_"   select="(ceiling($pstackW_ div 2) - ceiling($bucketW_ div 2))"/>
-				
-				<xsl:variable name="bucketY_">
-					<xsl:call-template name="_calc_Stack_Shape_Y">
-						<xsl:with-param name="iHorizIdx"  select="@STACK_HORIZ_INDEX"/>
-						<xsl:with-param name="iVertiIdx"  select="@SHAPE_VERTI_INDEX"/>
-					</xsl:call-template>
-				</xsl:variable>  
-				
-<!--				
-				<xsl:message>SBS Bucket Y <xsl:value-of select="$bucketY_"/></xsl:message>
--->				
-				
-				 <use  x="{$bucketX_}"  y="{$bucketY_}"  xlink:href="#sbsbucket_{@BUSNAME}"/> 
-				 
-				 <text class="ipclass"
-					   x="{$bucketX_}" 
-					   y="{$bucketY_ - 4}">SLAVES OF <xsl:value-of select="@BUSNAME"/></text>	
-			</xsl:for-each>
-			
-			<!-- Then draw the the processor itself -->	
-			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@STACK_HORIZ_INDEX = $iStackIdx)]">
-				<xsl:sort select="@SHAPE_VERTI_INDEX" data-type="number"/>
-				
-				<xsl:variable name="procY_">
-					<xsl:call-template name="_calc_Stack_Shape_Y">
-						<xsl:with-param name="iHorizIdx"  select="@STACK_HORIZ_INDEX"/>
-						<xsl:with-param name="iVertiIdx"  select="@SHAPE_VERTI_INDEX"/>
-					</xsl:call-template>
-				</xsl:variable>  
-				
-				<xsl:variable name="stack_SymName_">
-					<xsl:call-template name="_gen_Stack_SymbolName"> 
-						<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
-						<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
-					</xsl:call-template>		
-				</xsl:variable>
-				
-			 	<use   x="{$procX_}"  y="{$procY_}"  xlink:href="#{$stack_SymName_}"/> 
-				
-				<xsl:if test = "not(@IS_LIKEPROC)">
-					<text class="ipclass"
-						x="{$procX_}" 
-						y="{$procY_ - 4}">PROCESSOR</text>		
-				</xsl:if>			
-				  
-				<xsl:if test = "@IS_LIKEPROC = 'TRUE'">
-					<text class="ipclass"
-						x="{$procX_}" 
-						y="{$procY_ - 4}">USER MODULE</text>		
-				</xsl:if>			
-			
-			</xsl:for-each>
-		</symbol>
-</xsl:template>	
-
-
-<xsl:template name="Define_Processor">
-	<xsl:param name="iProcInst"  select="@INSTANCE"/>
-	<xsl:param name="iModType"   select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$iProcInst]/@MODTYPE"/>
-<!--	
-	<xsl:param name="procType"  select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$procInst]/@PROCTYPE"/>
--->	
-	
-	<xsl:variable name="label_y_">
-		<xsl:value-of select="$BLKD_MOD_LANE_H"/>	
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>The proctype is <xsl:value-of select="$procType"/></xsl:message>	
--->
-	
-	<xsl:variable name="procH_" select="(($BLKD_MOD_LANE_H * 2) + (($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIFS_H) + ($BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>	
-	<xsl:variable name="procW_" select="(($BLKD_MOD_LANE_W * 2) + (($BLKD_BIF_W                        * @BIFS_W) + $BLKD_MOD_BIF_GAP_H))"/>	
-	
-	<xsl:variable name="procColor_">
-		<xsl:choose>
-			<xsl:when test="contains($iModType,'microblaze')"><xsl:value-of select="$COL_PROC_BG_MB"/></xsl:when>
-			<xsl:when test="contains($iModType,'ppc')"><xsl:value-of select="$COL_PROC_BG_PP"/></xsl:when>
-			<xsl:otherwise>
-				<xsl:value-of select="$COL_PROC_BG_USR"/>	
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-	
-<!--	
-	<xsl:message>The proc color is <xsl:value-of select="$procColor"/></xsl:message>	
--->	
-	
-
-	<xsl:variable name="procName_">
-		<xsl:call-template name="_gen_Stack_SymbolName"> 
-			<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
-			<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
-		</xsl:call-template>		
-	</xsl:variable>	
-	
-<!--	
-	<xsl:message>The proc name is <xsl:value-of select="$procName_"/></xsl:message>	
--->	
-	
-    <symbol id="{$procName_}">
-
-		<rect x="0"
-		      y="0"
-			  rx="6" 
-			  ry="6" 
-		      width = "{$procW_}"
-		      height= "{$procH_}"
-			  style="fill:{$procColor_}; stroke:{$COL_WHITE}; stroke-width:2"/>		
-			  
-			  
-		<rect x="{ceiling($procW_ div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$BLKD_MOD_LANE_H}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_MOD_LABEL_H}"
-			  style="fill:{$COL_WHITE}; stroke:none;"/>		
-			  
-		<text class="bciptype" 
-			  x="{ceiling($procW_ div 2)}"
-			  y="{$BLKD_MOD_LANE_H + 8}">
-				<xsl:value-of select="$iModType"/>
-		</text>
-				
-		<text class="bciplabel" 
-			  x="{ceiling($procW_ div 2)}"
-			  y="{$BLKD_MOD_LANE_H + 16}">
-				<xsl:value-of select="$iProcInst"/>
-	   </text>
-	   
-	   
-	  	<xsl:if test="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$iProcInst]/@GROUP">
-	  	
-		<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
-		      y="{$BLKD_MOD_LANE_H + $BIF_H  + ceiling($BLKD_BIF_H div 3) - 2}"
-			  rx="3" 
-			  ry="3" 
-		      width= "{$BLKD_MOD_LABEL_W}"
-		      height="{$BLKD_BIF_H}"
-			  style="fill:{$COL_IORING_LT}; stroke:none;"/>		
-			  
-	
-	   	   <text class="ioplblgrp"  x="{ceiling($BLKD_MOD_W div 2)}" y="{$BLKD_MOD_LANE_H + $BIF_H + ceiling($BIF_H div 3) + 12}">
-			   <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE = $iProcInst]/@GROUP"/>
-	   		</text>
-	   
-	  	</xsl:if> 
-	   
-	   
-		<xsl:for-each select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/BUSINTERFACE[(@BIF_X and @BIF_Y)]">
-			
-			<xsl:variable name="bif_busstd_">
-				<xsl:choose>
-					<xsl:when test="@BUSSTD">
-						<xsl:value-of select="@BUSSTD"/>	
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="'TRS'"/>	
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="bif_buscol_">
-				<xsl:call-template name="BusType2Color">
-					<xsl:with-param name="iBusType" select="$bif_busstd_"/>
-				</xsl:call-template>
-			</xsl:variable>
-		
-			
-			<xsl:variable name="bif_name_">
-				<xsl:choose>
-					<xsl:when test="string-length(@NAME) &lt;= 5">
-						<xsl:value-of select="@NAME"/>	
-					</xsl:when>
-					<xsl:otherwise>
-						<xsl:value-of select="substring(@NAME,0,5)"/>	
-					</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="bif_x_"  select="(( $BLKD_BIF_W * @BIF_X) + ($BLKD_MOD_BIF_GAP_H * @BIF_X) + ($BLKD_MOD_LANE_W * 1))"/>
-			<xsl:variable name="bif_y_"  select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
-			
-			<xsl:variable name="horz_line_y_" select="($bif_y_ + ceiling($BLKD_BIFC_H div 2))"/>
-			
-			<xsl:variable name="horz_line_x1_">
-				<xsl:choose>
-					<xsl:when test="@BIF_X = '0'">0</xsl:when>
-					<xsl:otherwise><xsl:value-of select="($BLKD_MOD_W - $BLKD_MOD_LANE_W)"/></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			<xsl:variable name="horz_line_x2_">
-				<xsl:choose>
-					<xsl:when test="@BIF_X = '0'"><xsl:value-of select="$BLKD_MOD_LANE_W"/></xsl:when>
-					<xsl:otherwise><xsl:value-of select="$BLKD_MOD_W + 1"/></xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-			
-			<line x1="{$horz_line_x1_}" 
-			  	  y1="{$horz_line_y_ - 2}"
-			      x2="{$horz_line_x2_}" 
-			      y2="{$horz_line_y_ - 2}" 
-			      style="stroke:{$bif_buscol_};stroke-width:1"/>
-			  
-			<use  x="{$bif_x_}"   y="{$bif_y_}"  xlink:href="#{$bif_busstd_}_Bif"/>
-				
-			<text class="biflabel" 
-				  x="{$bif_x_ + ceiling($BIF_W div 2)}"
-				  y="{$bif_y_ + ceiling($BIF_H div 2) + 3}">
-					<xsl:value-of select="$bif_name_"/>
-			</text>
-			
-		</xsl:for-each>
-		
-		<xsl:variable name="interrupt_cntlr_">
-			<xsl:choose>
-				<xsl:when test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iProcInst)]/@INTERRUPT_CNTLR">
-					<xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$iProcInst)]/@INTERRUPT_CNTLR"/>
-				</xsl:when>
-				<xsl:otherwise>"_no_interrupt_cntlr_"</xsl:otherwise>
-			</xsl:choose>
-		</xsl:variable>
-			
-<!--		
-		<xsl:message> The intc index should <xsl:value-of select="$interrupt_cntlr_"/></xsl:message>
-		<xsl:message> The intc index is <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $interrupt_cntlr_)]/@INTCINDEX"/></xsl:message>
--->		
-		<xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $interrupt_cntlr_)]/@INTCINDEX">
-			
-			<xsl:variable name="intr_col_">
-				<xsl:call-template name="intcIdx2Color">
-					<xsl:with-param name="iIntcIdx" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $interrupt_cntlr_)]/@INTCINDEX"/>
-				</xsl:call-template>	
-			</xsl:variable>
-			
-			<xsl:call-template name="_draw_InterruptedProc">
-				<xsl:with-param name="iIntr_X"   select="($BLKD_MOD_W - ceiling($BLKD_INTR_W div 2))"/>
-				<xsl:with-param name="iIntr_Y"   select="3"/>
-				<xsl:with-param name="iIntr_COL" select="$intr_col_"/>
-				<xsl:with-param name="iIntr_IDX" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $interrupt_cntlr_)]/@INTCINDEX"/>
-			</xsl:call-template>	
-		</xsl:if>
-		
-	</symbol>			  
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css
deleted file mode 100644
index c1b40cf..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.css
+++ /dev/null
@@ -1,119 +0,0 @@
-	text.busintlabel {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  italic;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-	
-	text.buslabel {
-		fill:        #CC3333;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-			
-	text.iplabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  italic;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-		
-	text.iptype {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-		
-	text.portlabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-		
-	text.mmMHeader {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mmSHeader {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.proclabel {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   14pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.opblabel {
-		fill:        #339900;
-		stroke:      none;
-		font-size:   11pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.lmblabel {
-		fill:        #9999FF;
-		stroke:      none;
-		font-size:   11pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.dbglabel {
-		fill:        #555555;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-
-	text.iopnumb {
-		fill:        #555555;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl
deleted file mode 100644
index f914153..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLDatasheet.xsl
+++ /dev/null
@@ -1,1211 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-         
-<xsl:output method="html"/>
-
-<xsl:include href="MdtXdsGen_HTMLIPSection.xsl"/>
-<xsl:include href="MdtXdsGen_HTMLMemoryMap.xsl"/>
-<xsl:include href="MdtXdsGen_HTMLTOCTree.xsl"/>
-
-<xsl:param name="DS_TYPE"      select="'NOFRAMES'"/>			
-<xsl:param name="DS_PART"      select="'TOC_TREE'"/>			
-
-<xsl:param name="DS_WIDTH"     select="850"/>			
-<xsl:param name="DS_TOC_WIDTH" select="200"/>			
-
-<xsl:param name="DS_FRAME_TOC"  select="'DS_TOC'"/>			
-<xsl:param name="DS_FRAME_SELF" select="'_self'"/>			
-<xsl:param name="DS_FRAME_MAIN" select="'DS_FMAIN'"/>			
-
-<xsl:param name="DS_HTML_BLKD"    select="'ds_Blkd.html'"/>			
-
-<xsl:param name="DS_HTML_MAIN"    select="'ds_Main.html'"/>
-<xsl:param name="DS_HTML_TOC"     select="'ds_TOC.html'"/>
-<xsl:param name="DS_HTML_TOCTREE" select="'ds_TOCTree.html'"/>
-
-<xsl:param name="DS_BLKD_NAME"   select="'system_blkd.jpg'"/>
-<xsl:param name="DS_BLKD_TYPE"   select="'svg'"/>
-<xsl:param name="DS_BLKD_WIDTH"  select="800"/>
-<xsl:param name="DS_BLKD_HEIGHT" select="600"/>
-
-<xsl:param name="DS_COL_OPB"     select="'#339900'"/>
-
-<xsl:param name="DS_COL_INFO"    select="'#2233FF'"/>
-<xsl:param name="DS_COL_ASH"     select="'#DEDEDE'"/>
-<xsl:param name="DS_COL_ASH1"    select="'#F0F0F8'"/>
-<xsl:param name="DS_COL_GREY"    select="'#BBBBBB'"/>
-<xsl:param name="DS_COL_LGRY"    select="'#F1F1F1'"/>
-<xsl:param name="DS_COL_XPRP"    select="'#810017'"/>
-<xsl:param name="DS_COL_RED"     select="'#FF1010'"/>
-<xsl:param name="DS_COL_GREEN"   select="'#33CC33'"/>
-<xsl:param name="DS_COL_BLACK"   select="'#000000'"/>
-<xsl:param name="DS_COL_WHITE"   select="'#FFFFFF'"/>
-
-<!--
-<xsl:param name="DS_COL_ATTR_RD"   select="'#FF5555'"/>
-<xsl:param name="DS_COL_ATTR_GREN" select="'#55FF55'"/>
-<xsl:param name="DS_COL_ATTR_BLE"  select="'#5555FF'"/>
--->
-
-<xsl:param name="DS_COL_ATTR_BUF"   select="'#FF5555'"/>
-<xsl:param name="DS_COL_ATTR_CLK"   select="'#55FF55'"/>
-<xsl:param name="DS_COL_ATTR_INT"   select="'#5555FF'"/>
-<xsl:param name="DS_COL_ATTR_RST"   select="'#FFCC00'"/>
-
-
-<xsl:param name="DS_COL_MODUSR" select="'#FFFFAA'"/>
-<xsl:param name="DS_COL_MODSYS" select="'#AAAAFF'"/>
-<xsl:param name="DS_COL_MODSYSNW" select="'#000099'"/>
-
-<!-- ======================= MAIN DATASHEET SECTION  =============================== -->
-<xsl:template match="EDKSYSTEM">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:call-template name="Write_Main"/>	
-	</xsl:if>
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:call-template name="Write_Frames"/>	
-	</xsl:if>
-</xsl:template>	
-
-<xsl:template name="Write_Frames">
-<!--	
-	<xsl:if test="$DS_PART='TOC'">
-		<xsl:call-template name="Write_TOC"/>	
-	</xsl:if>
--->	
-	
-	<xsl:if test="$DS_PART='TOC'">
-		<xsl:call-template name="Write_TOCTree"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_PART='INDEX'">
-		<xsl:call-template name="Write_Index"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_PART='MAIN'">
-		<xsl:call-template name="Write_Main"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_PART='BLKD'">
-		<xsl:call-template name="Write_BLKD"/>	
-	</xsl:if>
-	
-</xsl:template>	
-
-<xsl:template name="Write_TOC">
-<HTML>
-<HEAD>
-	<TITLE>Table of Contents</TITLE>
-	<BASE target="{$DS_FRAME_MAIN}"/>
-</HEAD>
-
-	<!--Layout Table of contents   -->
-	<BODY class="main_body">
-		<xsl:call-template name="Layout_TOC"/>
-	</BODY>		
-	
-</HTML>
-</xsl:template>
-
-<xsl:template name="Write_Index">
-<HTML>
-<HEAD><TITLE>EDK Project Report</TITLE></HEAD>
-	<FRAMESET COLS="20%,80%" BORDER="0" FRAMESPACING="0">
-		<FRAME SRC="{$DS_HTML_TOC}"
-		   MARGINWIDTH="0" 
-		   MARINHEIGHT="0" 
-		   FRAMEBORDER="NO"
-		   BORDER="NO"
-		   NAME="{$DS_FRAME_TOC}"
-		   SCROLLING="YES"/>
-		<FRAME SRC="{$DS_HTML_MAIN}"
-		   MARGINWIDTH="0" 
-		   MARINHEIGHT="0"
-		   FRAMEBORDER="NO"
-		   BORDER="NO"
-		   NAME="{$DS_FRAME_MAIN}" 
-		   SCROLLING="YES"/>
-	</FRAMESET>
-</HTML>
-</xsl:template>	
-
-<xsl:template name="Write_BLKD">
-<HTML>
-	
-<HEAD><TITLE>Block Diagram</TITLE></HEAD>
-	
-<!--
-	<xsl:message> Embedded image name <xsl:value-of select="$DS_BLKD_NAME"/></xsl:message>
-	<xsl:message> Embedded image name <xsl:value-of select="$DS_BLKD_NAME"/></xsl:message>
-	<xsl:message> Embedded image type <xsl:value-of select="$DS_BLKD_TYPE"/></xsl:message>
-	<xsl:message> Embedded image width <xsl:value-of select="$DS_BLKD_WIDTH"/></xsl:message>
-	<xsl:message> Embedded image height <xsl:value-of select="$DS_BLKD_HEIGHT"/></xsl:message>
--->	
-	
-	<BODY class="main_body">
-		
-	<xsl:if test="$DS_BLKD_TYPE = 'svg'">
-		<EMBED src="{$DS_BLKD_NAME}" width="{$DS_BLKD_WIDTH}" height="{$DS_BLKD_HEIGHT}" type="image/svg+xml"/>
-	</xsl:if>
-	
-	<xsl:if test="not($DS_BLKD_TYPE = 'svg')">
-		<IMG SRC="{$DS_BLKD_NAME}" alt="BlockDiagram" width="{$DS_BLKD_WIDTH}" height="{$DS_BLKD_HEIGHT}" border="0" vspace="0" hspace="0"/>
-	</xsl:if>
-		<BR></BR>
-		<BR></BR>
-		<xsl:call-template name="Layout_ExternalPorts"/>
-		<BR></BR>
-	</BODY>		
-</HTML>
-</xsl:template>
-
-	
-<xsl:template name="Write_Main">
-<html>
-	<!--Layout head -->
-	<head>
-		<title>EDK PROJECT REPORT</title>
-		
-		<!--specify a css for the file -->
-	    <meta http-equiv="PRAGMA" content="NO-CACHE"/>
-	    <meta http-equiv="content-Type" content="text/html; charset=iso-8859-1"/>
-	    
-	</head>	
-	
-	<body bgcolor="#FFFFFF">
-	
-		<!--Layout Table of contents   -->
-		<xsl:if test="not($DS_TYPE='FRAMES')">
-			<xsl:call-template name="Layout_TOC"/>
-		</xsl:if>	
-		
-		<TABLE BGCOLOR="{$DS_COL_WHITE}" WIDTH="{$DS_WIDTH}" COLS="1" cellspacing="0" cellpadding="3" border="0">
-		
-<!--  ==========================Overview Section ============== -->
-			<TR></TR>
-			<TR></TR>
-			<TR></TR>
-			<xsl:if test="$DS_TYPE='FRAMES'">
-				<TD COLSPAN="1" ALIGN="LEFT">
-					<A HREF="ds_MainNF.html" target="_top" style="text-decoration:none"><SPAN style="color:{$DS_COL_GREEN}; font: normal 14px Verdana Arial,Helvetica,sans-serif">Printable Version</SPAN></A>
-				</TD>
-				<TR></TR>
-			</xsl:if>
-			<TD COLSPAN="1" WIDTH="100%">
-				<A name="_Overview"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Overview'"/>
-				</xsl:call-template>	
-				<BR></BR>
-				<BR></BR>
-				<xsl:call-template name="Layout_Overview"/>
-			</TD>
-			
-<!--  ==========================Block Diagram section ============== -->
-<!--
-	<xsl:message> Embedded image name <xsl:value-of select="$DS_BLKD_NAME"/></xsl:message>
--->	
-			<TR></TR>
-			<TD COLSPAN="1">
-				<A name="_BlockDiagram"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Block Diagram'"/>
-				</xsl:call-template>
-				<BR></BR>
-				<BR></BR>
-				<IMG SRC="imgs/{$DS_BLKD_NAME}" alt="BlockDiagram" border="0" vspace="0" hspace="0"/>
-			</TD>
-			
-<!--			
--->			
-
-<!--  ========================== External Ports ======================= -->
-
-			<TR></TR>
-			<TD COLSPAN="1" WIDTH="100%">
-				<A name="_ExternalPorts"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'External Ports'"/>
-				</xsl:call-template>
-				<BR></BR>
-				<BR></BR>
-				<xsl:call-template name="Layout_ExternalPorts"/>
-			</TD>
-			
-<!--  ========================== Memory Map Section ======================= -->
-<!---
-			<xsl:if test="MODULES/MODULE[@MODCLASS='PROCESSOR']/MEMORYMAP">
-				<TR></TR>
-				<TD COLSPAN="1">
-					<A name="_MemoryMap"/>
-					<xsl:call-template name="Layout_NavigateHeader">
-						<xsl:with-param name="header_name" select="'MEMORY MAP'"/>
-					</xsl:call-template>
-					<xsl:for-each select="MODULES/MODULE[@MODCLASS='PROCESSOR']">
-						<xsl:sort select="@INSTANCE"/>
-						<xsl:call-template name="Layout_MemoryMap"/>
-					</xsl:for-each>
-				</TD>
-			</xsl:if>
--->		
-			
-<!--  ========================== Processor Information Section ================== -->
-			<TR></TR>
-			<TD COLSPAN="1" WIDTH="100%">
-				<A name="_Processor"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-						<xsl:with-param name="header_name" select="'Processors'"/>
-				</xsl:call-template>
-				<BR></BR>
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[((@MODCLASS='PROCESSOR') and (contains(@MODTYPE,'microblaze')))]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-					
-					<xsl:for-each select="MODULES/MODULE[((@MODCLASS='PROCESSOR') and (contains(@MODTYPE,'ppc')))]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>
-					
-<!--						
-			<TR></TR>
-			<xsl:if test="MODULES/MODULE[@MODCLASS='PROCESSOR_DEBUG']">
-				<A name="_Debug"/>
-						<xsl:call-template name="Layout_NavigateHeader">
-							<xsl:with-param name="header_name" select="'Debuggers'"/>
-						</xsl:call-template>
-						<BR></BR>
-						
-						<xsl:for-each select="MODULES/MODULE[@MODCLASS='PROCESSOR_DEBUG']">
-						<xsl:sort select="@INSTANCE"/>
-							<TR/>
-							<TD COLSPAN="1" align="left">
-								<xsl:call-template name="Layout_IPSection"/>
-							</TD>
-						</xsl:for-each>
-					</xsl:if>
--->					
-					
-<!--						
-					<xsl:if test="MODULES/MODULE[@MODCLASS='INTERRUPT_CONTROLLER']">
-					<A name="_Intc"/>
-					<xsl:call-template name="Layout_NavigateHeader">
-						<xsl:with-param name="header_name" select="'Interrupt Controllers'"/>
-					</xsl:call-template>
-					<BR></BR>
-						<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-							<xsl:for-each select="MODULES/MODULE[@MODCLASS='INTERRUPT_CONTROLLER']">
-							<xsl:sort select="@INSTANCE"/>
-								<TR/>
-								<TD COLSPAN="1" align="left">
-								<xsl:call-template name="Layout_IPSection"/>
-								</TD>
-							</xsl:for-each>
-						</TABLE>
-						
-					</xsl:if>
-				</TABLE>
-			</TD>
-			
-						<xsl:for-each select="MODULES/MODULE[@MODCLASS='INTERRUPT_CONTROLLER']">
-						<xsl:sort select="@INSTANCE"/>
-							<TR/>
-							<TD COLSPAN="1" align="left">
-								<xsl:call-template name="Layout_IPSection"/>
-							</TD>
-						</xsl:for-each>
--->				
-
-<!--  ========================== Debugger Section ================== -->
-			<xsl:if test="MODULES/MODULE[(@MODCLASS='DEBUG')]">
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<A name="_Debug"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Debuggers'"/>
-				</xsl:call-template>	
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='DEBUG')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>
-		</xsl:if>	
-
-<!--  ========================== Interrupt Controllers Section ================== -->
-		<xsl:if test="MODULES/MODULE[(@MODCLASS='INTERRUPT_CNTLR')]">
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<A name="_Intc"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Interrupt Controllers'"/>
-				</xsl:call-template>	
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='INTERRUPT_CNTLR')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>
-		</xsl:if>	
-				
-
-<!--  ========================== Bus Information Section ================== -->
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<A name="_BusModules"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Busses'"/>
-				</xsl:call-template>	
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[((@MODCLASS='BUS') or (@MODCLASS='BUS_ARBITER'))]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>
-				
-<!--  ========================== Bridge Information Section ================== -->
-			<xsl:if test="MODULES/MODULE[(@MODCLASS='BUS_BRIDGE')]">
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<BR></BR>
-				<A name="_BridgeModules"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Bus Bridges'"/>
-				</xsl:call-template>	
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='BUS_BRIDGE')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			
-			</TD>
-			</xsl:if>					
-			
-<!--  ========================== Memory Information Section ============== -->
-			<xsl:if test="MODULES/MODULE[(@MODCLASS='MEMORY')]">
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<A name="_MemoryModules"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Memory'"/>
-				</xsl:call-template>	
-				
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='MEMORY')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>
-			</xsl:if>
-<!--  ========================== Memory Controller Information Section ============== -->
-			<xsl:if test="MODULES/MODULE[(@MODCLASS='MEMORY_CNTLR')]">
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<A name="_MemCntlrModules"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Memory Controllers'"/>
-				</xsl:call-template>	
-				
-				<TABLE align="left" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='MEMORY_CNTLR')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>
-		</xsl:if>	
-			
-<!--  ========================== Peripheral Information Section ============== -->
-		<xsl:if test="MODULES/MODULE[(@MODCLASS='PERIPHERAL')]">
-			<TR></TR>		
-			<TD COLSPAN="1" align="left">
-				<A name="_Peripherals"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Peripherals'"/>
-				</xsl:call-template>	
-				<TABLE align="left" COLS="1" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='PERIPHERAL')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TD ROWSPAN="2"/><TR/>
-						<TD ROWSPAN="2"/><TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>	
-		</xsl:if>	
-			
-<!--  ========================== IP Information Section ====================== -->
-		<xsl:if test="MODULES/MODULE[(@MODCLASS='IP')]">
-			<TR></TR>		
-			<TD COLSPAN="1" align="left">
-				<A name="_IPModules"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'IP'"/>
-				</xsl:call-template>	
-				<BR></BR>
-				<TABLE align="left" COLS="1" width="{$DS_WIDTH}" cellspacing="0" cellpadding="0" border="0">
-					<xsl:for-each select="MODULES/MODULE[(@MODCLASS='IP')]">
-					<xsl:sort select="@INSTANCE"/>
-						<TD ROWSPAN="2"/><TR/>
-						<TD ROWSPAN="2"/><TR/>
-						<TD COLSPAN="1" align="left">
-							<xsl:call-template name="Layout_IPSection"/>
-						</TD>
-					</xsl:for-each>
-				</TABLE>
-			</TD>	
-		</xsl:if>
-			
-		<!--Timing Information section -->
-			<TR></TR>		
-			<TD COLSPAN="1">
-				<A name="_TimingInfo"/>
-				<xsl:call-template name="Layout_NavigateHeader">
-					<xsl:with-param name="header_name" select="'Timing Information'"/>
-				</xsl:call-template>	
-				<BR></BR>
-				<BR></BR>
-				<xsl:call-template name="Layout_TimingInfo"/>
-			</TD>
-			<TR></TR>
-			<TD COLSPAN="1" align="left">
-				<BR></BR>
-				<BR></BR>
-				<TABLE BGCOLOR="{$DS_COL_WHITE}" WIDTH="{$DS_WIDTH}" COLS="3" cellspacing="0" cellpadding="0" border="0">
-					<TD COLSPAN="3" width="100%" align="middle" BGCOLOR="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 5px Verdana,Arial,Helvetica,sans-serif">line</SPAN></TD>
-					<TR></TR>
-					<TD COLSPAN="1" width="25%" align="left">
-						<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@TIMESTAMP"/></SPAN>
-					</TD>
-					<TD COLSPAN="2" width="75%" align="middle">
-						<A HREF="http://www.xilinx.com" style="text-decoration:none"><SPAN style="color:{$DS_COL_INFO}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">www.xilinx.com</SPAN></A>
-						<BR></BR>
-						<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">1-800-255-7778</SPAN>
-					</TD>
-				</TABLE>
-			</TD>
-			
-			
-		</TABLE>		
-</body>
-</html>
-
-</xsl:template>
-
-<!-- ======================= LAYOUT TABLE OF CONTENTS ====================================== -->
-<xsl:template name="Layout_TOC">
-	
-<xsl:variable name="toc_col_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="$DS_COL_LGRY"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_COL_WHITE"/>	
-	</xsl:if>
-</xsl:variable>
-
-<xsl:variable name="toc_width_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="$DS_WIDTH"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_TOC_WIDTH"/>	
-	</xsl:if>
-</xsl:variable>
-
-<xsl:variable name="toc_target_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="$DS_FRAME_SELF"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_FRAME_MAIN"/>	
-	</xsl:if>
-</xsl:variable>
-
-<xsl:variable name="trg_html_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="''"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_HTML_MAIN"/>	
-	</xsl:if>
-</xsl:variable>
-	
-	
-<A name="_TOC"/>
-<TABLE BGCOLOR="{$toc_col_}" WIDTH="{$toc_width_}" COLS="2" cellspacing="0" cellpadding="3" border="0">
-
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<TH COLSPAN="2" width="100%" align="middle"><SPAN style="color:{$DS_COL_XPRP}; font: bold 20px Arial,Helvetica,sans-serif">TABLE OF CONTENTS</SPAN></TH>
-	</xsl:if>
-	
-	<TR></TR>
-	<TD COLSPAN="1" width="40%" align="left">
-		<BR></BR>
-		<A HREF="{$trg_html_}#_Overview" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Overview</SPAN></A>
-		
-		<BR></BR>
-		<A HREF="{$trg_html_}#_BlockDiagram" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Block Diagram</SPAN></A>
-		
-		<BR></BR>
-		<A HREF="{$trg_html_}#_ExternalPorts" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">External Ports</SPAN></A>
-		
-<!--		
-		<BR></BR>
-		<xsl:if test="MODULES/MODULE[@MODCLASS='PROCESSOR']/MEMORYMAP">
-			<A HREF="{$trg_html_}#_MemoryMap" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Memory Map</SPAN></A>
-		</xsl:if>
--->		
-		
-		<BR></BR>
-		<xsl:variable name="proc_CNT" select="count(MODULES/MODULE[@MODCLASS = 'PROCESSOR'])"/>
-		<xsl:if test="$proc_CNT &gt; 1">
-			<A HREF="{$trg_html_}#_Processor" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Processors</SPAN></A>
-		</xsl:if>	
-		<xsl:if test="not($proc_CNT &gt; 1)">
-			<A HREF="{$trg_html_}#_Processor" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Processor</SPAN></A>
-		</xsl:if>	
-		
-		<xsl:for-each select="MODULES/MODULE[(@MODCLASS='PROCESSOR')]">
-			<xsl:sort select="@INSTANCE"/>
-			<BR></BR>
-			<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			<xsl:if test="MEMORYMAP/MEMRANGE[(@INSTANCE)]">
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}_MemoryMap" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;memory map</SPAN></A>
-			</xsl:if>
-		</xsl:for-each>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='PROCESSOR_DEBUG']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_Debug" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana Arial,Helvetica,sans-serif">Debuggers</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='PROCESSOR_DEBUG']">
-				<xsl:sort select="@INSTANCE"/>
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='INTERRUPT_CONTROLLER']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_Intc" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana Arial,Helvetica,sans-serif">Interrupt Controllers</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='INTERRUPT_CONTROLLER']">
-				<xsl:sort select="@INSTANCE"/>
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='BUS' or @MODCLASS='BUS_ARBITER']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_BusModules" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Busses</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='BUS' or @MODCLASS='BUS_ARBITER']">
-				<xsl:sort select="@INSTANCE"/>
-	 			<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='BUS_BRIDGE']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_BridgeModules" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Bridges</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='BUS_BRIDGE']">
-				<xsl:sort select="@INSTANCE"/>
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='MEMORY']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_MemoryModules" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Memory</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='MEMORY']">
-				<xsl:sort select="@INSTANCE"/>
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>		
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='MEMORY_CONTROLLER']">
-				<BR></BR>	
-				<A HREF="{$trg_html_}#_MemCntlrModules" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Memory Controllers</SPAN></A>
-				<xsl:for-each select="MODULES/MODULE[@MODCLASS='MEMORY_CONTROLLER']">
-					<xsl:sort select="@INSTANCE"/>
-					<BR></BR>
-					<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-				</xsl:for-each>
-		</xsl:if>		
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='PERIPHERAL']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_Peripherals" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Peripherals</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='PERIPHERAL']">
-				<xsl:sort select="@INSTANCE"/>
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Courier Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>		
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='IP']">
-			<BR></BR>
-			<A HREF="{$trg_html_}#_IPModules" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">IP</SPAN></A>
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='IP']">
-				<xsl:sort select="@INSTANCE"/>
-				<BR></BR>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Courier Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if></A>
-			</xsl:for-each>
-		</xsl:if>			
-		
-		<BR></BR>
-		<A HREF="{$trg_html_}#_TimingInfo" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Timing Information</SPAN></A>
-	</TD>
-	
-</TABLE>
-</xsl:template>
-<!-- ======================= END LAYOUT TABLE OF CONTENT =================================== -->
-
-<!-- ==============================  LAYOUT SNAPSHOT  ====================================== -->
-<xsl:template name="Layout_Overview">
-	
-<xsl:variable name="cnt_ip_"      select="count(MODULES/MODULE)"/>
-<xsl:variable name="cnt_proc_"    select="count(MODULES/MODULE[@MODCLASS = 'PROCESSOR'])"/>
-<xsl:variable name="cnt_busses_"  select="count(MODULES/MODULE[@MODCLASS = 'BUS'])"/>
-<TABLE width="{$DS_WIDTH}" valign="top" align="left" border="0" cellpadding="0" cellspacing="1" COLS="2" BGCOLOR="{$DS_COL_BLACK}"> 
-
-	<TD COLSPAN="2" ALIGN="middle" BGCOLOR="{$DS_COL_XPRP}">
-		<SPAN style="color:{$DS_COL_WHITE}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Overview</SPAN>
-	</TD>
-	<TR/>
-	
-	<xsl:if test="@TIMESTAMP">
-		<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">Generated on</SPAN>
-		</TD>
-		<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@TIMESTAMP"/></SPAN>
-		</TD>
-		<TR></TR>
-	</xsl:if>	
-	
-	<xsl:if test="@PROJECTSRC">
-		<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">Source</SPAN>
-		</TD>
-		<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">
-<!--				
-				<A HREF="{@PROJECTSRC}" style="text-decoration:none; color:{$DS_COL_XPRP}"><xsl:value-of select="@PROJECTSRC"/></A>
--->				
-				<xsl:value-of select="@PROJECTSRC"/>
-			</SPAN>
-		</TD>
-		<TR></TR>
-	</xsl:if>	
-
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">EDK Version</SPAN>
-	</TD>
-	
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-		<xsl:if test="@EDKVERSION">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@EDKVERSION"/></SPAN>
-		</xsl:if>
-		<xsl:if test="not(@EDKVERSION)">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">NA</SPAN>
-		</xsl:if>
-	</TD>
-	<TR/>
-
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">FPGA Family</SPAN>
-	</TD>
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-		<xsl:if test="@ARCH">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@ARCH"/></SPAN>
-		</xsl:if>
-		<xsl:if test="not(@ARCH)">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 10px Verdana,Arial,Helvetica,sans-serif">NA</SPAN>
-		</xsl:if>
-	</TD>
-	<TR/>
-
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">Device</SPAN>
-	</TD>
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-		<xsl:if test="@PART">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@PART"/></SPAN>
-		</xsl:if>
-		<xsl:if test="not(@PART)">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">-</SPAN>
-		</xsl:if>
-	</TD>
-	<TR/>
-	
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-		<SPAN style="color:{$DS_COL_BLACK}; font: Normal 12px Verdana,Arial,Helvetica,sans-serif"># IP Instantiated </SPAN>
-	</TD>
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$cnt_ip_"/></SPAN>
-	</TD>
-	<TR/>
-	
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"># Processors </SPAN>
-	</TD>
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$cnt_proc_"/></SPAN>
-	</TD>
-	<TR/>
-	
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="left">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"># Busses </SPAN>
-	</TD>
-	<TD COLSPAN="1" BGCOLOR="{$DS_COL_WHITE}" align="middle">
-		<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$cnt_busses_"/></SPAN>
-	</TD>
-	<TR/>
-	
-	
-</TABLE>
-
-</xsl:template>
-
-<!-- ==============================  END LAYOUT SNAPSHOT  =================================== -->
-
-<!-- ==============================  LAYOUT INTRODUCTION  =================================== -->
-<xsl:template name="Layout_Introduction">
-</xsl:template>
-<!-- ==============================  END INTRODUCTION    ==================================== -->
-
-<!-- ==============================  External Ports      ==================================== -->
-<xsl:template name="Layout_ExternalPorts">
-	
-	<xsl:variable name="gpin_CNT_"  select="count(EXTERNALPORTS/PORT)"/>
-	<xsl:variable name="ipin_CNT_"  select="count(EXTERNALPORTS/PORT[@DIR='I'])"/>
-	<xsl:variable name="opin_CNT_"  select="count(EXTERNALPORTS/PORT[@DIR='O'])"/>
-	<xsl:variable name="iopin_CNT_" select="count(EXTERNALPORTS/PORT[@DIR='IO'])"/>
-	
-	<xsl:variable name="table_width_">
-		<xsl:if test="$gpin_CNT_ &gt;  16"><xsl:value-of select="$DS_WIDTH"/></xsl:if>
-		<xsl:if test="$gpin_CNT_ &lt;= 16"><xsl:value-of select="$DS_WIDTH"/></xsl:if>
-		
-	</xsl:variable>
-	
-	<xsl:variable name="left_extra_">
-		<xsl:if test="($gpin_CNT_ mod 2)     = 1">1</xsl:if>
-		<xsl:if test="not(($gpin_CNT_ mod 2) = 1)">0</xsl:if>
-	</xsl:variable>
-	
-	<xsl:variable name="num_left_" select="floor($gpin_CNT_ div 2) + $left_extra_"/>
-	<xsl:variable name="num_rhgt_" select="floor($gpin_CNT_ div 2)"/>
-	
-	<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{$table_width_}" COLS="8" cellspacing="1" cellpadding="1" border="0">
-		
-		<TD COLSPAN="8" ALIGN="middle" BGCOLOR="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">EXTERNAL PORTS</SPAN></TD>
-	 	<TR></TR>	
-		<TD COLSPAN="8" ALIGN="middle" bgcolor="{$DS_COL_WHITE}">
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-				These are the external ports defined in the MHS file.
-			</SPAN>
-		</TD>
-		
-		<TR></TR>
-		<TD COLSPAN="8" ALIGN="left" bgcolor="{$DS_COL_WHITE}">
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Attributes Key</SPAN>
-			<BR></BR>
-			<SPAN style="color:{$DS_COL_BLACK}; font: italic 9px Verdana,Arial,Helvetica,sans-serif">The attributes are obtained from the SIGIS and IOB_STATE parameters set on the PORT in the MHS file </SPAN>
-			<BR></BR>
-			<SPAN style="color:{$DS_COL_ATTR_CLK}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">CLK</SPAN>
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">&#160;&#160;indicates Clock ports, (SIGIS = CLK)&#160;</SPAN>
-			<BR></BR>
-			<SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">INTR</SPAN>
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">&#160;&#160;indicates Interrupt ports,(SIGIS = INTR)&#160;</SPAN>
-			<BR></BR>
-			<SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">RESET</SPAN>
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">&#160;&#160;indicates Reset ports, (SIGIS = RST)&#160;</SPAN>
-			<BR></BR>
-			<SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">BUF or REG</SPAN>
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">&#160;&#160;Indicates ports that instantiate or infer IOB primitives, (IOB_STATE = BUF or REG)&#160;</SPAN>
-		</TD>
-		
-		<xsl:if test="$gpin_CNT_ &lt;= 16">
-			
-		<TR></TR>
-		
-		<TD COLSPAN="7" ALIGN="left" bgcolor="{$DS_COL_WHITE}">
-			
-		<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="100%" COLS="9" cellspacing="1" cellpadding="0" border="0">
-			
-		<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TD>
-		<TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TD>
-		<TD COLSPAN="1" width="5%"  align="left"  bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TD>
-		<TD COLSPAN="1" width="5%"  align="left"  bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TD>
-		<TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TD>
-		<TD COLSPAN="2" width="25%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">ATTRIBUTES</SPAN></TD>
-		
-		<xsl:for-each select="EXTERNALPORTS/PORT">
-			<xsl:sort data-type="number" select="@INDEX" order = "ascending"/>
-			
-<!--			
-			<xsl:message>The end of the string is <xsl:value-of select="substring(@GROUP,(string-length(@GROUP) -string-length(@GROUP)) + 1)"/></xsl:message>			
-			<xsl:message>The letter is <xsl:value-of select="$groupLetter_"/></xsl:message>			
-			<xsl:message>The color is <xsl:value-of select="$glb_bg_col_"/></xsl:message>			
-			<xsl:variable name="glb_bg_col_">
-				<xsl:choose>
-					<xsl:when test="(@GROUP mod 2) = 1">
-						<xsl:value-of select="$DS_COL_ASH"/>
-					</xsl:when>		
-					<xsl:otherwise>
-						<xsl:value-of select="$DS_COL_WHITE"/>
-					</xsl:otherwise>		
-				</xsl:choose>	
-			</xsl:variable>	
--->			
-
-			<xsl:variable name="glb_bg_col_">
-				<xsl:call-template name="Group2Color">
-					<xsl:with-param name="group" select="@GROUP"/>
-				</xsl:call-template>
-			</xsl:variable>	
-			
-			<TR></TR>	
-			<TD COLSPAN="1" width="5%"  align="left"   bgcolor="{$glb_bg_col_}">
-				<SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INDEX"/></SPAN><SPAN style="color:{$DS_COL_BLACK}; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"><xsl:value-of select="@GROUP"/></SPAN>
-			</TD>
-			<TD COLSPAN="2" width="30%" align="left"   bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD>
-			<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold   10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@DIR"/></SPAN></TD>
-			<xsl:if test="@MSB and @LSB">
-				<TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@LSB"/>:<xsl:value-of select="@MSB"/></SPAN></TD>
-			</xsl:if>			
-			<xsl:if test="not(@MSB and @LSB)">
-				<TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-			</xsl:if>			
-			<TD COLSPAN="2" width="30%" align="left" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@SIGNAME"/></SPAN></TD>
-			<TD COLSPAN="2" width="25%" align="left" bgcolor="{$glb_bg_col_}">
-				<xsl:if test="@SIGIS='CLK'"><SPAN style="color:{$DS_COL_ATTR_CLK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;CLK&#160;</SPAN></xsl:if>
-				<xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;RESET&#160;</SPAN></xsl:if>
-				<xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;INTR&#160;</SPAN></xsl:if>
-				<xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;BUF&#160;</SPAN></xsl:if>
-				<xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;REG&#160;</SPAN></xsl:if>
-			</TD>
-		</xsl:for-each>
-		
-		</TABLE>
-		</TD>
-		</xsl:if>	
-		
-		<xsl:if test="$gpin_CNT_ &gt; 16">
-			
-			<TR></TR>	
-			
-			<TD COLSPAN="3" WIDTH="49%">
-				<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="100%" COLS="9" cellspacing="1" cellpadding="0" border="0">
-					<TD COLSPAN="1" width="5"   align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TD>
-					<TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TD>
-					<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TD>
-					<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TD>
-					<TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TD>
-					<TD COLSPAN="2" width="25%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">ATTRIBUTES</SPAN></TD>
-			
-					<xsl:for-each select="EXTERNALPORTS/PORT">
-					<xsl:sort data-type="number" select="@INDEX" order = "ascending"/>
-					
-					<xsl:if test="position() &lt;= $num_left_">
-					
-						<xsl:variable name="glb_bg_col_">
-							<xsl:call-template name="Group2Color">	
-								<xsl:with-param name="group" select="@GROUP"/>
-							</xsl:call-template>		
-						</xsl:variable>	
-<!--
-						<xsl:message>NAME: <xsl:value-of select="@NAME"/></xsl:message>						
-						<xsl:message>SIGIS: <xsl:value-of select="@SIGIS"/></xsl:message>						
--->	
-					    
-						<TR></TR>	
-						<TD COLSPAN="1" width="5%"  align="left"   bgcolor="{$glb_bg_col_}">
-							<SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INDEX"/></SPAN><SPAN style="color:{$DS_COL_BLACK}; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"><xsl:value-of select="@GROUP"/></SPAN>
-						</TD>
-						<TD COLSPAN="2" width="30%" align="left"   bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD>
-						<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@DIR"/></SPAN></TD>
-						<xsl:if test="@MSB and @LSB">
-							<TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@LSB"/>:<xsl:value-of select="@MSB"/></SPAN></TD>
-						</xsl:if>			
-						<xsl:if test="not(@MSB and @LSB)">
-							<TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-						</xsl:if>			
-						<TD COLSPAN="2" width="30%" align="left" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@SIGNAME"/></SPAN></TD>
-						<TD COLSPAN="2" width="25%" align="left" bgcolor="{$glb_bg_col_}">
-							<xsl:if test="@SIGIS='CLK'"><SPAN style="color:{$DS_COL_GREEN}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;CLK&#160;</SPAN></xsl:if>
-							<xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;RESET&#160;</SPAN></xsl:if>
-							<xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;INTR&#160;</SPAN></xsl:if>
-							<xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;BUF&#160;</SPAN></xsl:if>
-							<xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;REG&#160;</SPAN></xsl:if>
-						</TD>
-					</xsl:if>	
-					</xsl:for-each>
-
-					
-				</TABLE>	
-			</TD>	
-			
-			<TD COLSPAN="1" WIDTH="2%" BGCOLOR="{$DS_COL_GREY}">
-				<SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;</SPAN>
-			</TD> 
-			
-			<TD COLSPAN="3" WIDTH="49%">
-				
-				<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="100%" COLS="9" cellspacing="1" cellpadding="0" border="0">
-					<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TD>
-					<TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TD>
-					<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TD>
-					<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TD>
-					<TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TD>
-					<TD COLSPAN="2" width="25%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">ATTRIBUTES</SPAN></TD>
-					
-					<xsl:for-each select="EXTERNALPORTS/PORT">
-					<xsl:sort data-type="number" select="@INDEX" order = "ascending"/>
-					
-					<xsl:if test="position() &gt; $num_left_">
-<!--					
-						<xsl:variable name="glb_bg_col_">
-							<xsl:choose>
-								<xsl:when test="(@GROUP mod 2) = 1">
-									<xsl:value-of select="$DS_COL_ASH"/>
-								</xsl:when>		
-								<xsl:otherwise>
-									<xsl:value-of select="$DS_COL_WHITE"/>
-								</xsl:otherwise>		
-							</xsl:choose>	
-						</xsl:variable>	
--->						
-						
-						<xsl:variable name="glb_bg_col_">
-							<xsl:call-template name="Group2Color">	
-								<xsl:with-param name="group" select="@GROUP"/>
-							</xsl:call-template>		
-						</xsl:variable>	
-			
-						<TR></TR>	
-						<TD COLSPAN="1" width="5%"  align="left"   bgcolor="{$glb_bg_col_}">
-							<SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INDEX"/></SPAN><SPAN style="color:{$DS_COL_BLACK}; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"><xsl:value-of select="@GROUP"/></SPAN>
-						</TD>
-						<TD COLSPAN="2" width="30%" align="left"   bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD>
-						<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold   10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@DIR"/></SPAN></TD>
-						
-						<xsl:if test="@MSB and @LSB">
-							<TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@LSB"/>:<xsl:value-of select="@MSB"/></SPAN></TD>
-						</xsl:if>			
-						<xsl:if test="not(@MSB and @LSB)">
-							<TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-						</xsl:if>			
-						<TD COLSPAN="2" width="30%" align="left" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@SIGNAME"/></SPAN></TD>
-						<TD COLSPAN="2" width="25%" align="left" bgcolor="{$glb_bg_col_}">
-							<xsl:if test="@SIGIS='CLK'"><SPAN style="color:{$DS_COL_GREEN}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;CLK&#160;</SPAN></xsl:if>
-							<xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;RESET&#160;</SPAN></xsl:if>
-							<xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;INTR&#160;</SPAN></xsl:if>
-							<xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;BUF&#160;</SPAN></xsl:if>
-							<xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;REG&#160;</SPAN></xsl:if>
-						</TD>
-					</xsl:if>	
-					</xsl:for-each>
-					
-					<xsl:if test="$left_extra_ &gt; 0">
-						<TR></TR>	
-						<TD COLSPAN="9" WIDTH="100%" align="left" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;</SPAN></TD>
-					</xsl:if>
-					
-				</TABLE>	
-				
-			</TD>	
-	
-		</xsl:if> 
-		
-	</TABLE>		
-
-</xsl:template>
-
-<xsl:template name="Group2Color">
-
-	<xsl:param name="group"  select="'A'"/>
-		
-	<xsl:variable name="letter">
-		<xsl:value-of select="substring($group,(string-length($group) -string-length($group)) + 1)"/>
-	</xsl:variable>
-	
-	<xsl:choose>
-		<xsl:when test="$group = 'GLB'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		
-		<xsl:when test="$letter = 'A'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'C'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'E'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'G'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'I'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'K'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'M'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'O'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'Q'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'S'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'U'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'W'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		<xsl:when test="$letter = 'Y'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when>
-		
-		<xsl:when test="$letter = 'B'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'D'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'F'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'H'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'J'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'L'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'N'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'P'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'R'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'T'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'V'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'X'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		<xsl:when test="$letter = 'Z'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when>
-		
-		<xsl:otherwise>
-			<xsl:value-of select="$DS_COL_WHITE"/>	
-		</xsl:otherwise>
-	</xsl:choose>
-</xsl:template>
-
-
-
-
-
-<xsl:template name="Layout_TimingInfo">
-	
-	<xsl:variable name="mtiming_CNT_" select="count(MODULES/MODULE/TIMING)"/>
-	 
-	<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{ceiling($DS_WIDTH div 2)}" COLS="5" cellspacing="1" cellpadding="1" border="1">
-		<TD COLSPAN="5" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Post Synthesis Clock Limits</SPAN></TD>
-	 	<TR></TR>	
-		<xsl:if test="$mtiming_CNT_ &lt; 1">
-			<TD COLSPAN="5" width="100%" align="middle" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					No clocks could be identified in the design. Run platgen to generate synthesis information.
-				</SPAN>
-			</TD>
-		</xsl:if>
-		<xsl:if test="$mtiming_CNT_ &gt; 0">
-			<TD COLSPAN="5" width="100%" align="left" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					These are the post synthesis clock frequencies. The critical frequencies are marked with
-				</SPAN>
-				<SPAN style="color:{$DS_COL_GREEN}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					green.
-				</SPAN>
-				<BR></BR>
-				<SPAN style="color:{$DS_COL_RED}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					The values reported here are post synthesis estimates calculated for each individual module. These values will change after place and route is performed on the entire system.
-				</SPAN>
-			</TD>
-			<TR></TR>
-			<TD COLSPAN="2" width="40%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MODULE</SPAN></TD>
-			<TD COLSPAN="2" width="40%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">CLK Port</SPAN></TD>
-			<TD COLSPAN="1" width="20%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MAX FREQ</SPAN></TD>
-			
-			<xsl:for-each select="MODULES/MODULE/TIMING">
-			<xsl:sort data-type="number" select="@MAXFREQ" order="ascending"/>
-				<xsl:variable name="maxFreq_"  select="@MAXFREQ"/>
-				<xsl:variable name="freqUnit_" select="@FREQUNITS"/>
-				<xsl:variable name="freqCol_">
-					<xsl:if test="position() = 1">	
-						<xsl:value-of select="$DS_COL_GREEN"/>
-					</xsl:if>
-					<xsl:if test="not(position() = 1)">	
-						<xsl:value-of select="$DS_COL_BLACK"/>
-					</xsl:if>
-				</xsl:variable>
-				
-				<xsl:for-each select="TIMECLK">
-					<TR></TR>
-					
-					<TD COLSPAN="2" width="40%" align="left" bgcolor="{$DS_COL_WHITE}">
-							<A HREF="#_{../../@INSTANCE}" style="text-decoration:none">
-								<SPAN style="color:{$DS_COL_XPRP}; font: italic 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="../../@INSTANCE"/></SPAN>
-							</A>
-					</TD>
-					
-					<TD COLSPAN="2" width="40%" align="left" bgcolor="{$DS_COL_WHITE}">
-						<SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">
-							<xsl:value-of select="@SIGNAME"/>
-						</SPAN>
-					</TD>
-					
-					<TD COLSPAN="1" width="20%" align="left" bgcolor="{$DS_COL_WHITE}">
-						<SPAN style="color:{$freqCol_}; font: normal 12px Verdana,Arial,Helvetica,sans-serif">
-							<xsl:value-of select="$maxFreq_"/><xsl:value-of select="$freqUnit_"/>
-						</SPAN>
-					</TD>
-					
-			    </xsl:for-each>
-			</xsl:for-each>
-		</xsl:if>
-		
-	</TABLE>	
-</xsl:template>
-
-<!-- ==============================  END GLOBAL PINOUT      ==================================== -->
-
-<xsl:template name="Layout_NavigateHeader">
-	<xsl:param name="header_name" select="HEADER"/>
-	<BR></BR>
-	<BR></BR>
-	<BR></BR>
-	<TABLE BGCOLOR="{$DS_COL_XPRP}" WIDTH="{$DS_WIDTH}" COLS="3" cellspacing="0" cellpadding="0" border="0">
-		<TH COLSPAN="1" width="90%" align="left">  <SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$header_name"/></SPAN></TH>
-		<xsl:if test="$DS_TYPE='NOFRAMES'">
-			<TH COLSPAN="1" width="10%"  align="middle"><A HREF="#_TOC" style="text-decoration:none"><SPAN style="color:{$DS_COL_LGRY}; font: bold 14px Verdana Arial,Helvetica,sans-serif">TOC</SPAN></A></TH>
-		</xsl:if>	
-		<xsl:if test="$DS_TYPE='FRAMES'">
-			<TH COLSPAN="1" width="10%"  align="middle"><A HREF="#_Overview" style="text-decoration:none"><SPAN style="color:{$DS_COL_LGRY}; font: bold 14px Verdana Arial,Helvetica,sans-serif">TOP</SPAN></A></TH>
-		</xsl:if>	
-	</TABLE>
-</xsl:template>
-
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl
deleted file mode 100644
index 4e7beaa..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLIPSection.xsl
+++ /dev/null
@@ -1,611 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-         
-<xsl:output method="html"/>
-
-<!--
-<xsl:param name="DS_COL_OPB"    select="'#339900'"/>
-<xsl:param name="DS_COL_WHITE"   select="'#FFFFFF'"/>
-<xsl:param name="DS_COL_INFO"   select="'#2233FF'"/>
-<xsl:param name="DS_COL_BLACK"   select="'#000000'"/>
-<xsl:param name="DS_COL_GREY"   select="'#CCCCCC'"/>
-<xsl:param name="DS_COL_XPRP"   select="'#810017'"/>
-<xsl:param name="DS_COL_DOCLNK" select="'#FF9900'"/>
--->
-	        
-<!-- ======================= MAIN PERIPHERAL SECTION =============================== -->
-<xsl:template name="Layout_IPSection">
-
-<TABLE BGCOLOR="{$DS_COL_WHITE}" WIDTH="{$DS_WIDTH}" COLS="4" cellspacing="0" cellpadding="0" border="0">
-	
-	<TD COLSPAN="4" width="5%" align="LEFT" valign="BOTTOM">
-		<A name="_{@INSTANCE}"/>
-		<xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if>		
-		<SPAN style="color:{$DS_COL_XPRP}; font: bold italic 14px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INSTANCE"/></SPAN>
-		<xsl:if test="DESCRIPTION[(@TYPE = 'SHORT')]">
-			<SPAN style="color:{$DS_COL_XPRP}; font: normal italic 12px Verdana,Arial,Helvetica,sans-serif">
-				&#160;&#160;<xsl:value-of select="DESCRIPTION[(@TYPE = 'SHORT')]"/>
-			</SPAN>
-		</xsl:if>
-		<BR></BR>
-		<xsl:if test="DESCRIPTION[(@TYPE = 'LONG')]">
-			<SPAN style="color:{$DS_COL_BLACK}; font: normal italic 12px Verdana,Arial,Helvetica,sans-serif">
-				<xsl:value-of select="DESCRIPTION[(@TYPE = 'LONG')]" disable-output-escaping="yes"/>
-			</SPAN>
-		</xsl:if>
-		<BR></BR>
-		<BR></BR>
-		<BR></BR>
-	</TD>	
-	
-	<TR></TR>
-	
-	<!-- Layout the Module information table-->
-	<TD COLSPAN="2" width="40%" align="LEFT" valign="TOP">
-		<IMG SRC="imgs/{@INSTANCE}.jpg" alt="{@INSTANCE} IP Image" border="0" vspace="0" hspace="0"/>
-	</TD>
-	<TD COLSPAN="2" width="60%" align="MIDDLE" valign="TOP">
-		<xsl:call-template name="Peri_PortListTable"/>
-		<BR></BR>
-		<BR></BR>
-	</TD>
-	
-	<TR></TR>
-				
-	<TD COLSPAN="4" width="100%" align="LEFT" valign="BOTTOM">
-		<xsl:call-template name="Peri_InfoTable"/>
-	</TD>
-	
-<!--	
-	<TD COLSPAN="1" width="5%" align="LEFT"     valign="BOTTOM">
-		<SPAN style="color:{$DS_COL_XPRP}; font: bold normal 16px Verdana,Arial,Helvetica,sans-serif">&#8970;</SPAN>
-	</TD>
-	<TD COLSPAN="2" width="90%" align="MIDDLE"  valign="BOTTOM">
-		<SPAN style="color:{$DS_COL_BLACK}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">&#160;</SPAN>
-	</TD>
-	<TD COLSPAN="1" width="5%" align="RIGHT"    valign="BOTTOM">
-		<SPAN style="color:{$DS_COL_XPRP}; font: bold normal 16px Verdana,Arial,Helvetica,sans-serif">&#8971;</SPAN>
-	</TD>
--->	
-</TABLE>	
-
-<BR></BR>
-<BR></BR>
-
-</xsl:template>
-
-<!-- ======================= PERIHERAL TABLE PARTS   =============================== -->
-<!-- Layout the Module's Information table -->
-<xsl:template name="Peri_InfoTable">
-	
-	<xsl:variable name="mhsParamCNT_" select="count(PARAMETER)"/>
-	
-	<xsl:variable name="table_is_split_">
-		<xsl:if test="$mhsParamCNT_     &gt;  10">1</xsl:if>
-		<xsl:if test="not($mhsParamCNT_ &gt;  10)">0</xsl:if>
-	</xsl:variable>
-	
-	<xsl:variable name="table_width_">
-		<xsl:if test="$mhsParamCNT_  &gt;  10"><xsl:value-of select="$DS_WIDTH"/></xsl:if>
-		<xsl:if test="$mhsParamCNT_  &lt;= 10"><xsl:value-of select="ceiling($DS_WIDTH div 2)"/></xsl:if>
-	</xsl:variable>
-	
-	
-	<xsl:variable name="left_extra_">
-		<xsl:if test="($mhsParamCNT_ mod 2)     = 1">1</xsl:if>
-		<xsl:if test="not(($mhsParamCNT_ mod 2) = 1)">0</xsl:if>
-	</xsl:variable>
-	
-	<xsl:variable name="num_left_" select="floor($mhsParamCNT_ div 2) + $left_extra_"/>
-	<xsl:variable name="num_rhgt_" select="floor($mhsParamCNT_ div 2)"/>
-	
-	<xsl:variable name="mdr_main_col_">
-		<xsl:if test="$mhsParamCNT_  &gt;  10">4</xsl:if>
-		<xsl:if test="$mhsParamCNT_  &lt;= 10">2</xsl:if>
-	</xsl:variable>
-	
-	<xsl:variable name="mdr_othr_col_">
-		<xsl:if test="$mhsParamCNT_  &gt;  10">2</xsl:if>
-		<xsl:if test="$mhsParamCNT_  &lt;= 10">1</xsl:if>
-	</xsl:variable>
-	
-	<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{$table_width_}" COLS="5" cellspacing="1" cellpadding="1" border="1">
-		<TD COLSPAN="5" WIDTH="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">General</SPAN></TD>
-		<TR></TR>
-		<TD COLSPAN="2" WIDTH="40%" align="middle"  bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">IP Core</SPAN></TD>
-		<TD COLSPAN="3" WIDTH="60%" align="middle"  bgcolor="{$DS_COL_WHITE}">
-			<xsl:if test="@DOC_IP">
-				<SPAN style="color:{$DS_COL_XPRP}; font: bold italic 10px Verdana,Arial,Helvetica,sans-serif">
-					<A HREF="{@DOC_IP}" style="text-decoration:none; color:{$DS_COL_XPRP}"><xsl:value-of select="@MODTYPE"/></A>
-				</SPAN>
-			</xsl:if>
-			<xsl:if test="not(@DOC_IP)">
-				<SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">
-					<xsl:value-of select="@MODTYPE"/>
-				</SPAN>
-			</xsl:if>
-		</TD>
-		
-		<TR></TR>	
-		
-		<TD COLSPAN="2" WIDTH="40%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Version</SPAN></TD>
-		<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@HWVERSION"/></SPAN></TD>
-		
-		<xsl:if test="@DOC_DRIVER">
-			<TR></TR>	
-			<TD COLSPAN="2" WIDTH="40%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Driver</SPAN></TD>
-			<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_XPRP}; font: bold italic 10px Verdana,Arial,Helvetica,sans-serif">
-					<A HREF="{@DOC_DRIVER}" style="text-decoration:none; color:{$DS_COL_XPRP}">API</A>
-				</SPAN>
-			</TD>	
-		</xsl:if>	
-		
-		<TR></TR>	
-		
-		<xsl:if test="LICENSEINFO">
-			<TD COLSPAN="5" WIDTH="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">License</SPAN></TD>
-			
-			<TR></TR>
-			<TD COLSPAN="2" WIDTH="40%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">TYPE</SPAN></TD>
-			<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="LICENSEINFO/@TYPE"/></SPAN>
-			</TD>	
-<!--			
-			<TR></TR>
-			<TD COLSPAN="2" WIDTH="40%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">CURRENT STATUS</SPAN></TD>
-			<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="LICENSEINFO/@STATE"/></SPAN>
-			</TD>	
--->			
-			<xsl:if test="LICENSEINFO/@EXPIRESON">
-				<TR></TR>
-				<TD COLSPAN="2" WIDTH="40%" align="middle"  bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">EXPIRES ON</SPAN></TD>
-				<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$DS_COL_WHITE}">
-					<SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="LICENSEINFO/@EXPIRESON"/></SPAN>
-				</TD>	
-			</xsl:if>
-		</xsl:if>	
-		
-		<xsl:if test="$mhsParamCNT_ &gt; 0">
-		<TR></TR>	
-		<TD COLSPAN="5" WIDTH="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">Parameters</SPAN></TD>
-			<TR></TR>
-			<TD COLSPAN="5" width="100%" align="left" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					These are parameters set for this module.
-					<xsl:if test="@DOC_IP">
-						 Refer to the IP <A HREF="{@DOC_IP}" style="text-decoration:none; color:{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_XPRP}; font: bold italic 9px Verdana,Arial,Helvetica,sans-serif"> documentation </SPAN></A>for complete information about module parameters.
-					</xsl:if>
-				</SPAN>
-				<BR></BR>
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-						Parameters marked with 
-				</SPAN>
-				<SPAN style="color:#FFBB00; font: bold 9px Verdana,Arial,Helvetica,sans-serif">yellow</SPAN>
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					indicate parameters set by the user.
-				</SPAN>
-				<BR></BR>
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-						Parameters marked with 
-				</SPAN>
-				<SPAN style="color:{$DS_COL_MODSYSNW}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">blue</SPAN>
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					indicate parameters set by the system.
-				</SPAN>
-			</TD>
-			
-		<xsl:if test="$mhsParamCNT_ &lt;= 10">
-			<TR></TR>	
-			<TD COLSPAN="2" WIDTH="40%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Name</SPAN></TD>
-			<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Value</SPAN></TD>
-		
-			<xsl:for-each select="PARAMETER">
-				<xsl:sort select="@INDEX" data-type="number"/>
-					<xsl:variable name="name_bg_col_">
-						<xsl:choose>
-							
-							<xsl:when test="@CHANGEDBY='USER'">
-								<xsl:value-of select="$DS_COL_MODUSR"/>
-							</xsl:when>		
-								
-							<xsl:when test="@CHANGEDBY='SYSTEM'">
-								<xsl:value-of select="$DS_COL_MODSYS"/>
-							</xsl:when>		
-							
-							<xsl:when test="((position() - 1) mod 2) = 0">
-								<xsl:value-of select="$DS_COL_ASH1"/>
-							</xsl:when>		
-							
-							<xsl:otherwise>
-								<xsl:value-of select="$DS_COL_WHITE"/>
-							</xsl:otherwise>		
-						</xsl:choose>	
-					</xsl:variable>
-						
-					<xsl:variable name="value_bg_col_">
-						<xsl:choose>
-							
-							<xsl:when test="@CHANGEDBY='USER'">
-								<xsl:value-of select="$DS_COL_MODUSR"/>
-							</xsl:when>		
-								
-							<xsl:when test="@CHANGEDBY='SYSTEM'">
-								<xsl:value-of select="$DS_COL_MODSYS"/>
-							</xsl:when>	
-							
-							<xsl:when test="((position() - 1) mod 2) = 0">
-								<xsl:value-of select="$DS_COL_ASH1"/>
-							</xsl:when>		
-							
-							<xsl:otherwise>
-								<xsl:value-of select="$DS_COL_WHITE"/>
-							</xsl:otherwise>		
-								
-						</xsl:choose>	
-					</xsl:variable>
-						
-				<TR></TR>	
-				<TD COLSPAN="2" WIDTH="40%" align="left"   bgcolor="{$name_bg_col_}">
-					<SPAN style="color:{$DS_COL_BLACK};  font: normal 12px Verdana,Arial,Helvetica,sans-serif">
-							<xsl:value-of select="@NAME"/>
-					</SPAN>
-					<xsl:if test="DESCRIPTION">
-						<BR/>
-						<SPAN style="color:{$DS_COL_BLACK};  font: bold italic 9px Verdana,Arial,Helvetica,sans-serif">
-							<xsl:value-of select="DESCRIPTION"/>
-						</SPAN>
-					</xsl:if>	
-				</TD>
-				<TD COLSPAN="3" WIDTH="60%" align="middle" bgcolor="{$value_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@VALUE"/></SPAN></TD>
-			</xsl:for-each>
-	</xsl:if>			
-	
-	<xsl:if test="$mhsParamCNT_ &gt; 10">
-	<TR></TR>	
-	<TD COLSPAN="5" WIDTH="100%">
-	<TABLE BGCOLOR="{$DS_COL_GREY}" WIDTH="100%" COLS="5" cellspacing="0" cellpadding="0" border="0">
-		
-		<TD COLSPAN="2" WIDTH="49%">
-			<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="100%" COLS="2" cellspacing="1" cellpadding="0" border="0">
-				<TD COLSPAN="1" WIDTH="50%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Name</SPAN></TD>
-				<TD COLSPAN="1" WIDTH="50%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Value</SPAN></TD>
-				
-				<xsl:for-each select="PARAMETER">
-					<xsl:sort select="@INDEX" data-type="number"/>
-					<xsl:if test="position() &lt;= $num_left_">	
-						
-						<xsl:variable name="name_bg_col_">
-							<xsl:choose>
-								<xsl:when test="@CHANGEDBY='USER'">
-									<xsl:value-of select="$DS_COL_MODUSR"/>
-								</xsl:when>		
-								
-								<xsl:when test="@CHANGEDBY='SYSTEM'">
-									<xsl:value-of select="$DS_COL_MODSYS"/>
-								</xsl:when>		
-							
-								<xsl:when test="((position() - 1) mod 2) = 0">
-									<xsl:value-of select="$DS_COL_ASH1"/>
-								</xsl:when>		
-							
-								<xsl:otherwise>
-									<xsl:value-of select="$DS_COL_WHITE"/>
-								</xsl:otherwise>		
-							</xsl:choose>	
-						</xsl:variable>
-						
-						<xsl:variable name="value_bg_col_">
-							<xsl:choose>
-								<xsl:when test="@CHANGEDBY='USER'">
-									<xsl:value-of select="$DS_COL_MODUSR"/>
-								</xsl:when>		
-								
-								<xsl:when test="@CHANGEDBY='SYSTEM'">
-									<xsl:value-of select="$DS_COL_MODSYS"/>
-								</xsl:when>		
-							
-								<xsl:when test="((position() - 1) mod 2) = 0">
-									<xsl:value-of select="$DS_COL_ASH1"/>
-								</xsl:when>		
-							
-								<xsl:otherwise>
-									<xsl:value-of select="$DS_COL_WHITE"/>
-								</xsl:otherwise>		
-							</xsl:choose>	
-						</xsl:variable>
-						
-					<TR></TR>	
-					<TD COLSPAN="1" WIDTH="50%" align="left"   bgcolor="{$name_bg_col_}">
-						<SPAN style="color:{$DS_COL_BLACK};  font: normal 12px Verdana,Arial,Helvetica,sans-serif">
-							<xsl:value-of select="@NAME"/>
-						</SPAN>
-						<xsl:if test="DESCRIPTION">
-							<BR/>
-							<SPAN style="color:{$DS_COL_BLACK};  font: bold italic 9px Verdana,Arial,Helvetica,sans-serif">
-								<xsl:value-of select="DESCRIPTION"/>
-							</SPAN>
-						</xsl:if>	
-					</TD>
-					<TD COLSPAN="1" WIDTH="50%" align="middle" bgcolor="{$value_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@VALUE"/></SPAN></TD>
-				</xsl:if>
-			</xsl:for-each>
-			</TABLE>
-		</TD> 
-	
-		<TD COLSPAN="1" WIDTH="2%">
-			<TABLE BGCOLOR="{$DS_COL_GREY}"  WIDTH="100%" COLS="1" cellspacing="0" cellpadding="0" border="0">
-				<TD COLSPAN="1" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;</SPAN></TD>
-			</TABLE>
-		</TD> 
-	
-		<TD COLSPAN="2" WIDTH="49%">
-			<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="100%" COLS="2" cellspacing="1" cellpadding="0" border="0">
-				<TD COLSPAN="1" WIDTH="50%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Name</SPAN></TD>
-				<TD COLSPAN="1" WIDTH="50%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Value</SPAN></TD>
-				<xsl:for-each select="PARAMETER">
-					<xsl:sort select="@INDEX" data-type="number"/>
-					<xsl:if test="position() &gt; $num_left_">	
-						
-						<xsl:variable name="name_bg_col_">
-							<xsl:choose>
-								<xsl:when test="@CHANGEDBY='USER'">
-									<xsl:value-of select="$DS_COL_MODUSR"/>
-								</xsl:when>		
-								
-								<xsl:when test="@CHANGEDBY='SYSTEM'">
-									<xsl:value-of select="$DS_COL_MODSYS"/>
-								</xsl:when>		
-							
-								<xsl:when test="((position() - $num_left_ - 1) mod 2) = 0">
-									<xsl:value-of select="$DS_COL_ASH1"/>
-								</xsl:when>		
-							
-								<xsl:otherwise>
-									<xsl:value-of select="$DS_COL_WHITE"/>
-								</xsl:otherwise>		
-							</xsl:choose>	
-						</xsl:variable>
-						
-						<xsl:variable name="value_bg_col_">
-							<xsl:choose>
-							
-								<xsl:when test="@CHANGEDBY='USER'">
-									<xsl:value-of select="$DS_COL_MODUSR"/>
-								</xsl:when>		
-								
-								<xsl:when test="@CHANGEDBY='SYSTEM'">
-									<xsl:value-of select="$DS_COL_MODSYS"/>
-								</xsl:when>		
-							
-								<xsl:when test="((position() - $num_left_ - 1) mod 2) = 0">
-									<xsl:value-of select="$DS_COL_ASH1"/>
-								</xsl:when>		
-							
-								<xsl:otherwise>
-									<xsl:value-of select="$DS_COL_WHITE"/>
-								</xsl:otherwise>		
-							</xsl:choose>	
-						</xsl:variable>
-					<TR></TR>	
-					<TD COLSPAN="1" WIDTH="50%" align="left"   bgcolor="{$name_bg_col_}">
-						<SPAN style="color:{$DS_COL_BLACK};  font: normal 12px Verdana,Arial,Helvetica,sans-serif">
-							<xsl:value-of select="@NAME"/>
-						</SPAN>
-						<xsl:if test="DESCRIPTION">
-							<BR/>
-							<SPAN style="color:{$DS_COL_BLACK};  font: bold italic 9px Verdana,Arial,Helvetica,sans-serif">
-								<xsl:value-of select="DESCRIPTION"/>
-							</SPAN>
-						</xsl:if>	
-					</TD>
-					<TD COLSPAN="1" WIDTH="50%" align="middle" bgcolor="{$value_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@VALUE"/></SPAN></TD>
-					
-				</xsl:if>
-			</xsl:for-each>
-			
-			<xsl:if test="$left_extra_ &gt; 0">
-				<TR></TR>	
-				<TD COLSPAN="2" WIDTH="100%" align="left" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">&#160;</SPAN></TD>
-			</xsl:if>
-			
-			</TABLE>
-		</TD> 
-		
-	</TABLE>
-	</TD>	
-	</xsl:if>			
-	</xsl:if>
-	</TABLE>
-<!--	
-		<BR></BR>	
--->		
-		<xsl:if test="(@MODCLASS = 'PROCESSOR') and MEMORYMAP">
-<!--			
-			<xsl:message>Found a memory map</xsl:message>
--->			
-			<xsl:call-template name="Layout_MemoryMap">
-				<xsl:with-param name="table_width" select="$table_width_"/>
-			</xsl:call-template>	
-		</xsl:if>
-<!--		
-		<BR></BR>
--->	
-		<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{$table_width_}" COLS="5" cellspacing="1" cellpadding="1" border="0">
-		<TD width="100%" COLSPAN="5" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">Post Synthesis Device Utilization</SPAN></TD>
-		<xsl:choose>
-			<xsl:when test="not(RESOURCES)">
-				<TR></TR>
-				<TD width="100%" COLSPAN="5" align="middle" bgcolor="{$DS_COL_WHITE}">
-				<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-					Device utilization information is not available for this IP. Run platgen to generate synthesis information.
-				</SPAN>
-				</TD>
-			</xsl:when>	
-			<xsl:otherwise>
-				<TR></TR>
-				<TD COLSPAN="2" width="55%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Resource Type</SPAN></TD>
-				<TD COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Used</SPAN></TD>
-				<TD COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Available</SPAN></TD>
-				<TD COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Percent</SPAN></TD>
-				
-				<xsl:for-each select="RESOURCES/RESOURCE">
-					<TR></TR>	
-					<TD COLSPAN="2" width="55%" align="left"   bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@TYPE"/></SPAN></TD>
-					<TD COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@USED"/></SPAN></TD>
-					<TD COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@TOTAL"/></SPAN></TD>
-					<TD COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@PERCENT"/></SPAN></TD>
-				</xsl:for-each>
-			</xsl:otherwise>
-		</xsl:choose>
-<!--		
-	    <BR></BR>	
-		<TD COLSPAN="5" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif"></SPAN></TD>
--->		
-	</TABLE>
-
-</xsl:template>
-
-<!-- Layout the Module's Port list table -->
-<xsl:template name="Peri_PortListTable">
-
-	
-	<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{ceiling($DS_WIDTH div 2)}" COLS="7" cellspacing="1" cellpadding="1" border="0">
-		<TH COLSPAN="7" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">PORT LIST</SPAN></TH>
-	 	<TR></TR>	
-		<TH COLSPAN="7" width="100%" align="left" bgcolor="{$DS_COL_WHITE}">
-			<SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-				The ports listed here are only those connected in the MHS file. 
-				<xsl:if test="@DOC_IP">
-					Refer to the IP <A HREF="{@DOC_IP}" style="text-decoration:none; color:{$DS_COL_XPRP}"> <SPAN style="color:{$DS_COL_XPRP}; font: bold italic 9px Verdana,Arial,Helvetica,sans-serif"> documentation </SPAN> </A>for complete information about module ports.
-				</xsl:if>
-			</SPAN>
-		</TH>
-		<TR></TR>
-		<TH COLSPAN="1" width="5%"  align="left"   bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TH>
-		<TH COLSPAN="2" width="25%" align="left"   bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TH>
-		<TH COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TH>
-		<TH COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TH>
-		<TH COLSPAN="2" width="50%" align="left"   bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIGNAL</SPAN></TH>
-		<xsl:for-each select="PORT[(not(@SIGNAME = '__NOC__') and not(@SIGNAME = '__DEF__') and (@INMHS))]">
-			<xsl:sort data-type="number" select="@INDEX" order="ascending"/>
-			<TR></TR>	
-			<TD COLSPAN="1" width="5%"  align="left" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK};   font: normal 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INDEX"/></SPAN></TD>
-			<TD COLSPAN="2" width="25%" align="left" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK};   font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD>
-			<TD COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@DIR"/></SPAN></TD>
-			
-			<xsl:if test="@MSB and @LSB">
-				<TD COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@LSB"/>:<xsl:value-of select="@MSB"/></SPAN></TD>
-			</xsl:if>			
-			<xsl:if test="not(@MSB and @LSB)">
-				<TD COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-			</xsl:if>			
-			
-			<TD COLSPAN="2" width="50%" align="left" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@SIGNAME"/></SPAN></TD>
-		</xsl:for-each>
-		
-		<xsl:if test="BUSINTERFACE">
-			<xsl:variable name="instance_"><xsl:value-of select="@INSTANCE"/></xsl:variable>
-			<TR></TR>
-			<TH COLSPAN="7" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}">
-				<SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Bus Interfaces</SPAN>
-			</TH>	
-			<TR></TR>
-			
-			<TH COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MASTERSHIP</SPAN></TH>
-			<TH COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TH>
-			<TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">STD</SPAN></TH>
-			<TH COLSPAN="3" width="25%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">BUS</SPAN></TH>
-			<TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">P2P</SPAN></TH>
-			<xsl:for-each select="BUSINTERFACE[(not(@BUSNAME = '__NOC__') and not(@BUSNAME = '__DEF__'))]">
-			<xsl:sort select="@BIFRANK"/>
-					
-				<xsl:variable name="busname_"><xsl:value-of select="@BUSNAME"/></xsl:variable>
-					
-				<xsl:variable name="p2pname_">
-					<xsl:choose>
-						<xsl:when test="(@BUSSTD and not((@BUSSTD='PLB') or (@BUSSTD='OPB')) or (@BIFRANK='TRANSPARENT'))">
-							<xsl:value-of select="../../MODULE[not(@INSTANCE = $instance_) and BUSINTERFACE[(@BUSNAME = $busname_)]]/@INSTANCE"/>
-						</xsl:when>
-						<xsl:when test="not(@BUSSTD) or (@BUSSTD='OPB') or (@BUSSTD='PLB') or (@BIFRANK='TRANSPARENT')">NA</xsl:when>
-				   </xsl:choose>
-				</xsl:variable>					
-				
-				<xsl:variable name="bus_std_">
-					<xsl:if test="@BUSSTD">
-						<xsl:value-of select="@BUSSTD"/>
-					</xsl:if>
-					<xsl:if test="not(@BUSSTD)">NA</xsl:if>
-				</xsl:variable>					
-				
-				
-				<TR></TR>
-				<TH COLSPAN="1" width="15%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@BIFRANK"/></SPAN></TH>
-				<TH COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TH>
-				<TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$bus_std_"/></SPAN></TH>
-				<xsl:if test="$bus_std_ = 'NA'">
-					<TH COLSPAN="3" width="25%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@BUSNAME"/></SPAN></TH>
-				</xsl:if>	
-				<xsl:if test="not($bus_std_ = 'NA')">
-					<TH COLSPAN="3" width="25%" align="middle" bgcolor="{$DS_COL_WHITE}"><A HREF="#_{@BUSNAME}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@BUSNAME"/></SPAN></A></TH>
-				</xsl:if>	
-				<xsl:if test="$p2pname_ = 'NA'">
-					<TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$p2pname_"/></SPAN></TH>
-				</xsl:if>
-				<xsl:if test="not($p2pname_ = 'NA')">
-				    <TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_WHITE}"><A HREF="#_{$p2pname_}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$p2pname_"/></SPAN></A></TH>
-				</xsl:if>
-			</xsl:for-each>
-		</xsl:if>
-		
-		<xsl:if test="@MODCLASS='BUS'">
-			<xsl:variable name="instance_"><xsl:value-of select="@INSTANCE"/></xsl:variable>
-			<TR></TR>
-			<TH COLSPAN="7" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Bus Connections</SPAN></TH>	
-			<TR></TR>
-			<TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">TYPE</SPAN></TH>
-			<TH COLSPAN="5" width="50%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TH>
-			<TH COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">BIF</SPAN></TH>
-			<xsl:for-each select="../MODULE/BUSINTERFACE[(@BUSNAME = $instance_)]">
-				<xsl:sort select="@BIFRANK"/>
-				<xsl:variable name="buscName_"><xsl:value-of select="../@INSTANCE"/></xsl:variable>
-				<TR></TR>
-				<TD COLSPAN="1" width="25%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@BIFRANK"/></SPAN></TD>
-				<TD COLSPAN="5" width="50%" align="middle" bgcolor="{$DS_COL_WHITE}"><A HREF="#_{$buscName_}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$buscName_"/></SPAN></A></TD>
-				<TD COLSPAN="1" width="25%" align="left"   bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD>
-			</xsl:for-each>
-		</xsl:if>
-		
-		<xsl:if test="INTERRUPTSRCS">
-			<TR></TR>
-			<TH COLSPAN="7" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}">
-				<SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Interrupt Priorities</SPAN>
-				<TR></TR>
-				<TH COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">Priority</SPAN></TH>
-				<TH COLSPAN="3" width="55%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TH>
-				<TH COLSPAN="3" width="35%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MODULE</SPAN></TH>
-				<TR></TR>
-				<xsl:for-each select="INTERRUPTSRCS/INTRSRC">
-				<xsl:sort data-type="number" select="@PRIORITY" order="ascending"/>
-				
-					<xsl:variable name="intrsrc_"><xsl:value-of select="@SIGNAME"/></xsl:variable>
-					<xsl:variable name="intrpri_"><xsl:value-of select="@PRIORITY"/></xsl:variable>
-					
-					<xsl:for-each select="../../../MODULE[PORT[((@DIR='O') and (@SIGNAME = $intrsrc_))]]">
-						<TR></TR>
-						<TH COLSPAN="1" width="10%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$intrpri_"/></SPAN></TH>
-						<TH COLSPAN="3" width="55%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$intrsrc_"/></SPAN></TH>
-						<TH COLSPAN="3" width="35%" align="middle" bgcolor="{$DS_COL_WHITE}"><A HREF="#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INSTANCE"/></SPAN></A></TH>
-					</xsl:for-each>
-				</xsl:for-each>
-			</TH>
-		</xsl:if>
-		
-	</TABLE>	
-	
-</xsl:template>
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl
deleted file mode 100644
index 96e9f0c..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLMemoryMap.xsl
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE stylesheet [
-	<!ENTITY HEXUPPER "ABCDEFxx0123456789">
-	<!ENTITY HEXLOWER "abcdefxX0123456789">
-	<!ENTITY HEXU2L " '&HEXLOWER;' , '&HEXUPPER;' ">
-]>	
-<!--
--->
-
-<xsl:stylesheet version="1.0"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-         
-<xsl:output method="html"/>
-			
-<!-- ======================= MAIN MEMORY MAP SECTION =============================== -->
-<xsl:template name="Layout_MemoryMap">
-<xsl:param name="table_width" select="600"/>
-
-<xsl:variable name="procName" select="@INSTANCE"/>
-<!--
-<BR></BR>
-<BR></BR>
--->
-	<xsl:if test="MEMORYMAP/MEMRANGE[(@INSTANCE)]">
-		
-	<TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{$table_width}" COLS="5" cellspacing="1" cellpadding="2" border="0">
-		<TR></TR>	
-		<TD COLSPAN="5" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}">
-			<A name="_{@INSTANCE}_MemoryMap"/>
-			<SPAN style="color:{$DS_COL_WHITE}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MEMORY MAP</SPAN>
-		</TD>
-		<TR></TR>
-		<TD COLSPAN="5" width="100%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_INFO}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">D=DATA ADDRESSABLE &#160;&#160; I=INSTRUCTION ADDRESSABLE</SPAN></TD>
-		<TR></TR>
-		<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">D</SPAN></TD>
-		<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 12px Verdana,Arial,Helvetica,sans-serif">I</SPAN></TD>
-		<TD COLSPAN="1" width="20%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">BASE</SPAN></TD>
-		<TD COLSPAN="1" width="20%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">HIGH</SPAN></TD>
-		<TD COLSPAN="1" width="50%" align="middle" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MODULE</SPAN></TD>
-		<TR></TR>
-		
-		<xsl:for-each select="MEMORYMAP/MEMRANGE[(@INSTANCE)]">
-			<xsl:sort data-type="number" select="@BASEVALUE" order="ascending"/>
-			<TR></TR>
-				<xsl:variable name="isdata">
-					<xsl:if test="@IS_DATA='TRUE'">&#9632;</xsl:if>	
-					<xsl:if test="not(@IS_DATA='TRUE')">&#160;</xsl:if>	
-				</xsl:variable>
-			
-			<xsl:variable name="isinst">
-				<xsl:if test="@IS_INSTRUCTION='TRUE'">
-					&#9632;
-				</xsl:if>	
-				<xsl:if test="not(@IS_INSTRUCTION='TRUE')">
-					&#160;
-				</xsl:if>	
-			</xsl:variable>
-			
-			<xsl:variable name="bupper" select ="@BASE"/>
-			<xsl:variable name="hupper" select ="@HIGH"/>
-			<xsl:variable name="iname"  select ="@INSTANCE"/>
-			<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,sans-serif"><xsl:value-of select="$isdata"/></SPAN></TD>
-			<TD COLSPAN="1" width="5%"  align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,sans-serif"><xsl:value-of select="$isinst"/></SPAN></TD>
-			<TD COLSPAN="1" width="20%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="translate($bupper,&HEXU2L;)"/></SPAN></TD>
-			<TD COLSPAN="1" width="20%" align="middle" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="translate($hupper,&HEXU2L;)"/></SPAN></TD>
-			<TD COLSPAN="1" width="50%" align="right"  bgcolor="{$DS_COL_WHITE}">
-				<A HREF="#_{$iname}" style="text-decoration:none">
-				<SPAN style="color:{$DS_COL_BLACK}; vertical-align:sub; font: normal 8px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@BASENAME"/>:<xsl:value-of select="@HIGHNAME"/></SPAN><SPAN style="color:{$DS_COL_XPRP}; font: bold 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INSTANCE"/></SPAN>
-				</A>
-			</TD>
-		</xsl:for-each>
-	</TABLE>			
-	</xsl:if>
-</xsl:template>
-
-<xsl:template name="FindCorrectLocation">
-	<xsl:param name="ranges"/>
-	<xsl:param name="location"/>
-	<xsl:param name="instname"/>
-	
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl
deleted file mode 100644
index 862b710..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsGen_HTMLTOCTree.xsl
+++ /dev/null
@@ -1,235 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<xsl:stylesheet version="1.0"
-           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-           xmlns:exsl="http://exslt.org/common"
-           xmlns:xlink="http://www.w3.org/1999/xlink">
-         
-<xsl:template name="Write_TOCTree">
-<HTML>
-<HEAD>
-<TITLE>Table of Contents</TITLE>
-	
-	<BASE target="{$DS_FRAME_MAIN}"></BASE>
-	
-	<!--specify a css for the TOC -->
-	<link   rel="stylesheet"      href="ds_Report.css" type="text/css"></link>
-	
-	<!--specify the javascript for the TOC-->
-	<script src="ds_Report.js" type="text/javascript"></script>
-</HEAD>	
-
-	<!--Layout Table of contents   -->
-	<BODY class="main_body">
-		<xsl:call-template name="Layout_TOCTree"/>
-	</BODY>		
-	
-</HTML>
-</xsl:template>
-
-	
-<!-- ======================= LAYOUT TABLE OF CONTENTS ====================================== -->
-<xsl:template name="Layout_TOCTree">
-	
-<xsl:variable name="toc_col_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="$DS_COL_LGRY"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_COL_WHITE"/>	
-	</xsl:if>
-</xsl:variable>
-
-<xsl:variable name="toc_width_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="$DS_WIDTH"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_TOC_WIDTH"/>	
-	</xsl:if>
-</xsl:variable>
-
-<xsl:variable name="toc_target_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="$DS_FRAME_SELF"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_FRAME_MAIN"/>	
-	</xsl:if>
-</xsl:variable>
-
-<xsl:variable name="trg_html_">
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<xsl:value-of select="''"/>	
-	</xsl:if>
-	
-	<xsl:if test="$DS_TYPE='FRAMES'">
-		<xsl:value-of select="$DS_HTML_MAIN"/>	
-	</xsl:if>
-</xsl:variable>
-	
-	
-<A name="_TOC"/>
-<TABLE BGCOLOR="{$toc_col_}" WIDTH="{$toc_width_}" COLS="2" cellspacing="0" cellpadding="3" border="0">
-
-	<xsl:if test="$DS_TYPE='NOFRAMES'">
-		<TH COLSPAN="2" width="100%" align="middle"><SPAN style="color:{$DS_COL_XPRP}; font: bold 20px Arial,Helvetica,sans-serif">TABLE OF CONTENTS</SPAN></TH>
-	</xsl:if>
-	
-	<TR></TR>
-	<TD COLSPAN="1" width="40%" align="left">
-		<BR></BR>
-		<A HREF="{$trg_html_}#_Overview" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Overview</SPAN></A>
-		
-		<BR></BR>
-		<A HREF="{$trg_html_}#_BlockDiagram" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Block Diagram</SPAN></A>
-		
-		<BR></BR>
-		<A HREF="{$trg_html_}#_ExternalPorts" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">External Ports</SPAN></A>
-		
-		<BR></BR>
-		<xsl:variable name="proc_CNT" select="count(MODULES/MODULE[(@MODCLASS = 'PROCESSOR')])"/>
-		
-		<xsl:if test="MODULES/MODULE[(@MODCLASS='PROCESSOR')]">
-		<DIV class="trigger" onClick="showBranch('Processors'); swapBranchImg('BranchImg_Processors');">
-			<xsl:if test="$proc_CNT &gt; 1">
-				<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Processors&#160;</SPAN>
-			</xsl:if>	
-			<xsl:if test="not($proc_CNT &gt; 1)">
-				<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Processor&#160;</SPAN>
-			</xsl:if>	
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Processors"></IMG>	
-		</DIV>
-		
-		<SPAN class="branch" id="Processors">		
-			<xsl:for-each select="MODULES/MODULE[(@MODCLASS='PROCESSOR')]">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><BR></BR>
-				<xsl:if test="MEMORYMAP/MEMRANGE[(@INSTANCE)]">
-					<A HREF="{$trg_html_}#_{@INSTANCE}_MemoryMap" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;memory map</SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-				</xsl:if>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[(@MODCLASS='DEBUG')]">
-		<DIV class="trigger" onClick="showBranch('Debuggers'); swapBranchImg('BranchImg_Debugger');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Debuggers&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Debugger"></IMG>	
-		</DIV>		
-		
-		<SPAN class="branch" id="Debuggers">		
-			<xsl:for-each select="MODULES/MODULE[(@MODCLASS='DEBUG')]">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>
-		
-		
-		<xsl:if test="MODULES/MODULE[(@MODCLASS='INTERRUPT_CNTLR')]">
-		<DIV class="trigger" onClick="showBranch('Interrupts'); swapBranchImg('BranchImg_Interrupts');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Interrupt Controllers&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Interrupts"></IMG>	
-		</DIV>
-		
-		<SPAN class="branch" id="Interrupts">		
-			<xsl:for-each select="MODULES/MODULE[(@MODCLASS='INTERRUPT_CNTLR')]">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='BUS' or @MODCLASS='BUS_ARBITER']">
-		<DIV class="trigger" onClick="showBranch('Busses'); swapBranchImg('BranchImg_Busses');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Busses&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Busses"></IMG>	
-		</DIV>		
-			
-		<SPAN class="branch" id="Busses">		
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='BUS' or @MODCLASS='BUS_ARBITER']">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='BUS_BRIDGE']">
-		<DIV class="trigger" onClick="showBranch('Bridges'); swapBranchImg('BranchImg_Bridges');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Bridges&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Bridges"></IMG>	
-		</DIV>	
-		<SPAN class="branch" id="Bridges">
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='BUS_BRIDGE']">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='MEMORY']">
-		<DIV class="trigger" onClick="showBranch('Memory'); swapBranchImg('BranchImg_Memory');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Memory&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Memory"></IMG>	
-		</DIV>		
-		<SPAN class="branch" id="Memory">
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='MEMORY']">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>		
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='MEMORY_CNTLR']">
-		<DIV class="trigger" onClick="showBranch('MemoryCntlr'); swapBranchImg('BranchImg_MemoryCntlr');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Memory Controllers&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_MemoryCntlr"></IMG>	
-		</DIV>		
-		<SPAN class="branch" id="MemoryCntlr">
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='MEMORY_CNTLR']">
-			<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>		
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='PERIPHERAL']">
-		<DIV class="trigger" onClick="showBranch('Peripheral'); swapBranchImg('BranchImg_Peripheral');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Peripherals&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_Peripheral"></IMG>	
-		</DIV>	
-		<SPAN class="branch" id="Peripheral">
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='PERIPHERAL']">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Courier Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>		
-		
-		<xsl:if test="MODULES/MODULE[@MODCLASS='IP']">
-		<DIV class="trigger" onClick="showBranch('IP'); swapBranchImg('BranchImg_IP');">
-			<SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">IP&#160;</SPAN>
-			<IMG src="imgs/IMG_openBranch.gif" border="0" id="BranchImg_IP"></IMG>	
-		</DIV>
-		<SPAN class="branch" id="IP">
-			<xsl:for-each select="MODULES/MODULE[@MODCLASS='IP']">
-				<xsl:sort select="@INSTANCE"/>
-				<A HREF="{$trg_html_}#_{@INSTANCE}" style="text-decoration:none"><SPAN style="color:{$DS_COL_XPRP}; font: italic 14px Courier Verdana Arial,Helvetica,sans-serif">&#160;&#160;&#160;<xsl:value-of select="@INSTANCE"/></SPAN></A><xsl:if test="LICENSEINFO"><IMG SRC="imgs/IMG_LicensedCore.bmp" border="0" vspace="0" hspace="0"/></xsl:if><BR></BR>
-			</xsl:for-each>
-		</SPAN>	
-		</xsl:if>			
-		
-		<A HREF="{$trg_html_}#_TimingInfo" style="text-decoration:none"><SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Timing Information</SPAN></A><BR></BR>
-<!--		
--->	
-
-	</TD>
-	
-</TABLE>
-</xsl:template>
-
-</xsl:stylesheet>
-<!-- ======================= END LAYOUT TABLE OF CONTENT TREE =================================== -->
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd
deleted file mode 100644
index 110f5ce..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/svg10.dtd
+++ /dev/null
@@ -1,1704 +0,0 @@
-<!-- =====================================================================
-  This is the DTD for SVG 1.0.
-
-  The specification for SVG that corresponds to this DTD is available at:
-
-    http://www.w3.org/TR/2001/REC-SVG-20010904/
-
-  Copyright (c) 2000 W3C (MIT, INRIA, Keio), All Rights Reserved.
-
-  For SVG 1.0:
-
-    Namespace:
-      http://www.w3.org/2000/svg  
-
-    Public identifier:
-      PUBLIC "-//W3C//DTD SVG 1.0//EN"
-
-    URI for the DTD:
-      http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd
-============================================================================= -->
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: Data types 
-     ============================================================== -->
-
-<!ENTITY % BaselineShiftValue "CDATA">
-    <!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) -->
-
-<!ENTITY % Boolean "(false | true)">
-    <!-- feature specification -->
-
-<!ENTITY % ClassList "CDATA">
-    <!-- list of classes -->
-
-<!ENTITY % ClipValue "CDATA">
-    <!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) -->
-
-<!ENTITY % ClipPathValue "CDATA">
-    <!-- 'clip-path' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % ClipFillRule "(nonzero | evenodd | inherit)">
-    <!-- 'clip-rule' or fill-rule property/attribute value -->
-
-<!ENTITY % ContentType "CDATA">
-    <!-- media type, as per [RFC2045] -->
-
-<!ENTITY % Coordinate "CDATA">
-    <!-- a <coordinate> -->
-
-<!ENTITY % Coordinates "CDATA">
-    <!-- a list of <coordinate>s -->
-
-<!ENTITY % Color "CDATA">
-    <!-- a <color> value -->
-
-<!ENTITY % CursorValue "CDATA">
-    <!-- 'cursor' property/attribute value (e.g., 'crosshair', %URI;) -->
-
-<!ENTITY % EnableBackgroundValue "CDATA">
-    <!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') -->
-
-<!ENTITY % ExtensionList "CDATA">
-    <!-- extension list specification -->
-
-<!ENTITY % FeatureList "CDATA">
-    <!-- feature list specification -->
-
-<!ENTITY % FilterValue "CDATA">
-    <!-- 'filter' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % FontFamilyValue "CDATA">
-    <!-- 'font-family' property/attribute value (i.e., list of fonts) -->
-
-<!ENTITY % FontSizeValue "CDATA">
-    <!-- 'font-size' property/attribute value -->
-
-<!ENTITY % FontSizeAdjustValue "CDATA">
-    <!-- 'font-size-adjust' property/attribute value -->
-
-<!ENTITY % GlyphOrientationHorizontalValue "CDATA">
-    <!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) -->
-
-<!ENTITY % GlyphOrientationVerticalValue "CDATA">
-    <!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) -->
-
-<!ENTITY % Integer "CDATA">
-    <!-- a <integer> -->
-
-<!ENTITY % KerningValue "CDATA">
-    <!-- 'kerning' property/attribute value (e.g., auto | <length>) -->
-
-<!ENTITY % LanguageCode "NMTOKEN">
-    <!-- a language code, as per [RFC3066] -->
-
-<!ENTITY % LanguageCodes "CDATA">
-    <!-- comma-separated list of language codes, as per [RFC3066] -->
-
-<!ENTITY % Length "CDATA">
-    <!-- a <length> -->
-
-<!ENTITY % Lengths "CDATA">
-    <!-- a list of <length>s -->
-
-<!ENTITY % LinkTarget "NMTOKEN">
-    <!-- link to this target -->
-
-<!ENTITY % MarkerValue "CDATA">
-    <!-- 'marker' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % MaskValue "CDATA">
-    <!-- 'mask' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % MediaDesc "CDATA">
-    <!-- comma-separated list of media descriptors. -->
-
-<!ENTITY % Number "CDATA">
-    <!-- a <number> -->
-
-<!ENTITY % NumberOptionalNumber "CDATA">
-    <!-- list of <number>s, but at least one and at most two -->
-
-<!ENTITY % NumberOrPercentage "CDATA">
-    <!-- a <number> or a  <percentage> -->
-
-<!ENTITY % Numbers "CDATA">
-    <!-- a list of <number>s -->
-
-<!ENTITY % OpacityValue "CDATA">
-    <!-- opacity value (e.g., <number>) -->
-
-<!ENTITY % Paint "CDATA">
-    <!-- a 'fill' or 'stroke' property/attribute value: <paint> -->
-
-<!ENTITY % PathData "CDATA">
-    <!-- a path data specification -->
-
-<!ENTITY % Points "CDATA">
-    <!-- a list of points -->
-
-<!ENTITY % PreserveAspectRatioSpec "CDATA">
-    <!-- 'preserveAspectRatio' attribute specification -->
-
-<!ENTITY % Script "CDATA">
-    <!-- script expression -->
-
-<!ENTITY % SpacingValue "CDATA">
-    <!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., normal | <length>) -->
-
-<!ENTITY % StrokeDashArrayValue "CDATA">
-    <!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) -->
-
-<!ENTITY % StrokeDashOffsetValue "CDATA">
-    <!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) -->
-
-<!ENTITY % StrokeMiterLimitValue "CDATA">
-    <!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) -->
-
-<!ENTITY % StrokeWidthValue "CDATA">
-    <!-- 'stroke-width' property/attribute value (e.g., <length>) -->
-
-<!ENTITY % StructuredText
-  "content CDATA #FIXED 'structured text'" >
-
-<!ENTITY % StyleSheet "CDATA">
-    <!-- style sheet data -->
-
-<!ENTITY % SVGColor "CDATA">
-    <!-- An SVG color value (RGB plus optional ICC) -->
-
-<!ENTITY % Text "CDATA">
-    <!-- arbitrary text string -->
-
-<!ENTITY % TextDecorationValue "CDATA">
-    <!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') -->
-
-<!ENTITY % TransformList "CDATA">
-    <!-- list of transforms -->
-
-<!ENTITY % URI "CDATA">
-    <!-- a Uniform Resource Identifier, see [URI] -->
-
-<!ENTITY % ViewBoxSpec "CDATA">
-    <!-- 'viewBox' attribute specification -->
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: Collections of common attributes 
-     ============================================================== -->
-
-<!-- All elements have an ID. -->
-<!ENTITY % stdAttrs
- "id ID #IMPLIED
-  xml:base %URI; #IMPLIED" >
-
-<!-- Common attributes for elements that might contain character data content. -->
-<!ENTITY % langSpaceAttrs
- "xml:lang %LanguageCode; #IMPLIED
-  xml:space (default|preserve) #IMPLIED" >
-
-<!-- Common attributes to check for system capabilities. -->
-<!ENTITY % testAttrs
- "requiredFeatures %FeatureList; #IMPLIED
-  requiredExtensions %ExtensionList; #IMPLIED
-  systemLanguage %LanguageCodes; #IMPLIED" >
-
-<!-- For most uses of URI referencing:
-        standard XLink attributes other than xlink:href. -->
-<!ENTITY % xlinkRefAttrs
- "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
-  xlink:type (simple) #FIXED 'simple' 
-  xlink:role %URI; #IMPLIED
-  xlink:arcrole %URI; #IMPLIED
-  xlink:title CDATA #IMPLIED
-  xlink:show (other) 'other'
-  xlink:actuate (onLoad) #FIXED 'onLoad'" >
-
-<!-- Standard XLink attributes for uses of URI referencing where xlink:show is 'embed' -->
-<!ENTITY % xlinkRefAttrsEmbed
- "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
-  xlink:type (simple) #FIXED 'simple' 
-  xlink:role %URI; #IMPLIED
-  xlink:arcrole %URI; #IMPLIED
-  xlink:title CDATA #IMPLIED
-  xlink:show (embed) 'embed'
-  xlink:actuate (onLoad) #FIXED 'onLoad'" >
-
-<!ENTITY % graphicsElementEvents
-  "onfocusin %Script; #IMPLIED
-   onfocusout %Script; #IMPLIED
-   onactivate %Script; #IMPLIED
-   onclick %Script; #IMPLIED
-   onmousedown %Script; #IMPLIED
-   onmouseup %Script; #IMPLIED
-   onmouseover %Script; #IMPLIED
-   onmousemove %Script; #IMPLIED
-   onmouseout %Script; #IMPLIED
-   onload %Script; #IMPLIED" >
-
-<!ENTITY % documentEvents
-  "onunload %Script; #IMPLIED
-   onabort %Script; #IMPLIED
-   onerror %Script; #IMPLIED
-   onresize %Script; #IMPLIED
-   onscroll %Script; #IMPLIED
-   onzoom %Script; #IMPLIED" >
-
-<!ENTITY % animationEvents
-  "onbegin %Script; #IMPLIED
-   onend %Script; #IMPLIED
-   onrepeat %Script; #IMPLIED" >
-
-<!-- This entity allows for at most one of desc, title and metadata,
-     supplied in any order -->
-<!ENTITY % descTitleMetadata
-          "(((desc,((title,metadata?)|(metadata,title?))?)|
-          (title,((desc,metadata?)|(metadata,desc?))?)|
-          (metadata,((desc,title?)|(title,desc?))?))?)" >
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: Collections of presentation attributes 
-     ============================================================== -->
-
-<!-- The following presentation attributes have to do with specifying color. -->
-<!ENTITY % PresentationAttributes-Color
-  "color %Color; #IMPLIED
-   color-interpolation (auto | sRGB | linearRGB | inherit) #IMPLIED
-   color-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to container elements. -->
-<!ENTITY % PresentationAttributes-Containers
-  "enable-background %EnableBackgroundValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to 'feFlood' elements. -->
-<!ENTITY % PresentationAttributes-feFlood
-  "flood-color %SVGColor; #IMPLIED
-   flood-opacity %OpacityValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to filling and stroking operations. -->
-<!ENTITY % PresentationAttributes-FillStroke
-  "fill %Paint; #IMPLIED
-   fill-opacity %OpacityValue; #IMPLIED
-   fill-rule %ClipFillRule; #IMPLIED
-   stroke %Paint; #IMPLIED
-   stroke-dasharray %StrokeDashArrayValue; #IMPLIED
-   stroke-dashoffset %StrokeDashOffsetValue; #IMPLIED
-   stroke-linecap (butt | round | square | inherit) #IMPLIED
-   stroke-linejoin (miter | round | bevel | inherit) #IMPLIED
-   stroke-miterlimit %StrokeMiterLimitValue; #IMPLIED
-   stroke-opacity %OpacityValue; #IMPLIED
-   stroke-width %StrokeWidthValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to filter primitives. -->
-<!ENTITY % PresentationAttributes-FilterPrimitives
-  "color-interpolation-filters (auto | sRGB | linearRGB | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes have to do with selecting a font to use. -->
-<!ENTITY % PresentationAttributes-FontSpecification
-  "font-family %FontFamilyValue; #IMPLIED
-   font-size %FontSizeValue; #IMPLIED
-   font-size-adjust %FontSizeAdjustValue; #IMPLIED
-   font-stretch (normal | wider | narrower | ultra-condensed | extra-condensed |
-                 condensed | semi-condensed | semi-expanded | expanded |
-                 extra-expanded | ultra-expanded | inherit) #IMPLIED
-   font-style (normal | italic | oblique | inherit) #IMPLIED
-   font-variant (normal | small-caps | inherit) #IMPLIED
-   font-weight (normal | bold | bolder | lighter | 100 | 200 | 300 |
-               400 | 500 | 600 | 700 | 800 | 900 | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to gradient 'stop' elements. -->
-<!ENTITY % PresentationAttributes-Gradients
-  "stop-color %SVGColor; #IMPLIED
-   stop-opacity %OpacityValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to graphics elements. -->
-<!ENTITY % PresentationAttributes-Graphics
-  "clip-path %ClipPathValue; #IMPLIED
-   clip-rule %ClipFillRule; #IMPLIED
-   cursor %CursorValue; #IMPLIED
-   display (inline | block | list-item | run-in | compact | marker |
-            table | inline-table | table-row-group | table-header-group |
-            table-footer-group | table-row | table-column-group | table-column |
-            table-cell | table-caption | none | inherit) #IMPLIED
-   filter %FilterValue; #IMPLIED
-   image-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED
-   mask %MaskValue; #IMPLIED
-   opacity %OpacityValue; #IMPLIED
-   pointer-events (visiblePainted | visibleFill | visibleStroke | visible |
-                   painted | fill | stroke | all | none | inherit) #IMPLIED
-   shape-rendering (auto | optimizeSpeed | crispEdges | geometricPrecision | inherit) #IMPLIED
-   text-rendering (auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit) #IMPLIED
-   visibility (visible | hidden | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to 'image' elements. -->
-<!ENTITY % PresentationAttributes-Images
-  "color-profile CDATA #IMPLIED " >
-
-<!--The following presentation attributes apply to 'feDiffuseLighting' and 'feSpecularLighting' elements. -->
-<!ENTITY % PresentationAttributes-LightingEffects
-  "lighting-color %SVGColor; #IMPLIED " >
-
-<!-- The following presentation attributes apply to marker operations. -->
-<!ENTITY % PresentationAttributes-Markers
-  "marker-start %MarkerValue; #IMPLIED
-   marker-mid %MarkerValue; #IMPLIED
-   marker-end %MarkerValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to text content elements. -->
-<!ENTITY % PresentationAttributes-TextContentElements
-  "alignment-baseline (baseline | top | before-edge | text-top | text-before-edge |
-                        middle | bottom | after-edge | text-bottom | text-after-edge |
-                        ideographic | lower | hanging | mathematical | inherit) #IMPLIED
-   baseline-shift %BaselineShiftValue; #IMPLIED
-   direction (ltr | rtl | inherit) #IMPLIED
-   dominant-baseline (auto | autosense-script | no-change | reset|
-                      ideographic | lower | hanging | mathematical | inherit ) #IMPLIED
-   glyph-orientation-horizontal %GlyphOrientationHorizontalValue; #IMPLIED
-   glyph-orientation-vertical %GlyphOrientationVerticalValue; #IMPLIED
-   kerning %KerningValue; #IMPLIED
-   letter-spacing %SpacingValue; #IMPLIED
-   text-anchor (start | middle | end | inherit) #IMPLIED
-   text-decoration %TextDecorationValue; #IMPLIED
-   unicode-bidi (normal | embed | bidi-override | inherit) #IMPLIED
-   word-spacing %SpacingValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to 'text' elements. -->
-<!ENTITY % PresentationAttributes-TextElements
-  "writing-mode (lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to elements that establish viewports. -->
-<!ENTITY % PresentationAttributes-Viewports
-  "clip %ClipValue; #IMPLIED
-   overflow (visible | hidden | scroll | auto | inherit) #IMPLIED " >
-
-<!--The following represents the complete list of presentation attributes. -->
-<!ENTITY % PresentationAttributes-All
-  "%PresentationAttributes-Color;
-   %PresentationAttributes-Containers;
-   %PresentationAttributes-feFlood;
-   %PresentationAttributes-FillStroke;
-   %PresentationAttributes-FilterPrimitives;
-   %PresentationAttributes-FontSpecification;
-   %PresentationAttributes-Gradients;
-   %PresentationAttributes-Graphics;
-   %PresentationAttributes-Images;
-   %PresentationAttributes-LightingEffects;
-   %PresentationAttributes-Markers;
-   %PresentationAttributes-TextContentElements;
-   %PresentationAttributes-TextElements;
-   %PresentationAttributes-Viewports;" >
-
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: DTD extensions 
-     ============================================================== -->
-
-<!-- Allow for extending the DTD with internal subset for 
-     container and graphics elements -->
-<!ENTITY % ceExt "" >
-<!ENTITY % geExt "" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Document Structure 
-     ============================================================== -->
-
-<!ENTITY % svgExt "" >
-<!ELEMENT svg (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%svgExt;)* >
-<!ATTLIST svg
-  xmlns CDATA #FIXED "http://www.w3.org/2000/svg"
-  xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED 
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  zoomAndPan (disable | magnify) 'magnify'
-  %graphicsElementEvents;
-  %documentEvents;
-  version %Number; #FIXED "1.0"
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED
-  contentScriptType %ContentType; "text/ecmascript"
-  contentStyleType %ContentType; "text/css" >
-
-<!ENTITY % gExt "" >
-<!ELEMENT g (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%gExt;)* >
-<!ATTLIST g
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;  >
-
-<!ENTITY % defsExt "" >
-<!ELEMENT defs (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%defsExt;)* >
-<!ATTLIST defs
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;  >
-
-<!ENTITY % descExt "" >
-<!ELEMENT desc (#PCDATA %descExt;)* >
-<!ATTLIST desc
-  %stdAttrs;
-  %langSpaceAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %StructuredText; >
-
-<!ENTITY % titleExt "" >
-<!ELEMENT title (#PCDATA %titleExt;)* >
-<!ATTLIST title
-  %stdAttrs;
-  %langSpaceAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %StructuredText; >
-
-<!ENTITY % symbolExt "" >
-<!ELEMENT symbol (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%symbolExt;)* >
-<!ATTLIST symbol
-  %stdAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  %graphicsElementEvents; >
-
-<!ENTITY % useExt "" >
-<!ELEMENT use (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                   %geExt;%useExt;)*) >
-<!ATTLIST use
-  %stdAttrs;
-  %xlinkRefAttrsEmbed;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED >
-
-<!ENTITY % imageExt "" >
-<!ELEMENT image (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                   %geExt;%imageExt;)*) >
-<!ATTLIST image
-  %stdAttrs;
-  %xlinkRefAttrsEmbed;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Images;
-  %PresentationAttributes-Viewports;
-  transform %TransformList; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #REQUIRED
-  height %Length; #REQUIRED >
-
-<!ENTITY % switchExt "" >
-<!ELEMENT switch (%descTitleMetadata;,
-                  (path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|switch|a|foreignObject|
-                   animate|set|animateMotion|animateColor|animateTransform
-                   %ceExt;%switchExt;)*) >
-<!ATTLIST switch
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents; >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Styling 
-     ============================================================== -->
-
-<!ELEMENT style (#PCDATA) >
-<!ATTLIST style 
-  %stdAttrs;
-  xml:space (preserve) #FIXED "preserve"
-  type %ContentType; #REQUIRED
-  media %MediaDesc; #IMPLIED
-  title %Text; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Paths
-     ============================================================== -->
-
-<!ENTITY % pathExt "" >
-<!ELEMENT path (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%pathExt;)*) >
-<!ATTLIST path
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  d %PathData; #REQUIRED
-  pathLength %Number; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Basic Shapes
-     ============================================================== -->
-
-<!ENTITY % rectExt "" >
-<!ELEMENT rect (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%rectExt;)*) >
-<!ATTLIST rect
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #REQUIRED
-  height %Length; #REQUIRED
-  rx %Length; #IMPLIED
-  ry %Length; #IMPLIED >
-
-<!ENTITY % circleExt "" >
-<!ELEMENT circle (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%circleExt;)*) >
-<!ATTLIST circle
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  cx %Coordinate; #IMPLIED
-  cy %Coordinate; #IMPLIED
-  r %Length; #REQUIRED >
-
-<!ENTITY % ellipseExt "" >
-<!ELEMENT ellipse (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%ellipseExt;)*) >
-<!ATTLIST ellipse
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  cx %Coordinate; #IMPLIED
-  cy %Coordinate; #IMPLIED
-  rx %Length; #REQUIRED
-  ry %Length; #REQUIRED >
-
-<!ENTITY % lineExt "" >
-<!ELEMENT line (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%lineExt;)*) >
-<!ATTLIST line
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x1 %Coordinate; #IMPLIED
-  y1 %Coordinate; #IMPLIED
-  x2 %Coordinate; #IMPLIED
-  y2 %Coordinate; #IMPLIED >
-
-<!ENTITY % polylineExt "" >
-<!ELEMENT polyline (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%polylineExt;)*) >
-<!ATTLIST polyline
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  points %Points; #REQUIRED >
-
-<!ENTITY % polygonExt "" >
-<!ELEMENT polygon (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%polygonExt;)*) >
-<!ATTLIST polygon
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  points %Points; #REQUIRED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Text
-     ============================================================== -->
-
-<!ENTITY % textExt "" >
-<!ELEMENT text (#PCDATA|desc|title|metadata|
-                tspan|tref|textPath|altGlyph|a|animate|set|
-                animateMotion|animateColor|animateTransform
-                %geExt;%textExt;)* >
-<!ATTLIST text
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %PresentationAttributes-TextElements;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >
-
-<!ENTITY % tspanExt "" >
-<!ELEMENT tspan (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
-                %tspanExt;)* >
-<!ATTLIST tspan
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >
-
-<!ENTITY % trefExt "" >
-<!ELEMENT tref (desc|title|metadata|animate|set|animateColor
-                %trefExt;)* >
-<!ATTLIST tref
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >
-
-<!ENTITY % textPathExt "" >
-<!ELEMENT textPath (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
-                %textPathExt;)* >
-<!ATTLIST textPath
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  %langSpaceAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  startOffset %Length; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED
-  method (align|stretch) #IMPLIED
-  spacing (auto|exact) #IMPLIED >
-
-<!ENTITY % altGlyphExt "" >
-<!ELEMENT altGlyph (#PCDATA %altGlyphExt;)* >
-<!ATTLIST altGlyph
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED 
-  glyphRef CDATA #IMPLIED
-  format CDATA #IMPLIED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED >
-
-<!ENTITY % altGlyphDefExt "" >
-<!ELEMENT altGlyphDef ((glyphRef+|altGlyphItem+) %altGlyphDefExt;) >
-<!ATTLIST altGlyphDef
-  %stdAttrs; >
-
-<!ENTITY % altGlyphItemExt "" >
-<!ELEMENT altGlyphItem (glyphRef+ %altGlyphItemExt;) >
-<!ATTLIST altGlyphItem
-  %stdAttrs; >
-
-<!ELEMENT glyphRef EMPTY >
-<!ATTLIST glyphRef
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-FontSpecification;
-  glyphRef CDATA #IMPLIED
-  format CDATA #IMPLIED
-  x %Number; #IMPLIED
-  y %Number; #IMPLIED
-  dx %Number; #IMPLIED
-  dy %Number; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Painting: Filling, Stroking and Marker Symbols 
-     ============================================================== -->
-
-<!ENTITY % markerExt "" >
-<!ELEMENT marker (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%markerExt;)* >
-<!ATTLIST marker
-  %stdAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  refX %Coordinate; #IMPLIED
-  refY %Coordinate; #IMPLIED
-  markerUnits (strokeWidth | userSpaceOnUse) #IMPLIED
-  markerWidth  %Length; #IMPLIED
-  markerHeight %Length; #IMPLIED
-  orient CDATA #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Color 
-     ============================================================== -->
-
-<!ELEMENT color-profile (%descTitleMetadata;) >
-<!ATTLIST color-profile 
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  local CDATA #IMPLIED  
-  name CDATA #REQUIRED
-  rendering-intent (auto | perceptual | relative-colorimetric | saturation | absolute-colorimetric) "auto" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Gradients and Patterns 
-     ============================================================== -->
-
-<!ENTITY % linearGradientExt "" >
-<!ELEMENT linearGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
-                   %linearGradientExt;)*) >
-<!ATTLIST linearGradient
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Gradients;
-  gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  gradientTransform %TransformList; #IMPLIED
-  x1 %Coordinate; #IMPLIED
-  y1 %Coordinate; #IMPLIED
-  x2 %Coordinate; #IMPLIED
-  y2 %Coordinate; #IMPLIED
-  spreadMethod (pad | reflect | repeat) #IMPLIED >
-
-
-<!ENTITY % radialGradientExt "" >
-<!ELEMENT radialGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
-                   %radialGradientExt;)*) >
-<!ATTLIST radialGradient
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Gradients;
-  gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  gradientTransform %TransformList; #IMPLIED
-  cx %Coordinate; #IMPLIED
-  cy %Coordinate; #IMPLIED
-  r %Length; #IMPLIED
-  fx %Coordinate; #IMPLIED
-  fy %Coordinate; #IMPLIED
-  spreadMethod (pad | reflect | repeat) #IMPLIED >
-
-
-<!ENTITY % stopExt "" >
-<!ELEMENT stop (animate|set|animateColor
-                   %stopExt;)* >
-<!ATTLIST stop
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Gradients;
-  offset %NumberOrPercentage; #REQUIRED >
-
-<!ENTITY % patternExt "" >
-<!ELEMENT pattern (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%patternExt;)* >
-<!ATTLIST pattern
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  patternUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  patternContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  patternTransform %TransformList; #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Clipping, Masking and Compositing 
-     ============================================================== -->
-
-<!ENTITY % clipPathExt "" >
-<!ELEMENT clipPath (%descTitleMetadata;,
-                    (path|text|rect|circle|ellipse|line|polyline|polygon|
-                     use|animate|set|animateMotion|animateColor|animateTransform
-                     %ceExt;%clipPathExt;)*) >
-<!ATTLIST clipPath
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %PresentationAttributes-TextElements;
-  transform %TransformList; #IMPLIED
-  clipPathUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED >
-
-<!ENTITY % maskExt "" >
-<!ELEMENT mask (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%maskExt;)*  >
-<!ATTLIST mask
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  maskUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  maskContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Filter Effects
-     ============================================================== -->
-
-<!ENTITY % filterExt "" >
-<!ELEMENT filter (%descTitleMetadata;,(feBlend|feFlood|
-  feColorMatrix|feComponentTransfer|
-  feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap|
-  feGaussianBlur|feImage|feMerge|
-  feMorphology|feOffset|feSpecularLighting|
-  feTile|feTurbulence|
-  animate|set
-  %filterExt;)*) >
-<!ATTLIST filter
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  filterUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  primitiveUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED
-  filterRes %NumberOptionalNumber; #IMPLIED >
-
-<!ENTITY % filter_primitive_attributes
-  "x %Coordinate; #IMPLIED
-   y %Coordinate; #IMPLIED
-   width %Length; #IMPLIED
-   height %Length; #IMPLIED
-   result CDATA #IMPLIED" >
-
-<!ENTITY % filter_primitive_attributes_with_in
-  "%filter_primitive_attributes;
-   in CDATA #IMPLIED">
-
-<!ELEMENT feDistantLight (animate|set)* >
-<!ATTLIST feDistantLight
-  %stdAttrs;
-  azimuth %Number; #IMPLIED
-  elevation %Number; #IMPLIED >
-
-<!ELEMENT fePointLight (animate|set)* >
-<!ATTLIST fePointLight
-  %stdAttrs;
-  x %Number; #IMPLIED
-  y %Number; #IMPLIED
-  z %Number; #IMPLIED >
-
-<!ELEMENT feSpotLight (animate|set)* >
-<!ATTLIST feSpotLight
-  %stdAttrs;
-  x %Number; #IMPLIED
-  y %Number; #IMPLIED
-  z %Number; #IMPLIED
-  pointsAtX %Number; #IMPLIED
-  pointsAtY %Number; #IMPLIED
-  pointsAtZ %Number; #IMPLIED
-  specularExponent %Number; #IMPLIED
-  limitingConeAngle %Number; #IMPLIED >
-
-<!ELEMENT feBlend (animate|set)* >
-<!ATTLIST feBlend
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  in2 CDATA #REQUIRED
-  mode (normal | multiply | screen | darken | lighten) "normal" >
-
-<!ELEMENT feColorMatrix (animate|set)* >
-<!ATTLIST feColorMatrix
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  type (matrix | saturate | hueRotate | luminanceToAlpha) "matrix"
-  values CDATA #IMPLIED >
-
-<!ELEMENT feComponentTransfer (feFuncR?,feFuncG?,feFuncB?,feFuncA?) >
-<!ATTLIST feComponentTransfer
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in; >
-
-<!ENTITY % component_transfer_function_attributes
-  "type (identity | table | discrete | linear | gamma) #REQUIRED
-   tableValues CDATA #IMPLIED
-   slope %Number; #IMPLIED
-   intercept %Number; #IMPLIED
-   amplitude %Number; #IMPLIED
-   exponent %Number; #IMPLIED
-   offset %Number; #IMPLIED" >
-
-<!ELEMENT feFuncR (animate|set)* >
-<!ATTLIST feFuncR
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feFuncG (animate|set)* >
-<!ATTLIST feFuncG
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feFuncB (animate|set)* >
-<!ATTLIST feFuncB
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feFuncA (animate|set)* >
-<!ATTLIST feFuncA
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feComposite (animate|set)* >
-<!ATTLIST feComposite
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  in2 CDATA #REQUIRED
-  operator (over | in | out | atop | xor | arithmetic) "over"
-  k1 %Number; #IMPLIED
-  k2 %Number; #IMPLIED
-  k3 %Number; #IMPLIED
-  k4 %Number; #IMPLIED >
-
-<!ELEMENT feConvolveMatrix (animate|set)* >
-<!ATTLIST feConvolveMatrix
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  order %NumberOptionalNumber; #REQUIRED
-  kernelMatrix CDATA #REQUIRED
-  divisor %Number; #IMPLIED
-  bias %Number; #IMPLIED
-  targetX %Integer; #IMPLIED
-  targetY %Integer; #IMPLIED
-  edgeMode (duplicate|wrap|none) "duplicate" 
-  kernelUnitLength %NumberOptionalNumber; #IMPLIED 
-  preserveAlpha %Boolean; #IMPLIED >
-
-<!ELEMENT feDiffuseLighting ((feDistantLight|fePointLight|feSpotLight),(animate|set|animateColor)*) >
-<!ATTLIST feDiffuseLighting
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FilterPrimitives;
-  %PresentationAttributes-LightingEffects;
-  %filter_primitive_attributes_with_in;
-  surfaceScale %Number; #IMPLIED
-  diffuseConstant %Number; #IMPLIED 
-  kernelUnitLength %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feDisplacementMap (animate|set)* >
-<!ATTLIST feDisplacementMap
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  in2 CDATA #REQUIRED
-  scale %Number; #IMPLIED
-  xChannelSelector (R | G | B | A) "A"
-  yChannelSelector (R | G | B | A) "A" >
-
-<!ELEMENT feFlood (animate|set|animateColor)* >
-<!ATTLIST feFlood
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-feFlood;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in; >
-
-<!ELEMENT feGaussianBlur (animate|set)* >
-<!ATTLIST feGaussianBlur
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  stdDeviation %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feImage (animate|set|animateTransform)* >
-<!ATTLIST feImage
-  %stdAttrs;
-  %xlinkRefAttrsEmbed;
-  xlink:href %URI; #REQUIRED
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  %filter_primitive_attributes;
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet' >
-
-<!ELEMENT feMerge (feMergeNode)* >
-<!ATTLIST feMerge
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes; >
-
-<!ELEMENT feMergeNode (animate|set)* >
-<!ATTLIST feMergeNode
-  %stdAttrs;
-  in CDATA #IMPLIED >
-
-<!ELEMENT feMorphology (animate|set)* >
-<!ATTLIST feMorphology
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  operator (erode | dilate) "erode"
-  radius %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feOffset (animate|set)* >
-<!ATTLIST feOffset
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  dx %Number; #IMPLIED
-  dy %Number; #IMPLIED >
-
-<!ELEMENT feSpecularLighting ((feDistantLight|fePointLight|feSpotLight),(animate|set|animateColor)*) >
-<!ATTLIST feSpecularLighting
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FilterPrimitives;
-  %PresentationAttributes-LightingEffects;
-  %filter_primitive_attributes_with_in;
-  surfaceScale %Number; #IMPLIED
-  specularConstant %Number; #IMPLIED
-  specularExponent %Number; #IMPLIED 
-  kernelUnitLength %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feTile (animate|set)* >
-<!ATTLIST feTile
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in; >
-
-<!ELEMENT feTurbulence (animate|set)* >
-<!ATTLIST feTurbulence
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes;
-  baseFrequency %NumberOptionalNumber; #IMPLIED
-  numOctaves %Integer; #IMPLIED
-  seed %Number; #IMPLIED
-  stitchTiles (stitch | noStitch) "noStitch"
-  type (fractalNoise | turbulence) "turbulence" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Interactivity 
-     ============================================================== -->
-
-<!ELEMENT cursor (%descTitleMetadata;) >
-<!ATTLIST cursor
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Linking
-     ============================================================== -->
-
-<!ENTITY % aExt "" >
-<!ELEMENT a       (#PCDATA|desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%aExt;)* >
-<!ATTLIST a
-  %stdAttrs;
-  xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
-  xlink:type (simple) #FIXED "simple" 
-  xlink:role %URI; #IMPLIED
-  xlink:arcrole %URI; #IMPLIED
-  xlink:title CDATA #IMPLIED
-  xlink:show (new|replace) 'replace'
-  xlink:actuate (onRequest) #FIXED 'onRequest'
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  target %LinkTarget; #IMPLIED >
-
-<!ENTITY % viewExt "" >
-<!ELEMENT view (%descTitleMetadata;%viewExt;) >
-<!ATTLIST view
-  %stdAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  zoomAndPan (disable | magnify) 'magnify' 
-  viewTarget CDATA #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Scripting 
-     ============================================================== -->
-
-<!ELEMENT script (#PCDATA) >
-<!ATTLIST script
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  externalResourcesRequired %Boolean; #IMPLIED
-  type %ContentType; #REQUIRED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Animation 
-     ============================================================== -->
-
-<!ENTITY % animElementAttrs
- "%xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED" >
-
-<!ENTITY % animAttributeAttrs
- "attributeName  CDATA  #REQUIRED
-  attributeType  CDATA  #IMPLIED" >
-
-<!ENTITY % animTimingAttrs
- "begin CDATA #IMPLIED 
-  dur CDATA #IMPLIED
-  end CDATA #IMPLIED
-  min CDATA #IMPLIED
-  max CDATA #IMPLIED
-  restart (always | never | whenNotActive) 'always'
-  repeatCount CDATA #IMPLIED 
-  repeatDur CDATA #IMPLIED
-  fill (remove | freeze) 'remove'" >
-
-<!ENTITY % animValueAttrs
- "calcMode (discrete | linear | paced | spline) 'linear'
-  values CDATA #IMPLIED
-  keyTimes CDATA #IMPLIED
-  keySplines CDATA #IMPLIED
-  from CDATA #IMPLIED
-  to CDATA #IMPLIED
-  by CDATA #IMPLIED" >
-
-<!ENTITY % animAdditionAttrs
- "additive       (replace | sum) 'replace'
-  accumulate     (none | sum) 'none'" >
-
-<!ENTITY % animateExt "" >
-<!ELEMENT animate (%descTitleMetadata;%animateExt;) >
-<!ATTLIST animate
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  %animValueAttrs;
-  %animAdditionAttrs; >
-
-<!ENTITY % setExt "" >
-<!ELEMENT set (%descTitleMetadata;%setExt;) >
-<!ATTLIST set
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  to CDATA #IMPLIED >
-
-<!ENTITY % animateMotionExt "" >
-<!ELEMENT animateMotion (%descTitleMetadata;,mpath? %animateMotionExt;) >
-<!ATTLIST animateMotion
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animTimingAttrs;
-  calcMode (discrete | linear | paced | spline) 'paced'
-  values CDATA #IMPLIED
-  keyTimes CDATA #IMPLIED
-  keySplines CDATA #IMPLIED
-  from CDATA #IMPLIED
-  to CDATA #IMPLIED
-  by CDATA #IMPLIED
-  %animAdditionAttrs;
-  path CDATA #IMPLIED
-  keyPoints CDATA #IMPLIED
-  rotate CDATA #IMPLIED
-  origin CDATA #IMPLIED >
-
-<!ENTITY % mpathExt "" >
-<!ELEMENT mpath (%descTitleMetadata;%mpathExt;) >
-<!ATTLIST mpath
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  externalResourcesRequired %Boolean; #IMPLIED >
-
-<!ENTITY % animateColorExt "" >
-<!ELEMENT animateColor (%descTitleMetadata;%animateColorExt;) >
-<!ATTLIST animateColor
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  %animValueAttrs;
-  %animAdditionAttrs; >
-
-<!ENTITY % animateTransformExt "" >
-<!ELEMENT animateTransform (%descTitleMetadata;%animateTransformExt;) >
-<!ATTLIST animateTransform
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  %animValueAttrs;
-  %animAdditionAttrs;
-  type (translate | scale | rotate | skewX | skewY) "translate" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Fonts 
-     ============================================================== -->
-
-<!ENTITY % fontExt "" >
-<!ELEMENT font (%descTitleMetadata;,font-face,
-                   missing-glyph,(glyph|hkern|vkern %fontExt;)*) >
-<!ATTLIST font
-  %stdAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  horiz-origin-x %Number; #IMPLIED
-  horiz-origin-y %Number; #IMPLIED
-  horiz-adv-x %Number; #REQUIRED
-  vert-origin-x %Number; #IMPLIED
-  vert-origin-y %Number; #IMPLIED
-  vert-adv-y %Number; #IMPLIED >
-
-<!ENTITY % glyphExt "" >
-<!ELEMENT glyph (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %glyphExt;)* >
-<!ATTLIST glyph
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  unicode CDATA #IMPLIED
-  glyph-name CDATA #IMPLIED
-  d %PathData; #IMPLIED
-  orientation CDATA #IMPLIED
-  arabic-form CDATA #IMPLIED
-  lang %LanguageCodes; #IMPLIED
-  horiz-adv-x %Number; #IMPLIED
-  vert-origin-x %Number; #IMPLIED
-  vert-origin-y %Number; #IMPLIED
-  vert-adv-y %Number; #IMPLIED >
-
-<!ENTITY % missing-glyphExt "" >
-<!ELEMENT missing-glyph (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %missing-glyphExt;)* >
-<!ATTLIST missing-glyph
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  d %PathData; #IMPLIED
-  horiz-adv-x %Number; #IMPLIED
-  vert-origin-x %Number; #IMPLIED
-  vert-origin-y %Number; #IMPLIED
-  vert-adv-y %Number; #IMPLIED >
-
-<!ELEMENT hkern EMPTY >
-<!ATTLIST hkern
-  %stdAttrs;
-  u1 CDATA #IMPLIED
-  g1 CDATA #IMPLIED
-  u2 CDATA #IMPLIED
-  g2 CDATA #IMPLIED
-  k %Number; #REQUIRED >
-
-<!ELEMENT vkern EMPTY >
-<!ATTLIST vkern
-  %stdAttrs;
-  u1 CDATA #IMPLIED
-  g1 CDATA #IMPLIED
-  u2 CDATA #IMPLIED
-  g2 CDATA #IMPLIED
-  k %Number; #REQUIRED >
-
-<!ELEMENT font-face (%descTitleMetadata;,font-face-src?,definition-src?) >
-<!ATTLIST font-face 
-  %stdAttrs;
-  font-family CDATA #IMPLIED
-  font-style CDATA #IMPLIED
-  font-variant CDATA #IMPLIED
-  font-weight CDATA #IMPLIED
-  font-stretch CDATA #IMPLIED
-  font-size CDATA #IMPLIED
-  unicode-range CDATA #IMPLIED
-  units-per-em %Number; #IMPLIED
-  panose-1 CDATA #IMPLIED
-  stemv %Number; #IMPLIED
-  stemh %Number; #IMPLIED
-  slope %Number; #IMPLIED
-  cap-height %Number; #IMPLIED
-  x-height %Number; #IMPLIED
-  accent-height %Number; #IMPLIED
-  ascent %Number; #IMPLIED
-  descent %Number; #IMPLIED
-  widths CDATA #IMPLIED
-  bbox CDATA #IMPLIED
-  ideographic %Number; #IMPLIED
-  alphabetic %Number; #IMPLIED
-  mathematical %Number; #IMPLIED
-  hanging %Number; #IMPLIED
-  v-ideographic %Number; #IMPLIED
-  v-alphabetic %Number; #IMPLIED
-  v-mathematical %Number; #IMPLIED
-  v-hanging %Number; #IMPLIED
-  underline-position %Number; #IMPLIED
-  underline-thickness %Number; #IMPLIED
-  strikethrough-position %Number; #IMPLIED
-  strikethrough-thickness %Number; #IMPLIED
-  overline-position %Number; #IMPLIED
-  overline-thickness %Number; #IMPLIED >
-
-<!ELEMENT font-face-src (font-face-uri|font-face-name)+ >
-<!ATTLIST font-face-src 
-  %stdAttrs; >
-
-<!ELEMENT font-face-uri (font-face-format*) >
-<!ATTLIST font-face-uri 
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED >
-
-<!ELEMENT font-face-format EMPTY >
-<!ATTLIST font-face-format 
-  %stdAttrs;
-  string CDATA #IMPLIED >
-
-<!ELEMENT font-face-name EMPTY >
-<!ATTLIST font-face-name 
-  %stdAttrs;
-  name CDATA #IMPLIED >
-
-<!ELEMENT definition-src EMPTY >
-<!ATTLIST definition-src 
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Metadata 
-     ============================================================== -->
-
-<!ENTITY % metadataExt "" >
-<!ELEMENT metadata (#PCDATA %metadataExt;)* >
-<!ATTLIST metadata
-  %stdAttrs; >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Extensibility 
-     ============================================================== -->
-
-<!ENTITY % foreignObjectExt "" >
-<!ELEMENT foreignObject (#PCDATA %ceExt;%foreignObjectExt;)* >
-<!ATTLIST foreignObject
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #REQUIRED
-  height %Length; #REQUIRED
-  %StructuredText; >
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml
deleted file mode 100644
index 1be0a7c..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/system_shapes.xml
+++ /dev/null
@@ -1,1643 +0,0 @@
-
-<EDKSYSTEM ARCH="virtex4" EDKVERSION="10.1.01" PART="xc4vfx12ff668-10" SRC="C:/E/temp/rc/3/V5.0.2/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.xmp" TIMESTAMP="Sun May 25 17:18:21 2008&#xA;">
-
-  <MODULES>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/cpu_ppc405_v1_10_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/ppc405_virtex4_v2_01_a/doc/ppc405_virtex4.pdf" HWVERSION="2.01.a" INSTANCE="ppc405_0" INTERRUPT_CNTLR="xps_intc_0" IPTYPE="PROCESSOR" IS_PLACED="TRUE" MHS_INDEX="0" MODCLASS="PROCESSOR" MODTYPE="ppc405_virtex4" SAV_INDEX="0">
-      <DESCRIPTION TYPE="SHORT">PowerPC 405 Virtex-4</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">A wrapper to instantiate the PowerPC 405 Processor Block primitive</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_DPLB0_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_DPLB0_NATIVE_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_IPLB0_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_IPLB0_NATIVE_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_DPLB1_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_DPLB1_NATIVE_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_IPLB1_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_IPLB1_NATIVE_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_DPLB1_ADDR_BASE" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_DPLB1_ADDR_HIGH" VALUE="0x00000000"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_IPLB1_ADDR_BASE" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_IPLB1_ADDR_HIGH" VALUE="0x00000000"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="12" NAME="C_FASTEST_PLB_CLOCK" VALUE="DPLB0"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_GENERATE_PLB_TIMESPECS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="14" NAME="C_DPLB0_P2P" VALUE="1"/>
-      <PARAMETER MPD_INDEX="15" NAME="C_DPLB1_P2P" VALUE="1"/>
-      <PARAMETER MPD_INDEX="16" NAME="C_IPLB0_P2P" VALUE="1"/>
-      <PARAMETER MPD_INDEX="17" NAME="C_IPLB1_P2P" VALUE="1"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="18" NAME="C_IDCR_BASEADDR" VALUE="0b0100000000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="19" NAME="C_IDCR_HIGHADDR" VALUE="0b0111111111"/>
-      <PARAMETER MPD_INDEX="20" NAME="C_DISABLE_OPERAND_FORWARDING" VALUE="1"/>
-      <PARAMETER MPD_INDEX="21" NAME="C_MMU_ENABLE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="22" NAME="C_DETERMINISTIC_MULT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="23" NAME="C_PLBSYNCBYPASS" VALUE="1"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="24" NAME="C_APU_CONTROL" VALUE="0b0000000000000001"/>
-      <PARAMETER MPD_INDEX="25" NAME="C_APU_UDI_1" VALUE="0b101000011000100110000011"/>
-      <PARAMETER MPD_INDEX="26" NAME="C_APU_UDI_2" VALUE="0b101000111000100110000011"/>
-      <PARAMETER MPD_INDEX="27" NAME="C_APU_UDI_3" VALUE="0b101001011000100111000011"/>
-      <PARAMETER MPD_INDEX="28" NAME="C_APU_UDI_4" VALUE="0b101001111000100111000011"/>
-      <PARAMETER MPD_INDEX="29" NAME="C_APU_UDI_5" VALUE="0b101010011000110000000011"/>
-      <PARAMETER MPD_INDEX="30" NAME="C_APU_UDI_6" VALUE="0b101010111000110000000011"/>
-      <PARAMETER MPD_INDEX="31" NAME="C_APU_UDI_7" VALUE="0b101011011000110001000011"/>
-      <PARAMETER MPD_INDEX="32" NAME="C_APU_UDI_8" VALUE="0b101011111000110001000011"/>
-      <PARAMETER MPD_INDEX="33" NAME="C_PVR_HIGH" VALUE="0b0000"/>
-      <PARAMETER MPD_INDEX="34" NAME="C_PVR_LOW" VALUE="0b0000"/>
-      <BUSINTERFACE BIFRANK="TARGET" BIF_X="0" BIF_Y="0" BUSNAME="jtagppc_0_0" BUSSTD="XIL" BUS_STD="XIL_JTAGPPC" MPD_INDEX="10" NAME="JTAGPPC" ORIENTED="WEST"/>
-      <BUSINTERFACE BIFRANK="MASTER" BIF_X="1" BIF_Y="1" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="2" NAME="IPLB0" ORIENTED="EAST"/>
-      <BUSINTERFACE BIFRANK="MASTER" BIF_X="0" BIF_Y="1" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="1" NAME="DPLB0" ORIENTED="WEST"/>
-      <BUSINTERFACE BIFRANK="TARGET" BIF_X="1" BIF_Y="0" BUSNAME="ppc_reset_bus" BUSSTD="XIL" BUS_STD="XIL_RESETPPC" MPD_INDEX="11" NAME="RESETPPC" ORIENTED="EAST"/>
-      <BUSINTERFACE BIFRANK="MASTER" BUSNAME="__NOC__" BUSSTD="FCB" BUS_STD="FCB" MPD_INDEX="7" NAME="MFCB"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="6" NAME="CPMC405CLOCK" SIGIS="CLK" SIGNAME="proc_clk_s"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="237" NAME="EICC405EXTINPUTIRQ" SENSITIVITY="EDGE_RISING" SIGIS="INTERRUPT" SIGNAME="EICC405EXTINPUTIRQ"/>
-      <PORT DIR="O" MPD_INDEX="0" NAME="C405CPMCORESLEEPREQ" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="1" NAME="C405CPMMSRCE" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="2" NAME="C405CPMMSREE" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="3" NAME="C405CPMTIMERIRQ" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="4" NAME="C405CPMTIMERRESETREQ" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="5" NAME="C405XXXMACHINECHECK" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="CPMC405CORECLKINACTIVE" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="CPMC405CPUCLKEN" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="CPMC405JTAGCLKEN" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="CPMC405TIMERCLKEN" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="CPMC405TIMERTICK" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="MCBCPUCLKEN" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="MCBTIMEREN" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="MCPPCRST" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="CPMDCRCLK" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="CPMFCMCLK" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="17" NAME="C405RSTCHIPRESETREQ" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="18" NAME="C405RSTCORERESETREQ" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="19" NAME="C405RSTSYSRESETREQ" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="RSTC405RESETCHIP" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="RSTC405RESETCORE" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="RSTC405RESETSYS" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="23" NAME="APUFCMDECODED" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="24" NAME="APUFCMDECUDI" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="25" NAME="APUFCMDECUDIVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="APUFCMENDIAN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="APUFCMFLUSH" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="APUFCMINSTRUCTION" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="APUFCMINSTRVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="APUFCMLOADBYTEEN" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="APUFCMLOADDATA" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="APUFCMLOADDVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="APUFCMOPERANDVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="APUFCMRADATA" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="APUFCMRBDATA" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="APUFCMWRITEBACKOK" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="APUFCMXERCA" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="38" NAME="FCMAPUCR" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="39" NAME="FCMAPUDCDCREN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="40" NAME="FCMAPUDCDFORCEALIGN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="41" NAME="FCMAPUDCDFORCEBESTEERING" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="42" NAME="FCMAPUDCDFPUOP" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="43" NAME="FCMAPUDCDGPRWRITE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="44" NAME="FCMAPUDCDLDSTBYTE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="45" NAME="FCMAPUDCDLDSTDW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="46" NAME="FCMAPUDCDLDSTHW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="47" NAME="FCMAPUDCDLDSTQW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="48" NAME="FCMAPUDCDLDSTWD" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="49" NAME="FCMAPUDCDLOAD" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="50" NAME="FCMAPUDCDPRIVOP" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="51" NAME="FCMAPUDCDRAEN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="52" NAME="FCMAPUDCDRBEN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="53" NAME="FCMAPUDCDSTORE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="54" NAME="FCMAPUDCDTRAPBE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="55" NAME="FCMAPUDCDTRAPLE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="56" NAME="FCMAPUDCDUPDATE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="57" NAME="FCMAPUDCDXERCAEN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="58" NAME="FCMAPUDCDXEROVEN" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="59" NAME="FCMAPUDECODEBUSY" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="60" NAME="FCMAPUDONE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="61" NAME="FCMAPUEXCEPTION" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="62" NAME="FCMAPUEXEBLOCKINGMCO" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="63" NAME="FCMAPUEXECRFIELD" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="64" NAME="FCMAPUEXENONBLOCKINGMCO" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="65" NAME="FCMAPUINSTRACK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="66" NAME="FCMAPULOADWAIT" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="67" NAME="FCMAPURESULT" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="68" NAME="FCMAPURESULTVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="69" NAME="FCMAPUSLEEPNOTREADY" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="70" NAME="FCMAPUXERCA" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="71" NAME="FCMAPUXEROV" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="72" NAME="IPLB0_PLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="73" NAME="IPLB0_PLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="74" NAME="IPLB0_PLB_MBusy" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="75" NAME="IPLB0_PLB_MRdErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="76" NAME="IPLB0_PLB_MWrErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="77" NAME="IPLB0_PLB_MWrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="78" NAME="IPLB0_PLB_MWrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="79" NAME="IPLB0_PLB_MAddrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="80" NAME="IPLB0_PLB_MRdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="81" NAME="IPLB0_PLB_MRdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="82" NAME="IPLB0_PLB_MRdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_IPLB0_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="83" NAME="IPLB0_PLB_MRearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="84" NAME="IPLB0_PLB_MSSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="85" NAME="IPLB0_PLB_MTimeout" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="86" NAME="IPLB0_PLB_MRdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="87" NAME="IPLB0_M_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="88" NAME="IPLB0_M_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_IPLB0_DWIDTH/8)-1)]"/>
-      <PORT DIR="O" MPD_INDEX="89" NAME="IPLB0_M_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="90" NAME="IPLB0_M_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="91" NAME="IPLB0_M_request" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="92" NAME="IPLB0_M_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="93" NAME="IPLB0_M_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="94" NAME="IPLB0_M_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="95" NAME="IPLB0_M_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_IPLB0_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="96" NAME="IPLB0_M_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="97" NAME="IPLB0_M_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="98" NAME="IPLB0_M_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="99" NAME="IPLB0_M_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="100" NAME="IPLB0_M_priority" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="101" NAME="IPLB0_M_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="102" NAME="IPLB0_M_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="I" MPD_INDEX="103" NAME="DPLB0_PLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="104" NAME="DPLB0_PLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="105" NAME="DPLB0_PLB_MBusy" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="106" NAME="DPLB0_PLB_MRdErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="107" NAME="DPLB0_PLB_MWrErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="108" NAME="DPLB0_PLB_MWrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="109" NAME="DPLB0_PLB_MWrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="110" NAME="DPLB0_PLB_MAddrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="111" NAME="DPLB0_PLB_MRdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="112" NAME="DPLB0_PLB_MRdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="113" NAME="DPLB0_PLB_MRdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_DPLB0_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="114" NAME="DPLB0_PLB_MRearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="115" NAME="DPLB0_PLB_MSSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="116" NAME="DPLB0_PLB_MTimeout" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="117" NAME="DPLB0_PLB_MRdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="118" NAME="DPLB0_M_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="119" NAME="DPLB0_M_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_DPLB0_DWIDTH/8)-1)]"/>
-      <PORT DIR="O" MPD_INDEX="120" NAME="DPLB0_M_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="121" NAME="DPLB0_M_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="122" NAME="DPLB0_M_request" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="123" NAME="DPLB0_M_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="124" NAME="DPLB0_M_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="125" NAME="DPLB0_M_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="126" NAME="DPLB0_M_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_DPLB0_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="127" NAME="DPLB0_M_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="128" NAME="DPLB0_M_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="129" NAME="DPLB0_M_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="130" NAME="DPLB0_M_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="131" NAME="DPLB0_M_priority" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="132" NAME="DPLB0_M_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="133" NAME="DPLB0_M_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="I" MPD_INDEX="134" NAME="IPLB1_PLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="135" NAME="IPLB1_PLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="136" NAME="IPLB1_PLB_MBusy" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="137" NAME="IPLB1_PLB_MRdErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="138" NAME="IPLB1_PLB_MWrErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="139" NAME="IPLB1_PLB_MWrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="140" NAME="IPLB1_PLB_MWrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="141" NAME="IPLB1_PLB_MAddrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="142" NAME="IPLB1_PLB_MRdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="143" NAME="IPLB1_PLB_MRdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="144" NAME="IPLB1_PLB_MRdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_IPLB1_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="145" NAME="IPLB1_PLB_MRearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="146" NAME="IPLB1_PLB_MSSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="147" NAME="IPLB1_PLB_MTimeout" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="148" NAME="IPLB1_PLB_MRdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="149" NAME="IPLB1_M_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="150" NAME="IPLB1_M_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_IPLB1_DWIDTH/8)-1)]"/>
-      <PORT DIR="O" MPD_INDEX="151" NAME="IPLB1_M_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="152" NAME="IPLB1_M_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="153" NAME="IPLB1_M_request" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="154" NAME="IPLB1_M_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="155" NAME="IPLB1_M_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="156" NAME="IPLB1_M_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="157" NAME="IPLB1_M_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_IPLB1_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="158" NAME="IPLB1_M_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="159" NAME="IPLB1_M_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="160" NAME="IPLB1_M_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="161" NAME="IPLB1_M_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="162" NAME="IPLB1_M_priority" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="163" NAME="IPLB1_M_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="164" NAME="IPLB1_M_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="I" MPD_INDEX="165" NAME="DPLB1_PLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="166" NAME="DPLB1_PLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="167" NAME="DPLB1_PLB_MBusy" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="168" NAME="DPLB1_PLB_MRdErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="169" NAME="DPLB1_PLB_MWrErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="170" NAME="DPLB1_PLB_MWrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="171" NAME="DPLB1_PLB_MWrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="172" NAME="DPLB1_PLB_MAddrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="173" NAME="DPLB1_PLB_MRdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="174" NAME="DPLB1_PLB_MRdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="175" NAME="DPLB1_PLB_MRdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_DPLB1_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="176" NAME="DPLB1_PLB_MRearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="177" NAME="DPLB1_PLB_MSSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="178" NAME="DPLB1_PLB_MTimeout" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="179" NAME="DPLB1_PLB_MRdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="180" NAME="DPLB1_M_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="181" NAME="DPLB1_M_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_DPLB1_DWIDTH/8)-1)]"/>
-      <PORT DIR="O" MPD_INDEX="182" NAME="DPLB1_M_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="183" NAME="DPLB1_M_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="184" NAME="DPLB1_M_request" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="185" NAME="DPLB1_M_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="186" NAME="DPLB1_M_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="187" NAME="DPLB1_M_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="188" NAME="DPLB1_M_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_DPLB1_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="189" NAME="DPLB1_M_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="190" NAME="DPLB1_M_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="191" NAME="DPLB1_M_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="192" NAME="DPLB1_M_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="193" NAME="DPLB1_M_priority" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="194" NAME="DPLB1_M_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="195" NAME="DPLB1_M_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="I" MPD_INDEX="196" NAME="BRAMDSOCMCLK" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="197" NAME="BRAMDSOCMRDDBUS" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="198" NAME="DSARCVALUE" SIGNAME="__DEF__" VECFORMULA="[0:7]"/>
-      <PORT DIR="I" MPD_INDEX="199" NAME="DSCNTLVALUE" SIGNAME="__DEF__" VECFORMULA="[0:7]"/>
-      <PORT DIR="O" MPD_INDEX="200" NAME="DSOCMBRAMABUS" SIGNAME="__DEF__" VECFORMULA="[8:29]"/>
-      <PORT DIR="O" MPD_INDEX="201" NAME="DSOCMBRAMBYTEWRITE" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="202" NAME="DSOCMBRAMEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="203" NAME="DSOCMBRAMWRDBUS" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="204" NAME="DSOCMBUSY" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="205" NAME="DSOCMRDADDRVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="206" NAME="DSOCMWRADDRVALID" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="207" NAME="DSOCMRWCOMPLETE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="208" NAME="BRAMISOCMCLK" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="209" NAME="BRAMISOCMRDDBUS" SIGNAME="__DEF__" VECFORMULA="[0:63]"/>
-      <PORT DIR="I" MPD_INDEX="210" NAME="BRAMISOCMDCRRDDBUS" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="211" NAME="ISARCVALUE" SIGNAME="__DEF__" VECFORMULA="[0:7]"/>
-      <PORT DIR="I" MPD_INDEX="212" NAME="ISCNTLVALUE" SIGNAME="__DEF__" VECFORMULA="[0:7]"/>
-      <PORT DIR="O" MPD_INDEX="213" NAME="ISOCMBRAMEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="214" NAME="ISOCMBRAMEVENWRITEEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="215" NAME="ISOCMBRAMODDWRITEEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="216" NAME="ISOCMBRAMRDABUS" SIGNAME="__DEF__" VECFORMULA="[8:28]"/>
-      <PORT DIR="O" MPD_INDEX="217" NAME="ISOCMBRAMWRABUS" SIGNAME="__DEF__" VECFORMULA="[8:28]"/>
-      <PORT DIR="O" MPD_INDEX="218" NAME="ISOCMBRAMWRDBUS" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="219" NAME="ISOCMDCRBRAMEVENEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="220" NAME="ISOCMDCRBRAMODDEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="221" NAME="ISOCMDCRBRAMRDSELECT" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="222" NAME="DCREMACABUS" SIGNAME="__DEF__" VECFORMULA="[8:9]"/>
-      <PORT DIR="O" MPD_INDEX="223" NAME="DCREMACCLK" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="224" NAME="DCREMACDBUS" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="225" NAME="DCREMACENABLER" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="226" NAME="DCREMACREAD" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="227" NAME="DCREMACWRITE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="228" NAME="EMACDCRACK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="229" NAME="EMACDCRDBUS" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="230" NAME="EXTDCRABUS" SIGNAME="__DEF__" VECFORMULA="[0:9]"/>
-      <PORT DIR="O" MPD_INDEX="231" NAME="EXTDCRDBUSOUT" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="232" NAME="EXTDCRREAD" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="233" NAME="EXTDCRWRITE" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="234" NAME="EXTDCRACK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="235" NAME="EXTDCRDBUSIN" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="236" NAME="EICC405CRITINPUTIRQ" SENSITIVITY="EDGE_RISING" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="238" NAME="C405JTGCAPTUREDR" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="239" NAME="C405JTGEXTEST" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="240" NAME="C405JTGPGMOUT" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="241" NAME="C405JTGSHIFTDR" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="242" NAME="C405JTGTDO" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="243" NAME="C405JTGTDOEN" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="244" NAME="C405JTGUPDATEDR" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="245" NAME="MCBJTAGEN" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="246" NAME="JTGC405BNDSCANTDO" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="247" NAME="JTGC405TCK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="248" NAME="JTGC405TDI" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="249" NAME="JTGC405TMS" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="250" NAME="JTGC405TRSTNEG" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="251" NAME="C405DBGMSRWE" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="252" NAME="C405DBGSTOPACK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="253" NAME="C405DBGWBCOMPLETE" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="254" NAME="C405DBGWBFULL" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="255" NAME="C405DBGWBIAR" SIGNAME="__NOC__" VECFORMULA="[0:29]"/>
-      <PORT DIR="I" MPD_INDEX="256" NAME="DBGC405DEBUGHALT" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="257" NAME="DBGC405DEBUGHALTNEG" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="258" NAME="DBGC405EXTBUSHOLDACK" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="259" NAME="DBGC405UNCONDDEBUGEVENT" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="260" NAME="C405DBGLOADDATAONAPUDBUS" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="261" NAME="C405TRCCYCLE" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="262" NAME="C405TRCEVENEXECUTIONSTATUS" SIGNAME="__NOC__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="263" NAME="C405TRCODDEXECUTIONSTATUS" SIGNAME="__NOC__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="264" NAME="C405TRCTRACESTATUS" SIGNAME="__NOC__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="265" NAME="C405TRCTRIGGEREVENTOUT" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="266" NAME="C405TRCTRIGGEREVENTTYPE" SIGNAME="__NOC__" VECFORMULA="[0:10]"/>
-      <PORT DIR="I" MPD_INDEX="267" NAME="TRCC405TRACEDISABLE" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="268" NAME="TRCC405TRIGGEREVENTIN" SIGNAME="__NOC__"/>
-      <BUSINTERFACE BIFRANK="MASTER" BUSNAME="__NOC__" BUSSTD="DCR" BUS_STD="DCR" MPD_INDEX="0" NAME="MDCR"/>
-      <BUSINTERFACE BIFRANK="MASTER" BUSNAME="__NOC__" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="3" NAME="DPLB1"/>
-      <BUSINTERFACE BIFRANK="MASTER" BUSNAME="__NOC__" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="4" NAME="IPLB1"/>
-      <BUSINTERFACE BIFRANK="MASTER" BUSNAME="__NOC__" BUSSTD="OCM" BUS_STD="DSOCM" IS_DATA="TRUE" MPD_INDEX="5" NAME="DSOCM"/>
-      <BUSINTERFACE BIFRANK="MASTER" BUSNAME="__NOC__" BUSSTD="OCM" BUS_STD="ISOCM" IS_INSTRUCTION="TRUE" MPD_INDEX="6" NAME="ISOCM"/>
-      <BUSINTERFACE BIFRANK="INITIATOR" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_FCM" MPD_INDEX="8" NAME="MFCM"/>
-      <BUSINTERFACE BIFRANK="INITIATOR" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_EMACDCR" MPD_INDEX="9" NAME="EMACDCR"/>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0b0100000000" BASENAME="C_IDCR_BASEADDR" BASEVALUE="256" HIGH="0b0111111111" HIGHNAME="C_IDCR_HIGHADDR" HIGHVALUE="511" MINSIZE="16" SIZE="256" SIZEABRV="256">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="MDCR"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/generic_v1_00_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/jtagppc_cntlr_v2_01_a/doc/jtagppc_cntlr.pdf" HWVERSION="2.01.a" INSTANCE="jtagppc_0" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="1" MODCLASS="PERIPHERAL" MODTYPE="jtagppc_cntlr" SAV_INDEX="3">
-      <DESCRIPTION TYPE="SHORT">PowerPC JTAG Controller</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">JTAGPPC wrapper allows the PowerPC to connect to the JTAG chain of the FPGA.</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_DEVICE" VALUE="X2VP4"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_NUM_PPC_USED" VALUE="0"/>
-      <BUSINTERFACE BIFRANK="INITIATOR" BIF_X="0" BIF_Y="0" BUSNAME="jtagppc_0_0" BUSSTD="XIL" BUS_STD="XIL_JTAGPPC" MPD_INDEX="0" NAME="JTAGPPC0"/>
-      <PORT DIR="I" MPD_INDEX="0" NAME="TRSTNEG" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="HALTNEG0" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="2" NAME="DBGC405DEBUGHALT0" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="HALTNEG1" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="4" NAME="DBGC405DEBUGHALT1" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="C405JTGTDO0" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="C405JTGTDOEN0" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="7" NAME="JTGC405TCK0" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="8" NAME="JTGC405TDI0" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="9" NAME="JTGC405TMS0" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="10" NAME="JTGC405TRSTNEG0" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="C405JTGTDO1" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="C405JTGTDOEN1" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="13" NAME="JTGC405TCK1" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="14" NAME="JTGC405TDI1" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="15" NAME="JTGC405TMS1" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="16" NAME="JTGC405TRSTNEG1" SIGNAME="__DEF__"/>
-      <BUSINTERFACE BIFRANK="INITIATOR" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_JTAGPPC" MPD_INDEX="1" NAME="JTAGPPC1"/>
-    </MODULE>
-    <MODULE BUSINDEX="0" BUSSTD="PLBV46" BUS_STD="PLBV46" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/plb_v46_v1_02_a/doc/plb_v46.pdf" HWVERSION="1.02.a" INSTANCE="plb" IPTYPE="BUS" IS_PLACED="TRUE" MHS_INDEX="2" MODCLASS="BUS" MODTYPE="plb_v46" SAV_INDEX="1">
-      <DESCRIPTION TYPE="SHORT">Processor Local Bus (PLB) 4.6</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">'Xilinx 64-bit Processor Local Bus (PLB) consists of a bus control unit, a watchdog timer, and separate address, write, and read data path units with a a three-cycle only arbitration feature'</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_PLBV46_NUM_MASTERS" VALUE="4"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_PLBV46_NUM_SLAVES" VALUE="8"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_PLBV46_MID_WIDTH" VALUE="2"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_PLBV46_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_PLBV46_DWIDTH" VALUE="64"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_DCR_INTFCE" VALUE="0"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" MPD_INDEX="6" NAME="C_BASEADDR" VALUE="0b1111111111"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" MPD_INDEX="7" NAME="C_HIGHADDR" VALUE="0b0000000000"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_DCR_AWIDTH" VALUE="10"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_DCR_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_IRQ_ACTIVE" VALUE="1"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="12" NAME="C_NUM_CLK_PLB2OPB_REARB" VALUE="100"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_ADDR_PIPELINING_TYPE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="14" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="15" NAME="C_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="16" NAME="C_ARB_TYPE" VALUE="0"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="0" NAME="PLB_Clk" SIGIS="CLK" SIGNAME="sys_clk_s"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="1" NAME="SYS_Rst" SIGIS="RST" SIGNAME="sys_bus_reset"/>
-      <PORT DIR="O" MPD_INDEX="2" NAME="PLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="3" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="O" MPD_INDEX="4" NAME="MPLB_Rst" SIGIS="RST" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="5" NAME="PLB_dcrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="6" NAME="PLB_dcrDBus" SIGNAME="__DEF__" VECFORMULA="[0:C_DCR_DWIDTH-1]"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="DCR_ABus" SIGNAME="__DEF__" VECFORMULA="[0:C_DCR_AWIDTH-1]"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="DCR_DBus" SIGNAME="__DEF__" VECFORMULA="[0:C_DCR_DWIDTH-1]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="DCR_Read" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="DCR_Write" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="M_ABus" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*32)-1]"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="M_UABus" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*32)-1]"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="M_BE" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*(C_PLBV46_DWIDTH/8))-1]"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="M_RNW" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="M_abort" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="M_busLock" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="M_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*16)-1]"/>
-      <PORT DIR="I" MPD_INDEX="18" NAME="M_lockErr" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="M_MSize" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*2)-1]"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="M_priority" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*2)-1]"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="M_rdBurst" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="M_request" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="23" NAME="M_size" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*4)-1]"/>
-      <PORT DIR="I" MPD_INDEX="24" NAME="M_type" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*3)-1]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="M_wrBurst" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="I" MPD_INDEX="26" NAME="M_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*C_PLBV46_DWIDTH)-1]"/>
-      <PORT DIR="I" MPD_INDEX="27" NAME="Sl_addrAck" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="28" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_SLAVES*C_PLBV46_NUM_MASTERS)-1]"/>
-      <PORT DIR="I" MPD_INDEX="29" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_SLAVES*C_PLBV46_NUM_MASTERS)-1]"/>
-      <PORT DIR="I" MPD_INDEX="30" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES*C_PLBV46_NUM_MASTERS - 1 ]"/>
-      <PORT DIR="I" MPD_INDEX="31" NAME="Sl_rdBTerm" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="32" NAME="Sl_rdComp" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="33" NAME="Sl_rdDAck" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="34" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES*C_PLBV46_DWIDTH-1]"/>
-      <PORT DIR="I" MPD_INDEX="35" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES*4-1]"/>
-      <PORT DIR="I" MPD_INDEX="36" NAME="Sl_rearbitrate" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="37" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES*2-1]"/>
-      <PORT DIR="I" MPD_INDEX="38" NAME="Sl_wait" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="39" NAME="Sl_wrBTerm" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="40" NAME="Sl_wrComp" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="41" NAME="Sl_wrDAck" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="I" MPD_INDEX="42" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES*C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="43" NAME="PLB_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="44" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="45" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="O" MPD_INDEX="46" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_DWIDTH/8)-1]"/>
-      <PORT DIR="O" MPD_INDEX="47" NAME="PLB_MAddrAck" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="48" NAME="PLB_MTimeout" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="49" NAME="PLB_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="50" NAME="PLB_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="51" NAME="PLB_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="52" NAME="PLB_MRdBTerm" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="53" NAME="PLB_MRdDAck" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="54" NAME="PLB_MRdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*C_PLBV46_DWIDTH)-1]"/>
-      <PORT DIR="O" MPD_INDEX="55" NAME="PLB_MRdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*4)-1]"/>
-      <PORT DIR="O" MPD_INDEX="56" NAME="PLB_MRearbitrate" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="57" NAME="PLB_MWrBTerm" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="58" NAME="PLB_MWrDAck" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="59" NAME="PLB_MSSize" SIGNAME="__DEF__" VECFORMULA="[0:(C_PLBV46_NUM_MASTERS*2)-1]"/>
-      <PORT DIR="O" MPD_INDEX="60" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="61" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="62" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="63" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="64" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="65" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="66" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="67" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_MID_WIDTH-1]"/>
-      <PORT DIR="O" MPD_INDEX="68" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="69" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="70" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="71" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="72" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="73" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="74" NAME="PLB_rdPrim" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="O" MPD_INDEX="75" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="76" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="77" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="O" MPD_INDEX="78" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="79" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_DWIDTH-1]"/>
-      <PORT DIR="O" MPD_INDEX="80" NAME="PLB_wrPrim" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_SLAVES-1]"/>
-      <PORT DIR="O" MPD_INDEX="81" NAME="PLB_SaddrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="82" NAME="PLB_SMRdErr" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="83" NAME="PLB_SMWrErr" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="84" NAME="PLB_SMBusy" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_NUM_MASTERS-1]"/>
-      <PORT DIR="O" MPD_INDEX="85" NAME="PLB_SrdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="86" NAME="PLB_SrdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="87" NAME="PLB_SrdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="88" NAME="PLB_SrdDBus" SIGNAME="__DEF__" VECFORMULA="[0:C_PLBV46_DWIDTH-1]"/>
-      <PORT DIR="O" MPD_INDEX="89" NAME="PLB_SrdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="90" NAME="PLB_Srearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="91" NAME="PLB_Sssize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="92" NAME="PLB_Swait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="93" NAME="PLB_SwrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="94" NAME="PLB_SwrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="95" NAME="PLB_SwrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="96" NAME="Bus_Error_Det" SENSITIVITY="EDGE_RISING" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="__NOC__" BUSSTD="DCR" BUS_STD="DCR" ISVALID="FALSE" MPD_INDEX="0" NAME="SDCR"/>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0b1111111111" BASENAME="C_BASEADDR" BASEVALUE="1023" HIGH="0b0000000000" HIGHNAME="C_HIGHADDR" HIGHVALUE="0" ISVALID="FALSE" MINSIZE="0x08" SIZE="0" SIZEABRV="U">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SDCR"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/uartlite_v1_13_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/xps_uartlite_v1_00_a/doc/xps_uartlite.pdf" GROUP="C" HWVERSION="1.00.a" INSTANCE="RS232_Uart" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="3" MODCLASS="PERIPHERAL" MODTYPE="xps_uartlite" SAV_INDEX="9">
-      <DESCRIPTION TYPE="SHORT">XPS UART (Lite)</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Generic UART (Universal Asynchronous Receiver/Transmitter) for PLBV46 bus.</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_SPLB_CLK_FREQ_HZ" VALUE="100000000"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="2" NAME="C_BASEADDR" VALUE="0x84000000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="3" NAME="C_HIGHADDR" VALUE="0x8400ffff"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_SPLB_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_SPLB_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_SPLB_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_SPLB_MID_WIDTH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_SPLB_NUM_MASTERS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_SPLB_SUPPORT_BURSTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_SPLB_NATIVE_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_BAUDRATE" VALUE="9600"/>
-      <PARAMETER MPD_INDEX="12" NAME="C_DATA_BITS" VALUE="8"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="13" NAME="C_USE_PARITY" VALUE="0"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="14" NAME="C_ODD_PARITY" VALUE="0"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="0" NAME="SPLB"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="42" NAME="RX" SIGNAME="fpga_0_RS232_Uart_RX">
-        <DESCRIPTION>Serial Data In</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="43" NAME="TX" SIGNAME="fpga_0_RS232_Uart_TX">
-        <DESCRIPTION>Serial Data Out</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="44" NAME="Interrupt" SENSITIVITY="EDGE_RISING" SIGIS="INTERRUPT" SIGNAME="RS232_Uart_Interrupt"/>
-      <PORT DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="PLB_rdPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="PLB_wrPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="23" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="24" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="Sl_rdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="Sl_rdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="38" NAME="Sl_wrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="39" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="40" NAME="Sl_rdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="41" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <INTCCNTLRTRGS>
-        <INTCTRG INTCINDEX="0" PRIORITY="0"/>
-      </INTCCNTLRTRGS>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0x84000000" BASENAME="C_BASEADDR" BASEVALUE="2214592512" HIGH="0x8400ffff" HIGHNAME="C_HIGHADDR" HIGHVALUE="2214658047" MINSIZE="0x10" SIZE="65536" SIZEABRV="64K">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/gpio_v2_12_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/xps_gpio_v1_00_a/doc/xps_gpio.pdf" GROUP="A" HWVERSION="1.00.a" INSTANCE="LEDs_4Bit" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="4" MODCLASS="PERIPHERAL" MODTYPE="xps_gpio" SAV_INDEX="5">
-      <DESCRIPTION TYPE="SHORT">XPS General Purpose IO</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">General Purpose Input/Output (GPIO) core for the PLBV46 bus.</DESCRIPTION>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="0" NAME="C_BASEADDR" VALUE="0x81400000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="1" NAME="C_HIGHADDR" VALUE="0x8140ffff"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_SPLB_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_SPLB_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_SPLB_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_SPLB_MID_WIDTH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_SPLB_NUM_MASTERS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_SPLB_NATIVE_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_SPLB_SUPPORT_BURSTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="10" NAME="C_GPIO_WIDTH" VALUE="4"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_ALL_INPUTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="12" NAME="C_INTERRUPT_PRESENT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_IS_BIDIR" VALUE="1"/>
-      <PARAMETER MPD_INDEX="14" NAME="C_DOUT_DEFAULT" VALUE="0x00000000"/>
-      <PARAMETER MPD_INDEX="15" NAME="C_TRI_DEFAULT" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="16" NAME="C_IS_DUAL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="17" NAME="C_ALL_INPUTS_2" VALUE="0"/>
-      <PARAMETER MPD_INDEX="18" NAME="C_IS_BIDIR_2" VALUE="1"/>
-      <PARAMETER MPD_INDEX="19" NAME="C_DOUT_DEFAULT_2" VALUE="0x00000000"/>
-      <PARAMETER MPD_INDEX="20" NAME="C_TRI_DEFAULT_2" VALUE="0xffffffff"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="0" NAME="SPLB"/>
-      <PORT DIR="IO" INMHS="TRUE" MPD_INDEX="43" NAME="GPIO_IO" SIGNAME="fpga_0_LEDs_4Bit_GPIO_IO" VECFORMULA="[0:(C_GPIO_WIDTH-1)]">
-        <DESCRIPTION>GPIO1 Data IO</DESCRIPTION>
-      </PORT>
-      <PORT DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="PLB_rdPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="PLB_wrPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="23" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="24" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="Sl_wrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="Sl_rdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="Sl_rdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="Sl_rdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="38" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="39" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="40" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="41" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="42" NAME="IP2INTC_Irpt" SENSITIVITY="LEVEL_HIGH" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="44" NAME="GPIO_IO_I" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="45" NAME="GPIO_IO_O" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="46" NAME="GPIO_IO_T" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="47" NAME="GPIO_in" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="48" NAME="GPIO_d_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="49" NAME="GPIO_t_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="IO" ISVALID="FALSE" MPD_INDEX="50" NAME="GPIO2_IO" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="I" ISVALID="FALSE" MPD_INDEX="51" NAME="GPIO2_IO_I" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="52" NAME="GPIO2_IO_O" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="53" NAME="GPIO2_IO_T" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="I" ISVALID="FALSE" MPD_INDEX="54" NAME="GPIO2_in" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="55" NAME="GPIO2_d_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="56" NAME="GPIO2_t_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0x81400000" BASENAME="C_BASEADDR" BASEVALUE="2168455168" HIGH="0x8140ffff" HIGHNAME="C_HIGHADDR" HIGHVALUE="2168520703" MINSIZE="0x200" SIZE="65536" SIZEABRV="64K">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/gpio_v2_12_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/xps_gpio_v1_00_a/doc/xps_gpio.pdf" GROUP="B" HWVERSION="1.00.a" INSTANCE="LEDs_Positions" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="5" MODCLASS="PERIPHERAL" MODTYPE="xps_gpio" SAV_INDEX="6">
-      <DESCRIPTION TYPE="SHORT">XPS General Purpose IO</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">General Purpose Input/Output (GPIO) core for the PLBV46 bus.</DESCRIPTION>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="0" NAME="C_BASEADDR" VALUE="0x81420000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="1" NAME="C_HIGHADDR" VALUE="0x8142ffff"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_SPLB_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_SPLB_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_SPLB_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_SPLB_MID_WIDTH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_SPLB_NUM_MASTERS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_SPLB_NATIVE_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_SPLB_SUPPORT_BURSTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="10" NAME="C_GPIO_WIDTH" VALUE="5"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_ALL_INPUTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="12" NAME="C_INTERRUPT_PRESENT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_IS_BIDIR" VALUE="1"/>
-      <PARAMETER MPD_INDEX="14" NAME="C_DOUT_DEFAULT" VALUE="0x00000000"/>
-      <PARAMETER MPD_INDEX="15" NAME="C_TRI_DEFAULT" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="16" NAME="C_IS_DUAL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="17" NAME="C_ALL_INPUTS_2" VALUE="0"/>
-      <PARAMETER MPD_INDEX="18" NAME="C_IS_BIDIR_2" VALUE="1"/>
-      <PARAMETER MPD_INDEX="19" NAME="C_DOUT_DEFAULT_2" VALUE="0x00000000"/>
-      <PARAMETER MPD_INDEX="20" NAME="C_TRI_DEFAULT_2" VALUE="0xffffffff"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="0" NAME="SPLB"/>
-      <PORT DIR="IO" INMHS="TRUE" MPD_INDEX="43" NAME="GPIO_IO" SIGNAME="fpga_0_LEDs_Positions_GPIO_IO" VECFORMULA="[0:(C_GPIO_WIDTH-1)]">
-        <DESCRIPTION>GPIO1 Data IO</DESCRIPTION>
-      </PORT>
-      <PORT DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="PLB_rdPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="PLB_wrPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="23" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="24" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="Sl_wrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="Sl_rdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="Sl_rdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="Sl_rdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="38" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="39" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="40" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="41" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="42" NAME="IP2INTC_Irpt" SENSITIVITY="LEVEL_HIGH" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="44" NAME="GPIO_IO_I" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="45" NAME="GPIO_IO_O" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="46" NAME="GPIO_IO_T" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="47" NAME="GPIO_in" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="48" NAME="GPIO_d_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="49" NAME="GPIO_t_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="IO" ISVALID="FALSE" MPD_INDEX="50" NAME="GPIO2_IO" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="I" ISVALID="FALSE" MPD_INDEX="51" NAME="GPIO2_IO_I" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="52" NAME="GPIO2_IO_O" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="53" NAME="GPIO2_IO_T" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="I" ISVALID="FALSE" MPD_INDEX="54" NAME="GPIO2_in" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="55" NAME="GPIO2_d_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="56" NAME="GPIO2_t_out" SIGNAME="__NOC__" VECFORMULA="[0:(C_GPIO_WIDTH-1)]"/>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0x81420000" BASENAME="C_BASEADDR" BASEVALUE="2168586240" HIGH="0x8142ffff" HIGHNAME="C_HIGHADDR" HIGHVALUE="2168651775" MINSIZE="0x200" SIZE="65536" SIZEABRV="64K">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/sysace_v1_11_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/xps_sysace_v1_00_a/doc/xps_sysace.pdf" GROUP="F" HWVERSION="1.00.a" INSTANCE="SysACE_CompactFlash" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="6" MODCLASS="PERIPHERAL" MODTYPE="xps_sysace" SAV_INDEX="8">
-      <DESCRIPTION TYPE="SHORT">XPS System ACE Interface Controller(Compact Flash)</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Interface between the PLBV46 and the Microprocessor Interface (MPU) of the System ACE Compact Flash solution peripheral</DESCRIPTION>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="0" NAME="C_BASEADDR" VALUE="0x83600000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="1" NAME="C_HIGHADDR" VALUE="0x8360ffff"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_MEM_WIDTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_SPLB_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_SPLB_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_SPLB_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_SPLB_MID_WIDTH" VALUE="3"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_SPLB_NUM_MASTERS" VALUE="8"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_SPLB_NATIVE_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_SPLB_SUPPORT_BURSTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_FAMILY" VALUE="virtex5"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="0" NAME="SPLB"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="43" NAME="SysACE_CLK" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_CLK">
-        <DESCRIPTION>Clock Input</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="42" NAME="SysACE_MPA" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_MPA &amp; SysACE_CompactFlash_SysACE_MPA" VECFORMULA="[6:0]">
-        <DESCRIPTION>Address Input</DESCRIPTION>
-      </PORT>
-      <PORT DIR="IO" INMHS="TRUE" MPD_INDEX="45" NAME="SysACE_MPD" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_MPD" VECFORMULA="[(C_MEM_WIDTH-1):0]">
-        <DESCRIPTION>Data Input/Output</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="49" NAME="SysACE_CEN" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_CEN">
-        <DESCRIPTION>Active LOW Chip Enable</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="50" NAME="SysACE_OEN" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_OEN">
-        <DESCRIPTION>Active LOW Output Enable</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="51" NAME="SysACE_WEN" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_WEN">
-        <DESCRIPTION>Active LOW Write Enable</DESCRIPTION>
-      </PORT>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="44" NAME="SysACE_MPIRQ" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_MPIRQ">
-        <DESCRIPTION>Active high Interrupt Output</DESCRIPTION>
-      </PORT>
-      <PORT DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="PLB_rdPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="PLB_wrPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="23" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="24" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="Sl_wrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="Sl_rdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="Sl_rdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="Sl_rdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="38" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="39" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="40" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="41" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="I" MPD_INDEX="46" NAME="SysACE_MPD_I" SIGNAME="__NOC__" VECFORMULA="[(C_MEM_WIDTH-1):0]"/>
-      <PORT DIR="O" MPD_INDEX="47" NAME="SysACE_MPD_O" SIGNAME="__NOC__" VECFORMULA="[(C_MEM_WIDTH-1):0]"/>
-      <PORT DIR="O" MPD_INDEX="48" NAME="SysACE_MPD_T" SIGNAME="__NOC__" VECFORMULA="[(C_MEM_WIDTH-1):0]"/>
-      <PORT DIR="O" MPD_INDEX="52" NAME="SysACE_IRQ" SENSITIVITY="LEVEL_HIGH" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0x83600000" BASENAME="C_BASEADDR" BASEVALUE="2204106752" HIGH="0x8360ffff" HIGHNAME="C_HIGHADDR" HIGHVALUE="2204172287" MINSIZE="0x80" SIZE="65536" SIZEABRV="64K">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/emc_v2_00_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/xps_mch_emc_v1_01_a/doc/xps_mch_emc.pdf" GROUP="D" HWVERSION="1.01.a" INSTANCE="SRAM" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="7" MODCLASS="MEMORY_CNTLR" MODTYPE="xps_mch_emc" SAV_INDEX="2">
-      <DESCRIPTION TYPE="SHORT">XPS Multi-Channel External Memory Controller(SRAM/Flash)</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Xilinx Multi-CHannel (MCH) PLBV46 external memory controller</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_NUM_BANKS_MEM" VALUE="1"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_NUM_CHANNELS" VALUE="2"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_PRIORITY_MODE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_INCLUDE_PLB_IPIF" VALUE="1"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_INCLUDE_WRBUF" VALUE="1"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_SPLB_MID_WIDTH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_SPLB_NUM_MASTERS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_SPLB_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_SPLB_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_MCH_SPLB_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_SPLB_SMALLEST_MASTER" VALUE="32"/>
-      <PARAMETER MPD_INDEX="12" NAME="C_MCH_NATIVE_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_MCH_PLB_CLK_PERIOD_PS" VALUE="10000"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="MEMORY" CHANGEDBY="USER" MPD_INDEX="14" NAME="C_MEM0_BASEADDR" VALUE="0xfff00000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" CHANGEDBY="USER" MPD_INDEX="15" NAME="C_MEM0_HIGHADDR" VALUE="0xffffffff"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="MEMORY" MPD_INDEX="16" NAME="C_MEM1_BASEADDR" VALUE="0xffffffff"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" MPD_INDEX="17" NAME="C_MEM1_HIGHADDR" VALUE="0x00000000"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="MEMORY" MPD_INDEX="18" NAME="C_MEM2_BASEADDR" VALUE="0xffffffff"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" MPD_INDEX="19" NAME="C_MEM2_HIGHADDR" VALUE="0x00000000"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="MEMORY" MPD_INDEX="20" NAME="C_MEM3_BASEADDR" VALUE="0xffffffff"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" MPD_INDEX="21" NAME="C_MEM3_HIGHADDR" VALUE="0x00000000"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="22" NAME="C_INCLUDE_NEGEDGE_IOREGS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="23" NAME="C_MEM0_WIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="24" NAME="C_MEM1_WIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="25" NAME="C_MEM2_WIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="26" NAME="C_MEM3_WIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="27" NAME="C_MAX_MEM_WIDTH" VALUE="32"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="28" NAME="C_INCLUDE_DATAWIDTH_MATCHING_0" VALUE="1"/>
-      <PARAMETER MPD_INDEX="29" NAME="C_INCLUDE_DATAWIDTH_MATCHING_1" VALUE="0"/>
-      <PARAMETER MPD_INDEX="30" NAME="C_INCLUDE_DATAWIDTH_MATCHING_2" VALUE="0"/>
-      <PARAMETER MPD_INDEX="31" NAME="C_INCLUDE_DATAWIDTH_MATCHING_3" VALUE="0"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="32" NAME="C_SYNCH_MEM_0" VALUE="1"/>
-      <PARAMETER MPD_INDEX="33" NAME="C_SYNCH_PIPEDELAY_0" VALUE="2"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="34" NAME="C_TCEDV_PS_MEM_0" VALUE="0"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="35" NAME="C_TAVDV_PS_MEM_0" VALUE="0"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="36" NAME="C_THZCE_PS_MEM_0" VALUE="0"/>
-      <PARAMETER MPD_INDEX="37" NAME="C_THZOE_PS_MEM_0" VALUE="7000"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="38" NAME="C_TWC_PS_MEM_0" VALUE="0"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="39" NAME="C_TWP_PS_MEM_0" VALUE="0"/>
-      <PARAMETER MPD_INDEX="40" NAME="C_TLZWE_PS_MEM_0" VALUE="0"/>
-      <PARAMETER MPD_INDEX="41" NAME="C_SYNCH_MEM_1" VALUE="0"/>
-      <PARAMETER MPD_INDEX="42" NAME="C_SYNCH_PIPEDELAY_1" VALUE="2"/>
-      <PARAMETER MPD_INDEX="43" NAME="C_TCEDV_PS_MEM_1" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="44" NAME="C_TAVDV_PS_MEM_1" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="45" NAME="C_THZCE_PS_MEM_1" VALUE="7000"/>
-      <PARAMETER MPD_INDEX="46" NAME="C_THZOE_PS_MEM_1" VALUE="7000"/>
-      <PARAMETER MPD_INDEX="47" NAME="C_TWC_PS_MEM_1" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="48" NAME="C_TWP_PS_MEM_1" VALUE="12000"/>
-      <PARAMETER MPD_INDEX="49" NAME="C_TLZWE_PS_MEM_1" VALUE="0"/>
-      <PARAMETER MPD_INDEX="50" NAME="C_SYNCH_MEM_2" VALUE="0"/>
-      <PARAMETER MPD_INDEX="51" NAME="C_SYNCH_PIPEDELAY_2" VALUE="2"/>
-      <PARAMETER MPD_INDEX="52" NAME="C_TCEDV_PS_MEM_2" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="53" NAME="C_TAVDV_PS_MEM_2" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="54" NAME="C_THZCE_PS_MEM_2" VALUE="7000"/>
-      <PARAMETER MPD_INDEX="55" NAME="C_THZOE_PS_MEM_2" VALUE="7000"/>
-      <PARAMETER MPD_INDEX="56" NAME="C_TWC_PS_MEM_2" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="57" NAME="C_TWP_PS_MEM_2" VALUE="12000"/>
-      <PARAMETER MPD_INDEX="58" NAME="C_TLZWE_PS_MEM_2" VALUE="0"/>
-      <PARAMETER MPD_INDEX="59" NAME="C_SYNCH_MEM_3" VALUE="0"/>
-      <PARAMETER MPD_INDEX="60" NAME="C_SYNCH_PIPEDELAY_3" VALUE="2"/>
-      <PARAMETER MPD_INDEX="61" NAME="C_TCEDV_PS_MEM_3" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="62" NAME="C_TAVDV_PS_MEM_3" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="63" NAME="C_THZCE_PS_MEM_3" VALUE="7000"/>
-      <PARAMETER MPD_INDEX="64" NAME="C_THZOE_PS_MEM_3" VALUE="7000"/>
-      <PARAMETER MPD_INDEX="65" NAME="C_TWC_PS_MEM_3" VALUE="15000"/>
-      <PARAMETER MPD_INDEX="66" NAME="C_TWP_PS_MEM_3" VALUE="12000"/>
-      <PARAMETER MPD_INDEX="67" NAME="C_TLZWE_PS_MEM_3" VALUE="0"/>
-      <PARAMETER MPD_INDEX="68" NAME="C_MCH0_PROTOCOL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="69" NAME="C_MCH0_ACCESSBUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="70" NAME="C_MCH0_RDDATABUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="71" NAME="C_MCH1_PROTOCOL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="72" NAME="C_MCH1_ACCESSBUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="73" NAME="C_MCH1_RDDATABUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="74" NAME="C_MCH2_PROTOCOL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="75" NAME="C_MCH2_ACCESSBUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="76" NAME="C_MCH2_RDDATABUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="77" NAME="C_MCH3_PROTOCOL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="78" NAME="C_MCH3_ACCESSBUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="79" NAME="C_MCH3_RDDATABUF_DEPTH" VALUE="16"/>
-      <PARAMETER MPD_INDEX="80" NAME="C_XCL0_LINESIZE" VALUE="4"/>
-      <PARAMETER MPD_INDEX="81" NAME="C_XCL0_WRITEXFER" VALUE="1"/>
-      <PARAMETER MPD_INDEX="82" NAME="C_XCL1_LINESIZE" VALUE="4"/>
-      <PARAMETER MPD_INDEX="83" NAME="C_XCL1_WRITEXFER" VALUE="1"/>
-      <PARAMETER MPD_INDEX="84" NAME="C_XCL2_LINESIZE" VALUE="4"/>
-      <PARAMETER MPD_INDEX="85" NAME="C_XCL2_WRITEXFER" VALUE="1"/>
-      <PARAMETER MPD_INDEX="86" NAME="C_XCL3_LINESIZE" VALUE="4"/>
-      <PARAMETER MPD_INDEX="87" NAME="C_XCL3_WRITEXFER" VALUE="1"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="0" NAME="SPLB"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="79" NAME="Mem_A" SIGNAME="fpga_0_SRAM_Mem_A_split" VECFORMULA="[0:(C_MCH_SPLB_AWIDTH-1)]">
-        <DESCRIPTION>Memory Address Bus</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="85" NAME="Mem_BEN" SIGNAME="fpga_0_SRAM_Mem_BEN" VECFORMULA="[0:((C_MAX_MEM_WIDTH/8)-1)]">
-        <DESCRIPTION>Memory Byte Enable</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="83" NAME="Mem_WEN" SIGNAME="fpga_0_SRAM_Mem_WEN">
-        <DESCRIPTION>Memory Write Enable</DESCRIPTION>
-      </PORT>
-      <PORT DIR="IO" INMHS="TRUE" MPD_INDEX="75" NAME="Mem_DQ" SIGNAME="fpga_0_SRAM_Mem_DQ" VECFORMULA="[0:(C_MAX_MEM_WIDTH-1)]">
-        <DESCRIPTION>Memory Data Bus</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="82" NAME="Mem_OEN" SIGNAME="fpga_0_SRAM_Mem_OEN" VECFORMULA="[0:(C_NUM_BANKS_MEM-1)]">
-        <DESCRIPTION>Memory Output Enable</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="81" NAME="Mem_CEN" SIGNAME="fpga_0_SRAM_Mem_CEN" VECFORMULA="[0:(C_NUM_BANKS_MEM-1)]">
-        <DESCRIPTION>Memory Chip Enable Active Low</DESCRIPTION>
-      </PORT>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="87" NAME="Mem_ADV_LDN" SIGNAME="fpga_0_SRAM_Mem_ADV_LDN">
-        <DESCRIPTION>Memory Advanced Burst Address/Load New Address</DESCRIPTION>
-      </PORT>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="1" NAME="RdClk" SIGIS="CLK" SIGNAME="sys_clk_s"/>
-      <PORT DIR="I" MPD_INDEX="0" NAME="MCH_PLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="MCH_PLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="MCH0_Access_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="MCH0_Access_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="MCH0_Access_Write" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="6" NAME="MCH0_Access_Full" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="7" NAME="MCH0_ReadData_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="8" NAME="MCH0_ReadData_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="MCH0_ReadData_Read" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="10" NAME="MCH0_ReadData_Exists" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="MCH1_Access_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="MCH1_Access_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="MCH1_Access_Write" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="14" NAME="MCH1_Access_Full" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="15" NAME="MCH1_ReadData_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="16" NAME="MCH1_ReadData_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="MCH1_ReadData_Read" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="18" NAME="MCH1_ReadData_Exists" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="MCH2_Access_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="MCH2_Access_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="MCH2_Access_Write" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="22" NAME="MCH2_Access_Full" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="23" NAME="MCH2_ReadData_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="24" NAME="MCH2_ReadData_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="MCH2_ReadData_Read" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="MCH2_ReadData_Exists" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="27" NAME="MCH3_Access_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="28" NAME="MCH3_Access_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="29" NAME="MCH3_Access_Write" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="MCH3_Access_Full" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="MCH3_ReadData_Control" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="MCH3_ReadData_Data" SIGNAME="__DEF__" VECFORMULA="[0:(C_MCH_NATIVE_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="33" NAME="MCH3_ReadData_Read" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="MCH3_ReadData_Exists" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="35" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="36" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="37" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="38" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="39" NAME="PLB_rdPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="40" NAME="PLB_wrPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="41" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="42" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="43" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="44" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="45" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="46" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="47" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="48" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="49" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="50" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="51" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="52" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="53" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="54" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="55" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="56" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="57" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="58" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="59" NAME="Sl_addrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="60" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="61" NAME="Sl_wait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="62" NAME="Sl_rearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="63" NAME="Sl_wrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="64" NAME="Sl_wrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="65" NAME="Sl_wrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="66" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="67" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="68" NAME="Sl_rdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="69" NAME="Sl_rdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="70" NAME="Sl_rdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="71" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="72" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="73" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="74" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="I" MPD_INDEX="76" NAME="Mem_DQ_I" SIGNAME="__NOC__" VECFORMULA="[0:(C_MAX_MEM_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="77" NAME="Mem_DQ_O" SIGNAME="__NOC__" VECFORMULA="[0:(C_MAX_MEM_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="78" NAME="Mem_DQ_T" SIGNAME="__NOC__" VECFORMULA="[0:(C_MAX_MEM_WIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="80" NAME="Mem_RPN" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="84" NAME="Mem_QWEN" SIGNAME="__NOC__" VECFORMULA="[0:((C_MAX_MEM_WIDTH/8)-1)]"/>
-      <PORT DIR="O" MPD_INDEX="86" NAME="Mem_CE" SIGNAME="__NOC__" VECFORMULA="[0:(C_NUM_BANKS_MEM-1)]"/>
-      <PORT DIR="O" MPD_INDEX="88" NAME="Mem_LBON" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="89" NAME="Mem_CKEN" SIGNAME="__NOC__"/>
-      <PORT DIR="O" MPD_INDEX="90" NAME="Mem_RNW" SIGNAME="__NOC__"/>
-      <BUSINTERFACE BIFRANK="TARGET" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_MEMORY_CHANNEL" MPD_INDEX="1" NAME="MCH0"/>
-      <BUSINTERFACE BIFRANK="TARGET" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_MEMORY_CHANNEL" MPD_INDEX="2" NAME="MCH1"/>
-      <BUSINTERFACE BIFRANK="TARGET" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_MEMORY_CHANNEL" ISVALID="FALSE" MPD_INDEX="3" NAME="MCH2"/>
-      <BUSINTERFACE BIFRANK="TARGET" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_MEMORY_CHANNEL" ISVALID="FALSE" MPD_INDEX="4" NAME="MCH3"/>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0xfff00000" BASENAME="C_MEM0_BASEADDR" BASEVALUE="4293918720" HIGH="0xffffffff" HIGHNAME="C_MEM0_HIGHADDR" HIGHVALUE="4294967295" IS_CACHEABLE="TRUE" SIZE="1048576" SIZEABRV="1M">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-            <MEMBUSINTERFACE NAME="MCH0"/>
-            <MEMBUSINTERFACE NAME="MCH1"/>
-            <MEMBUSINTERFACE NAME="MCH2"/>
-            <MEMBUSINTERFACE NAME="MCH3"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-        <MEMRANGE BASE="0xffffffff" BASENAME="C_MEM1_BASEADDR" BASEVALUE="4294967295" HIGH="0x00000000" HIGHNAME="C_MEM1_HIGHADDR" HIGHVALUE="0" ISVALID="FALSE" IS_CACHEABLE="TRUE" SIZE="0" SIZEABRV="U">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-            <MEMBUSINTERFACE NAME="MCH0"/>
-            <MEMBUSINTERFACE NAME="MCH1"/>
-            <MEMBUSINTERFACE NAME="MCH2"/>
-            <MEMBUSINTERFACE NAME="MCH3"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-        <MEMRANGE BASE="0xffffffff" BASENAME="C_MEM2_BASEADDR" BASEVALUE="4294967295" HIGH="0x00000000" HIGHNAME="C_MEM2_HIGHADDR" HIGHVALUE="0" ISVALID="FALSE" IS_CACHEABLE="TRUE" SIZE="0" SIZEABRV="U">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-            <MEMBUSINTERFACE NAME="MCH0"/>
-            <MEMBUSINTERFACE NAME="MCH1"/>
-            <MEMBUSINTERFACE NAME="MCH2"/>
-            <MEMBUSINTERFACE NAME="MCH3"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-        <MEMRANGE BASE="0xffffffff" BASENAME="C_MEM3_BASEADDR" BASEVALUE="4294967295" HIGH="0x00000000" HIGHNAME="C_MEM3_HIGHADDR" HIGHVALUE="0" ISVALID="FALSE" IS_CACHEABLE="TRUE" SIZE="0" SIZEABRV="U">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-            <MEMBUSINTERFACE NAME="MCH0"/>
-            <MEMBUSINTERFACE NAME="MCH1"/>
-            <MEMBUSINTERFACE NAME="MCH2"/>
-            <MEMBUSINTERFACE NAME="MCH3"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/generic_v1_00_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/util_bus_split_v1_00_a/doc/util_bus_split.pdf" GROUP="E" HWVERSION="1.00.a" INSTANCE="SRAM_util_bus_split_0" IPTYPE="PERIPHERAL" MHS_INDEX="8" MODCLASS="IP" MODTYPE="util_bus_split" SAV_INDEX="11">
-      <DESCRIPTION TYPE="SHORT">Utility Bus Split</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Bus splitting primitive</DESCRIPTION>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="0" NAME="C_SIZE_IN" VALUE="32"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="1" NAME="C_LEFT_POS" VALUE="9"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="2" NAME="C_SPLIT" VALUE="30"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="0" NAME="Sig" SIGNAME="fpga_0_SRAM_Mem_A_split" VECFORMULA="[0:C_SIZE_IN-1]"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="1" NAME="Out1" SIGNAME="fpga_0_SRAM_Mem_A" VECFORMULA="[C_LEFT_POS:C_SPLIT-1]"/>
-      <PORT DIR="O" MPD_INDEX="2" NAME="Out2" SIGNAME="__NOC__" VECFORMULA="[C_SPLIT:C_SIZE_IN-1]"/>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/generic_v1_00_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/clock_generator_v2_01_a/doc/html.pdf" GROUP="G" HWVERSION="2.01.a" INSTANCE="clock_generator_0" IPTYPE="PERIPHERAL" MHS_INDEX="9" MODCLASS="IP" MODTYPE="clock_generator" SAV_INDEX="10">
-      <DESCRIPTION TYPE="SHORT">Clock Generator</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Clock generator for processor system.</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_CLK_GEN" VALUE="0"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_NUM_PLL" VALUE="0"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_NUM_DCM" VALUE="0"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_CLKOUT0_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_CLKOUT0_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_CLKOUT1_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_CLKOUT1_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_CLKOUT2_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_CLKOUT2_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_CLKOUT3_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="12" NAME="C_CLKOUT3_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_CLKOUT4_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="14" NAME="C_CLKOUT4_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="15" NAME="C_CLKOUT5_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="16" NAME="C_CLKOUT5_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="17" NAME="C_CLKOUT6_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="18" NAME="C_CLKOUT6_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="19" NAME="C_CLKOUT7_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="20" NAME="C_CLKOUT7_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="21" NAME="C_CLKOUT8_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="22" NAME="C_CLKOUT8_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="23" NAME="C_CLKOUT9_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="24" NAME="C_CLKOUT9_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="25" NAME="C_CLKOUT10_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="26" NAME="C_CLKOUT10_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="27" NAME="C_CLKOUT11_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="28" NAME="C_CLKOUT11_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="29" NAME="C_CLKOUT12_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="30" NAME="C_CLKOUT12_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="31" NAME="C_CLKOUT13_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="32" NAME="C_CLKOUT13_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="33" NAME="C_CLKOUT14_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="34" NAME="C_CLKOUT14_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="35" NAME="C_CLKOUT15_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="36" NAME="C_CLKOUT15_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="37" NAME="C_CLKFBOUT_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="38" NAME="C_CLKFBOUT_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="39" NAME="C_PLL0_DIVCLK_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="40" NAME="C_PLL0_CLKFBOUT_MULT" VALUE="1"/>
-      <PARAMETER MPD_INDEX="41" NAME="C_PLL0_CLKFBOUT_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="42" NAME="C_PLL0_CLKIN1_PERIOD" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="43" NAME="C_PLL0_CLKOUT0_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="44" NAME="C_PLL0_CLKOUT0_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="45" NAME="C_PLL0_CLKOUT0_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="46" NAME="C_PLL0_CLKOUT1_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="47" NAME="C_PLL0_CLKOUT1_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="48" NAME="C_PLL0_CLKOUT1_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="49" NAME="C_PLL0_CLKOUT2_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="50" NAME="C_PLL0_CLKOUT2_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="51" NAME="C_PLL0_CLKOUT2_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="52" NAME="C_PLL0_CLKOUT3_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="53" NAME="C_PLL0_CLKOUT3_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="54" NAME="C_PLL0_CLKOUT3_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="55" NAME="C_PLL0_CLKOUT4_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="56" NAME="C_PLL0_CLKOUT4_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="57" NAME="C_PLL0_CLKOUT4_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="58" NAME="C_PLL0_CLKOUT5_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="59" NAME="C_PLL0_CLKOUT5_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="60" NAME="C_PLL0_CLKOUT5_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="61" NAME="C_PLL0_BANDWIDTH" VALUE="OPTIMIZED"/>
-      <PARAMETER MPD_INDEX="62" NAME="C_PLL0_COMPENSATION" VALUE="SYSTEM_SYNCHRONOUS"/>
-      <PARAMETER MPD_INDEX="63" NAME="C_PLL0_REF_JITTER" VALUE="0.100000"/>
-      <PARAMETER MPD_INDEX="64" NAME="C_PLL0_RESET_ON_LOSS_OF_LOCK" VALUE="false"/>
-      <PARAMETER MPD_INDEX="65" NAME="C_PLL0_RST_DEASSERT_CLK" VALUE="CLKIN1"/>
-      <PARAMETER MPD_INDEX="66" NAME="C_PLL0_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="67" NAME="C_PLL0_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="68" NAME="C_PLL0_CLKOUT0_DESKEW_ADJUST" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="69" NAME="C_PLL0_CLKOUT1_DESKEW_ADJUST" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="70" NAME="C_PLL0_CLKOUT2_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="71" NAME="C_PLL0_CLKOUT3_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="72" NAME="C_PLL0_CLKOUT4_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="73" NAME="C_PLL0_CLKOUT5_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="74" NAME="C_PLL0_CLKFBOUT_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="75" NAME="C_PLL0_CLKIN1_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="76" NAME="C_PLL0_CLKFBOUT_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="77" NAME="C_PLL0_CLKOUT0_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="78" NAME="C_PLL0_CLKOUT1_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="79" NAME="C_PLL0_CLKOUT2_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="80" NAME="C_PLL0_CLKOUT3_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="81" NAME="C_PLL0_CLKOUT4_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="82" NAME="C_PLL0_CLKOUT5_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="83" NAME="C_PLL0_CLKIN1_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="84" NAME="C_PLL0_CLKIN1_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="85" NAME="C_PLL0_CLKFBIN_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="86" NAME="C_PLL0_CLKFBIN_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="87" NAME="C_PLL0_RST_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="88" NAME="C_PLL1_DIVCLK_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="89" NAME="C_PLL1_CLKFBOUT_MULT" VALUE="1"/>
-      <PARAMETER MPD_INDEX="90" NAME="C_PLL1_CLKFBOUT_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="91" NAME="C_PLL1_CLKIN1_PERIOD" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="92" NAME="C_PLL1_CLKOUT0_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="93" NAME="C_PLL1_CLKOUT0_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="94" NAME="C_PLL1_CLKOUT0_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="95" NAME="C_PLL1_CLKOUT1_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="96" NAME="C_PLL1_CLKOUT1_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="97" NAME="C_PLL1_CLKOUT1_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="98" NAME="C_PLL1_CLKOUT2_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="99" NAME="C_PLL1_CLKOUT2_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="100" NAME="C_PLL1_CLKOUT2_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="101" NAME="C_PLL1_CLKOUT3_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="102" NAME="C_PLL1_CLKOUT3_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="103" NAME="C_PLL1_CLKOUT3_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="104" NAME="C_PLL1_CLKOUT4_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="105" NAME="C_PLL1_CLKOUT4_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="106" NAME="C_PLL1_CLKOUT4_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="107" NAME="C_PLL1_CLKOUT5_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="108" NAME="C_PLL1_CLKOUT5_DUTY_CYCLE" VALUE="0.500000"/>
-      <PARAMETER MPD_INDEX="109" NAME="C_PLL1_CLKOUT5_PHASE" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="110" NAME="C_PLL1_BANDWIDTH" VALUE="OPTIMIZED"/>
-      <PARAMETER MPD_INDEX="111" NAME="C_PLL1_COMPENSATION" VALUE="SYSTEM_SYNCHRONOUS"/>
-      <PARAMETER MPD_INDEX="112" NAME="C_PLL1_REF_JITTER" VALUE="0.100000"/>
-      <PARAMETER MPD_INDEX="113" NAME="C_PLL1_RESET_ON_LOSS_OF_LOCK" VALUE="false"/>
-      <PARAMETER MPD_INDEX="114" NAME="C_PLL1_RST_DEASSERT_CLK" VALUE="CLKIN1"/>
-      <PARAMETER MPD_INDEX="115" NAME="C_PLL1_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="116" NAME="C_PLL1_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="117" NAME="C_PLL1_CLKOUT0_DESKEW_ADJUST" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="118" NAME="C_PLL1_CLKOUT1_DESKEW_ADJUST" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="119" NAME="C_PLL1_CLKOUT2_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="120" NAME="C_PLL1_CLKOUT3_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="121" NAME="C_PLL1_CLKOUT4_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="122" NAME="C_PLL1_CLKOUT5_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="123" NAME="C_PLL1_CLKFBOUT_DESKEW_ADJUST" VALUE="PPC"/>
-      <PARAMETER MPD_INDEX="124" NAME="C_PLL1_CLKIN1_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="125" NAME="C_PLL1_CLKFBOUT_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="126" NAME="C_PLL1_CLKOUT0_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="127" NAME="C_PLL1_CLKOUT1_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="128" NAME="C_PLL1_CLKOUT2_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="129" NAME="C_PLL1_CLKOUT3_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="130" NAME="C_PLL1_CLKOUT4_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="131" NAME="C_PLL1_CLKOUT5_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="132" NAME="C_PLL1_CLKIN1_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="133" NAME="C_PLL1_CLKIN1_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="134" NAME="C_PLL1_CLKFBIN_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="135" NAME="C_PLL1_CLKFBIN_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="136" NAME="C_PLL1_RST_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="137" NAME="C_DCM0_DFS_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="138" NAME="C_DCM0_DLL_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="139" NAME="C_DCM0_DUTY_CYCLE_CORRECTION" VALUE="true"/>
-      <PARAMETER MPD_INDEX="140" NAME="C_DCM0_CLKIN_DIVIDE_BY_2" VALUE="false"/>
-      <PARAMETER MPD_INDEX="141" NAME="C_DCM0_CLK_FEEDBACK" VALUE="1X"/>
-      <PARAMETER MPD_INDEX="142" NAME="C_DCM0_CLKOUT_PHASE_SHIFT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="143" NAME="C_DCM0_DSS_MODE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="144" NAME="C_DCM0_STARTUP_WAIT" VALUE="false"/>
-      <PARAMETER MPD_INDEX="145" NAME="C_DCM0_PHASE_SHIFT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="146" NAME="C_DCM0_CLKFX_MULTIPLY" VALUE="4"/>
-      <PARAMETER MPD_INDEX="147" NAME="C_DCM0_CLKFX_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="148" NAME="C_DCM0_CLKDV_DIVIDE" VALUE="2.000000"/>
-      <PARAMETER MPD_INDEX="149" NAME="C_DCM0_CLKIN_PERIOD" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="150" NAME="C_DCM0_DESKEW_ADJUST" VALUE="SYSTEM_SYNCHRONOUS"/>
-      <PARAMETER MPD_INDEX="151" NAME="C_DCM0_CLKIN_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="152" NAME="C_DCM0_CLKFB_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="153" NAME="C_DCM0_CLK0_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="154" NAME="C_DCM0_CLK90_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="155" NAME="C_DCM0_CLK180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="156" NAME="C_DCM0_CLK270_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="157" NAME="C_DCM0_CLKDV_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="158" NAME="C_DCM0_CLKDV180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="159" NAME="C_DCM0_CLK2X_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="160" NAME="C_DCM0_CLK2X180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="161" NAME="C_DCM0_CLKFX_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="162" NAME="C_DCM0_CLKFX180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="163" NAME="C_DCM0_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="164" NAME="C_DCM0_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="165" NAME="C_DCM0_CLKIN_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="166" NAME="C_DCM0_CLKIN_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="167" NAME="C_DCM0_CLKFB_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="168" NAME="C_DCM0_CLKFB_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="169" NAME="C_DCM0_RST_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="170" NAME="C_DCM1_DFS_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="171" NAME="C_DCM1_DLL_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="172" NAME="C_DCM1_DUTY_CYCLE_CORRECTION" VALUE="true"/>
-      <PARAMETER MPD_INDEX="173" NAME="C_DCM1_CLKIN_DIVIDE_BY_2" VALUE="false"/>
-      <PARAMETER MPD_INDEX="174" NAME="C_DCM1_CLK_FEEDBACK" VALUE="1X"/>
-      <PARAMETER MPD_INDEX="175" NAME="C_DCM1_CLKOUT_PHASE_SHIFT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="176" NAME="C_DCM1_DSS_MODE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="177" NAME="C_DCM1_STARTUP_WAIT" VALUE="false"/>
-      <PARAMETER MPD_INDEX="178" NAME="C_DCM1_PHASE_SHIFT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="179" NAME="C_DCM1_CLKFX_MULTIPLY" VALUE="4"/>
-      <PARAMETER MPD_INDEX="180" NAME="C_DCM1_CLKFX_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="181" NAME="C_DCM1_CLKDV_DIVIDE" VALUE="2.000000"/>
-      <PARAMETER MPD_INDEX="182" NAME="C_DCM1_CLKIN_PERIOD" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="183" NAME="C_DCM1_DESKEW_ADJUST" VALUE="SYSTEM_SYNCHRONOUS"/>
-      <PARAMETER MPD_INDEX="184" NAME="C_DCM1_CLKIN_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="185" NAME="C_DCM1_CLKFB_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="186" NAME="C_DCM1_CLK0_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="187" NAME="C_DCM1_CLK90_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="188" NAME="C_DCM1_CLK180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="189" NAME="C_DCM1_CLK270_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="190" NAME="C_DCM1_CLKDV_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="191" NAME="C_DCM1_CLKDV180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="192" NAME="C_DCM1_CLK2X_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="193" NAME="C_DCM1_CLK2X180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="194" NAME="C_DCM1_CLKFX_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="195" NAME="C_DCM1_CLKFX180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="196" NAME="C_DCM1_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="197" NAME="C_DCM1_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="198" NAME="C_DCM1_CLKIN_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="199" NAME="C_DCM1_CLKIN_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="200" NAME="C_DCM1_CLKFB_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="201" NAME="C_DCM1_CLKFB_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="202" NAME="C_DCM1_RST_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="203" NAME="C_DCM2_DFS_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="204" NAME="C_DCM2_DLL_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="205" NAME="C_DCM2_DUTY_CYCLE_CORRECTION" VALUE="true"/>
-      <PARAMETER MPD_INDEX="206" NAME="C_DCM2_CLKIN_DIVIDE_BY_2" VALUE="false"/>
-      <PARAMETER MPD_INDEX="207" NAME="C_DCM2_CLK_FEEDBACK" VALUE="1X"/>
-      <PARAMETER MPD_INDEX="208" NAME="C_DCM2_CLKOUT_PHASE_SHIFT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="209" NAME="C_DCM2_DSS_MODE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="210" NAME="C_DCM2_STARTUP_WAIT" VALUE="false"/>
-      <PARAMETER MPD_INDEX="211" NAME="C_DCM2_PHASE_SHIFT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="212" NAME="C_DCM2_CLKFX_MULTIPLY" VALUE="4"/>
-      <PARAMETER MPD_INDEX="213" NAME="C_DCM2_CLKFX_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="214" NAME="C_DCM2_CLKDV_DIVIDE" VALUE="2.000000"/>
-      <PARAMETER MPD_INDEX="215" NAME="C_DCM2_CLKIN_PERIOD" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="216" NAME="C_DCM2_DESKEW_ADJUST" VALUE="SYSTEM_SYNCHRONOUS"/>
-      <PARAMETER MPD_INDEX="217" NAME="C_DCM2_CLKIN_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="218" NAME="C_DCM2_CLKFB_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="219" NAME="C_DCM2_CLK0_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="220" NAME="C_DCM2_CLK90_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="221" NAME="C_DCM2_CLK180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="222" NAME="C_DCM2_CLK270_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="223" NAME="C_DCM2_CLKDV_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="224" NAME="C_DCM2_CLKDV180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="225" NAME="C_DCM2_CLK2X_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="226" NAME="C_DCM2_CLK2X180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="227" NAME="C_DCM2_CLKFX_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="228" NAME="C_DCM2_CLKFX180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="229" NAME="C_DCM2_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="230" NAME="C_DCM2_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="231" NAME="C_DCM2_CLKIN_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="232" NAME="C_DCM2_CLKIN_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="233" NAME="C_DCM2_CLKFB_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="234" NAME="C_DCM2_CLKFB_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="235" NAME="C_DCM2_RST_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="236" NAME="C_DCM3_DFS_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="237" NAME="C_DCM3_DLL_FREQUENCY_MODE" VALUE="LOW"/>
-      <PARAMETER MPD_INDEX="238" NAME="C_DCM3_DUTY_CYCLE_CORRECTION" VALUE="true"/>
-      <PARAMETER MPD_INDEX="239" NAME="C_DCM3_CLKIN_DIVIDE_BY_2" VALUE="false"/>
-      <PARAMETER MPD_INDEX="240" NAME="C_DCM3_CLK_FEEDBACK" VALUE="1X"/>
-      <PARAMETER MPD_INDEX="241" NAME="C_DCM3_CLKOUT_PHASE_SHIFT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="242" NAME="C_DCM3_DSS_MODE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="243" NAME="C_DCM3_STARTUP_WAIT" VALUE="false"/>
-      <PARAMETER MPD_INDEX="244" NAME="C_DCM3_PHASE_SHIFT" VALUE="0"/>
-      <PARAMETER MPD_INDEX="245" NAME="C_DCM3_CLKFX_MULTIPLY" VALUE="4"/>
-      <PARAMETER MPD_INDEX="246" NAME="C_DCM3_CLKFX_DIVIDE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="247" NAME="C_DCM3_CLKDV_DIVIDE" VALUE="2.000000"/>
-      <PARAMETER MPD_INDEX="248" NAME="C_DCM3_CLKIN_PERIOD" VALUE="0.000000"/>
-      <PARAMETER MPD_INDEX="249" NAME="C_DCM3_DESKEW_ADJUST" VALUE="SYSTEM_SYNCHRONOUS"/>
-      <PARAMETER MPD_INDEX="250" NAME="C_DCM3_CLKIN_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="251" NAME="C_DCM3_CLKFB_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="252" NAME="C_DCM3_CLK0_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="253" NAME="C_DCM3_CLK90_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="254" NAME="C_DCM3_CLK180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="255" NAME="C_DCM3_CLK270_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="256" NAME="C_DCM3_CLKDV_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="257" NAME="C_DCM3_CLKDV180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="258" NAME="C_DCM3_CLK2X_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="259" NAME="C_DCM3_CLK2X180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="260" NAME="C_DCM3_CLKFX_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="261" NAME="C_DCM3_CLKFX180_BUF" VALUE="false"/>
-      <PARAMETER MPD_INDEX="262" NAME="C_DCM3_EXT_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="263" NAME="C_DCM3_FAMILY" VALUE="virtex5"/>
-      <PARAMETER MPD_INDEX="264" NAME="C_DCM3_CLKIN_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="265" NAME="C_DCM3_CLKIN_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="266" NAME="C_DCM3_CLKFB_MODULE" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="267" NAME="C_DCM3_CLKFB_PORT" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="268" NAME="C_DCM3_RST_MODULE" VALUE="NONE"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="269" NAME="C_CLKIN_FREQ" VALUE="100000000"/>
-      <PARAMETER MPD_INDEX="270" NAME="C_CLKIN_BUF" VALUE="FALSE"/>
-      <PARAMETER MPD_INDEX="271" NAME="C_CLKFBIN_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="272" NAME="C_CLKFBIN_BUF" VALUE="FALSE"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="273" NAME="C_CLKOUT0_FREQ" VALUE="200000000"/>
-      <PARAMETER MPD_INDEX="274" NAME="C_CLKOUT0_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="275" NAME="C_CLKOUT0_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="276" NAME="C_CLKOUT0_BUF" VALUE="TRUE"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="277" NAME="C_CLKOUT1_FREQ" VALUE="100000000"/>
-      <PARAMETER MPD_INDEX="278" NAME="C_CLKOUT1_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="279" NAME="C_CLKOUT1_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="280" NAME="C_CLKOUT1_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="281" NAME="C_CLKOUT2_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="282" NAME="C_CLKOUT2_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="283" NAME="C_CLKOUT2_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="284" NAME="C_CLKOUT2_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="285" NAME="C_CLKOUT3_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="286" NAME="C_CLKOUT3_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="287" NAME="C_CLKOUT3_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="288" NAME="C_CLKOUT3_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="289" NAME="C_CLKOUT4_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="290" NAME="C_CLKOUT4_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="291" NAME="C_CLKOUT4_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="292" NAME="C_CLKOUT4_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="293" NAME="C_CLKOUT5_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="294" NAME="C_CLKOUT5_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="295" NAME="C_CLKOUT5_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="296" NAME="C_CLKOUT5_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="297" NAME="C_CLKOUT6_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="298" NAME="C_CLKOUT6_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="299" NAME="C_CLKOUT6_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="300" NAME="C_CLKOUT6_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="301" NAME="C_CLKOUT7_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="302" NAME="C_CLKOUT7_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="303" NAME="C_CLKOUT7_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="304" NAME="C_CLKOUT7_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="305" NAME="C_CLKOUT8_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="306" NAME="C_CLKOUT8_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="307" NAME="C_CLKOUT8_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="308" NAME="C_CLKOUT8_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="309" NAME="C_CLKOUT9_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="310" NAME="C_CLKOUT9_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="311" NAME="C_CLKOUT9_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="312" NAME="C_CLKOUT9_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="313" NAME="C_CLKOUT10_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="314" NAME="C_CLKOUT10_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="315" NAME="C_CLKOUT10_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="316" NAME="C_CLKOUT10_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="317" NAME="C_CLKOUT11_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="318" NAME="C_CLKOUT11_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="319" NAME="C_CLKOUT11_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="320" NAME="C_CLKOUT11_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="321" NAME="C_CLKOUT12_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="322" NAME="C_CLKOUT12_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="323" NAME="C_CLKOUT12_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="324" NAME="C_CLKOUT12_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="325" NAME="C_CLKOUT13_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="326" NAME="C_CLKOUT13_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="327" NAME="C_CLKOUT13_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="328" NAME="C_CLKOUT13_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="329" NAME="C_CLKOUT14_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="330" NAME="C_CLKOUT14_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="331" NAME="C_CLKOUT14_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="332" NAME="C_CLKOUT14_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="333" NAME="C_CLKOUT15_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="334" NAME="C_CLKOUT15_PHASE" VALUE="0"/>
-      <PARAMETER MPD_INDEX="335" NAME="C_CLKOUT15_GROUP" VALUE="NONE"/>
-      <PARAMETER MPD_INDEX="336" NAME="C_CLKOUT15_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="337" NAME="C_CLKFBOUT_FREQ" VALUE="0"/>
-      <PARAMETER MPD_INDEX="338" NAME="C_CLKFBOUT_BUF" VALUE="TRUE"/>
-      <PARAMETER MPD_INDEX="339" NAME="C_SPEEDGRADE" VALUE="DEFAULT"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="2" NAME="CLKOUT0" SIGIS="CLK" SIGNAME="proc_clk_s"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="3" NAME="CLKOUT1" SIGIS="CLK" SIGNAME="sys_clk_s"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="0" NAME="CLKIN" SIGIS="CLK" SIGNAME="dcm_clk_s"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="20" NAME="LOCKED" SIGNAME="Dcm_all_locked"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="19" NAME="RST" SIGIS="RST" SIGNAME="net_gnd"/>
-      <PORT DIR="I" ISVALID="FALSE" MPD_INDEX="1" NAME="CLKFBIN" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="4" NAME="CLKOUT2" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="5" NAME="CLKOUT3" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="6" NAME="CLKOUT4" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="7" NAME="CLKOUT5" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="8" NAME="CLKOUT6" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="9" NAME="CLKOUT7" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="10" NAME="CLKOUT8" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="11" NAME="CLKOUT9" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="12" NAME="CLKOUT10" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="13" NAME="CLKOUT11" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="14" NAME="CLKOUT12" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="15" NAME="CLKOUT13" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="16" NAME="CLKOUT14" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="17" NAME="CLKOUT15" SIGIS="CLK" SIGNAME="__NOC__"/>
-      <PORT DIR="O" ISVALID="FALSE" MPD_INDEX="18" NAME="CLKFBOUT" SIGIS="CLK" SIGNAME="__NOC__"/>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/generic_v1_00_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/proc_sys_reset_v2_00_a/doc/proc_sys_reset.pdf" GROUP="H" HWVERSION="2.00.a" INSTANCE="proc_sys_reset_0" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="10" MODCLASS="PERIPHERAL" MODTYPE="proc_sys_reset" SAV_INDEX="4">
-      <DESCRIPTION TYPE="SHORT">Processor System Reset Module</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">Reset management module</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_SUBFAMILY" VALUE="lx"/>
-      <PARAMETER MPD_INDEX="1" NAME="C_EXT_RST_WIDTH" VALUE="4"/>
-      <PARAMETER MPD_INDEX="2" NAME="C_AUX_RST_WIDTH" VALUE="4"/>
-      <PARAMETER CHANGEDBY="USER" MPD_INDEX="3" NAME="C_EXT_RESET_HIGH" VALUE="0"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_AUX_RESET_HIGH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_NUM_BUS_RST" VALUE="1"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_NUM_PERP_RST" VALUE="1"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_FAMILY" VALUE="virtex5"/>
-      <BUSINTERFACE BIFRANK="INITIATOR" BIF_X="1" BIF_Y="0" BUSNAME="ppc_reset_bus" BUSSTD="XIL" BUS_STD="XIL_RESETPPC" MPD_INDEX="0" NAME="RESETPPC0"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="0" NAME="Slowest_sync_clk" SIGIS="CLK" SIGNAME="sys_clk_s"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="10" NAME="Dcm_locked" SIGNAME="Dcm_all_locked"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="1" NAME="Ext_Reset_In" SIGIS="RST" SIGNAME="sys_rst_s"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="18" NAME="Bus_Struct_Reset" SIGIS="RST" SIGNAME="sys_bus_reset" VECFORMULA="[0:C_NUM_BUS_RST-1]"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="19" NAME="Peripheral_Reset" SIGIS="RST" SIGNAME="sys_periph_reset" VECFORMULA="[0:C_NUM_PERP_RST-1]"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="Aux_Reset_In" SIGIS="RST" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="MB_Debug_Sys_Rst" SIGIS="RST" SIGNAME="__NOC__"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="Core_Reset_Req_0" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="Chip_Reset_Req_0" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="System_Reset_Req_0" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="Core_Reset_Req_1" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="Chip_Reset_Req_1" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="System_Reset_Req_1" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="11" NAME="RstcPPCresetcore_0" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="12" NAME="RstcPPCresetchip_0" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="13" NAME="RstcPPCresetsys_0" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="14" NAME="RstcPPCresetcore_1" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="15" NAME="RstcPPCresetchip_1" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="16" NAME="RstcPPCresetsys_1" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="17" NAME="MB_Reset" SIGIS="RST" SIGNAME="__NOC__"/>
-      <BUSINTERFACE BIFRANK="INITIATOR" BUSNAME="__NOC__" BUSSTD="XIL" BUS_STD="XIL_RESETPPC" MPD_INDEX="1" NAME="RESETPPC1"/>
-    </MODULE>
-    <MODULE DOC_DRIVER="C:/devtools/Xilinx/10.1/EDK/sw/XilinxProcessorIPLib/drivers/intc_v1_11_a/doc/html/api/index.html" DOC_IP="C:/devtools/Xilinx/10.1/EDK/hw/XilinxProcessorIPLib/pcores/xps_intc_v1_00_a/doc/xps_intc.pdf" HWVERSION="1.00.a" INSTANCE="xps_intc_0" INTCINDEX="0" IPTYPE="PERIPHERAL" IS_PLACED="TRUE" MHS_INDEX="11" MODCLASS="INTERRUPT_CNTLR" MODTYPE="xps_intc" PROCESSOR="ppc405_0" SAV_INDEX="7">
-      <DESCRIPTION TYPE="SHORT">XPS Interrupt Controller</DESCRIPTION>
-      <DESCRIPTION TYPE="LONG">intc core attached to the PLBV46</DESCRIPTION>
-      <PARAMETER MPD_INDEX="0" NAME="C_FAMILY" VALUE="virtex5"/>
-      <PARAMETER ADDRESS="BASE" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="1" NAME="C_BASEADDR" VALUE="0x81800000"/>
-      <PARAMETER ADDRESS="HIGH" ADDR_TYPE="REGISTER" CHANGEDBY="USER" MPD_INDEX="2" NAME="C_HIGHADDR" VALUE="0x8180ffff"/>
-      <PARAMETER MPD_INDEX="3" NAME="C_SPLB_AWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="4" NAME="C_SPLB_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="5" NAME="C_SPLB_P2P" VALUE="0"/>
-      <PARAMETER MPD_INDEX="6" NAME="C_SPLB_NUM_MASTERS" VALUE="1"/>
-      <PARAMETER MPD_INDEX="7" NAME="C_SPLB_MID_WIDTH" VALUE="1"/>
-      <PARAMETER MPD_INDEX="8" NAME="C_SPLB_NATIVE_DWIDTH" VALUE="32"/>
-      <PARAMETER MPD_INDEX="9" NAME="C_SPLB_SUPPORT_BURSTS" VALUE="0"/>
-      <PARAMETER MPD_INDEX="10" NAME="C_NUM_INTR_INPUTS" VALUE="2"/>
-      <PARAMETER MPD_INDEX="11" NAME="C_KIND_OF_INTR" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="12" NAME="C_KIND_OF_EDGE" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="13" NAME="C_KIND_OF_LVL" VALUE="0xffffffff"/>
-      <PARAMETER MPD_INDEX="14" NAME="C_HAS_IPR" VALUE="1"/>
-      <PARAMETER MPD_INDEX="15" NAME="C_HAS_SIE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="16" NAME="C_HAS_CIE" VALUE="1"/>
-      <PARAMETER MPD_INDEX="17" NAME="C_HAS_IVR" VALUE="1"/>
-      <PARAMETER MPD_INDEX="18" NAME="C_IRQ_ACTIVE" VALUE="1"/>
-      <BUSINTERFACE BIFRANK="SLAVE" BUSNAME="plb" BUSSTD="PLBV46" BUS_STD="PLBV46" MPD_INDEX="0" NAME="SPLB"/>
-      <PORT DIR="O" INMHS="TRUE" MPD_INDEX="43" NAME="Irq" SENSITIVITY="EDGE_RISING" SIGIS="INTERRUPT" SIGNAME="EICC405EXTINPUTIRQ"/>
-      <PORT DIR="I" INMHS="TRUE" MPD_INDEX="42" NAME="Intr" SENSITIVITY="EDGE_RISING" SIGIS="INTERRUPT" SIGNAME="RS232_Uart_Interrupt" VECFORMULA="[(C_NUM_INTR_INPUTS-1):0]"/>
-      <PORT DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="2" NAME="PLB_ABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="3" NAME="PLB_PAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="4" NAME="PLB_masterID" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="5" NAME="PLB_RNW" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="6" NAME="PLB_BE" SIGNAME="__DEF__" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
-      <PORT DIR="I" MPD_INDEX="7" NAME="PLB_size" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="I" MPD_INDEX="8" NAME="PLB_type" SIGNAME="__DEF__" VECFORMULA="[0:2]"/>
-      <PORT DIR="I" MPD_INDEX="9" NAME="PLB_wrDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="I" MPD_INDEX="10" NAME="PLB_UABus" SIGNAME="__DEF__" VECFORMULA="[0:31]"/>
-      <PORT DIR="I" MPD_INDEX="11" NAME="PLB_SAValid" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="12" NAME="PLB_rdPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="13" NAME="PLB_wrPrim" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="14" NAME="PLB_abort" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="15" NAME="PLB_busLock" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="16" NAME="PLB_MSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="17" NAME="PLB_lockErr" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="__DEF__"/>
-      <PORT DIR="I" MPD_INDEX="22" NAME="PLB_wrPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="23" NAME="PLB_rdPendPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="24" NAME="PLB_reqPri" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="I" MPD_INDEX="25" NAME="PLB_TAttribute" SIGNAME="__DEF__" VECFORMULA="[0:15]"/>
-      <PORT DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="27" NAME="Sl_SSize" SIGNAME="__DEF__" VECFORMULA="[0:1]"/>
-      <PORT DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="32" NAME="Sl_rdDBus" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
-      <PORT DIR="O" MPD_INDEX="33" NAME="Sl_rdDAck" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="34" NAME="Sl_rdComp" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="35" NAME="Sl_MBusy" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="36" NAME="Sl_MWrErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="37" NAME="Sl_MRdErr" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <PORT DIR="O" MPD_INDEX="38" NAME="Sl_wrBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="39" NAME="Sl_rdWdAddr" SIGNAME="__DEF__" VECFORMULA="[0:3]"/>
-      <PORT DIR="O" MPD_INDEX="40" NAME="Sl_rdBTerm" SIGNAME="__DEF__"/>
-      <PORT DIR="O" MPD_INDEX="41" NAME="Sl_MIRQ" SIGNAME="__DEF__" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
-      <INTERRUPTSRCS>
-        <INTRSRC INSTANCE="RS232_Uart" PRIORITY="0" SIGNAME="RS232_Uart_Interrupt"/>
-      </INTERRUPTSRCS>
-      <MEMORYMAP>
-        <MEMRANGE BASE="0x81800000" BASENAME="C_BASEADDR" BASEVALUE="2172649472" HIGH="0x8180ffff" HIGHNAME="C_HIGHADDR" HIGHVALUE="2172715007" MINSIZE="0x20" SIZE="65536" SIZEABRV="64K">
-          <MEMBUSINTERFACES>
-            <MEMBUSINTERFACE NAME="SPLB"/>
-          </MEMBUSINTERFACES>
-        </MEMRANGE>
-      </MEMORYMAP>
-    </MODULE>
-  </MODULES>
-
-  <EXTERNALPORTS>
-    <PORT DIR="I" MHS_INDEX="0" NAME="fpga_0_RS232_Uart_RX_pin" SIGNAME="fpga_0_RS232_Uart_RX"/>
-    <PORT DIR="O" MHS_INDEX="1" NAME="fpga_0_RS232_Uart_TX_pin" SIGNAME="fpga_0_RS232_Uart_TX"/>
-    <PORT DIR="IO" ENDIAN="LITTLE" LSB="0" MHS_INDEX="2" MSB="3" NAME="fpga_0_LEDs_4Bit_GPIO_IO_pin" SIGNAME="fpga_0_LEDs_4Bit_GPIO_IO"/>
-    <PORT DIR="IO" ENDIAN="BIG" LSB="0" MHS_INDEX="3" MSB="4" NAME="fpga_0_LEDs_Positions_GPIO_IO_pin" SIGNAME="fpga_0_LEDs_Positions_GPIO_IO"/>
-    <PORT DIR="I" MHS_INDEX="4" NAME="fpga_0_SysACE_CompactFlash_SysACE_CLK_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_CLK"/>
-    <PORT DIR="O" ENDIAN="LITTLE" LSB="6" MHS_INDEX="5" MSB="1" NAME="fpga_0_SysACE_CompactFlash_SysACE_MPA_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_MPA"/>
-    <PORT DIR="IO" ENDIAN="BIG" LSB="15" MHS_INDEX="6" MSB="0" NAME="fpga_0_SysACE_CompactFlash_SysACE_MPD_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_MPD"/>
-    <PORT DIR="O" MHS_INDEX="7" NAME="fpga_0_SysACE_CompactFlash_SysACE_CEN_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_CEN"/>
-    <PORT DIR="O" MHS_INDEX="8" NAME="fpga_0_SysACE_CompactFlash_SysACE_OEN_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_OEN"/>
-    <PORT DIR="O" MHS_INDEX="9" NAME="fpga_0_SysACE_CompactFlash_SysACE_WEN_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_WEN"/>
-    <PORT DIR="I" MHS_INDEX="10" NAME="fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin" SIGNAME="fpga_0_SysACE_CompactFlash_SysACE_MPIRQ"/>
-    <PORT DIR="O" ENDIAN="LITTLE" LSB="9" MHS_INDEX="11" MSB="29" NAME="fpga_0_SRAM_Mem_A_pin" SIGNAME="fpga_0_SRAM_Mem_A"/>
-    <PORT DIR="O" ENDIAN="BIG" LSB="0" MHS_INDEX="12" MSB="3" NAME="fpga_0_SRAM_Mem_BEN_pin" SIGNAME="fpga_0_SRAM_Mem_BEN"/>
-    <PORT DIR="O" MHS_INDEX="13" NAME="fpga_0_SRAM_Mem_WEN_pin" SIGNAME="fpga_0_SRAM_Mem_WEN"/>
-    <PORT DIR="IO" ENDIAN="LITTLE" LSB="0" MHS_INDEX="14" MSB="31" NAME="fpga_0_SRAM_Mem_DQ_pin" SIGNAME="fpga_0_SRAM_Mem_DQ"/>
-    <PORT DIR="O" ENDIAN="BIG" LSB="0" MHS_INDEX="15" MSB="0" NAME="fpga_0_SRAM_Mem_OEN_pin" SIGNAME="fpga_0_SRAM_Mem_OEN"/>
-    <PORT DIR="O" ENDIAN="LITTLE" LSB="0" MHS_INDEX="16" MSB="0" NAME="fpga_0_SRAM_Mem_CEN_pin" SIGNAME="fpga_0_SRAM_Mem_CEN"/>
-    <PORT DIR="O" MHS_INDEX="17" NAME="fpga_0_SRAM_Mem_ADV_LDN_pin" SIGNAME="fpga_0_SRAM_Mem_ADV_LDN"/>
-    <PORT DIR="O" MHS_INDEX="18" NAME="fpga_0_SRAM_CLOCK" SIGNAME="sys_clk_s"/>
-    <PORT CLKFREQUENCY="100000000" DIR="I" MHS_INDEX="19" NAME="sys_clk_pin" SIGIS="CLK" SIGNAME="dcm_clk_s"/>
-    <PORT DIR="I" MHS_INDEX="20" NAME="sys_rst_pin" RSTPOLARITY="0" SIGIS="RST" SIGNAME="sys_rst_s"/>
-  </EXTERNALPORTS>
-
-  <BLKDSHAPES STACK_HORIZ_WIDTH="1">
-    <PROCSHAPES>
-      <MODULE BIFS_H="2" BIFS_W="2" INSTANCE="ppc405_0" IS_ABVSBS="TRUE" SHAPE_VERTI_INDEX="2" STACK_HORIZ_INDEX="0"/>
-    </PROCSHAPES>
-    <IPBUCKET MODS_H="1" MODS_W="2">
-      <MODULE INSTANCE="SRAM_util_bus_split_0" IS_PLACED="TRUE" MODTYPE="util_bus_split"/>
-      <MODULE INSTANCE="clock_generator_0" IS_PLACED="TRUE" MODTYPE="clock_generator"/>
-    </IPBUCKET>
-    <SBSSHAPES>
-      <MODULE INSTANCE="plb"/>
-    </SBSSHAPES>
-    <SBSBUCKETS>
-      <SBSBUCKET BUSINDEX="0" BUSNAME="plb" BUSSTD="PLBV46" IS_BLWSBS="TRUE" MODS_H="2" MODS_W="3" SHAPE_VERTI_INDEX="3" STACK_HORIZ_INDEX="0">
-        <MODULE INSTANCE="RS232_Uart" MODTYPE="xps_uartlite"/>
-        <MODULE INSTANCE="LEDs_4Bit" MODTYPE="xps_gpio"/>
-        <MODULE INSTANCE="LEDs_Positions" MODTYPE="xps_gpio"/>
-        <MODULE INSTANCE="SysACE_CompactFlash" MODTYPE="xps_sysace"/>
-        <MODULE INSTANCE="SRAM" MODTYPE="xps_mch_emc"/>
-        <MODULE INSTANCE="xps_intc_0" MODTYPE="xps_intc"/>
-      </SBSBUCKET>
-    </SBSBUCKETS>
-    <CMPLXSHAPES>
-      <CMPLXSHAPE IS_ABVSBS="TRUE" MODCLASS="PERIPHERAL" MODS_H="1" MODS_W="1" SHAPE_ID="0" SHAPE_VERTI_INDEX="0" STACK_HORIZ_INDEX="0">
-        <MODULE BIFS_H="1" BIFS_W="2" INSTANCE="jtagppc_0" MODCLASS="PERIPHERAL"/>
-      </CMPLXSHAPE>
-      <CMPLXSHAPE IS_ABVSBS="TRUE" MODCLASS="PERIPHERAL" MODS_H="1" MODS_W="1" SHAPE_ID="1" SHAPE_VERTI_INDEX="1" STACK_HORIZ_INDEX="0">
-        <MODULE BIFS_H="1" BIFS_W="2" INSTANCE="proc_sys_reset_0" MODCLASS="PERIPHERAL"/>
-      </CMPLXSHAPE>
-    </CMPLXSHAPES>
-    <BCLANESPACES>
-      <BCLANESPACE BUSLANES_W="4" EAST="0">
-        <BUSCONNLANE BUSLANE_X="2" BUSNAME="jtagppc_0_0" BUSSTD="XIL" IS_ABVSBS="TRUE" ORIENTED="EAST" STACK_HORIZ_INDEX="0">
-          <BUSCONN BIF_Y="0" BUSINTERFACE="JTAGPPC" INSTANCE="ppc405_0" IS_PROCCONN="TRUE"/>
-          <BUSCONN BUSINTERFACE="JTAGPPC0" BUSSTD="XIL" INSTANCE="jtagppc_0"/>
-        </BUSCONNLANE>
-        <BUSCONNLANE BUSLANE_X="2" BUSNAME="plb" BUSSTD="PLBV46" IS_BLWSBS="TRUE" IS_SBSCONN="TRUE" ORIENTED="EAST" STACK_HORIZ_INDEX="0">
-          <BUSCONN BIF_Y="1" BUSINTERFACE="DPLB0" INSTANCE="ppc405_0" IS_PROCCONN="TRUE"/>
-        </BUSCONNLANE>
-        <BUSCONNLANE BUSLANE_X="1" BUSNAME="plb" BUSSTD="PLBV46" IS_BKTCONN="TRUE" IS_BLWSBS="TRUE" ORIENTED="EAST" STACK_HORIZ_INDEX="0">
-          <BUSCONN BIFRANK="SLAVE" BUSINTERFACE="SPLBV46"/>
-        </BUSCONNLANE>
-      </BCLANESPACE>
-      <BCLANESPACE BUSLANES_W="3" WEST="0">
-        <BUSCONNLANE BUSLANE_X="1" BUSNAME="plb" BUSSTD="PLBV46" IS_BLWSBS="TRUE" IS_SBSCONN="TRUE" ORIENTED="WEST" STACK_HORIZ_INDEX="0">
-          <BUSCONN BIF_Y="1" BUSINTERFACE="IPLB0" INSTANCE="ppc405_0" IS_PROCCONN="TRUE"/>
-        </BUSCONNLANE>
-        <BUSCONNLANE BUSLANE_X="1" BUSNAME="ppc_reset_bus" BUSSTD="XIL" IS_ABVSBS="TRUE" ORIENTED="WEST" STACK_HORIZ_INDEX="0">
-          <BUSCONN BIF_Y="0" BUSINTERFACE="RESETPPC" INSTANCE="ppc405_0" IS_PROCCONN="TRUE"/>
-          <BUSCONN BUSINTERFACE="RESETPPC0" BUSSTD="XIL" INSTANCE="proc_sys_reset_0"/>
-        </BUSCONNLANE>
-      </BCLANESPACE>
-    </BCLANESPACES>
-  </BLKDSHAPES>
-
-</EDKSYSTEM>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/bitinit.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/bitinit.opt
deleted file mode 100644
index 3645236..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/bitinit.opt
+++ /dev/null
@@ -1 +0,0 @@
-   -pe ppc405_0  $(PPC405_0_BOOTLOOP) 

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/libgen.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/libgen.opt
deleted file mode 100644
index 77b1548..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/libgen.opt
+++ /dev/null
@@ -1 +0,0 @@
- -p virtex4

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/platgen.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/platgen.opt
deleted file mode 100644
index 25299b7..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/platgen.opt
+++ /dev/null
@@ -1,2 +0,0 @@
- -p xc4vfx12ff668-10 -lang vhdl
-

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt
deleted file mode 100644
index 1f68b9b..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt
+++ /dev/null
@@ -1,20 +0,0 @@
-ppc405_0

-RTOSDEMO_SOURCES = RTOSDemo/../../Common/Minimal/BlockQ.c RTOSDemo/../../Common/Minimal/blocktim.c RTOSDemo/../../Common/Minimal/comtest.c RTOSDemo/../../Common/Minimal/countsem.c RTOSDemo/../../Common/Minimal/death.c RTOSDemo/../../Common/Minimal/dynamic.c RTOSDemo/../../Common/Minimal/flash.c RTOSDemo/../../Common/Minimal/GenQTest.c RTOSDemo/../../Common/Minimal/integer.c RTOSDemo/../../Common/Minimal/QPeek.c RTOSDemo/../../Common/Minimal/recmutex.c RTOSDemo/../../Common/Minimal/semtest.c RTOSDemo/../../../Source/tasks.c RTOSDemo/../../../Source/list.c RTOSDemo/../../../Source/queue.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/port.c RTOSDemo/main.c RTOSDemo/serial/serial.c RTOSDemo/partest/partest.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/portasm.S RTOSDemo/../../../Source/portable/MemMang/heap_2.c  RTOSDemo/flop/flop.c RTOSDemo/flop/flop-reg-test.c

-RTOSDEMO_HEADERS = RTOSDemo/FreeRTOSConfig.h 

-RTOSDEMO_CC = powerpc-eabi-gcc

-RTOSDEMO_CC_SIZE = powerpc-eabi-size

-RTOSDEMO_CC_OPT = -O0

-RTOSDEMO_CFLAGS = -I./RTOSDemo/flop -I../../Source/portable/GCC/PPC405_Xilinx -I./ppc405_0/include/  -IRTOSDemo/   -I. -I./RTOSDemo/ -I../Common/include/ -I../../Source/include/ -I./ppc405_0/include/ -I./ppc405_0/include -D GCC_PPC405 -mregnames -Wextra

-RTOSDEMO_CC_SEARCH = # -B

-RTOSDEMO_LIBPATH = -L./ppc405_0/lib/ # -L

-RTOSDEMO_INCLUDES = -I./ppc405_0/include/  -IRTOSDemo/ # -I

-RTOSDEMO_LFLAGS = # -l

-RTOSDEMO_LINKER_SCRIPT = RTOSDemo/RTOSDemo_linker_script.ld

-RTOSDEMO_CC_DEBUG_FLAG =  -g 

-RTOSDEMO_CC_PROFILE_FLAG = # -pg

-RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi

-RTOSDEMO_CC_INFERRED_FLAGS= 

-RTOSDEMO_CC_START_ADDR_FLAG=  #  # -Wl,-defsym -Wl,_START_ADDR=

-RTOSDEMO_CC_STACK_SIZE_FLAG=  #  # -Wl,-defsym -Wl,_STACK_SIZE=

-RTOSDEMO_CC_HEAP_SIZE_FLAG=  #  # -Wl,-defsym -Wl,_HEAP_SIZE=

-                  $(RTOSDEMO_CC_INFERRED_FLAGS)  \

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/simgen.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/simgen.opt
deleted file mode 100644
index cbd5239..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/simgen.opt
+++ /dev/null
@@ -1 +0,0 @@
- -p virtex4 -lang vhdl   -pe ppc405_0  $(PPC405_0_BOOTLOOP)  -s mti -X C:/E/temp/rc/3/V5.0.2/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/ -E C:/E/temp/rc/3/V5.0.2/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system.gui b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system.gui
deleted file mode 100644
index 3de5c6a..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system.gui
+++ /dev/null
@@ -1,100 +0,0 @@
-
-<PRO_GUISETTING VIEWSTATUS="BIFS_TREE">
-  <GUISETTING HSCROLL="0" ID="BIFS_TREE" SPSIZE1="114" SPSIZE2="978" VSCROLL="0">
-
-    <COLHDR INDEX="0" NAME="Name" VISIBLE="TRUE" WIDTH="151"/>
-
-    <COLHDR INDEX="4" NAME="Bus Connection" VISIBLE="TRUE" WIDTH="156"/>
-
-    <COLHDR INDEX="6" NAME="Bus Standard" VISIBLE="FALSE" WIDTH="0"/>
-
-    <COLHDR INDEX="1" NAME="IP Type" VISIBLE="TRUE" WIDTH="93"/>
-
-    <COLHDR INDEX="2" NAME="IP Version" VISIBLE="TRUE" WIDTH="104"/>
-
-    <COLHDR INDEX="5" NAME="Mastership" VISIBLE="FALSE" WIDTH="0"/>
-
-    <COLHDR INDEX="3" NAME="IP CLASSIFICATION" VISIBLE="FALSE" WIDTH="0"/>
-
-    <EXPANDED/>
-
-</GUISETTING>
-  <GUISETTING HSCROLL="0" ID="PORTS_TREE" VSCROLL="0">
-
-    <COLHDR INDEX="0" NAME="Name" VISIBLE="TRUE" WIDTH="200"/>
-
-    <COLHDR INDEX="1" NAME="Net" VISIBLE="TRUE" WIDTH="200"/>
-
-    <COLHDR INDEX="2" NAME="Direction" VISIBLE="TRUE" WIDTH="98"/>
-
-    <COLHDR INDEX="4" NAME="Range" VISIBLE="TRUE" WIDTH="200"/>
-
-    <COLHDR INDEX="3" NAME="Class" VISIBLE="TRUE" WIDTH="81"/>
-
-    <COLHDR INDEX="5" NAME="Frequency" VISIBLE="TRUE" WIDTH="106"/>
-
-    <COLHDR INDEX="6" NAME="Reset Polarity" VISIBLE="TRUE" WIDTH="121"/>
-
-    <COLHDR INDEX="9" NAME="Sensitivity" VISIBLE="TRUE" WIDTH="103"/>
-
-    <COLHDR INDEX="7" NAME="IP Type" VISIBLE="TRUE" WIDTH="93"/>
-
-    <COLHDR INDEX="8" NAME="IP Version" VISIBLE="FALSE" WIDTH="0"/>
-
-    <EXPANDED/>
-
-</GUISETTING>
-  <GUISETTING HSCROLL="0" ID="ADDRESSES_TREE" VSCROLL="0">                            
-
-    <COLHDR INDEX="0" NAME="Name" VISIBLE="TRUE" WIDTH="153"/>                            
-
-    <COLHDR INDEX="3" NAME="Base Address" VISIBLE="TRUE" WIDTH="121"/>                            
-
-    <COLHDR INDEX="4" NAME="High Address" VISIBLE="TRUE" WIDTH="119"/>                            
-
-    <COLHDR INDEX="5" NAME="Size" VISIBLE="TRUE" WIDTH="76"/>                            
-
-    <COLHDR INDEX="7" NAME="Bus Interface(s)" VISIBLE="TRUE" WIDTH="130"/>                            
-
-    <COLHDR INDEX="10" NAME="Bus Connection" VISIBLE="TRUE" WIDTH="131"/>                            
-
-    <COLHDR INDEX="6" NAME="Lock" VISIBLE="TRUE" WIDTH="80"/>                            
-
-    <COLHDR INDEX="9" NAME="ICache" VISIBLE="TRUE" WIDTH="90"/>                            
-
-    <COLHDR INDEX="8" NAME="DCache" VISIBLE="TRUE" WIDTH="95"/>                            
-
-    <COLHDR INDEX="1" NAME="IP Type" VISIBLE="TRUE" WIDTH="93"/>                            
-
-    <COLHDR INDEX="2" NAME="IP Version" VISIBLE="TRUE" WIDTH="104"/>                            
-
-    <EXPANDED/>
-
-</GUISETTING>
-  <GUISETTING COLSORT="0" HSCROLL="0" ID="ADDRESSES_FLAT" SORTORE="1" VSCROLL="0">
-
-    <COLHDR INDEX="11" NAME="Instance" VISIBLE="TRUE" WIDTH="115"/>
-
-    <COLHDR INDEX="0" NAME="Name" VISIBLE="TRUE" WIDTH="153"/>
-
-    <COLHDR INDEX="3" NAME="Base Address" VISIBLE="TRUE" WIDTH="121"/>
-
-    <COLHDR INDEX="4" NAME="High Address" VISIBLE="TRUE" WIDTH="119"/>
-
-    <COLHDR INDEX="5" NAME="Size" VISIBLE="TRUE" WIDTH="76"/>
-
-    <COLHDR INDEX="7" NAME="Bus Interface(s)" VISIBLE="TRUE" WIDTH="130"/>
-
-    <COLHDR INDEX="10" NAME="Bus Connection" VISIBLE="TRUE" WIDTH="131"/>
-
-    <COLHDR INDEX="6" NAME="Lock" VISIBLE="TRUE" WIDTH="80"/>
-
-    <COLHDR INDEX="9" NAME="ICache" VISIBLE="TRUE" WIDTH="90"/>
-
-    <COLHDR INDEX="8" NAME="DCache" VISIBLE="TRUE" WIDTH="95"/>
-
-    <COLHDR INDEX="1" NAME="IP Type" VISIBLE="TRUE" WIDTH="93"/>
-
-    <COLHDR INDEX="2" NAME="IP Version" VISIBLE="TRUE" WIDTH="104"/>
-
-</GUISETTING></PRO_GUISETTING>

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system_routed b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system_routed
deleted file mode 100644
index e69de29..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/system_routed
+++ /dev/null
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt
deleted file mode 100644
index 39ff0ed..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/testapp_peripheral_compiler.opt
+++ /dev/null
@@ -1,20 +0,0 @@
-ppc405_0

-TESTAPP_PERIPHERAL_SOURCES = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/TestApp_Peripheral.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/xintc_tapp_example.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/xuartlite_selftest_example.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/xuartlite_intr_tapp_example.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/xgpio_tapp_example.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/xsysace_selftest_example.c 

-TESTAPP_PERIPHERAL_HEADERS = /cygdrive/c//E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/intc_header.h /cygdrive/c//E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/uartlite_header.h /cygdrive/c//E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/uartlite_intr_header.h /cygdrive/c//E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/gpio_header.h /cygdrive/c//E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/sysace_header.h 

-TESTAPP_PERIPHERAL_CC = powerpc-eabi-gcc

-TESTAPP_PERIPHERAL_CC_SIZE = powerpc-eabi-size

-TESTAPP_PERIPHERAL_CC_OPT = -O0

-TESTAPP_PERIPHERAL_CFLAGS = 

-TESTAPP_PERIPHERAL_CC_SEARCH = # -B

-TESTAPP_PERIPHERAL_LIBPATH = -L./ppc405_0/lib/ # -L

-TESTAPP_PERIPHERAL_INCLUDES = -I./ppc405_0/include/  -ITestApp_Peripheral/src/ # -I

-TESTAPP_PERIPHERAL_LFLAGS = # -l

-TESTAPP_PERIPHERAL_LINKER_SCRIPT = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/TestApp_Peripheral_LinkScr.ld

-TESTAPP_PERIPHERAL_CC_DEBUG_FLAG =  -g 

-TESTAPP_PERIPHERAL_CC_PROFILE_FLAG = # -pg

-TESTAPP_PERIPHERAL_CC_GLOBPTR_FLAG= # -msdata=eabi

-TESTAPP_PERIPHERAL_CC_INFERRED_FLAGS= -mfpu=sp_full 

-TESTAPP_PERIPHERAL_CC_START_ADDR_FLAG=  #  # -Wl,-defsym -Wl,_START_ADDR=

-TESTAPP_PERIPHERAL_CC_STACK_SIZE_FLAG=  #  # -Wl,-defsym -Wl,_STACK_SIZE=

-TESTAPP_PERIPHERAL_CC_HEAP_SIZE_FLAG=  #  # -Wl,-defsym -Wl,_HEAP_SIZE=

-                  $(TESTAPP_PERIPHERAL_CC_INFERRED_FLAGS)  \

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/vpgen.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/vpgen.opt
deleted file mode 100644
index 8ea8f66..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/vpgen.opt
+++ /dev/null
@@ -1 +0,0 @@
- -p xc4vfx12ff668-10

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xplorer.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xplorer.opt
deleted file mode 100644
index 37e5b11..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xplorer.opt
+++ /dev/null
@@ -1 +0,0 @@
--device xc4vfx12ff668-10data/system.ucf7 0

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt
deleted file mode 100644
index 33391f0..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/__xps/xpsxflow.opt
+++ /dev/null
@@ -1 +0,0 @@
--device xc4vfx12ff668-10data/system.ucf 0

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd
deleted file mode 100644
index 110f5ce..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/svg10.dtd
+++ /dev/null
@@ -1,1704 +0,0 @@
-<!-- =====================================================================
-  This is the DTD for SVG 1.0.
-
-  The specification for SVG that corresponds to this DTD is available at:
-
-    http://www.w3.org/TR/2001/REC-SVG-20010904/
-
-  Copyright (c) 2000 W3C (MIT, INRIA, Keio), All Rights Reserved.
-
-  For SVG 1.0:
-
-    Namespace:
-      http://www.w3.org/2000/svg  
-
-    Public identifier:
-      PUBLIC "-//W3C//DTD SVG 1.0//EN"
-
-    URI for the DTD:
-      http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd
-============================================================================= -->
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: Data types 
-     ============================================================== -->
-
-<!ENTITY % BaselineShiftValue "CDATA">
-    <!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) -->
-
-<!ENTITY % Boolean "(false | true)">
-    <!-- feature specification -->
-
-<!ENTITY % ClassList "CDATA">
-    <!-- list of classes -->
-
-<!ENTITY % ClipValue "CDATA">
-    <!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) -->
-
-<!ENTITY % ClipPathValue "CDATA">
-    <!-- 'clip-path' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % ClipFillRule "(nonzero | evenodd | inherit)">
-    <!-- 'clip-rule' or fill-rule property/attribute value -->
-
-<!ENTITY % ContentType "CDATA">
-    <!-- media type, as per [RFC2045] -->
-
-<!ENTITY % Coordinate "CDATA">
-    <!-- a <coordinate> -->
-
-<!ENTITY % Coordinates "CDATA">
-    <!-- a list of <coordinate>s -->
-
-<!ENTITY % Color "CDATA">
-    <!-- a <color> value -->
-
-<!ENTITY % CursorValue "CDATA">
-    <!-- 'cursor' property/attribute value (e.g., 'crosshair', %URI;) -->
-
-<!ENTITY % EnableBackgroundValue "CDATA">
-    <!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') -->
-
-<!ENTITY % ExtensionList "CDATA">
-    <!-- extension list specification -->
-
-<!ENTITY % FeatureList "CDATA">
-    <!-- feature list specification -->
-
-<!ENTITY % FilterValue "CDATA">
-    <!-- 'filter' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % FontFamilyValue "CDATA">
-    <!-- 'font-family' property/attribute value (i.e., list of fonts) -->
-
-<!ENTITY % FontSizeValue "CDATA">
-    <!-- 'font-size' property/attribute value -->
-
-<!ENTITY % FontSizeAdjustValue "CDATA">
-    <!-- 'font-size-adjust' property/attribute value -->
-
-<!ENTITY % GlyphOrientationHorizontalValue "CDATA">
-    <!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) -->
-
-<!ENTITY % GlyphOrientationVerticalValue "CDATA">
-    <!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) -->
-
-<!ENTITY % Integer "CDATA">
-    <!-- a <integer> -->
-
-<!ENTITY % KerningValue "CDATA">
-    <!-- 'kerning' property/attribute value (e.g., auto | <length>) -->
-
-<!ENTITY % LanguageCode "NMTOKEN">
-    <!-- a language code, as per [RFC3066] -->
-
-<!ENTITY % LanguageCodes "CDATA">
-    <!-- comma-separated list of language codes, as per [RFC3066] -->
-
-<!ENTITY % Length "CDATA">
-    <!-- a <length> -->
-
-<!ENTITY % Lengths "CDATA">
-    <!-- a list of <length>s -->
-
-<!ENTITY % LinkTarget "NMTOKEN">
-    <!-- link to this target -->
-
-<!ENTITY % MarkerValue "CDATA">
-    <!-- 'marker' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % MaskValue "CDATA">
-    <!-- 'mask' property/attribute value (e.g., 'none', %URI;) -->
-
-<!ENTITY % MediaDesc "CDATA">
-    <!-- comma-separated list of media descriptors. -->
-
-<!ENTITY % Number "CDATA">
-    <!-- a <number> -->
-
-<!ENTITY % NumberOptionalNumber "CDATA">
-    <!-- list of <number>s, but at least one and at most two -->
-
-<!ENTITY % NumberOrPercentage "CDATA">
-    <!-- a <number> or a  <percentage> -->
-
-<!ENTITY % Numbers "CDATA">
-    <!-- a list of <number>s -->
-
-<!ENTITY % OpacityValue "CDATA">
-    <!-- opacity value (e.g., <number>) -->
-
-<!ENTITY % Paint "CDATA">
-    <!-- a 'fill' or 'stroke' property/attribute value: <paint> -->
-
-<!ENTITY % PathData "CDATA">
-    <!-- a path data specification -->
-
-<!ENTITY % Points "CDATA">
-    <!-- a list of points -->
-
-<!ENTITY % PreserveAspectRatioSpec "CDATA">
-    <!-- 'preserveAspectRatio' attribute specification -->
-
-<!ENTITY % Script "CDATA">
-    <!-- script expression -->
-
-<!ENTITY % SpacingValue "CDATA">
-    <!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., normal | <length>) -->
-
-<!ENTITY % StrokeDashArrayValue "CDATA">
-    <!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) -->
-
-<!ENTITY % StrokeDashOffsetValue "CDATA">
-    <!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) -->
-
-<!ENTITY % StrokeMiterLimitValue "CDATA">
-    <!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) -->
-
-<!ENTITY % StrokeWidthValue "CDATA">
-    <!-- 'stroke-width' property/attribute value (e.g., <length>) -->
-
-<!ENTITY % StructuredText
-  "content CDATA #FIXED 'structured text'" >
-
-<!ENTITY % StyleSheet "CDATA">
-    <!-- style sheet data -->
-
-<!ENTITY % SVGColor "CDATA">
-    <!-- An SVG color value (RGB plus optional ICC) -->
-
-<!ENTITY % Text "CDATA">
-    <!-- arbitrary text string -->
-
-<!ENTITY % TextDecorationValue "CDATA">
-    <!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') -->
-
-<!ENTITY % TransformList "CDATA">
-    <!-- list of transforms -->
-
-<!ENTITY % URI "CDATA">
-    <!-- a Uniform Resource Identifier, see [URI] -->
-
-<!ENTITY % ViewBoxSpec "CDATA">
-    <!-- 'viewBox' attribute specification -->
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: Collections of common attributes 
-     ============================================================== -->
-
-<!-- All elements have an ID. -->
-<!ENTITY % stdAttrs
- "id ID #IMPLIED
-  xml:base %URI; #IMPLIED" >
-
-<!-- Common attributes for elements that might contain character data content. -->
-<!ENTITY % langSpaceAttrs
- "xml:lang %LanguageCode; #IMPLIED
-  xml:space (default|preserve) #IMPLIED" >
-
-<!-- Common attributes to check for system capabilities. -->
-<!ENTITY % testAttrs
- "requiredFeatures %FeatureList; #IMPLIED
-  requiredExtensions %ExtensionList; #IMPLIED
-  systemLanguage %LanguageCodes; #IMPLIED" >
-
-<!-- For most uses of URI referencing:
-        standard XLink attributes other than xlink:href. -->
-<!ENTITY % xlinkRefAttrs
- "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
-  xlink:type (simple) #FIXED 'simple' 
-  xlink:role %URI; #IMPLIED
-  xlink:arcrole %URI; #IMPLIED
-  xlink:title CDATA #IMPLIED
-  xlink:show (other) 'other'
-  xlink:actuate (onLoad) #FIXED 'onLoad'" >
-
-<!-- Standard XLink attributes for uses of URI referencing where xlink:show is 'embed' -->
-<!ENTITY % xlinkRefAttrsEmbed
- "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
-  xlink:type (simple) #FIXED 'simple' 
-  xlink:role %URI; #IMPLIED
-  xlink:arcrole %URI; #IMPLIED
-  xlink:title CDATA #IMPLIED
-  xlink:show (embed) 'embed'
-  xlink:actuate (onLoad) #FIXED 'onLoad'" >
-
-<!ENTITY % graphicsElementEvents
-  "onfocusin %Script; #IMPLIED
-   onfocusout %Script; #IMPLIED
-   onactivate %Script; #IMPLIED
-   onclick %Script; #IMPLIED
-   onmousedown %Script; #IMPLIED
-   onmouseup %Script; #IMPLIED
-   onmouseover %Script; #IMPLIED
-   onmousemove %Script; #IMPLIED
-   onmouseout %Script; #IMPLIED
-   onload %Script; #IMPLIED" >
-
-<!ENTITY % documentEvents
-  "onunload %Script; #IMPLIED
-   onabort %Script; #IMPLIED
-   onerror %Script; #IMPLIED
-   onresize %Script; #IMPLIED
-   onscroll %Script; #IMPLIED
-   onzoom %Script; #IMPLIED" >
-
-<!ENTITY % animationEvents
-  "onbegin %Script; #IMPLIED
-   onend %Script; #IMPLIED
-   onrepeat %Script; #IMPLIED" >
-
-<!-- This entity allows for at most one of desc, title and metadata,
-     supplied in any order -->
-<!ENTITY % descTitleMetadata
-          "(((desc,((title,metadata?)|(metadata,title?))?)|
-          (title,((desc,metadata?)|(metadata,desc?))?)|
-          (metadata,((desc,title?)|(title,desc?))?))?)" >
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: Collections of presentation attributes 
-     ============================================================== -->
-
-<!-- The following presentation attributes have to do with specifying color. -->
-<!ENTITY % PresentationAttributes-Color
-  "color %Color; #IMPLIED
-   color-interpolation (auto | sRGB | linearRGB | inherit) #IMPLIED
-   color-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to container elements. -->
-<!ENTITY % PresentationAttributes-Containers
-  "enable-background %EnableBackgroundValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to 'feFlood' elements. -->
-<!ENTITY % PresentationAttributes-feFlood
-  "flood-color %SVGColor; #IMPLIED
-   flood-opacity %OpacityValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to filling and stroking operations. -->
-<!ENTITY % PresentationAttributes-FillStroke
-  "fill %Paint; #IMPLIED
-   fill-opacity %OpacityValue; #IMPLIED
-   fill-rule %ClipFillRule; #IMPLIED
-   stroke %Paint; #IMPLIED
-   stroke-dasharray %StrokeDashArrayValue; #IMPLIED
-   stroke-dashoffset %StrokeDashOffsetValue; #IMPLIED
-   stroke-linecap (butt | round | square | inherit) #IMPLIED
-   stroke-linejoin (miter | round | bevel | inherit) #IMPLIED
-   stroke-miterlimit %StrokeMiterLimitValue; #IMPLIED
-   stroke-opacity %OpacityValue; #IMPLIED
-   stroke-width %StrokeWidthValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to filter primitives. -->
-<!ENTITY % PresentationAttributes-FilterPrimitives
-  "color-interpolation-filters (auto | sRGB | linearRGB | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes have to do with selecting a font to use. -->
-<!ENTITY % PresentationAttributes-FontSpecification
-  "font-family %FontFamilyValue; #IMPLIED
-   font-size %FontSizeValue; #IMPLIED
-   font-size-adjust %FontSizeAdjustValue; #IMPLIED
-   font-stretch (normal | wider | narrower | ultra-condensed | extra-condensed |
-                 condensed | semi-condensed | semi-expanded | expanded |
-                 extra-expanded | ultra-expanded | inherit) #IMPLIED
-   font-style (normal | italic | oblique | inherit) #IMPLIED
-   font-variant (normal | small-caps | inherit) #IMPLIED
-   font-weight (normal | bold | bolder | lighter | 100 | 200 | 300 |
-               400 | 500 | 600 | 700 | 800 | 900 | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to gradient 'stop' elements. -->
-<!ENTITY % PresentationAttributes-Gradients
-  "stop-color %SVGColor; #IMPLIED
-   stop-opacity %OpacityValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to graphics elements. -->
-<!ENTITY % PresentationAttributes-Graphics
-  "clip-path %ClipPathValue; #IMPLIED
-   clip-rule %ClipFillRule; #IMPLIED
-   cursor %CursorValue; #IMPLIED
-   display (inline | block | list-item | run-in | compact | marker |
-            table | inline-table | table-row-group | table-header-group |
-            table-footer-group | table-row | table-column-group | table-column |
-            table-cell | table-caption | none | inherit) #IMPLIED
-   filter %FilterValue; #IMPLIED
-   image-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED
-   mask %MaskValue; #IMPLIED
-   opacity %OpacityValue; #IMPLIED
-   pointer-events (visiblePainted | visibleFill | visibleStroke | visible |
-                   painted | fill | stroke | all | none | inherit) #IMPLIED
-   shape-rendering (auto | optimizeSpeed | crispEdges | geometricPrecision | inherit) #IMPLIED
-   text-rendering (auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit) #IMPLIED
-   visibility (visible | hidden | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to 'image' elements. -->
-<!ENTITY % PresentationAttributes-Images
-  "color-profile CDATA #IMPLIED " >
-
-<!--The following presentation attributes apply to 'feDiffuseLighting' and 'feSpecularLighting' elements. -->
-<!ENTITY % PresentationAttributes-LightingEffects
-  "lighting-color %SVGColor; #IMPLIED " >
-
-<!-- The following presentation attributes apply to marker operations. -->
-<!ENTITY % PresentationAttributes-Markers
-  "marker-start %MarkerValue; #IMPLIED
-   marker-mid %MarkerValue; #IMPLIED
-   marker-end %MarkerValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to text content elements. -->
-<!ENTITY % PresentationAttributes-TextContentElements
-  "alignment-baseline (baseline | top | before-edge | text-top | text-before-edge |
-                        middle | bottom | after-edge | text-bottom | text-after-edge |
-                        ideographic | lower | hanging | mathematical | inherit) #IMPLIED
-   baseline-shift %BaselineShiftValue; #IMPLIED
-   direction (ltr | rtl | inherit) #IMPLIED
-   dominant-baseline (auto | autosense-script | no-change | reset|
-                      ideographic | lower | hanging | mathematical | inherit ) #IMPLIED
-   glyph-orientation-horizontal %GlyphOrientationHorizontalValue; #IMPLIED
-   glyph-orientation-vertical %GlyphOrientationVerticalValue; #IMPLIED
-   kerning %KerningValue; #IMPLIED
-   letter-spacing %SpacingValue; #IMPLIED
-   text-anchor (start | middle | end | inherit) #IMPLIED
-   text-decoration %TextDecorationValue; #IMPLIED
-   unicode-bidi (normal | embed | bidi-override | inherit) #IMPLIED
-   word-spacing %SpacingValue; #IMPLIED " >
-
-<!-- The following presentation attributes apply to 'text' elements. -->
-<!ENTITY % PresentationAttributes-TextElements
-  "writing-mode (lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit) #IMPLIED " >
-
-<!-- The following presentation attributes apply to elements that establish viewports. -->
-<!ENTITY % PresentationAttributes-Viewports
-  "clip %ClipValue; #IMPLIED
-   overflow (visible | hidden | scroll | auto | inherit) #IMPLIED " >
-
-<!--The following represents the complete list of presentation attributes. -->
-<!ENTITY % PresentationAttributes-All
-  "%PresentationAttributes-Color;
-   %PresentationAttributes-Containers;
-   %PresentationAttributes-feFlood;
-   %PresentationAttributes-FillStroke;
-   %PresentationAttributes-FilterPrimitives;
-   %PresentationAttributes-FontSpecification;
-   %PresentationAttributes-Gradients;
-   %PresentationAttributes-Graphics;
-   %PresentationAttributes-Images;
-   %PresentationAttributes-LightingEffects;
-   %PresentationAttributes-Markers;
-   %PresentationAttributes-TextContentElements;
-   %PresentationAttributes-TextElements;
-   %PresentationAttributes-Viewports;" >
-
-
-
-<!-- ==============================================================
-     ENTITY DECLARATIONS: DTD extensions 
-     ============================================================== -->
-
-<!-- Allow for extending the DTD with internal subset for 
-     container and graphics elements -->
-<!ENTITY % ceExt "" >
-<!ENTITY % geExt "" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Document Structure 
-     ============================================================== -->
-
-<!ENTITY % svgExt "" >
-<!ELEMENT svg (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%svgExt;)* >
-<!ATTLIST svg
-  xmlns CDATA #FIXED "http://www.w3.org/2000/svg"
-  xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED 
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  zoomAndPan (disable | magnify) 'magnify'
-  %graphicsElementEvents;
-  %documentEvents;
-  version %Number; #FIXED "1.0"
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED
-  contentScriptType %ContentType; "text/ecmascript"
-  contentStyleType %ContentType; "text/css" >
-
-<!ENTITY % gExt "" >
-<!ELEMENT g (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%gExt;)* >
-<!ATTLIST g
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;  >
-
-<!ENTITY % defsExt "" >
-<!ELEMENT defs (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%defsExt;)* >
-<!ATTLIST defs
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;  >
-
-<!ENTITY % descExt "" >
-<!ELEMENT desc (#PCDATA %descExt;)* >
-<!ATTLIST desc
-  %stdAttrs;
-  %langSpaceAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %StructuredText; >
-
-<!ENTITY % titleExt "" >
-<!ELEMENT title (#PCDATA %titleExt;)* >
-<!ATTLIST title
-  %stdAttrs;
-  %langSpaceAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %StructuredText; >
-
-<!ENTITY % symbolExt "" >
-<!ELEMENT symbol (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%symbolExt;)* >
-<!ATTLIST symbol
-  %stdAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  %graphicsElementEvents; >
-
-<!ENTITY % useExt "" >
-<!ELEMENT use (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                   %geExt;%useExt;)*) >
-<!ATTLIST use
-  %stdAttrs;
-  %xlinkRefAttrsEmbed;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED >
-
-<!ENTITY % imageExt "" >
-<!ELEMENT image (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                   %geExt;%imageExt;)*) >
-<!ATTLIST image
-  %stdAttrs;
-  %xlinkRefAttrsEmbed;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Images;
-  %PresentationAttributes-Viewports;
-  transform %TransformList; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #REQUIRED
-  height %Length; #REQUIRED >
-
-<!ENTITY % switchExt "" >
-<!ELEMENT switch (%descTitleMetadata;,
-                  (path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|switch|a|foreignObject|
-                   animate|set|animateMotion|animateColor|animateTransform
-                   %ceExt;%switchExt;)*) >
-<!ATTLIST switch
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents; >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Styling 
-     ============================================================== -->
-
-<!ELEMENT style (#PCDATA) >
-<!ATTLIST style 
-  %stdAttrs;
-  xml:space (preserve) #FIXED "preserve"
-  type %ContentType; #REQUIRED
-  media %MediaDesc; #IMPLIED
-  title %Text; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Paths
-     ============================================================== -->
-
-<!ENTITY % pathExt "" >
-<!ELEMENT path (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%pathExt;)*) >
-<!ATTLIST path
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  d %PathData; #REQUIRED
-  pathLength %Number; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Basic Shapes
-     ============================================================== -->
-
-<!ENTITY % rectExt "" >
-<!ELEMENT rect (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%rectExt;)*) >
-<!ATTLIST rect
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #REQUIRED
-  height %Length; #REQUIRED
-  rx %Length; #IMPLIED
-  ry %Length; #IMPLIED >
-
-<!ENTITY % circleExt "" >
-<!ELEMENT circle (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%circleExt;)*) >
-<!ATTLIST circle
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  cx %Coordinate; #IMPLIED
-  cy %Coordinate; #IMPLIED
-  r %Length; #REQUIRED >
-
-<!ENTITY % ellipseExt "" >
-<!ELEMENT ellipse (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%ellipseExt;)*) >
-<!ATTLIST ellipse
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  cx %Coordinate; #IMPLIED
-  cy %Coordinate; #IMPLIED
-  rx %Length; #REQUIRED
-  ry %Length; #REQUIRED >
-
-<!ENTITY % lineExt "" >
-<!ELEMENT line (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%lineExt;)*) >
-<!ATTLIST line
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x1 %Coordinate; #IMPLIED
-  y1 %Coordinate; #IMPLIED
-  x2 %Coordinate; #IMPLIED
-  y2 %Coordinate; #IMPLIED >
-
-<!ENTITY % polylineExt "" >
-<!ELEMENT polyline (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%polylineExt;)*) >
-<!ATTLIST polyline
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  points %Points; #REQUIRED >
-
-<!ENTITY % polygonExt "" >
-<!ELEMENT polygon (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
-                %geExt;%polygonExt;)*) >
-<!ATTLIST polygon
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-Markers;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  points %Points; #REQUIRED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Text
-     ============================================================== -->
-
-<!ENTITY % textExt "" >
-<!ELEMENT text (#PCDATA|desc|title|metadata|
-                tspan|tref|textPath|altGlyph|a|animate|set|
-                animateMotion|animateColor|animateTransform
-                %geExt;%textExt;)* >
-<!ATTLIST text
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %PresentationAttributes-TextElements;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >
-
-<!ENTITY % tspanExt "" >
-<!ELEMENT tspan (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
-                %tspanExt;)* >
-<!ATTLIST tspan
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >
-
-<!ENTITY % trefExt "" >
-<!ELEMENT tref (desc|title|metadata|animate|set|animateColor
-                %trefExt;)* >
-<!ATTLIST tref
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >
-
-<!ENTITY % textPathExt "" >
-<!ELEMENT textPath (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
-                %textPathExt;)* >
-<!ATTLIST textPath
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  %langSpaceAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  startOffset %Length; #IMPLIED
-  textLength %Length; #IMPLIED
-  lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED
-  method (align|stretch) #IMPLIED
-  spacing (auto|exact) #IMPLIED >
-
-<!ENTITY % altGlyphExt "" >
-<!ELEMENT altGlyph (#PCDATA %altGlyphExt;)* >
-<!ATTLIST altGlyph
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED 
-  glyphRef CDATA #IMPLIED
-  format CDATA #IMPLIED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %graphicsElementEvents;
-  x %Coordinates; #IMPLIED
-  y %Coordinates; #IMPLIED
-  dx %Lengths; #IMPLIED
-  dy %Lengths; #IMPLIED
-  rotate %Numbers; #IMPLIED >
-
-<!ENTITY % altGlyphDefExt "" >
-<!ELEMENT altGlyphDef ((glyphRef+|altGlyphItem+) %altGlyphDefExt;) >
-<!ATTLIST altGlyphDef
-  %stdAttrs; >
-
-<!ENTITY % altGlyphItemExt "" >
-<!ELEMENT altGlyphItem (glyphRef+ %altGlyphItemExt;) >
-<!ATTLIST altGlyphItem
-  %stdAttrs; >
-
-<!ELEMENT glyphRef EMPTY >
-<!ATTLIST glyphRef
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-FontSpecification;
-  glyphRef CDATA #IMPLIED
-  format CDATA #IMPLIED
-  x %Number; #IMPLIED
-  y %Number; #IMPLIED
-  dx %Number; #IMPLIED
-  dy %Number; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Painting: Filling, Stroking and Marker Symbols 
-     ============================================================== -->
-
-<!ENTITY % markerExt "" >
-<!ELEMENT marker (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%markerExt;)* >
-<!ATTLIST marker
-  %stdAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  refX %Coordinate; #IMPLIED
-  refY %Coordinate; #IMPLIED
-  markerUnits (strokeWidth | userSpaceOnUse) #IMPLIED
-  markerWidth  %Length; #IMPLIED
-  markerHeight %Length; #IMPLIED
-  orient CDATA #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Color 
-     ============================================================== -->
-
-<!ELEMENT color-profile (%descTitleMetadata;) >
-<!ATTLIST color-profile 
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  local CDATA #IMPLIED  
-  name CDATA #REQUIRED
-  rendering-intent (auto | perceptual | relative-colorimetric | saturation | absolute-colorimetric) "auto" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Gradients and Patterns 
-     ============================================================== -->
-
-<!ENTITY % linearGradientExt "" >
-<!ELEMENT linearGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
-                   %linearGradientExt;)*) >
-<!ATTLIST linearGradient
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Gradients;
-  gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  gradientTransform %TransformList; #IMPLIED
-  x1 %Coordinate; #IMPLIED
-  y1 %Coordinate; #IMPLIED
-  x2 %Coordinate; #IMPLIED
-  y2 %Coordinate; #IMPLIED
-  spreadMethod (pad | reflect | repeat) #IMPLIED >
-
-
-<!ENTITY % radialGradientExt "" >
-<!ELEMENT radialGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
-                   %radialGradientExt;)*) >
-<!ATTLIST radialGradient
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Gradients;
-  gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  gradientTransform %TransformList; #IMPLIED
-  cx %Coordinate; #IMPLIED
-  cy %Coordinate; #IMPLIED
-  r %Length; #IMPLIED
-  fx %Coordinate; #IMPLIED
-  fy %Coordinate; #IMPLIED
-  spreadMethod (pad | reflect | repeat) #IMPLIED >
-
-
-<!ENTITY % stopExt "" >
-<!ELEMENT stop (animate|set|animateColor
-                   %stopExt;)* >
-<!ATTLIST stop
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-Gradients;
-  offset %NumberOrPercentage; #REQUIRED >
-
-<!ENTITY % patternExt "" >
-<!ELEMENT pattern (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%patternExt;)* >
-<!ATTLIST pattern
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  patternUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  patternContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  patternTransform %TransformList; #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Clipping, Masking and Compositing 
-     ============================================================== -->
-
-<!ENTITY % clipPathExt "" >
-<!ELEMENT clipPath (%descTitleMetadata;,
-                    (path|text|rect|circle|ellipse|line|polyline|polygon|
-                     use|animate|set|animateMotion|animateColor|animateTransform
-                     %ceExt;%clipPathExt;)*) >
-<!ATTLIST clipPath
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FillStroke;
-  %PresentationAttributes-FontSpecification;
-  %PresentationAttributes-Graphics;
-  %PresentationAttributes-TextContentElements;
-  %PresentationAttributes-TextElements;
-  transform %TransformList; #IMPLIED
-  clipPathUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED >
-
-<!ENTITY % maskExt "" >
-<!ELEMENT mask (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%maskExt;)*  >
-<!ATTLIST mask
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  maskUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  maskContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Filter Effects
-     ============================================================== -->
-
-<!ENTITY % filterExt "" >
-<!ELEMENT filter (%descTitleMetadata;,(feBlend|feFlood|
-  feColorMatrix|feComponentTransfer|
-  feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap|
-  feGaussianBlur|feImage|feMerge|
-  feMorphology|feOffset|feSpecularLighting|
-  feTile|feTurbulence|
-  animate|set
-  %filterExt;)*) >
-<!ATTLIST filter
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  filterUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  primitiveUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #IMPLIED
-  height %Length; #IMPLIED
-  filterRes %NumberOptionalNumber; #IMPLIED >
-
-<!ENTITY % filter_primitive_attributes
-  "x %Coordinate; #IMPLIED
-   y %Coordinate; #IMPLIED
-   width %Length; #IMPLIED
-   height %Length; #IMPLIED
-   result CDATA #IMPLIED" >
-
-<!ENTITY % filter_primitive_attributes_with_in
-  "%filter_primitive_attributes;
-   in CDATA #IMPLIED">
-
-<!ELEMENT feDistantLight (animate|set)* >
-<!ATTLIST feDistantLight
-  %stdAttrs;
-  azimuth %Number; #IMPLIED
-  elevation %Number; #IMPLIED >
-
-<!ELEMENT fePointLight (animate|set)* >
-<!ATTLIST fePointLight
-  %stdAttrs;
-  x %Number; #IMPLIED
-  y %Number; #IMPLIED
-  z %Number; #IMPLIED >
-
-<!ELEMENT feSpotLight (animate|set)* >
-<!ATTLIST feSpotLight
-  %stdAttrs;
-  x %Number; #IMPLIED
-  y %Number; #IMPLIED
-  z %Number; #IMPLIED
-  pointsAtX %Number; #IMPLIED
-  pointsAtY %Number; #IMPLIED
-  pointsAtZ %Number; #IMPLIED
-  specularExponent %Number; #IMPLIED
-  limitingConeAngle %Number; #IMPLIED >
-
-<!ELEMENT feBlend (animate|set)* >
-<!ATTLIST feBlend
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  in2 CDATA #REQUIRED
-  mode (normal | multiply | screen | darken | lighten) "normal" >
-
-<!ELEMENT feColorMatrix (animate|set)* >
-<!ATTLIST feColorMatrix
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  type (matrix | saturate | hueRotate | luminanceToAlpha) "matrix"
-  values CDATA #IMPLIED >
-
-<!ELEMENT feComponentTransfer (feFuncR?,feFuncG?,feFuncB?,feFuncA?) >
-<!ATTLIST feComponentTransfer
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in; >
-
-<!ENTITY % component_transfer_function_attributes
-  "type (identity | table | discrete | linear | gamma) #REQUIRED
-   tableValues CDATA #IMPLIED
-   slope %Number; #IMPLIED
-   intercept %Number; #IMPLIED
-   amplitude %Number; #IMPLIED
-   exponent %Number; #IMPLIED
-   offset %Number; #IMPLIED" >
-
-<!ELEMENT feFuncR (animate|set)* >
-<!ATTLIST feFuncR
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feFuncG (animate|set)* >
-<!ATTLIST feFuncG
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feFuncB (animate|set)* >
-<!ATTLIST feFuncB
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feFuncA (animate|set)* >
-<!ATTLIST feFuncA
-  %stdAttrs;
-  %component_transfer_function_attributes; >
-
-<!ELEMENT feComposite (animate|set)* >
-<!ATTLIST feComposite
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  in2 CDATA #REQUIRED
-  operator (over | in | out | atop | xor | arithmetic) "over"
-  k1 %Number; #IMPLIED
-  k2 %Number; #IMPLIED
-  k3 %Number; #IMPLIED
-  k4 %Number; #IMPLIED >
-
-<!ELEMENT feConvolveMatrix (animate|set)* >
-<!ATTLIST feConvolveMatrix
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  order %NumberOptionalNumber; #REQUIRED
-  kernelMatrix CDATA #REQUIRED
-  divisor %Number; #IMPLIED
-  bias %Number; #IMPLIED
-  targetX %Integer; #IMPLIED
-  targetY %Integer; #IMPLIED
-  edgeMode (duplicate|wrap|none) "duplicate" 
-  kernelUnitLength %NumberOptionalNumber; #IMPLIED 
-  preserveAlpha %Boolean; #IMPLIED >
-
-<!ELEMENT feDiffuseLighting ((feDistantLight|fePointLight|feSpotLight),(animate|set|animateColor)*) >
-<!ATTLIST feDiffuseLighting
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FilterPrimitives;
-  %PresentationAttributes-LightingEffects;
-  %filter_primitive_attributes_with_in;
-  surfaceScale %Number; #IMPLIED
-  diffuseConstant %Number; #IMPLIED 
-  kernelUnitLength %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feDisplacementMap (animate|set)* >
-<!ATTLIST feDisplacementMap
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  in2 CDATA #REQUIRED
-  scale %Number; #IMPLIED
-  xChannelSelector (R | G | B | A) "A"
-  yChannelSelector (R | G | B | A) "A" >
-
-<!ELEMENT feFlood (animate|set|animateColor)* >
-<!ATTLIST feFlood
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-feFlood;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in; >
-
-<!ELEMENT feGaussianBlur (animate|set)* >
-<!ATTLIST feGaussianBlur
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  stdDeviation %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feImage (animate|set|animateTransform)* >
-<!ATTLIST feImage
-  %stdAttrs;
-  %xlinkRefAttrsEmbed;
-  xlink:href %URI; #REQUIRED
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  %filter_primitive_attributes;
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet' >
-
-<!ELEMENT feMerge (feMergeNode)* >
-<!ATTLIST feMerge
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes; >
-
-<!ELEMENT feMergeNode (animate|set)* >
-<!ATTLIST feMergeNode
-  %stdAttrs;
-  in CDATA #IMPLIED >
-
-<!ELEMENT feMorphology (animate|set)* >
-<!ATTLIST feMorphology
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  operator (erode | dilate) "erode"
-  radius %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feOffset (animate|set)* >
-<!ATTLIST feOffset
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in;
-  dx %Number; #IMPLIED
-  dy %Number; #IMPLIED >
-
-<!ELEMENT feSpecularLighting ((feDistantLight|fePointLight|feSpotLight),(animate|set|animateColor)*) >
-<!ATTLIST feSpecularLighting
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-Color;
-  %PresentationAttributes-FilterPrimitives;
-  %PresentationAttributes-LightingEffects;
-  %filter_primitive_attributes_with_in;
-  surfaceScale %Number; #IMPLIED
-  specularConstant %Number; #IMPLIED
-  specularExponent %Number; #IMPLIED 
-  kernelUnitLength %NumberOptionalNumber; #IMPLIED >
-
-<!ELEMENT feTile (animate|set)* >
-<!ATTLIST feTile
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes_with_in; >
-
-<!ELEMENT feTurbulence (animate|set)* >
-<!ATTLIST feTurbulence
-  %stdAttrs;
-  %PresentationAttributes-FilterPrimitives;
-  %filter_primitive_attributes;
-  baseFrequency %NumberOptionalNumber; #IMPLIED
-  numOctaves %Integer; #IMPLIED
-  seed %Number; #IMPLIED
-  stitchTiles (stitch | noStitch) "noStitch"
-  type (fractalNoise | turbulence) "turbulence" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Interactivity 
-     ============================================================== -->
-
-<!ELEMENT cursor (%descTitleMetadata;) >
-<!ATTLIST cursor
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Linking
-     ============================================================== -->
-
-<!ENTITY % aExt "" >
-<!ELEMENT a       (#PCDATA|desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %ceExt;%aExt;)* >
-<!ATTLIST a
-  %stdAttrs;
-  xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
-  xlink:type (simple) #FIXED "simple" 
-  xlink:role %URI; #IMPLIED
-  xlink:arcrole %URI; #IMPLIED
-  xlink:title CDATA #IMPLIED
-  xlink:show (new|replace) 'replace'
-  xlink:actuate (onRequest) #FIXED 'onRequest'
-  xlink:href %URI; #REQUIRED
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  target %LinkTarget; #IMPLIED >
-
-<!ENTITY % viewExt "" >
-<!ELEMENT view (%descTitleMetadata;%viewExt;) >
-<!ATTLIST view
-  %stdAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  viewBox %ViewBoxSpec; #IMPLIED
-  preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
-  zoomAndPan (disable | magnify) 'magnify' 
-  viewTarget CDATA #IMPLIED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Scripting 
-     ============================================================== -->
-
-<!ELEMENT script (#PCDATA) >
-<!ATTLIST script
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED
-  externalResourcesRequired %Boolean; #IMPLIED
-  type %ContentType; #REQUIRED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Animation 
-     ============================================================== -->
-
-<!ENTITY % animElementAttrs
- "%xlinkRefAttrs;
-  xlink:href %URI; #IMPLIED" >
-
-<!ENTITY % animAttributeAttrs
- "attributeName  CDATA  #REQUIRED
-  attributeType  CDATA  #IMPLIED" >
-
-<!ENTITY % animTimingAttrs
- "begin CDATA #IMPLIED 
-  dur CDATA #IMPLIED
-  end CDATA #IMPLIED
-  min CDATA #IMPLIED
-  max CDATA #IMPLIED
-  restart (always | never | whenNotActive) 'always'
-  repeatCount CDATA #IMPLIED 
-  repeatDur CDATA #IMPLIED
-  fill (remove | freeze) 'remove'" >
-
-<!ENTITY % animValueAttrs
- "calcMode (discrete | linear | paced | spline) 'linear'
-  values CDATA #IMPLIED
-  keyTimes CDATA #IMPLIED
-  keySplines CDATA #IMPLIED
-  from CDATA #IMPLIED
-  to CDATA #IMPLIED
-  by CDATA #IMPLIED" >
-
-<!ENTITY % animAdditionAttrs
- "additive       (replace | sum) 'replace'
-  accumulate     (none | sum) 'none'" >
-
-<!ENTITY % animateExt "" >
-<!ELEMENT animate (%descTitleMetadata;%animateExt;) >
-<!ATTLIST animate
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  %animValueAttrs;
-  %animAdditionAttrs; >
-
-<!ENTITY % setExt "" >
-<!ELEMENT set (%descTitleMetadata;%setExt;) >
-<!ATTLIST set
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  to CDATA #IMPLIED >
-
-<!ENTITY % animateMotionExt "" >
-<!ELEMENT animateMotion (%descTitleMetadata;,mpath? %animateMotionExt;) >
-<!ATTLIST animateMotion
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animTimingAttrs;
-  calcMode (discrete | linear | paced | spline) 'paced'
-  values CDATA #IMPLIED
-  keyTimes CDATA #IMPLIED
-  keySplines CDATA #IMPLIED
-  from CDATA #IMPLIED
-  to CDATA #IMPLIED
-  by CDATA #IMPLIED
-  %animAdditionAttrs;
-  path CDATA #IMPLIED
-  keyPoints CDATA #IMPLIED
-  rotate CDATA #IMPLIED
-  origin CDATA #IMPLIED >
-
-<!ENTITY % mpathExt "" >
-<!ELEMENT mpath (%descTitleMetadata;%mpathExt;) >
-<!ATTLIST mpath
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED
-  externalResourcesRequired %Boolean; #IMPLIED >
-
-<!ENTITY % animateColorExt "" >
-<!ELEMENT animateColor (%descTitleMetadata;%animateColorExt;) >
-<!ATTLIST animateColor
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  %animValueAttrs;
-  %animAdditionAttrs; >
-
-<!ENTITY % animateTransformExt "" >
-<!ELEMENT animateTransform (%descTitleMetadata;%animateTransformExt;) >
-<!ATTLIST animateTransform
-  %stdAttrs;
-  %testAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  %animationEvents;
-  %animElementAttrs;
-  %animAttributeAttrs;
-  %animTimingAttrs;
-  %animValueAttrs;
-  %animAdditionAttrs;
-  type (translate | scale | rotate | skewX | skewY) "translate" >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Fonts 
-     ============================================================== -->
-
-<!ENTITY % fontExt "" >
-<!ELEMENT font (%descTitleMetadata;,font-face,
-                   missing-glyph,(glyph|hkern|vkern %fontExt;)*) >
-<!ATTLIST font
-  %stdAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  horiz-origin-x %Number; #IMPLIED
-  horiz-origin-y %Number; #IMPLIED
-  horiz-adv-x %Number; #REQUIRED
-  vert-origin-x %Number; #IMPLIED
-  vert-origin-y %Number; #IMPLIED
-  vert-adv-y %Number; #IMPLIED >
-
-<!ENTITY % glyphExt "" >
-<!ELEMENT glyph (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %glyphExt;)* >
-<!ATTLIST glyph
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  unicode CDATA #IMPLIED
-  glyph-name CDATA #IMPLIED
-  d %PathData; #IMPLIED
-  orientation CDATA #IMPLIED
-  arabic-form CDATA #IMPLIED
-  lang %LanguageCodes; #IMPLIED
-  horiz-adv-x %Number; #IMPLIED
-  vert-origin-x %Number; #IMPLIED
-  vert-origin-y %Number; #IMPLIED
-  vert-adv-y %Number; #IMPLIED >
-
-<!ENTITY % missing-glyphExt "" >
-<!ELEMENT missing-glyph (desc|title|metadata|defs|
-                   path|text|rect|circle|ellipse|line|polyline|polygon|
-                   use|image|svg|g|view|switch|a|altGlyphDef|
-                   script|style|symbol|marker|clipPath|mask|
-                   linearGradient|radialGradient|pattern|filter|cursor|font|
-                   animate|set|animateMotion|animateColor|animateTransform|
-                   color-profile|font-face
-                   %missing-glyphExt;)* >
-<!ATTLIST missing-glyph
-  %stdAttrs;
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  d %PathData; #IMPLIED
-  horiz-adv-x %Number; #IMPLIED
-  vert-origin-x %Number; #IMPLIED
-  vert-origin-y %Number; #IMPLIED
-  vert-adv-y %Number; #IMPLIED >
-
-<!ELEMENT hkern EMPTY >
-<!ATTLIST hkern
-  %stdAttrs;
-  u1 CDATA #IMPLIED
-  g1 CDATA #IMPLIED
-  u2 CDATA #IMPLIED
-  g2 CDATA #IMPLIED
-  k %Number; #REQUIRED >
-
-<!ELEMENT vkern EMPTY >
-<!ATTLIST vkern
-  %stdAttrs;
-  u1 CDATA #IMPLIED
-  g1 CDATA #IMPLIED
-  u2 CDATA #IMPLIED
-  g2 CDATA #IMPLIED
-  k %Number; #REQUIRED >
-
-<!ELEMENT font-face (%descTitleMetadata;,font-face-src?,definition-src?) >
-<!ATTLIST font-face 
-  %stdAttrs;
-  font-family CDATA #IMPLIED
-  font-style CDATA #IMPLIED
-  font-variant CDATA #IMPLIED
-  font-weight CDATA #IMPLIED
-  font-stretch CDATA #IMPLIED
-  font-size CDATA #IMPLIED
-  unicode-range CDATA #IMPLIED
-  units-per-em %Number; #IMPLIED
-  panose-1 CDATA #IMPLIED
-  stemv %Number; #IMPLIED
-  stemh %Number; #IMPLIED
-  slope %Number; #IMPLIED
-  cap-height %Number; #IMPLIED
-  x-height %Number; #IMPLIED
-  accent-height %Number; #IMPLIED
-  ascent %Number; #IMPLIED
-  descent %Number; #IMPLIED
-  widths CDATA #IMPLIED
-  bbox CDATA #IMPLIED
-  ideographic %Number; #IMPLIED
-  alphabetic %Number; #IMPLIED
-  mathematical %Number; #IMPLIED
-  hanging %Number; #IMPLIED
-  v-ideographic %Number; #IMPLIED
-  v-alphabetic %Number; #IMPLIED
-  v-mathematical %Number; #IMPLIED
-  v-hanging %Number; #IMPLIED
-  underline-position %Number; #IMPLIED
-  underline-thickness %Number; #IMPLIED
-  strikethrough-position %Number; #IMPLIED
-  strikethrough-thickness %Number; #IMPLIED
-  overline-position %Number; #IMPLIED
-  overline-thickness %Number; #IMPLIED >
-
-<!ELEMENT font-face-src (font-face-uri|font-face-name)+ >
-<!ATTLIST font-face-src 
-  %stdAttrs; >
-
-<!ELEMENT font-face-uri (font-face-format*) >
-<!ATTLIST font-face-uri 
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED >
-
-<!ELEMENT font-face-format EMPTY >
-<!ATTLIST font-face-format 
-  %stdAttrs;
-  string CDATA #IMPLIED >
-
-<!ELEMENT font-face-name EMPTY >
-<!ATTLIST font-face-name 
-  %stdAttrs;
-  name CDATA #IMPLIED >
-
-<!ELEMENT definition-src EMPTY >
-<!ATTLIST definition-src 
-  %stdAttrs;
-  %xlinkRefAttrs;
-  xlink:href %URI; #REQUIRED >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Metadata 
-     ============================================================== -->
-
-<!ENTITY % metadataExt "" >
-<!ELEMENT metadata (#PCDATA %metadataExt;)* >
-<!ATTLIST metadata
-  %stdAttrs; >
-
-
-<!-- ==============================================================
-     DECLARATIONS CORRESPONDING TO: Extensibility 
-     ============================================================== -->
-
-<!ENTITY % foreignObjectExt "" >
-<!ELEMENT foreignObject (#PCDATA %ceExt;%foreignObjectExt;)* >
-<!ATTLIST foreignObject
-  %stdAttrs;
-  %testAttrs;
-  %langSpaceAttrs;
-  externalResourcesRequired %Boolean; #IMPLIED
-  class %ClassList; #IMPLIED
-  style %StyleSheet; #IMPLIED
-  %PresentationAttributes-All;
-  transform %TransformList; #IMPLIED
-  %graphicsElementEvents;
-  x %Coordinate; #IMPLIED
-  y %Coordinate; #IMPLIED
-  width %Length; #REQUIRED
-  height %Length; #REQUIRED
-  %StructuredText; >
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.css b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.css
deleted file mode 100644
index bde7995..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.css
+++ /dev/null
@@ -1,329 +0,0 @@
-	text.busintlabel {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  italic;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mpmctitle {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   16pt; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Arial Verdana Helvetica sans-serif;
-	}
-	
-	text.mpmcbiflabel {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-
-	}
-
-	text.buslabel {
-		fill:        #CC3333;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-			
-	text.iplabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: 800;
-		text-anchor: middle;
-		font-family: Courier Arial Helvetica sans-serif;
-	}
-		
-	text.iptype {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.ipclass {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-
-	text.procclass {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   7pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-		
-		
-	text.portlabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.ipdbiflbl {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: bold;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-		
-	text.mmMHeader {
-		fill:        #FFFFFF;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mmSHeader {
-		fill:        #810017;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-
-
-	text.dbglabel {
-		fill:        #555555;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Times Arial Helvetica sans-serif;
-	}
-
-	text.iopnumb {
-		fill:        #555555;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.ioplblgrp {
-		fill:        #000088;
-		stroke:      none;
-		font-size:   10pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-
-	tspan.iopgrp {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		baseline-shift:super;
-		font-family: Arial Courier san-serif;
-	}
-
-
-	text.biflabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  normal;
-		font-weight: 900;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-
-	}
-
-	text.p2pbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    10pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		writing-mode: tb;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-	text.mpbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    6pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		writing-mode: tb;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-
-	text.sharedbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    10pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-
-	text.bciplabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Courier Arial Helvetica sans-serif;
-	}
-		
-	text.bciptype {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  italic;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.splitbustxt {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   6pt; 
-		font-style:  normal;
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: sans-serif;
-	}
-
-	text.horizp2pbuslabel {
-		fill:         #000000;
-		stroke:       none;
-		font-size:    6pt; 
-		font-style:   italic;
-		font-weight:  bold; 
-		text-anchor:  start;
-		font-family:  Verdana Arial Helvetica sans-serif;
-	}
-
-
-
-	text.keytitle {
-		fill:        #AA0017;
-		stroke:      none;
-		font-size:   12pt; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.keyheader {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   10pt; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.keylabel {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.keylblul {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: start;
-		text-decoration: underline;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.specsheader {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   10pt; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Arial Helvetica sans-serif;
-	}
-
-	text.specsvalue {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.specsvaluemid {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-style:  italic; 
-		font-weight: bold;
-		text-anchor: middle;
-		font-family: Verdana Arial Helvetica sans-serif;
-	}
-
-	text.intrsymbol {
-		fill:        #000000;
-		stroke:      none;
-		font-size:   8pt; 
-		font-weight: bold;
-		text-anchor: start;
-		font-family: Arial Helvetica sans-serif;
-	}
-
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.html b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.html
deleted file mode 100644
index ba4972b..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<HTML xmlns:exsl="http://exslt.org/common" xmlns:xlink="http://www.w3.org/1999/xlink">
-<HEAD>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<TITLE>Block Diagram</TITLE>
-</HEAD>
-<BODY class="main_body">
-<EMBED src="system.svg" width="992" height="1413" type="image/svg+xml"></EMBED><BR><BR><TABLE BGCOLOR="#000000" WIDTH="850" COLS="8" cellspacing="1" cellpadding="1" border="0">
-<TD COLSPAN="8" ALIGN="middle" BGCOLOR="#810017"><SPAN style="color:#FFFFFF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">EXTERNAL PORTS</SPAN></TD>
-<TR></TR>
-<TD COLSPAN="8" ALIGN="middle" bgcolor="#FFFFFF"><SPAN style="color:#2233FF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">
-				These are the external ports defined in the MHS file.
-			</SPAN></TD>
-<TR></TR>
-<TD COLSPAN="8" ALIGN="left" bgcolor="#FFFFFF">
-<SPAN style="color:#2233FF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Attributes Key</SPAN><BR><SPAN style="color:#000000; font: italic 9px Verdana,Arial,Helvetica,sans-serif">The attributes are obtained from the SIGIS and IOB_STATE parameters set on the PORT in the MHS file </SPAN><BR><SPAN style="color:#55FF55; font: bold 12px Verdana,Arial,Helvetica,sans-serif">CLK</SPAN><SPAN style="color:#2233FF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">  indicates Clock ports, (SIGIS = CLK) </SPAN><BR><SPAN style="color:#5555FF; font: bold 12px Verdana,Arial,Helvetica,sans-serif">INTR</SPAN><SPAN style="color:#2233FF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">  indicates Interrupt ports,(SIGIS = INTR) </SPAN><BR><SPAN style="color:#FFCC00; font: bold 12px Verdana,Arial,Helvetica,sans-serif">RESET</SPAN><SPAN style="color:#2233FF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">  indicates Reset ports, (SIGIS = RST) </SPAN><BR><SPAN style="color:#FF5555; font: bold 12px Verdana,Arial,Helvetica,sans-serif">BUF or REG</SPAN><SPAN style="color:#2233FF; font: bold 9px Verdana,Arial,Helvetica,sans-serif">  Indicates ports that instantiate or infer IOB primitives, (IOB_STATE = BUF or REG) </SPAN>
-</TD>
-<TR></TR>
-<TD COLSPAN="3" WIDTH="49%"><TABLE BGCOLOR="#000000" WIDTH="100%" COLS="9" cellspacing="1" cellpadding="0" border="0">
-<TD COLSPAN="1" width="5" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">ATTRIBUTES</SPAN></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_RS232_Uart_RX_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">I</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_RS232_Uart_RX</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_RS232_Uart_TX_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_RS232_Uart_TX</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_LEDs_4Bit_GPIO_IO_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">IO</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">0:3</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_LEDs_4Bit_GPIO_IO</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_LEDs_Positions_GPIO_IO_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">IO</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">0:4</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_LEDs_Positions_GPIO_IO</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_CLK_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">I</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_CLK</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_MPA_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">6:1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_MPA</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_MPD_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">IO</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">15:0</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_MPD</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_CEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_CEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_OEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_OEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_WEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_WEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">I</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SysACE_CompactFlash_SysACE_MPIRQ</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-</TABLE></TD>
-<TD COLSPAN="1" WIDTH="2%" BGCOLOR="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> </SPAN></TD>
-<TD COLSPAN="3" WIDTH="49%"><TABLE BGCOLOR="#000000" WIDTH="100%" COLS="9" cellspacing="1" cellpadding="0" border="0">
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#BBBBBB"><SPAN style="color:#810017; font: bold 10px Verdana,Arial,Helvetica,sans-serif">ATTRIBUTES</SPAN></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_A_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">9:29</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_A</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_BEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">0:3</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_BEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_WEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_WEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_DQ_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">IO</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">0:31</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_DQ</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_OEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">0:0</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_OEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_CEN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">0:0</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_CEN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_ADV_LDN_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_Mem_ADV_LDN</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">fpga_0_SRAM_CLOCK</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">O</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">sys_clk_s</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">sys_clk_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">I</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">dcm_clk_s</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#33CC33; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> CLK </SPAN></TD>
-<TR></TR>
-<TD COLSPAN="1" width="5%" align="left" bgcolor="#FFFFFF">
-<SPAN style="color:#000000; font: bold 14px Verdana,Arial,Helvetica,sans-serif"></SPAN><SPAN style="color:#000000; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"></SPAN>
-</TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">sys_rst_pin</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold   10px Verdana,Arial,Helvetica,sans-serif">I</SPAN></TD>
-<TD COLSPAN="1" width="5%" align="middle" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD>
-<TD COLSPAN="2" width="30%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#000000; font: normal 12px Verdana,Arial,Helvetica,sans-serif">sys_rst_s</SPAN></TD>
-<TD COLSPAN="2" width="25%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#FFCC00; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> RESET </SPAN></TD>
-<TR></TR>
-<TD COLSPAN="9" WIDTH="100%" align="left" bgcolor="#FFFFFF"><SPAN style="color:#FFFFFF; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> </SPAN></TD>
-</TABLE></TD>
-</TABLE>
-<BR>
-</BODY>
-</HTML>
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.svg b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.svg
deleted file mode 100644
index 182a3ec..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/blkdiagram/system.svg
+++ /dev/null
@@ -1,1452 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "svg10.dtd">
-<?xml-stylesheet href="system.css" type="text/css"?>
-<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns:exsl="http://exslt.org/common" xmlns:xlink="http://www.w3.org/1999/xlink" width="992" height="1413" viewBox="0 0 0 2826">
-  <defs>
-    <symbol id="KEY_IntrCntrl">
-      <rect x="0" y="0" rx="3" ry="3" width="9" height="18" style="fill:#888888; stroke:none; stroke-width:1"/>
-      <line x1="0" y1="5" x2="9" y2="5" style="stroke:#000000;stroke-width:2"/>
-      <text class="intrsymbol" x="1.5" y="16">x</text>
-    </symbol>
-    <symbol id="KEY_IntrdProc">
-      <rect x="0" y="0" rx="3" ry="3" width="9" height="18" style="fill:#888888; stroke:none; stroke-width:1"/>
-      <line x1="0" y1="3" x2="9" y2="3" style="stroke:#000000;stroke-width:1"/>
-      <line x1="0" y1="7" x2="9" y2="7" style="stroke:#000000;stroke-width:1"/>
-      <text class="intrsymbol" x="1.5" y="16">x</text>
-    </symbol>
-    <symbol id="KEY_IntrSrc">
-      <rect x="0" y="0" rx="3" ry="3" width="18" height="9" style="fill:#888888; stroke:none; stroke-width:1"/>
-      <line x1="9" y1="0" x2="9" y2="9" style="stroke:#000000;stroke-width:1"/>
-      <text class="intrsymbol" x="2" y="7">y</text>
-      <text class="intrsymbol" x="11" y="7">x</text>
-    </symbol>
-    <symbol id="BlkDiagram_Key">
-      <rect x="0" y="0" width="468" height="250" style="fill:#CCCCCC; stroke:none;"/>
-      <rect x="0" y="0" width="468" height="16" style="fill:#CCCCCC; stroke:none;"/>
-      <text class="keytitle" x="234 " y="14">KEY</text>
-      <rect x="0" y="16" width="468" height="16" style="fill:#EEEEEE; stroke:none;"/>
-      <text class="keyheader" x="234 " y="30">SYMBOLS</text>
-      <use x="32" y="47" xlink:href="#KEY_Bif" transform="scale(0.75)"/>
-      <text class="keylabel" x="12" y="60">bus interface</text>
-      <use x="20" y="68" xlink:href="#KEY_SharedBus"/>
-      <text class="keylabel" x="12" y="85">shared bus</text>
-      <text class="keylblul" x="110" y="47">Bus connections</text>
-      <use x="110" y="58" xlink:href="#KEY_busconn_MASTER"/>
-      <text class="keylabel" x="140" y="72">master or initiator</text>
-      <use x="110" y="86" xlink:href="#KEY_busconn_SLAVE"/>
-      <text class="keylabel" x="140" y="100">slave or target</text>
-      <use x="110" y="114" xlink:href="#KEY_busconn_MASTER_SLAVE"/>
-      <text class="keylabel" x="140" y="128">master slave</text>
-      <use x="110" y="142" xlink:href="#KEY_busconn_MONITOR"/>
-      <text class="keylabel" x="140" y="156">monitor</text>
-      <text class="keylblul" x="258" y="47">External Ports</text>
-      <use x="258" y="58" xlink:href="#KEY_INPort"/>
-      <text class="keylabel" x="288" y="72">input</text>
-      <use x="258" y="78" xlink:href="#KEY_OUTPort"/>
-      <text class="keylabel" x="288" y="92">output</text>
-      <use x="258" y="98" xlink:href="#KEY_INOUTPort"/>
-      <text class="keylabel" x="288" y="112">inout</text>
-      <text class="keylblul" x="380" y="47">Interrupts</text>
-      <use x="380" y="58" xlink:href="#KEY_IntrCntrl"/>
-      <text class="keylabel" x="396" y="64">interrupt</text>
-      <text class="keylabel" x="396" y="74">controller</text>
-      <use x="380" y="88" xlink:href="#KEY_IntrdProc"/>
-      <text class="keylabel" x="396" y="94">interrupted</text>
-      <text class="keylabel" x="396" y="104">processor</text>
-      <use x="380" y="118" xlink:href="#KEY_IntrSrc"/>
-      <text class="keylabel" x="400" y="124">interrupt</text>
-      <text class="keylabel" x="400" y="134">source</text>
-      <text class="keylabel" x="360" y="146">x = controller ID</text>
-      <text class="keylabel" x="360" y="156">y = priority</text>
-      <rect x="0" y="160" width="468" height="16" style="fill:#EEEEEE; stroke:none;"/>
-      <text class="keyheader" x="234 " y="172">COLORS</text>
-      <text class="keylblul" x="110" y="190">Bus Standards</text>
-      <rect x="12" y="200" width="24" height="24" style="fill:#6699FF; stroke:none;"/>
-      <text class="keylabel" x="40" y="220">DCR</text>
-      <rect x="12" y="228" width="24" height="24" style="fill:#8C00FF; stroke:none;"/>
-      <text class="keylabel" x="40" y="240">FCB</text>
-      <rect x="84" y="200" width="24" height="24" style="fill:#CC00CC; stroke:none;"/>
-      <text class="keylabel" x="112" y="220">FSL</text>
-      <rect x="84" y="228" width="24" height="24" style="fill:#7777FF; stroke:none;"/>
-      <text class="keylabel" x="112" y="240">LMB</text>
-      <rect x="156" y="200" width="24" height="24" style="fill:#339900; stroke:none;"/>
-      <text class="keylabel" x="184" y="220">OPB</text>
-      <rect x="156" y="228" width="24" height="24" style="fill:#FF5500; stroke:none;"/>
-      <text class="keylabel" x="184" y="240">PLB</text>
-      <rect x="228" y="200" width="24" height="24" style="fill:#0000DD; stroke:none;"/>
-      <text class="keylabel" x="256" y="220">SOCM</text>
-      <rect x="228" y="228" width="24" height="24" style="fill:#990066; stroke:none;"/>
-      <text class="keylabel" x="256" y="240">XIL (prefix) P2P</text>
-      <rect x="300" y="200" width="24" height="24" style="fill:#009999; stroke:none;"/>
-      <text class="keylabel" x="328" y="220">GEN. P2P, USER, etc</text>
-    </symbol>
-    <symbol id="BlkDiagram_Specs">
-      <rect x="0" y="0" width="300" height="100" style="fill:#CCCCCC; stroke:none;"/>
-      <rect x="0" y="0" width="300" height="16" style="fill:#CCCCCC; stroke:none;"/>
-      <text class="keytitle" x="150 " y="14">SPECS</text>
-      <rect x="0" y="20" width="300" height="16" style="fill:#EEEEEE; stroke:none;"/>
-      <text class="specsheader" x="4" y="32">EDK VERSION</text>
-      <text class="specsvaluemid" x="241" y="32">10.1.01</text>
-      <rect x="0" y="40" width="300" height="16" style="fill:#EEEEEE; stroke:none;"/>
-      <text class="specsheader" x="4" y="52">ARCH</text>
-      <text class="specsvaluemid" x="241" y="52">virtex4</text>
-      <rect x="0" y="60" width="300" height="16" style="fill:#EEEEEE; stroke:none;"/>
-      <text class="specsheader" x="4" y="72">PART</text>
-      <text class="specsvaluemid" x="241" y="72">xc4vfx12ff668-10</text>
-      <rect x="0" y="80" width="300" height="16" style="fill:#EEEEEE; stroke:none;"/>
-      <text class="specsheader" x="4" y="92">GENERATED</text>
-      <text class="specsvalue" x="138.5" y="92">Sun May 25 17:18:21 2008
-</text>
-    </symbol>
-    <symbol id="G_IOPort">
-      <rect x="0" y="0" width="16" height="16" style="fill:#CCCCFF; stroke:#000088; stroke-width:1"/>
-      <path class="ioport" d="M   0,0      L   16,8      L   0,16      Z" style="stroke:none; fill:#0000BB"/>
-    </symbol>
-    <symbol id="G_BIPort">
-      <rect x="0" y="0" width="16" height="16" style="fill:#CCCCFF; stroke:#000088; stroke-width:1"/>
-      <path class="btop" d="M 0,8      8,0      16,8      Z" style="stroke:none; fill:#0000BB"/>
-      <path class="bbot" d="M 0,8      8,16      16,8      Z" style="stroke:none; fill:#0000BB"/>
-    </symbol>
-    <symbol id="KEY_IOPort">
-      <rect x="0" y="0" width="16" height="16" style="fill:#888888; stroke:none;"/>
-      <path class="ioport" d="M   0,0      L   16,8      L   0,16      Z" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_BIPort">
-      <rect x="0" y="0" width="16" height="16" style="fill:#888888; stroke:none;"/>
-      <path class="btop" d="M 0,8      8,0      16,8      Z" style="stroke:none; fill:#444444"/>
-      <path class="bbot" d="M 0,8      8,16      16,8      Z" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_INPort">
-      <use x="0" y="0" xlink:href="#KEY_IOPort"/>
-      <rect x="16" y="0" width="8" height="16" style="fill:#0000BB; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_OUTPort">
-      <use x="0" y="0" xlink:href="#KEY_IOPort" transform="scale(-1,1) translate(-16,0)"/>
-      <rect x="16" y="0" width="8" height="16" style="fill:#0000BB; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_INOUTPort">
-      <use x="0" y="0" xlink:href="#KEY_BIPort"/>
-      <rect x="16" y="0" width="8" height="16" style="fill:#0000BB; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#990066; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="XIL_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#990066; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#990066; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#CC3399; stroke:#990066; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#990066; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#990066; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#0000DD; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="OCM_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#0000DD; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#0000DD; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#9999DD; stroke:#0000DD; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#0000DD; stroke:none;"/>
-    </symbol>
-    <symbol id="OCM_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#0000DD; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#339900; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="OPB_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#339900; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#339900; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#CCDDCC; stroke:#339900; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#339900; stroke:none;"/>
-    </symbol>
-    <symbol id="OPB_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#339900; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#7777FF; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="LMB_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#7777FF; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#7777FF; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#DDDDFF; stroke:#7777FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#7777FF; stroke:none;"/>
-    </symbol>
-    <symbol id="LMB_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#7777FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#CC00CC; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="FSL_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#CC00CC; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#CC00CC; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBBFF; stroke:#CC00CC; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#CC00CC; stroke:none;"/>
-    </symbol>
-    <symbol id="FSL_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#CC00CC; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#6699FF; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="DCR_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#6699FF; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#6699FF; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#BBDDFF; stroke:#6699FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#6699FF; stroke:none;"/>
-    </symbol>
-    <symbol id="DCR_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#6699FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#8C00FF; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="FCB_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#8C00FF; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#8C00FF; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#CCCCFF; stroke:#8C00FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#8C00FF; stroke:none;"/>
-    </symbol>
-    <symbol id="FCB_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#8C00FF; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#FF5500; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="PLB_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FF5500; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#FF5500; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#FFBB00; stroke:#FF5500; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FF5500; stroke:none;"/>
-    </symbol>
-    <symbol id="PLB_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#FF5500; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#BB9955; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#BB9955; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#BB9955; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#BB9955; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFDD; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#BB9955; stroke:none;"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#BB9955; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#009999; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="TRS_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRS_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#009999; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="TRANS_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANS_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#009999; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TRANSPARENT_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#009999; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="TARGET_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="TARGET_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#009999; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#009999; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#00CCCC; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#009999; stroke:none;"/>
-    </symbol>
-    <symbol id="INITIATOR_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#009999; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_Bif">
-      <rect x="0" y="0" rx="3" ry="3" width="32" height="16" style="fill:#444444; stroke:black; stroke-width:1"/>
-    </symbol>
-    <symbol id="KEY_busconn_MASTER">
-      <rect x="0" y="0" width="24" height="24" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_INITIATOR">
-      <rect x="0" y="0" width="24" height="24" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <rect x="5.5" y="5" width="14" height="14" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_TARGET">
-      <circle cx="12" cy="12" r="12" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_MASTER_SLAVE">
-      <circle cx="12" cy="12" r="12" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#444444; stroke:none;"/>
-      <rect x="0" y="12" width="24" height="12" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <rect x="5.5" y="12" width="14" height="7" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_MONITOR">
-      <rect x="0" y="0.5" width="24" height="7" style="fill:#444444; stroke:none;"/>
-      <rect x="0" y="16" width="24" height="7" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_TRANSPARENT">
-      <circle cx="12" cy="12" r="12" style="fill:#888888; stroke:#444444; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#444444; stroke:none;"/>
-    </symbol>
-    <symbol id="KEY_busconn_">
-      <circle cx="12" cy="12" r="12" style="fill:#FFFFFF; stroke:#444444; stroke-width:1"/>
-      <circle cx="12.5" cy="12" r="7" style="fill:#FFFFFF; stroke:none;"/>
-    </symbol>
-    <symbol id="XIL_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#990066"/>
-    </symbol>
-    <symbol id="XIL_BusArrowWest">
-      <use x="0" y="0" xlink:href="#XIL_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="XIL_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#990066"/>
-    </symbol>
-    <symbol id="XIL_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#990066"/>
-    </symbol>
-    <symbol id="XIL_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#XIL_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="XIL_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#990066"/>
-    </symbol>
-    <symbol id="XIL_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#XIL_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#990066"/>
-    </symbol>
-    <symbol id="XIL_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#XIL_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="XIL_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#990066"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#990066"/>
-    </symbol>
-    <symbol id="OCM_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#0000DD"/>
-    </symbol>
-    <symbol id="OCM_BusArrowWest">
-      <use x="0" y="0" xlink:href="#OCM_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="OCM_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#0000DD"/>
-    </symbol>
-    <symbol id="OCM_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#0000DD"/>
-    </symbol>
-    <symbol id="OCM_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#OCM_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="OCM_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#0000DD"/>
-    </symbol>
-    <symbol id="OCM_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#OCM_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#0000DD"/>
-    </symbol>
-    <symbol id="OCM_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#OCM_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="OCM_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#0000DD"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#0000DD"/>
-    </symbol>
-    <symbol id="OPB_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="OPB_BusArrowWest">
-      <use x="0" y="0" xlink:href="#OPB_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="OPB_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="OPB_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="OPB_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#OPB_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="OPB_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="OPB_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#OPB_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="OPB_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#OPB_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="OPB_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#339900"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="LMB_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#7777FF"/>
-    </symbol>
-    <symbol id="LMB_BusArrowWest">
-      <use x="0" y="0" xlink:href="#LMB_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="LMB_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#7777FF"/>
-    </symbol>
-    <symbol id="LMB_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#7777FF"/>
-    </symbol>
-    <symbol id="LMB_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#LMB_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="LMB_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#7777FF"/>
-    </symbol>
-    <symbol id="LMB_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#LMB_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#7777FF"/>
-    </symbol>
-    <symbol id="LMB_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#LMB_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="LMB_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#7777FF"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#7777FF"/>
-    </symbol>
-    <symbol id="FSL_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#CC00CC"/>
-    </symbol>
-    <symbol id="FSL_BusArrowWest">
-      <use x="0" y="0" xlink:href="#FSL_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="FSL_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#CC00CC"/>
-    </symbol>
-    <symbol id="FSL_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#CC00CC"/>
-    </symbol>
-    <symbol id="FSL_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#FSL_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="FSL_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#CC00CC"/>
-    </symbol>
-    <symbol id="FSL_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#FSL_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#CC00CC"/>
-    </symbol>
-    <symbol id="FSL_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#FSL_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="FSL_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#CC00CC"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#CC00CC"/>
-    </symbol>
-    <symbol id="DCR_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#6699FF"/>
-    </symbol>
-    <symbol id="DCR_BusArrowWest">
-      <use x="0" y="0" xlink:href="#DCR_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="DCR_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#6699FF"/>
-    </symbol>
-    <symbol id="DCR_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#6699FF"/>
-    </symbol>
-    <symbol id="DCR_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#DCR_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="DCR_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#6699FF"/>
-    </symbol>
-    <symbol id="DCR_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#DCR_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#6699FF"/>
-    </symbol>
-    <symbol id="DCR_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#DCR_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="DCR_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#6699FF"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#6699FF"/>
-    </symbol>
-    <symbol id="FCB_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-    <symbol id="FCB_BusArrowWest">
-      <use x="0" y="0" xlink:href="#FCB_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="FCB_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-    <symbol id="FCB_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-    <symbol id="FCB_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#FCB_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="FCB_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-    <symbol id="FCB_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#FCB_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-    <symbol id="FCB_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#FCB_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="FCB_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#8C00FF"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#8C00FF"/>
-    </symbol>
-    <symbol id="PLB_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLB_BusArrowWest">
-      <use x="0" y="0" xlink:href="#PLB_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="PLB_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLB_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLB_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#PLB_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="PLB_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLB_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#PLB_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLB_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#PLB_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="PLB_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#FF5500"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLBV46_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_BusArrowWest">
-      <use x="0" y="0" xlink:href="#PLBV46_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="PLBV46_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#PLBV46_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="PLBV46_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#PLBV46_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#PLBV46_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="PLBV46_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#BB9955"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_BusArrowWest">
-      <use x="0" y="0" xlink:href="#PLBV46_P2P_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#PLBV46_P2P_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#PLBV46_P2P_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#PLBV46_P2P_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="PLBV46_P2P_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#BB9955"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="TRS_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRS_BusArrowWest">
-      <use x="0" y="0" xlink:href="#TRS_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="TRS_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRS_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRS_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#TRS_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="TRS_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRS_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#TRS_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRS_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#TRS_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="TRS_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#009999"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANS_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANS_BusArrowWest">
-      <use x="0" y="0" xlink:href="#TRANS_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="TRANS_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANS_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANS_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#TRANS_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="TRANS_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANS_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#TRANS_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANS_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#TRANS_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="TRANS_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#009999"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANSPARENT_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANSPARENT_BusArrowWest">
-      <use x="0" y="0" xlink:href="#TRANSPARENT_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="TRANSPARENT_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANSPARENT_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANSPARENT_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#TRANSPARENT_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="TRANSPARENT_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANSPARENT_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#TRANSPARENT_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TRANSPARENT_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#TRANSPARENT_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="TRANSPARENT_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#009999"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TARGET_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TARGET_BusArrowWest">
-      <use x="0" y="0" xlink:href="#TARGET_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="TARGET_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TARGET_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TARGET_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#TARGET_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="TARGET_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TARGET_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#TARGET_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="TARGET_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#TARGET_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="TARGET_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#009999"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="INITIATOR_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="INITIATOR_BusArrowWest">
-      <use x="0" y="0" xlink:href="#INITIATOR_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="INITIATOR_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="INITIATOR_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="INITIATOR_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#INITIATOR_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="INITIATOR_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="INITIATOR_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#INITIATOR_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="INITIATOR_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#INITIATOR_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="INITIATOR_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#009999"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#009999"/>
-    </symbol>
-    <symbol id="KEY_BusArrowEast">
-      <path class="bus" d="M   0,0      L     8, 6      L   0,12,       Z" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_BusArrowWest">
-      <use x="0" y="0" xlink:href="#KEY_BusArrowEast" transform="scale(-1,1) translate(-8,0)"/>
-    </symbol>
-    <symbol id="KEY_BusArrowHInitiator">
-      <rect x="0" y="2" width="8" height="8" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_BusArrowSouth">
-      <path class="bus" d="M   0,0      L   12,0      L   6, 8      Z" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_BusArrowNorth">
-      <use x="0" y="0" xlink:href="#KEY_BusArrowSouth" transform="scale(1,-1) translate(0,-12)"/>
-    </symbol>
-    <symbol id="KEY_BusArrowInitiator">
-      <rect x="2" y="0" width="4" height="12" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_SplitBus_EAST">
-      <use x="0" y="0" xlink:href="#KEY_BusArrowWest"/>
-      <rect x="8" y="2" width="24" height="8" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="KEY_SplitBus_WEST">
-      <use x="0" y="0" xlink:href="#KEY_SplitBus_EAST" transform="scale(-1,1) translate(-46,0)"/>
-    </symbol>
-    <symbol id="KEY_SplitBus_OneWay">
-      <rect x="0" y="2" width="16" height="8" style="stroke:none; fill:#444444"/>
-      <rect x="16" y="0" width="12" height="12" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="PLB_SharedBus">
-      <use x="0" y="0" xlink:href="#PLB_BusArrowWest"/>
-      <use x="766" y="0" xlink:href="#PLB_BusArrowEast"/>
-      <rect x="8" y="2" width="758" height="8" style="stroke:none; fill:#FF5500"/>
-    </symbol>
-    <symbol id="PLBV46_SharedBus">
-      <use x="0" y="0" xlink:href="#PLBV46_BusArrowWest"/>
-      <use x="766" y="0" xlink:href="#PLBV46_BusArrowEast"/>
-      <rect x="8" y="2" width="758" height="8" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="OPB_SharedBus">
-      <use x="0" y="0" xlink:href="#OPB_BusArrowWest"/>
-      <use x="766" y="0" xlink:href="#OPB_BusArrowEast"/>
-      <rect x="8" y="2" width="758" height="8" style="stroke:none; fill:#339900"/>
-    </symbol>
-    <symbol id="group_sharedBusses">
-      <use x="0" y="0" xlink:href="#PLBV46_SharedBus"/>
-      <text class="sharedbuslabel" x="8" y="22">plb</text>
-    </symbol>
-    <symbol id="KEY_SharedBus">
-      <use x="0" y="0" xlink:href="#KEY_BusArrowWest"/>
-      <use x="30" y="0" xlink:href="#KEY_BusArrowEast"/>
-      <rect x="8" y="2" width="22" height="8" style="stroke:none; fill:#444444"/>
-    </symbol>
-    <symbol id="sbsbktmodule_LEDs_4Bit">
-      <rect x="0" y="24" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="56" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <rect x="11" y="76" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="90">A</text>
-      <text class="bciptype" x="45" y="64">xps_gpio</text>
-      <text class="bciplabel" x="45" y="72">LEDs_4Bit</text>
-      <use x="29" y="28" xlink:href="#PLBV46_Bif"/>
-      <use x="33" y="0" xlink:href="#PLBV46_busconn_SLAVE"/>
-      <text class="biflabel" x="45" y="39">SPLB</text>
-    </symbol>
-    <symbol id="sbsbktmodule_LEDs_Positions">
-      <rect x="0" y="24" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="56" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <rect x="11" y="76" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="90">B</text>
-      <text class="bciptype" x="45" y="64">xps_gpio</text>
-      <text class="bciplabel" x="45" y="72">LEDs_Positions</text>
-      <use x="29" y="28" xlink:href="#PLBV46_Bif"/>
-      <use x="33" y="0" xlink:href="#PLBV46_busconn_SLAVE"/>
-      <text class="biflabel" x="45" y="39">SPLB</text>
-    </symbol>
-    <symbol id="sbsbktmodule_RS232_Uart">
-      <rect x="0" y="24" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="56" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <rect x="11" y="76" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="90">C</text>
-      <text class="bciptype" x="45" y="64">xps_uartlite</text>
-      <text class="bciplabel" x="45" y="72">RS232_Uart</text>
-      <use x="29" y="28" xlink:href="#PLBV46_Bif"/>
-      <use x="33" y="0" xlink:href="#PLBV46_busconn_SLAVE"/>
-      <text class="biflabel" x="45" y="39">SPLB</text>
-      <rect x="72" y="24" rx="3" ry="3" width="18" height="9" style="fill:#FF9900; stroke:none; stroke-width:1"/>
-      <line x1="81" y1="24" x2="81" y2="33" style="stroke:#000000;stroke-width:1"/>
-      <text class="intrsymbol" x="74" y="32">0</text>
-      <text class="intrsymbol" x="83" y="32">0</text>
-    </symbol>
-    <symbol id="sbsbktmodule_SRAM">
-      <rect x="0" y="24" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="56" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <rect x="11" y="76" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="90">D</text>
-      <text class="bciptype" x="45" y="64">xps_mch_emc</text>
-      <text class="bciplabel" x="45" y="72">SRAM</text>
-      <use x="29" y="28" xlink:href="#PLBV46_Bif"/>
-      <use x="33" y="0" xlink:href="#PLBV46_busconn_SLAVE"/>
-      <text class="biflabel" x="45" y="39">SPLB</text>
-    </symbol>
-    <symbol id="sbsbktmodule_SysACE_CompactFlash">
-      <rect x="0" y="24" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="56" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <rect x="11" y="76" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="90">F</text>
-      <text class="bciptype" x="45" y="64">xps_sysace</text>
-      <text class="bciplabel" x="45" y="72">SysACE_CompactFlash</text>
-      <use x="29" y="28" xlink:href="#PLBV46_Bif"/>
-      <use x="33" y="0" xlink:href="#PLBV46_busconn_SLAVE"/>
-      <text class="biflabel" x="45" y="39">SPLB</text>
-    </symbol>
-    <symbol id="sbsbktmodule_xps_intc_0">
-      <rect x="0" y="24" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="56" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="64">xps_intc</text>
-      <text class="bciplabel" x="45" y="72">xps_intc_0</text>
-      <use x="29" y="28" xlink:href="#PLBV46_Bif"/>
-      <use x="33" y="0" xlink:href="#PLBV46_busconn_SLAVE"/>
-      <text class="biflabel" x="45" y="39">SPLB</text>
-      <rect x="81" y="27" rx="3" ry="3" width="9" height="18" style="fill:#FF9900; stroke:none; stroke-width:1"/>
-      <line x1="81" y1="32" x2="90" y2="32" style="stroke:#000000;stroke-width:2"/>
-      <text class="intrsymbol" x="83" y="44">0</text>
-    </symbol>
-    <symbol id="sbsbucket_plb">
-      <rect x="0" y="0" rx="4" ry="4" width="334" height="244" style="stroke-width:2; stroke:#BB9955; fill:#FFFFDD"/>
-      <use x="16" y="16" xlink:href="#sbsbktmodule_LEDs_4Bit"/>
-      <rect x="0" y="24" width="61" height="8" style="fill:#BB9955"/>
-      <use x="122" y="16" xlink:href="#sbsbktmodule_LEDs_Positions"/>
-      <rect x="61" y="24" width="106" height="8" style="fill:#BB9955"/>
-      <use x="228" y="16" xlink:href="#sbsbktmodule_RS232_Uart"/>
-      <rect x="167" y="24" width="106" height="8" style="fill:#BB9955"/>
-      <use x="16" y="130" xlink:href="#sbsbktmodule_SRAM"/>
-      <rect x="0" y="138" width="61" height="8" style="fill:#BB9955"/>
-      <use x="122" y="130" xlink:href="#sbsbktmodule_SysACE_CompactFlash"/>
-      <rect x="61" y="138" width="106" height="8" style="fill:#BB9955"/>
-      <use x="228" y="130" xlink:href="#sbsbktmodule_xps_intc_0"/>
-      <rect x="167" y="138" width="106" height="8" style="fill:#BB9955"/>
-      <rect x="0" y="24" width="8" height="114" style="fill:#BB9955"/>
-    </symbol>
-    <symbol id="ipbktmodule_SRAM_util_bus_split_0">
-      <rect x="0" y="0" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#000000; stroke-width:2"/>
-      <rect x="11" y="18" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="26">util_bus_split</text>
-      <text class="bciplabel" x="45" y="34">SRAM_util_bus_split_0</text>
-      <rect x="11" y="38" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="52">E</text>
-    </symbol>
-    <symbol id="ipbktmodule_clock_generator_0">
-      <rect x="0" y="0" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#000000; stroke-width:2"/>
-      <rect x="11" y="18" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="26">clock_generator</text>
-      <text class="bciplabel" x="45" y="34">clock_generator_0</text>
-      <rect x="11" y="38" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="52">G</text>
-    </symbol>
-    <symbol id="ipbucket">
-      <rect x="0" y="0" rx="4" ry="4" width="228" height="106" style="stroke-width:2; stroke:#000000; fill:#CCCCFF"/>
-      <use x="16" y="16" xlink:href="#ipbktmodule_SRAM_util_bus_split_0"/>
-      <use x="122" y="16" xlink:href="#ipbktmodule_clock_generator_0"/>
-    </symbol>
-    <symbol id="symbol_STACK_0_SHAPE_0">
-      <rect x="0" y="0" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="4" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="12">jtagppc_cntlr</text>
-      <text class="bciplabel" x="45" y="20">jtagppc_0</text>
-      <line x1="0" y1="64" x2="11" y2="64" style="stroke:#990066;stroke-width:1"/>
-      <use x="11" y="54" xlink:href="#XIL_Bif"/>
-      <text class="biflabel" x="27" y="65">JTAG</text>
-    </symbol>
-    <symbol id="symbol_STACK_0_SHAPE_1">
-      <rect x="0" y="0" rx="6" ry="6" width="90" height="74" style="fill:#CCCCCC; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="4" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="12">proc_sys_reset</text>
-      <text class="bciplabel" x="45" y="20">proc_sys_reset_0</text>
-      <rect x="11" y="24" rx="3" ry="3" width="68" height="16" style="fill:#CCCCFF; stroke:none;"/>
-      <text class="ioplblgrp" x="45" y="38">H</text>
-      <line x1="79" y1="64" x2="91" y2="64" style="stroke:#990066;stroke-width:1"/>
-      <use x="47" y="54" xlink:href="#XIL_Bif"/>
-      <text class="biflabel" x="63" y="65">RESE</text>
-    </symbol>
-    <symbol id="symbol_STACK_0_SHAPE_2">
-      <rect x="0" y="0" rx="6" ry="6" width="90" height="114" style="fill:#90001C; stroke:#FFFFFF; stroke-width:2"/>
-      <rect x="11" y="4" rx="3" ry="3" width="68" height="38" style="fill:#FFFFFF; stroke:none;"/>
-      <text class="bciptype" x="45" y="12">ppc405_virtex4</text>
-      <text class="bciplabel" x="45" y="20">ppc405_0</text>
-      <line x1="0" y1="64" x2="11" y2="64" style="stroke:#990066;stroke-width:1"/>
-      <use x="11" y="54" xlink:href="#XIL_Bif"/>
-      <text class="biflabel" x="27" y="65">JTAG</text>
-      <line x1="79" y1="92" x2="91" y2="92" style="stroke:#BB9955;stroke-width:1"/>
-      <use x="47" y="82" xlink:href="#PLBV46_Bif"/>
-      <text class="biflabel" x="63" y="93">IPLB0</text>
-      <line x1="0" y1="92" x2="11" y2="92" style="stroke:#BB9955;stroke-width:1"/>
-      <use x="11" y="82" xlink:href="#PLBV46_Bif"/>
-      <text class="biflabel" x="27" y="93">DPLB0</text>
-      <line x1="79" y1="64" x2="91" y2="64" style="stroke:#990066;stroke-width:1"/>
-      <use x="47" y="54" xlink:href="#XIL_Bif"/>
-      <text class="biflabel" x="63" y="65">RESE</text>
-      <rect x="81" y="3" rx="3" ry="3" width="9" height="18" style="fill:#FF9900; stroke:none; stroke-width:1"/>
-      <line x1="81" y1="6" x2="90" y2="6" style="stroke:#000000;stroke-width:1"/>
-      <line x1="81" y1="10" x2="90" y2="10" style="stroke:#000000;stroke-width:1"/>
-      <text class="intrsymbol" x="83" y="20">0</text>
-    </symbol>
-    <symbol id="symbol_STACK_0">
-      <rect x="0" y="0" rx="6" ry="6" width="334" height="0" style="fill:#CCCCCC; stroke:none;"/>
-      <use x="122" y="0" xlink:href="#symbol_STACK_0_SHAPE_0"/>
-      <use x="122" y="90" xlink:href="#symbol_STACK_0_SHAPE_1"/>
-      <use x="0" y="436" xlink:href="#sbsbucket_plb"/>
-      <text class="ipclass" x="0" y="432">SLAVES OF plb</text>
-      <use x="122" y="180" xlink:href="#symbol_STACK_0_SHAPE_2"/>
-      <text class="ipclass" x="122" y="176">PROCESSOR</text>
-    </symbol>
-    <symbol id="symbol_SPACE_WEST_NONE_EAST_0">
-      <rect x="80" y="58" width="8" height="188" style="stroke:none;fill:#990066"/>
-      <text class="p2pbuslabel" x="92" y="86">jtagppc_0_0</text>
-      <use x="258" y="230" xlink:href="#XIL_busconn_TARGET"/>
-      <use x="250" y="236" xlink:href="#XIL_BusArrowEast"/>
-      <rect x="84" y="238" width="166" height="8" style="stroke:none; fill:#990066"/>
-      <use x="258" y="50" xlink:href="#XIL_busconn_INITIATOR"/>
-      <use x="250" y="56" xlink:href="#XIL_BusArrowEast"/>
-      <rect x="84" y="58" width="166" height="8" style="stroke:none; fill:#990066"/>
-      <use x="258" y="258" xlink:href="#PLBV46_busconn_MASTER"/>
-      <rect x="72" y="272" width="8" height="64" style="stroke:none; fill:#BB9955"/>
-      <rect x="72" y="266" width="192" height="8" style="stroke:none; fill:#BB9955"/>
-      <rect x="36" y="340" width="8" height="127" style="stroke:none; fill:#BB9955"/>
-      <rect x="36" y="460" width="247" height="8" style="stroke:none; fill:#BB9955"/>
-    </symbol>
-    <symbol id="symbol_SPACE_WEST_0_EAST_NONE">
-      <use x="45" y="258" xlink:href="#PLBV46_busconn_MASTER"/>
-      <rect x="223" y="272" width="8" height="64" style="stroke:none; fill:#BB9955"/>
-      <rect x="64" y="266" width="167" height="8" style="stroke:none; fill:#BB9955"/>
-      <rect x="223" y="148" width="8" height="98" style="stroke:none;fill:#990066"/>
-      <text class="p2pbuslabel" x="235" y="176">ppc_reset_bus</text>
-      <use x="45" y="230" xlink:href="#XIL_busconn_TARGET"/>
-      <use x="69" y="236" xlink:href="#XIL_BusArrowWest"/>
-      <rect x="76" y="238" width="152" height="8" style="stroke:none; fill:#990066"/>
-      <use x="45" y="140" xlink:href="#XIL_busconn_INITIATOR"/>
-      <use x="69" y="146" xlink:href="#XIL_BusArrowWest"/>
-      <rect x="76" y="148" width="152" height="8" style="stroke:none; fill:#990066"/>
-    </symbol>
-  </defs>
-  <rect x="0" y="0" width="992" height="1413" style="fill:#FFFFFF; stroke:#000000;stroke-width:4"/>
-  <rect x="48" y="40" width="896" height="1072" style="fill:#000088"/>
-  <rect x="64" y="56" width="864" height="1040" rx="8" ry="8" style="fill:#CCCCCC"/>
-  <use x="32" y="412" id="fpga_0_RS232_Uart_RX_pin" xlink:href="#G_IOPort" transform="rotate(0,40,420)"/>
-  <text class="iopnumb" x="22" y="426"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="440" id="fpga_0_RS232_Uart_TX_pin" xlink:href="#G_IOPort" transform="rotate(180,40,448)"/>
-  <text class="iopnumb" x="22" y="454"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="468" id="fpga_0_LEDs_4Bit_GPIO_IO_pin" xlink:href="#G_BIPort" transform="rotate(0,40,476)"/>
-  <text class="iopnumb" x="22" y="482"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="496" id="fpga_0_LEDs_Positions_GPIO_IO_pin" xlink:href="#G_BIPort" transform="rotate(0,40,504)"/>
-  <text class="iopnumb" x="22" y="510"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="524" id="fpga_0_SysACE_CompactFlash_SysACE_CLK_pin" xlink:href="#G_IOPort" transform="rotate(0,40,532)"/>
-  <text class="iopnumb" x="22" y="538"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="552" id="fpga_0_SysACE_CompactFlash_SysACE_MPA_pin" xlink:href="#G_IOPort" transform="rotate(180,40,560)"/>
-  <text class="iopnumb" x="22" y="566"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="580" id="fpga_0_SysACE_CompactFlash_SysACE_MPD_pin" xlink:href="#G_BIPort" transform="rotate(0,40,588)"/>
-  <text class="iopnumb" x="22" y="594"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="608" id="fpga_0_SysACE_CompactFlash_SysACE_CEN_pin" xlink:href="#G_IOPort" transform="rotate(180,40,616)"/>
-  <text class="iopnumb" x="22" y="622"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="636" id="fpga_0_SysACE_CompactFlash_SysACE_OEN_pin" xlink:href="#G_IOPort" transform="rotate(180,40,644)"/>
-  <text class="iopnumb" x="22" y="650"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="664" id="fpga_0_SysACE_CompactFlash_SysACE_WEN_pin" xlink:href="#G_IOPort" transform="rotate(180,40,672)"/>
-  <text class="iopnumb" x="22" y="678"><tspan class="iopgrp"></tspan></text>
-  <use x="32" y="692" id="fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin" xlink:href="#G_IOPort" transform="rotate(0,40,700)"/>
-  <text class="iopnumb" x="22" y="706"><tspan class="iopgrp"></tspan></text>
-  <use x="944" y="412" id="fpga_0_SRAM_Mem_A_pin" xlink:href="#G_IOPort" transform="rotate(0,952,420)"/>
-  <text class="iopnumb" x="972" y="426"><tspan class="iopgrp"></tspan></text>
-  <use x="944" y="440" id="fpga_0_SRAM_Mem_BEN_pin" xlink:href="#G_IOPort" transform="rotate(0,952,448)"/>
-  <text class="iopnumb" x="972" y="454"><tspan class="iopgrp"></tspan></text>
-  <use x="944" y="468" id="fpga_0_SRAM_Mem_WEN_pin" xlink:href="#G_IOPort" transform="rotate(0,952,476)"/>
-  <text class="iopnumb" x="972" y="482"><tspan class="iopgrp"></tspan></text>
-  <use x="944" y="496" id="fpga_0_SRAM_Mem_DQ_pin" xlink:href="#G_BIPort" transform="rotate(0,952,504)"/>
-  <text class="iopnumb" x="972" y="510"><tspan class="iopgrp"></tspan></text>
-  <use x="944" y="524" id="fpga_0_SRAM_Mem_OEN_pin" xlink:href="#G_IOPort" transform="rotate(0,952,532)"/>
-  <text class="iopnumb" x="972" y="538"><tspan class="iopgrp"></tspan></text>
-  <use x="944" y="552" id="fpga_0_SRAM_Mem_CEN_pin" xlink:href="#G_IOPort" transform="rotate(0,952,560)"/>
-  <text class="iopnumb" x="972" y="566"><tspan class="iopgrp"></tspan></text>
-  <use x="944" y="580" id="fpga_0_SRAM_Mem_ADV_LDN_pin" xlink:href="#G_IOPort" transform="rotate(0,952,588)"/>
-  <text class="iopnumb" x="972" y="594"><tspan class="iopgrp"></tspan></text>
-  <use x="944" y="608" id="fpga_0_SRAM_CLOCK" xlink:href="#G_IOPort" transform="rotate(0,952,616)"/>
-  <text class="iopnumb" x="972" y="622"><tspan class="iopgrp"></tspan></text>
-  <use x="944" y="636" id="sys_clk_pin" xlink:href="#G_IOPort" transform="rotate(180,952,644)"/>
-  <text class="iopnumb" x="972" y="650"><tspan class="iopgrp"></tspan></text>
-  <use x="944" y="664" id="sys_rst_pin" xlink:href="#G_IOPort" transform="rotate(180,952,672)"/>
-  <text class="iopnumb" x="972" y="678"><tspan class="iopgrp"></tspan></text>
-  <use x="109" y="431" xlink:href="#group_sharedBusses"/>
-  <use x="269" y="101" xlink:href="#symbol_SPACE_WEST_NONE_EAST_0"/>
-  <use x="596" y="101" xlink:href="#symbol_SPACE_WEST_0_EAST_NONE"/>
-  <use x="429" y="101" xlink:href="#symbol_STACK_0"/>
-  <text class="ipclass" x="382" y="883">IP</text>
-  <use x="382" y="887" xlink:href="#ipbucket"/>
-  <use x="476" y="1155" xlink:href="#BlkDiagram_Key"/>
-  <use x="48" y="1155" xlink:href="#BlkDiagram_Specs"/>
-</svg>
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/data/system.ucf b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/data/system.ucf
deleted file mode 100644
index 0b81c8f..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/data/system.ucf
+++ /dev/null
@@ -1,398 +0,0 @@
-############################################################################

-## This system.ucf file is generated by Base System Builder based on the

-## settings in the selected Xilinx Board Definition file. Please add other

-## user constraints to this file based on customer design specifications.

-############################################################################

-

-Net sys_clk_pin LOC=AE14;

-Net sys_clk_pin IOSTANDARD = LVCMOS33;

-Net sys_rst_pin LOC=D6;

-Net sys_rst_pin PULLUP;

-## System level constraints

-Net sys_clk_pin TNM_NET = sys_clk_pin;

-TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 10000 ps;

-Net sys_rst_pin TIG;

-NET "ppc_reset_bus_Chip_Reset_Req" TPTHRU = "RST_GRP";

-NET "ppc_reset_bus_Core_Reset_Req" TPTHRU = "RST_GRP";

-NET "ppc_reset_bus_System_Reset_Req" TPTHRU = "RST_GRP";

-TIMESPEC "TS_RST1" = FROM CPUS THRU RST_GRP TO FFS  TIG;

-Net fpga_0_SRAM_CLOCK LOC=AF7;

-Net fpga_0_SRAM_CLOCK SLEW = FAST;

-Net fpga_0_SRAM_CLOCK IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_CLOCK DRIVE = 16;

-

-## IO Devices constraints

-

-#### Module RS232_Uart constraints

-

-Net fpga_0_RS232_Uart_RX_pin LOC=W2;

-Net fpga_0_RS232_Uart_RX_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_RS232_Uart_TX_pin LOC=W1;

-Net fpga_0_RS232_Uart_TX_pin IOSTANDARD = LVCMOS33;

-

-#### Module LEDs_4Bit constraints

-

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> LOC=G5;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> PULLUP;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> SLEW = SLOW;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> DRIVE = 2;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> TIG;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> LOC=G6;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> PULLUP;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> SLEW = SLOW;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> DRIVE = 2;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> TIG;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> LOC=A11;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> PULLUP;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> SLEW = SLOW;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> DRIVE = 2;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> TIG;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> LOC=A12;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> PULLUP;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> SLEW = SLOW;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> DRIVE = 2;

-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> TIG;

-

-#### Module LEDs_Positions constraints

-

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> LOC=C6;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> PULLUP;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> SLEW = SLOW;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> DRIVE = 2;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> TIG;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> LOC=F9;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> PULLUP;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> SLEW = SLOW;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> DRIVE = 2;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> TIG;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> LOC=A5;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> PULLUP;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> SLEW = SLOW;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> DRIVE = 2;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> TIG;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> LOC=E10;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> PULLUP;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> SLEW = SLOW;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> DRIVE = 2;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> TIG;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> LOC=E2;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> IOSTANDARD = LVCMOS25;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> PULLUP;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> SLEW = SLOW;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> DRIVE = 2;

-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> TIG;

-

-#### Module SysACE_CompactFlash constraints

-

-Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin LOC=AF11;

-Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin PERIOD = 30000 ps;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<1> LOC=Y10;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<1> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<2> LOC=AA10;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<2> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<3> LOC=AC7;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<3> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<4> LOC=Y7;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<4> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<5> LOC=AA9;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<5> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<6> LOC=Y9;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<6> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<0> LOC=AB7;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<0> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<1> LOC=AC9;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<1> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<2> LOC=AB9;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<2> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<3> LOC=AE6;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<3> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<4> LOC=AD6;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<4> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<5> LOC=AF9;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<5> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<6> LOC=AE9;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<6> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<7> LOC=AD8;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<7> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<8> LOC=AC8;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<8> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<9> LOC=AF4;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<9> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<10> LOC=AE4;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<10> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<11> LOC=AD3;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<11> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<12> LOC=AC3;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<12> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<13> LOC=AF6;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<13> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<14> LOC=AF5;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<14> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<15> LOC=AA7;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<15> IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_CEN_pin LOC=AD5;

-Net fpga_0_SysACE_CompactFlash_SysACE_CEN_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_OEN_pin LOC=AA8;

-Net fpga_0_SysACE_CompactFlash_SysACE_OEN_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_WEN_pin LOC=Y8;

-Net fpga_0_SysACE_CompactFlash_SysACE_WEN_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin LOC=AD4;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin TIG;

-

-#### Module SRAM constraints

-

-Net fpga_0_SRAM_Mem_A_pin<29> LOC=Y1;

-Net fpga_0_SRAM_Mem_A_pin<29> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<29> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<29> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<28> LOC=Y2;

-Net fpga_0_SRAM_Mem_A_pin<28> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<28> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<28> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<27> LOC=AA1;

-Net fpga_0_SRAM_Mem_A_pin<27> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<27> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<27> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<26> LOC=AB1;

-Net fpga_0_SRAM_Mem_A_pin<26> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<26> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<26> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<25> LOC=AB2;

-Net fpga_0_SRAM_Mem_A_pin<25> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<25> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<25> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<24> LOC=AC1;

-Net fpga_0_SRAM_Mem_A_pin<24> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<24> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<24> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<23> LOC=AC2;

-Net fpga_0_SRAM_Mem_A_pin<23> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<23> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<23> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<22> LOC=AD1;

-Net fpga_0_SRAM_Mem_A_pin<22> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<22> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<22> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<21> LOC=AD2;

-Net fpga_0_SRAM_Mem_A_pin<21> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<21> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<21> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<20> LOC=AE3;

-Net fpga_0_SRAM_Mem_A_pin<20> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<20> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<20> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<19> LOC=AF3;

-Net fpga_0_SRAM_Mem_A_pin<19> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<19> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<19> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<18> LOC=W3;

-Net fpga_0_SRAM_Mem_A_pin<18> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<18> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<18> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<17> LOC=W6;

-Net fpga_0_SRAM_Mem_A_pin<17> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<17> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<17> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<16> LOC=W5;

-Net fpga_0_SRAM_Mem_A_pin<16> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<16> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<16> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<15> LOC=AA3;

-Net fpga_0_SRAM_Mem_A_pin<15> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<15> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<15> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<14> LOC=AA4;

-Net fpga_0_SRAM_Mem_A_pin<14> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<14> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<14> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<13> LOC=AB3;

-Net fpga_0_SRAM_Mem_A_pin<13> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<13> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<13> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<12> LOC=AB4;

-Net fpga_0_SRAM_Mem_A_pin<12> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<12> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<12> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<11> LOC=AC4;

-Net fpga_0_SRAM_Mem_A_pin<11> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<11> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<11> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<10> LOC=AB5;

-Net fpga_0_SRAM_Mem_A_pin<10> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<10> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<10> DRIVE = 8;

-Net fpga_0_SRAM_Mem_A_pin<9> LOC=AC5;

-Net fpga_0_SRAM_Mem_A_pin<9> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_A_pin<9> SLEW = FAST;

-Net fpga_0_SRAM_Mem_A_pin<9> DRIVE = 8;

-Net fpga_0_SRAM_Mem_BEN_pin<3> LOC=Y6;

-Net fpga_0_SRAM_Mem_BEN_pin<3> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_BEN_pin<3> SLEW = FAST;

-Net fpga_0_SRAM_Mem_BEN_pin<3> DRIVE = 8;

-Net fpga_0_SRAM_Mem_BEN_pin<2> LOC=Y5;

-Net fpga_0_SRAM_Mem_BEN_pin<2> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_BEN_pin<2> SLEW = FAST;

-Net fpga_0_SRAM_Mem_BEN_pin<2> DRIVE = 8;

-Net fpga_0_SRAM_Mem_BEN_pin<1> LOC=Y4;

-Net fpga_0_SRAM_Mem_BEN_pin<1> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_BEN_pin<1> SLEW = FAST;

-Net fpga_0_SRAM_Mem_BEN_pin<1> DRIVE = 8;

-Net fpga_0_SRAM_Mem_BEN_pin<0> LOC=Y3;

-Net fpga_0_SRAM_Mem_BEN_pin<0> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_BEN_pin<0> SLEW = FAST;

-Net fpga_0_SRAM_Mem_BEN_pin<0> DRIVE = 8;

-Net fpga_0_SRAM_Mem_WEN_pin LOC=AB6;

-Net fpga_0_SRAM_Mem_WEN_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_WEN_pin SLEW = FAST;

-Net fpga_0_SRAM_Mem_WEN_pin DRIVE = 8;

-Net fpga_0_SRAM_Mem_DQ_pin<31> LOC=AD13;

-Net fpga_0_SRAM_Mem_DQ_pin<31> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<31> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<31> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<30> LOC=AC13;

-Net fpga_0_SRAM_Mem_DQ_pin<30> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<30> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<30> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<29> LOC=AC15;

-Net fpga_0_SRAM_Mem_DQ_pin<29> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<29> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<29> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<28> LOC=AC16;

-Net fpga_0_SRAM_Mem_DQ_pin<28> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<28> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<28> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<27> LOC=AA11;

-Net fpga_0_SRAM_Mem_DQ_pin<27> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<27> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<27> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<26> LOC=AA12;

-Net fpga_0_SRAM_Mem_DQ_pin<26> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<26> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<26> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<25> LOC=AD14;

-Net fpga_0_SRAM_Mem_DQ_pin<25> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<25> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<25> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<24> LOC=AC14;

-Net fpga_0_SRAM_Mem_DQ_pin<24> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<24> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<24> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<23> LOC=AA13;

-Net fpga_0_SRAM_Mem_DQ_pin<23> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<23> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<23> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<22> LOC=AB13;

-Net fpga_0_SRAM_Mem_DQ_pin<22> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<22> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<22> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<21> LOC=AA15;

-Net fpga_0_SRAM_Mem_DQ_pin<21> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<21> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<21> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<20> LOC=AA16;

-Net fpga_0_SRAM_Mem_DQ_pin<20> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<20> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<20> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<19> LOC=AC11;

-Net fpga_0_SRAM_Mem_DQ_pin<19> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<19> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<19> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<18> LOC=AC12;

-Net fpga_0_SRAM_Mem_DQ_pin<18> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<18> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<18> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<17> LOC=AB14;

-Net fpga_0_SRAM_Mem_DQ_pin<17> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<17> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<17> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<16> LOC=AA14;

-Net fpga_0_SRAM_Mem_DQ_pin<16> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<16> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<16> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<15> LOC=D12;

-Net fpga_0_SRAM_Mem_DQ_pin<15> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<15> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<15> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<14> LOC=E13;

-Net fpga_0_SRAM_Mem_DQ_pin<14> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<14> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<14> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<13> LOC=C16;

-Net fpga_0_SRAM_Mem_DQ_pin<13> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<13> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<13> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<12> LOC=D16;

-Net fpga_0_SRAM_Mem_DQ_pin<12> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<12> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<12> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<11> LOC=D11;

-Net fpga_0_SRAM_Mem_DQ_pin<11> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<11> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<11> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<10> LOC=C11;

-Net fpga_0_SRAM_Mem_DQ_pin<10> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<10> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<10> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<9> LOC=E14;

-Net fpga_0_SRAM_Mem_DQ_pin<9> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<9> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<9> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<8> LOC=D15;

-Net fpga_0_SRAM_Mem_DQ_pin<8> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<8> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<8> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<7> LOC=D13;

-Net fpga_0_SRAM_Mem_DQ_pin<7> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<7> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<7> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<6> LOC=D14;

-Net fpga_0_SRAM_Mem_DQ_pin<6> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<6> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<6> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<5> LOC=F15;

-Net fpga_0_SRAM_Mem_DQ_pin<5> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<5> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<5> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<4> LOC=F16;

-Net fpga_0_SRAM_Mem_DQ_pin<4> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<4> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<4> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<3> LOC=F11;

-Net fpga_0_SRAM_Mem_DQ_pin<3> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<3> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<3> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<2> LOC=F12;

-Net fpga_0_SRAM_Mem_DQ_pin<2> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<2> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<2> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<1> LOC=F13;

-Net fpga_0_SRAM_Mem_DQ_pin<1> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<1> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<1> DRIVE = 12;

-Net fpga_0_SRAM_Mem_DQ_pin<0> LOC=F14;

-Net fpga_0_SRAM_Mem_DQ_pin<0> SLEW = FAST;

-Net fpga_0_SRAM_Mem_DQ_pin<0> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_DQ_pin<0> DRIVE = 12;

-Net fpga_0_SRAM_Mem_OEN_pin<0> LOC=AC6;

-Net fpga_0_SRAM_Mem_OEN_pin<0> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_OEN_pin<0> SLEW = FAST;

-Net fpga_0_SRAM_Mem_OEN_pin<0> DRIVE = 8;

-Net fpga_0_SRAM_Mem_CEN_pin<0> LOC=V7;

-Net fpga_0_SRAM_Mem_CEN_pin<0> IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_CEN_pin<0> SLEW = FAST;

-Net fpga_0_SRAM_Mem_CEN_pin<0> DRIVE = 8;

-Net fpga_0_SRAM_Mem_ADV_LDN_pin LOC=W4;

-Net fpga_0_SRAM_Mem_ADV_LDN_pin IOSTANDARD = LVCMOS33;

-Net fpga_0_SRAM_Mem_ADV_LDN_pin SLEW = FAST;

-Net fpga_0_SRAM_Mem_ADV_LDN_pin DRIVE = 8;

-

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/bitgen.ut b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/bitgen.ut
deleted file mode 100644
index 9765363..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/bitgen.ut
+++ /dev/null
@@ -1,20 +0,0 @@
--g CclkPin:PULLUP
--g TdoPin:PULLNONE
--g M1Pin:PULLDOWN
--g DonePin:PULLUP
--g DriveDone:No
--g StartUpClk:JTAGCLK
--g DONE_cycle:4
--g GTS_cycle:5
--g M0Pin:PULLUP
--g M2Pin:PULLUP
--g ProgPin:PULLUP
--g TckPin:PULLUP
--g TdiPin:PULLUP
--g TmsPin:PULLUP
--g DonePipe:No
--g GWE_cycle:6
--g LCK_cycle:NoWait
--g Security:NONE
-#-m
--g Persist:No
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/download.cmd b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/download.cmd
deleted file mode 100644
index 15728dc..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/download.cmd
+++ /dev/null
@@ -1,6 +0,0 @@
-setMode -bscan

-setCable -p auto

-identify

-assignfile -p 3 -file implementation/download.bit

-program -p 3

-quit

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/fast_runtime.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/fast_runtime.opt
deleted file mode 100644
index 6cc2599..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/fast_runtime.opt
+++ /dev/null
@@ -1,82 +0,0 @@
-FLOWTYPE = FPGA;
-###############################################################
-## Filename: fast_runtime.opt
-##
-## Option File For Xilinx FPGA Implementation Flow for Fast
-## Runtime.
-## 
-## Version: 4.1.1
-###############################################################
-#
-# Options for Translator
-#
-# Type "ngdbuild -h" for a detailed list of ngdbuild command line options
-#
-Program ngdbuild 
--p <partname>;        # Partname to use - picked from xflow commandline
--nt timestamp;        # NGO File generation. Regenerate only when
-                      # source netlist is newer than existing 
-                      # NGO file (default)
--bm <design>.bmm     # Block RAM memory map file
-<userdesign>;         # User design - pick from xflow command line
--uc <design>.ucf;     # ucf constraints
-<design>.ngd;         # Name of NGD file. Filebase same as design filebase
-End Program ngdbuild
-
-#
-# Options for Mapper
-#
-# Type "map -h <arch>" for a detailed list of map command line options
-#
-Program map
--o <design>_map.ncd;     # Output Mapped ncd file
--pr b;                   # Pack internal FF/latches into IOBs
-#-fp <design>.mfp;       # Floorplan file
--ol high;
--timing;
-<inputdir><design>.ngd;  # Input NGD file
-<inputdir><design>.pcf;  # Physical constraints file
-END Program map
-
-#
-# Options for Post Map Trace
-#
-# Type "trce -h" for a detailed list of trce command line options
-#
-Program post_map_trce
--e 3;                 # Produce error report limited to 3 items per constraint
-#-o <design>_map.twr;  # Output trace report file
--xml <design>_map.twx;     # Output XML version of the timing report
-#-tsi <design>_map.tsi; # Produce Timing Specification Interaction report
-<inputdir><design>_map.ncd;  # Input mapped ncd
-<inputdir><design>.pcf;      # Physical constraints file
-END Program post_map_trce
-
-#
-# Options for Place and Route
-#
-# Type "par -h" for a detailed list of par command line options
-#
-Program par
--w;                 # Overwrite existing placed and routed ncd
--ol high;              # Overall effort level
-<inputdir><design>_map.ncd;  # Input mapped NCD file
-<design>.ncd;                # Output placed and routed NCD
-<inputdir><design>.pcf;      # Input physical constraints file
-END Program par
-
-#
-# Options for Post Par Trace
-#
-# Type "trce -h" for a detailed list of trce command line options
-#
-Program post_par_trce
--e 3;                 # Produce error report limited to 3 items per constraint
-#-o <design>.twr;     # Output trace report file
--xml <design>.twx;    # Output XML version of the timing report
-#-tsi <design>.tsi;  # Produce Timing Specification Interaction report
-<inputdir><design>.ncd;   # Input placed and routed ncd
-<inputdir><design>.pcf;   # Physical constraints file
-END Program post_par_trce
-
-
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt
deleted file mode 100644
index 982495f..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/etc/xmd_ppc405_0.opt
+++ /dev/null
@@ -1 +0,0 @@
-connect ppc hw -cable type xilinx_parallel port LPT1 frequency 5000000 -debugdevice cpunr 1

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/platgen.opt b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/platgen.opt
deleted file mode 100644
index 1854735..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/platgen.opt
+++ /dev/null
@@ -1,5 +0,0 @@
--p

-xc4vfx12ff668-10

--lang

-vhdl

-system.mhs

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.bsb b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.bsb
deleted file mode 100644
index 12d83ba..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.bsb
+++ /dev/null
@@ -1 +0,0 @@
-„æÄ®Òôtt¦Êè¬ÊäæÒÞÜ@Db`\b\`bDvC„æÄ®Òôtt¦Êè„ÞÂäÈ@D°ÒØÒÜðD@D¬ÒäèÊð@h@š˜h`f@ŠìÂØêÂèÒÞÜ@ ØÂèÌÞäÚD@DbDv,„æÄ®ÒôttªàÈÂèʌ Ž‚@D‚¤†’¨Š†¨ª¤ŠD@DìÒäèÊðhDv,„æÄ®ÒôttªàÈÂèʌ Ž‚@DˆŠ¬’†Š¾¦’´ŠD@DðÆhìÌðbdDv%„æÄ®ÒôttªàÈÂèʌ Ž‚@D ‚†–‚ŽŠD@DÌÌllpDv&„æÄ®ÒôttªàÈÂèʌ Ž‚@D¦ ŠŠˆŽ¤‚ˆŠD@DZb`Dv3„æÄ®Òôtt¦Êè¦òæèÊÚ@DààÆh`j¾ìÒäèÊðh¾àØÄìhlD@Db\``\ÂDv,„æÄ®ÒôttªàÈÂèʆØÞÆÖ@D„ª¦¾Œ¤Š¢D@Db``\``````Dv,„æÄ®ÒôttªàÈÂèʆØÞÆÖ@D†˜–¾Œ¤Š¢D@Db``\``````Dv-„æÄ®ÒôttªàÈÂèʆØÞÆÖ@D ¤ž†¾Œ¤Š¢D@Dd``\``````Dv(„æÄ®ÒôttªàÈÂèʦòæèÊÚ@D¤¦¨¾ ž˜‚¤’¨²D@D`Dv1„æÄ®Òôtt‚ÈÈ äÞÆÊææÞä@DààÆh`j¾`D@DààÆh`j¾ìÒäèÊðhDv/„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DààÆh`j¾`D@D†‚†ŠD@DbDv3„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DààÆh`j¾`D@D†¾ª¦Š¾Œ ªD@DbDv:„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DààÆh`j¾`D@DˆŠ„ªŽ¾’ŒD@DŒ Ž‚@”¨‚ŽDv6„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DààÆh`j¾`D@Dˆž†š@¦’´ŠD@DœžœŠDv6„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DààÆh`j¾`D@D’ž†š@¦’´ŠD@DœžœŠDv2„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DààÆh`j¾`D@Dž†š¾žœ˜²D@D`Dv2„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D¤¦dfd¾ªÂäèD@Dðàæ¾êÂäèØÒèÊDv9„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D†¾„‚ªˆ¤‚¨ŠD@Drl``Dv7„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D†¾ˆ‚¨‚¾„’¨¦D@DpDv8„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D†¾žˆˆ¾ ‚¤’¨²D@D`Dv8„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D†¾ª¦Š¾ ‚¤’¨²D@D`Dv<„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D’ž¨² ŠD@D°’˜¾ª‚¤¨¾¬bDv<„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@Dª¦Š¾’œ¨Š¤¤ª ¨D@D¨¤ªŠDv-„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D˜Šˆæ¾h„ÒèD@Dðàæ¾ÎàÒÞDv;„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D˜Šˆæ¾h„ÒèD@D’ž¨² ŠD@D°’˜¾Ž ’ž¾¬bDv2„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D˜Šˆæ¾ ÞæÒèÒÞÜæD@Dðàæ¾ÎàÒÞDv@„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D˜Šˆæ¾ ÞæÒèÒÞÜæD@D’ž¨² ŠD@D°’˜¾Ž ’ž¾¬bDv9„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D¦ò悆Š¾†ÞÚàÂÆèŒØÂæÐD@Dðàæ¾æòæÂÆÊDvG„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¦ò悆Š¾†ÞÚàÂÆèŒØÂæÐD@D’ž¨² ŠD@D°’˜¾¦²¦‚†Š¾¬bDv+„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D¦¤‚šD@Dðàæ¾ÚÆоÊÚÆDv5„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¦¤‚šD@D’ž¨² ŠD@D°’˜¾Šš†¾¬bDv:„æÄ®ÒôttªàÈÂèʆÂÆÐÊ@DààÆh`j¾`D@D†‚†Š¾†‚œˆ’ˆ‚¨Š¦D@D¦¤‚švDv8„æÄ®ÒôttªàÈÂèʆÂÆÐÊ@DààÆh`j¾`D@D†¾†‚†Š¾„²¨Š¾¦’´ŠD@DblDv9„æÄ®ÒôttªàÈÂèʆÂÆÐÊ@DààÆh`j¾`D@D†¾ˆ†‚†Š¾„²¨Š¾¦’´ŠD@DblDv9„æÄ®ÒôttªàÈÂèʆÂÆÐÊ@DààÆh`j¾`D@Dˆ†‚†Š¾†ž¤Š˜’¦¨D@Dv¦¤‚šDv9„æÄ®ÒôttªàÈÂèʆÂÆÐÊ@DààÆh`j¾`D@D’†‚†Š¾†ž¤Š˜’¦¨D@Dv¦¤‚šDv:„æÄ®ÒôttªàÈÂèʆÂÆÐÊ@DààÆh`j¾`D@D’œ¦¨‚œ†Š¾œ‚šŠD@DààÆh`j¾`Dv/„æÄ®ÒôttªàÈÂèʦ®@D¦®¾ŽŠœŠ¤‚¨Š¾šŠš¨Š¦¨D@DŒ‚˜¦ŠDv1„æÄ®ÒôttªàÈÂèʦ®@D¦®¾ŽŠœŠ¤‚¨Š¾ Š¤’ ¨Š¦¨D@D¨¤ªŠDv)„æÄ®ÒôttªàÈÂèʦ®@D¦®¾ŽŠœŠ¤‚¨Š¾¦®‚  ¦D@DDv7„æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D’œ¦¨‚œ†Š¾œ‚šŠD@DààÆh`j¾`Dv0„æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D¦®¾„žž¨šŠšD@D¦¤‚šDv.„æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D¦®¾¦¨ˆ’œD@DœÞÜÊDv/„æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D¦®¾¦¨ˆžª¨D@DœÞÜÊDv@„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾ˆ‚¨‚¾’œ¦D@D¦¤‚šDvK„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾ˆ‚¨‚¾ ‚¤D@D†¾šŠš`¾„‚¦Š‚ˆˆ¤DvC„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾ ¤žŽ¤‚š¾’œ¦D@D¦¤‚šDvN„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾ ¤žŽ¤‚š¾ ‚¤D@D†¾šŠš`¾„‚¦Š‚ˆˆ¤DvA„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾¦¨‚†–¾’œ¦D@D¦¤‚šDvL„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾¦¨‚†–¾ ‚¤D@D†¾šŠš`¾„‚¦Š‚ˆˆ¤DvC„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾¬Š†¨ž¤¦¾’œ¦D@D¦¤‚šDvN„æÄ®ÒôttªàÈÂèʨÊæè‚àà@D¨Êæè‚àྠÊäÒàÐÊäÂØD@D¦®¾¬Š†¨ž¤¦¾ ‚¤D@D†¾šŠš`¾„‚¦Š‚ˆˆ¤Dv
\ No newline at end of file
diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.make b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.make
deleted file mode 100644
index dd5ce8a..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.make
+++ /dev/null
@@ -1,269 +0,0 @@
-#################################################################

-# Makefile generated by Xilinx Platform Studio 

-# Project:C:\E\temp\rc\3\V5.0.2\FreeRTOS\Demo\PPC405_Xilinx_Virtex4_GCC\system.xmp

-#

-# WARNING : This file will be re-generated every time a command

-# to run a make target is invoked. So, any changes made to this  

-# file manually, will be lost when make is invoked next. 

-#################################################################

-

-# Name of the Microprocessor system

-# The hardware specification of the system is in file :

-# C:\E\temp\rc\3\V5.0.2\FreeRTOS\Demo\PPC405_Xilinx_Virtex4_GCC\system.mhs

-# The software specification of the system is in file :

-# C:\E\temp\rc\3\V5.0.2\FreeRTOS\Demo\PPC405_Xilinx_Virtex4_GCC\system.mss

-

-include system_incl.make

-

-#################################################################

-# PHONY TARGETS

-#################################################################

-.PHONY: dummy

-.PHONY: netlistclean

-.PHONY: bitsclean

-.PHONY: simclean

-.PHONY: vpclean

-

-#################################################################

-# EXTERNAL TARGETS

-#################################################################

-all:

-	@echo "Makefile to build a Microprocessor system :"

-	@echo "Run make with any of the following targets"

-	@echo " "

-	@echo "  netlist  : Generates the netlist for the given MHS "

-	@echo "  bits     : Runs Implementation tools to generate the bitstream"

-	@echo " "

-	@echo "  libs     : Configures the sw libraries for this system"

-	@echo "  program  : Compiles the program sources for all the processor instances"

-	@echo " "

-	@echo "  init_bram: Initializes bitstream with BRAM data"

-	@echo "  ace      : Generate ace file from bitstream and elf"

-	@echo "  download : Downloads the bitstream onto the board"

-	@echo " "

-	@echo "  sim      : Generates HDL simulation models and runs simulator for chosen simulation mode"

-	@echo "  simmodel : Generates HDL simulation models for chosen simulation mode"

-	@echo "  behavioral_model : Generates behavioral HDL models with BRAM initialization"

-	@echo "  structural_model : Generates structural simulation HDL models with BRAM initialization"

-	@echo "  timing   : Generates timing simulation HDL models with BRAM initialization"

-	@echo "  vp       : Generates virtual platform model"

-	@echo " "

-	@echo "  netlistclean: Deletes netlist"

-	@echo "  bitsclean: Deletes bit, ncd, bmm files"

-	@echo "  hwclean  : Deletes implementation dir"

-	@echo "  libsclean: Deletes sw libraries"

-	@echo "  programclean: Deletes compiled ELF files"

-	@echo "  swclean  : Deletes sw libraries and ELF files"

-	@echo "  simclean : Deletes simulation dir"

-	@echo "  vpclean  : Deletes virtualplatform dir"

-	@echo "  clean    : Deletes all generated files/directories"

-	@echo " "

-	@echo "  make <target> : (Default)"

-	@echo "      Creates a Microprocessor system using default initializations"

-	@echo "      specified for each processor in MSS file"

-

-

-bits: $(SYSTEM_BIT)

-

-ace: $(SYSTEM_ACE)

-

-netlist: $(POSTSYN_NETLIST)

-

-libs: $(LIBRARIES)

-

-program: $(ALL_USER_ELF_FILES)

-

-download: $(DOWNLOAD_BIT) dummy

-	@echo "*********************************************"

-	@echo "Downloading Bitstream onto the target board"

-	@echo "*********************************************"

-	impact -batch etc/download.cmd

-

-init_bram: $(DOWNLOAD_BIT)

-

-sim: $(DEFAULT_SIM_SCRIPT)

-	cd simulation/behavioral; \

-	$(SIM_CMD)  &

-

-simmodel: $(DEFAULT_SIM_SCRIPT)

-

-behavioral_model: $(BEHAVIORAL_SIM_SCRIPT)

-

-structural_model: $(STRUCTURAL_SIM_SCRIPT)

-

-vp: $(VPEXEC)

-

-clean: hwclean libsclean programclean simclean vpclean

-	rm -f _impact.cmd

-	rm -f *.log

-

-hwclean: netlistclean bitsclean

-	rm -rf implementation synthesis xst hdl

-	rm -rf xst.srp $(SYSTEM).srp

-

-netlistclean:

-	rm -f $(POSTSYN_NETLIST)

-	rm -f platgen.log

-	rm -f $(BMM_FILE)

-

-bitsclean:

-	rm -f $(SYSTEM_BIT)

-	rm -f implementation/$(SYSTEM).ncd

-	rm -f implementation/$(SYSTEM)_bd.bmm 

-	rm -f implementation/$(SYSTEM)_map.ncd 

-

-simclean: 

-	rm -rf simulation/behavioral

-	rm -f simgen.log

-

-swclean: libsclean programclean

-	@echo ""

-

-libsclean: $(LIBSCLEAN_TARGETS)

-	rm -f libgen.log

-

-programclean: $(PROGRAMCLEAN_TARGETS)

-

-vpclean:

-	rm -rf virtualplatform

-	rm -f vpgen.log

-

-#################################################################

-# SOFTWARE PLATFORM FLOW

-#################################################################

-

-

-$(LIBRARIES): $(MHSFILE) $(MSSFILE) __xps/libgen.opt

-	@echo "*********************************************"

-	@echo "Creating software libraries..."

-	@echo "*********************************************"

-	libgen $(LIBGEN_OPTIONS) $(MSSFILE)

-

-

-ppc405_0_libsclean:

-	rm -rf ppc405_0/

-

-#################################################################

-# SOFTWARE APPLICATION RTOSDEMO

-#################################################################

-

-RTOSDemo_program: $(RTOSDEMO_OUTPUT) 

-

-$(RTOSDEMO_OUTPUT) : $(RTOSDEMO_SOURCES) $(RTOSDEMO_HEADERS) $(RTOSDEMO_LINKER_SCRIPT) \

-                    $(LIBRARIES) __xps/rtosdemo_compiler.opt

-	@mkdir -p $(RTOSDEMO_OUTPUT_DIR) 

-	$(RTOSDEMO_CC) $(RTOSDEMO_CC_OPT) $(RTOSDEMO_SOURCES) -o $(RTOSDEMO_OUTPUT) \

-	$(RTOSDEMO_OTHER_CC_FLAGS) $(RTOSDEMO_INCLUDES) $(RTOSDEMO_LIBPATH) \

-	$(RTOSDEMO_CFLAGS) $(RTOSDEMO_LFLAGS) 

-	$(RTOSDEMO_CC_SIZE) $(RTOSDEMO_OUTPUT) 

-	@echo ""

-

-RTOSDemo_programclean:

-	rm -f $(RTOSDEMO_OUTPUT) 

-

-#################################################################

-# BOOTLOOP ELF FILES

-#################################################################

-

-

-

-$(PPC405_0_BOOTLOOP): $(PPC405_BOOTLOOP)

-	@mkdir -p $(BOOTLOOP_DIR)

-	cp -f $(PPC405_BOOTLOOP) $(PPC405_0_BOOTLOOP)

-

-#################################################################

-# HARDWARE IMPLEMENTATION FLOW

-#################################################################

-

-

-$(BMM_FILE) \

-$(WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \

-                      $(CORE_STATE_DEVELOPMENT_FILES)

-	@echo "****************************************************"

-	@echo "Creating system netlist for hardware specification.."

-	@echo "****************************************************"

-	platgen $(PLATGEN_OPTIONS) $(MHSFILE)

-

-$(POSTSYN_NETLIST): $(WRAPPER_NGC_FILES)

-	@echo "Running synthesis..."

-	bash -c "cd synthesis; ./synthesis.sh"

-

-__xps/$(SYSTEM)_routed: $(FPGA_IMP_DEPENDENCY)

-	@echo "*********************************************"

-	@echo "Running Xilinx Implementation tools.."

-	@echo "*********************************************"

-	@cp -f $(UCF_FILE) implementation/$(SYSTEM).ucf

-	xilperl $(NON_CYG_XILINX_EDK_DIR)/data/fpga_impl/manage_fastruntime_opt.pl $(MANAGE_FASTRT_OPTIONS)

-	xflow -wd implementation -p $(DEVICE) -implement xflow.opt $(SYSTEM).ngc

-	touch __xps/$(SYSTEM)_routed

-

-$(SYSTEM_BIT): __xps/$(SYSTEM)_routed

-	xilperl $(NON_CYG_XILINX_EDK_DIR)/data/fpga_impl/observe_par.pl $(OBSERVE_PAR_OPTIONS) implementation/$(SYSTEM).par

-	@echo "*********************************************"

-	@echo "Running Bitgen.."

-	@echo "*********************************************"

-	@cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut

-	cd implementation; bitgen -w -f bitgen.ut $(SYSTEM)

-

-$(DOWNLOAD_BIT): $(SYSTEM_BIT) $(BRAMINIT_ELF_FILES) __xps/bitinit.opt

-	# @cp -f implementation/$(SYSTEM)_bd.bmm .

-	@echo "*********************************************"

-	@echo "Initializing BRAM contents of the bitstream"

-	@echo "*********************************************"

-	bitinit $(MHSFILE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) \

-	-bt $(SYSTEM_BIT) -o $(DOWNLOAD_BIT)

-	@rm -f $(SYSTEM)_bd.bmm

-

-$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(RTOSDEMO_OUTPUT) 

-	@echo "*********************************************"

-	@echo "Creating system ace file"

-	@echo "*********************************************"

-	xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(RTOSDEMO_OUTPUT)  -target ppc_hw  -ace $(SYSTEM_ACE)

-

-#################################################################

-# SIMULATION FLOW

-#################################################################

-

-

-################## BEHAVIORAL SIMULATION ##################

-

-$(BEHAVIORAL_SIM_SCRIPT): $(MHSFILE) __xps/simgen.opt \

-                          $(BRAMINIT_ELF_FILES)

-	@echo "*********************************************"

-	@echo "Creating behavioral simulation models..."

-	@echo "*********************************************"

-	simgen $(SIMGEN_OPTIONS) -m behavioral $(MHSFILE)

-

-################## STRUCTURAL SIMULATION ##################

-

-$(STRUCTURAL_SIM_SCRIPT): $(WRAPPER_NGC_FILES) __xps/simgen.opt \

-                          $(BRAMINIT_ELF_FILES)

-	@echo "*********************************************"

-	@echo "Creating structural simulation models..."

-	@echo "*********************************************"

-	simgen $(SIMGEN_OPTIONS) -sd implementation -m structural $(MHSFILE)

-

-

-################## TIMING SIMULATION ##################

-

-$(TIMING_SIM_SCRIPT): $(SYSTEM_BIT) __xps/simgen.opt \

-                      $(BRAMINIT_ELF_FILES)

-	@echo "*********************************************"

-	@echo "Creating timing simulation models..."

-	@echo "*********************************************"

-	simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE)

-

-#################################################################

-# VIRTUAL PLATFORM FLOW

-#################################################################

-

-

-$(VPEXEC): $(MHSFILE) __xps/vpgen.opt

-	@echo "****************************************************"

-	@echo "Creating virtual platform for hardware specification.."

-	@echo "****************************************************"

-	vpgen $(VPGEN_OPTIONS) $(MHSFILE)

-

-dummy:

-	@echo ""

-

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.mhs b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.mhs
deleted file mode 100644
index 064842c..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.mhs
+++ /dev/null
@@ -1,210 +0,0 @@
-

-# ##############################################################################

-# Created by Base System Builder Wizard for Xilinx EDK 10.1.01 Build EDK_K_SP1.3

-# Fri May 09 11:01:33 2008

-# Target Board:  Xilinx Virtex 4 ML403 Evaluation Platform Rev 1

-# Family:    virtex4

-# Device:    xc4vfx12

-# Package:   ff668

-# Speed Grade:  -10

-# Processor: ppc405_0

-# Processor clock frequency: 200.00 MHz

-# Bus clock frequency: 100.00 MHz

-# Total Off Chip Memory :   1 MB

-# - SRAM =   1 MB

-# ##############################################################################

- PARAMETER VERSION = 2.1.0

-

-

- PORT fpga_0_RS232_Uart_RX_pin = fpga_0_RS232_Uart_RX, DIR = I

- PORT fpga_0_RS232_Uart_TX_pin = fpga_0_RS232_Uart_TX, DIR = O

- PORT fpga_0_LEDs_4Bit_GPIO_IO_pin = fpga_0_LEDs_4Bit_GPIO_IO, DIR = IO, VEC = [0:3]

- PORT fpga_0_LEDs_Positions_GPIO_IO_pin = fpga_0_LEDs_Positions_GPIO_IO, DIR = IO, VEC = [0:4]

- PORT fpga_0_SysACE_CompactFlash_SysACE_CLK_pin = fpga_0_SysACE_CompactFlash_SysACE_CLK, DIR = I

- PORT fpga_0_SysACE_CompactFlash_SysACE_MPA_pin = fpga_0_SysACE_CompactFlash_SysACE_MPA, DIR = O, VEC = [6:1]

- PORT fpga_0_SysACE_CompactFlash_SysACE_MPD_pin = fpga_0_SysACE_CompactFlash_SysACE_MPD, DIR = IO, VEC = [15:0]

- PORT fpga_0_SysACE_CompactFlash_SysACE_CEN_pin = fpga_0_SysACE_CompactFlash_SysACE_CEN, DIR = O

- PORT fpga_0_SysACE_CompactFlash_SysACE_OEN_pin = fpga_0_SysACE_CompactFlash_SysACE_OEN, DIR = O

- PORT fpga_0_SysACE_CompactFlash_SysACE_WEN_pin = fpga_0_SysACE_CompactFlash_SysACE_WEN, DIR = O

- PORT fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin = fpga_0_SysACE_CompactFlash_SysACE_MPIRQ, DIR = I

- PORT fpga_0_SRAM_Mem_A_pin = fpga_0_SRAM_Mem_A, DIR = O, VEC = [9:29]

- PORT fpga_0_SRAM_Mem_BEN_pin = fpga_0_SRAM_Mem_BEN, DIR = O, VEC = [0:3]

- PORT fpga_0_SRAM_Mem_WEN_pin = fpga_0_SRAM_Mem_WEN, DIR = O

- PORT fpga_0_SRAM_Mem_DQ_pin = fpga_0_SRAM_Mem_DQ, DIR = IO, VEC = [0:31]

- PORT fpga_0_SRAM_Mem_OEN_pin = fpga_0_SRAM_Mem_OEN, DIR = O, VEC = [0:0]

- PORT fpga_0_SRAM_Mem_CEN_pin = fpga_0_SRAM_Mem_CEN, DIR = O, VEC = [0:0]

- PORT fpga_0_SRAM_Mem_ADV_LDN_pin = fpga_0_SRAM_Mem_ADV_LDN, DIR = O

- PORT fpga_0_SRAM_CLOCK = sys_clk_s, DIR = O

- PORT sys_clk_pin = dcm_clk_s, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000

- PORT sys_rst_pin = sys_rst_s, DIR = I, RST_POLARITY = 0, SIGIS = RST

-

-

-BEGIN ppc405_virtex4

- PARAMETER INSTANCE = ppc405_0

- PARAMETER HW_VER = 2.01.a

- PARAMETER C_FASTEST_PLB_CLOCK = DPLB0

- PARAMETER C_APU_CONTROL = 0b0000000000000001

- PARAMETER C_IDCR_BASEADDR = 0b0100000000

- PARAMETER C_IDCR_HIGHADDR = 0b0111111111

- BUS_INTERFACE JTAGPPC = jtagppc_0_0

- BUS_INTERFACE IPLB0 = plb

- BUS_INTERFACE DPLB0 = plb

- BUS_INTERFACE RESETPPC = ppc_reset_bus

- PORT CPMC405CLOCK = proc_clk_s

- PORT EICC405EXTINPUTIRQ = EICC405EXTINPUTIRQ

-END

-

-BEGIN jtagppc_cntlr

- PARAMETER INSTANCE = jtagppc_0

- PARAMETER HW_VER = 2.01.a

- BUS_INTERFACE JTAGPPC0 = jtagppc_0_0

-END

-

-BEGIN plb_v46

- PARAMETER INSTANCE = plb

- PARAMETER C_DCR_INTFCE = 0

- PARAMETER C_NUM_CLK_PLB2OPB_REARB = 100

- PARAMETER HW_VER = 1.02.a

- PORT PLB_Clk = sys_clk_s

- PORT SYS_Rst = sys_bus_reset

-END

-

-BEGIN xps_uartlite

- PARAMETER INSTANCE = RS232_Uart

- PARAMETER HW_VER = 1.00.a

- PARAMETER C_BAUDRATE = 9600

- PARAMETER C_DATA_BITS = 8

- PARAMETER C_ODD_PARITY = 0

- PARAMETER C_USE_PARITY = 0

- PARAMETER C_SPLB_CLK_FREQ_HZ = 100000000

- PARAMETER C_BASEADDR = 0x84000000

- PARAMETER C_HIGHADDR = 0x8400ffff

- BUS_INTERFACE SPLB = plb

- PORT RX = fpga_0_RS232_Uart_RX

- PORT TX = fpga_0_RS232_Uart_TX

- PORT Interrupt = RS232_Uart_Interrupt

-END

-

-BEGIN xps_gpio

- PARAMETER INSTANCE = LEDs_4Bit

- PARAMETER HW_VER = 1.00.a

- PARAMETER C_GPIO_WIDTH = 4

- PARAMETER C_IS_DUAL = 0

- PARAMETER C_IS_BIDIR = 1

- PARAMETER C_ALL_INPUTS = 0

- PARAMETER C_BASEADDR = 0x81400000

- PARAMETER C_HIGHADDR = 0x8140ffff

- BUS_INTERFACE SPLB = plb

- PORT GPIO_IO = fpga_0_LEDs_4Bit_GPIO_IO

-END

-

-BEGIN xps_gpio

- PARAMETER INSTANCE = LEDs_Positions

- PARAMETER HW_VER = 1.00.a

- PARAMETER C_GPIO_WIDTH = 5

- PARAMETER C_IS_DUAL = 0

- PARAMETER C_IS_BIDIR = 1

- PARAMETER C_ALL_INPUTS = 0

- PARAMETER C_BASEADDR = 0x81420000

- PARAMETER C_HIGHADDR = 0x8142ffff

- BUS_INTERFACE SPLB = plb

- PORT GPIO_IO = fpga_0_LEDs_Positions_GPIO_IO

-END

-

-BEGIN xps_sysace

- PARAMETER INSTANCE = SysACE_CompactFlash

- PARAMETER HW_VER = 1.00.a

- PARAMETER C_MEM_WIDTH = 16

- PARAMETER C_BASEADDR = 0x83600000

- PARAMETER C_HIGHADDR = 0x8360ffff

- BUS_INTERFACE SPLB = plb

- PORT SysACE_CLK = fpga_0_SysACE_CompactFlash_SysACE_CLK

- PORT SysACE_MPA = fpga_0_SysACE_CompactFlash_SysACE_MPA & SysACE_CompactFlash_SysACE_MPA

- PORT SysACE_MPD = fpga_0_SysACE_CompactFlash_SysACE_MPD

- PORT SysACE_CEN = fpga_0_SysACE_CompactFlash_SysACE_CEN

- PORT SysACE_OEN = fpga_0_SysACE_CompactFlash_SysACE_OEN

- PORT SysACE_WEN = fpga_0_SysACE_CompactFlash_SysACE_WEN

- PORT SysACE_MPIRQ = fpga_0_SysACE_CompactFlash_SysACE_MPIRQ

-END

-

-BEGIN xps_mch_emc

- PARAMETER INSTANCE = SRAM

- PARAMETER HW_VER = 1.01.a

- PARAMETER C_MCH_PLB_CLK_PERIOD_PS = 10000

- PARAMETER C_NUM_BANKS_MEM = 1

- PARAMETER C_MAX_MEM_WIDTH = 32

- PARAMETER C_INCLUDE_NEGEDGE_IOREGS = 1

- PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1

- PARAMETER C_MEM0_WIDTH = 32

- PARAMETER C_SYNCH_MEM_0 = 1

- PARAMETER C_TCEDV_PS_MEM_0 = 0

- PARAMETER C_TWC_PS_MEM_0 = 0

- PARAMETER C_TAVDV_PS_MEM_0 = 0

- PARAMETER C_TWP_PS_MEM_0 = 0

- PARAMETER C_THZCE_PS_MEM_0 = 0

- PARAMETER C_TLZWE_PS_MEM_0 = 0

- PARAMETER C_MEM0_BASEADDR = 0xfff00000

- PARAMETER C_MEM0_HIGHADDR = 0xffffffff

- BUS_INTERFACE SPLB = plb

- PORT Mem_A = fpga_0_SRAM_Mem_A_split

- PORT Mem_BEN = fpga_0_SRAM_Mem_BEN

- PORT Mem_WEN = fpga_0_SRAM_Mem_WEN

- PORT Mem_DQ = fpga_0_SRAM_Mem_DQ

- PORT Mem_OEN = fpga_0_SRAM_Mem_OEN

- PORT Mem_CEN = fpga_0_SRAM_Mem_CEN

- PORT Mem_ADV_LDN = fpga_0_SRAM_Mem_ADV_LDN

- PORT RdClk = sys_clk_s

-END

-

-BEGIN util_bus_split

- PARAMETER INSTANCE = SRAM_util_bus_split_0

- PARAMETER HW_VER = 1.00.a

- PARAMETER C_SIZE_IN = 32

- PARAMETER C_LEFT_POS = 9

- PARAMETER C_SPLIT = 30

- PORT Sig = fpga_0_SRAM_Mem_A_split

- PORT Out1 = fpga_0_SRAM_Mem_A

-END

-

-BEGIN clock_generator

- PARAMETER INSTANCE = clock_generator_0

- PARAMETER HW_VER = 2.01.a

- PARAMETER C_EXT_RESET_HIGH = 1

- PARAMETER C_CLKIN_FREQ = 100000000

- PARAMETER C_CLKOUT0_FREQ = 200000000

- PARAMETER C_CLKOUT0_BUF = TRUE

- PARAMETER C_CLKOUT0_PHASE = 0

- PARAMETER C_CLKOUT0_GROUP = NONE

- PARAMETER C_CLKOUT1_FREQ = 100000000

- PARAMETER C_CLKOUT1_BUF = TRUE

- PARAMETER C_CLKOUT1_PHASE = 0

- PARAMETER C_CLKOUT1_GROUP = NONE

- PORT CLKOUT0 = proc_clk_s

- PORT CLKOUT1 = sys_clk_s

- PORT CLKIN = dcm_clk_s

- PORT LOCKED = Dcm_all_locked

- PORT RST = net_gnd

-END

-

-BEGIN proc_sys_reset

- PARAMETER INSTANCE = proc_sys_reset_0

- PARAMETER HW_VER = 2.00.a

- PARAMETER C_EXT_RESET_HIGH = 0

- BUS_INTERFACE RESETPPC0 = ppc_reset_bus

- PORT Slowest_sync_clk = sys_clk_s

- PORT Dcm_locked = Dcm_all_locked

- PORT Ext_Reset_In = sys_rst_s

- PORT Bus_Struct_Reset = sys_bus_reset

- PORT Peripheral_Reset = sys_periph_reset

-END

-

-BEGIN xps_intc

- PARAMETER INSTANCE = xps_intc_0

- PARAMETER HW_VER = 1.00.a

- PARAMETER C_BASEADDR = 0x81800000

- PARAMETER C_HIGHADDR = 0x8180ffff

- BUS_INTERFACE SPLB = plb

- PORT Irq = EICC405EXTINPUTIRQ

- PORT Intr = RS232_Uart_Interrupt

-END

-

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.mss b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.mss
deleted file mode 100644
index f4320f3..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.mss
+++ /dev/null
@@ -1,82 +0,0 @@
-

- PARAMETER VERSION = 2.2.0

-

-

-BEGIN OS

- PARAMETER OS_NAME = standalone

- PARAMETER OS_VER = 2.00.a

- PARAMETER PROC_INSTANCE = ppc405_0

-END

-

-

-BEGIN PROCESSOR

- PARAMETER DRIVER_NAME = cpu_ppc405

- PARAMETER DRIVER_VER = 1.10.a

- PARAMETER HW_INSTANCE = ppc405_0

- PARAMETER COMPILER = powerpc-eabi-gcc

- PARAMETER ARCHIVER = powerpc-eabi-ar

- PARAMETER CORE_CLOCK_FREQ_HZ = 200000000

-END

-

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = generic

- PARAMETER DRIVER_VER = 1.00.a

- PARAMETER HW_INSTANCE = jtagppc_0

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = uartlite

- PARAMETER DRIVER_VER = 1.13.a

- PARAMETER HW_INSTANCE = RS232_Uart

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = gpio

- PARAMETER DRIVER_VER = 2.12.a

- PARAMETER HW_INSTANCE = LEDs_4Bit

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = gpio

- PARAMETER DRIVER_VER = 2.12.a

- PARAMETER HW_INSTANCE = LEDs_Positions

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = sysace

- PARAMETER DRIVER_VER = 1.11.a

- PARAMETER HW_INSTANCE = SysACE_CompactFlash

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = emc

- PARAMETER DRIVER_VER = 2.00.a

- PARAMETER HW_INSTANCE = SRAM

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = generic

- PARAMETER DRIVER_VER = 1.00.a

- PARAMETER HW_INSTANCE = SRAM_util_bus_split_0

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = generic

- PARAMETER DRIVER_VER = 1.00.a

- PARAMETER HW_INSTANCE = clock_generator_0

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = generic

- PARAMETER DRIVER_VER = 1.00.a

- PARAMETER HW_INSTANCE = proc_sys_reset_0

-END

-

-BEGIN DRIVER

- PARAMETER DRIVER_NAME = intc

- PARAMETER DRIVER_VER = 1.11.a

- PARAMETER HW_INSTANCE = xps_intc_0

-END

-

-

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.xmp b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.xmp
deleted file mode 100644
index 4a7a93c..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system.xmp
+++ /dev/null
@@ -1,74 +0,0 @@
-#Please do not modify this file by hand

-XmpVersion: 10.1.01

-VerMgmt: 10.1.01

-IntStyle: default

-MHS File: system.mhs

-MSS File: system.mss

-NPL File: projnav/system.ise

-Architecture: virtex4

-Device: xc4vfx12

-Package: ff668

-SpeedGrade: -10

-UserCmd1: 

-UserCmd1Type: 0

-UserCmd2: 

-UserCmd2Type: 0

-TopInst: system_i

-GenSimTB: 0

-InsertNoPads: 0

-WarnForEAArch: 1

-HdlLang: VHDL

-Simulator: mti

-SimModel: BEHAVIORAL

-MixLangSim: 1

-UcfFile: data/system.ucf

-FpgaImpMode: 0

-EnableParTimingError: 1

-EnableResetOptimization: 0

-ShowLicenseDialog: 1

-ICacheAddr: SRAM,

-DCacheAddr: SRAM,

-Processor: ppc405_0

-BootLoop: 1

-XmdStub: 0

-SwProj: RTOSDemo

-Processor: ppc405_0

-Executable: RTOSDemo/executable.elf

-Source: RTOSDemo/../../Common/Minimal/BlockQ.c

-Source: RTOSDemo/../../Common/Minimal/blocktim.c

-Source: RTOSDemo/../../Common/Minimal/comtest.c

-Source: RTOSDemo/../../Common/Minimal/countsem.c

-Source: RTOSDemo/../../Common/Minimal/death.c

-Source: RTOSDemo/../../Common/Minimal/dynamic.c

-Source: RTOSDemo/../../Common/Minimal/flash.c

-Source: RTOSDemo/../../Common/Minimal/GenQTest.c

-Source: RTOSDemo/../../Common/Minimal/integer.c

-Source: RTOSDemo/../../Common/Minimal/QPeek.c

-Source: RTOSDemo/../../Common/Minimal/recmutex.c

-Source: RTOSDemo/../../Common/Minimal/semtest.c

-Source: RTOSDemo/../../../Source/tasks.c

-Source: RTOSDemo/../../../Source/list.c

-Source: RTOSDemo/../../../Source/queue.c

-Source: RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/port.c

-Source: RTOSDemo/main.c

-Source: RTOSDemo/serial/serial.c

-Source: RTOSDemo/partest/partest.c

-Source: RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/portasm.S

-Source: RTOSDemo/../../../Source/portable/MemMang/heap_2.c

-Source: RTOSDemo/flop/flop.c

-Source: RTOSDemo/flop/flop-reg-test.c

-Header: RTOSDemo/FreeRTOSConfig.h

-DefaultInit: EXECUTABLE

-InitBram: 0

-Active: 1

-CompilerOptLevel: 0

-GlobPtrOpt: 0

-DebugSym: 1

-ProfileFlag: 0

-ProgStart: 

-StackSize: 

-HeapSize: 

-LinkerScript: RTOSDemo/RTOSDemo_linker_script.ld

-ProgCCFlags: -I./RTOSDemo/flop -I../../Source/portable/GCC/PPC405_Xilinx -I./ppc405_0/include/  -IRTOSDemo/   -I. -I./RTOSDemo/ -I../Common/include/ -I../../Source/include/ -I./ppc405_0/include/ -I./ppc405_0/include -D GCC_PPC405 -mregnames

-CompileInXps: 1

-NonXpsApp: 0

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system_incl.make b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system_incl.make
deleted file mode 100644
index fc6e115..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/system_incl.make
+++ /dev/null
@@ -1,142 +0,0 @@
-#################################################################

-# Makefile generated by Xilinx Platform Studio 

-# Project:C:\E\temp\rc\3\V5.0.2\FreeRTOS\Demo\PPC405_Xilinx_Virtex4_GCC\system.xmp

-#

-# WARNING : This file will be re-generated every time a command

-# to run a make target is invoked. So, any changes made to this  

-# file manually, will be lost when make is invoked next. 

-#################################################################

-

-XILINX_EDK_DIR = /cygdrive/c/devtools/Xilinx/10.1/EDK

-NON_CYG_XILINX_EDK_DIR = C:/devtools/Xilinx/10.1/EDK

-

-SYSTEM = system

-

-MHSFILE = system.mhs

-

-MSSFILE = system.mss

-

-FPGA_ARCH = virtex4

-

-DEVICE = xc4vfx12ff668-10

-

-LANGUAGE = vhdl

-

-SEARCHPATHOPT = 

-

-SUBMODULE_OPT = 

-

-PLATGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT)

-

-LIBGEN_OPTIONS = -mhs $(MHSFILE) -p $(DEVICE) $(SEARCHPATHOPT)

-

-VPGEN_OPTIONS = -p $(DEVICE) $(SEARCHPATHOPT)

-

-MANAGE_FASTRT_OPTIONS = -reduce_fanout no

-

-OBSERVE_PAR_OPTIONS = -error yes

-

-RTOSDEMO_OUTPUT_DIR = RTOSDemo

-RTOSDEMO_OUTPUT = $(RTOSDEMO_OUTPUT_DIR)/executable.elf

-

-MICROBLAZE_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop.elf

-PPC405_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc405/ppc_bootloop.elf

-PPC440_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc440/ppc440_bootloop.elf

-BOOTLOOP_DIR = bootloops

-

-PPC405_0_BOOTLOOP = $(BOOTLOOP_DIR)/ppc405_0.elf

-

-BRAMINIT_ELF_FILES =  

-BRAMINIT_ELF_FILE_ARGS =  

-

-ALL_USER_ELF_FILES = $(RTOSDEMO_OUTPUT) 

-

-SIM_CMD = vsim

-

-BEHAVIORAL_SIM_SCRIPT = simulation/behavioral/$(SYSTEM)_setup.do

-

-STRUCTURAL_SIM_SCRIPT = simulation/structural/$(SYSTEM)_setup.do

-

-TIMING_SIM_SCRIPT = simulation/timing/$(SYSTEM)_setup.do

-

-DEFAULT_SIM_SCRIPT = $(BEHAVIORAL_SIM_SCRIPT)

-

-MIX_LANG_SIM_OPT = -mixed yes

-

-SIMGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) $(MIX_LANG_SIM_OPT)  -s mti -X C:/E/temp/rc/3/V5.0.2/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/ -E C:/E/temp/rc/3/V5.0.2/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/

-

-

-LIBRARIES =  \

-       ppc405_0/lib/libxil.a 

-VPEXEC = virtualplatform/vpexec.exe

-

-LIBSCLEAN_TARGETS = ppc405_0_libsclean 

-

-PROGRAMCLEAN_TARGETS = RTOSDemo_programclean 

-

-CORE_STATE_DEVELOPMENT_FILES = 

-

-WRAPPER_NGC_FILES = implementation/ppc405_0_wrapper.ngc \
-implementation/jtagppc_0_wrapper.ngc \
-implementation/plb_wrapper.ngc \
-implementation/rs232_uart_wrapper.ngc \
-implementation/leds_4bit_wrapper.ngc \
-implementation/leds_positions_wrapper.ngc \
-implementation/sysace_compactflash_wrapper.ngc \
-implementation/sram_wrapper.ngc \
-implementation/sram_util_bus_split_0_wrapper.ngc \
-implementation/clock_generator_0_wrapper.ngc \
-implementation/proc_sys_reset_0_wrapper.ngc \
-implementation/xps_intc_0_wrapper.ngc

-

-POSTSYN_NETLIST = implementation/$(SYSTEM).ngc

-

-SYSTEM_BIT = implementation/$(SYSTEM).bit

-

-DOWNLOAD_BIT = implementation/download.bit

-

-SYSTEM_ACE = implementation/$(SYSTEM).ace

-

-UCF_FILE = data/system.ucf

-

-BMM_FILE = implementation/$(SYSTEM).bmm

-

-BITGEN_UT_FILE = etc/bitgen.ut

-

-XFLOW_OPT_FILE = etc/fast_runtime.opt

-XFLOW_DEPENDENCY = __xps/xpsxflow.opt $(XFLOW_OPT_FILE)

-

-XPLORER_DEPENDENCY = __xps/xplorer.opt

-XPLORER_OPTIONS = -p $(DEVICE) -uc $(SYSTEM).ucf -bm $(SYSTEM).bmm -max_runs 7

-

-FPGA_IMP_DEPENDENCY = $(BMM_FILE) $(POSTSYN_NETLIST) $(UCF_FILE) $(BITGEN_UT_FILE) $(XFLOW_DEPENDENCY)

-

-#################################################################

-# SOFTWARE APPLICATION RTOSDEMO

-#################################################################

-

-RTOSDEMO_SOURCES = RTOSDemo/../../Common/Minimal/BlockQ.c RTOSDemo/../../Common/Minimal/blocktim.c RTOSDemo/../../Common/Minimal/comtest.c RTOSDemo/../../Common/Minimal/countsem.c RTOSDemo/../../Common/Minimal/death.c RTOSDemo/../../Common/Minimal/dynamic.c RTOSDemo/../../Common/Minimal/flash.c RTOSDemo/../../Common/Minimal/GenQTest.c RTOSDemo/../../Common/Minimal/integer.c RTOSDemo/../../Common/Minimal/QPeek.c RTOSDemo/../../Common/Minimal/recmutex.c RTOSDemo/../../Common/Minimal/semtest.c RTOSDemo/../../../Source/tasks.c RTOSDemo/../../../Source/list.c RTOSDemo/../../../Source/queue.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/port.c RTOSDemo/main.c RTOSDemo/serial/serial.c RTOSDemo/partest/partest.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/portasm.S RTOSDemo/../../../Source/portable/MemMang/heap_2.c RTOSDemo/flop/flop.c RTOSDemo/flop/flop-reg-test.c

-

-RTOSDEMO_HEADERS = RTOSDemo/FreeRTOSConfig.h 

-

-RTOSDEMO_CC = powerpc-eabi-gcc

-RTOSDEMO_CC_SIZE = powerpc-eabi-size

-RTOSDEMO_CC_OPT = -O0

-RTOSDEMO_CFLAGS = -I./RTOSDemo/flop -I../../Source/portable/GCC/PPC405_Xilinx -I./ppc405_0/include/  -IRTOSDemo/   -I. -I./RTOSDemo/ -I../Common/include/ -I../../Source/include/ -I./ppc405_0/include/ -I./ppc405_0/include -D GCC_PPC405 -mregnames

-RTOSDEMO_CC_SEARCH = # -B

-RTOSDEMO_LIBPATH = -L./ppc405_0/lib/ # -L

-RTOSDEMO_INCLUDES = -I./ppc405_0/include/  -IRTOSDemo/ # -I

-RTOSDEMO_LFLAGS = # -l

-RTOSDEMO_LINKER_SCRIPT = RTOSDemo/RTOSDemo_linker_script.ld

-RTOSDEMO_LINKER_SCRIPT_FLAG = -Wl,-T -Wl,$(RTOSDEMO_LINKER_SCRIPT) 

-RTOSDEMO_CC_DEBUG_FLAG =  -g 

-RTOSDEMO_CC_PROFILE_FLAG = # -pg

-RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi

-RTOSDEMO_CC_INFERRED_FLAGS= 

-RTOSDEMO_CC_START_ADDR_FLAG=  #  # -Wl,-defsym -Wl,_START_ADDR=

-RTOSDEMO_CC_STACK_SIZE_FLAG=  #  # -Wl,-defsym -Wl,_STACK_SIZE=

-RTOSDEMO_CC_HEAP_SIZE_FLAG=  #  # -Wl,-defsym -Wl,_HEAP_SIZE=

-RTOSDEMO_OTHER_CC_FLAGS= $(RTOSDEMO_CC_GLOBPTR_FLAG)  \

-                  $(RTOSDEMO_CC_START_ADDR_FLAG) $(RTOSDEMO_CC_STACK_SIZE_FLAG) $(RTOSDEMO_CC_HEAP_SIZE_FLAG)  \

-                  $(RTOSDEMO_CC_INFERRED_FLAGS)  \

-                  $(RTOSDEMO_LINKER_SCRIPT_FLAG) $(RTOSDEMO_CC_DEBUG_FLAG) $(RTOSDEMO_CC_PROFILE_FLAG) 

diff --git a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/wizlog b/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/wizlog
deleted file mode 100644
index 3f4f483..0000000
--- a/FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/wizlog
+++ /dev/null
@@ -1,3 +0,0 @@
-WARNING:MDT - ppc405_virtex4 (ppc405_0) -

-   C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\PPC405_FPU_Xilinx_Virtex4_GCC\dump.mhs

-   line 28 - ADDRESS specified by PARAMETER C_IDCR_BASEADDR is ignored
diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/EMAClISR.s79 b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/EMAClISR.s79
deleted file mode 100644
index 48ae48b..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/EMAClISR.s79
+++ /dev/null
@@ -1,93 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-		RSEG ICODE:CODE

-		CODE32

-

-		EXTERN vEMACISR

-		PUBLIC vEMACISREntry

-

-; Wrapper for the EMAC interrupt service routine.  This can cause a

-; context switch so requires an assembly wrapper.

-

-; Defines the portSAVE_CONTEXT and portRESTORE_CONTEXT macros.

-#include "ISR_Support.h"

-

-vEMACISREntry:

-

-	portSAVE_CONTEXT			; Save the context of the current task.

-

-	bl	vEMACISR				; Call the ISR routine.

-

-	portRESTORE_CONTEXT			; Restore the context of the current task -

-								; which may be different to the task that

-								; was interrupted.

-

-		END

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.c
deleted file mode 100644
index 715da69..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.c
+++ /dev/null
@@ -1,738 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-/*

- * Basic interrupt driven driver for the EMAC peripheral.  This driver is not

- * reentrant as with uIP the buffers are only ever accessed from a single task.

- *

- * The simple buffer management used within uIP allows the EMAC driver to also

- * be simplistic.  The driver contained within the lwIP demo is more

- * comprehensive.

- */

-

-

-/*

-Changes from V3.2.2

-

-	+ Corrected the byte order when writing the MAC address to the MAC.

-	+ Support added for MII interfaces.  Previously only RMII was supported.

-

-Changes from V3.2.3

-

-	+ The MII interface is now the default.

-	+ Modified the initialisation sequence slightly to allow auto init more

-	  time to complete.

-

-Changes from V3.2.4

-

-	+ Also read the EMAC_RSR register in the EMAC ISR as a work around the 

-	  the EMAC bug that can reset the RX bit in EMAC_ISR register before the

-	  bit has been read.

-

-Changes from V4.0.4

-

-	+ Corrected the Rx frame length mask when obtaining the length from the

-	  rx descriptor.

-

-*/

-

-/* Standard includes. */

-#include <string.h>

-

-/* Scheduler includes. */

-#include "FreeRTOS.h"

-#include "semphr.h"

-#include "task.h"

-

-/* uIP includes. */

-#include "uip.h"

-

-/* Hardware specific includes. */

-#include "Emac.h"

-#include "mii.h"

-

-

-/* USE_RMII_INTERFACE must be defined as 1 to use an RMII interface, or 0

-to use an MII interface. */

-#define USE_RMII_INTERFACE 0

-

-/* The buffer addresses written into the descriptors must be aligned so the

-last few bits are zero.  These bits have special meaning for the EMAC

-peripheral and cannot be used as part of the address. */

-#define emacADDRESS_MASK			( ( unsigned long ) 0xFFFFFFFC )

-

-/* Bit used within the address stored in the descriptor to mark the last

-descriptor in the array. */

-#define emacRX_WRAP_BIT				( ( unsigned long ) 0x02 )

-

-/* Bit used within the Tx descriptor status to indicate whether the

-descriptor is under the control of the EMAC or the software. */

-#define emacTX_BUF_USED				( ( unsigned long ) 0x80000000 )

-

-/* A short delay is used to wait for a buffer to become available, should

-one not be immediately available when trying to transmit a frame. */

-#define emacBUFFER_WAIT_DELAY		( 2 )

-#define emacMAX_WAIT_CYCLES			( configTICK_RATE_HZ / 40 )

-

-/* Misc defines. */

-#define emacINTERRUPT_LEVEL			( 5 )

-#define emacNO_DELAY				( 0 )

-#define emacTOTAL_FRAME_HEADER_SIZE	( 54 )

-#define emacPHY_INIT_DELAY			( 5000 / portTICK_PERIOD_MS )

-#define emacRESET_KEY				( ( unsigned long ) 0xA5000000 )

-#define emacRESET_LENGTH			( ( unsigned long ) ( 0x01 << 8 ) )

-

-/* The Atmel header file only defines the TX frame length mask. */

-#define emacRX_LENGTH_FRAME			( 0xfff )

-

-/*-----------------------------------------------------------*/

-

-/*

- * Prototype for the EMAC interrupt asm wrapper.

- */

-extern void vEMACISREntry( void );

-

-/*

- * Prototype for the EMAC interrupt function - called by the asm wrapper.

- */

-__arm void vEMACISR( void );

-

-/*

- * Initialise both the Tx and Rx descriptors used by the EMAC.

- */

-static void prvSetupDescriptors(void);

-

-/*

- * Write our MAC address into the EMAC.  The MAC address is set as one of the

- * uip options.

- */

-static void prvSetupMACAddress( void );

-

-/*

- * Configure the EMAC and AIC for EMAC interrupts.

- */

-static void prvSetupEMACInterrupt( void );

-

-/*

- * Some initialisation functions taken from the Atmel EMAC sample code.

- */

-static void vReadPHY( unsigned char ucPHYAddress, unsigned char ucAddress, unsigned long *pulValue );

-#if USE_RMII_INTERFACE != 1

-	static void vWritePHY( unsigned char ucPHYAddress, unsigned char ucAddress, unsigned long ulValue);

-#endif

-static portBASE_TYPE xGetLinkSpeed( void );

-static portBASE_TYPE prvProbePHY( void );

-

-/*-----------------------------------------------------------*/

-

-/* Buffer written to by the EMAC DMA.  Must be aligned as described by the

-comment above the emacADDRESS_MASK definition. */

-#pragma data_alignment=8

-static volatile char pcRxBuffer[ NB_RX_BUFFERS * ETH_RX_BUFFER_SIZE ];

-

-/* Buffer read by the EMAC DMA.  Must be aligned as described by he comment

-above the emacADDRESS_MASK definition. */

-#pragma data_alignment=8

-static char pcTxBuffer[ NB_TX_BUFFERS * ETH_TX_BUFFER_SIZE ];

-

-/* Descriptors used to communicate between the program and the EMAC peripheral.

-These descriptors hold the locations and state of the Rx and Tx buffers. */

-static volatile AT91S_TxTdDescriptor xTxDescriptors[ NB_TX_BUFFERS ];

-static volatile AT91S_RxTdDescriptor xRxDescriptors[ NB_RX_BUFFERS ];

-

-/* The IP and Ethernet addresses are read from the uIP setup. */

-const char cMACAddress[ 6 ] = { UIP_ETHADDR0, UIP_ETHADDR1, UIP_ETHADDR2, UIP_ETHADDR3, UIP_ETHADDR4, UIP_ETHADDR5 };

-const unsigned char ucIPAddress[ 4 ]  = { UIP_IPADDR0, UIP_IPADDR1, UIP_IPADDR2, UIP_IPADDR3 };

-

-/* The semaphore used by the EMAC ISR to wake the EMAC task. */

-static SemaphoreHandle_t xSemaphore = NULL;

-

-/*-----------------------------------------------------------*/

-

-SemaphoreHandle_t xEMACInit( void )

-{

-	/* Code supplied by Atmel (modified) --------------------*/

-

-	/* disable pull up on RXDV => PHY normal mode (not in test mode),

-	PHY has internal pull down. */

-	AT91C_BASE_PIOB->PIO_PPUDR = 1 << 15;

-

-	#if USE_RMII_INTERFACE != 1

-	  	/* PHY has internal pull down : set MII mode. */

-	  	AT91C_BASE_PIOB->PIO_PPUDR= 1 << 16;

-	#endif

-

-	/* clear PB18 <=> PHY powerdown. */

-	AT91F_PIO_CfgOutput( AT91C_BASE_PIOB, 1 << 18 ) ;

-	AT91F_PIO_ClearOutput( AT91C_BASE_PIOB,  1 << 18) ;

-

-	/* After PHY power up, hardware reset. */

-	AT91C_BASE_RSTC->RSTC_RMR = emacRESET_KEY | emacRESET_LENGTH;

-	AT91C_BASE_RSTC->RSTC_RCR = emacRESET_KEY | AT91C_RSTC_EXTRST;

-	

-	/* Wait for hardware reset end. */

-	while( !( AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_NRSTL ) )

-	{

-		__asm( "NOP" );

-	}

-	__asm( "NOP" );

-  	

-	/* EMAC IO init for EMAC-PHY com. Remove EF100 config. */

-	AT91F_EMAC_CfgPIO();

-

-	/* Enable com between EMAC PHY.

-

-	Enable management port. */

-	AT91C_BASE_EMAC->EMAC_NCR |= AT91C_EMAC_MPE;	

-

-	/* MDC = MCK/32. */

-	AT91C_BASE_EMAC->EMAC_NCFGR |= ( 2 ) << 10;	

-

-	/* Wait for PHY auto init end (rather crude delay!). */

-	vTaskDelay( emacPHY_INIT_DELAY );

-

-	/* PHY configuration. */

-	#if USE_RMII_INTERFACE != 1

-	{

-		unsigned long ulControl;

-

-		/* PHY has internal pull down : disable MII isolate. */

-		vReadPHY( AT91C_PHY_ADDR, MII_BMCR, &ulControl );

-		vReadPHY( AT91C_PHY_ADDR, MII_BMCR, &ulControl );

-		ulControl &= ~BMCR_ISOLATE;

-		vWritePHY( AT91C_PHY_ADDR, MII_BMCR, ulControl );

-	}

-	#endif

-

-	/* Disable management port again. */

-	AT91C_BASE_EMAC->EMAC_NCR &= ~AT91C_EMAC_MPE;

-

-	#if USE_RMII_INTERFACE != 1

-		/* Enable EMAC in MII mode, enable clock ERXCK and ETXCK. */

-		AT91C_BASE_EMAC->EMAC_USRIO = AT91C_EMAC_CLKEN ;

-	#else

-		/* Enable EMAC in RMII mode, enable RMII clock (50MHz from oscillator

-		on ERFCK). */

-		AT91C_BASE_EMAC->EMAC_USRIO = AT91C_EMAC_RMII | AT91C_EMAC_CLKEN ;

-	#endif

-

-	/* End of code supplied by Atmel ------------------------*/

-

-	/* Setup the buffers and descriptors. */

-	prvSetupDescriptors();

-	

-	/* Load our MAC address into the EMAC. */

-	prvSetupMACAddress();

-

-	/* Try to connect. */

-	if( prvProbePHY() )

-	{

-		/* Enable the interrupt! */

-		prvSetupEMACInterrupt();

-	}

-

-	return xSemaphore;

-}

-/*-----------------------------------------------------------*/

-

-long lEMACSend( void )

-{

-static unsigned portBASE_TYPE uxTxBufferIndex = 0;

-portBASE_TYPE xWaitCycles = 0;

-long lReturn = pdPASS;

-char *pcBuffer;

-

-	/* Is a buffer available? */

-	while( !( xTxDescriptors[ uxTxBufferIndex ].U_Status.status & AT91C_TRANSMIT_OK ) )

-	{

-		/* There is no room to write the Tx data to the Tx buffer.  Wait a

-		short while, then try again. */

-		xWaitCycles++;

-		if( xWaitCycles > emacMAX_WAIT_CYCLES )

-		{

-			/* Give up. */

-			lReturn = pdFAIL;

-			break;

-		}

-		else

-		{

-			vTaskDelay( emacBUFFER_WAIT_DELAY );

-		}

-	}

-

-	/* lReturn will only be pdPASS if a buffer is available. */

-	if( lReturn == pdPASS )

-	{

-		/* Copy the headers into the Tx buffer.  These will be in the uIP buffer. */

-		pcBuffer = ( char * ) xTxDescriptors[ uxTxBufferIndex ].addr;

-		memcpy( ( void * ) pcBuffer, ( void * ) uip_buf, emacTOTAL_FRAME_HEADER_SIZE );

-		if( uip_len > emacTOTAL_FRAME_HEADER_SIZE )

-		{

-			memcpy( ( void * ) &( pcBuffer[ emacTOTAL_FRAME_HEADER_SIZE ] ), ( void * ) uip_appdata, ( uip_len - emacTOTAL_FRAME_HEADER_SIZE ) );

-		}

-

-		/* Send. */	

-		portENTER_CRITICAL();

-		{

-			if( uxTxBufferIndex >= ( NB_TX_BUFFERS - 1 ) )

-			{

-				/* Fill out the necessary in the descriptor to get the data sent. */

-				xTxDescriptors[ uxTxBufferIndex ].U_Status.status = 	( uip_len & ( unsigned long ) AT91C_LENGTH_FRAME )

-																		| AT91C_LAST_BUFFER

-																		| AT91C_TRANSMIT_WRAP;

-				uxTxBufferIndex = 0;

-			}

-			else

-			{

-				/* Fill out the necessary in the descriptor to get the data sent. */

-				xTxDescriptors[ uxTxBufferIndex ].U_Status.status = 	( uip_len & ( unsigned long ) AT91C_LENGTH_FRAME )

-																		| AT91C_LAST_BUFFER;

-				uxTxBufferIndex++;

-			}

-	

-			AT91C_BASE_EMAC->EMAC_NCR |= AT91C_EMAC_TSTART;

-		}

-		portEXIT_CRITICAL();

-	}

-

-	return lReturn;

-}

-/*-----------------------------------------------------------*/

-

-unsigned long ulEMACPoll( void )

-{

-static unsigned portBASE_TYPE ulNextRxBuffer = 0;

-unsigned long ulSectionLength = 0, ulLengthSoFar = 0, ulEOF = pdFALSE;

-char *pcSource;

-

-	/* Skip any fragments. */

-	while( ( xRxDescriptors[ ulNextRxBuffer ].addr & AT91C_OWNERSHIP_BIT ) && !( xRxDescriptors[ ulNextRxBuffer ].U_Status.status & AT91C_SOF ) )

-	{

-		/* Mark the buffer as free again. */

-		xRxDescriptors[ ulNextRxBuffer ].addr &= ~( AT91C_OWNERSHIP_BIT );		

-		ulNextRxBuffer++;

-		if( ulNextRxBuffer >= NB_RX_BUFFERS )

-		{

-			ulNextRxBuffer = 0;

-		}

-	}

-

-	/* Is there a packet ready? */

-

-	while( ( xRxDescriptors[ ulNextRxBuffer ].addr & AT91C_OWNERSHIP_BIT ) && !ulSectionLength )

-	{

-		pcSource = ( char * )( xRxDescriptors[ ulNextRxBuffer ].addr & emacADDRESS_MASK );

-		ulSectionLength = xRxDescriptors[ ulNextRxBuffer ].U_Status.status & emacRX_LENGTH_FRAME;

-

-		if( ulSectionLength == 0 )

-		{

-			/* The frame is longer than the buffer pointed to by this

-			descriptor so copy the entire buffer to uIP - then move onto

-			the next descriptor to get the rest of the frame. */

-			if( ( ulLengthSoFar + ETH_RX_BUFFER_SIZE ) <= UIP_BUFSIZE )

-			{

-				memcpy( &( uip_buf[ ulLengthSoFar ] ), pcSource, ETH_RX_BUFFER_SIZE );

-				ulLengthSoFar += ETH_RX_BUFFER_SIZE;

-			}			

-		}

-		else

-		{

-			/* This is the last section of the frame.  Copy the section to

-			uIP. */

-			if( ulSectionLength < UIP_BUFSIZE )

-			{

-				/* The section length holds the length of the entire frame.

-				ulLengthSoFar holds the length of the frame sections already

-				copied to uIP, so the length of the final section is

-				ulSectionLength - ulLengthSoFar; */

-				if( ulSectionLength > ulLengthSoFar )

-				{

-					memcpy( &( uip_buf[ ulLengthSoFar ] ), pcSource, ( ulSectionLength - ulLengthSoFar ) );

-				}

-			}			

-

-			/* Is this the last buffer for the frame?  If not why? */

-			ulEOF = xRxDescriptors[ ulNextRxBuffer ].U_Status.status & AT91C_EOF;

-		}

-

-		/* Mark the buffer as free again. */

-		xRxDescriptors[ ulNextRxBuffer ].addr &= ~( AT91C_OWNERSHIP_BIT );

-

-		/* Increment to the next buffer, wrapping if necessary. */

-		ulNextRxBuffer++;

-		if( ulNextRxBuffer >= NB_RX_BUFFERS )

-		{

-			ulNextRxBuffer = 0;

-		}

-	}

-

-	/* If we obtained data but for some reason did not find the end of the

-	frame then discard the data as it must contain an error. */

-	if( !ulEOF )

-	{

-		ulSectionLength = 0;

-	}

-

-	return ulSectionLength;

-}

-/*-----------------------------------------------------------*/

-

-static void prvSetupDescriptors(void)

-{

-unsigned portBASE_TYPE xIndex;

-unsigned long ulAddress;

-

-	/* Initialise xRxDescriptors descriptor. */

-	for( xIndex = 0; xIndex < NB_RX_BUFFERS; ++xIndex )

-	{

-		/* Calculate the address of the nth buffer within the array. */

-		ulAddress = ( unsigned long )( pcRxBuffer + ( xIndex * ETH_RX_BUFFER_SIZE ) );

-

-		/* Write the buffer address into the descriptor.  The DMA will place

-		the data at this address when this descriptor is being used.  Mask off

-		the bottom bits of the address as these have special meaning. */

-		xRxDescriptors[ xIndex ].addr = ulAddress & emacADDRESS_MASK;

-	}	

-

-	/* The last buffer has the wrap bit set so the EMAC knows to wrap back

-	to the first buffer. */

-	xRxDescriptors[ NB_RX_BUFFERS - 1 ].addr |= emacRX_WRAP_BIT;

-

-	/* Initialise xTxDescriptors. */

-	for( xIndex = 0; xIndex < NB_TX_BUFFERS; ++xIndex )

-	{

-		/* Calculate the address of the nth buffer within the array. */

-		ulAddress = ( unsigned long )( pcTxBuffer + ( xIndex * ETH_TX_BUFFER_SIZE ) );

-

-		/* Write the buffer address into the descriptor.  The DMA will read

-		data from here when the descriptor is being used. */

-		xTxDescriptors[ xIndex ].addr = ulAddress & emacADDRESS_MASK;

-		xTxDescriptors[ xIndex ].U_Status.status = AT91C_TRANSMIT_OK;

-	}	

-

-	/* The last buffer has the wrap bit set so the EMAC knows to wrap back

-	to the first buffer. */

-	xTxDescriptors[ NB_TX_BUFFERS - 1 ].U_Status.status = AT91C_TRANSMIT_WRAP | AT91C_TRANSMIT_OK;

-

-	/* Tell the EMAC where to find the descriptors. */

-	AT91C_BASE_EMAC->EMAC_RBQP = ( unsigned long ) xRxDescriptors;

-	AT91C_BASE_EMAC->EMAC_TBQP = ( unsigned long ) xTxDescriptors;

-	

-	/* Clear all the bits in the receive status register. */

-	AT91C_BASE_EMAC->EMAC_RSR = ( AT91C_EMAC_OVR | AT91C_EMAC_REC | AT91C_EMAC_BNA );

-

-	/* Enable the copy of data into the buffers, ignore broadcasts,

-	and don't copy FCS. */

-	AT91C_BASE_EMAC->EMAC_NCFGR |= ( AT91C_EMAC_CAF | AT91C_EMAC_NBC | AT91C_EMAC_DRFCS);

-

-	/* Enable Rx and Tx, plus the stats register. */

-	AT91C_BASE_EMAC->EMAC_NCR |= ( AT91C_EMAC_TE | AT91C_EMAC_RE | AT91C_EMAC_WESTAT );

-}	

-/*-----------------------------------------------------------*/

-

-static void prvSetupMACAddress( void )

-{

-	/* Must be written SA1L then SA1H. */

-	AT91C_BASE_EMAC->EMAC_SA1L =	( ( unsigned long ) cMACAddress[ 3 ] << 24 ) |

-									( ( unsigned long ) cMACAddress[ 2 ] << 16 ) |

-									( ( unsigned long ) cMACAddress[ 1 ] << 8  ) |

-									cMACAddress[ 0 ];

-

-	AT91C_BASE_EMAC->EMAC_SA1H =	( ( unsigned long ) cMACAddress[ 5 ] << 8 ) |

-									cMACAddress[ 4 ];

-}

-/*-----------------------------------------------------------*/

-

-static void prvSetupEMACInterrupt( void )

-{

-	/* Create the semaphore used to trigger the EMAC task. */

-	vSemaphoreCreateBinary( xSemaphore );

-	if( xSemaphore )

-	{

-		/* We start by 'taking' the semaphore so the ISR can 'give' it when the

-		first interrupt occurs. */

-		xSemaphoreTake( xSemaphore, emacNO_DELAY );

-		portENTER_CRITICAL();

-		{

-			/* We want to interrupt on Rx events. */

-			AT91C_BASE_EMAC->EMAC_IER = AT91C_EMAC_RCOMP;

-

-			/* Enable the interrupts in the AIC. */

-			AT91F_AIC_ConfigureIt( AT91C_BASE_AIC, AT91C_ID_EMAC, emacINTERRUPT_LEVEL, AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, ( void (*)( void ) ) vEMACISREntry );

-			AT91F_AIC_EnableIt( AT91C_BASE_AIC, AT91C_ID_EMAC );

-		}

-		portEXIT_CRITICAL();

-	}

-}

-/*-----------------------------------------------------------*/

-

-__arm void vEMACISR( void )

-{

-volatile unsigned long ulIntStatus, ulRxStatus;

-portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;

-

-	ulIntStatus = AT91C_BASE_EMAC->EMAC_ISR;

-	ulRxStatus = AT91C_BASE_EMAC->EMAC_RSR;

-

-	if( ( ulIntStatus & AT91C_EMAC_RCOMP ) || ( ulRxStatus & AT91C_EMAC_REC ) )

-	{

-		/* A frame has been received, signal the uIP task so it can process

-		the Rx descriptors. */

-		xSemaphoreGiveFromISR( xSemaphore, &xHigherPriorityTaskWoken );

-		AT91C_BASE_EMAC->EMAC_RSR = AT91C_EMAC_REC;

-	}

-

-	/* If a task was woken by either a character being received or a character

-	being transmitted then we may need to switch to another task. */

-	portEND_SWITCHING_ISR( xHigherPriorityTaskWoken );

-

-	/* Clear the interrupt. */

-	AT91C_BASE_AIC->AIC_EOICR = 0;

-}

-/*-----------------------------------------------------------*/

-

-

-

-/*

- * The following functions are initialisation functions taken from the Atmel

- * EMAC sample code.

- */

-

-static portBASE_TYPE prvProbePHY( void )

-{

-unsigned long ulPHYId1, ulPHYId2, ulStatus;

-portBASE_TYPE xReturn = pdPASS;

-	

-	/* Code supplied by Atmel (reformatted) -----------------*/

-

-	/* Enable management port */

-	AT91C_BASE_EMAC->EMAC_NCR |= AT91C_EMAC_MPE;	

-	AT91C_BASE_EMAC->EMAC_NCFGR |= ( 2 ) << 10;

-

-	/* Read the PHY ID. */

-	vReadPHY( AT91C_PHY_ADDR, MII_PHYSID1, &ulPHYId1 );

-	vReadPHY( AT91C_PHY_ADDR, MII_PHYSID2, &ulPHYId2 );

-

-	/* AMD AM79C875:

-			PHY_ID1 = 0x0022

-			PHY_ID2 = 0x5541

-			Bits 3:0 Revision Number Four bit manufacturer’s revision number.

-				0001 stands for Rev. A, etc.

-	*/

-	if( ( ( ulPHYId1 << 16 ) | ( ulPHYId2 & 0xfff0 ) ) != MII_DM9161_ID )

-	{

-		/* Did not expect this ID. */

-		xReturn = pdFAIL;

-	}

-	else

-	{

-		ulStatus = xGetLinkSpeed();

-

-		if( ulStatus != pdPASS )

-		{

-			xReturn = pdFAIL;

-		}

-	}

-

-	/* Disable management port */

-	AT91C_BASE_EMAC->EMAC_NCR &= ~AT91C_EMAC_MPE;	

-

-	/* End of code supplied by Atmel ------------------------*/

-

-	return xReturn;

-}

-/*-----------------------------------------------------------*/

-

-static void vReadPHY( unsigned char ucPHYAddress, unsigned char ucAddress, unsigned long *pulValue )

-{

-	/* Code supplied by Atmel (reformatted) ----------------------*/

-

-	AT91C_BASE_EMAC->EMAC_MAN = 	(AT91C_EMAC_SOF & (0x01<<30))

-									| (2 << 16) | (2 << 28)

-									| ((ucPHYAddress & 0x1f) << 23)

-									| (ucAddress << 18);

-

-	/* Wait until IDLE bit in Network Status register is cleared. */

-	while( !( AT91C_BASE_EMAC->EMAC_NSR & AT91C_EMAC_IDLE ) )

-	{

-		__asm( "NOP" );

-	}

-

-	*pulValue = ( AT91C_BASE_EMAC->EMAC_MAN & 0x0000ffff );	

-

-	/* End of code supplied by Atmel ------------------------*/

-}

-/*-----------------------------------------------------------*/

-

-#if USE_RMII_INTERFACE != 1

-static void vWritePHY( unsigned char ucPHYAddress, unsigned char ucAddress, unsigned long ulValue )

-{

-	/* Code supplied by Atmel (reformatted) ----------------------*/

-

-	AT91C_BASE_EMAC->EMAC_MAN = (( AT91C_EMAC_SOF & (0x01<<30))

-								| (2 << 16) | (1 << 28)

-								| ((ucPHYAddress & 0x1f) << 23)

-								| (ucAddress << 18))

-								| (ulValue & 0xffff);

-

-	/* Wait until IDLE bit in Network Status register is cleared */

-	while( !( AT91C_BASE_EMAC->EMAC_NSR & AT91C_EMAC_IDLE ) )

-	{

-		__asm( "NOP" );

-	};

-

-	/* End of code supplied by Atmel ------------------------*/

-}

-#endif

-/*-----------------------------------------------------------*/

-

-static portBASE_TYPE xGetLinkSpeed( void )

-{

-	unsigned long ulBMSR, ulBMCR, ulLPA, ulMACCfg, ulSpeed, ulDuplex;

-

-	/* Code supplied by Atmel (reformatted) -----------------*/

-

-	/* Link status is latched, so read twice to get current value */

-	vReadPHY(AT91C_PHY_ADDR, MII_BMSR, &ulBMSR);

-	vReadPHY(AT91C_PHY_ADDR, MII_BMSR, &ulBMSR);

-

-	if( !( ulBMSR & BMSR_LSTATUS ) )

-	{	

-		/* No Link. */

-		return pdFAIL;

-	}

-

-	vReadPHY(AT91C_PHY_ADDR, MII_BMCR, &ulBMCR);

-	if (ulBMCR & BMCR_ANENABLE)

-	{				

-		/* AutoNegotiation is enabled. */

-		if (!(ulBMSR & BMSR_ANEGCOMPLETE))

-		{

-			/* Auto-negotiation in progress. */

-			return pdFAIL;				

-		}		

-

-		vReadPHY(AT91C_PHY_ADDR, MII_LPA, &ulLPA);

-		if( ( ulLPA & LPA_100FULL ) || ( ulLPA & LPA_100HALF ) )

-		{

-			ulSpeed = SPEED_100;

-		}

-		else

-		{

-			ulSpeed = SPEED_10;

-		}

-

-		if( ( ulLPA & LPA_100FULL ) || ( ulLPA & LPA_10FULL ) )

-		{

-			ulDuplex = DUPLEX_FULL;

-		}

-		else

-		{

-			ulDuplex = DUPLEX_HALF;

-		}

-	}

-	else

-	{

-		ulSpeed = ( ulBMCR & BMCR_SPEED100 ) ? SPEED_100 : SPEED_10;

-		ulDuplex = ( ulBMCR & BMCR_FULLDPLX ) ? DUPLEX_FULL : DUPLEX_HALF;

-	}

-

-	/* Update the MAC */

-	ulMACCfg = AT91C_BASE_EMAC->EMAC_NCFGR & ~( AT91C_EMAC_SPD | AT91C_EMAC_FD );

-	if( ulSpeed == SPEED_100 )

-	{

-		if( ulDuplex == DUPLEX_FULL )

-		{

-			/* 100 Full Duplex */

-			AT91C_BASE_EMAC->EMAC_NCFGR = ulMACCfg | AT91C_EMAC_SPD | AT91C_EMAC_FD;

-		}

-		else

-		{					

-			/* 100 Half Duplex */

-			AT91C_BASE_EMAC->EMAC_NCFGR = ulMACCfg | AT91C_EMAC_SPD;

-		}

-	}

-	else

-	{

-		if (ulDuplex == DUPLEX_FULL)

-		{

-			/* 10 Full Duplex */

-			AT91C_BASE_EMAC->EMAC_NCFGR = ulMACCfg | AT91C_EMAC_FD;

-		}

-		else

-		{

-			/* 10 Half Duplex */

-			AT91C_BASE_EMAC->EMAC_NCFGR = ulMACCfg;

-		}

-	}

-

-	/* End of code supplied by Atmel ------------------------*/

-

-	return pdPASS;

-}

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.h
deleted file mode 100644
index 2c54cae..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef SAM_7_EMAC_H

-#define SAM_7_EMAC_H

-

-

-/*

- * Initialise the EMAC driver.  If successful a semaphore is returned that

- * is used by the EMAC ISR to indicate that Rx packets have been received.

- * If the initialisation fails then NULL is returned.

- */

-SemaphoreHandle_t xEMACInit( void );

-

-/*

- * Send the current uIP buffer.  This copies the uIP buffer to one of the

- * EMAC Tx buffers, then indicates to the EMAC that the buffer is ready.

- */

-long lEMACSend( void );

-

-/*

- * Called in response to an EMAC Rx interrupt.  Copies the received frame

- * into the uIP buffer.

- */

-unsigned long ulEMACPoll( void );

-

-#endif

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/FreeRTOSConfig.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/FreeRTOSConfig.h
deleted file mode 100644
index bd77c64..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/FreeRTOSConfig.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-#ifndef FREERTOS_CONFIG_H

-#define FREERTOS_CONFIG_H

-

-#include <intrinsics.h>

-#include "Board.h"

-

-/*-----------------------------------------------------------

- * Application specific definitions.

- *

- * These definitions should be adjusted for your particular hardware and

- * application requirements.

- *

- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE

- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.

- *

- * See http://www.freertos.org/a00110.html.

- *----------------------------------------------------------*/

-

-#define configUSE_PREEMPTION		1

-#define configUSE_IDLE_HOOK			0

-#define configUSE_TICK_HOOK			0

-#define configCPU_CLOCK_HZ			( ( unsigned long ) 47923200 )

-#define configTICK_RATE_HZ			( ( TickType_t ) 1000 )

-#define configMAX_PRIORITIES		( 5 )

-#define configMINIMAL_STACK_SIZE	( ( unsigned short ) 100 )

-#define configTOTAL_HEAP_SIZE		( ( size_t ) 22000 )

-#define configMAX_TASK_NAME_LEN		( 16 )

-#define configUSE_TRACE_FACILITY	1

-#define configUSE_16_BIT_TICKS		0

-#define configIDLE_SHOULD_YIELD		0

-#define configQUEUE_REGISTRY_SIZE	10

-

-/* Co-routine definitions. */

-#define configUSE_CO_ROUTINES 		0

-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )

-

-/* Set the following definitions to 1 to include the API function, or zero

-to exclude the API function. */

-

-#define INCLUDE_vTaskPrioritySet		1

-#define INCLUDE_uxTaskPriorityGet		1

-#define INCLUDE_vTaskDelete				1

-#define INCLUDE_vTaskCleanUpResources	0

-#define INCLUDE_vTaskSuspend			1

-#define INCLUDE_vTaskDelayUntil			1

-#define INCLUDE_vTaskDelay				1

-

-/* This demo makes use of one or more example stats formatting functions.  These

-format the raw data provided by the uxTaskGetSystemState() function in to human

-readable ASCII form.  See the notes in the implementation of vTaskList() within 

-FreeRTOS/Source/tasks.c for limitations. */

-#define configUSE_STATS_FORMATTING_FUNCTIONS	1

-

-#endif /* FREERTOS_CONFIG_H */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/ParTest/ParTest.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/ParTest/ParTest.c
deleted file mode 100644
index 37e01e5..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/ParTest/ParTest.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-#include "FreeRTOS.h"

-#include "partest.h"

-#include "board.h"

-

-/*-----------------------------------------------------------

- * Simple parallel port IO routines for the LED's.  LED's can be set, cleared

- * or toggled.

- *-----------------------------------------------------------*/

-const unsigned long ulLED_MASK[ NB_LED ]= { LED1, LED2, LED3, LED4 };

-

-void vParTestInitialise( void )

-{	

-	/* Start with all LED's off. */

-	AT91F_PIO_SetOutput( AT91C_BASE_PIOB, LED_MASK );	

-}

-/*-----------------------------------------------------------*/

-

-void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )

-{

-	if( uxLED < ( portBASE_TYPE ) NB_LED )

-	{

-		if( xValue )

-		{

-			AT91F_PIO_SetOutput( AT91C_BASE_PIOB, ulLED_MASK[ uxLED ] );

-		}

-		else

-		{

-			AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, ulLED_MASK[ uxLED ]);

-		}

-	}

-}

-/*-----------------------------------------------------------*/

-

-void vParTestToggleLED( unsigned portBASE_TYPE uxLED )

-{

-	if( uxLED < ( portBASE_TYPE ) NB_LED )

-	{

-		if( AT91F_PIO_GetInput( AT91C_BASE_PIOB ) & ulLED_MASK[ uxLED ] )

-		{

-			AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, ulLED_MASK[ uxLED ]);

-		}

-		else

-		{

-			AT91F_PIO_SetOutput( AT91C_BASE_PIOB, ulLED_MASK[ uxLED ] );					

-		}

-	}

-}

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/ReadMe.txt b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/ReadMe.txt
new file mode 100644
index 0000000..add5642
--- /dev/null
+++ b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/ReadMe.txt
@@ -0,0 +1,5 @@
+If you need the demo that used to be in this directory then download FreeRTOS V8.2.3

+from http://sourceforge.net/projects/freertos/files/FreeRTOS/

+

+FreeRTOS now uses its own TCP/IP stack: http://www.FreeRTOS.org/TCP

+

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Board.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Board.h
deleted file mode 100644
index aba6727..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Board.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*----------------------------------------------------------------------------

-*         ATMEL Microcontroller Software Support  -  ROUSSET  -

-*----------------------------------------------------------------------------

-* The software is delivered "AS IS" without warranty or condition of any

-* kind, either express, implied or statutory. This includes without

-* limitation any warranty or condition with respect to merchantability or

-* fitness for any particular purpose, or against the infringements of

-* intellectual property rights of others.

-*----------------------------------------------------------------------------

-* File Name           : Board.h

-* Object              : AT91SAM7X Evaluation Board Features Definition File.

-*

-* Creation            : JG   20/Jun/2005

-*----------------------------------------------------------------------------

-*/

-#ifndef Board_h

-#define Board_h

-

-#include <AT91SAM7X256.h>

-#define __inline static inline

-#include <lib_AT91SAM7X256.h>

-

-#define true	-1

-#define false	0

-

-/*-------------------------------*/

-/* SAM7Board Memories Definition */

-/*-------------------------------*/

-// The AT91SAM7X128 embeds a 32-Kbyte SRAM bank, and 128K-Byte Flash

-

-#define  FLASH_PAGE_NB		256

-#define  FLASH_PAGE_SIZE	128

-

-/*-----------------*/

-/* Leds Definition */

-/*-----------------*/

-#define LED1            (1<<19)	// PB19

-#define LED2            (1<<20)	// PB20

-#define LED3            (1<<21)	// PB21

-#define LED4            (1<<22)	// PB22

-#define NB_LED			4

-

-#define LED_MASK        (LED1|LED2|LED3|LED4)

-

-/*-------------------------*/

-/* Push Buttons Definition */

-/*-------------------------*/

-

-#define SW1_MASK        (1<<21)	// PA21

-#define SW2_MASK        (1<<22)	// PA22

-#define SW3_MASK        (1<<23)	// PA23

-#define SW4_MASK        (1<<24)	// PA24

-#define SW_MASK         (SW1_MASK|SW2_MASK|SW3_MASK|SW4_MASK)

-

-

-#define SW1 	(1<<21)	// PA21

-#define SW2 	(1<<22)	// PA22

-#define SW3 	(1<<23)	// PA23

-#define SW4 	(1<<24)	// PA24

-

-/*--------------*/

-/* Master Clock */

-/*--------------*/

-

-#define EXT_OC          18432000   // Exetrnal ocilator MAINCK

-#define MCK             47923200   // MCK (PLLRC div by 2)

-#define MCKKHz          (MCK/1000) //

-

-#endif /* Board_h */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup.s b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup.s
deleted file mode 100644
index 12842e1..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup.s
+++ /dev/null
@@ -1,302 +0,0 @@
-;* ----------------------------------------------------------------------------

-;*         ATMEL Microcontroller Software Support  -  ROUSSET  -

-;* ----------------------------------------------------------------------------

-;* Copyright (c) 2006, Atmel Corporation

-;

-;* All rights reserved.

-;*

-;* Redistribution and use in source and binary forms, with or without

-;* modification, are permitted provided that the following conditions are met:

-;*

-;* - Redistributions of source code must retain the above copyright notice,

-;* this list of conditions and the disclaimer below.

-;*

-;* - Redistributions in binary form must reproduce the above copyright notice,

-;* this list of conditions and the disclaimer below in the documentation and/or

-;* other materials provided with the distribution.

-;*

-;* Atmel's name may not be used to endorse or promote products derived from

-;* this software without specific prior written permission.

-;*

-;* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR

-;* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

-;* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE

-;* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,

-;* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

-;* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,

-;* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF

-;* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

-;* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,

-;* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-;* ----------------------------------------------------------------------------

-

-;------------------------------------------------------------------------------

-; Include your AT91 Library files

-;------------------------------------------------------------------------------

-#include "AT91SAM7X256_inc.h"

-;------------------------------------------------------------------------------

-

-#define TOP_OF_MEMORY    (AT91C_ISRAM + AT91C_ISRAM_SIZE)

-#define IRQ_STACK_SIZE   200

-     ; 3 words to be saved per interrupt priority level

-

-; Mode, correspords to bits 0-5 in CPSR

-MODE_BITS DEFINE  0x1F    ; Bit mask for mode bits in CPSR

-USR_MODE  DEFINE  0x10    ; User mode

-FIQ_MODE  DEFINE  0x11    ; Fast Interrupt Request mode

-IRQ_MODE  DEFINE  0x12    ; Interrupt Request mode

-SVC_MODE  DEFINE  0x13    ; Supervisor mode

-ABT_MODE  DEFINE  0x17    ; Abort mode

-UND_MODE  DEFINE  0x1B    ; Undefined Instruction mode

-SYS_MODE  DEFINE  0x1F    ; System mode

-

-I_BIT     DEFINE  0x80

-F_BIT     DEFINE  0x40

-

-;------------------------------------------------------------------------------

-; ?RESET

-; Reset Vector.

-; Normally, segment INTVEC is linked at address 0.

-; For debugging purposes, INTVEC may be placed at other addresses.

-; A debugger that honors the entry point will start the

-; program in a normal way even if INTVEC is not at address 0.

-;------------------------------------------------------------------------------

-        SECTION .intvec:CODE:NOROOT(2)

-        PUBLIC  __vector

-        PUBLIC  __iar_program_start

-		EXTERN	vPortYieldProcessor

-

-		ARM

-__vector:

-        ldr  pc,[pc,#+24]             ;; Reset

-__und_handler:

-        ldr  pc,[pc,#+24]             ;; Undefined instructions

-__swi_handler:

-        ldr  pc,[pc,#+24]             ;; Software interrupt (SWI/SVC)

-__prefetch_handler:

-        ldr  pc,[pc,#+24]             ;; Prefetch abort

-__data_handler:

-        ldr  pc,[pc,#+24]             ;; Data abort

-        DC32  0xFFFFFFFF              ;; RESERVED

-__irq_handler:

-        LDR			PC, [PC, #-0xF20]

-__fiq_handler:

-        ldr  pc,[pc,#+24]             ;; FIQ

-

-        DC32  __iar_program_start

-        DC32  __und_handler

-        DC32  vPortYieldProcessor

-        DC32  __prefetch_handler

-        DC32  __data_handler

-        B .

-        DC32  IRQ_Handler_Entry

-        DC32  FIQ_Handler_Entry

-

-;------------------------------------------------------------------------------

-;- Manage exception: The exception must be ensure in ARM mode

-;------------------------------------------------------------------------------

-        SECTION text:CODE:NOROOT(2)

-        ARM

-;------------------------------------------------------------------------------

-;- Function             : FIQ_Handler_Entry

-;- Treatments           : FIQ Controller Interrupt Handler.

-;-                        R8 is initialize in Cstartup

-;- Called Functions     : None only by FIQ

-;------------------------------------------------------------------------------

-FIQ_Handler_Entry:

-

-;- Switch in SVC/User Mode to allow User Stack access for C code

-; because the FIQ is not yet acknowledged

-

-;- Save and r0 in FIQ_Register

-        mov         r9,r0

-        ldr         r0 , [r8, #AIC_FVR]

-        msr         CPSR_c,#I_BIT | F_BIT | SVC_MODE

-;- Save scratch/used registers and LR in User Stack

-        stmfd       sp!, { r1-r3, r12, lr}

-

-;- Branch to the routine pointed by the AIC_FVR

-        mov         r14, pc

-        bx          r0

-

-;- Restore scratch/used registers and LR from User Stack

-        ldmia       sp!, { r1-r3, r12, lr}

-

-;- Leave Interrupts disabled and switch back in FIQ mode

-        msr         CPSR_c, #I_BIT | F_BIT | FIQ_MODE

-

-;- Restore the R0 ARM_MODE_SVC register

-        mov         r0,r9

-

-;- Restore the Program Counter using the LR_fiq directly in the PC

-        subs        pc,lr,#4

-;------------------------------------------------------------------------------

-;- Function             : IRQ_Handler_Entry

-;- Treatments           : IRQ Controller Interrupt Handler.

-;- Called Functions     : AIC_IVR[interrupt]

-;------------------------------------------------------------------------------

-IRQ_Handler_Entry:

-;-------------------------

-;- Manage Exception Entry

-;-------------------------

-;- Adjust and save LR_irq in IRQ stack

-    sub         lr, lr, #4

-    stmfd       sp!, {lr}

-

-;- Save r0 and SPSR (need to be saved for nested interrupt)

-    mrs         r14, SPSR

-    stmfd       sp!, {r0,r14}

-

-;- Write in the IVR to support Protect Mode

-;- No effect in Normal Mode

-;- De-assert the NIRQ and clear the source in Protect Mode

-    ldr         r14, =AT91C_BASE_AIC

-    ldr         r0 , [r14, #AIC_IVR]

-    str         r14, [r14, #AIC_IVR]

-

-;- Enable Interrupt and Switch in Supervisor Mode

-    msr         CPSR_c, #SVC_MODE

-

-;- Save scratch/used registers and LR in User Stack

-    stmfd       sp!, { r1-r3, r12, r14}

-

-;----------------------------------------------

-;- Branch to the routine pointed by the AIC_IVR

-;----------------------------------------------

-    mov         r14, pc

-    bx          r0

-

-;----------------------------------------------

-;- Manage Exception Exit

-;----------------------------------------------

-;- Restore scratch/used registers and LR from User Stack

-    ldmia       sp!, { r1-r3, r12, r14}

-

-;- Disable Interrupt and switch back in IRQ mode

-    msr         CPSR_c, #I_BIT | IRQ_MODE

-

-;- Mark the End of Interrupt on the AIC

-    ldr         r14, =AT91C_BASE_AIC

-    str         r14, [r14, #AIC_EOICR]

-

-;- Restore SPSR_irq and r0 from IRQ stack

-    ldmia       sp!, {r0,r14}

-    msr         SPSR_cxsf, r14

-

-;- Restore adjusted  LR_irq from IRQ stack directly in the PC

-    ldmia       sp!, {pc}^

-

-;------------------------------------------------------------------------------

-;- Exception Vectors

-;------------------------------------------------------------------------------

-    PUBLIC    AT91F_Default_FIQ_handler

-    PUBLIC    AT91F_Default_IRQ_handler

-    PUBLIC    AT91F_Spurious_handler

-

-    ARM      ; Always ARM mode after exeption

-

-AT91F_Default_FIQ_handler

-    b         AT91F_Default_FIQ_handler

-

-AT91F_Default_IRQ_handler

-    b         AT91F_Default_IRQ_handler

-

-AT91F_Spurious_handler

-    b         AT91F_Spurious_handler

-

-

-;------------------------------------------------------------------------------

-; ?INIT

-; Program entry.

-;------------------------------------------------------------------------------

-

-    SECTION FIQ_STACK:DATA:NOROOT(3)

-    SECTION IRQ_STACK:DATA:NOROOT(3)

-    SECTION SVC_STACK:DATA:NOROOT(3)

-    SECTION ABT_STACK:DATA:NOROOT(3)

-    SECTION UND_STACK:DATA:NOROOT(3)

-    SECTION CSTACK:DATA:NOROOT(3)

-    SECTION text:CODE:NOROOT(2)

-    REQUIRE __vector

-    EXTERN  ?main

-    PUBLIC  __iar_program_start

-    EXTERN  AT91F_LowLevelInit

-

-

-__iar_program_start:

-

-;------------------------------------------------------------------------------

-;- Low level Init is performed in a C function: AT91F_LowLevelInit

-;- Init Stack Pointer to a valid memory area before calling AT91F_LowLevelInit

-;------------------------------------------------------------------------------

-

-;- Retrieve end of RAM address

-

-                ldr     r13,=TOP_OF_MEMORY          ;- Temporary stack in internal RAM for Low Level Init execution

-                ldr     r0,=AT91F_LowLevelInit

-                mov     lr, pc

-                bx      r0                          ;- Branch on C function (with interworking)

-

-; Initialize the stack pointers.

-; The pattern below can be used for any of the exception stacks:

-; FIQ, IRQ, SVC, ABT, UND, SYS.

-; The USR mode uses the same stack as SYS.

-; The stack segments must be defined in the linker command file,

-; and be declared above.

-

-                mrs     r0,cpsr                             ; Original PSR value

-                bic     r0,r0,#MODE_BITS                    ; Clear the mode bits

-                orr     r0,r0,#SVC_MODE                     ; Set SVC mode bits

-                msr     cpsr_c,r0                           ; Change the mode

-                ldr     sp,=SFE(SVC_STACK)                  ; End of SVC_STACK

-

-				bic     r0,r0,#MODE_BITS                    ; Clear the mode bits

-                orr     r0,r0,#UND_MODE                     ; Set UND mode bits

-                msr     cpsr_c,r0                           ; Change the mode

-                ldr     sp,=SFE(UND_STACK)                  ; End of UND_STACK

-

-                bic     r0,r0,#MODE_BITS                    ; Clear the mode bits

-                orr     r0,r0,#ABT_MODE                     ; Set ABT mode bits

-                msr     cpsr_c,r0                           ; Change the mode

-                ldr     sp,=SFE(ABT_STACK)                  ; End of ABT_STACK

-

-                bic     r0,r0,#MODE_BITS                    ; Clear the mode bits

-                orr     r0,r0,#FIQ_MODE                     ; Set FIQ mode bits

-                msr     cpsr_c,r0                           ; Change the mode

-                ldr     sp,=SFE(FIQ_STACK)                  ; End of FIQ_STACK

-                ;- Init the FIQ register

-                ldr     r8, =AT91C_BASE_AIC

-

-                bic     r0,r0,#MODE_BITS                    ; Clear the mode bits

-                orr     r0,r0,#IRQ_MODE                     ; Set IRQ mode bits

-                msr     cpsr_c,r0                           ; Change the mode

-                ldr     sp,=SFE(IRQ_STACK)                  ; End of IRQ_STACK

-

-                bic     r0,r0,#MODE_BITS                    ; Clear the mode bits

-                orr     r0,r0,#SYS_MODE                     ; Set System mode bits

-                msr     cpsr_c,r0                           ; Change the mode

-                ldr     sp,=SFE(CSTACK)                     ; End of CSTACK

-

-

-#ifdef __ARMVFP__

-; Enable the VFP coprocessor.

-                mov     r0, #0x40000000                 ; Set EN bit in VFP

-                fmxr    fpexc, r0                       ; FPEXC, clear others.

-

-; Disable underflow exceptions by setting flush to zero mode.

-; For full IEEE 754 underflow compliance this code should be removed

-; and the appropriate exception handler installed.

-                mov     r0, #0x01000000		        ; Set FZ bit in VFP

-                fmxr    fpscr, r0                       ; FPSCR, clear others.

-#endif

-

-; Add more initialization here

-		        msr   CPSR_c,#I_BIT | F_BIT | SVC_MODE

-

-

-; Continue to ?main for more IAR specific system startup

-

-                ldr     r0,=?main

-                bx      r0

-

-    END         ;- Terminates the assembly of the last module in a file

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup_SAM7.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup_SAM7.c
deleted file mode 100644
index 0b48391..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Cstartup_SAM7.c
+++ /dev/null
@@ -1,97 +0,0 @@
-//-----------------------------------------------------------------------------

-//         ATMEL Microcontroller Software Support  -  ROUSSET  -

-//-----------------------------------------------------------------------------

-// DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR

-// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE

-// DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,

-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,

-// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF

-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,

-// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-//-----------------------------------------------------------------------------

-// File Name           : Cstartup_SAM7.c

-// Object              : Low level initialisations written in C for Tools

-//                       For AT91SAM7X256 with 2 flash plane

-// Creation            : JPP  14-Sep-2006

-//-----------------------------------------------------------------------------

-

-

-#include "Board.h"

-//  The following functions must be write in ARM mode this function called

-// directly by exception vector

-extern void AT91F_Spurious_handler(void);

-extern void AT91F_Default_IRQ_handler(void);

-extern void AT91F_Default_FIQ_handler(void);

-

-//*----------------------------------------------------------------------------

-//* \fn    AT91F_LowLevelInit

-//* \brief This function performs very low level HW initialization

-//*        this function can use a Stack, depending the compilation

-//*        optimization mode

-//*----------------------------------------------------------------------------

-void AT91F_LowLevelInit(void) @ "ICODE"

-{

-    unsigned char i;

-    ///////////////////////////////////////////////////////////////////////////

-    // EFC Init

-    ///////////////////////////////////////////////////////////////////////////

-    AT91C_BASE_MC->MC_FMR = AT91C_MC_FWS_1FWS ;

-

-    ///////////////////////////////////////////////////////////////////////////

-    // Init PMC Step 1. Enable Main Oscillator

-    // Main Oscillator startup time is board specific:

-    // Main Oscillator Startup Time worst case (3MHz) corresponds to 15ms

-    // (0x40 for AT91C_CKGR_OSCOUNT field)

-    ///////////////////////////////////////////////////////////////////////////

-    AT91C_BASE_PMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x40 <<8) | AT91C_CKGR_MOSCEN ));

-    // Wait Main Oscillator stabilization

-    while(!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS));

-

-    ///////////////////////////////////////////////////////////////////////////

-    // Init PMC Step 2.

-    // Set PLL to 96MHz (96,109MHz) and UDP Clock to 48MHz

-    // PLL Startup time depends on PLL RC filter: worst case is choosen

-    // UDP Clock (48,058MHz) is compliant with the Universal Serial Bus

-    // Specification (+/- 0.25% for full speed)

-    ///////////////////////////////////////////////////////////////////////////

-    AT91C_BASE_PMC->PMC_PLLR = AT91C_CKGR_USBDIV_1           |

-    						   (16 << 8)                     |

-                               (AT91C_CKGR_MUL & (72 << 16)) |

-                               (AT91C_CKGR_DIV & 14);

-    // Wait for PLL stabilization

-    while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK) );

-    // Wait until the master clock is established for the case we already

-    // turn on the PLL

-    while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );

-

-    ///////////////////////////////////////////////////////////////////////////

-    // Init PMC Step 3.

-    // Selection of Master Clock MCK equal to (Processor Clock PCK) PLL/2=48MHz

-    // The PMC_MCKR register must not be programmed in a single write operation

-    // (see. Product Errata Sheet)

-    ///////////////////////////////////////////////////////////////////////////

-    AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;

-    // Wait until the master clock is established

-    while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );

-

-    AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK;

-    // Wait until the master clock is established

-    while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );

-

-    ///////////////////////////////////////////////////////////////////////////

-    //  Disable Watchdog (write once register)

-    ///////////////////////////////////////////////////////////////////////////

-    AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS;

-

-    ///////////////////////////////////////////////////////////////////////////

-    //  Init AIC: assign corresponding handler for each interrupt source

-    ///////////////////////////////////////////////////////////////////////////

-    AT91C_BASE_AIC->AIC_SVR[0] = (int) AT91F_Default_FIQ_handler ;

-    for (i = 1; i < 31; i++) {

-        AT91C_BASE_AIC->AIC_SVR[i] = (int) AT91F_Default_IRQ_handler ;

-    }

-    AT91C_BASE_AIC->AIC_SPU = (unsigned int) AT91F_Spurious_handler;

-}

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Emac.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Emac.h
deleted file mode 100644
index 7551a36..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/Emac.h
+++ /dev/null
@@ -1,195 +0,0 @@
-//*----------------------------------------------------------------------------

-//*         ATMEL Microcontroller Software Support  -  ROUSSET  -

-//*----------------------------------------------------------------------------

-//* The software is delivered "AS IS" without warranty or condition of any

-//* kind, either express, implied or statutory. This includes without

-//* limitation any warranty or condition with respect to merchantability or

-//* fitness for any particular purpose, or against the infringements of

-//* intellectual property rights of others.

-//*----------------------------------------------------------------------------

-//* File Name           : Emac.h

-//* Object              : Emac header file

-//* Creation            : Hi   11/18/2002

-//*

-//*----------------------------------------------------------------------------

-#ifndef AT91C_EMAC_H

-#define AT91C_EMAC_H

-

-

-//* Allows to display all IP header in the main.c

-//* If not defined, only ICMP packets are displayed

-#define AT91C_DISPLAY_ALL_IPHEADER		0

-

-#define NB_RX_BUFFERS			25			//* Number of receive buffers

-#define ETH_RX_BUFFER_SIZE		128         //*

-

-#define NB_TX_BUFFERS			2		//* Number of Transmit buffers

-#define ETH_TX_BUFFER_SIZE		UIP_BUFSIZE       //*

-

-#define AT91C_NO_IPPACKET		0

-#define AT91C_IPPACKET	        1

-

-#define ARP_REQUEST				0x0001

-#define ARP_REPLY				0x0002

-#define PROT_ARP				0x0806

-#define PROT_IP					0x0800

-#define PROT_ICMP				0x01

-#define ICMP_ECHO_REQUEST		0x08

-#define ICMP_ECHO_REPLY			0x00

-

-#define AT91C_EMAC_CLKEN 0x2

-#define SWAP16(x)	(((x & 0xff) << 8) | (x >> 8))

-

-#if 0

-//* Transfer descriptor structure

-typedef struct _AT91S_TdDescriptor {

-	unsigned int addr;

-	unsigned int status;

-}AT91S_TdDescriptor, *AT91PS_TdDescriptor;

-#endif

-

-//* Receive Transfer descriptor structure

-typedef struct  _AT91S_RxTdDescriptor {

-	unsigned int addr;

-	union

-	{

-		unsigned int status;

-		struct {

-			unsigned int Length:11;

-			unsigned int Res0:1;

-			unsigned int Rxbuf_off:2;

-			unsigned int StartOfFrame:1;

-			unsigned int EndOfFrame:1;

-			unsigned int Cfi:1;

-			unsigned int VlanPriority:3;

-			unsigned int PriorityTag:1;

-			unsigned int VlanTag:1;

-			unsigned int TypeID:1;

-			unsigned int Sa4Match:1;

-			unsigned int Sa3Match:1;

-			unsigned int Sa2Match:1;

-			unsigned int Sa1Match:1;

-			unsigned int Res1:1;

-			unsigned int ExternalAdd:1;

-			unsigned int UniCast:1;

-			unsigned int MultiCast:1;

-			unsigned int BroadCast:1;

-		}S_Status;		

-	}U_Status;

-}AT91S_RxTdDescriptor, *AT91PS_RxTdDescriptor;

-

-

-//* Transmit Transfer descriptor structure

-typedef struct _AT91S_TxTdDescriptor {

-	unsigned int addr;

-	union

-	{

-		unsigned int status;

-		struct {

-			unsigned int Length:11;

-			unsigned int Res0:4;

-			unsigned int LastBuff:1;

-			unsigned int NoCrc:1;

-			unsigned int Res1:10;

-			unsigned int BufExhausted:1;

-			unsigned int TransmitUnderrun:1;

-			unsigned int TransmitError:1;

-			unsigned int Wrap:1;

-			unsigned int BuffUsed:1;

-		}S_Status;		

-	}U_Status;

-}AT91S_TxTdDescriptor, *AT91PS_TxTdDescriptor;

-

-#define AT91C_OWNERSHIP_BIT		0x00000001

-

-/* Receive status defintion */

-#define AT91C_BROADCAST_ADDR	((unsigned int) (1 << 31))	//* Broadcat address detected

-#define AT91C_MULTICAST_HASH 	((unsigned int) (1 << 30))	//* MultiCast hash match

-#define AT91C_UNICAST_HASH 	    ((unsigned int) (1 << 29))	//* UniCast hash match

-#define AT91C_EXTERNAL_ADDR	    ((unsigned int) (1 << 28))	//* External Address match

-#define AT91C_SA1_ADDR	    	((unsigned int) (1 << 26))	//* Specific address 1 match

-#define AT91C_SA2_ADDR	    	((unsigned int) (1 << 25))	//* Specific address 2 match

-#define AT91C_SA3_ADDR	    	((unsigned int) (1 << 24))	//* Specific address 3 match

-#define AT91C_SA4_ADDR	    	((unsigned int) (1 << 23))	//* Specific address 4 match

-#define AT91C_TYPE_ID	    	((unsigned int) (1 << 22))	//* Type ID match

-#define AT91C_VLAN_TAG	    	((unsigned int) (1 << 21))	//* VLAN tag detected

-#define AT91C_PRIORITY_TAG    	((unsigned int) (1 << 20))	//* PRIORITY tag detected

-#define AT91C_VLAN_PRIORITY    	((unsigned int) (7 << 17))  //* PRIORITY Mask

-#define AT91C_CFI_IND        	((unsigned int) (1 << 16))  //* CFI indicator

-#define AT91C_EOF           	((unsigned int) (1 << 15))  //* EOF

-#define AT91C_SOF           	((unsigned int) (1 << 14))  //* SOF

-#define AT91C_RBF_OFFSET     	((unsigned int) (3 << 12))  //* Receive Buffer Offset Mask

-#define AT91C_LENGTH_FRAME     	((unsigned int) 0x07FF)     //* Length of frame

-

-/* Transmit Status definition */

-#define AT91C_TRANSMIT_OK		((unsigned int) (1 << 31))	//*

-#define AT91C_TRANSMIT_WRAP		((unsigned int) (1 << 30))	//* Wrap bit: mark the last descriptor

-#define AT91C_TRANSMIT_ERR		((unsigned int) (1 << 29))	//* RLE:transmit error

-#define AT91C_TRANSMIT_UND		((unsigned int) (1 << 28))	//* Transmit Underrun

-#define AT91C_BUF_EX     		((unsigned int) (1 << 27))	//* Buffers exhausted in mid frame

-#define AT91C_TRANSMIT_NO_CRC	((unsigned int) (1 << 16))	//* No CRC will be appended to the current frame

-#define AT91C_LAST_BUFFER    	((unsigned int) (1 << 15))	//*

-

-#define ARP_ETHER	 		1		/* Ethernet  hardware address	*/

-#define ARPOP_REQUEST    	1		/* Request  to resolve  address	*/

-#define ARPOP_REPLY	    	2		/* Response to previous request	*/

-#define RARPOP_REQUEST   	3		/* Request  to resolve  address	*/

-#define RARPOP_REPLY	    4		/* Response to previous request */

-

-

-typedef struct _AT91S_EthHdr

-{

-	unsigned char		et_dest[6];	/* Destination node		*/

-	unsigned char		et_src[6];	/* Source node			*/

-	unsigned short		et_protlen;	/* Protocol or length		*/

-} AT91S_EthHdr, *AT91PS_EthHdr;

-

-typedef struct _AT91S_ArpHdr

-{

-	unsigned short		ar_hrd;		/* Format of hardware address	*/

-	unsigned short		ar_pro;		/* Format of protocol address	*/

-	unsigned char		ar_hln;		/* Length of hardware address	*/

-	unsigned char		ar_pln;		/* Length of protocol address	*/

-	unsigned short		ar_op;		/* Operation			*/

-	unsigned char		ar_sha[6];	/* Sender hardware address	*/

-	unsigned char		ar_spa[4];	/* Sender protocol address	*/

-	unsigned char		ar_tha[6];	/* Target hardware address	*/

-	unsigned char		ar_tpa[4];	/* Target protocol address	*/

-} AT91S_ArpHdr, *AT91PS_ArpHdr;

-

-//* IP Header structure

-typedef struct _AT91S_IPheader {

-	unsigned char	ip_hl_v;	/* header length and version	*/

-	unsigned char	ip_tos;		/* type of service		*/

-	unsigned short	ip_len;		/* total length			*/

-	unsigned short	ip_id;		/* identification		*/

-	unsigned short	ip_off;		/* fragment offset field	*/

-	unsigned char	ip_ttl;		/* time to live			*/

-	unsigned char	ip_p;		/* protocol			*/

-	unsigned short	ip_sum;		/* checksum			*/

-	unsigned char	ip_src[4];	/* Source IP address		*/

-	unsigned char	ip_dst[4];	/* Destination IP address	*/

-	unsigned short	udp_src;	/* UDP source port		*/

-	unsigned short	udp_dst;	/* UDP destination port		*/

-	unsigned short	udp_len;	/* Length of UDP packet		*/

-	unsigned short	udp_xsum;	/* Checksum			*/

-} AT91S_IPheader, *AT91PS_IPheader;

-

-//* ICMP echo header structure

-typedef struct _AT91S_IcmpEchoHdr {

-    unsigned char   type;       /* type of message */

-    unsigned char   code;       /* type subcode */

-    unsigned short  cksum;      /* ones complement cksum of struct */

-    unsigned short  id;         /* identifier */

-    unsigned short  seq;        /* sequence number */

-}AT91S_IcmpEchoHdr, *AT91PS_IcmpEchoHdr;

-

-

-typedef struct _AT91S_EthPack

-{

-	AT91S_EthHdr	EthHdr;

-	AT91S_ArpHdr	ArpHdr;

-} AT91S_EthPack, *AT91PS_EthPack;

-

-

-#endif //* AT91C_EMAC_H

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.c
deleted file mode 100644
index cee31b1..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.c
+++ /dev/null
@@ -1,95 +0,0 @@
-//*----------------------------------------------------------------------------

-//*         ATMEL Microcontroller Software Support  -  ROUSSET  -

-//*----------------------------------------------------------------------------

-//* The software is delivered "AS IS" without warranty or condition of any

-//* kind, either express, implied or statutory. This includes without

-//* limitation any warranty or condition with respect to merchantability or

-//* fitness for any particular purpose, or against the infringements of

-//* intellectual property rights of others.

-//*----------------------------------------------------------------------------

-//* File Name           : dbgu.c

-//* Object              : DBGU routines written in C

-//* Creation            : JG   16/Aug/2004

-//*----------------------------------------------------------------------------

-

-// Include Standard files

-#include "Board.h"

-

-//*--------------------------1--------------------------------------------------

-//* \fn    AT91F_DBGU_Printk

-//* \brief This function is used to send a string through the DBGU channel (Very low level debugging)

-//*----------------------------------------------------------------------------

-void AT91F_DBGU_Printk(	char *buffer)

-{

-    AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; 

-    unsigned int temp;

-    

-    while(*buffer != '\0') 

-    {

-        temp=0;

-        

-	while (temp==0)

-	{

-	  if ( (pDbgu->DBGU_CSR & 0x0200) == 0)

-	    temp=0;

-	  else

-	    temp=1;

-	}

-

-        pDbgu->DBGU_THR = *buffer;

-        buffer++;

-    }

-}

-

-

-void Init_DBGU_CLK(void)

-{

-  AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, ((unsigned int) 1 << AT91C_ID_SYS));

-}

-

-void Init_DBGU_BGR(unsigned short baud)

-{

-  AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; 

-  

-  pDbgu->DBGU_BRGR = (unsigned short)baud;

-}

-

-void DBGU_TX_Enable(void)

-{

-  AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; 

-  

-  pDbgu->DBGU_CR = 0x00000040;

-}

-

-void DBGU_RX_Enable(void)

-{

-  AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; 

-  

-  pDbgu->DBGU_CR = 0x00000010;

-}

-

-void DBGU_RX_TX_RST_DIS(void)

-{

-  AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; 

-  pDbgu->DBGU_CR = 0x000000AC;

-}

-

-void DBGU_Parity_Cfg(unsigned int par)

-{

-  AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; 

-  

-  pDbgu->DBGU_MR = par << 9;

-}

-

-

-void Init_DBGU(void)

-{ 

-  AT91F_DBGU_CfgPIO();

-  DBGU_RX_TX_RST_DIS();

-  Init_DBGU_BGR(26);  //26 <=> 115kBd

-  DBGU_Parity_Cfg(4);

-  DBGU_TX_Enable();   

-  DBGU_RX_Enable();

-}

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.h
deleted file mode 100644
index 58f50a0..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.h
+++ /dev/null
@@ -1,22 +0,0 @@
-//*----------------------------------------------------------------------------

-//*         ATMEL Microcontroller Software Support  -  ROUSSET  -

-//*----------------------------------------------------------------------------

-//* The software is delivered "AS IS" without warranty or condition of any

-//* kind, either express, implied or statutory. This includes without

-//* limitation any warranty or condition with respect to merchantability or

-//* fitness for any particular purpose, or against the infringements of

-//* intellectual property rights of others.

-//*----------------------------------------------------------------------------

-//* File Name           : dbgu.c

-//* Object              : DBGU routines written in C

-//* Creation            : JG   16/Aug/2004

-//*----------------------------------------------------------------------------

-

-// Include Standard files

-extern void APPLI_DBGU(void);   

-extern void D1_TEST_REGISTER_RESET_VALUES(void);

-extern void D2_CHIP_ID_VALUES(void);

-

-

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/init.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/init.c
deleted file mode 100644
index cbb1ee4..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/init.c
+++ /dev/null
@@ -1,31 +0,0 @@
-//*----------------------------------------------------------------------------

-//*         ATMEL Microcontroller Software Support  -  ROUSSET  -

-//*----------------------------------------------------------------------------

-//* The software is delivered "AS IS" without warranty or condition of any

-//* kind, either express, implied or statutory. This includes without

-//* limitation any warranty or condition with respect to merchantability or

-//* fitness for any particular purpose, or against the infringements of

-//* intellectual property rights of others.

-//*----------------------------------------------------------------------------

-//* File Name           : init.c

-//* Object              : Low level initialisations written in C

-//* Creation            : ODi   06/26/2002

-//*

-//*----------------------------------------------------------------------------

-#include "board.h"

-//#include "init.h"

-#include <string.h>

-

-//*----------------------------------------------------------------------------

-//* \fn    AT91F_DBGU_Printk

-//* \brief This function is used to send a string through the DBGU channel (Very low level debugging)

-//*----------------------------------------------------------------------------

-void AT91F_DBGU_Printk(

-	char *buffer) // \arg pointer to a string ending by \0

-{

-	while(*buffer != '\0') {

-		while (!AT91F_US_TxReady((AT91PS_USART)AT91C_BASE_DBGU));

-		AT91F_US_PutChar((AT91PS_USART)AT91C_BASE_DBGU, *buffer++);

-	}

-}

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x128.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x128.h
deleted file mode 100644
index df9cacc..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x128.h
+++ /dev/null
@@ -1,4700 +0,0 @@
-// - ----------------------------------------------------------------------------

-// -          ATMEL Microcontroller Software Support  -  ROUSSET  -

-// - ----------------------------------------------------------------------------

-// -  DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR

-// -  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

-// -  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE

-// -  DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,

-// -  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

-// -  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,

-// -  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF

-// -  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

-// -  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,

-// -  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-// - ----------------------------------------------------------------------------

-// - File Name           : AT91SAM7X128.h

-// - Object              : AT91SAM7X128 definitions

-// - Generated           : AT91 SW Application Group  05/20/2005 (16:22:23)

-// - 

-// - CVS Reference       : /AT91SAM7X128.pl/1.14/Tue May 10 12:12:05 2005//

-// - CVS Reference       : /SYS_SAM7X.pl/1.3/Tue Feb  1 17:01:43 2005//

-// - CVS Reference       : /MC_SAM7X.pl/1.2/Fri May 20 14:13:04 2005//

-// - CVS Reference       : /PMC_SAM7X.pl/1.4/Tue Feb  8 13:58:10 2005//

-// - CVS Reference       : /RSTC_SAM7X.pl/1.1/Tue Feb  1 16:16:26 2005//

-// - CVS Reference       : /UDP_SAM7X.pl/1.1/Tue May 10 11:35:35 2005//

-// - CVS Reference       : /PWM_SAM7X.pl/1.1/Tue May 10 11:53:07 2005//

-// - CVS Reference       : /AIC_6075B.pl/1.3/Fri May 20 14:01:30 2005//

-// - CVS Reference       : /PIO_6057A.pl/1.2/Thu Feb  3 10:18:28 2005//

-// - CVS Reference       : /RTTC_6081A.pl/1.2/Tue Nov  9 14:43:58 2004//

-// - CVS Reference       : /PITC_6079A.pl/1.2/Tue Nov  9 14:43:56 2004//

-// - CVS Reference       : /WDTC_6080A.pl/1.3/Tue Nov  9 14:44:00 2004//

-// - CVS Reference       : /VREG_6085B.pl/1.1/Tue Feb  1 16:05:48 2005//

-// - CVS Reference       : /PDC_6074C.pl/1.2/Thu Feb  3 08:48:54 2005//

-// - CVS Reference       : /DBGU_6059D.pl/1.1/Mon Jan 31 13:15:32 2005//

-// - CVS Reference       : /SPI_6088D.pl/1.3/Fri May 20 14:08:59 2005//

-// - CVS Reference       : /US_6089C.pl/1.1/Mon Jul 12 18:23:26 2004//

-// - CVS Reference       : /SSC_6078A.pl/1.1/Tue Jul 13 07:45:40 2004//

-// - CVS Reference       : /TWI_6061A.pl/1.1/Tue Jul 13 07:38:06 2004//

-// - CVS Reference       : /TC_6082A.pl/1.7/Fri Mar 11 12:52:17 2005//

-// - CVS Reference       : /CAN_6019B.pl/1.1/Tue Mar  8 12:42:22 2005//

-// - CVS Reference       : /EMACB_6119A.pl/1.5/Thu Feb  3 15:52:04 2005//

-// - CVS Reference       : /ADC_6051C.pl/1.1/Fri Oct 17 09:12:38 2003//

-// - CVS Reference       : /AES_6149A.pl/1.10/Mon Feb  7 09:44:25 2005//

-// - CVS Reference       : /DES3_6150A.pl/1.1/Mon Jan 17 08:34:31 2005//

-// - ----------------------------------------------------------------------------

-

-#ifndef AT91SAM7X128_H

-#define AT91SAM7X128_H

-

-#ifdef __IAR_SYSTEMS_ICC__

-

-typedef volatile unsigned int AT91_REG;// Hardware register definition

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR System Peripherals

-// *****************************************************************************

-typedef struct _AT91S_SYS {

-	AT91_REG	 AIC_SMR[32]; 	// Source Mode Register

-	AT91_REG	 AIC_SVR[32]; 	// Source Vector Register

-	AT91_REG	 AIC_IVR; 	// IRQ Vector Register

-	AT91_REG	 AIC_FVR; 	// FIQ Vector Register

-	AT91_REG	 AIC_ISR; 	// Interrupt Status Register

-	AT91_REG	 AIC_IPR; 	// Interrupt Pending Register

-	AT91_REG	 AIC_IMR; 	// Interrupt Mask Register

-	AT91_REG	 AIC_CISR; 	// Core Interrupt Status Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 AIC_IECR; 	// Interrupt Enable Command Register

-	AT91_REG	 AIC_IDCR; 	// Interrupt Disable Command Register

-	AT91_REG	 AIC_ICCR; 	// Interrupt Clear Command Register

-	AT91_REG	 AIC_ISCR; 	// Interrupt Set Command Register

-	AT91_REG	 AIC_EOICR; 	// End of Interrupt Command Register

-	AT91_REG	 AIC_SPU; 	// Spurious Vector Register

-	AT91_REG	 AIC_DCR; 	// Debug Control Register (Protect)

-	AT91_REG	 Reserved1[1]; 	// 

-	AT91_REG	 AIC_FFER; 	// Fast Forcing Enable Register

-	AT91_REG	 AIC_FFDR; 	// Fast Forcing Disable Register

-	AT91_REG	 AIC_FFSR; 	// Fast Forcing Status Register

-	AT91_REG	 Reserved2[45]; 	// 

-	AT91_REG	 DBGU_CR; 	// Control Register

-	AT91_REG	 DBGU_MR; 	// Mode Register

-	AT91_REG	 DBGU_IER; 	// Interrupt Enable Register

-	AT91_REG	 DBGU_IDR; 	// Interrupt Disable Register

-	AT91_REG	 DBGU_IMR; 	// Interrupt Mask Register

-	AT91_REG	 DBGU_CSR; 	// Channel Status Register

-	AT91_REG	 DBGU_RHR; 	// Receiver Holding Register

-	AT91_REG	 DBGU_THR; 	// Transmitter Holding Register

-	AT91_REG	 DBGU_BRGR; 	// Baud Rate Generator Register

-	AT91_REG	 Reserved3[7]; 	// 

-	AT91_REG	 DBGU_CIDR; 	// Chip ID Register

-	AT91_REG	 DBGU_EXID; 	// Chip ID Extension Register

-	AT91_REG	 DBGU_FNTR; 	// Force NTRST Register

-	AT91_REG	 Reserved4[45]; 	// 

-	AT91_REG	 DBGU_RPR; 	// Receive Pointer Register

-	AT91_REG	 DBGU_RCR; 	// Receive Counter Register

-	AT91_REG	 DBGU_TPR; 	// Transmit Pointer Register

-	AT91_REG	 DBGU_TCR; 	// Transmit Counter Register

-	AT91_REG	 DBGU_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 DBGU_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 DBGU_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 DBGU_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 DBGU_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 DBGU_PTSR; 	// PDC Transfer Status Register

-	AT91_REG	 Reserved5[54]; 	// 

-	AT91_REG	 PIOA_PER; 	// PIO Enable Register

-	AT91_REG	 PIOA_PDR; 	// PIO Disable Register

-	AT91_REG	 PIOA_PSR; 	// PIO Status Register

-	AT91_REG	 Reserved6[1]; 	// 

-	AT91_REG	 PIOA_OER; 	// Output Enable Register

-	AT91_REG	 PIOA_ODR; 	// Output Disable Registerr

-	AT91_REG	 PIOA_OSR; 	// Output Status Register

-	AT91_REG	 Reserved7[1]; 	// 

-	AT91_REG	 PIOA_IFER; 	// Input Filter Enable Register

-	AT91_REG	 PIOA_IFDR; 	// Input Filter Disable Register

-	AT91_REG	 PIOA_IFSR; 	// Input Filter Status Register

-	AT91_REG	 Reserved8[1]; 	// 

-	AT91_REG	 PIOA_SODR; 	// Set Output Data Register

-	AT91_REG	 PIOA_CODR; 	// Clear Output Data Register

-	AT91_REG	 PIOA_ODSR; 	// Output Data Status Register

-	AT91_REG	 PIOA_PDSR; 	// Pin Data Status Register

-	AT91_REG	 PIOA_IER; 	// Interrupt Enable Register

-	AT91_REG	 PIOA_IDR; 	// Interrupt Disable Register

-	AT91_REG	 PIOA_IMR; 	// Interrupt Mask Register

-	AT91_REG	 PIOA_ISR; 	// Interrupt Status Register

-	AT91_REG	 PIOA_MDER; 	// Multi-driver Enable Register

-	AT91_REG	 PIOA_MDDR; 	// Multi-driver Disable Register

-	AT91_REG	 PIOA_MDSR; 	// Multi-driver Status Register

-	AT91_REG	 Reserved9[1]; 	// 

-	AT91_REG	 PIOA_PPUDR; 	// Pull-up Disable Register

-	AT91_REG	 PIOA_PPUER; 	// Pull-up Enable Register

-	AT91_REG	 PIOA_PPUSR; 	// Pull-up Status Register

-	AT91_REG	 Reserved10[1]; 	// 

-	AT91_REG	 PIOA_ASR; 	// Select A Register

-	AT91_REG	 PIOA_BSR; 	// Select B Register

-	AT91_REG	 PIOA_ABSR; 	// AB Select Status Register

-	AT91_REG	 Reserved11[9]; 	// 

-	AT91_REG	 PIOA_OWER; 	// Output Write Enable Register

-	AT91_REG	 PIOA_OWDR; 	// Output Write Disable Register

-	AT91_REG	 PIOA_OWSR; 	// Output Write Status Register

-	AT91_REG	 Reserved12[85]; 	// 

-	AT91_REG	 PIOB_PER; 	// PIO Enable Register

-	AT91_REG	 PIOB_PDR; 	// PIO Disable Register

-	AT91_REG	 PIOB_PSR; 	// PIO Status Register

-	AT91_REG	 Reserved13[1]; 	// 

-	AT91_REG	 PIOB_OER; 	// Output Enable Register

-	AT91_REG	 PIOB_ODR; 	// Output Disable Registerr

-	AT91_REG	 PIOB_OSR; 	// Output Status Register

-	AT91_REG	 Reserved14[1]; 	// 

-	AT91_REG	 PIOB_IFER; 	// Input Filter Enable Register

-	AT91_REG	 PIOB_IFDR; 	// Input Filter Disable Register

-	AT91_REG	 PIOB_IFSR; 	// Input Filter Status Register

-	AT91_REG	 Reserved15[1]; 	// 

-	AT91_REG	 PIOB_SODR; 	// Set Output Data Register

-	AT91_REG	 PIOB_CODR; 	// Clear Output Data Register

-	AT91_REG	 PIOB_ODSR; 	// Output Data Status Register

-	AT91_REG	 PIOB_PDSR; 	// Pin Data Status Register

-	AT91_REG	 PIOB_IER; 	// Interrupt Enable Register

-	AT91_REG	 PIOB_IDR; 	// Interrupt Disable Register

-	AT91_REG	 PIOB_IMR; 	// Interrupt Mask Register

-	AT91_REG	 PIOB_ISR; 	// Interrupt Status Register

-	AT91_REG	 PIOB_MDER; 	// Multi-driver Enable Register

-	AT91_REG	 PIOB_MDDR; 	// Multi-driver Disable Register

-	AT91_REG	 PIOB_MDSR; 	// Multi-driver Status Register

-	AT91_REG	 Reserved16[1]; 	// 

-	AT91_REG	 PIOB_PPUDR; 	// Pull-up Disable Register

-	AT91_REG	 PIOB_PPUER; 	// Pull-up Enable Register

-	AT91_REG	 PIOB_PPUSR; 	// Pull-up Status Register

-	AT91_REG	 Reserved17[1]; 	// 

-	AT91_REG	 PIOB_ASR; 	// Select A Register

-	AT91_REG	 PIOB_BSR; 	// Select B Register

-	AT91_REG	 PIOB_ABSR; 	// AB Select Status Register

-	AT91_REG	 Reserved18[9]; 	// 

-	AT91_REG	 PIOB_OWER; 	// Output Write Enable Register

-	AT91_REG	 PIOB_OWDR; 	// Output Write Disable Register

-	AT91_REG	 PIOB_OWSR; 	// Output Write Status Register

-	AT91_REG	 Reserved19[341]; 	// 

-	AT91_REG	 PMC_SCER; 	// System Clock Enable Register

-	AT91_REG	 PMC_SCDR; 	// System Clock Disable Register

-	AT91_REG	 PMC_SCSR; 	// System Clock Status Register

-	AT91_REG	 Reserved20[1]; 	// 

-	AT91_REG	 PMC_PCER; 	// Peripheral Clock Enable Register

-	AT91_REG	 PMC_PCDR; 	// Peripheral Clock Disable Register

-	AT91_REG	 PMC_PCSR; 	// Peripheral Clock Status Register

-	AT91_REG	 Reserved21[1]; 	// 

-	AT91_REG	 PMC_MOR; 	// Main Oscillator Register

-	AT91_REG	 PMC_MCFR; 	// Main Clock  Frequency Register

-	AT91_REG	 Reserved22[1]; 	// 

-	AT91_REG	 PMC_PLLR; 	// PLL Register

-	AT91_REG	 PMC_MCKR; 	// Master Clock Register

-	AT91_REG	 Reserved23[3]; 	// 

-	AT91_REG	 PMC_PCKR[4]; 	// Programmable Clock Register

-	AT91_REG	 Reserved24[4]; 	// 

-	AT91_REG	 PMC_IER; 	// Interrupt Enable Register

-	AT91_REG	 PMC_IDR; 	// Interrupt Disable Register

-	AT91_REG	 PMC_SR; 	// Status Register

-	AT91_REG	 PMC_IMR; 	// Interrupt Mask Register

-	AT91_REG	 Reserved25[36]; 	// 

-	AT91_REG	 RSTC_RCR; 	// Reset Control Register

-	AT91_REG	 RSTC_RSR; 	// Reset Status Register

-	AT91_REG	 RSTC_RMR; 	// Reset Mode Register

-	AT91_REG	 Reserved26[5]; 	// 

-	AT91_REG	 RTTC_RTMR; 	// Real-time Mode Register

-	AT91_REG	 RTTC_RTAR; 	// Real-time Alarm Register

-	AT91_REG	 RTTC_RTVR; 	// Real-time Value Register

-	AT91_REG	 RTTC_RTSR; 	// Real-time Status Register

-	AT91_REG	 PITC_PIMR; 	// Period Interval Mode Register

-	AT91_REG	 PITC_PISR; 	// Period Interval Status Register

-	AT91_REG	 PITC_PIVR; 	// Period Interval Value Register

-	AT91_REG	 PITC_PIIR; 	// Period Interval Image Register

-	AT91_REG	 WDTC_WDCR; 	// Watchdog Control Register

-	AT91_REG	 WDTC_WDMR; 	// Watchdog Mode Register

-	AT91_REG	 WDTC_WDSR; 	// Watchdog Status Register

-	AT91_REG	 Reserved27[5]; 	// 

-	AT91_REG	 VREG_MR; 	// Voltage Regulator Mode Register

-} AT91S_SYS, *AT91PS_SYS;

-

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Advanced Interrupt Controller

-// *****************************************************************************

-typedef struct _AT91S_AIC {

-	AT91_REG	 AIC_SMR[32]; 	// Source Mode Register

-	AT91_REG	 AIC_SVR[32]; 	// Source Vector Register

-	AT91_REG	 AIC_IVR; 	// IRQ Vector Register

-	AT91_REG	 AIC_FVR; 	// FIQ Vector Register

-	AT91_REG	 AIC_ISR; 	// Interrupt Status Register

-	AT91_REG	 AIC_IPR; 	// Interrupt Pending Register

-	AT91_REG	 AIC_IMR; 	// Interrupt Mask Register

-	AT91_REG	 AIC_CISR; 	// Core Interrupt Status Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 AIC_IECR; 	// Interrupt Enable Command Register

-	AT91_REG	 AIC_IDCR; 	// Interrupt Disable Command Register

-	AT91_REG	 AIC_ICCR; 	// Interrupt Clear Command Register

-	AT91_REG	 AIC_ISCR; 	// Interrupt Set Command Register

-	AT91_REG	 AIC_EOICR; 	// End of Interrupt Command Register

-	AT91_REG	 AIC_SPU; 	// Spurious Vector Register

-	AT91_REG	 AIC_DCR; 	// Debug Control Register (Protect)

-	AT91_REG	 Reserved1[1]; 	// 

-	AT91_REG	 AIC_FFER; 	// Fast Forcing Enable Register

-	AT91_REG	 AIC_FFDR; 	// Fast Forcing Disable Register

-	AT91_REG	 AIC_FFSR; 	// Fast Forcing Status Register

-} AT91S_AIC, *AT91PS_AIC;

-

-// -------- AIC_SMR : (AIC Offset: 0x0) Control Register -------- 

-#define AT91C_AIC_PRIOR       ((unsigned int) 0x7 <<  0) // (AIC) Priority Level

-#define 	AT91C_AIC_PRIOR_LOWEST               ((unsigned int) 0x0) // (AIC) Lowest priority level

-#define 	AT91C_AIC_PRIOR_HIGHEST              ((unsigned int) 0x7) // (AIC) Highest priority level

-#define AT91C_AIC_SRCTYPE     ((unsigned int) 0x3 <<  5) // (AIC) Interrupt Source Type

-#define 	AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL       ((unsigned int) 0x0 <<  5) // (AIC) Internal Sources Code Label High-level Sensitive

-#define 	AT91C_AIC_SRCTYPE_EXT_LOW_LEVEL        ((unsigned int) 0x0 <<  5) // (AIC) External Sources Code Label Low-level Sensitive

-#define 	AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE    ((unsigned int) 0x1 <<  5) // (AIC) Internal Sources Code Label Positive Edge triggered

-#define 	AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE    ((unsigned int) 0x1 <<  5) // (AIC) External Sources Code Label Negative Edge triggered

-#define 	AT91C_AIC_SRCTYPE_HIGH_LEVEL           ((unsigned int) 0x2 <<  5) // (AIC) Internal Or External Sources Code Label High-level Sensitive

-#define 	AT91C_AIC_SRCTYPE_POSITIVE_EDGE        ((unsigned int) 0x3 <<  5) // (AIC) Internal Or External Sources Code Label Positive Edge triggered

-// -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register -------- 

-#define AT91C_AIC_NFIQ        ((unsigned int) 0x1 <<  0) // (AIC) NFIQ Status

-#define AT91C_AIC_NIRQ        ((unsigned int) 0x1 <<  1) // (AIC) NIRQ Status

-// -------- AIC_DCR : (AIC Offset: 0x138) AIC Debug Control Register (Protect) -------- 

-#define AT91C_AIC_DCR_PROT    ((unsigned int) 0x1 <<  0) // (AIC) Protection Mode

-#define AT91C_AIC_DCR_GMSK    ((unsigned int) 0x1 <<  1) // (AIC) General Mask

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Peripheral DMA Controller

-// *****************************************************************************

-typedef struct _AT91S_PDC {

-	AT91_REG	 PDC_RPR; 	// Receive Pointer Register

-	AT91_REG	 PDC_RCR; 	// Receive Counter Register

-	AT91_REG	 PDC_TPR; 	// Transmit Pointer Register

-	AT91_REG	 PDC_TCR; 	// Transmit Counter Register

-	AT91_REG	 PDC_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 PDC_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 PDC_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 PDC_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 PDC_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 PDC_PTSR; 	// PDC Transfer Status Register

-} AT91S_PDC, *AT91PS_PDC;

-

-// -------- PDC_PTCR : (PDC Offset: 0x20) PDC Transfer Control Register -------- 

-#define AT91C_PDC_RXTEN       ((unsigned int) 0x1 <<  0) // (PDC) Receiver Transfer Enable

-#define AT91C_PDC_RXTDIS      ((unsigned int) 0x1 <<  1) // (PDC) Receiver Transfer Disable

-#define AT91C_PDC_TXTEN       ((unsigned int) 0x1 <<  8) // (PDC) Transmitter Transfer Enable

-#define AT91C_PDC_TXTDIS      ((unsigned int) 0x1 <<  9) // (PDC) Transmitter Transfer Disable

-// -------- PDC_PTSR : (PDC Offset: 0x24) PDC Transfer Status Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Debug Unit

-// *****************************************************************************

-typedef struct _AT91S_DBGU {

-	AT91_REG	 DBGU_CR; 	// Control Register

-	AT91_REG	 DBGU_MR; 	// Mode Register

-	AT91_REG	 DBGU_IER; 	// Interrupt Enable Register

-	AT91_REG	 DBGU_IDR; 	// Interrupt Disable Register

-	AT91_REG	 DBGU_IMR; 	// Interrupt Mask Register

-	AT91_REG	 DBGU_CSR; 	// Channel Status Register

-	AT91_REG	 DBGU_RHR; 	// Receiver Holding Register

-	AT91_REG	 DBGU_THR; 	// Transmitter Holding Register

-	AT91_REG	 DBGU_BRGR; 	// Baud Rate Generator Register

-	AT91_REG	 Reserved0[7]; 	// 

-	AT91_REG	 DBGU_CIDR; 	// Chip ID Register

-	AT91_REG	 DBGU_EXID; 	// Chip ID Extension Register

-	AT91_REG	 DBGU_FNTR; 	// Force NTRST Register

-	AT91_REG	 Reserved1[45]; 	// 

-	AT91_REG	 DBGU_RPR; 	// Receive Pointer Register

-	AT91_REG	 DBGU_RCR; 	// Receive Counter Register

-	AT91_REG	 DBGU_TPR; 	// Transmit Pointer Register

-	AT91_REG	 DBGU_TCR; 	// Transmit Counter Register

-	AT91_REG	 DBGU_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 DBGU_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 DBGU_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 DBGU_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 DBGU_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 DBGU_PTSR; 	// PDC Transfer Status Register

-} AT91S_DBGU, *AT91PS_DBGU;

-

-// -------- DBGU_CR : (DBGU Offset: 0x0) Debug Unit Control Register -------- 

-#define AT91C_US_RSTRX        ((unsigned int) 0x1 <<  2) // (DBGU) Reset Receiver

-#define AT91C_US_RSTTX        ((unsigned int) 0x1 <<  3) // (DBGU) Reset Transmitter

-#define AT91C_US_RXEN         ((unsigned int) 0x1 <<  4) // (DBGU) Receiver Enable

-#define AT91C_US_RXDIS        ((unsigned int) 0x1 <<  5) // (DBGU) Receiver Disable

-#define AT91C_US_TXEN         ((unsigned int) 0x1 <<  6) // (DBGU) Transmitter Enable

-#define AT91C_US_TXDIS        ((unsigned int) 0x1 <<  7) // (DBGU) Transmitter Disable

-#define AT91C_US_RSTSTA       ((unsigned int) 0x1 <<  8) // (DBGU) Reset Status Bits

-// -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register -------- 

-#define AT91C_US_PAR          ((unsigned int) 0x7 <<  9) // (DBGU) Parity type

-#define 	AT91C_US_PAR_EVEN                 ((unsigned int) 0x0 <<  9) // (DBGU) Even Parity

-#define 	AT91C_US_PAR_ODD                  ((unsigned int) 0x1 <<  9) // (DBGU) Odd Parity

-#define 	AT91C_US_PAR_SPACE                ((unsigned int) 0x2 <<  9) // (DBGU) Parity forced to 0 (Space)

-#define 	AT91C_US_PAR_MARK                 ((unsigned int) 0x3 <<  9) // (DBGU) Parity forced to 1 (Mark)

-#define 	AT91C_US_PAR_NONE                 ((unsigned int) 0x4 <<  9) // (DBGU) No Parity

-#define 	AT91C_US_PAR_MULTI_DROP           ((unsigned int) 0x6 <<  9) // (DBGU) Multi-drop mode

-#define AT91C_US_CHMODE       ((unsigned int) 0x3 << 14) // (DBGU) Channel Mode

-#define 	AT91C_US_CHMODE_NORMAL               ((unsigned int) 0x0 << 14) // (DBGU) Normal Mode: The USART channel operates as an RX/TX USART.

-#define 	AT91C_US_CHMODE_AUTO                 ((unsigned int) 0x1 << 14) // (DBGU) Automatic Echo: Receiver Data Input is connected to the TXD pin.

-#define 	AT91C_US_CHMODE_LOCAL                ((unsigned int) 0x2 << 14) // (DBGU) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal.

-#define 	AT91C_US_CHMODE_REMOTE               ((unsigned int) 0x3 << 14) // (DBGU) Remote Loopback: RXD pin is internally connected to TXD pin.

-// -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register -------- 

-#define AT91C_US_RXRDY        ((unsigned int) 0x1 <<  0) // (DBGU) RXRDY Interrupt

-#define AT91C_US_TXRDY        ((unsigned int) 0x1 <<  1) // (DBGU) TXRDY Interrupt

-#define AT91C_US_ENDRX        ((unsigned int) 0x1 <<  3) // (DBGU) End of Receive Transfer Interrupt

-#define AT91C_US_ENDTX        ((unsigned int) 0x1 <<  4) // (DBGU) End of Transmit Interrupt

-#define AT91C_US_OVRE         ((unsigned int) 0x1 <<  5) // (DBGU) Overrun Interrupt

-#define AT91C_US_FRAME        ((unsigned int) 0x1 <<  6) // (DBGU) Framing Error Interrupt

-#define AT91C_US_PARE         ((unsigned int) 0x1 <<  7) // (DBGU) Parity Error Interrupt

-#define AT91C_US_TXEMPTY      ((unsigned int) 0x1 <<  9) // (DBGU) TXEMPTY Interrupt

-#define AT91C_US_TXBUFE       ((unsigned int) 0x1 << 11) // (DBGU) TXBUFE Interrupt

-#define AT91C_US_RXBUFF       ((unsigned int) 0x1 << 12) // (DBGU) RXBUFF Interrupt

-#define AT91C_US_COMM_TX      ((unsigned int) 0x1 << 30) // (DBGU) COMM_TX Interrupt

-#define AT91C_US_COMM_RX      ((unsigned int) 0x1 << 31) // (DBGU) COMM_RX Interrupt

-// -------- DBGU_IDR : (DBGU Offset: 0xc) Debug Unit Interrupt Disable Register -------- 

-// -------- DBGU_IMR : (DBGU Offset: 0x10) Debug Unit Interrupt Mask Register -------- 

-// -------- DBGU_CSR : (DBGU Offset: 0x14) Debug Unit Channel Status Register -------- 

-// -------- DBGU_FNTR : (DBGU Offset: 0x48) Debug Unit FORCE_NTRST Register -------- 

-#define AT91C_US_FORCE_NTRST  ((unsigned int) 0x1 <<  0) // (DBGU) Force NTRST in JTAG

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Parallel Input Output Controler

-// *****************************************************************************

-typedef struct _AT91S_PIO {

-	AT91_REG	 PIO_PER; 	// PIO Enable Register

-	AT91_REG	 PIO_PDR; 	// PIO Disable Register

-	AT91_REG	 PIO_PSR; 	// PIO Status Register

-	AT91_REG	 Reserved0[1]; 	// 

-	AT91_REG	 PIO_OER; 	// Output Enable Register

-	AT91_REG	 PIO_ODR; 	// Output Disable Registerr

-	AT91_REG	 PIO_OSR; 	// Output Status Register

-	AT91_REG	 Reserved1[1]; 	// 

-	AT91_REG	 PIO_IFER; 	// Input Filter Enable Register

-	AT91_REG	 PIO_IFDR; 	// Input Filter Disable Register

-	AT91_REG	 PIO_IFSR; 	// Input Filter Status Register

-	AT91_REG	 Reserved2[1]; 	// 

-	AT91_REG	 PIO_SODR; 	// Set Output Data Register

-	AT91_REG	 PIO_CODR; 	// Clear Output Data Register

-	AT91_REG	 PIO_ODSR; 	// Output Data Status Register

-	AT91_REG	 PIO_PDSR; 	// Pin Data Status Register

-	AT91_REG	 PIO_IER; 	// Interrupt Enable Register

-	AT91_REG	 PIO_IDR; 	// Interrupt Disable Register

-	AT91_REG	 PIO_IMR; 	// Interrupt Mask Register

-	AT91_REG	 PIO_ISR; 	// Interrupt Status Register

-	AT91_REG	 PIO_MDER; 	// Multi-driver Enable Register

-	AT91_REG	 PIO_MDDR; 	// Multi-driver Disable Register

-	AT91_REG	 PIO_MDSR; 	// Multi-driver Status Register

-	AT91_REG	 Reserved3[1]; 	// 

-	AT91_REG	 PIO_PPUDR; 	// Pull-up Disable Register

-	AT91_REG	 PIO_PPUER; 	// Pull-up Enable Register

-	AT91_REG	 PIO_PPUSR; 	// Pull-up Status Register

-	AT91_REG	 Reserved4[1]; 	// 

-	AT91_REG	 PIO_ASR; 	// Select A Register

-	AT91_REG	 PIO_BSR; 	// Select B Register

-	AT91_REG	 PIO_ABSR; 	// AB Select Status Register

-	AT91_REG	 Reserved5[9]; 	// 

-	AT91_REG	 PIO_OWER; 	// Output Write Enable Register

-	AT91_REG	 PIO_OWDR; 	// Output Write Disable Register

-	AT91_REG	 PIO_OWSR; 	// Output Write Status Register

-} AT91S_PIO, *AT91PS_PIO;

-

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Clock Generator Controler

-// *****************************************************************************

-typedef struct _AT91S_CKGR {

-	AT91_REG	 CKGR_MOR; 	// Main Oscillator Register

-	AT91_REG	 CKGR_MCFR; 	// Main Clock  Frequency Register

-	AT91_REG	 Reserved0[1]; 	// 

-	AT91_REG	 CKGR_PLLR; 	// PLL Register

-} AT91S_CKGR, *AT91PS_CKGR;

-

-// -------- CKGR_MOR : (CKGR Offset: 0x0) Main Oscillator Register -------- 

-#define AT91C_CKGR_MOSCEN     ((unsigned int) 0x1 <<  0) // (CKGR) Main Oscillator Enable

-#define AT91C_CKGR_OSCBYPASS  ((unsigned int) 0x1 <<  1) // (CKGR) Main Oscillator Bypass

-#define AT91C_CKGR_OSCOUNT    ((unsigned int) 0xFF <<  8) // (CKGR) Main Oscillator Start-up Time

-// -------- CKGR_MCFR : (CKGR Offset: 0x4) Main Clock Frequency Register -------- 

-#define AT91C_CKGR_MAINF      ((unsigned int) 0xFFFF <<  0) // (CKGR) Main Clock Frequency

-#define AT91C_CKGR_MAINRDY    ((unsigned int) 0x1 << 16) // (CKGR) Main Clock Ready

-// -------- CKGR_PLLR : (CKGR Offset: 0xc) PLL B Register -------- 

-#define AT91C_CKGR_DIV        ((unsigned int) 0xFF <<  0) // (CKGR) Divider Selected

-#define 	AT91C_CKGR_DIV_0                    ((unsigned int) 0x0) // (CKGR) Divider output is 0

-#define 	AT91C_CKGR_DIV_BYPASS               ((unsigned int) 0x1) // (CKGR) Divider is bypassed

-#define AT91C_CKGR_PLLCOUNT   ((unsigned int) 0x3F <<  8) // (CKGR) PLL Counter

-#define AT91C_CKGR_OUT        ((unsigned int) 0x3 << 14) // (CKGR) PLL Output Frequency Range

-#define 	AT91C_CKGR_OUT_0                    ((unsigned int) 0x0 << 14) // (CKGR) Please refer to the PLL datasheet

-#define 	AT91C_CKGR_OUT_1                    ((unsigned int) 0x1 << 14) // (CKGR) Please refer to the PLL datasheet

-#define 	AT91C_CKGR_OUT_2                    ((unsigned int) 0x2 << 14) // (CKGR) Please refer to the PLL datasheet

-#define 	AT91C_CKGR_OUT_3                    ((unsigned int) 0x3 << 14) // (CKGR) Please refer to the PLL datasheet

-#define AT91C_CKGR_MUL        ((unsigned int) 0x7FF << 16) // (CKGR) PLL Multiplier

-#define AT91C_CKGR_USBDIV     ((unsigned int) 0x3 << 28) // (CKGR) Divider for USB Clocks

-#define 	AT91C_CKGR_USBDIV_0                    ((unsigned int) 0x0 << 28) // (CKGR) Divider output is PLL clock output

-#define 	AT91C_CKGR_USBDIV_1                    ((unsigned int) 0x1 << 28) // (CKGR) Divider output is PLL clock output divided by 2

-#define 	AT91C_CKGR_USBDIV_2                    ((unsigned int) 0x2 << 28) // (CKGR) Divider output is PLL clock output divided by 4

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Power Management Controler

-// *****************************************************************************

-typedef struct _AT91S_PMC {

-	AT91_REG	 PMC_SCER; 	// System Clock Enable Register

-	AT91_REG	 PMC_SCDR; 	// System Clock Disable Register

-	AT91_REG	 PMC_SCSR; 	// System Clock Status Register

-	AT91_REG	 Reserved0[1]; 	// 

-	AT91_REG	 PMC_PCER; 	// Peripheral Clock Enable Register

-	AT91_REG	 PMC_PCDR; 	// Peripheral Clock Disable Register

-	AT91_REG	 PMC_PCSR; 	// Peripheral Clock Status Register

-	AT91_REG	 Reserved1[1]; 	// 

-	AT91_REG	 PMC_MOR; 	// Main Oscillator Register

-	AT91_REG	 PMC_MCFR; 	// Main Clock  Frequency Register

-	AT91_REG	 Reserved2[1]; 	// 

-	AT91_REG	 PMC_PLLR; 	// PLL Register

-	AT91_REG	 PMC_MCKR; 	// Master Clock Register

-	AT91_REG	 Reserved3[3]; 	// 

-	AT91_REG	 PMC_PCKR[4]; 	// Programmable Clock Register

-	AT91_REG	 Reserved4[4]; 	// 

-	AT91_REG	 PMC_IER; 	// Interrupt Enable Register

-	AT91_REG	 PMC_IDR; 	// Interrupt Disable Register

-	AT91_REG	 PMC_SR; 	// Status Register

-	AT91_REG	 PMC_IMR; 	// Interrupt Mask Register

-} AT91S_PMC, *AT91PS_PMC;

-

-// -------- PMC_SCER : (PMC Offset: 0x0) System Clock Enable Register -------- 

-#define AT91C_PMC_PCK         ((unsigned int) 0x1 <<  0) // (PMC) Processor Clock

-#define AT91C_PMC_UDP         ((unsigned int) 0x1 <<  7) // (PMC) USB Device Port Clock

-#define AT91C_PMC_PCK0        ((unsigned int) 0x1 <<  8) // (PMC) Programmable Clock Output

-#define AT91C_PMC_PCK1        ((unsigned int) 0x1 <<  9) // (PMC) Programmable Clock Output

-#define AT91C_PMC_PCK2        ((unsigned int) 0x1 << 10) // (PMC) Programmable Clock Output

-#define AT91C_PMC_PCK3        ((unsigned int) 0x1 << 11) // (PMC) Programmable Clock Output

-// -------- PMC_SCDR : (PMC Offset: 0x4) System Clock Disable Register -------- 

-// -------- PMC_SCSR : (PMC Offset: 0x8) System Clock Status Register -------- 

-// -------- CKGR_MOR : (PMC Offset: 0x20) Main Oscillator Register -------- 

-// -------- CKGR_MCFR : (PMC Offset: 0x24) Main Clock Frequency Register -------- 

-// -------- CKGR_PLLR : (PMC Offset: 0x2c) PLL B Register -------- 

-// -------- PMC_MCKR : (PMC Offset: 0x30) Master Clock Register -------- 

-#define AT91C_PMC_CSS         ((unsigned int) 0x3 <<  0) // (PMC) Programmable Clock Selection

-#define 	AT91C_PMC_CSS_SLOW_CLK             ((unsigned int) 0x0) // (PMC) Slow Clock is selected

-#define 	AT91C_PMC_CSS_MAIN_CLK             ((unsigned int) 0x1) // (PMC) Main Clock is selected

-#define 	AT91C_PMC_CSS_PLL_CLK              ((unsigned int) 0x3) // (PMC) Clock from PLL is selected

-#define AT91C_PMC_PRES        ((unsigned int) 0x7 <<  2) // (PMC) Programmable Clock Prescaler

-#define 	AT91C_PMC_PRES_CLK                  ((unsigned int) 0x0 <<  2) // (PMC) Selected clock

-#define 	AT91C_PMC_PRES_CLK_2                ((unsigned int) 0x1 <<  2) // (PMC) Selected clock divided by 2

-#define 	AT91C_PMC_PRES_CLK_4                ((unsigned int) 0x2 <<  2) // (PMC) Selected clock divided by 4

-#define 	AT91C_PMC_PRES_CLK_8                ((unsigned int) 0x3 <<  2) // (PMC) Selected clock divided by 8

-#define 	AT91C_PMC_PRES_CLK_16               ((unsigned int) 0x4 <<  2) // (PMC) Selected clock divided by 16

-#define 	AT91C_PMC_PRES_CLK_32               ((unsigned int) 0x5 <<  2) // (PMC) Selected clock divided by 32

-#define 	AT91C_PMC_PRES_CLK_64               ((unsigned int) 0x6 <<  2) // (PMC) Selected clock divided by 64

-// -------- PMC_PCKR : (PMC Offset: 0x40) Programmable Clock Register -------- 

-// -------- PMC_IER : (PMC Offset: 0x60) PMC Interrupt Enable Register -------- 

-#define AT91C_PMC_MOSCS       ((unsigned int) 0x1 <<  0) // (PMC) MOSC Status/Enable/Disable/Mask

-#define AT91C_PMC_LOCK        ((unsigned int) 0x1 <<  2) // (PMC) PLL Status/Enable/Disable/Mask

-#define AT91C_PMC_MCKRDY      ((unsigned int) 0x1 <<  3) // (PMC) MCK_RDY Status/Enable/Disable/Mask

-#define AT91C_PMC_PCK0RDY     ((unsigned int) 0x1 <<  8) // (PMC) PCK0_RDY Status/Enable/Disable/Mask

-#define AT91C_PMC_PCK1RDY     ((unsigned int) 0x1 <<  9) // (PMC) PCK1_RDY Status/Enable/Disable/Mask

-#define AT91C_PMC_PCK2RDY     ((unsigned int) 0x1 << 10) // (PMC) PCK2_RDY Status/Enable/Disable/Mask

-#define AT91C_PMC_PCK3RDY     ((unsigned int) 0x1 << 11) // (PMC) PCK3_RDY Status/Enable/Disable/Mask

-// -------- PMC_IDR : (PMC Offset: 0x64) PMC Interrupt Disable Register -------- 

-// -------- PMC_SR : (PMC Offset: 0x68) PMC Status Register -------- 

-// -------- PMC_IMR : (PMC Offset: 0x6c) PMC Interrupt Mask Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Reset Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_RSTC {

-	AT91_REG	 RSTC_RCR; 	// Reset Control Register

-	AT91_REG	 RSTC_RSR; 	// Reset Status Register

-	AT91_REG	 RSTC_RMR; 	// Reset Mode Register

-} AT91S_RSTC, *AT91PS_RSTC;

-

-// -------- RSTC_RCR : (RSTC Offset: 0x0) Reset Control Register -------- 

-#define AT91C_RSTC_PROCRST    ((unsigned int) 0x1 <<  0) // (RSTC) Processor Reset

-#define AT91C_RSTC_PERRST     ((unsigned int) 0x1 <<  2) // (RSTC) Peripheral Reset

-#define AT91C_RSTC_EXTRST     ((unsigned int) 0x1 <<  3) // (RSTC) External Reset

-#define AT91C_RSTC_KEY        ((unsigned int) 0xFF << 24) // (RSTC) Password

-// -------- RSTC_RSR : (RSTC Offset: 0x4) Reset Status Register -------- 

-#define AT91C_RSTC_URSTS      ((unsigned int) 0x1 <<  0) // (RSTC) User Reset Status

-#define AT91C_RSTC_BODSTS     ((unsigned int) 0x1 <<  1) // (RSTC) Brownout Detection Status

-#define AT91C_RSTC_RSTTYP     ((unsigned int) 0x7 <<  8) // (RSTC) Reset Type

-#define 	AT91C_RSTC_RSTTYP_POWERUP              ((unsigned int) 0x0 <<  8) // (RSTC) Power-up Reset. VDDCORE rising.

-#define 	AT91C_RSTC_RSTTYP_WAKEUP               ((unsigned int) 0x1 <<  8) // (RSTC) WakeUp Reset. VDDCORE rising.

-#define 	AT91C_RSTC_RSTTYP_WATCHDOG             ((unsigned int) 0x2 <<  8) // (RSTC) Watchdog Reset. Watchdog overflow occured.

-#define 	AT91C_RSTC_RSTTYP_SOFTWARE             ((unsigned int) 0x3 <<  8) // (RSTC) Software Reset. Processor reset required by the software.

-#define 	AT91C_RSTC_RSTTYP_USER                 ((unsigned int) 0x4 <<  8) // (RSTC) User Reset. NRST pin detected low.

-#define 	AT91C_RSTC_RSTTYP_BROWNOUT             ((unsigned int) 0x5 <<  8) // (RSTC) Brownout Reset occured.

-#define AT91C_RSTC_NRSTL      ((unsigned int) 0x1 << 16) // (RSTC) NRST pin level

-#define AT91C_RSTC_SRCMP      ((unsigned int) 0x1 << 17) // (RSTC) Software Reset Command in Progress.

-// -------- RSTC_RMR : (RSTC Offset: 0x8) Reset Mode Register -------- 

-#define AT91C_RSTC_URSTEN     ((unsigned int) 0x1 <<  0) // (RSTC) User Reset Enable

-#define AT91C_RSTC_URSTIEN    ((unsigned int) 0x1 <<  4) // (RSTC) User Reset Interrupt Enable

-#define AT91C_RSTC_ERSTL      ((unsigned int) 0xF <<  8) // (RSTC) User Reset Enable

-#define AT91C_RSTC_BODIEN     ((unsigned int) 0x1 << 16) // (RSTC) Brownout Detection Interrupt Enable

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Real Time Timer Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_RTTC {

-	AT91_REG	 RTTC_RTMR; 	// Real-time Mode Register

-	AT91_REG	 RTTC_RTAR; 	// Real-time Alarm Register

-	AT91_REG	 RTTC_RTVR; 	// Real-time Value Register

-	AT91_REG	 RTTC_RTSR; 	// Real-time Status Register

-} AT91S_RTTC, *AT91PS_RTTC;

-

-// -------- RTTC_RTMR : (RTTC Offset: 0x0) Real-time Mode Register -------- 

-#define AT91C_RTTC_RTPRES     ((unsigned int) 0xFFFF <<  0) // (RTTC) Real-time Timer Prescaler Value

-#define AT91C_RTTC_ALMIEN     ((unsigned int) 0x1 << 16) // (RTTC) Alarm Interrupt Enable

-#define AT91C_RTTC_RTTINCIEN  ((unsigned int) 0x1 << 17) // (RTTC) Real Time Timer Increment Interrupt Enable

-#define AT91C_RTTC_RTTRST     ((unsigned int) 0x1 << 18) // (RTTC) Real Time Timer Restart

-// -------- RTTC_RTAR : (RTTC Offset: 0x4) Real-time Alarm Register -------- 

-#define AT91C_RTTC_ALMV       ((unsigned int) 0x0 <<  0) // (RTTC) Alarm Value

-// -------- RTTC_RTVR : (RTTC Offset: 0x8) Current Real-time Value Register -------- 

-#define AT91C_RTTC_CRTV       ((unsigned int) 0x0 <<  0) // (RTTC) Current Real-time Value

-// -------- RTTC_RTSR : (RTTC Offset: 0xc) Real-time Status Register -------- 

-#define AT91C_RTTC_ALMS       ((unsigned int) 0x1 <<  0) // (RTTC) Real-time Alarm Status

-#define AT91C_RTTC_RTTINC     ((unsigned int) 0x1 <<  1) // (RTTC) Real-time Timer Increment

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Periodic Interval Timer Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_PITC {

-	AT91_REG	 PITC_PIMR; 	// Period Interval Mode Register

-	AT91_REG	 PITC_PISR; 	// Period Interval Status Register

-	AT91_REG	 PITC_PIVR; 	// Period Interval Value Register

-	AT91_REG	 PITC_PIIR; 	// Period Interval Image Register

-} AT91S_PITC, *AT91PS_PITC;

-

-// -------- PITC_PIMR : (PITC Offset: 0x0) Periodic Interval Mode Register -------- 

-#define AT91C_PITC_PIV        ((unsigned int) 0xFFFFF <<  0) // (PITC) Periodic Interval Value

-#define AT91C_PITC_PITEN      ((unsigned int) 0x1 << 24) // (PITC) Periodic Interval Timer Enabled

-#define AT91C_PITC_PITIEN     ((unsigned int) 0x1 << 25) // (PITC) Periodic Interval Timer Interrupt Enable

-// -------- PITC_PISR : (PITC Offset: 0x4) Periodic Interval Status Register -------- 

-#define AT91C_PITC_PITS       ((unsigned int) 0x1 <<  0) // (PITC) Periodic Interval Timer Status

-// -------- PITC_PIVR : (PITC Offset: 0x8) Periodic Interval Value Register -------- 

-#define AT91C_PITC_CPIV       ((unsigned int) 0xFFFFF <<  0) // (PITC) Current Periodic Interval Value

-#define AT91C_PITC_PICNT      ((unsigned int) 0xFFF << 20) // (PITC) Periodic Interval Counter

-// -------- PITC_PIIR : (PITC Offset: 0xc) Periodic Interval Image Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Watchdog Timer Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_WDTC {

-	AT91_REG	 WDTC_WDCR; 	// Watchdog Control Register

-	AT91_REG	 WDTC_WDMR; 	// Watchdog Mode Register

-	AT91_REG	 WDTC_WDSR; 	// Watchdog Status Register

-} AT91S_WDTC, *AT91PS_WDTC;

-

-// -------- WDTC_WDCR : (WDTC Offset: 0x0) Periodic Interval Image Register -------- 

-#define AT91C_WDTC_WDRSTT     ((unsigned int) 0x1 <<  0) // (WDTC) Watchdog Restart

-#define AT91C_WDTC_KEY        ((unsigned int) 0xFF << 24) // (WDTC) Watchdog KEY Password

-// -------- WDTC_WDMR : (WDTC Offset: 0x4) Watchdog Mode Register -------- 

-#define AT91C_WDTC_WDV        ((unsigned int) 0xFFF <<  0) // (WDTC) Watchdog Timer Restart

-#define AT91C_WDTC_WDFIEN     ((unsigned int) 0x1 << 12) // (WDTC) Watchdog Fault Interrupt Enable

-#define AT91C_WDTC_WDRSTEN    ((unsigned int) 0x1 << 13) // (WDTC) Watchdog Reset Enable

-#define AT91C_WDTC_WDRPROC    ((unsigned int) 0x1 << 14) // (WDTC) Watchdog Timer Restart

-#define AT91C_WDTC_WDDIS      ((unsigned int) 0x1 << 15) // (WDTC) Watchdog Disable

-#define AT91C_WDTC_WDD        ((unsigned int) 0xFFF << 16) // (WDTC) Watchdog Delta Value

-#define AT91C_WDTC_WDDBGHLT   ((unsigned int) 0x1 << 28) // (WDTC) Watchdog Debug Halt

-#define AT91C_WDTC_WDIDLEHLT  ((unsigned int) 0x1 << 29) // (WDTC) Watchdog Idle Halt

-// -------- WDTC_WDSR : (WDTC Offset: 0x8) Watchdog Status Register -------- 

-#define AT91C_WDTC_WDUNF      ((unsigned int) 0x1 <<  0) // (WDTC) Watchdog Underflow

-#define AT91C_WDTC_WDERR      ((unsigned int) 0x1 <<  1) // (WDTC) Watchdog Error

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Voltage Regulator Mode Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_VREG {

-	AT91_REG	 VREG_MR; 	// Voltage Regulator Mode Register

-} AT91S_VREG, *AT91PS_VREG;

-

-// -------- VREG_MR : (VREG Offset: 0x0) Voltage Regulator Mode Register -------- 

-#define AT91C_VREG_PSTDBY     ((unsigned int) 0x1 <<  0) // (VREG) Voltage Regulator Power Standby Mode

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Memory Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_MC {

-	AT91_REG	 MC_RCR; 	// MC Remap Control Register

-	AT91_REG	 MC_ASR; 	// MC Abort Status Register

-	AT91_REG	 MC_AASR; 	// MC Abort Address Status Register

-	AT91_REG	 Reserved0[21]; 	// 

-	AT91_REG	 MC_FMR; 	// MC Flash Mode Register

-	AT91_REG	 MC_FCR; 	// MC Flash Command Register

-	AT91_REG	 MC_FSR; 	// MC Flash Status Register

-} AT91S_MC, *AT91PS_MC;

-

-// -------- MC_RCR : (MC Offset: 0x0) MC Remap Control Register -------- 

-#define AT91C_MC_RCB          ((unsigned int) 0x1 <<  0) // (MC) Remap Command Bit

-// -------- MC_ASR : (MC Offset: 0x4) MC Abort Status Register -------- 

-#define AT91C_MC_UNDADD       ((unsigned int) 0x1 <<  0) // (MC) Undefined Addess Abort Status

-#define AT91C_MC_MISADD       ((unsigned int) 0x1 <<  1) // (MC) Misaligned Addess Abort Status

-#define AT91C_MC_ABTSZ        ((unsigned int) 0x3 <<  8) // (MC) Abort Size Status

-#define 	AT91C_MC_ABTSZ_BYTE                 ((unsigned int) 0x0 <<  8) // (MC) Byte

-#define 	AT91C_MC_ABTSZ_HWORD                ((unsigned int) 0x1 <<  8) // (MC) Half-word

-#define 	AT91C_MC_ABTSZ_WORD                 ((unsigned int) 0x2 <<  8) // (MC) Word

-#define AT91C_MC_ABTTYP       ((unsigned int) 0x3 << 10) // (MC) Abort Type Status

-#define 	AT91C_MC_ABTTYP_DATAR                ((unsigned int) 0x0 << 10) // (MC) Data Read

-#define 	AT91C_MC_ABTTYP_DATAW                ((unsigned int) 0x1 << 10) // (MC) Data Write

-#define 	AT91C_MC_ABTTYP_FETCH                ((unsigned int) 0x2 << 10) // (MC) Code Fetch

-#define AT91C_MC_MST0         ((unsigned int) 0x1 << 16) // (MC) Master 0 Abort Source

-#define AT91C_MC_MST1         ((unsigned int) 0x1 << 17) // (MC) Master 1 Abort Source

-#define AT91C_MC_SVMST0       ((unsigned int) 0x1 << 24) // (MC) Saved Master 0 Abort Source

-#define AT91C_MC_SVMST1       ((unsigned int) 0x1 << 25) // (MC) Saved Master 1 Abort Source

-// -------- MC_FMR : (MC Offset: 0x60) MC Flash Mode Register -------- 

-#define AT91C_MC_FRDY         ((unsigned int) 0x1 <<  0) // (MC) Flash Ready

-#define AT91C_MC_LOCKE        ((unsigned int) 0x1 <<  2) // (MC) Lock Error

-#define AT91C_MC_PROGE        ((unsigned int) 0x1 <<  3) // (MC) Programming Error

-#define AT91C_MC_NEBP         ((unsigned int) 0x1 <<  7) // (MC) No Erase Before Programming

-#define AT91C_MC_FWS          ((unsigned int) 0x3 <<  8) // (MC) Flash Wait State

-#define 	AT91C_MC_FWS_0FWS                 ((unsigned int) 0x0 <<  8) // (MC) 1 cycle for Read, 2 for Write operations

-#define 	AT91C_MC_FWS_1FWS                 ((unsigned int) 0x1 <<  8) // (MC) 2 cycles for Read, 3 for Write operations

-#define 	AT91C_MC_FWS_2FWS                 ((unsigned int) 0x2 <<  8) // (MC) 3 cycles for Read, 4 for Write operations

-#define 	AT91C_MC_FWS_3FWS                 ((unsigned int) 0x3 <<  8) // (MC) 4 cycles for Read, 4 for Write operations

-#define AT91C_MC_FMCN         ((unsigned int) 0xFF << 16) // (MC) Flash Microsecond Cycle Number

-// -------- MC_FCR : (MC Offset: 0x64) MC Flash Command Register -------- 

-#define AT91C_MC_FCMD         ((unsigned int) 0xF <<  0) // (MC) Flash Command

-#define 	AT91C_MC_FCMD_START_PROG           ((unsigned int) 0x1) // (MC) Starts the programming of th epage specified by PAGEN.

-#define 	AT91C_MC_FCMD_LOCK                 ((unsigned int) 0x2) // (MC) Starts a lock sequence of the sector defined by the bits 4 to 7 of the field PAGEN.

-#define 	AT91C_MC_FCMD_PROG_AND_LOCK        ((unsigned int) 0x3) // (MC) The lock sequence automatically happens after the programming sequence is completed.

-#define 	AT91C_MC_FCMD_UNLOCK               ((unsigned int) 0x4) // (MC) Starts an unlock sequence of the sector defined by the bits 4 to 7 of the field PAGEN.

-#define 	AT91C_MC_FCMD_ERASE_ALL            ((unsigned int) 0x8) // (MC) Starts the erase of the entire flash.If at least a page is locked, the command is cancelled.

-#define 	AT91C_MC_FCMD_SET_GP_NVM           ((unsigned int) 0xB) // (MC) Set General Purpose NVM bits.

-#define 	AT91C_MC_FCMD_CLR_GP_NVM           ((unsigned int) 0xD) // (MC) Clear General Purpose NVM bits.

-#define 	AT91C_MC_FCMD_SET_SECURITY         ((unsigned int) 0xF) // (MC) Set Security Bit.

-#define AT91C_MC_PAGEN        ((unsigned int) 0x3FF <<  8) // (MC) Page Number

-#define AT91C_MC_KEY          ((unsigned int) 0xFF << 24) // (MC) Writing Protect Key

-// -------- MC_FSR : (MC Offset: 0x68) MC Flash Command Register -------- 

-#define AT91C_MC_SECURITY     ((unsigned int) 0x1 <<  4) // (MC) Security Bit Status

-#define AT91C_MC_GPNVM0       ((unsigned int) 0x1 <<  8) // (MC) Sector 0 Lock Status

-#define AT91C_MC_GPNVM1       ((unsigned int) 0x1 <<  9) // (MC) Sector 1 Lock Status

-#define AT91C_MC_GPNVM2       ((unsigned int) 0x1 << 10) // (MC) Sector 2 Lock Status

-#define AT91C_MC_GPNVM3       ((unsigned int) 0x1 << 11) // (MC) Sector 3 Lock Status

-#define AT91C_MC_GPNVM4       ((unsigned int) 0x1 << 12) // (MC) Sector 4 Lock Status

-#define AT91C_MC_GPNVM5       ((unsigned int) 0x1 << 13) // (MC) Sector 5 Lock Status

-#define AT91C_MC_GPNVM6       ((unsigned int) 0x1 << 14) // (MC) Sector 6 Lock Status

-#define AT91C_MC_GPNVM7       ((unsigned int) 0x1 << 15) // (MC) Sector 7 Lock Status

-#define AT91C_MC_LOCKS0       ((unsigned int) 0x1 << 16) // (MC) Sector 0 Lock Status

-#define AT91C_MC_LOCKS1       ((unsigned int) 0x1 << 17) // (MC) Sector 1 Lock Status

-#define AT91C_MC_LOCKS2       ((unsigned int) 0x1 << 18) // (MC) Sector 2 Lock Status

-#define AT91C_MC_LOCKS3       ((unsigned int) 0x1 << 19) // (MC) Sector 3 Lock Status

-#define AT91C_MC_LOCKS4       ((unsigned int) 0x1 << 20) // (MC) Sector 4 Lock Status

-#define AT91C_MC_LOCKS5       ((unsigned int) 0x1 << 21) // (MC) Sector 5 Lock Status

-#define AT91C_MC_LOCKS6       ((unsigned int) 0x1 << 22) // (MC) Sector 6 Lock Status

-#define AT91C_MC_LOCKS7       ((unsigned int) 0x1 << 23) // (MC) Sector 7 Lock Status

-#define AT91C_MC_LOCKS8       ((unsigned int) 0x1 << 24) // (MC) Sector 8 Lock Status

-#define AT91C_MC_LOCKS9       ((unsigned int) 0x1 << 25) // (MC) Sector 9 Lock Status

-#define AT91C_MC_LOCKS10      ((unsigned int) 0x1 << 26) // (MC) Sector 10 Lock Status

-#define AT91C_MC_LOCKS11      ((unsigned int) 0x1 << 27) // (MC) Sector 11 Lock Status

-#define AT91C_MC_LOCKS12      ((unsigned int) 0x1 << 28) // (MC) Sector 12 Lock Status

-#define AT91C_MC_LOCKS13      ((unsigned int) 0x1 << 29) // (MC) Sector 13 Lock Status

-#define AT91C_MC_LOCKS14      ((unsigned int) 0x1 << 30) // (MC) Sector 14 Lock Status

-#define AT91C_MC_LOCKS15      ((unsigned int) 0x1 << 31) // (MC) Sector 15 Lock Status

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Serial Parallel Interface

-// *****************************************************************************

-typedef struct _AT91S_SPI {

-	AT91_REG	 SPI_CR; 	// Control Register

-	AT91_REG	 SPI_MR; 	// Mode Register

-	AT91_REG	 SPI_RDR; 	// Receive Data Register

-	AT91_REG	 SPI_TDR; 	// Transmit Data Register

-	AT91_REG	 SPI_SR; 	// Status Register

-	AT91_REG	 SPI_IER; 	// Interrupt Enable Register

-	AT91_REG	 SPI_IDR; 	// Interrupt Disable Register

-	AT91_REG	 SPI_IMR; 	// Interrupt Mask Register

-	AT91_REG	 Reserved0[4]; 	// 

-	AT91_REG	 SPI_CSR[4]; 	// Chip Select Register

-	AT91_REG	 Reserved1[48]; 	// 

-	AT91_REG	 SPI_RPR; 	// Receive Pointer Register

-	AT91_REG	 SPI_RCR; 	// Receive Counter Register

-	AT91_REG	 SPI_TPR; 	// Transmit Pointer Register

-	AT91_REG	 SPI_TCR; 	// Transmit Counter Register

-	AT91_REG	 SPI_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 SPI_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 SPI_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 SPI_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 SPI_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 SPI_PTSR; 	// PDC Transfer Status Register

-} AT91S_SPI, *AT91PS_SPI;

-

-// -------- SPI_CR : (SPI Offset: 0x0) SPI Control Register -------- 

-#define AT91C_SPI_SPIEN       ((unsigned int) 0x1 <<  0) // (SPI) SPI Enable

-#define AT91C_SPI_SPIDIS      ((unsigned int) 0x1 <<  1) // (SPI) SPI Disable

-#define AT91C_SPI_SWRST       ((unsigned int) 0x1 <<  7) // (SPI) SPI Software reset

-#define AT91C_SPI_LASTXFER    ((unsigned int) 0x1 << 24) // (SPI) SPI Last Transfer

-// -------- SPI_MR : (SPI Offset: 0x4) SPI Mode Register -------- 

-#define AT91C_SPI_MSTR        ((unsigned int) 0x1 <<  0) // (SPI) Master/Slave Mode

-#define AT91C_SPI_PS          ((unsigned int) 0x1 <<  1) // (SPI) Peripheral Select

-#define 	AT91C_SPI_PS_FIXED                ((unsigned int) 0x0 <<  1) // (SPI) Fixed Peripheral Select

-#define 	AT91C_SPI_PS_VARIABLE             ((unsigned int) 0x1 <<  1) // (SPI) Variable Peripheral Select

-#define AT91C_SPI_PCSDEC      ((unsigned int) 0x1 <<  2) // (SPI) Chip Select Decode

-#define AT91C_SPI_FDIV        ((unsigned int) 0x1 <<  3) // (SPI) Clock Selection

-#define AT91C_SPI_MODFDIS     ((unsigned int) 0x1 <<  4) // (SPI) Mode Fault Detection

-#define AT91C_SPI_LLB         ((unsigned int) 0x1 <<  7) // (SPI) Clock Selection

-#define AT91C_SPI_PCS         ((unsigned int) 0xF << 16) // (SPI) Peripheral Chip Select

-#define AT91C_SPI_DLYBCS      ((unsigned int) 0xFF << 24) // (SPI) Delay Between Chip Selects

-// -------- SPI_RDR : (SPI Offset: 0x8) Receive Data Register -------- 

-#define AT91C_SPI_RD          ((unsigned int) 0xFFFF <<  0) // (SPI) Receive Data

-#define AT91C_SPI_RPCS        ((unsigned int) 0xF << 16) // (SPI) Peripheral Chip Select Status

-// -------- SPI_TDR : (SPI Offset: 0xc) Transmit Data Register -------- 

-#define AT91C_SPI_TD          ((unsigned int) 0xFFFF <<  0) // (SPI) Transmit Data

-#define AT91C_SPI_TPCS        ((unsigned int) 0xF << 16) // (SPI) Peripheral Chip Select Status

-// -------- SPI_SR : (SPI Offset: 0x10) Status Register -------- 

-#define AT91C_SPI_RDRF        ((unsigned int) 0x1 <<  0) // (SPI) Receive Data Register Full

-#define AT91C_SPI_TDRE        ((unsigned int) 0x1 <<  1) // (SPI) Transmit Data Register Empty

-#define AT91C_SPI_MODF        ((unsigned int) 0x1 <<  2) // (SPI) Mode Fault Error

-#define AT91C_SPI_OVRES       ((unsigned int) 0x1 <<  3) // (SPI) Overrun Error Status

-#define AT91C_SPI_ENDRX       ((unsigned int) 0x1 <<  4) // (SPI) End of Receiver Transfer

-#define AT91C_SPI_ENDTX       ((unsigned int) 0x1 <<  5) // (SPI) End of Receiver Transfer

-#define AT91C_SPI_RXBUFF      ((unsigned int) 0x1 <<  6) // (SPI) RXBUFF Interrupt

-#define AT91C_SPI_TXBUFE      ((unsigned int) 0x1 <<  7) // (SPI) TXBUFE Interrupt

-#define AT91C_SPI_NSSR        ((unsigned int) 0x1 <<  8) // (SPI) NSSR Interrupt

-#define AT91C_SPI_TXEMPTY     ((unsigned int) 0x1 <<  9) // (SPI) TXEMPTY Interrupt

-#define AT91C_SPI_SPIENS      ((unsigned int) 0x1 << 16) // (SPI) Enable Status

-// -------- SPI_IER : (SPI Offset: 0x14) Interrupt Enable Register -------- 

-// -------- SPI_IDR : (SPI Offset: 0x18) Interrupt Disable Register -------- 

-// -------- SPI_IMR : (SPI Offset: 0x1c) Interrupt Mask Register -------- 

-// -------- SPI_CSR : (SPI Offset: 0x30) Chip Select Register -------- 

-#define AT91C_SPI_CPOL        ((unsigned int) 0x1 <<  0) // (SPI) Clock Polarity

-#define AT91C_SPI_NCPHA       ((unsigned int) 0x1 <<  1) // (SPI) Clock Phase

-#define AT91C_SPI_CSAAT       ((unsigned int) 0x1 <<  3) // (SPI) Chip Select Active After Transfer

-#define AT91C_SPI_BITS        ((unsigned int) 0xF <<  4) // (SPI) Bits Per Transfer

-#define 	AT91C_SPI_BITS_8                    ((unsigned int) 0x0 <<  4) // (SPI) 8 Bits Per transfer

-#define 	AT91C_SPI_BITS_9                    ((unsigned int) 0x1 <<  4) // (SPI) 9 Bits Per transfer

-#define 	AT91C_SPI_BITS_10                   ((unsigned int) 0x2 <<  4) // (SPI) 10 Bits Per transfer

-#define 	AT91C_SPI_BITS_11                   ((unsigned int) 0x3 <<  4) // (SPI) 11 Bits Per transfer

-#define 	AT91C_SPI_BITS_12                   ((unsigned int) 0x4 <<  4) // (SPI) 12 Bits Per transfer

-#define 	AT91C_SPI_BITS_13                   ((unsigned int) 0x5 <<  4) // (SPI) 13 Bits Per transfer

-#define 	AT91C_SPI_BITS_14                   ((unsigned int) 0x6 <<  4) // (SPI) 14 Bits Per transfer

-#define 	AT91C_SPI_BITS_15                   ((unsigned int) 0x7 <<  4) // (SPI) 15 Bits Per transfer

-#define 	AT91C_SPI_BITS_16                   ((unsigned int) 0x8 <<  4) // (SPI) 16 Bits Per transfer

-#define AT91C_SPI_SCBR        ((unsigned int) 0xFF <<  8) // (SPI) Serial Clock Baud Rate

-#define AT91C_SPI_DLYBS       ((unsigned int) 0xFF << 16) // (SPI) Delay Before SPCK

-#define AT91C_SPI_DLYBCT      ((unsigned int) 0xFF << 24) // (SPI) Delay Between Consecutive Transfers

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Usart

-// *****************************************************************************

-typedef struct _AT91S_USART {

-	AT91_REG	 US_CR; 	// Control Register

-	AT91_REG	 US_MR; 	// Mode Register

-	AT91_REG	 US_IER; 	// Interrupt Enable Register

-	AT91_REG	 US_IDR; 	// Interrupt Disable Register

-	AT91_REG	 US_IMR; 	// Interrupt Mask Register

-	AT91_REG	 US_CSR; 	// Channel Status Register

-	AT91_REG	 US_RHR; 	// Receiver Holding Register

-	AT91_REG	 US_THR; 	// Transmitter Holding Register

-	AT91_REG	 US_BRGR; 	// Baud Rate Generator Register

-	AT91_REG	 US_RTOR; 	// Receiver Time-out Register

-	AT91_REG	 US_TTGR; 	// Transmitter Time-guard Register

-	AT91_REG	 Reserved0[5]; 	// 

-	AT91_REG	 US_FIDI; 	// FI_DI_Ratio Register

-	AT91_REG	 US_NER; 	// Nb Errors Register

-	AT91_REG	 Reserved1[1]; 	// 

-	AT91_REG	 US_IF; 	// IRDA_FILTER Register

-	AT91_REG	 Reserved2[44]; 	// 

-	AT91_REG	 US_RPR; 	// Receive Pointer Register

-	AT91_REG	 US_RCR; 	// Receive Counter Register

-	AT91_REG	 US_TPR; 	// Transmit Pointer Register

-	AT91_REG	 US_TCR; 	// Transmit Counter Register

-	AT91_REG	 US_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 US_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 US_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 US_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 US_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 US_PTSR; 	// PDC Transfer Status Register

-} AT91S_USART, *AT91PS_USART;

-

-// -------- US_CR : (USART Offset: 0x0) Debug Unit Control Register -------- 

-#define AT91C_US_STTBRK       ((unsigned int) 0x1 <<  9) // (USART) Start Break

-#define AT91C_US_STPBRK       ((unsigned int) 0x1 << 10) // (USART) Stop Break

-#define AT91C_US_STTTO        ((unsigned int) 0x1 << 11) // (USART) Start Time-out

-#define AT91C_US_SENDA        ((unsigned int) 0x1 << 12) // (USART) Send Address

-#define AT91C_US_RSTIT        ((unsigned int) 0x1 << 13) // (USART) Reset Iterations

-#define AT91C_US_RSTNACK      ((unsigned int) 0x1 << 14) // (USART) Reset Non Acknowledge

-#define AT91C_US_RETTO        ((unsigned int) 0x1 << 15) // (USART) Rearm Time-out

-#define AT91C_US_DTREN        ((unsigned int) 0x1 << 16) // (USART) Data Terminal ready Enable

-#define AT91C_US_DTRDIS       ((unsigned int) 0x1 << 17) // (USART) Data Terminal ready Disable

-#define AT91C_US_RTSEN        ((unsigned int) 0x1 << 18) // (USART) Request to Send enable

-#define AT91C_US_RTSDIS       ((unsigned int) 0x1 << 19) // (USART) Request to Send Disable

-// -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register -------- 

-#define AT91C_US_USMODE       ((unsigned int) 0xF <<  0) // (USART) Usart mode

-#define 	AT91C_US_USMODE_NORMAL               ((unsigned int) 0x0) // (USART) Normal

-#define 	AT91C_US_USMODE_RS485                ((unsigned int) 0x1) // (USART) RS485

-#define 	AT91C_US_USMODE_HWHSH                ((unsigned int) 0x2) // (USART) Hardware Handshaking

-#define 	AT91C_US_USMODE_MODEM                ((unsigned int) 0x3) // (USART) Modem

-#define 	AT91C_US_USMODE_ISO7816_0            ((unsigned int) 0x4) // (USART) ISO7816 protocol: T = 0

-#define 	AT91C_US_USMODE_ISO7816_1            ((unsigned int) 0x6) // (USART) ISO7816 protocol: T = 1

-#define 	AT91C_US_USMODE_IRDA                 ((unsigned int) 0x8) // (USART) IrDA

-#define 	AT91C_US_USMODE_SWHSH                ((unsigned int) 0xC) // (USART) Software Handshaking

-#define AT91C_US_CLKS         ((unsigned int) 0x3 <<  4) // (USART) Clock Selection (Baud Rate generator Input Clock

-#define 	AT91C_US_CLKS_CLOCK                ((unsigned int) 0x0 <<  4) // (USART) Clock

-#define 	AT91C_US_CLKS_FDIV1                ((unsigned int) 0x1 <<  4) // (USART) fdiv1

-#define 	AT91C_US_CLKS_SLOW                 ((unsigned int) 0x2 <<  4) // (USART) slow_clock (ARM)

-#define 	AT91C_US_CLKS_EXT                  ((unsigned int) 0x3 <<  4) // (USART) External (SCK)

-#define AT91C_US_CHRL         ((unsigned int) 0x3 <<  6) // (USART) Clock Selection (Baud Rate generator Input Clock

-#define 	AT91C_US_CHRL_5_BITS               ((unsigned int) 0x0 <<  6) // (USART) Character Length: 5 bits

-#define 	AT91C_US_CHRL_6_BITS               ((unsigned int) 0x1 <<  6) // (USART) Character Length: 6 bits

-#define 	AT91C_US_CHRL_7_BITS               ((unsigned int) 0x2 <<  6) // (USART) Character Length: 7 bits

-#define 	AT91C_US_CHRL_8_BITS               ((unsigned int) 0x3 <<  6) // (USART) Character Length: 8 bits

-#define AT91C_US_SYNC         ((unsigned int) 0x1 <<  8) // (USART) Synchronous Mode Select

-#define AT91C_US_NBSTOP       ((unsigned int) 0x3 << 12) // (USART) Number of Stop bits

-#define 	AT91C_US_NBSTOP_1_BIT                ((unsigned int) 0x0 << 12) // (USART) 1 stop bit

-#define 	AT91C_US_NBSTOP_15_BIT               ((unsigned int) 0x1 << 12) // (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits

-#define 	AT91C_US_NBSTOP_2_BIT                ((unsigned int) 0x2 << 12) // (USART) 2 stop bits

-#define AT91C_US_MSBF         ((unsigned int) 0x1 << 16) // (USART) Bit Order

-#define AT91C_US_MODE9        ((unsigned int) 0x1 << 17) // (USART) 9-bit Character length

-#define AT91C_US_CKLO         ((unsigned int) 0x1 << 18) // (USART) Clock Output Select

-#define AT91C_US_OVER         ((unsigned int) 0x1 << 19) // (USART) Over Sampling Mode

-#define AT91C_US_INACK        ((unsigned int) 0x1 << 20) // (USART) Inhibit Non Acknowledge

-#define AT91C_US_DSNACK       ((unsigned int) 0x1 << 21) // (USART) Disable Successive NACK

-#define AT91C_US_MAX_ITER     ((unsigned int) 0x1 << 24) // (USART) Number of Repetitions

-#define AT91C_US_FILTER       ((unsigned int) 0x1 << 28) // (USART) Receive Line Filter

-// -------- US_IER : (USART Offset: 0x8) Debug Unit Interrupt Enable Register -------- 

-#define AT91C_US_RXBRK        ((unsigned int) 0x1 <<  2) // (USART) Break Received/End of Break

-#define AT91C_US_TIMEOUT      ((unsigned int) 0x1 <<  8) // (USART) Receiver Time-out

-#define AT91C_US_ITERATION    ((unsigned int) 0x1 << 10) // (USART) Max number of Repetitions Reached

-#define AT91C_US_NACK         ((unsigned int) 0x1 << 13) // (USART) Non Acknowledge

-#define AT91C_US_RIIC         ((unsigned int) 0x1 << 16) // (USART) Ring INdicator Input Change Flag

-#define AT91C_US_DSRIC        ((unsigned int) 0x1 << 17) // (USART) Data Set Ready Input Change Flag

-#define AT91C_US_DCDIC        ((unsigned int) 0x1 << 18) // (USART) Data Carrier Flag

-#define AT91C_US_CTSIC        ((unsigned int) 0x1 << 19) // (USART) Clear To Send Input Change Flag

-// -------- US_IDR : (USART Offset: 0xc) Debug Unit Interrupt Disable Register -------- 

-// -------- US_IMR : (USART Offset: 0x10) Debug Unit Interrupt Mask Register -------- 

-// -------- US_CSR : (USART Offset: 0x14) Debug Unit Channel Status Register -------- 

-#define AT91C_US_RI           ((unsigned int) 0x1 << 20) // (USART) Image of RI Input

-#define AT91C_US_DSR          ((unsigned int) 0x1 << 21) // (USART) Image of DSR Input

-#define AT91C_US_DCD          ((unsigned int) 0x1 << 22) // (USART) Image of DCD Input

-#define AT91C_US_CTS          ((unsigned int) 0x1 << 23) // (USART) Image of CTS Input

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Synchronous Serial Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_SSC {

-	AT91_REG	 SSC_CR; 	// Control Register

-	AT91_REG	 SSC_CMR; 	// Clock Mode Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 SSC_RCMR; 	// Receive Clock ModeRegister

-	AT91_REG	 SSC_RFMR; 	// Receive Frame Mode Register

-	AT91_REG	 SSC_TCMR; 	// Transmit Clock Mode Register

-	AT91_REG	 SSC_TFMR; 	// Transmit Frame Mode Register

-	AT91_REG	 SSC_RHR; 	// Receive Holding Register

-	AT91_REG	 SSC_THR; 	// Transmit Holding Register

-	AT91_REG	 Reserved1[2]; 	// 

-	AT91_REG	 SSC_RSHR; 	// Receive Sync Holding Register

-	AT91_REG	 SSC_TSHR; 	// Transmit Sync Holding Register

-	AT91_REG	 Reserved2[2]; 	// 

-	AT91_REG	 SSC_SR; 	// Status Register

-	AT91_REG	 SSC_IER; 	// Interrupt Enable Register

-	AT91_REG	 SSC_IDR; 	// Interrupt Disable Register

-	AT91_REG	 SSC_IMR; 	// Interrupt Mask Register

-	AT91_REG	 Reserved3[44]; 	// 

-	AT91_REG	 SSC_RPR; 	// Receive Pointer Register

-	AT91_REG	 SSC_RCR; 	// Receive Counter Register

-	AT91_REG	 SSC_TPR; 	// Transmit Pointer Register

-	AT91_REG	 SSC_TCR; 	// Transmit Counter Register

-	AT91_REG	 SSC_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 SSC_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 SSC_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 SSC_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 SSC_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 SSC_PTSR; 	// PDC Transfer Status Register

-} AT91S_SSC, *AT91PS_SSC;

-

-// -------- SSC_CR : (SSC Offset: 0x0) SSC Control Register -------- 

-#define AT91C_SSC_RXEN        ((unsigned int) 0x1 <<  0) // (SSC) Receive Enable

-#define AT91C_SSC_RXDIS       ((unsigned int) 0x1 <<  1) // (SSC) Receive Disable

-#define AT91C_SSC_TXEN        ((unsigned int) 0x1 <<  8) // (SSC) Transmit Enable

-#define AT91C_SSC_TXDIS       ((unsigned int) 0x1 <<  9) // (SSC) Transmit Disable

-#define AT91C_SSC_SWRST       ((unsigned int) 0x1 << 15) // (SSC) Software Reset

-// -------- SSC_RCMR : (SSC Offset: 0x10) SSC Receive Clock Mode Register -------- 

-#define AT91C_SSC_CKS         ((unsigned int) 0x3 <<  0) // (SSC) Receive/Transmit Clock Selection

-#define 	AT91C_SSC_CKS_DIV                  ((unsigned int) 0x0) // (SSC) Divided Clock

-#define 	AT91C_SSC_CKS_TK                   ((unsigned int) 0x1) // (SSC) TK Clock signal

-#define 	AT91C_SSC_CKS_RK                   ((unsigned int) 0x2) // (SSC) RK pin

-#define AT91C_SSC_CKO         ((unsigned int) 0x7 <<  2) // (SSC) Receive/Transmit Clock Output Mode Selection

-#define 	AT91C_SSC_CKO_NONE                 ((unsigned int) 0x0 <<  2) // (SSC) Receive/Transmit Clock Output Mode: None RK pin: Input-only

-#define 	AT91C_SSC_CKO_CONTINOUS            ((unsigned int) 0x1 <<  2) // (SSC) Continuous Receive/Transmit Clock RK pin: Output

-#define 	AT91C_SSC_CKO_DATA_TX              ((unsigned int) 0x2 <<  2) // (SSC) Receive/Transmit Clock only during data transfers RK pin: Output

-#define AT91C_SSC_CKI         ((unsigned int) 0x1 <<  5) // (SSC) Receive/Transmit Clock Inversion

-#define AT91C_SSC_START       ((unsigned int) 0xF <<  8) // (SSC) Receive/Transmit Start Selection

-#define 	AT91C_SSC_START_CONTINOUS            ((unsigned int) 0x0 <<  8) // (SSC) Continuous, as soon as the receiver is enabled, and immediately after the end of transfer of the previous data.

-#define 	AT91C_SSC_START_TX                   ((unsigned int) 0x1 <<  8) // (SSC) Transmit/Receive start

-#define 	AT91C_SSC_START_LOW_RF               ((unsigned int) 0x2 <<  8) // (SSC) Detection of a low level on RF input

-#define 	AT91C_SSC_START_HIGH_RF              ((unsigned int) 0x3 <<  8) // (SSC) Detection of a high level on RF input

-#define 	AT91C_SSC_START_FALL_RF              ((unsigned int) 0x4 <<  8) // (SSC) Detection of a falling edge on RF input

-#define 	AT91C_SSC_START_RISE_RF              ((unsigned int) 0x5 <<  8) // (SSC) Detection of a rising edge on RF input

-#define 	AT91C_SSC_START_LEVEL_RF             ((unsigned int) 0x6 <<  8) // (SSC) Detection of any level change on RF input

-#define 	AT91C_SSC_START_EDGE_RF              ((unsigned int) 0x7 <<  8) // (SSC) Detection of any edge on RF input

-#define 	AT91C_SSC_START_0                    ((unsigned int) 0x8 <<  8) // (SSC) Compare 0

-#define AT91C_SSC_STTDLY      ((unsigned int) 0xFF << 16) // (SSC) Receive/Transmit Start Delay

-#define AT91C_SSC_PERIOD      ((unsigned int) 0xFF << 24) // (SSC) Receive/Transmit Period Divider Selection

-// -------- SSC_RFMR : (SSC Offset: 0x14) SSC Receive Frame Mode Register -------- 

-#define AT91C_SSC_DATLEN      ((unsigned int) 0x1F <<  0) // (SSC) Data Length

-#define AT91C_SSC_LOOP        ((unsigned int) 0x1 <<  5) // (SSC) Loop Mode

-#define AT91C_SSC_MSBF        ((unsigned int) 0x1 <<  7) // (SSC) Most Significant Bit First

-#define AT91C_SSC_DATNB       ((unsigned int) 0xF <<  8) // (SSC) Data Number per Frame

-#define AT91C_SSC_FSLEN       ((unsigned int) 0xF << 16) // (SSC) Receive/Transmit Frame Sync length

-#define AT91C_SSC_FSOS        ((unsigned int) 0x7 << 20) // (SSC) Receive/Transmit Frame Sync Output Selection

-#define 	AT91C_SSC_FSOS_NONE                 ((unsigned int) 0x0 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: None RK pin Input-only

-#define 	AT91C_SSC_FSOS_NEGATIVE             ((unsigned int) 0x1 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Negative Pulse

-#define 	AT91C_SSC_FSOS_POSITIVE             ((unsigned int) 0x2 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Positive Pulse

-#define 	AT91C_SSC_FSOS_LOW                  ((unsigned int) 0x3 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Driver Low during data transfer

-#define 	AT91C_SSC_FSOS_HIGH                 ((unsigned int) 0x4 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Driver High during data transfer

-#define 	AT91C_SSC_FSOS_TOGGLE               ((unsigned int) 0x5 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Toggling at each start of data transfer

-#define AT91C_SSC_FSEDGE      ((unsigned int) 0x1 << 24) // (SSC) Frame Sync Edge Detection

-// -------- SSC_TCMR : (SSC Offset: 0x18) SSC Transmit Clock Mode Register -------- 

-// -------- SSC_TFMR : (SSC Offset: 0x1c) SSC Transmit Frame Mode Register -------- 

-#define AT91C_SSC_DATDEF      ((unsigned int) 0x1 <<  5) // (SSC) Data Default Value

-#define AT91C_SSC_FSDEN       ((unsigned int) 0x1 << 23) // (SSC) Frame Sync Data Enable

-// -------- SSC_SR : (SSC Offset: 0x40) SSC Status Register -------- 

-#define AT91C_SSC_TXRDY       ((unsigned int) 0x1 <<  0) // (SSC) Transmit Ready

-#define AT91C_SSC_TXEMPTY     ((unsigned int) 0x1 <<  1) // (SSC) Transmit Empty

-#define AT91C_SSC_ENDTX       ((unsigned int) 0x1 <<  2) // (SSC) End Of Transmission

-#define AT91C_SSC_TXBUFE      ((unsigned int) 0x1 <<  3) // (SSC) Transmit Buffer Empty

-#define AT91C_SSC_RXRDY       ((unsigned int) 0x1 <<  4) // (SSC) Receive Ready

-#define AT91C_SSC_OVRUN       ((unsigned int) 0x1 <<  5) // (SSC) Receive Overrun

-#define AT91C_SSC_ENDRX       ((unsigned int) 0x1 <<  6) // (SSC) End of Reception

-#define AT91C_SSC_RXBUFF      ((unsigned int) 0x1 <<  7) // (SSC) Receive Buffer Full

-#define AT91C_SSC_TXSYN       ((unsigned int) 0x1 << 10) // (SSC) Transmit Sync

-#define AT91C_SSC_RXSYN       ((unsigned int) 0x1 << 11) // (SSC) Receive Sync

-#define AT91C_SSC_TXENA       ((unsigned int) 0x1 << 16) // (SSC) Transmit Enable

-#define AT91C_SSC_RXENA       ((unsigned int) 0x1 << 17) // (SSC) Receive Enable

-// -------- SSC_IER : (SSC Offset: 0x44) SSC Interrupt Enable Register -------- 

-// -------- SSC_IDR : (SSC Offset: 0x48) SSC Interrupt Disable Register -------- 

-// -------- SSC_IMR : (SSC Offset: 0x4c) SSC Interrupt Mask Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Two-wire Interface

-// *****************************************************************************

-typedef struct _AT91S_TWI {

-	AT91_REG	 TWI_CR; 	// Control Register

-	AT91_REG	 TWI_MMR; 	// Master Mode Register

-	AT91_REG	 Reserved0[1]; 	// 

-	AT91_REG	 TWI_IADR; 	// Internal Address Register

-	AT91_REG	 TWI_CWGR; 	// Clock Waveform Generator Register

-	AT91_REG	 Reserved1[3]; 	// 

-	AT91_REG	 TWI_SR; 	// Status Register

-	AT91_REG	 TWI_IER; 	// Interrupt Enable Register

-	AT91_REG	 TWI_IDR; 	// Interrupt Disable Register

-	AT91_REG	 TWI_IMR; 	// Interrupt Mask Register

-	AT91_REG	 TWI_RHR; 	// Receive Holding Register

-	AT91_REG	 TWI_THR; 	// Transmit Holding Register

-} AT91S_TWI, *AT91PS_TWI;

-

-// -------- TWI_CR : (TWI Offset: 0x0) TWI Control Register -------- 

-#define AT91C_TWI_START       ((unsigned int) 0x1 <<  0) // (TWI) Send a START Condition

-#define AT91C_TWI_STOP        ((unsigned int) 0x1 <<  1) // (TWI) Send a STOP Condition

-#define AT91C_TWI_MSEN        ((unsigned int) 0x1 <<  2) // (TWI) TWI Master Transfer Enabled

-#define AT91C_TWI_MSDIS       ((unsigned int) 0x1 <<  3) // (TWI) TWI Master Transfer Disabled

-#define AT91C_TWI_SWRST       ((unsigned int) 0x1 <<  7) // (TWI) Software Reset

-// -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register -------- 

-#define AT91C_TWI_IADRSZ      ((unsigned int) 0x3 <<  8) // (TWI) Internal Device Address Size

-#define 	AT91C_TWI_IADRSZ_NO                   ((unsigned int) 0x0 <<  8) // (TWI) No internal device address

-#define 	AT91C_TWI_IADRSZ_1_BYTE               ((unsigned int) 0x1 <<  8) // (TWI) One-byte internal device address

-#define 	AT91C_TWI_IADRSZ_2_BYTE               ((unsigned int) 0x2 <<  8) // (TWI) Two-byte internal device address

-#define 	AT91C_TWI_IADRSZ_3_BYTE               ((unsigned int) 0x3 <<  8) // (TWI) Three-byte internal device address

-#define AT91C_TWI_MREAD       ((unsigned int) 0x1 << 12) // (TWI) Master Read Direction

-#define AT91C_TWI_DADR        ((unsigned int) 0x7F << 16) // (TWI) Device Address

-// -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register -------- 

-#define AT91C_TWI_CLDIV       ((unsigned int) 0xFF <<  0) // (TWI) Clock Low Divider

-#define AT91C_TWI_CHDIV       ((unsigned int) 0xFF <<  8) // (TWI) Clock High Divider

-#define AT91C_TWI_CKDIV       ((unsigned int) 0x7 << 16) // (TWI) Clock Divider

-// -------- TWI_SR : (TWI Offset: 0x20) TWI Status Register -------- 

-#define AT91C_TWI_TXCOMP      ((unsigned int) 0x1 <<  0) // (TWI) Transmission Completed

-#define AT91C_TWI_RXRDY       ((unsigned int) 0x1 <<  1) // (TWI) Receive holding register ReaDY

-#define AT91C_TWI_TXRDY       ((unsigned int) 0x1 <<  2) // (TWI) Transmit holding register ReaDY

-#define AT91C_TWI_OVRE        ((unsigned int) 0x1 <<  6) // (TWI) Overrun Error

-#define AT91C_TWI_UNRE        ((unsigned int) 0x1 <<  7) // (TWI) Underrun Error

-#define AT91C_TWI_NACK        ((unsigned int) 0x1 <<  8) // (TWI) Not Acknowledged

-// -------- TWI_IER : (TWI Offset: 0x24) TWI Interrupt Enable Register -------- 

-// -------- TWI_IDR : (TWI Offset: 0x28) TWI Interrupt Disable Register -------- 

-// -------- TWI_IMR : (TWI Offset: 0x2c) TWI Interrupt Mask Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR PWMC Channel Interface

-// *****************************************************************************

-typedef struct _AT91S_PWMC_CH {

-	AT91_REG	 PWMC_CMR; 	// Channel Mode Register

-	AT91_REG	 PWMC_CDTYR; 	// Channel Duty Cycle Register

-	AT91_REG	 PWMC_CPRDR; 	// Channel Period Register

-	AT91_REG	 PWMC_CCNTR; 	// Channel Counter Register

-	AT91_REG	 PWMC_CUPDR; 	// Channel Update Register

-	AT91_REG	 PWMC_Reserved[3]; 	// Reserved

-} AT91S_PWMC_CH, *AT91PS_PWMC_CH;

-

-// -------- PWMC_CMR : (PWMC_CH Offset: 0x0) PWMC Channel Mode Register -------- 

-#define AT91C_PWMC_CPRE       ((unsigned int) 0xF <<  0) // (PWMC_CH) Channel Pre-scaler : PWMC_CLKx

-#define 	AT91C_PWMC_CPRE_MCK                  ((unsigned int) 0x0) // (PWMC_CH) 

-#define 	AT91C_PWMC_CPRE_MCKA                 ((unsigned int) 0xB) // (PWMC_CH) 

-#define 	AT91C_PWMC_CPRE_MCKB                 ((unsigned int) 0xC) // (PWMC_CH) 

-#define AT91C_PWMC_CALG       ((unsigned int) 0x1 <<  8) // (PWMC_CH) Channel Alignment

-#define AT91C_PWMC_CPOL       ((unsigned int) 0x1 <<  9) // (PWMC_CH) Channel Polarity

-#define AT91C_PWMC_CPD        ((unsigned int) 0x1 << 10) // (PWMC_CH) Channel Update Period

-// -------- PWMC_CDTYR : (PWMC_CH Offset: 0x4) PWMC Channel Duty Cycle Register -------- 

-#define AT91C_PWMC_CDTY       ((unsigned int) 0x0 <<  0) // (PWMC_CH) Channel Duty Cycle

-// -------- PWMC_CPRDR : (PWMC_CH Offset: 0x8) PWMC Channel Period Register -------- 

-#define AT91C_PWMC_CPRD       ((unsigned int) 0x0 <<  0) // (PWMC_CH) Channel Period

-// -------- PWMC_CCNTR : (PWMC_CH Offset: 0xc) PWMC Channel Counter Register -------- 

-#define AT91C_PWMC_CCNT       ((unsigned int) 0x0 <<  0) // (PWMC_CH) Channel Counter

-// -------- PWMC_CUPDR : (PWMC_CH Offset: 0x10) PWMC Channel Update Register -------- 

-#define AT91C_PWMC_CUPD       ((unsigned int) 0x0 <<  0) // (PWMC_CH) Channel Update

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Pulse Width Modulation Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_PWMC {

-	AT91_REG	 PWMC_MR; 	// PWMC Mode Register

-	AT91_REG	 PWMC_ENA; 	// PWMC Enable Register

-	AT91_REG	 PWMC_DIS; 	// PWMC Disable Register

-	AT91_REG	 PWMC_SR; 	// PWMC Status Register

-	AT91_REG	 PWMC_IER; 	// PWMC Interrupt Enable Register

-	AT91_REG	 PWMC_IDR; 	// PWMC Interrupt Disable Register

-	AT91_REG	 PWMC_IMR; 	// PWMC Interrupt Mask Register

-	AT91_REG	 PWMC_ISR; 	// PWMC Interrupt Status Register

-	AT91_REG	 Reserved0[55]; 	// 

-	AT91_REG	 PWMC_VR; 	// PWMC Version Register

-	AT91_REG	 Reserved1[64]; 	// 

-	AT91S_PWMC_CH	 PWMC_CH[4]; 	// PWMC Channel

-} AT91S_PWMC, *AT91PS_PWMC;

-

-// -------- PWMC_MR : (PWMC Offset: 0x0) PWMC Mode Register -------- 

-#define AT91C_PWMC_DIVA       ((unsigned int) 0xFF <<  0) // (PWMC) CLKA divide factor.

-#define AT91C_PWMC_PREA       ((unsigned int) 0xF <<  8) // (PWMC) Divider Input Clock Prescaler A

-#define 	AT91C_PWMC_PREA_MCK                  ((unsigned int) 0x0 <<  8) // (PWMC) 

-#define AT91C_PWMC_DIVB       ((unsigned int) 0xFF << 16) // (PWMC) CLKB divide factor.

-#define AT91C_PWMC_PREB       ((unsigned int) 0xF << 24) // (PWMC) Divider Input Clock Prescaler B

-#define 	AT91C_PWMC_PREB_MCK                  ((unsigned int) 0x0 << 24) // (PWMC) 

-// -------- PWMC_ENA : (PWMC Offset: 0x4) PWMC Enable Register -------- 

-#define AT91C_PWMC_CHID0      ((unsigned int) 0x1 <<  0) // (PWMC) Channel ID 0

-#define AT91C_PWMC_CHID1      ((unsigned int) 0x1 <<  1) // (PWMC) Channel ID 1

-#define AT91C_PWMC_CHID2      ((unsigned int) 0x1 <<  2) // (PWMC) Channel ID 2

-#define AT91C_PWMC_CHID3      ((unsigned int) 0x1 <<  3) // (PWMC) Channel ID 3

-// -------- PWMC_DIS : (PWMC Offset: 0x8) PWMC Disable Register -------- 

-// -------- PWMC_SR : (PWMC Offset: 0xc) PWMC Status Register -------- 

-// -------- PWMC_IER : (PWMC Offset: 0x10) PWMC Interrupt Enable Register -------- 

-// -------- PWMC_IDR : (PWMC Offset: 0x14) PWMC Interrupt Disable Register -------- 

-// -------- PWMC_IMR : (PWMC Offset: 0x18) PWMC Interrupt Mask Register -------- 

-// -------- PWMC_ISR : (PWMC Offset: 0x1c) PWMC Interrupt Status Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR USB Device Interface

-// *****************************************************************************

-typedef struct _AT91S_UDP {

-	AT91_REG	 UDP_NUM; 	// Frame Number Register

-	AT91_REG	 UDP_GLBSTATE; 	// Global State Register

-	AT91_REG	 UDP_FADDR; 	// Function Address Register

-	AT91_REG	 Reserved0[1]; 	// 

-	AT91_REG	 UDP_IER; 	// Interrupt Enable Register

-	AT91_REG	 UDP_IDR; 	// Interrupt Disable Register

-	AT91_REG	 UDP_IMR; 	// Interrupt Mask Register

-	AT91_REG	 UDP_ISR; 	// Interrupt Status Register

-	AT91_REG	 UDP_ICR; 	// Interrupt Clear Register

-	AT91_REG	 Reserved1[1]; 	// 

-	AT91_REG	 UDP_RSTEP; 	// Reset Endpoint Register

-	AT91_REG	 Reserved2[1]; 	// 

-	AT91_REG	 UDP_CSR[6]; 	// Endpoint Control and Status Register

-	AT91_REG	 Reserved3[2]; 	// 

-	AT91_REG	 UDP_FDR[6]; 	// Endpoint FIFO Data Register

-	AT91_REG	 Reserved4[3]; 	// 

-	AT91_REG	 UDP_TXVC; 	// Transceiver Control Register

-} AT91S_UDP, *AT91PS_UDP;

-

-// -------- UDP_FRM_NUM : (UDP Offset: 0x0) USB Frame Number Register -------- 

-#define AT91C_UDP_FRM_NUM     ((unsigned int) 0x7FF <<  0) // (UDP) Frame Number as Defined in the Packet Field Formats

-#define AT91C_UDP_FRM_ERR     ((unsigned int) 0x1 << 16) // (UDP) Frame Error

-#define AT91C_UDP_FRM_OK      ((unsigned int) 0x1 << 17) // (UDP) Frame OK

-// -------- UDP_GLB_STATE : (UDP Offset: 0x4) USB Global State Register -------- 

-#define AT91C_UDP_FADDEN      ((unsigned int) 0x1 <<  0) // (UDP) Function Address Enable

-#define AT91C_UDP_CONFG       ((unsigned int) 0x1 <<  1) // (UDP) Configured

-#define AT91C_UDP_ESR         ((unsigned int) 0x1 <<  2) // (UDP) Enable Send Resume

-#define AT91C_UDP_RSMINPR     ((unsigned int) 0x1 <<  3) // (UDP) A Resume Has Been Sent to the Host

-#define AT91C_UDP_RMWUPE      ((unsigned int) 0x1 <<  4) // (UDP) Remote Wake Up Enable

-// -------- UDP_FADDR : (UDP Offset: 0x8) USB Function Address Register -------- 

-#define AT91C_UDP_FADD        ((unsigned int) 0xFF <<  0) // (UDP) Function Address Value

-#define AT91C_UDP_FEN         ((unsigned int) 0x1 <<  8) // (UDP) Function Enable

-// -------- UDP_IER : (UDP Offset: 0x10) USB Interrupt Enable Register -------- 

-#define AT91C_UDP_EPINT0      ((unsigned int) 0x1 <<  0) // (UDP) Endpoint 0 Interrupt

-#define AT91C_UDP_EPINT1      ((unsigned int) 0x1 <<  1) // (UDP) Endpoint 0 Interrupt

-#define AT91C_UDP_EPINT2      ((unsigned int) 0x1 <<  2) // (UDP) Endpoint 2 Interrupt

-#define AT91C_UDP_EPINT3      ((unsigned int) 0x1 <<  3) // (UDP) Endpoint 3 Interrupt

-#define AT91C_UDP_EPINT4      ((unsigned int) 0x1 <<  4) // (UDP) Endpoint 4 Interrupt

-#define AT91C_UDP_EPINT5      ((unsigned int) 0x1 <<  5) // (UDP) Endpoint 5 Interrupt

-#define AT91C_UDP_RXSUSP      ((unsigned int) 0x1 <<  8) // (UDP) USB Suspend Interrupt

-#define AT91C_UDP_RXRSM       ((unsigned int) 0x1 <<  9) // (UDP) USB Resume Interrupt

-#define AT91C_UDP_EXTRSM      ((unsigned int) 0x1 << 10) // (UDP) USB External Resume Interrupt

-#define AT91C_UDP_SOFINT      ((unsigned int) 0x1 << 11) // (UDP) USB Start Of frame Interrupt

-#define AT91C_UDP_WAKEUP      ((unsigned int) 0x1 << 13) // (UDP) USB Resume Interrupt

-// -------- UDP_IDR : (UDP Offset: 0x14) USB Interrupt Disable Register -------- 

-// -------- UDP_IMR : (UDP Offset: 0x18) USB Interrupt Mask Register -------- 

-// -------- UDP_ISR : (UDP Offset: 0x1c) USB Interrupt Status Register -------- 

-#define AT91C_UDP_ENDBUSRES   ((unsigned int) 0x1 << 12) // (UDP) USB End Of Bus Reset Interrupt

-// -------- UDP_ICR : (UDP Offset: 0x20) USB Interrupt Clear Register -------- 

-// -------- UDP_RST_EP : (UDP Offset: 0x28) USB Reset Endpoint Register -------- 

-#define AT91C_UDP_EP0         ((unsigned int) 0x1 <<  0) // (UDP) Reset Endpoint 0

-#define AT91C_UDP_EP1         ((unsigned int) 0x1 <<  1) // (UDP) Reset Endpoint 1

-#define AT91C_UDP_EP2         ((unsigned int) 0x1 <<  2) // (UDP) Reset Endpoint 2

-#define AT91C_UDP_EP3         ((unsigned int) 0x1 <<  3) // (UDP) Reset Endpoint 3

-#define AT91C_UDP_EP4         ((unsigned int) 0x1 <<  4) // (UDP) Reset Endpoint 4

-#define AT91C_UDP_EP5         ((unsigned int) 0x1 <<  5) // (UDP) Reset Endpoint 5

-// -------- UDP_CSR : (UDP Offset: 0x30) USB Endpoint Control and Status Register -------- 

-#define AT91C_UDP_TXCOMP      ((unsigned int) 0x1 <<  0) // (UDP) Generates an IN packet with data previously written in the DPR

-#define AT91C_UDP_RX_DATA_BK0 ((unsigned int) 0x1 <<  1) // (UDP) Receive Data Bank 0

-#define AT91C_UDP_RXSETUP     ((unsigned int) 0x1 <<  2) // (UDP) Sends STALL to the Host (Control endpoints)

-#define AT91C_UDP_ISOERROR    ((unsigned int) 0x1 <<  3) // (UDP) Isochronous error (Isochronous endpoints)

-#define AT91C_UDP_TXPKTRDY    ((unsigned int) 0x1 <<  4) // (UDP) Transmit Packet Ready

-#define AT91C_UDP_FORCESTALL  ((unsigned int) 0x1 <<  5) // (UDP) Force Stall (used by Control, Bulk and Isochronous endpoints).

-#define AT91C_UDP_RX_DATA_BK1 ((unsigned int) 0x1 <<  6) // (UDP) Receive Data Bank 1 (only used by endpoints with ping-pong attributes).

-#define AT91C_UDP_DIR         ((unsigned int) 0x1 <<  7) // (UDP) Transfer Direction

-#define AT91C_UDP_EPTYPE      ((unsigned int) 0x7 <<  8) // (UDP) Endpoint type

-#define 	AT91C_UDP_EPTYPE_CTRL                 ((unsigned int) 0x0 <<  8) // (UDP) Control

-#define 	AT91C_UDP_EPTYPE_ISO_OUT              ((unsigned int) 0x1 <<  8) // (UDP) Isochronous OUT

-#define 	AT91C_UDP_EPTYPE_BULK_OUT             ((unsigned int) 0x2 <<  8) // (UDP) Bulk OUT

-#define 	AT91C_UDP_EPTYPE_INT_OUT              ((unsigned int) 0x3 <<  8) // (UDP) Interrupt OUT

-#define 	AT91C_UDP_EPTYPE_ISO_IN               ((unsigned int) 0x5 <<  8) // (UDP) Isochronous IN

-#define 	AT91C_UDP_EPTYPE_BULK_IN              ((unsigned int) 0x6 <<  8) // (UDP) Bulk IN

-#define 	AT91C_UDP_EPTYPE_INT_IN               ((unsigned int) 0x7 <<  8) // (UDP) Interrupt IN

-#define AT91C_UDP_DTGLE       ((unsigned int) 0x1 << 11) // (UDP) Data Toggle

-#define AT91C_UDP_EPEDS       ((unsigned int) 0x1 << 15) // (UDP) Endpoint Enable Disable

-#define AT91C_UDP_RXBYTECNT   ((unsigned int) 0x7FF << 16) // (UDP) Number Of Bytes Available in the FIFO

-// -------- UDP_TXVC : (UDP Offset: 0x74) Transceiver Control Register -------- 

-#define AT91C_UDP_TXVDIS      ((unsigned int) 0x1 <<  8) // (UDP) 

-#define AT91C_UDP_PUON        ((unsigned int) 0x1 <<  9) // (UDP) Pull-up ON

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Timer Counter Channel Interface

-// *****************************************************************************

-typedef struct _AT91S_TC {

-	AT91_REG	 TC_CCR; 	// Channel Control Register

-	AT91_REG	 TC_CMR; 	// Channel Mode Register (Capture Mode / Waveform Mode)

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 TC_CV; 	// Counter Value

-	AT91_REG	 TC_RA; 	// Register A

-	AT91_REG	 TC_RB; 	// Register B

-	AT91_REG	 TC_RC; 	// Register C

-	AT91_REG	 TC_SR; 	// Status Register

-	AT91_REG	 TC_IER; 	// Interrupt Enable Register

-	AT91_REG	 TC_IDR; 	// Interrupt Disable Register

-	AT91_REG	 TC_IMR; 	// Interrupt Mask Register

-} AT91S_TC, *AT91PS_TC;

-

-// -------- TC_CCR : (TC Offset: 0x0) TC Channel Control Register -------- 

-#define AT91C_TC_CLKEN        ((unsigned int) 0x1 <<  0) // (TC) Counter Clock Enable Command

-#define AT91C_TC_CLKDIS       ((unsigned int) 0x1 <<  1) // (TC) Counter Clock Disable Command

-#define AT91C_TC_SWTRG        ((unsigned int) 0x1 <<  2) // (TC) Software Trigger Command

-// -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode -------- 

-#define AT91C_TC_CLKS         ((unsigned int) 0x7 <<  0) // (TC) Clock Selection

-#define 	AT91C_TC_CLKS_TIMER_DIV1_CLOCK     ((unsigned int) 0x0) // (TC) Clock selected: TIMER_DIV1_CLOCK

-#define 	AT91C_TC_CLKS_TIMER_DIV2_CLOCK     ((unsigned int) 0x1) // (TC) Clock selected: TIMER_DIV2_CLOCK

-#define 	AT91C_TC_CLKS_TIMER_DIV3_CLOCK     ((unsigned int) 0x2) // (TC) Clock selected: TIMER_DIV3_CLOCK

-#define 	AT91C_TC_CLKS_TIMER_DIV4_CLOCK     ((unsigned int) 0x3) // (TC) Clock selected: TIMER_DIV4_CLOCK

-#define 	AT91C_TC_CLKS_TIMER_DIV5_CLOCK     ((unsigned int) 0x4) // (TC) Clock selected: TIMER_DIV5_CLOCK

-#define 	AT91C_TC_CLKS_XC0                  ((unsigned int) 0x5) // (TC) Clock selected: XC0

-#define 	AT91C_TC_CLKS_XC1                  ((unsigned int) 0x6) // (TC) Clock selected: XC1

-#define 	AT91C_TC_CLKS_XC2                  ((unsigned int) 0x7) // (TC) Clock selected: XC2

-#define AT91C_TC_CLKI         ((unsigned int) 0x1 <<  3) // (TC) Clock Invert

-#define AT91C_TC_BURST        ((unsigned int) 0x3 <<  4) // (TC) Burst Signal Selection

-#define 	AT91C_TC_BURST_NONE                 ((unsigned int) 0x0 <<  4) // (TC) The clock is not gated by an external signal

-#define 	AT91C_TC_BURST_XC0                  ((unsigned int) 0x1 <<  4) // (TC) XC0 is ANDed with the selected clock

-#define 	AT91C_TC_BURST_XC1                  ((unsigned int) 0x2 <<  4) // (TC) XC1 is ANDed with the selected clock

-#define 	AT91C_TC_BURST_XC2                  ((unsigned int) 0x3 <<  4) // (TC) XC2 is ANDed with the selected clock

-#define AT91C_TC_CPCSTOP      ((unsigned int) 0x1 <<  6) // (TC) Counter Clock Stopped with RC Compare

-#define AT91C_TC_LDBSTOP      ((unsigned int) 0x1 <<  6) // (TC) Counter Clock Stopped with RB Loading

-#define AT91C_TC_CPCDIS       ((unsigned int) 0x1 <<  7) // (TC) Counter Clock Disable with RC Compare

-#define AT91C_TC_LDBDIS       ((unsigned int) 0x1 <<  7) // (TC) Counter Clock Disabled with RB Loading

-#define AT91C_TC_ETRGEDG      ((unsigned int) 0x3 <<  8) // (TC) External Trigger Edge Selection

-#define 	AT91C_TC_ETRGEDG_NONE                 ((unsigned int) 0x0 <<  8) // (TC) Edge: None

-#define 	AT91C_TC_ETRGEDG_RISING               ((unsigned int) 0x1 <<  8) // (TC) Edge: rising edge

-#define 	AT91C_TC_ETRGEDG_FALLING              ((unsigned int) 0x2 <<  8) // (TC) Edge: falling edge

-#define 	AT91C_TC_ETRGEDG_BOTH                 ((unsigned int) 0x3 <<  8) // (TC) Edge: each edge

-#define AT91C_TC_EEVTEDG      ((unsigned int) 0x3 <<  8) // (TC) External Event Edge Selection

-#define 	AT91C_TC_EEVTEDG_NONE                 ((unsigned int) 0x0 <<  8) // (TC) Edge: None

-#define 	AT91C_TC_EEVTEDG_RISING               ((unsigned int) 0x1 <<  8) // (TC) Edge: rising edge

-#define 	AT91C_TC_EEVTEDG_FALLING              ((unsigned int) 0x2 <<  8) // (TC) Edge: falling edge

-#define 	AT91C_TC_EEVTEDG_BOTH                 ((unsigned int) 0x3 <<  8) // (TC) Edge: each edge

-#define AT91C_TC_EEVT         ((unsigned int) 0x3 << 10) // (TC) External Event  Selection

-#define 	AT91C_TC_EEVT_TIOB                 ((unsigned int) 0x0 << 10) // (TC) Signal selected as external event: TIOB TIOB direction: input

-#define 	AT91C_TC_EEVT_XC0                  ((unsigned int) 0x1 << 10) // (TC) Signal selected as external event: XC0 TIOB direction: output

-#define 	AT91C_TC_EEVT_XC1                  ((unsigned int) 0x2 << 10) // (TC) Signal selected as external event: XC1 TIOB direction: output

-#define 	AT91C_TC_EEVT_XC2                  ((unsigned int) 0x3 << 10) // (TC) Signal selected as external event: XC2 TIOB direction: output

-#define AT91C_TC_ABETRG       ((unsigned int) 0x1 << 10) // (TC) TIOA or TIOB External Trigger Selection

-#define AT91C_TC_ENETRG       ((unsigned int) 0x1 << 12) // (TC) External Event Trigger enable

-#define AT91C_TC_WAVESEL      ((unsigned int) 0x3 << 13) // (TC) Waveform  Selection

-#define 	AT91C_TC_WAVESEL_UP                   ((unsigned int) 0x0 << 13) // (TC) UP mode without atomatic trigger on RC Compare

-#define 	AT91C_TC_WAVESEL_UPDOWN               ((unsigned int) 0x1 << 13) // (TC) UPDOWN mode without automatic trigger on RC Compare

-#define 	AT91C_TC_WAVESEL_UP_AUTO              ((unsigned int) 0x2 << 13) // (TC) UP mode with automatic trigger on RC Compare

-#define 	AT91C_TC_WAVESEL_UPDOWN_AUTO          ((unsigned int) 0x3 << 13) // (TC) UPDOWN mode with automatic trigger on RC Compare

-#define AT91C_TC_CPCTRG       ((unsigned int) 0x1 << 14) // (TC) RC Compare Trigger Enable

-#define AT91C_TC_WAVE         ((unsigned int) 0x1 << 15) // (TC) 

-#define AT91C_TC_ACPA         ((unsigned int) 0x3 << 16) // (TC) RA Compare Effect on TIOA

-#define 	AT91C_TC_ACPA_NONE                 ((unsigned int) 0x0 << 16) // (TC) Effect: none

-#define 	AT91C_TC_ACPA_SET                  ((unsigned int) 0x1 << 16) // (TC) Effect: set

-#define 	AT91C_TC_ACPA_CLEAR                ((unsigned int) 0x2 << 16) // (TC) Effect: clear

-#define 	AT91C_TC_ACPA_TOGGLE               ((unsigned int) 0x3 << 16) // (TC) Effect: toggle

-#define AT91C_TC_LDRA         ((unsigned int) 0x3 << 16) // (TC) RA Loading Selection

-#define 	AT91C_TC_LDRA_NONE                 ((unsigned int) 0x0 << 16) // (TC) Edge: None

-#define 	AT91C_TC_LDRA_RISING               ((unsigned int) 0x1 << 16) // (TC) Edge: rising edge of TIOA

-#define 	AT91C_TC_LDRA_FALLING              ((unsigned int) 0x2 << 16) // (TC) Edge: falling edge of TIOA

-#define 	AT91C_TC_LDRA_BOTH                 ((unsigned int) 0x3 << 16) // (TC) Edge: each edge of TIOA

-#define AT91C_TC_ACPC         ((unsigned int) 0x3 << 18) // (TC) RC Compare Effect on TIOA

-#define 	AT91C_TC_ACPC_NONE                 ((unsigned int) 0x0 << 18) // (TC) Effect: none

-#define 	AT91C_TC_ACPC_SET                  ((unsigned int) 0x1 << 18) // (TC) Effect: set

-#define 	AT91C_TC_ACPC_CLEAR                ((unsigned int) 0x2 << 18) // (TC) Effect: clear

-#define 	AT91C_TC_ACPC_TOGGLE               ((unsigned int) 0x3 << 18) // (TC) Effect: toggle

-#define AT91C_TC_LDRB         ((unsigned int) 0x3 << 18) // (TC) RB Loading Selection

-#define 	AT91C_TC_LDRB_NONE                 ((unsigned int) 0x0 << 18) // (TC) Edge: None

-#define 	AT91C_TC_LDRB_RISING               ((unsigned int) 0x1 << 18) // (TC) Edge: rising edge of TIOA

-#define 	AT91C_TC_LDRB_FALLING              ((unsigned int) 0x2 << 18) // (TC) Edge: falling edge of TIOA

-#define 	AT91C_TC_LDRB_BOTH                 ((unsigned int) 0x3 << 18) // (TC) Edge: each edge of TIOA

-#define AT91C_TC_AEEVT        ((unsigned int) 0x3 << 20) // (TC) External Event Effect on TIOA

-#define 	AT91C_TC_AEEVT_NONE                 ((unsigned int) 0x0 << 20) // (TC) Effect: none

-#define 	AT91C_TC_AEEVT_SET                  ((unsigned int) 0x1 << 20) // (TC) Effect: set

-#define 	AT91C_TC_AEEVT_CLEAR                ((unsigned int) 0x2 << 20) // (TC) Effect: clear

-#define 	AT91C_TC_AEEVT_TOGGLE               ((unsigned int) 0x3 << 20) // (TC) Effect: toggle

-#define AT91C_TC_ASWTRG       ((unsigned int) 0x3 << 22) // (TC) Software Trigger Effect on TIOA

-#define 	AT91C_TC_ASWTRG_NONE                 ((unsigned int) 0x0 << 22) // (TC) Effect: none

-#define 	AT91C_TC_ASWTRG_SET                  ((unsigned int) 0x1 << 22) // (TC) Effect: set

-#define 	AT91C_TC_ASWTRG_CLEAR                ((unsigned int) 0x2 << 22) // (TC) Effect: clear

-#define 	AT91C_TC_ASWTRG_TOGGLE               ((unsigned int) 0x3 << 22) // (TC) Effect: toggle

-#define AT91C_TC_BCPB         ((unsigned int) 0x3 << 24) // (TC) RB Compare Effect on TIOB

-#define 	AT91C_TC_BCPB_NONE                 ((unsigned int) 0x0 << 24) // (TC) Effect: none

-#define 	AT91C_TC_BCPB_SET                  ((unsigned int) 0x1 << 24) // (TC) Effect: set

-#define 	AT91C_TC_BCPB_CLEAR                ((unsigned int) 0x2 << 24) // (TC) Effect: clear

-#define 	AT91C_TC_BCPB_TOGGLE               ((unsigned int) 0x3 << 24) // (TC) Effect: toggle

-#define AT91C_TC_BCPC         ((unsigned int) 0x3 << 26) // (TC) RC Compare Effect on TIOB

-#define 	AT91C_TC_BCPC_NONE                 ((unsigned int) 0x0 << 26) // (TC) Effect: none

-#define 	AT91C_TC_BCPC_SET                  ((unsigned int) 0x1 << 26) // (TC) Effect: set

-#define 	AT91C_TC_BCPC_CLEAR                ((unsigned int) 0x2 << 26) // (TC) Effect: clear

-#define 	AT91C_TC_BCPC_TOGGLE               ((unsigned int) 0x3 << 26) // (TC) Effect: toggle

-#define AT91C_TC_BEEVT        ((unsigned int) 0x3 << 28) // (TC) External Event Effect on TIOB

-#define 	AT91C_TC_BEEVT_NONE                 ((unsigned int) 0x0 << 28) // (TC) Effect: none

-#define 	AT91C_TC_BEEVT_SET                  ((unsigned int) 0x1 << 28) // (TC) Effect: set

-#define 	AT91C_TC_BEEVT_CLEAR                ((unsigned int) 0x2 << 28) // (TC) Effect: clear

-#define 	AT91C_TC_BEEVT_TOGGLE               ((unsigned int) 0x3 << 28) // (TC) Effect: toggle

-#define AT91C_TC_BSWTRG       ((unsigned int) 0x3 << 30) // (TC) Software Trigger Effect on TIOB

-#define 	AT91C_TC_BSWTRG_NONE                 ((unsigned int) 0x0 << 30) // (TC) Effect: none

-#define 	AT91C_TC_BSWTRG_SET                  ((unsigned int) 0x1 << 30) // (TC) Effect: set

-#define 	AT91C_TC_BSWTRG_CLEAR                ((unsigned int) 0x2 << 30) // (TC) Effect: clear

-#define 	AT91C_TC_BSWTRG_TOGGLE               ((unsigned int) 0x3 << 30) // (TC) Effect: toggle

-// -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register -------- 

-#define AT91C_TC_COVFS        ((unsigned int) 0x1 <<  0) // (TC) Counter Overflow

-#define AT91C_TC_LOVRS        ((unsigned int) 0x1 <<  1) // (TC) Load Overrun

-#define AT91C_TC_CPAS         ((unsigned int) 0x1 <<  2) // (TC) RA Compare

-#define AT91C_TC_CPBS         ((unsigned int) 0x1 <<  3) // (TC) RB Compare

-#define AT91C_TC_CPCS         ((unsigned int) 0x1 <<  4) // (TC) RC Compare

-#define AT91C_TC_LDRAS        ((unsigned int) 0x1 <<  5) // (TC) RA Loading

-#define AT91C_TC_LDRBS        ((unsigned int) 0x1 <<  6) // (TC) RB Loading

-#define AT91C_TC_ETRGS        ((unsigned int) 0x1 <<  7) // (TC) External Trigger

-#define AT91C_TC_CLKSTA       ((unsigned int) 0x1 << 16) // (TC) Clock Enabling

-#define AT91C_TC_MTIOA        ((unsigned int) 0x1 << 17) // (TC) TIOA Mirror

-#define AT91C_TC_MTIOB        ((unsigned int) 0x1 << 18) // (TC) TIOA Mirror

-// -------- TC_IER : (TC Offset: 0x24) TC Channel Interrupt Enable Register -------- 

-// -------- TC_IDR : (TC Offset: 0x28) TC Channel Interrupt Disable Register -------- 

-// -------- TC_IMR : (TC Offset: 0x2c) TC Channel Interrupt Mask Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Timer Counter Interface

-// *****************************************************************************

-typedef struct _AT91S_TCB {

-	AT91S_TC	 TCB_TC0; 	// TC Channel 0

-	AT91_REG	 Reserved0[4]; 	// 

-	AT91S_TC	 TCB_TC1; 	// TC Channel 1

-	AT91_REG	 Reserved1[4]; 	// 

-	AT91S_TC	 TCB_TC2; 	// TC Channel 2

-	AT91_REG	 Reserved2[4]; 	// 

-	AT91_REG	 TCB_BCR; 	// TC Block Control Register

-	AT91_REG	 TCB_BMR; 	// TC Block Mode Register

-} AT91S_TCB, *AT91PS_TCB;

-

-// -------- TCB_BCR : (TCB Offset: 0xc0) TC Block Control Register -------- 

-#define AT91C_TCB_SYNC        ((unsigned int) 0x1 <<  0) // (TCB) Synchro Command

-// -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register -------- 

-#define AT91C_TCB_TC0XC0S     ((unsigned int) 0x3 <<  0) // (TCB) External Clock Signal 0 Selection

-#define 	AT91C_TCB_TC0XC0S_TCLK0                ((unsigned int) 0x0) // (TCB) TCLK0 connected to XC0

-#define 	AT91C_TCB_TC0XC0S_NONE                 ((unsigned int) 0x1) // (TCB) None signal connected to XC0

-#define 	AT91C_TCB_TC0XC0S_TIOA1                ((unsigned int) 0x2) // (TCB) TIOA1 connected to XC0

-#define 	AT91C_TCB_TC0XC0S_TIOA2                ((unsigned int) 0x3) // (TCB) TIOA2 connected to XC0

-#define AT91C_TCB_TC1XC1S     ((unsigned int) 0x3 <<  2) // (TCB) External Clock Signal 1 Selection

-#define 	AT91C_TCB_TC1XC1S_TCLK1                ((unsigned int) 0x0 <<  2) // (TCB) TCLK1 connected to XC1

-#define 	AT91C_TCB_TC1XC1S_NONE                 ((unsigned int) 0x1 <<  2) // (TCB) None signal connected to XC1

-#define 	AT91C_TCB_TC1XC1S_TIOA0                ((unsigned int) 0x2 <<  2) // (TCB) TIOA0 connected to XC1

-#define 	AT91C_TCB_TC1XC1S_TIOA2                ((unsigned int) 0x3 <<  2) // (TCB) TIOA2 connected to XC1

-#define AT91C_TCB_TC2XC2S     ((unsigned int) 0x3 <<  4) // (TCB) External Clock Signal 2 Selection

-#define 	AT91C_TCB_TC2XC2S_TCLK2                ((unsigned int) 0x0 <<  4) // (TCB) TCLK2 connected to XC2

-#define 	AT91C_TCB_TC2XC2S_NONE                 ((unsigned int) 0x1 <<  4) // (TCB) None signal connected to XC2

-#define 	AT91C_TCB_TC2XC2S_TIOA0                ((unsigned int) 0x2 <<  4) // (TCB) TIOA0 connected to XC2

-#define 	AT91C_TCB_TC2XC2S_TIOA1                ((unsigned int) 0x3 <<  4) // (TCB) TIOA2 connected to XC2

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Control Area Network MailBox Interface

-// *****************************************************************************

-typedef struct _AT91S_CAN_MB {

-	AT91_REG	 CAN_MB_MMR; 	// MailBox Mode Register

-	AT91_REG	 CAN_MB_MAM; 	// MailBox Acceptance Mask Register

-	AT91_REG	 CAN_MB_MID; 	// MailBox ID Register

-	AT91_REG	 CAN_MB_MFID; 	// MailBox Family ID Register

-	AT91_REG	 CAN_MB_MSR; 	// MailBox Status Register

-	AT91_REG	 CAN_MB_MDL; 	// MailBox Data Low Register

-	AT91_REG	 CAN_MB_MDH; 	// MailBox Data High Register

-	AT91_REG	 CAN_MB_MCR; 	// MailBox Control Register

-} AT91S_CAN_MB, *AT91PS_CAN_MB;

-

-// -------- CAN_MMR : (CAN_MB Offset: 0x0) CAN Message Mode Register -------- 

-#define AT91C_CAN_MTIMEMARK   ((unsigned int) 0xFFFF <<  0) // (CAN_MB) Mailbox Timemark

-#define AT91C_CAN_PRIOR       ((unsigned int) 0xF << 16) // (CAN_MB) Mailbox Priority

-#define AT91C_CAN_MOT         ((unsigned int) 0x7 << 24) // (CAN_MB) Mailbox Object Type

-#define 	AT91C_CAN_MOT_DIS                  ((unsigned int) 0x0 << 24) // (CAN_MB) 

-#define 	AT91C_CAN_MOT_RX                   ((unsigned int) 0x1 << 24) // (CAN_MB) 

-#define 	AT91C_CAN_MOT_RXOVERWRITE          ((unsigned int) 0x2 << 24) // (CAN_MB) 

-#define 	AT91C_CAN_MOT_TX                   ((unsigned int) 0x3 << 24) // (CAN_MB) 

-#define 	AT91C_CAN_MOT_CONSUMER             ((unsigned int) 0x4 << 24) // (CAN_MB) 

-#define 	AT91C_CAN_MOT_PRODUCER             ((unsigned int) 0x5 << 24) // (CAN_MB) 

-// -------- CAN_MAM : (CAN_MB Offset: 0x4) CAN Message Acceptance Mask Register -------- 

-#define AT91C_CAN_MIDvB       ((unsigned int) 0x3FFFF <<  0) // (CAN_MB) Complementary bits for identifier in extended mode

-#define AT91C_CAN_MIDvA       ((unsigned int) 0x7FF << 18) // (CAN_MB) Identifier for standard frame mode

-#define AT91C_CAN_MIDE        ((unsigned int) 0x1 << 29) // (CAN_MB) Identifier Version

-// -------- CAN_MID : (CAN_MB Offset: 0x8) CAN Message ID Register -------- 

-// -------- CAN_MFID : (CAN_MB Offset: 0xc) CAN Message Family ID Register -------- 

-// -------- CAN_MSR : (CAN_MB Offset: 0x10) CAN Message Status Register -------- 

-#define AT91C_CAN_MTIMESTAMP  ((unsigned int) 0xFFFF <<  0) // (CAN_MB) Timer Value

-#define AT91C_CAN_MDLC        ((unsigned int) 0xF << 16) // (CAN_MB) Mailbox Data Length Code

-#define AT91C_CAN_MRTR        ((unsigned int) 0x1 << 20) // (CAN_MB) Mailbox Remote Transmission Request

-#define AT91C_CAN_MABT        ((unsigned int) 0x1 << 22) // (CAN_MB) Mailbox Message Abort

-#define AT91C_CAN_MRDY        ((unsigned int) 0x1 << 23) // (CAN_MB) Mailbox Ready

-#define AT91C_CAN_MMI         ((unsigned int) 0x1 << 24) // (CAN_MB) Mailbox Message Ignored

-// -------- CAN_MDL : (CAN_MB Offset: 0x14) CAN Message Data Low Register -------- 

-// -------- CAN_MDH : (CAN_MB Offset: 0x18) CAN Message Data High Register -------- 

-// -------- CAN_MCR : (CAN_MB Offset: 0x1c) CAN Message Control Register -------- 

-#define AT91C_CAN_MACR        ((unsigned int) 0x1 << 22) // (CAN_MB) Abort Request for Mailbox

-#define AT91C_CAN_MTCR        ((unsigned int) 0x1 << 23) // (CAN_MB) Mailbox Transfer Command

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Control Area Network Interface

-// *****************************************************************************

-typedef struct _AT91S_CAN {

-	AT91_REG	 CAN_MR; 	// Mode Register

-	AT91_REG	 CAN_IER; 	// Interrupt Enable Register

-	AT91_REG	 CAN_IDR; 	// Interrupt Disable Register

-	AT91_REG	 CAN_IMR; 	// Interrupt Mask Register

-	AT91_REG	 CAN_SR; 	// Status Register

-	AT91_REG	 CAN_BR; 	// Baudrate Register

-	AT91_REG	 CAN_TIM; 	// Timer Register

-	AT91_REG	 CAN_TIMESTP; 	// Time Stamp Register

-	AT91_REG	 CAN_ECR; 	// Error Counter Register

-	AT91_REG	 CAN_TCR; 	// Transfer Command Register

-	AT91_REG	 CAN_ACR; 	// Abort Command Register

-	AT91_REG	 Reserved0[52]; 	// 

-	AT91_REG	 CAN_VR; 	// Version Register

-	AT91_REG	 Reserved1[64]; 	// 

-	AT91S_CAN_MB	 CAN_MB0; 	// CAN Mailbox 0

-	AT91S_CAN_MB	 CAN_MB1; 	// CAN Mailbox 1

-	AT91S_CAN_MB	 CAN_MB2; 	// CAN Mailbox 2

-	AT91S_CAN_MB	 CAN_MB3; 	// CAN Mailbox 3

-	AT91S_CAN_MB	 CAN_MB4; 	// CAN Mailbox 4

-	AT91S_CAN_MB	 CAN_MB5; 	// CAN Mailbox 5

-	AT91S_CAN_MB	 CAN_MB6; 	// CAN Mailbox 6

-	AT91S_CAN_MB	 CAN_MB7; 	// CAN Mailbox 7

-	AT91S_CAN_MB	 CAN_MB8; 	// CAN Mailbox 8

-	AT91S_CAN_MB	 CAN_MB9; 	// CAN Mailbox 9

-	AT91S_CAN_MB	 CAN_MB10; 	// CAN Mailbox 10

-	AT91S_CAN_MB	 CAN_MB11; 	// CAN Mailbox 11

-	AT91S_CAN_MB	 CAN_MB12; 	// CAN Mailbox 12

-	AT91S_CAN_MB	 CAN_MB13; 	// CAN Mailbox 13

-	AT91S_CAN_MB	 CAN_MB14; 	// CAN Mailbox 14

-	AT91S_CAN_MB	 CAN_MB15; 	// CAN Mailbox 15

-} AT91S_CAN, *AT91PS_CAN;

-

-// -------- CAN_MR : (CAN Offset: 0x0) CAN Mode Register -------- 

-#define AT91C_CAN_CANEN       ((unsigned int) 0x1 <<  0) // (CAN) CAN Controller Enable

-#define AT91C_CAN_LPM         ((unsigned int) 0x1 <<  1) // (CAN) Disable/Enable Low Power Mode

-#define AT91C_CAN_ABM         ((unsigned int) 0x1 <<  2) // (CAN) Disable/Enable Autobaud/Listen Mode

-#define AT91C_CAN_OVL         ((unsigned int) 0x1 <<  3) // (CAN) Disable/Enable Overload Frame

-#define AT91C_CAN_TEOF        ((unsigned int) 0x1 <<  4) // (CAN) Time Stamp messages at each end of Frame

-#define AT91C_CAN_TTM         ((unsigned int) 0x1 <<  5) // (CAN) Disable/Enable Time Trigger Mode

-#define AT91C_CAN_TIMFRZ      ((unsigned int) 0x1 <<  6) // (CAN) Enable Timer Freeze

-#define AT91C_CAN_DRPT        ((unsigned int) 0x1 <<  7) // (CAN) Disable Repeat

-// -------- CAN_IER : (CAN Offset: 0x4) CAN Interrupt Enable Register -------- 

-#define AT91C_CAN_MB0         ((unsigned int) 0x1 <<  0) // (CAN) Mailbox 0 Flag

-#define AT91C_CAN_MB1         ((unsigned int) 0x1 <<  1) // (CAN) Mailbox 1 Flag

-#define AT91C_CAN_MB2         ((unsigned int) 0x1 <<  2) // (CAN) Mailbox 2 Flag

-#define AT91C_CAN_MB3         ((unsigned int) 0x1 <<  3) // (CAN) Mailbox 3 Flag

-#define AT91C_CAN_MB4         ((unsigned int) 0x1 <<  4) // (CAN) Mailbox 4 Flag

-#define AT91C_CAN_MB5         ((unsigned int) 0x1 <<  5) // (CAN) Mailbox 5 Flag

-#define AT91C_CAN_MB6         ((unsigned int) 0x1 <<  6) // (CAN) Mailbox 6 Flag

-#define AT91C_CAN_MB7         ((unsigned int) 0x1 <<  7) // (CAN) Mailbox 7 Flag

-#define AT91C_CAN_MB8         ((unsigned int) 0x1 <<  8) // (CAN) Mailbox 8 Flag

-#define AT91C_CAN_MB9         ((unsigned int) 0x1 <<  9) // (CAN) Mailbox 9 Flag

-#define AT91C_CAN_MB10        ((unsigned int) 0x1 << 10) // (CAN) Mailbox 10 Flag

-#define AT91C_CAN_MB11        ((unsigned int) 0x1 << 11) // (CAN) Mailbox 11 Flag

-#define AT91C_CAN_MB12        ((unsigned int) 0x1 << 12) // (CAN) Mailbox 12 Flag

-#define AT91C_CAN_MB13        ((unsigned int) 0x1 << 13) // (CAN) Mailbox 13 Flag

-#define AT91C_CAN_MB14        ((unsigned int) 0x1 << 14) // (CAN) Mailbox 14 Flag

-#define AT91C_CAN_MB15        ((unsigned int) 0x1 << 15) // (CAN) Mailbox 15 Flag

-#define AT91C_CAN_ERRA        ((unsigned int) 0x1 << 16) // (CAN) Error Active Mode Flag

-#define AT91C_CAN_WARN        ((unsigned int) 0x1 << 17) // (CAN) Warning Limit Flag

-#define AT91C_CAN_ERRP        ((unsigned int) 0x1 << 18) // (CAN) Error Passive Mode Flag

-#define AT91C_CAN_BOFF        ((unsigned int) 0x1 << 19) // (CAN) Bus Off Mode Flag

-#define AT91C_CAN_SLEEP       ((unsigned int) 0x1 << 20) // (CAN) Sleep Flag

-#define AT91C_CAN_WAKEUP      ((unsigned int) 0x1 << 21) // (CAN) Wakeup Flag

-#define AT91C_CAN_TOVF        ((unsigned int) 0x1 << 22) // (CAN) Timer Overflow Flag

-#define AT91C_CAN_TSTP        ((unsigned int) 0x1 << 23) // (CAN) Timestamp Flag

-#define AT91C_CAN_CERR        ((unsigned int) 0x1 << 24) // (CAN) CRC Error

-#define AT91C_CAN_SERR        ((unsigned int) 0x1 << 25) // (CAN) Stuffing Error

-#define AT91C_CAN_AERR        ((unsigned int) 0x1 << 26) // (CAN) Acknowledgment Error

-#define AT91C_CAN_FERR        ((unsigned int) 0x1 << 27) // (CAN) Form Error

-#define AT91C_CAN_BERR        ((unsigned int) 0x1 << 28) // (CAN) Bit Error

-// -------- CAN_IDR : (CAN Offset: 0x8) CAN Interrupt Disable Register -------- 

-// -------- CAN_IMR : (CAN Offset: 0xc) CAN Interrupt Mask Register -------- 

-// -------- CAN_SR : (CAN Offset: 0x10) CAN Status Register -------- 

-#define AT91C_CAN_RBSY        ((unsigned int) 0x1 << 29) // (CAN) Receiver Busy

-#define AT91C_CAN_TBSY        ((unsigned int) 0x1 << 30) // (CAN) Transmitter Busy

-#define AT91C_CAN_OVLY        ((unsigned int) 0x1 << 31) // (CAN) Overload Busy

-// -------- CAN_BR : (CAN Offset: 0x14) CAN Baudrate Register -------- 

-#define AT91C_CAN_PHASE2      ((unsigned int) 0x7 <<  0) // (CAN) Phase 2 segment

-#define AT91C_CAN_PHASE1      ((unsigned int) 0x7 <<  4) // (CAN) Phase 1 segment

-#define AT91C_CAN_PROPAG      ((unsigned int) 0x7 <<  8) // (CAN) Programmation time segment

-#define AT91C_CAN_SYNC        ((unsigned int) 0x3 << 12) // (CAN) Re-synchronization jump width segment

-#define AT91C_CAN_BRP         ((unsigned int) 0x7F << 16) // (CAN) Baudrate Prescaler

-#define AT91C_CAN_SMP         ((unsigned int) 0x1 << 24) // (CAN) Sampling mode

-// -------- CAN_TIM : (CAN Offset: 0x18) CAN Timer Register -------- 

-#define AT91C_CAN_TIMER       ((unsigned int) 0xFFFF <<  0) // (CAN) Timer field

-// -------- CAN_TIMESTP : (CAN Offset: 0x1c) CAN Timestamp Register -------- 

-// -------- CAN_ECR : (CAN Offset: 0x20) CAN Error Counter Register -------- 

-#define AT91C_CAN_REC         ((unsigned int) 0xFF <<  0) // (CAN) Receive Error Counter

-#define AT91C_CAN_TEC         ((unsigned int) 0xFF << 16) // (CAN) Transmit Error Counter

-// -------- CAN_TCR : (CAN Offset: 0x24) CAN Transfer Command Register -------- 

-#define AT91C_CAN_TIMRST      ((unsigned int) 0x1 << 31) // (CAN) Timer Reset Field

-// -------- CAN_ACR : (CAN Offset: 0x28) CAN Abort Command Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Ethernet MAC 10/100

-// *****************************************************************************

-typedef struct _AT91S_EMAC {

-	AT91_REG	 EMAC_NCR; 	// Network Control Register

-	AT91_REG	 EMAC_NCFGR; 	// Network Configuration Register

-	AT91_REG	 EMAC_NSR; 	// Network Status Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 EMAC_TSR; 	// Transmit Status Register

-	AT91_REG	 EMAC_RBQP; 	// Receive Buffer Queue Pointer

-	AT91_REG	 EMAC_TBQP; 	// Transmit Buffer Queue Pointer

-	AT91_REG	 EMAC_RSR; 	// Receive Status Register

-	AT91_REG	 EMAC_ISR; 	// Interrupt Status Register

-	AT91_REG	 EMAC_IER; 	// Interrupt Enable Register

-	AT91_REG	 EMAC_IDR; 	// Interrupt Disable Register

-	AT91_REG	 EMAC_IMR; 	// Interrupt Mask Register

-	AT91_REG	 EMAC_MAN; 	// PHY Maintenance Register

-	AT91_REG	 EMAC_PTR; 	// Pause Time Register

-	AT91_REG	 EMAC_PFR; 	// Pause Frames received Register

-	AT91_REG	 EMAC_FTO; 	// Frames Transmitted OK Register

-	AT91_REG	 EMAC_SCF; 	// Single Collision Frame Register

-	AT91_REG	 EMAC_MCF; 	// Multiple Collision Frame Register

-	AT91_REG	 EMAC_FRO; 	// Frames Received OK Register

-	AT91_REG	 EMAC_FCSE; 	// Frame Check Sequence Error Register

-	AT91_REG	 EMAC_ALE; 	// Alignment Error Register

-	AT91_REG	 EMAC_DTF; 	// Deferred Transmission Frame Register

-	AT91_REG	 EMAC_LCOL; 	// Late Collision Register

-	AT91_REG	 EMAC_ECOL; 	// Excessive Collision Register

-	AT91_REG	 EMAC_TUND; 	// Transmit Underrun Error Register

-	AT91_REG	 EMAC_CSE; 	// Carrier Sense Error Register

-	AT91_REG	 EMAC_RRE; 	// Receive Ressource Error Register

-	AT91_REG	 EMAC_ROV; 	// Receive Overrun Errors Register

-	AT91_REG	 EMAC_RSE; 	// Receive Symbol Errors Register

-	AT91_REG	 EMAC_ELE; 	// Excessive Length Errors Register

-	AT91_REG	 EMAC_RJA; 	// Receive Jabbers Register

-	AT91_REG	 EMAC_USF; 	// Undersize Frames Register

-	AT91_REG	 EMAC_STE; 	// SQE Test Error Register

-	AT91_REG	 EMAC_RLE; 	// Receive Length Field Mismatch Register

-	AT91_REG	 EMAC_TPF; 	// Transmitted Pause Frames Register

-	AT91_REG	 EMAC_HRB; 	// Hash Address Bottom[31:0]

-	AT91_REG	 EMAC_HRT; 	// Hash Address Top[63:32]

-	AT91_REG	 EMAC_SA1L; 	// Specific Address 1 Bottom, First 4 bytes

-	AT91_REG	 EMAC_SA1H; 	// Specific Address 1 Top, Last 2 bytes

-	AT91_REG	 EMAC_SA2L; 	// Specific Address 2 Bottom, First 4 bytes

-	AT91_REG	 EMAC_SA2H; 	// Specific Address 2 Top, Last 2 bytes

-	AT91_REG	 EMAC_SA3L; 	// Specific Address 3 Bottom, First 4 bytes

-	AT91_REG	 EMAC_SA3H; 	// Specific Address 3 Top, Last 2 bytes

-	AT91_REG	 EMAC_SA4L; 	// Specific Address 4 Bottom, First 4 bytes

-	AT91_REG	 EMAC_SA4H; 	// Specific Address 4 Top, Last 2 bytes

-	AT91_REG	 EMAC_TID; 	// Type ID Checking Register

-	AT91_REG	 EMAC_TPQ; 	// Transmit Pause Quantum Register

-	AT91_REG	 EMAC_USRIO; 	// USER Input/Output Register

-	AT91_REG	 EMAC_WOL; 	// Wake On LAN Register

-	AT91_REG	 Reserved1[13]; 	// 

-	AT91_REG	 EMAC_REV; 	// Revision Register

-} AT91S_EMAC, *AT91PS_EMAC;

-

-// -------- EMAC_NCR : (EMAC Offset: 0x0)  -------- 

-#define AT91C_EMAC_LB         ((unsigned int) 0x1 <<  0) // (EMAC) Loopback. Optional. When set, loopback signal is at high level.

-#define AT91C_EMAC_LLB        ((unsigned int) 0x1 <<  1) // (EMAC) Loopback local. 

-#define AT91C_EMAC_RE         ((unsigned int) 0x1 <<  2) // (EMAC) Receive enable. 

-#define AT91C_EMAC_TE         ((unsigned int) 0x1 <<  3) // (EMAC) Transmit enable. 

-#define AT91C_EMAC_MPE        ((unsigned int) 0x1 <<  4) // (EMAC) Management port enable. 

-#define AT91C_EMAC_CLRSTAT    ((unsigned int) 0x1 <<  5) // (EMAC) Clear statistics registers. 

-#define AT91C_EMAC_INCSTAT    ((unsigned int) 0x1 <<  6) // (EMAC) Increment statistics registers. 

-#define AT91C_EMAC_WESTAT     ((unsigned int) 0x1 <<  7) // (EMAC) Write enable for statistics registers. 

-#define AT91C_EMAC_BP         ((unsigned int) 0x1 <<  8) // (EMAC) Back pressure. 

-#define AT91C_EMAC_TSTART     ((unsigned int) 0x1 <<  9) // (EMAC) Start Transmission. 

-#define AT91C_EMAC_THALT      ((unsigned int) 0x1 << 10) // (EMAC) Transmission Halt. 

-#define AT91C_EMAC_TPFR       ((unsigned int) 0x1 << 11) // (EMAC) Transmit pause frame 

-#define AT91C_EMAC_TZQ        ((unsigned int) 0x1 << 12) // (EMAC) Transmit zero quantum pause frame

-// -------- EMAC_NCFGR : (EMAC Offset: 0x4) Network Configuration Register -------- 

-#define AT91C_EMAC_SPD        ((unsigned int) 0x1 <<  0) // (EMAC) Speed. 

-#define AT91C_EMAC_FD         ((unsigned int) 0x1 <<  1) // (EMAC) Full duplex. 

-#define AT91C_EMAC_JFRAME     ((unsigned int) 0x1 <<  3) // (EMAC) Jumbo Frames. 

-#define AT91C_EMAC_CAF        ((unsigned int) 0x1 <<  4) // (EMAC) Copy all frames. 

-#define AT91C_EMAC_NBC        ((unsigned int) 0x1 <<  5) // (EMAC) No broadcast. 

-#define AT91C_EMAC_MTI        ((unsigned int) 0x1 <<  6) // (EMAC) Multicast hash event enable

-#define AT91C_EMAC_UNI        ((unsigned int) 0x1 <<  7) // (EMAC) Unicast hash enable. 

-#define AT91C_EMAC_BIG        ((unsigned int) 0x1 <<  8) // (EMAC) Receive 1522 bytes. 

-#define AT91C_EMAC_EAE        ((unsigned int) 0x1 <<  9) // (EMAC) External address match enable. 

-#define AT91C_EMAC_CLK        ((unsigned int) 0x3 << 10) // (EMAC) 

-#define 	AT91C_EMAC_CLK_HCLK_8               ((unsigned int) 0x0 << 10) // (EMAC) HCLK divided by 8

-#define 	AT91C_EMAC_CLK_HCLK_16              ((unsigned int) 0x1 << 10) // (EMAC) HCLK divided by 16

-#define 	AT91C_EMAC_CLK_HCLK_32              ((unsigned int) 0x2 << 10) // (EMAC) HCLK divided by 32

-#define 	AT91C_EMAC_CLK_HCLK_64              ((unsigned int) 0x3 << 10) // (EMAC) HCLK divided by 64

-#define AT91C_EMAC_RTY        ((unsigned int) 0x1 << 12) // (EMAC) 

-#define AT91C_EMAC_PAE        ((unsigned int) 0x1 << 13) // (EMAC) 

-#define AT91C_EMAC_RBOF       ((unsigned int) 0x3 << 14) // (EMAC) 

-#define 	AT91C_EMAC_RBOF_OFFSET_0             ((unsigned int) 0x0 << 14) // (EMAC) no offset from start of receive buffer

-#define 	AT91C_EMAC_RBOF_OFFSET_1             ((unsigned int) 0x1 << 14) // (EMAC) one byte offset from start of receive buffer

-#define 	AT91C_EMAC_RBOF_OFFSET_2             ((unsigned int) 0x2 << 14) // (EMAC) two bytes offset from start of receive buffer

-#define 	AT91C_EMAC_RBOF_OFFSET_3             ((unsigned int) 0x3 << 14) // (EMAC) three bytes offset from start of receive buffer

-#define AT91C_EMAC_RLCE       ((unsigned int) 0x1 << 16) // (EMAC) Receive Length field Checking Enable

-#define AT91C_EMAC_DRFCS      ((unsigned int) 0x1 << 17) // (EMAC) Discard Receive FCS

-#define AT91C_EMAC_EFRHD      ((unsigned int) 0x1 << 18) // (EMAC) 

-#define AT91C_EMAC_IRXFCS     ((unsigned int) 0x1 << 19) // (EMAC) Ignore RX FCS

-// -------- EMAC_NSR : (EMAC Offset: 0x8) Network Status Register -------- 

-#define AT91C_EMAC_LINKR      ((unsigned int) 0x1 <<  0) // (EMAC) 

-#define AT91C_EMAC_MDIO       ((unsigned int) 0x1 <<  1) // (EMAC) 

-#define AT91C_EMAC_IDLE       ((unsigned int) 0x1 <<  2) // (EMAC) 

-// -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Status Register -------- 

-#define AT91C_EMAC_UBR        ((unsigned int) 0x1 <<  0) // (EMAC) 

-#define AT91C_EMAC_COL        ((unsigned int) 0x1 <<  1) // (EMAC) 

-#define AT91C_EMAC_RLES       ((unsigned int) 0x1 <<  2) // (EMAC) 

-#define AT91C_EMAC_TGO        ((unsigned int) 0x1 <<  3) // (EMAC) Transmit Go

-#define AT91C_EMAC_BEX        ((unsigned int) 0x1 <<  4) // (EMAC) Buffers exhausted mid frame

-#define AT91C_EMAC_COMP       ((unsigned int) 0x1 <<  5) // (EMAC) 

-#define AT91C_EMAC_UND        ((unsigned int) 0x1 <<  6) // (EMAC) 

-// -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register -------- 

-#define AT91C_EMAC_BNA        ((unsigned int) 0x1 <<  0) // (EMAC) 

-#define AT91C_EMAC_REC        ((unsigned int) 0x1 <<  1) // (EMAC) 

-#define AT91C_EMAC_OVR        ((unsigned int) 0x1 <<  2) // (EMAC) 

-// -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register -------- 

-#define AT91C_EMAC_MFD        ((unsigned int) 0x1 <<  0) // (EMAC) 

-#define AT91C_EMAC_RCOMP      ((unsigned int) 0x1 <<  1) // (EMAC) 

-#define AT91C_EMAC_RXUBR      ((unsigned int) 0x1 <<  2) // (EMAC) 

-#define AT91C_EMAC_TXUBR      ((unsigned int) 0x1 <<  3) // (EMAC) 

-#define AT91C_EMAC_TUNDR      ((unsigned int) 0x1 <<  4) // (EMAC) 

-#define AT91C_EMAC_RLEX       ((unsigned int) 0x1 <<  5) // (EMAC) 

-#define AT91C_EMAC_TXERR      ((unsigned int) 0x1 <<  6) // (EMAC) 

-#define AT91C_EMAC_TCOMP      ((unsigned int) 0x1 <<  7) // (EMAC) 

-#define AT91C_EMAC_LINK       ((unsigned int) 0x1 <<  9) // (EMAC) 

-#define AT91C_EMAC_ROVR       ((unsigned int) 0x1 << 10) // (EMAC) 

-#define AT91C_EMAC_HRESP      ((unsigned int) 0x1 << 11) // (EMAC) 

-#define AT91C_EMAC_PFRE       ((unsigned int) 0x1 << 12) // (EMAC) 

-#define AT91C_EMAC_PTZ        ((unsigned int) 0x1 << 13) // (EMAC) 

-// -------- EMAC_IER : (EMAC Offset: 0x28) Interrupt Enable Register -------- 

-// -------- EMAC_IDR : (EMAC Offset: 0x2c) Interrupt Disable Register -------- 

-// -------- EMAC_IMR : (EMAC Offset: 0x30) Interrupt Mask Register -------- 

-// -------- EMAC_MAN : (EMAC Offset: 0x34) PHY Maintenance Register -------- 

-#define AT91C_EMAC_DATA       ((unsigned int) 0xFFFF <<  0) // (EMAC) 

-#define AT91C_EMAC_CODE       ((unsigned int) 0x3 << 16) // (EMAC) 

-#define AT91C_EMAC_REGA       ((unsigned int) 0x1F << 18) // (EMAC) 

-#define AT91C_EMAC_PHYA       ((unsigned int) 0x1F << 23) // (EMAC) 

-#define AT91C_EMAC_RW         ((unsigned int) 0x3 << 28) // (EMAC) 

-#define AT91C_EMAC_SOF        ((unsigned int) 0x3 << 30) // (EMAC) 

-// -------- EMAC_USRIO : (EMAC Offset: 0xc0) USER Input Output Register -------- 

-#define AT91C_EMAC_RMII       ((unsigned int) 0x1 <<  0) // (EMAC) Reduce MII

-// -------- EMAC_WOL : (EMAC Offset: 0xc4) Wake On LAN Register -------- 

-#define AT91C_EMAC_IP         ((unsigned int) 0xFFFF <<  0) // (EMAC) ARP request IP address

-#define AT91C_EMAC_MAG        ((unsigned int) 0x1 << 16) // (EMAC) Magic packet event enable

-#define AT91C_EMAC_ARP        ((unsigned int) 0x1 << 17) // (EMAC) ARP request event enable

-#define AT91C_EMAC_SA1        ((unsigned int) 0x1 << 18) // (EMAC) Specific address register 1 event enable

-// -------- EMAC_REV : (EMAC Offset: 0xfc) Revision Register -------- 

-#define AT91C_EMAC_REVREF     ((unsigned int) 0xFFFF <<  0) // (EMAC) 

-#define AT91C_EMAC_PARTREF    ((unsigned int) 0xFFFF << 16) // (EMAC) 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Analog to Digital Convertor

-// *****************************************************************************

-typedef struct _AT91S_ADC {

-	AT91_REG	 ADC_CR; 	// ADC Control Register

-	AT91_REG	 ADC_MR; 	// ADC Mode Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 ADC_CHER; 	// ADC Channel Enable Register

-	AT91_REG	 ADC_CHDR; 	// ADC Channel Disable Register

-	AT91_REG	 ADC_CHSR; 	// ADC Channel Status Register

-	AT91_REG	 ADC_SR; 	// ADC Status Register

-	AT91_REG	 ADC_LCDR; 	// ADC Last Converted Data Register

-	AT91_REG	 ADC_IER; 	// ADC Interrupt Enable Register

-	AT91_REG	 ADC_IDR; 	// ADC Interrupt Disable Register

-	AT91_REG	 ADC_IMR; 	// ADC Interrupt Mask Register

-	AT91_REG	 ADC_CDR0; 	// ADC Channel Data Register 0

-	AT91_REG	 ADC_CDR1; 	// ADC Channel Data Register 1

-	AT91_REG	 ADC_CDR2; 	// ADC Channel Data Register 2

-	AT91_REG	 ADC_CDR3; 	// ADC Channel Data Register 3

-	AT91_REG	 ADC_CDR4; 	// ADC Channel Data Register 4

-	AT91_REG	 ADC_CDR5; 	// ADC Channel Data Register 5

-	AT91_REG	 ADC_CDR6; 	// ADC Channel Data Register 6

-	AT91_REG	 ADC_CDR7; 	// ADC Channel Data Register 7

-	AT91_REG	 Reserved1[44]; 	// 

-	AT91_REG	 ADC_RPR; 	// Receive Pointer Register

-	AT91_REG	 ADC_RCR; 	// Receive Counter Register

-	AT91_REG	 ADC_TPR; 	// Transmit Pointer Register

-	AT91_REG	 ADC_TCR; 	// Transmit Counter Register

-	AT91_REG	 ADC_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 ADC_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 ADC_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 ADC_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 ADC_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 ADC_PTSR; 	// PDC Transfer Status Register

-} AT91S_ADC, *AT91PS_ADC;

-

-// -------- ADC_CR : (ADC Offset: 0x0) ADC Control Register -------- 

-#define AT91C_ADC_SWRST       ((unsigned int) 0x1 <<  0) // (ADC) Software Reset

-#define AT91C_ADC_START       ((unsigned int) 0x1 <<  1) // (ADC) Start Conversion

-// -------- ADC_MR : (ADC Offset: 0x4) ADC Mode Register -------- 

-#define AT91C_ADC_TRGEN       ((unsigned int) 0x1 <<  0) // (ADC) Trigger Enable

-#define 	AT91C_ADC_TRGEN_DIS                  ((unsigned int) 0x0) // (ADC) Hradware triggers are disabled. Starting a conversion is only possible by software

-#define 	AT91C_ADC_TRGEN_EN                   ((unsigned int) 0x1) // (ADC) Hardware trigger selected by TRGSEL field is enabled.

-#define AT91C_ADC_TRGSEL      ((unsigned int) 0x7 <<  1) // (ADC) Trigger Selection

-#define 	AT91C_ADC_TRGSEL_TIOA0                ((unsigned int) 0x0 <<  1) // (ADC) Selected TRGSEL = TIAO0

-#define 	AT91C_ADC_TRGSEL_TIOA1                ((unsigned int) 0x1 <<  1) // (ADC) Selected TRGSEL = TIAO1

-#define 	AT91C_ADC_TRGSEL_TIOA2                ((unsigned int) 0x2 <<  1) // (ADC) Selected TRGSEL = TIAO2

-#define 	AT91C_ADC_TRGSEL_TIOA3                ((unsigned int) 0x3 <<  1) // (ADC) Selected TRGSEL = TIAO3

-#define 	AT91C_ADC_TRGSEL_TIOA4                ((unsigned int) 0x4 <<  1) // (ADC) Selected TRGSEL = TIAO4

-#define 	AT91C_ADC_TRGSEL_TIOA5                ((unsigned int) 0x5 <<  1) // (ADC) Selected TRGSEL = TIAO5

-#define 	AT91C_ADC_TRGSEL_EXT                  ((unsigned int) 0x6 <<  1) // (ADC) Selected TRGSEL = External Trigger

-#define AT91C_ADC_LOWRES      ((unsigned int) 0x1 <<  4) // (ADC) Resolution.

-#define 	AT91C_ADC_LOWRES_10_BIT               ((unsigned int) 0x0 <<  4) // (ADC) 10-bit resolution

-#define 	AT91C_ADC_LOWRES_8_BIT                ((unsigned int) 0x1 <<  4) // (ADC) 8-bit resolution

-#define AT91C_ADC_SLEEP       ((unsigned int) 0x1 <<  5) // (ADC) Sleep Mode

-#define 	AT91C_ADC_SLEEP_NORMAL_MODE          ((unsigned int) 0x0 <<  5) // (ADC) Normal Mode

-#define 	AT91C_ADC_SLEEP_MODE                 ((unsigned int) 0x1 <<  5) // (ADC) Sleep Mode

-#define AT91C_ADC_PRESCAL     ((unsigned int) 0x3F <<  8) // (ADC) Prescaler rate selection

-#define AT91C_ADC_STARTUP     ((unsigned int) 0x1F << 16) // (ADC) Startup Time

-#define AT91C_ADC_SHTIM       ((unsigned int) 0xF << 24) // (ADC) Sample & Hold Time

-// -------- 	ADC_CHER : (ADC Offset: 0x10) ADC Channel Enable Register -------- 

-#define AT91C_ADC_CH0         ((unsigned int) 0x1 <<  0) // (ADC) Channel 0

-#define AT91C_ADC_CH1         ((unsigned int) 0x1 <<  1) // (ADC) Channel 1

-#define AT91C_ADC_CH2         ((unsigned int) 0x1 <<  2) // (ADC) Channel 2

-#define AT91C_ADC_CH3         ((unsigned int) 0x1 <<  3) // (ADC) Channel 3

-#define AT91C_ADC_CH4         ((unsigned int) 0x1 <<  4) // (ADC) Channel 4

-#define AT91C_ADC_CH5         ((unsigned int) 0x1 <<  5) // (ADC) Channel 5

-#define AT91C_ADC_CH6         ((unsigned int) 0x1 <<  6) // (ADC) Channel 6

-#define AT91C_ADC_CH7         ((unsigned int) 0x1 <<  7) // (ADC) Channel 7

-// -------- 	ADC_CHDR : (ADC Offset: 0x14) ADC Channel Disable Register -------- 

-// -------- 	ADC_CHSR : (ADC Offset: 0x18) ADC Channel Status Register -------- 

-// -------- ADC_SR : (ADC Offset: 0x1c) ADC Status Register -------- 

-#define AT91C_ADC_EOC0        ((unsigned int) 0x1 <<  0) // (ADC) End of Conversion

-#define AT91C_ADC_EOC1        ((unsigned int) 0x1 <<  1) // (ADC) End of Conversion

-#define AT91C_ADC_EOC2        ((unsigned int) 0x1 <<  2) // (ADC) End of Conversion

-#define AT91C_ADC_EOC3        ((unsigned int) 0x1 <<  3) // (ADC) End of Conversion

-#define AT91C_ADC_EOC4        ((unsigned int) 0x1 <<  4) // (ADC) End of Conversion

-#define AT91C_ADC_EOC5        ((unsigned int) 0x1 <<  5) // (ADC) End of Conversion

-#define AT91C_ADC_EOC6        ((unsigned int) 0x1 <<  6) // (ADC) End of Conversion

-#define AT91C_ADC_EOC7        ((unsigned int) 0x1 <<  7) // (ADC) End of Conversion

-#define AT91C_ADC_OVRE0       ((unsigned int) 0x1 <<  8) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE1       ((unsigned int) 0x1 <<  9) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE2       ((unsigned int) 0x1 << 10) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE3       ((unsigned int) 0x1 << 11) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE4       ((unsigned int) 0x1 << 12) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE5       ((unsigned int) 0x1 << 13) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE6       ((unsigned int) 0x1 << 14) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE7       ((unsigned int) 0x1 << 15) // (ADC) Overrun Error

-#define AT91C_ADC_DRDY        ((unsigned int) 0x1 << 16) // (ADC) Data Ready

-#define AT91C_ADC_GOVRE       ((unsigned int) 0x1 << 17) // (ADC) General Overrun

-#define AT91C_ADC_ENDRX       ((unsigned int) 0x1 << 18) // (ADC) End of Receiver Transfer

-#define AT91C_ADC_RXBUFF      ((unsigned int) 0x1 << 19) // (ADC) RXBUFF Interrupt

-// -------- ADC_LCDR : (ADC Offset: 0x20) ADC Last Converted Data Register -------- 

-#define AT91C_ADC_LDATA       ((unsigned int) 0x3FF <<  0) // (ADC) Last Data Converted

-// -------- ADC_IER : (ADC Offset: 0x24) ADC Interrupt Enable Register -------- 

-// -------- ADC_IDR : (ADC Offset: 0x28) ADC Interrupt Disable Register -------- 

-// -------- ADC_IMR : (ADC Offset: 0x2c) ADC Interrupt Mask Register -------- 

-// -------- ADC_CDR0 : (ADC Offset: 0x30) ADC Channel Data Register 0 -------- 

-#define AT91C_ADC_DATA        ((unsigned int) 0x3FF <<  0) // (ADC) Converted Data

-// -------- ADC_CDR1 : (ADC Offset: 0x34) ADC Channel Data Register 1 -------- 

-// -------- ADC_CDR2 : (ADC Offset: 0x38) ADC Channel Data Register 2 -------- 

-// -------- ADC_CDR3 : (ADC Offset: 0x3c) ADC Channel Data Register 3 -------- 

-// -------- ADC_CDR4 : (ADC Offset: 0x40) ADC Channel Data Register 4 -------- 

-// -------- ADC_CDR5 : (ADC Offset: 0x44) ADC Channel Data Register 5 -------- 

-// -------- ADC_CDR6 : (ADC Offset: 0x48) ADC Channel Data Register 6 -------- 

-// -------- ADC_CDR7 : (ADC Offset: 0x4c) ADC Channel Data Register 7 -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Advanced  Encryption Standard

-// *****************************************************************************

-typedef struct _AT91S_AES {

-	AT91_REG	 AES_CR; 	// Control Register

-	AT91_REG	 AES_MR; 	// Mode Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 AES_IER; 	// Interrupt Enable Register

-	AT91_REG	 AES_IDR; 	// Interrupt Disable Register

-	AT91_REG	 AES_IMR; 	// Interrupt Mask Register

-	AT91_REG	 AES_ISR; 	// Interrupt Status Register

-	AT91_REG	 AES_KEYWxR[4]; 	// Key Word x Register

-	AT91_REG	 Reserved1[4]; 	// 

-	AT91_REG	 AES_IDATAxR[4]; 	// Input Data x Register

-	AT91_REG	 AES_ODATAxR[4]; 	// Output Data x Register

-	AT91_REG	 AES_IVxR[4]; 	// Initialization Vector x Register

-	AT91_REG	 Reserved2[35]; 	// 

-	AT91_REG	 AES_VR; 	// AES Version Register

-	AT91_REG	 AES_RPR; 	// Receive Pointer Register

-	AT91_REG	 AES_RCR; 	// Receive Counter Register

-	AT91_REG	 AES_TPR; 	// Transmit Pointer Register

-	AT91_REG	 AES_TCR; 	// Transmit Counter Register

-	AT91_REG	 AES_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 AES_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 AES_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 AES_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 AES_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 AES_PTSR; 	// PDC Transfer Status Register

-} AT91S_AES, *AT91PS_AES;

-

-// -------- AES_CR : (AES Offset: 0x0) Control Register -------- 

-#define AT91C_AES_START       ((unsigned int) 0x1 <<  0) // (AES) Starts Processing

-#define AT91C_AES_SWRST       ((unsigned int) 0x1 <<  8) // (AES) Software Reset

-#define AT91C_AES_LOADSEED    ((unsigned int) 0x1 << 16) // (AES) Random Number Generator Seed Loading

-// -------- AES_MR : (AES Offset: 0x4) Mode Register -------- 

-#define AT91C_AES_CIPHER      ((unsigned int) 0x1 <<  0) // (AES) Processing Mode

-#define AT91C_AES_PROCDLY     ((unsigned int) 0xF <<  4) // (AES) Processing Delay

-#define AT91C_AES_SMOD        ((unsigned int) 0x3 <<  8) // (AES) Start Mode

-#define 	AT91C_AES_SMOD_MANUAL               ((unsigned int) 0x0 <<  8) // (AES) Manual Mode: The START bit in register AES_CR must be set to begin encryption or decryption.

-#define 	AT91C_AES_SMOD_AUTO                 ((unsigned int) 0x1 <<  8) // (AES) Auto Mode: no action in AES_CR is necessary (cf datasheet).

-#define 	AT91C_AES_SMOD_PDC                  ((unsigned int) 0x2 <<  8) // (AES) PDC Mode (cf datasheet).

-#define AT91C_AES_OPMOD       ((unsigned int) 0x7 << 12) // (AES) Operation Mode

-#define 	AT91C_AES_OPMOD_ECB                  ((unsigned int) 0x0 << 12) // (AES) ECB Electronic CodeBook mode.

-#define 	AT91C_AES_OPMOD_CBC                  ((unsigned int) 0x1 << 12) // (AES) CBC Cipher Block Chaining mode.

-#define 	AT91C_AES_OPMOD_OFB                  ((unsigned int) 0x2 << 12) // (AES) OFB Output Feedback mode.

-#define 	AT91C_AES_OPMOD_CFB                  ((unsigned int) 0x3 << 12) // (AES) CFB Cipher Feedback mode.

-#define 	AT91C_AES_OPMOD_CTR                  ((unsigned int) 0x4 << 12) // (AES) CTR Counter mode.

-#define AT91C_AES_LOD         ((unsigned int) 0x1 << 15) // (AES) Last Output Data Mode

-#define AT91C_AES_CFBS        ((unsigned int) 0x7 << 16) // (AES) Cipher Feedback Data Size

-#define 	AT91C_AES_CFBS_128_BIT              ((unsigned int) 0x0 << 16) // (AES) 128-bit.

-#define 	AT91C_AES_CFBS_64_BIT               ((unsigned int) 0x1 << 16) // (AES) 64-bit.

-#define 	AT91C_AES_CFBS_32_BIT               ((unsigned int) 0x2 << 16) // (AES) 32-bit.

-#define 	AT91C_AES_CFBS_16_BIT               ((unsigned int) 0x3 << 16) // (AES) 16-bit.

-#define 	AT91C_AES_CFBS_8_BIT                ((unsigned int) 0x4 << 16) // (AES) 8-bit.

-#define AT91C_AES_CKEY        ((unsigned int) 0xF << 20) // (AES) Countermeasure Key

-#define AT91C_AES_CTYPE       ((unsigned int) 0x1F << 24) // (AES) Countermeasure Type

-#define 	AT91C_AES_CTYPE_TYPE1_EN             ((unsigned int) 0x1 << 24) // (AES) Countermeasure type 1 is enabled.

-#define 	AT91C_AES_CTYPE_TYPE2_EN             ((unsigned int) 0x2 << 24) // (AES) Countermeasure type 2 is enabled.

-#define 	AT91C_AES_CTYPE_TYPE3_EN             ((unsigned int) 0x4 << 24) // (AES) Countermeasure type 3 is enabled.

-#define 	AT91C_AES_CTYPE_TYPE4_EN             ((unsigned int) 0x8 << 24) // (AES) Countermeasure type 4 is enabled.

-#define 	AT91C_AES_CTYPE_TYPE5_EN             ((unsigned int) 0x10 << 24) // (AES) Countermeasure type 5 is enabled.

-// -------- AES_IER : (AES Offset: 0x10) Interrupt Enable Register -------- 

-#define AT91C_AES_DATRDY      ((unsigned int) 0x1 <<  0) // (AES) DATRDY

-#define AT91C_AES_ENDRX       ((unsigned int) 0x1 <<  1) // (AES) PDC Read Buffer End

-#define AT91C_AES_ENDTX       ((unsigned int) 0x1 <<  2) // (AES) PDC Write Buffer End

-#define AT91C_AES_RXBUFF      ((unsigned int) 0x1 <<  3) // (AES) PDC Read Buffer Full

-#define AT91C_AES_TXBUFE      ((unsigned int) 0x1 <<  4) // (AES) PDC Write Buffer Empty

-#define AT91C_AES_URAD        ((unsigned int) 0x1 <<  8) // (AES) Unspecified Register Access Detection

-// -------- AES_IDR : (AES Offset: 0x14) Interrupt Disable Register -------- 

-// -------- AES_IMR : (AES Offset: 0x18) Interrupt Mask Register -------- 

-// -------- AES_ISR : (AES Offset: 0x1c) Interrupt Status Register -------- 

-#define AT91C_AES_URAT        ((unsigned int) 0x7 << 12) // (AES) Unspecified Register Access Type Status

-#define 	AT91C_AES_URAT_IN_DAT_WRITE_DATPROC ((unsigned int) 0x0 << 12) // (AES) Input data register written during the data processing in PDC mode.

-#define 	AT91C_AES_URAT_OUT_DAT_READ_DATPROC ((unsigned int) 0x1 << 12) // (AES) Output data register read during the data processing.

-#define 	AT91C_AES_URAT_MODEREG_WRITE_DATPROC ((unsigned int) 0x2 << 12) // (AES) Mode register written during the data processing.

-#define 	AT91C_AES_URAT_OUT_DAT_READ_SUBKEY  ((unsigned int) 0x3 << 12) // (AES) Output data register read during the sub-keys generation.

-#define 	AT91C_AES_URAT_MODEREG_WRITE_SUBKEY ((unsigned int) 0x4 << 12) // (AES) Mode register written during the sub-keys generation.

-#define 	AT91C_AES_URAT_WO_REG_READ          ((unsigned int) 0x5 << 12) // (AES) Write-only register read access.

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Triple Data Encryption Standard

-// *****************************************************************************

-typedef struct _AT91S_TDES {

-	AT91_REG	 TDES_CR; 	// Control Register

-	AT91_REG	 TDES_MR; 	// Mode Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 TDES_IER; 	// Interrupt Enable Register

-	AT91_REG	 TDES_IDR; 	// Interrupt Disable Register

-	AT91_REG	 TDES_IMR; 	// Interrupt Mask Register

-	AT91_REG	 TDES_ISR; 	// Interrupt Status Register

-	AT91_REG	 TDES_KEY1WxR[2]; 	// Key 1 Word x Register

-	AT91_REG	 TDES_KEY2WxR[2]; 	// Key 2 Word x Register

-	AT91_REG	 TDES_KEY3WxR[2]; 	// Key 3 Word x Register

-	AT91_REG	 Reserved1[2]; 	// 

-	AT91_REG	 TDES_IDATAxR[2]; 	// Input Data x Register

-	AT91_REG	 Reserved2[2]; 	// 

-	AT91_REG	 TDES_ODATAxR[2]; 	// Output Data x Register

-	AT91_REG	 Reserved3[2]; 	// 

-	AT91_REG	 TDES_IVxR[2]; 	// Initialization Vector x Register

-	AT91_REG	 Reserved4[37]; 	// 

-	AT91_REG	 TDES_VR; 	// TDES Version Register

-	AT91_REG	 TDES_RPR; 	// Receive Pointer Register

-	AT91_REG	 TDES_RCR; 	// Receive Counter Register

-	AT91_REG	 TDES_TPR; 	// Transmit Pointer Register

-	AT91_REG	 TDES_TCR; 	// Transmit Counter Register

-	AT91_REG	 TDES_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 TDES_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 TDES_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 TDES_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 TDES_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 TDES_PTSR; 	// PDC Transfer Status Register

-} AT91S_TDES, *AT91PS_TDES;

-

-// -------- TDES_CR : (TDES Offset: 0x0) Control Register -------- 

-#define AT91C_TDES_START      ((unsigned int) 0x1 <<  0) // (TDES) Starts Processing

-#define AT91C_TDES_SWRST      ((unsigned int) 0x1 <<  8) // (TDES) Software Reset

-// -------- TDES_MR : (TDES Offset: 0x4) Mode Register -------- 

-#define AT91C_TDES_CIPHER     ((unsigned int) 0x1 <<  0) // (TDES) Processing Mode

-#define AT91C_TDES_TDESMOD    ((unsigned int) 0x1 <<  1) // (TDES) Single or Triple DES Mode

-#define AT91C_TDES_KEYMOD     ((unsigned int) 0x1 <<  4) // (TDES) Key Mode

-#define AT91C_TDES_SMOD       ((unsigned int) 0x3 <<  8) // (TDES) Start Mode

-#define 	AT91C_TDES_SMOD_MANUAL               ((unsigned int) 0x0 <<  8) // (TDES) Manual Mode: The START bit in register TDES_CR must be set to begin encryption or decryption.

-#define 	AT91C_TDES_SMOD_AUTO                 ((unsigned int) 0x1 <<  8) // (TDES) Auto Mode: no action in TDES_CR is necessary (cf datasheet).

-#define 	AT91C_TDES_SMOD_PDC                  ((unsigned int) 0x2 <<  8) // (TDES) PDC Mode (cf datasheet).

-#define AT91C_TDES_OPMOD      ((unsigned int) 0x3 << 12) // (TDES) Operation Mode

-#define 	AT91C_TDES_OPMOD_ECB                  ((unsigned int) 0x0 << 12) // (TDES) ECB Electronic CodeBook mode.

-#define 	AT91C_TDES_OPMOD_CBC                  ((unsigned int) 0x1 << 12) // (TDES) CBC Cipher Block Chaining mode.

-#define 	AT91C_TDES_OPMOD_OFB                  ((unsigned int) 0x2 << 12) // (TDES) OFB Output Feedback mode.

-#define 	AT91C_TDES_OPMOD_CFB                  ((unsigned int) 0x3 << 12) // (TDES) CFB Cipher Feedback mode.

-#define AT91C_TDES_LOD        ((unsigned int) 0x1 << 15) // (TDES) Last Output Data Mode

-#define AT91C_TDES_CFBS       ((unsigned int) 0x3 << 16) // (TDES) Cipher Feedback Data Size

-#define 	AT91C_TDES_CFBS_64_BIT               ((unsigned int) 0x0 << 16) // (TDES) 64-bit.

-#define 	AT91C_TDES_CFBS_32_BIT               ((unsigned int) 0x1 << 16) // (TDES) 32-bit.

-#define 	AT91C_TDES_CFBS_16_BIT               ((unsigned int) 0x2 << 16) // (TDES) 16-bit.

-#define 	AT91C_TDES_CFBS_8_BIT                ((unsigned int) 0x3 << 16) // (TDES) 8-bit.

-// -------- TDES_IER : (TDES Offset: 0x10) Interrupt Enable Register -------- 

-#define AT91C_TDES_DATRDY     ((unsigned int) 0x1 <<  0) // (TDES) DATRDY

-#define AT91C_TDES_ENDRX      ((unsigned int) 0x1 <<  1) // (TDES) PDC Read Buffer End

-#define AT91C_TDES_ENDTX      ((unsigned int) 0x1 <<  2) // (TDES) PDC Write Buffer End

-#define AT91C_TDES_RXBUFF     ((unsigned int) 0x1 <<  3) // (TDES) PDC Read Buffer Full

-#define AT91C_TDES_TXBUFE     ((unsigned int) 0x1 <<  4) // (TDES) PDC Write Buffer Empty

-#define AT91C_TDES_URAD       ((unsigned int) 0x1 <<  8) // (TDES) Unspecified Register Access Detection

-// -------- TDES_IDR : (TDES Offset: 0x14) Interrupt Disable Register -------- 

-// -------- TDES_IMR : (TDES Offset: 0x18) Interrupt Mask Register -------- 

-// -------- TDES_ISR : (TDES Offset: 0x1c) Interrupt Status Register -------- 

-#define AT91C_TDES_URAT       ((unsigned int) 0x3 << 12) // (TDES) Unspecified Register Access Type Status

-#define 	AT91C_TDES_URAT_IN_DAT_WRITE_DATPROC ((unsigned int) 0x0 << 12) // (TDES) Input data register written during the data processing in PDC mode.

-#define 	AT91C_TDES_URAT_OUT_DAT_READ_DATPROC ((unsigned int) 0x1 << 12) // (TDES) Output data register read during the data processing.

-#define 	AT91C_TDES_URAT_MODEREG_WRITE_DATPROC ((unsigned int) 0x2 << 12) // (TDES) Mode register written during the data processing.

-#define 	AT91C_TDES_URAT_WO_REG_READ          ((unsigned int) 0x3 << 12) // (TDES) Write-only register read access.

-

-// *****************************************************************************

-//               REGISTER ADDRESS DEFINITION FOR AT91SAM7X128

-// *****************************************************************************

-// ========== Register definition for SYS peripheral ========== 

-// ========== Register definition for AIC peripheral ========== 

-#define AT91C_AIC_IVR   ((AT91_REG *) 	0xFFFFF100) // (AIC) IRQ Vector Register

-#define AT91C_AIC_SMR   ((AT91_REG *) 	0xFFFFF000) // (AIC) Source Mode Register

-#define AT91C_AIC_FVR   ((AT91_REG *) 	0xFFFFF104) // (AIC) FIQ Vector Register

-#define AT91C_AIC_DCR   ((AT91_REG *) 	0xFFFFF138) // (AIC) Debug Control Register (Protect)

-#define AT91C_AIC_EOICR ((AT91_REG *) 	0xFFFFF130) // (AIC) End of Interrupt Command Register

-#define AT91C_AIC_SVR   ((AT91_REG *) 	0xFFFFF080) // (AIC) Source Vector Register

-#define AT91C_AIC_FFSR  ((AT91_REG *) 	0xFFFFF148) // (AIC) Fast Forcing Status Register

-#define AT91C_AIC_ICCR  ((AT91_REG *) 	0xFFFFF128) // (AIC) Interrupt Clear Command Register

-#define AT91C_AIC_ISR   ((AT91_REG *) 	0xFFFFF108) // (AIC) Interrupt Status Register

-#define AT91C_AIC_IMR   ((AT91_REG *) 	0xFFFFF110) // (AIC) Interrupt Mask Register

-#define AT91C_AIC_IPR   ((AT91_REG *) 	0xFFFFF10C) // (AIC) Interrupt Pending Register

-#define AT91C_AIC_FFER  ((AT91_REG *) 	0xFFFFF140) // (AIC) Fast Forcing Enable Register

-#define AT91C_AIC_IECR  ((AT91_REG *) 	0xFFFFF120) // (AIC) Interrupt Enable Command Register

-#define AT91C_AIC_ISCR  ((AT91_REG *) 	0xFFFFF12C) // (AIC) Interrupt Set Command Register

-#define AT91C_AIC_FFDR  ((AT91_REG *) 	0xFFFFF144) // (AIC) Fast Forcing Disable Register

-#define AT91C_AIC_CISR  ((AT91_REG *) 	0xFFFFF114) // (AIC) Core Interrupt Status Register

-#define AT91C_AIC_IDCR  ((AT91_REG *) 	0xFFFFF124) // (AIC) Interrupt Disable Command Register

-#define AT91C_AIC_SPU   ((AT91_REG *) 	0xFFFFF134) // (AIC) Spurious Vector Register

-// ========== Register definition for PDC_DBGU peripheral ========== 

-#define AT91C_DBGU_TCR  ((AT91_REG *) 	0xFFFFF30C) // (PDC_DBGU) Transmit Counter Register

-#define AT91C_DBGU_RNPR ((AT91_REG *) 	0xFFFFF310) // (PDC_DBGU) Receive Next Pointer Register

-#define AT91C_DBGU_TNPR ((AT91_REG *) 	0xFFFFF318) // (PDC_DBGU) Transmit Next Pointer Register

-#define AT91C_DBGU_TPR  ((AT91_REG *) 	0xFFFFF308) // (PDC_DBGU) Transmit Pointer Register

-#define AT91C_DBGU_RPR  ((AT91_REG *) 	0xFFFFF300) // (PDC_DBGU) Receive Pointer Register

-#define AT91C_DBGU_RCR  ((AT91_REG *) 	0xFFFFF304) // (PDC_DBGU) Receive Counter Register

-#define AT91C_DBGU_RNCR ((AT91_REG *) 	0xFFFFF314) // (PDC_DBGU) Receive Next Counter Register

-#define AT91C_DBGU_PTCR ((AT91_REG *) 	0xFFFFF320) // (PDC_DBGU) PDC Transfer Control Register

-#define AT91C_DBGU_PTSR ((AT91_REG *) 	0xFFFFF324) // (PDC_DBGU) PDC Transfer Status Register

-#define AT91C_DBGU_TNCR ((AT91_REG *) 	0xFFFFF31C) // (PDC_DBGU) Transmit Next Counter Register

-// ========== Register definition for DBGU peripheral ========== 

-#define AT91C_DBGU_EXID ((AT91_REG *) 	0xFFFFF244) // (DBGU) Chip ID Extension Register

-#define AT91C_DBGU_BRGR ((AT91_REG *) 	0xFFFFF220) // (DBGU) Baud Rate Generator Register

-#define AT91C_DBGU_IDR  ((AT91_REG *) 	0xFFFFF20C) // (DBGU) Interrupt Disable Register

-#define AT91C_DBGU_CSR  ((AT91_REG *) 	0xFFFFF214) // (DBGU) Channel Status Register

-#define AT91C_DBGU_CIDR ((AT91_REG *) 	0xFFFFF240) // (DBGU) Chip ID Register

-#define AT91C_DBGU_MR   ((AT91_REG *) 	0xFFFFF204) // (DBGU) Mode Register

-#define AT91C_DBGU_IMR  ((AT91_REG *) 	0xFFFFF210) // (DBGU) Interrupt Mask Register

-#define AT91C_DBGU_CR   ((AT91_REG *) 	0xFFFFF200) // (DBGU) Control Register

-#define AT91C_DBGU_FNTR ((AT91_REG *) 	0xFFFFF248) // (DBGU) Force NTRST Register

-#define AT91C_DBGU_THR  ((AT91_REG *) 	0xFFFFF21C) // (DBGU) Transmitter Holding Register

-#define AT91C_DBGU_RHR  ((AT91_REG *) 	0xFFFFF218) // (DBGU) Receiver Holding Register

-#define AT91C_DBGU_IER  ((AT91_REG *) 	0xFFFFF208) // (DBGU) Interrupt Enable Register

-// ========== Register definition for PIOA peripheral ========== 

-#define AT91C_PIOA_ODR  ((AT91_REG *) 	0xFFFFF414) // (PIOA) Output Disable Registerr

-#define AT91C_PIOA_SODR ((AT91_REG *) 	0xFFFFF430) // (PIOA) Set Output Data Register

-#define AT91C_PIOA_ISR  ((AT91_REG *) 	0xFFFFF44C) // (PIOA) Interrupt Status Register

-#define AT91C_PIOA_ABSR ((AT91_REG *) 	0xFFFFF478) // (PIOA) AB Select Status Register

-#define AT91C_PIOA_IER  ((AT91_REG *) 	0xFFFFF440) // (PIOA) Interrupt Enable Register

-#define AT91C_PIOA_PPUDR ((AT91_REG *) 	0xFFFFF460) // (PIOA) Pull-up Disable Register

-#define AT91C_PIOA_IMR  ((AT91_REG *) 	0xFFFFF448) // (PIOA) Interrupt Mask Register

-#define AT91C_PIOA_PER  ((AT91_REG *) 	0xFFFFF400) // (PIOA) PIO Enable Register

-#define AT91C_PIOA_IFDR ((AT91_REG *) 	0xFFFFF424) // (PIOA) Input Filter Disable Register

-#define AT91C_PIOA_OWDR ((AT91_REG *) 	0xFFFFF4A4) // (PIOA) Output Write Disable Register

-#define AT91C_PIOA_MDSR ((AT91_REG *) 	0xFFFFF458) // (PIOA) Multi-driver Status Register

-#define AT91C_PIOA_IDR  ((AT91_REG *) 	0xFFFFF444) // (PIOA) Interrupt Disable Register

-#define AT91C_PIOA_ODSR ((AT91_REG *) 	0xFFFFF438) // (PIOA) Output Data Status Register

-#define AT91C_PIOA_PPUSR ((AT91_REG *) 	0xFFFFF468) // (PIOA) Pull-up Status Register

-#define AT91C_PIOA_OWSR ((AT91_REG *) 	0xFFFFF4A8) // (PIOA) Output Write Status Register

-#define AT91C_PIOA_BSR  ((AT91_REG *) 	0xFFFFF474) // (PIOA) Select B Register

-#define AT91C_PIOA_OWER ((AT91_REG *) 	0xFFFFF4A0) // (PIOA) Output Write Enable Register

-#define AT91C_PIOA_IFER ((AT91_REG *) 	0xFFFFF420) // (PIOA) Input Filter Enable Register

-#define AT91C_PIOA_PDSR ((AT91_REG *) 	0xFFFFF43C) // (PIOA) Pin Data Status Register

-#define AT91C_PIOA_PPUER ((AT91_REG *) 	0xFFFFF464) // (PIOA) Pull-up Enable Register

-#define AT91C_PIOA_OSR  ((AT91_REG *) 	0xFFFFF418) // (PIOA) Output Status Register

-#define AT91C_PIOA_ASR  ((AT91_REG *) 	0xFFFFF470) // (PIOA) Select A Register

-#define AT91C_PIOA_MDDR ((AT91_REG *) 	0xFFFFF454) // (PIOA) Multi-driver Disable Register

-#define AT91C_PIOA_CODR ((AT91_REG *) 	0xFFFFF434) // (PIOA) Clear Output Data Register

-#define AT91C_PIOA_MDER ((AT91_REG *) 	0xFFFFF450) // (PIOA) Multi-driver Enable Register

-#define AT91C_PIOA_PDR  ((AT91_REG *) 	0xFFFFF404) // (PIOA) PIO Disable Register

-#define AT91C_PIOA_IFSR ((AT91_REG *) 	0xFFFFF428) // (PIOA) Input Filter Status Register

-#define AT91C_PIOA_OER  ((AT91_REG *) 	0xFFFFF410) // (PIOA) Output Enable Register

-#define AT91C_PIOA_PSR  ((AT91_REG *) 	0xFFFFF408) // (PIOA) PIO Status Register

-// ========== Register definition for PIOB peripheral ========== 

-#define AT91C_PIOB_OWDR ((AT91_REG *) 	0xFFFFF6A4) // (PIOB) Output Write Disable Register

-#define AT91C_PIOB_MDER ((AT91_REG *) 	0xFFFFF650) // (PIOB) Multi-driver Enable Register

-#define AT91C_PIOB_PPUSR ((AT91_REG *) 	0xFFFFF668) // (PIOB) Pull-up Status Register

-#define AT91C_PIOB_IMR  ((AT91_REG *) 	0xFFFFF648) // (PIOB) Interrupt Mask Register

-#define AT91C_PIOB_ASR  ((AT91_REG *) 	0xFFFFF670) // (PIOB) Select A Register

-#define AT91C_PIOB_PPUDR ((AT91_REG *) 	0xFFFFF660) // (PIOB) Pull-up Disable Register

-#define AT91C_PIOB_PSR  ((AT91_REG *) 	0xFFFFF608) // (PIOB) PIO Status Register

-#define AT91C_PIOB_IER  ((AT91_REG *) 	0xFFFFF640) // (PIOB) Interrupt Enable Register

-#define AT91C_PIOB_CODR ((AT91_REG *) 	0xFFFFF634) // (PIOB) Clear Output Data Register

-#define AT91C_PIOB_OWER ((AT91_REG *) 	0xFFFFF6A0) // (PIOB) Output Write Enable Register

-#define AT91C_PIOB_ABSR ((AT91_REG *) 	0xFFFFF678) // (PIOB) AB Select Status Register

-#define AT91C_PIOB_IFDR ((AT91_REG *) 	0xFFFFF624) // (PIOB) Input Filter Disable Register

-#define AT91C_PIOB_PDSR ((AT91_REG *) 	0xFFFFF63C) // (PIOB) Pin Data Status Register

-#define AT91C_PIOB_IDR  ((AT91_REG *) 	0xFFFFF644) // (PIOB) Interrupt Disable Register

-#define AT91C_PIOB_OWSR ((AT91_REG *) 	0xFFFFF6A8) // (PIOB) Output Write Status Register

-#define AT91C_PIOB_PDR  ((AT91_REG *) 	0xFFFFF604) // (PIOB) PIO Disable Register

-#define AT91C_PIOB_ODR  ((AT91_REG *) 	0xFFFFF614) // (PIOB) Output Disable Registerr

-#define AT91C_PIOB_IFSR ((AT91_REG *) 	0xFFFFF628) // (PIOB) Input Filter Status Register

-#define AT91C_PIOB_PPUER ((AT91_REG *) 	0xFFFFF664) // (PIOB) Pull-up Enable Register

-#define AT91C_PIOB_SODR ((AT91_REG *) 	0xFFFFF630) // (PIOB) Set Output Data Register

-#define AT91C_PIOB_ISR  ((AT91_REG *) 	0xFFFFF64C) // (PIOB) Interrupt Status Register

-#define AT91C_PIOB_ODSR ((AT91_REG *) 	0xFFFFF638) // (PIOB) Output Data Status Register

-#define AT91C_PIOB_OSR  ((AT91_REG *) 	0xFFFFF618) // (PIOB) Output Status Register

-#define AT91C_PIOB_MDSR ((AT91_REG *) 	0xFFFFF658) // (PIOB) Multi-driver Status Register

-#define AT91C_PIOB_IFER ((AT91_REG *) 	0xFFFFF620) // (PIOB) Input Filter Enable Register

-#define AT91C_PIOB_BSR  ((AT91_REG *) 	0xFFFFF674) // (PIOB) Select B Register

-#define AT91C_PIOB_MDDR ((AT91_REG *) 	0xFFFFF654) // (PIOB) Multi-driver Disable Register

-#define AT91C_PIOB_OER  ((AT91_REG *) 	0xFFFFF610) // (PIOB) Output Enable Register

-#define AT91C_PIOB_PER  ((AT91_REG *) 	0xFFFFF600) // (PIOB) PIO Enable Register

-// ========== Register definition for CKGR peripheral ========== 

-#define AT91C_CKGR_MOR  ((AT91_REG *) 	0xFFFFFC20) // (CKGR) Main Oscillator Register

-#define AT91C_CKGR_PLLR ((AT91_REG *) 	0xFFFFFC2C) // (CKGR) PLL Register

-#define AT91C_CKGR_MCFR ((AT91_REG *) 	0xFFFFFC24) // (CKGR) Main Clock  Frequency Register

-// ========== Register definition for PMC peripheral ========== 

-#define AT91C_PMC_IDR   ((AT91_REG *) 	0xFFFFFC64) // (PMC) Interrupt Disable Register

-#define AT91C_PMC_MOR   ((AT91_REG *) 	0xFFFFFC20) // (PMC) Main Oscillator Register

-#define AT91C_PMC_PLLR  ((AT91_REG *) 	0xFFFFFC2C) // (PMC) PLL Register

-#define AT91C_PMC_PCER  ((AT91_REG *) 	0xFFFFFC10) // (PMC) Peripheral Clock Enable Register

-#define AT91C_PMC_PCKR  ((AT91_REG *) 	0xFFFFFC40) // (PMC) Programmable Clock Register

-#define AT91C_PMC_MCKR  ((AT91_REG *) 	0xFFFFFC30) // (PMC) Master Clock Register

-#define AT91C_PMC_SCDR  ((AT91_REG *) 	0xFFFFFC04) // (PMC) System Clock Disable Register

-#define AT91C_PMC_PCDR  ((AT91_REG *) 	0xFFFFFC14) // (PMC) Peripheral Clock Disable Register

-#define AT91C_PMC_SCSR  ((AT91_REG *) 	0xFFFFFC08) // (PMC) System Clock Status Register

-#define AT91C_PMC_PCSR  ((AT91_REG *) 	0xFFFFFC18) // (PMC) Peripheral Clock Status Register

-#define AT91C_PMC_MCFR  ((AT91_REG *) 	0xFFFFFC24) // (PMC) Main Clock  Frequency Register

-#define AT91C_PMC_SCER  ((AT91_REG *) 	0xFFFFFC00) // (PMC) System Clock Enable Register

-#define AT91C_PMC_IMR   ((AT91_REG *) 	0xFFFFFC6C) // (PMC) Interrupt Mask Register

-#define AT91C_PMC_IER   ((AT91_REG *) 	0xFFFFFC60) // (PMC) Interrupt Enable Register

-#define AT91C_PMC_SR    ((AT91_REG *) 	0xFFFFFC68) // (PMC) Status Register

-// ========== Register definition for RSTC peripheral ========== 

-#define AT91C_RSTC_RCR  ((AT91_REG *) 	0xFFFFFD00) // (RSTC) Reset Control Register

-#define AT91C_RSTC_RMR  ((AT91_REG *) 	0xFFFFFD08) // (RSTC) Reset Mode Register

-#define AT91C_RSTC_RSR  ((AT91_REG *) 	0xFFFFFD04) // (RSTC) Reset Status Register

-// ========== Register definition for RTTC peripheral ========== 

-#define AT91C_RTTC_RTSR ((AT91_REG *) 	0xFFFFFD2C) // (RTTC) Real-time Status Register

-#define AT91C_RTTC_RTMR ((AT91_REG *) 	0xFFFFFD20) // (RTTC) Real-time Mode Register

-#define AT91C_RTTC_RTVR ((AT91_REG *) 	0xFFFFFD28) // (RTTC) Real-time Value Register

-#define AT91C_RTTC_RTAR ((AT91_REG *) 	0xFFFFFD24) // (RTTC) Real-time Alarm Register

-// ========== Register definition for PITC peripheral ========== 

-#define AT91C_PITC_PIVR ((AT91_REG *) 	0xFFFFFD38) // (PITC) Period Interval Value Register

-#define AT91C_PITC_PISR ((AT91_REG *) 	0xFFFFFD34) // (PITC) Period Interval Status Register

-#define AT91C_PITC_PIIR ((AT91_REG *) 	0xFFFFFD3C) // (PITC) Period Interval Image Register

-#define AT91C_PITC_PIMR ((AT91_REG *) 	0xFFFFFD30) // (PITC) Period Interval Mode Register

-// ========== Register definition for WDTC peripheral ========== 

-#define AT91C_WDTC_WDCR ((AT91_REG *) 	0xFFFFFD40) // (WDTC) Watchdog Control Register

-#define AT91C_WDTC_WDSR ((AT91_REG *) 	0xFFFFFD48) // (WDTC) Watchdog Status Register

-#define AT91C_WDTC_WDMR ((AT91_REG *) 	0xFFFFFD44) // (WDTC) Watchdog Mode Register

-// ========== Register definition for VREG peripheral ========== 

-#define AT91C_VREG_MR   ((AT91_REG *) 	0xFFFFFD60) // (VREG) Voltage Regulator Mode Register

-// ========== Register definition for MC peripheral ========== 

-#define AT91C_MC_ASR    ((AT91_REG *) 	0xFFFFFF04) // (MC) MC Abort Status Register

-#define AT91C_MC_RCR    ((AT91_REG *) 	0xFFFFFF00) // (MC) MC Remap Control Register

-#define AT91C_MC_FCR    ((AT91_REG *) 	0xFFFFFF64) // (MC) MC Flash Command Register

-#define AT91C_MC_AASR   ((AT91_REG *) 	0xFFFFFF08) // (MC) MC Abort Address Status Register

-#define AT91C_MC_FSR    ((AT91_REG *) 	0xFFFFFF68) // (MC) MC Flash Status Register

-#define AT91C_MC_FMR    ((AT91_REG *) 	0xFFFFFF60) // (MC) MC Flash Mode Register

-// ========== Register definition for PDC_SPI1 peripheral ========== 

-#define AT91C_SPI1_PTCR ((AT91_REG *) 	0xFFFE4120) // (PDC_SPI1) PDC Transfer Control Register

-#define AT91C_SPI1_RPR  ((AT91_REG *) 	0xFFFE4100) // (PDC_SPI1) Receive Pointer Register

-#define AT91C_SPI1_TNCR ((AT91_REG *) 	0xFFFE411C) // (PDC_SPI1) Transmit Next Counter Register

-#define AT91C_SPI1_TPR  ((AT91_REG *) 	0xFFFE4108) // (PDC_SPI1) Transmit Pointer Register

-#define AT91C_SPI1_TNPR ((AT91_REG *) 	0xFFFE4118) // (PDC_SPI1) Transmit Next Pointer Register

-#define AT91C_SPI1_TCR  ((AT91_REG *) 	0xFFFE410C) // (PDC_SPI1) Transmit Counter Register

-#define AT91C_SPI1_RCR  ((AT91_REG *) 	0xFFFE4104) // (PDC_SPI1) Receive Counter Register

-#define AT91C_SPI1_RNPR ((AT91_REG *) 	0xFFFE4110) // (PDC_SPI1) Receive Next Pointer Register

-#define AT91C_SPI1_RNCR ((AT91_REG *) 	0xFFFE4114) // (PDC_SPI1) Receive Next Counter Register

-#define AT91C_SPI1_PTSR ((AT91_REG *) 	0xFFFE4124) // (PDC_SPI1) PDC Transfer Status Register

-// ========== Register definition for SPI1 peripheral ========== 

-#define AT91C_SPI1_IMR  ((AT91_REG *) 	0xFFFE401C) // (SPI1) Interrupt Mask Register

-#define AT91C_SPI1_IER  ((AT91_REG *) 	0xFFFE4014) // (SPI1) Interrupt Enable Register

-#define AT91C_SPI1_MR   ((AT91_REG *) 	0xFFFE4004) // (SPI1) Mode Register

-#define AT91C_SPI1_RDR  ((AT91_REG *) 	0xFFFE4008) // (SPI1) Receive Data Register

-#define AT91C_SPI1_IDR  ((AT91_REG *) 	0xFFFE4018) // (SPI1) Interrupt Disable Register

-#define AT91C_SPI1_SR   ((AT91_REG *) 	0xFFFE4010) // (SPI1) Status Register

-#define AT91C_SPI1_TDR  ((AT91_REG *) 	0xFFFE400C) // (SPI1) Transmit Data Register

-#define AT91C_SPI1_CR   ((AT91_REG *) 	0xFFFE4000) // (SPI1) Control Register

-#define AT91C_SPI1_CSR  ((AT91_REG *) 	0xFFFE4030) // (SPI1) Chip Select Register

-// ========== Register definition for PDC_SPI0 peripheral ========== 

-#define AT91C_SPI0_PTCR ((AT91_REG *) 	0xFFFE0120) // (PDC_SPI0) PDC Transfer Control Register

-#define AT91C_SPI0_TPR  ((AT91_REG *) 	0xFFFE0108) // (PDC_SPI0) Transmit Pointer Register

-#define AT91C_SPI0_TCR  ((AT91_REG *) 	0xFFFE010C) // (PDC_SPI0) Transmit Counter Register

-#define AT91C_SPI0_RCR  ((AT91_REG *) 	0xFFFE0104) // (PDC_SPI0) Receive Counter Register

-#define AT91C_SPI0_PTSR ((AT91_REG *) 	0xFFFE0124) // (PDC_SPI0) PDC Transfer Status Register

-#define AT91C_SPI0_RNPR ((AT91_REG *) 	0xFFFE0110) // (PDC_SPI0) Receive Next Pointer Register

-#define AT91C_SPI0_RPR  ((AT91_REG *) 	0xFFFE0100) // (PDC_SPI0) Receive Pointer Register

-#define AT91C_SPI0_TNCR ((AT91_REG *) 	0xFFFE011C) // (PDC_SPI0) Transmit Next Counter Register

-#define AT91C_SPI0_RNCR ((AT91_REG *) 	0xFFFE0114) // (PDC_SPI0) Receive Next Counter Register

-#define AT91C_SPI0_TNPR ((AT91_REG *) 	0xFFFE0118) // (PDC_SPI0) Transmit Next Pointer Register

-// ========== Register definition for SPI0 peripheral ========== 

-#define AT91C_SPI0_IER  ((AT91_REG *) 	0xFFFE0014) // (SPI0) Interrupt Enable Register

-#define AT91C_SPI0_SR   ((AT91_REG *) 	0xFFFE0010) // (SPI0) Status Register

-#define AT91C_SPI0_IDR  ((AT91_REG *) 	0xFFFE0018) // (SPI0) Interrupt Disable Register

-#define AT91C_SPI0_CR   ((AT91_REG *) 	0xFFFE0000) // (SPI0) Control Register

-#define AT91C_SPI0_MR   ((AT91_REG *) 	0xFFFE0004) // (SPI0) Mode Register

-#define AT91C_SPI0_IMR  ((AT91_REG *) 	0xFFFE001C) // (SPI0) Interrupt Mask Register

-#define AT91C_SPI0_TDR  ((AT91_REG *) 	0xFFFE000C) // (SPI0) Transmit Data Register

-#define AT91C_SPI0_RDR  ((AT91_REG *) 	0xFFFE0008) // (SPI0) Receive Data Register

-#define AT91C_SPI0_CSR  ((AT91_REG *) 	0xFFFE0030) // (SPI0) Chip Select Register

-// ========== Register definition for PDC_US1 peripheral ========== 

-#define AT91C_US1_RNCR  ((AT91_REG *) 	0xFFFC4114) // (PDC_US1) Receive Next Counter Register

-#define AT91C_US1_PTCR  ((AT91_REG *) 	0xFFFC4120) // (PDC_US1) PDC Transfer Control Register

-#define AT91C_US1_TCR   ((AT91_REG *) 	0xFFFC410C) // (PDC_US1) Transmit Counter Register

-#define AT91C_US1_PTSR  ((AT91_REG *) 	0xFFFC4124) // (PDC_US1) PDC Transfer Status Register

-#define AT91C_US1_TNPR  ((AT91_REG *) 	0xFFFC4118) // (PDC_US1) Transmit Next Pointer Register

-#define AT91C_US1_RCR   ((AT91_REG *) 	0xFFFC4104) // (PDC_US1) Receive Counter Register

-#define AT91C_US1_RNPR  ((AT91_REG *) 	0xFFFC4110) // (PDC_US1) Receive Next Pointer Register

-#define AT91C_US1_RPR   ((AT91_REG *) 	0xFFFC4100) // (PDC_US1) Receive Pointer Register

-#define AT91C_US1_TNCR  ((AT91_REG *) 	0xFFFC411C) // (PDC_US1) Transmit Next Counter Register

-#define AT91C_US1_TPR   ((AT91_REG *) 	0xFFFC4108) // (PDC_US1) Transmit Pointer Register

-// ========== Register definition for US1 peripheral ========== 

-#define AT91C_US1_IF    ((AT91_REG *) 	0xFFFC404C) // (US1) IRDA_FILTER Register

-#define AT91C_US1_NER   ((AT91_REG *) 	0xFFFC4044) // (US1) Nb Errors Register

-#define AT91C_US1_RTOR  ((AT91_REG *) 	0xFFFC4024) // (US1) Receiver Time-out Register

-#define AT91C_US1_CSR   ((AT91_REG *) 	0xFFFC4014) // (US1) Channel Status Register

-#define AT91C_US1_IDR   ((AT91_REG *) 	0xFFFC400C) // (US1) Interrupt Disable Register

-#define AT91C_US1_IER   ((AT91_REG *) 	0xFFFC4008) // (US1) Interrupt Enable Register

-#define AT91C_US1_THR   ((AT91_REG *) 	0xFFFC401C) // (US1) Transmitter Holding Register

-#define AT91C_US1_TTGR  ((AT91_REG *) 	0xFFFC4028) // (US1) Transmitter Time-guard Register

-#define AT91C_US1_RHR   ((AT91_REG *) 	0xFFFC4018) // (US1) Receiver Holding Register

-#define AT91C_US1_BRGR  ((AT91_REG *) 	0xFFFC4020) // (US1) Baud Rate Generator Register

-#define AT91C_US1_IMR   ((AT91_REG *) 	0xFFFC4010) // (US1) Interrupt Mask Register

-#define AT91C_US1_FIDI  ((AT91_REG *) 	0xFFFC4040) // (US1) FI_DI_Ratio Register

-#define AT91C_US1_CR    ((AT91_REG *) 	0xFFFC4000) // (US1) Control Register

-#define AT91C_US1_MR    ((AT91_REG *) 	0xFFFC4004) // (US1) Mode Register

-// ========== Register definition for PDC_US0 peripheral ========== 

-#define AT91C_US0_TNPR  ((AT91_REG *) 	0xFFFC0118) // (PDC_US0) Transmit Next Pointer Register

-#define AT91C_US0_RNPR  ((AT91_REG *) 	0xFFFC0110) // (PDC_US0) Receive Next Pointer Register

-#define AT91C_US0_TCR   ((AT91_REG *) 	0xFFFC010C) // (PDC_US0) Transmit Counter Register

-#define AT91C_US0_PTCR  ((AT91_REG *) 	0xFFFC0120) // (PDC_US0) PDC Transfer Control Register

-#define AT91C_US0_PTSR  ((AT91_REG *) 	0xFFFC0124) // (PDC_US0) PDC Transfer Status Register

-#define AT91C_US0_TNCR  ((AT91_REG *) 	0xFFFC011C) // (PDC_US0) Transmit Next Counter Register

-#define AT91C_US0_TPR   ((AT91_REG *) 	0xFFFC0108) // (PDC_US0) Transmit Pointer Register

-#define AT91C_US0_RCR   ((AT91_REG *) 	0xFFFC0104) // (PDC_US0) Receive Counter Register

-#define AT91C_US0_RPR   ((AT91_REG *) 	0xFFFC0100) // (PDC_US0) Receive Pointer Register

-#define AT91C_US0_RNCR  ((AT91_REG *) 	0xFFFC0114) // (PDC_US0) Receive Next Counter Register

-// ========== Register definition for US0 peripheral ========== 

-#define AT91C_US0_BRGR  ((AT91_REG *) 	0xFFFC0020) // (US0) Baud Rate Generator Register

-#define AT91C_US0_NER   ((AT91_REG *) 	0xFFFC0044) // (US0) Nb Errors Register

-#define AT91C_US0_CR    ((AT91_REG *) 	0xFFFC0000) // (US0) Control Register

-#define AT91C_US0_IMR   ((AT91_REG *) 	0xFFFC0010) // (US0) Interrupt Mask Register

-#define AT91C_US0_FIDI  ((AT91_REG *) 	0xFFFC0040) // (US0) FI_DI_Ratio Register

-#define AT91C_US0_TTGR  ((AT91_REG *) 	0xFFFC0028) // (US0) Transmitter Time-guard Register

-#define AT91C_US0_MR    ((AT91_REG *) 	0xFFFC0004) // (US0) Mode Register

-#define AT91C_US0_RTOR  ((AT91_REG *) 	0xFFFC0024) // (US0) Receiver Time-out Register

-#define AT91C_US0_CSR   ((AT91_REG *) 	0xFFFC0014) // (US0) Channel Status Register

-#define AT91C_US0_RHR   ((AT91_REG *) 	0xFFFC0018) // (US0) Receiver Holding Register

-#define AT91C_US0_IDR   ((AT91_REG *) 	0xFFFC000C) // (US0) Interrupt Disable Register

-#define AT91C_US0_THR   ((AT91_REG *) 	0xFFFC001C) // (US0) Transmitter Holding Register

-#define AT91C_US0_IF    ((AT91_REG *) 	0xFFFC004C) // (US0) IRDA_FILTER Register

-#define AT91C_US0_IER   ((AT91_REG *) 	0xFFFC0008) // (US0) Interrupt Enable Register

-// ========== Register definition for PDC_SSC peripheral ========== 

-#define AT91C_SSC_TNCR  ((AT91_REG *) 	0xFFFD411C) // (PDC_SSC) Transmit Next Counter Register

-#define AT91C_SSC_RPR   ((AT91_REG *) 	0xFFFD4100) // (PDC_SSC) Receive Pointer Register

-#define AT91C_SSC_RNCR  ((AT91_REG *) 	0xFFFD4114) // (PDC_SSC) Receive Next Counter Register

-#define AT91C_SSC_TPR   ((AT91_REG *) 	0xFFFD4108) // (PDC_SSC) Transmit Pointer Register

-#define AT91C_SSC_PTCR  ((AT91_REG *) 	0xFFFD4120) // (PDC_SSC) PDC Transfer Control Register

-#define AT91C_SSC_TCR   ((AT91_REG *) 	0xFFFD410C) // (PDC_SSC) Transmit Counter Register

-#define AT91C_SSC_RCR   ((AT91_REG *) 	0xFFFD4104) // (PDC_SSC) Receive Counter Register

-#define AT91C_SSC_RNPR  ((AT91_REG *) 	0xFFFD4110) // (PDC_SSC) Receive Next Pointer Register

-#define AT91C_SSC_TNPR  ((AT91_REG *) 	0xFFFD4118) // (PDC_SSC) Transmit Next Pointer Register

-#define AT91C_SSC_PTSR  ((AT91_REG *) 	0xFFFD4124) // (PDC_SSC) PDC Transfer Status Register

-// ========== Register definition for SSC peripheral ========== 

-#define AT91C_SSC_RHR   ((AT91_REG *) 	0xFFFD4020) // (SSC) Receive Holding Register

-#define AT91C_SSC_RSHR  ((AT91_REG *) 	0xFFFD4030) // (SSC) Receive Sync Holding Register

-#define AT91C_SSC_TFMR  ((AT91_REG *) 	0xFFFD401C) // (SSC) Transmit Frame Mode Register

-#define AT91C_SSC_IDR   ((AT91_REG *) 	0xFFFD4048) // (SSC) Interrupt Disable Register

-#define AT91C_SSC_THR   ((AT91_REG *) 	0xFFFD4024) // (SSC) Transmit Holding Register

-#define AT91C_SSC_RCMR  ((AT91_REG *) 	0xFFFD4010) // (SSC) Receive Clock ModeRegister

-#define AT91C_SSC_IER   ((AT91_REG *) 	0xFFFD4044) // (SSC) Interrupt Enable Register

-#define AT91C_SSC_TSHR  ((AT91_REG *) 	0xFFFD4034) // (SSC) Transmit Sync Holding Register

-#define AT91C_SSC_SR    ((AT91_REG *) 	0xFFFD4040) // (SSC) Status Register

-#define AT91C_SSC_CMR   ((AT91_REG *) 	0xFFFD4004) // (SSC) Clock Mode Register

-#define AT91C_SSC_TCMR  ((AT91_REG *) 	0xFFFD4018) // (SSC) Transmit Clock Mode Register

-#define AT91C_SSC_CR    ((AT91_REG *) 	0xFFFD4000) // (SSC) Control Register

-#define AT91C_SSC_IMR   ((AT91_REG *) 	0xFFFD404C) // (SSC) Interrupt Mask Register

-#define AT91C_SSC_RFMR  ((AT91_REG *) 	0xFFFD4014) // (SSC) Receive Frame Mode Register

-// ========== Register definition for TWI peripheral ========== 

-#define AT91C_TWI_IER   ((AT91_REG *) 	0xFFFB8024) // (TWI) Interrupt Enable Register

-#define AT91C_TWI_CR    ((AT91_REG *) 	0xFFFB8000) // (TWI) Control Register

-#define AT91C_TWI_SR    ((AT91_REG *) 	0xFFFB8020) // (TWI) Status Register

-#define AT91C_TWI_IMR   ((AT91_REG *) 	0xFFFB802C) // (TWI) Interrupt Mask Register

-#define AT91C_TWI_THR   ((AT91_REG *) 	0xFFFB8034) // (TWI) Transmit Holding Register

-#define AT91C_TWI_IDR   ((AT91_REG *) 	0xFFFB8028) // (TWI) Interrupt Disable Register

-#define AT91C_TWI_IADR  ((AT91_REG *) 	0xFFFB800C) // (TWI) Internal Address Register

-#define AT91C_TWI_MMR   ((AT91_REG *) 	0xFFFB8004) // (TWI) Master Mode Register

-#define AT91C_TWI_CWGR  ((AT91_REG *) 	0xFFFB8010) // (TWI) Clock Waveform Generator Register

-#define AT91C_TWI_RHR   ((AT91_REG *) 	0xFFFB8030) // (TWI) Receive Holding Register

-// ========== Register definition for PWMC_CH3 peripheral ========== 

-#define AT91C_PWMC_CH3_CUPDR ((AT91_REG *) 	0xFFFCC270) // (PWMC_CH3) Channel Update Register

-#define AT91C_PWMC_CH3_Reserved ((AT91_REG *) 	0xFFFCC274) // (PWMC_CH3) Reserved

-#define AT91C_PWMC_CH3_CPRDR ((AT91_REG *) 	0xFFFCC268) // (PWMC_CH3) Channel Period Register

-#define AT91C_PWMC_CH3_CDTYR ((AT91_REG *) 	0xFFFCC264) // (PWMC_CH3) Channel Duty Cycle Register

-#define AT91C_PWMC_CH3_CCNTR ((AT91_REG *) 	0xFFFCC26C) // (PWMC_CH3) Channel Counter Register

-#define AT91C_PWMC_CH3_CMR ((AT91_REG *) 	0xFFFCC260) // (PWMC_CH3) Channel Mode Register

-// ========== Register definition for PWMC_CH2 peripheral ========== 

-#define AT91C_PWMC_CH2_Reserved ((AT91_REG *) 	0xFFFCC254) // (PWMC_CH2) Reserved

-#define AT91C_PWMC_CH2_CMR ((AT91_REG *) 	0xFFFCC240) // (PWMC_CH2) Channel Mode Register

-#define AT91C_PWMC_CH2_CCNTR ((AT91_REG *) 	0xFFFCC24C) // (PWMC_CH2) Channel Counter Register

-#define AT91C_PWMC_CH2_CPRDR ((AT91_REG *) 	0xFFFCC248) // (PWMC_CH2) Channel Period Register

-#define AT91C_PWMC_CH2_CUPDR ((AT91_REG *) 	0xFFFCC250) // (PWMC_CH2) Channel Update Register

-#define AT91C_PWMC_CH2_CDTYR ((AT91_REG *) 	0xFFFCC244) // (PWMC_CH2) Channel Duty Cycle Register

-// ========== Register definition for PWMC_CH1 peripheral ========== 

-#define AT91C_PWMC_CH1_Reserved ((AT91_REG *) 	0xFFFCC234) // (PWMC_CH1) Reserved

-#define AT91C_PWMC_CH1_CUPDR ((AT91_REG *) 	0xFFFCC230) // (PWMC_CH1) Channel Update Register

-#define AT91C_PWMC_CH1_CPRDR ((AT91_REG *) 	0xFFFCC228) // (PWMC_CH1) Channel Period Register

-#define AT91C_PWMC_CH1_CCNTR ((AT91_REG *) 	0xFFFCC22C) // (PWMC_CH1) Channel Counter Register

-#define AT91C_PWMC_CH1_CDTYR ((AT91_REG *) 	0xFFFCC224) // (PWMC_CH1) Channel Duty Cycle Register

-#define AT91C_PWMC_CH1_CMR ((AT91_REG *) 	0xFFFCC220) // (PWMC_CH1) Channel Mode Register

-// ========== Register definition for PWMC_CH0 peripheral ========== 

-#define AT91C_PWMC_CH0_Reserved ((AT91_REG *) 	0xFFFCC214) // (PWMC_CH0) Reserved

-#define AT91C_PWMC_CH0_CPRDR ((AT91_REG *) 	0xFFFCC208) // (PWMC_CH0) Channel Period Register

-#define AT91C_PWMC_CH0_CDTYR ((AT91_REG *) 	0xFFFCC204) // (PWMC_CH0) Channel Duty Cycle Register

-#define AT91C_PWMC_CH0_CMR ((AT91_REG *) 	0xFFFCC200) // (PWMC_CH0) Channel Mode Register

-#define AT91C_PWMC_CH0_CUPDR ((AT91_REG *) 	0xFFFCC210) // (PWMC_CH0) Channel Update Register

-#define AT91C_PWMC_CH0_CCNTR ((AT91_REG *) 	0xFFFCC20C) // (PWMC_CH0) Channel Counter Register

-// ========== Register definition for PWMC peripheral ========== 

-#define AT91C_PWMC_IDR  ((AT91_REG *) 	0xFFFCC014) // (PWMC) PWMC Interrupt Disable Register

-#define AT91C_PWMC_DIS  ((AT91_REG *) 	0xFFFCC008) // (PWMC) PWMC Disable Register

-#define AT91C_PWMC_IER  ((AT91_REG *) 	0xFFFCC010) // (PWMC) PWMC Interrupt Enable Register

-#define AT91C_PWMC_VR   ((AT91_REG *) 	0xFFFCC0FC) // (PWMC) PWMC Version Register

-#define AT91C_PWMC_ISR  ((AT91_REG *) 	0xFFFCC01C) // (PWMC) PWMC Interrupt Status Register

-#define AT91C_PWMC_SR   ((AT91_REG *) 	0xFFFCC00C) // (PWMC) PWMC Status Register

-#define AT91C_PWMC_IMR  ((AT91_REG *) 	0xFFFCC018) // (PWMC) PWMC Interrupt Mask Register

-#define AT91C_PWMC_MR   ((AT91_REG *) 	0xFFFCC000) // (PWMC) PWMC Mode Register

-#define AT91C_PWMC_ENA  ((AT91_REG *) 	0xFFFCC004) // (PWMC) PWMC Enable Register

-// ========== Register definition for UDP peripheral ========== 

-#define AT91C_UDP_IMR   ((AT91_REG *) 	0xFFFB0018) // (UDP) Interrupt Mask Register

-#define AT91C_UDP_FADDR ((AT91_REG *) 	0xFFFB0008) // (UDP) Function Address Register

-#define AT91C_UDP_NUM   ((AT91_REG *) 	0xFFFB0000) // (UDP) Frame Number Register

-#define AT91C_UDP_FDR   ((AT91_REG *) 	0xFFFB0050) // (UDP) Endpoint FIFO Data Register

-#define AT91C_UDP_ISR   ((AT91_REG *) 	0xFFFB001C) // (UDP) Interrupt Status Register

-#define AT91C_UDP_CSR   ((AT91_REG *) 	0xFFFB0030) // (UDP) Endpoint Control and Status Register

-#define AT91C_UDP_IDR   ((AT91_REG *) 	0xFFFB0014) // (UDP) Interrupt Disable Register

-#define AT91C_UDP_ICR   ((AT91_REG *) 	0xFFFB0020) // (UDP) Interrupt Clear Register

-#define AT91C_UDP_RSTEP ((AT91_REG *) 	0xFFFB0028) // (UDP) Reset Endpoint Register

-#define AT91C_UDP_TXVC  ((AT91_REG *) 	0xFFFB0074) // (UDP) Transceiver Control Register

-#define AT91C_UDP_GLBSTATE ((AT91_REG *) 	0xFFFB0004) // (UDP) Global State Register

-#define AT91C_UDP_IER   ((AT91_REG *) 	0xFFFB0010) // (UDP) Interrupt Enable Register

-// ========== Register definition for TC0 peripheral ========== 

-#define AT91C_TC0_SR    ((AT91_REG *) 	0xFFFA0020) // (TC0) Status Register

-#define AT91C_TC0_RC    ((AT91_REG *) 	0xFFFA001C) // (TC0) Register C

-#define AT91C_TC0_RB    ((AT91_REG *) 	0xFFFA0018) // (TC0) Register B

-#define AT91C_TC0_CCR   ((AT91_REG *) 	0xFFFA0000) // (TC0) Channel Control Register

-#define AT91C_TC0_CMR   ((AT91_REG *) 	0xFFFA0004) // (TC0) Channel Mode Register (Capture Mode / Waveform Mode)

-#define AT91C_TC0_IER   ((AT91_REG *) 	0xFFFA0024) // (TC0) Interrupt Enable Register

-#define AT91C_TC0_RA    ((AT91_REG *) 	0xFFFA0014) // (TC0) Register A

-#define AT91C_TC0_IDR   ((AT91_REG *) 	0xFFFA0028) // (TC0) Interrupt Disable Register

-#define AT91C_TC0_CV    ((AT91_REG *) 	0xFFFA0010) // (TC0) Counter Value

-#define AT91C_TC0_IMR   ((AT91_REG *) 	0xFFFA002C) // (TC0) Interrupt Mask Register

-// ========== Register definition for TC1 peripheral ========== 

-#define AT91C_TC1_RB    ((AT91_REG *) 	0xFFFA0058) // (TC1) Register B

-#define AT91C_TC1_CCR   ((AT91_REG *) 	0xFFFA0040) // (TC1) Channel Control Register

-#define AT91C_TC1_IER   ((AT91_REG *) 	0xFFFA0064) // (TC1) Interrupt Enable Register

-#define AT91C_TC1_IDR   ((AT91_REG *) 	0xFFFA0068) // (TC1) Interrupt Disable Register

-#define AT91C_TC1_SR    ((AT91_REG *) 	0xFFFA0060) // (TC1) Status Register

-#define AT91C_TC1_CMR   ((AT91_REG *) 	0xFFFA0044) // (TC1) Channel Mode Register (Capture Mode / Waveform Mode)

-#define AT91C_TC1_RA    ((AT91_REG *) 	0xFFFA0054) // (TC1) Register A

-#define AT91C_TC1_RC    ((AT91_REG *) 	0xFFFA005C) // (TC1) Register C

-#define AT91C_TC1_IMR   ((AT91_REG *) 	0xFFFA006C) // (TC1) Interrupt Mask Register

-#define AT91C_TC1_CV    ((AT91_REG *) 	0xFFFA0050) // (TC1) Counter Value

-// ========== Register definition for TC2 peripheral ========== 

-#define AT91C_TC2_CMR   ((AT91_REG *) 	0xFFFA0084) // (TC2) Channel Mode Register (Capture Mode / Waveform Mode)

-#define AT91C_TC2_CCR   ((AT91_REG *) 	0xFFFA0080) // (TC2) Channel Control Register

-#define AT91C_TC2_CV    ((AT91_REG *) 	0xFFFA0090) // (TC2) Counter Value

-#define AT91C_TC2_RA    ((AT91_REG *) 	0xFFFA0094) // (TC2) Register A

-#define AT91C_TC2_RB    ((AT91_REG *) 	0xFFFA0098) // (TC2) Register B

-#define AT91C_TC2_IDR   ((AT91_REG *) 	0xFFFA00A8) // (TC2) Interrupt Disable Register

-#define AT91C_TC2_IMR   ((AT91_REG *) 	0xFFFA00AC) // (TC2) Interrupt Mask Register

-#define AT91C_TC2_RC    ((AT91_REG *) 	0xFFFA009C) // (TC2) Register C

-#define AT91C_TC2_IER   ((AT91_REG *) 	0xFFFA00A4) // (TC2) Interrupt Enable Register

-#define AT91C_TC2_SR    ((AT91_REG *) 	0xFFFA00A0) // (TC2) Status Register

-// ========== Register definition for TCB peripheral ========== 

-#define AT91C_TCB_BMR   ((AT91_REG *) 	0xFFFA00C4) // (TCB) TC Block Mode Register

-#define AT91C_TCB_BCR   ((AT91_REG *) 	0xFFFA00C0) // (TCB) TC Block Control Register

-// ========== Register definition for CAN_MB0 peripheral ========== 

-#define AT91C_CAN_MB0_MDL ((AT91_REG *) 	0xFFFD0214) // (CAN_MB0) MailBox Data Low Register

-#define AT91C_CAN_MB0_MAM ((AT91_REG *) 	0xFFFD0204) // (CAN_MB0) MailBox Acceptance Mask Register

-#define AT91C_CAN_MB0_MCR ((AT91_REG *) 	0xFFFD021C) // (CAN_MB0) MailBox Control Register

-#define AT91C_CAN_MB0_MID ((AT91_REG *) 	0xFFFD0208) // (CAN_MB0) MailBox ID Register

-#define AT91C_CAN_MB0_MSR ((AT91_REG *) 	0xFFFD0210) // (CAN_MB0) MailBox Status Register

-#define AT91C_CAN_MB0_MFID ((AT91_REG *) 	0xFFFD020C) // (CAN_MB0) MailBox Family ID Register

-#define AT91C_CAN_MB0_MDH ((AT91_REG *) 	0xFFFD0218) // (CAN_MB0) MailBox Data High Register

-#define AT91C_CAN_MB0_MMR ((AT91_REG *) 	0xFFFD0200) // (CAN_MB0) MailBox Mode Register

-// ========== Register definition for CAN_MB1 peripheral ========== 

-#define AT91C_CAN_MB1_MDL ((AT91_REG *) 	0xFFFD0234) // (CAN_MB1) MailBox Data Low Register

-#define AT91C_CAN_MB1_MID ((AT91_REG *) 	0xFFFD0228) // (CAN_MB1) MailBox ID Register

-#define AT91C_CAN_MB1_MMR ((AT91_REG *) 	0xFFFD0220) // (CAN_MB1) MailBox Mode Register

-#define AT91C_CAN_MB1_MSR ((AT91_REG *) 	0xFFFD0230) // (CAN_MB1) MailBox Status Register

-#define AT91C_CAN_MB1_MAM ((AT91_REG *) 	0xFFFD0224) // (CAN_MB1) MailBox Acceptance Mask Register

-#define AT91C_CAN_MB1_MDH ((AT91_REG *) 	0xFFFD0238) // (CAN_MB1) MailBox Data High Register

-#define AT91C_CAN_MB1_MCR ((AT91_REG *) 	0xFFFD023C) // (CAN_MB1) MailBox Control Register

-#define AT91C_CAN_MB1_MFID ((AT91_REG *) 	0xFFFD022C) // (CAN_MB1) MailBox Family ID Register

-// ========== Register definition for CAN_MB2 peripheral ========== 

-#define AT91C_CAN_MB2_MCR ((AT91_REG *) 	0xFFFD025C) // (CAN_MB2) MailBox Control Register

-#define AT91C_CAN_MB2_MDH ((AT91_REG *) 	0xFFFD0258) // (CAN_MB2) MailBox Data High Register

-#define AT91C_CAN_MB2_MID ((AT91_REG *) 	0xFFFD0248) // (CAN_MB2) MailBox ID Register

-#define AT91C_CAN_MB2_MDL ((AT91_REG *) 	0xFFFD0254) // (CAN_MB2) MailBox Data Low Register

-#define AT91C_CAN_MB2_MMR ((AT91_REG *) 	0xFFFD0240) // (CAN_MB2) MailBox Mode Register

-#define AT91C_CAN_MB2_MAM ((AT91_REG *) 	0xFFFD0244) // (CAN_MB2) MailBox Acceptance Mask Register

-#define AT91C_CAN_MB2_MFID ((AT91_REG *) 	0xFFFD024C) // (CAN_MB2) MailBox Family ID Register

-#define AT91C_CAN_MB2_MSR ((AT91_REG *) 	0xFFFD0250) // (CAN_MB2) MailBox Status Register

-// ========== Register definition for CAN_MB3 peripheral ========== 

-#define AT91C_CAN_MB3_MFID ((AT91_REG *) 	0xFFFD026C) // (CAN_MB3) MailBox Family ID Register

-#define AT91C_CAN_MB3_MAM ((AT91_REG *) 	0xFFFD0264) // (CAN_MB3) MailBox Acceptance Mask Register

-#define AT91C_CAN_MB3_MID ((AT91_REG *) 	0xFFFD0268) // (CAN_MB3) MailBox ID Register

-#define AT91C_CAN_MB3_MCR ((AT91_REG *) 	0xFFFD027C) // (CAN_MB3) MailBox Control Register

-#define AT91C_CAN_MB3_MMR ((AT91_REG *) 	0xFFFD0260) // (CAN_MB3) MailBox Mode Register

-#define AT91C_CAN_MB3_MSR ((AT91_REG *) 	0xFFFD0270) // (CAN_MB3) MailBox Status Register

-#define AT91C_CAN_MB3_MDL ((AT91_REG *) 	0xFFFD0274) // (CAN_MB3) MailBox Data Low Register

-#define AT91C_CAN_MB3_MDH ((AT91_REG *) 	0xFFFD0278) // (CAN_MB3) MailBox Data High Register

-// ========== Register definition for CAN_MB4 peripheral ========== 

-#define AT91C_CAN_MB4_MID ((AT91_REG *) 	0xFFFD0288) // (CAN_MB4) MailBox ID Register

-#define AT91C_CAN_MB4_MMR ((AT91_REG *) 	0xFFFD0280) // (CAN_MB4) MailBox Mode Register

-#define AT91C_CAN_MB4_MDH ((AT91_REG *) 	0xFFFD0298) // (CAN_MB4) MailBox Data High Register

-#define AT91C_CAN_MB4_MFID ((AT91_REG *) 	0xFFFD028C) // (CAN_MB4) MailBox Family ID Register

-#define AT91C_CAN_MB4_MSR ((AT91_REG *) 	0xFFFD0290) // (CAN_MB4) MailBox Status Register

-#define AT91C_CAN_MB4_MCR ((AT91_REG *) 	0xFFFD029C) // (CAN_MB4) MailBox Control Register

-#define AT91C_CAN_MB4_MDL ((AT91_REG *) 	0xFFFD0294) // (CAN_MB4) MailBox Data Low Register

-#define AT91C_CAN_MB4_MAM ((AT91_REG *) 	0xFFFD0284) // (CAN_MB4) MailBox Acceptance Mask Register

-// ========== Register definition for CAN_MB5 peripheral ========== 

-#define AT91C_CAN_MB5_MSR ((AT91_REG *) 	0xFFFD02B0) // (CAN_MB5) MailBox Status Register

-#define AT91C_CAN_MB5_MCR ((AT91_REG *) 	0xFFFD02BC) // (CAN_MB5) MailBox Control Register

-#define AT91C_CAN_MB5_MFID ((AT91_REG *) 	0xFFFD02AC) // (CAN_MB5) MailBox Family ID Register

-#define AT91C_CAN_MB5_MDH ((AT91_REG *) 	0xFFFD02B8) // (CAN_MB5) MailBox Data High Register

-#define AT91C_CAN_MB5_MID ((AT91_REG *) 	0xFFFD02A8) // (CAN_MB5) MailBox ID Register

-#define AT91C_CAN_MB5_MMR ((AT91_REG *) 	0xFFFD02A0) // (CAN_MB5) MailBox Mode Register

-#define AT91C_CAN_MB5_MDL ((AT91_REG *) 	0xFFFD02B4) // (CAN_MB5) MailBox Data Low Register

-#define AT91C_CAN_MB5_MAM ((AT91_REG *) 	0xFFFD02A4) // (CAN_MB5) MailBox Acceptance Mask Register

-// ========== Register definition for CAN_MB6 peripheral ========== 

-#define AT91C_CAN_MB6_MFID ((AT91_REG *) 	0xFFFD02CC) // (CAN_MB6) MailBox Family ID Register

-#define AT91C_CAN_MB6_MID ((AT91_REG *) 	0xFFFD02C8) // (CAN_MB6) MailBox ID Register

-#define AT91C_CAN_MB6_MAM ((AT91_REG *) 	0xFFFD02C4) // (CAN_MB6) MailBox Acceptance Mask Register

-#define AT91C_CAN_MB6_MSR ((AT91_REG *) 	0xFFFD02D0) // (CAN_MB6) MailBox Status Register

-#define AT91C_CAN_MB6_MDL ((AT91_REG *) 	0xFFFD02D4) // (CAN_MB6) MailBox Data Low Register

-#define AT91C_CAN_MB6_MCR ((AT91_REG *) 	0xFFFD02DC) // (CAN_MB6) MailBox Control Register

-#define AT91C_CAN_MB6_MDH ((AT91_REG *) 	0xFFFD02D8) // (CAN_MB6) MailBox Data High Register

-#define AT91C_CAN_MB6_MMR ((AT91_REG *) 	0xFFFD02C0) // (CAN_MB6) MailBox Mode Register

-// ========== Register definition for CAN_MB7 peripheral ========== 

-#define AT91C_CAN_MB7_MCR ((AT91_REG *) 	0xFFFD02FC) // (CAN_MB7) MailBox Control Register

-#define AT91C_CAN_MB7_MDH ((AT91_REG *) 	0xFFFD02F8) // (CAN_MB7) MailBox Data High Register

-#define AT91C_CAN_MB7_MFID ((AT91_REG *) 	0xFFFD02EC) // (CAN_MB7) MailBox Family ID Register

-#define AT91C_CAN_MB7_MDL ((AT91_REG *) 	0xFFFD02F4) // (CAN_MB7) MailBox Data Low Register

-#define AT91C_CAN_MB7_MID ((AT91_REG *) 	0xFFFD02E8) // (CAN_MB7) MailBox ID Register

-#define AT91C_CAN_MB7_MMR ((AT91_REG *) 	0xFFFD02E0) // (CAN_MB7) MailBox Mode Register

-#define AT91C_CAN_MB7_MAM ((AT91_REG *) 	0xFFFD02E4) // (CAN_MB7) MailBox Acceptance Mask Register

-#define AT91C_CAN_MB7_MSR ((AT91_REG *) 	0xFFFD02F0) // (CAN_MB7) MailBox Status Register

-// ========== Register definition for CAN peripheral ========== 

-#define AT91C_CAN_TCR   ((AT91_REG *) 	0xFFFD0024) // (CAN) Transfer Command Register

-#define AT91C_CAN_IMR   ((AT91_REG *) 	0xFFFD000C) // (CAN) Interrupt Mask Register

-#define AT91C_CAN_IER   ((AT91_REG *) 	0xFFFD0004) // (CAN) Interrupt Enable Register

-#define AT91C_CAN_ECR   ((AT91_REG *) 	0xFFFD0020) // (CAN) Error Counter Register

-#define AT91C_CAN_TIMESTP ((AT91_REG *) 	0xFFFD001C) // (CAN) Time Stamp Register

-#define AT91C_CAN_MR    ((AT91_REG *) 	0xFFFD0000) // (CAN) Mode Register

-#define AT91C_CAN_IDR   ((AT91_REG *) 	0xFFFD0008) // (CAN) Interrupt Disable Register

-#define AT91C_CAN_ACR   ((AT91_REG *) 	0xFFFD0028) // (CAN) Abort Command Register

-#define AT91C_CAN_TIM   ((AT91_REG *) 	0xFFFD0018) // (CAN) Timer Register

-#define AT91C_CAN_SR    ((AT91_REG *) 	0xFFFD0010) // (CAN) Status Register

-#define AT91C_CAN_BR    ((AT91_REG *) 	0xFFFD0014) // (CAN) Baudrate Register

-#define AT91C_CAN_VR    ((AT91_REG *) 	0xFFFD00FC) // (CAN) Version Register

-// ========== Register definition for EMAC peripheral ========== 

-#define AT91C_EMAC_ISR  ((AT91_REG *) 	0xFFFDC024) // (EMAC) Interrupt Status Register

-#define AT91C_EMAC_SA4H ((AT91_REG *) 	0xFFFDC0B4) // (EMAC) Specific Address 4 Top, Last 2 bytes

-#define AT91C_EMAC_SA1L ((AT91_REG *) 	0xFFFDC098) // (EMAC) Specific Address 1 Bottom, First 4 bytes

-#define AT91C_EMAC_ELE  ((AT91_REG *) 	0xFFFDC078) // (EMAC) Excessive Length Errors Register

-#define AT91C_EMAC_LCOL ((AT91_REG *) 	0xFFFDC05C) // (EMAC) Late Collision Register

-#define AT91C_EMAC_RLE  ((AT91_REG *) 	0xFFFDC088) // (EMAC) Receive Length Field Mismatch Register

-#define AT91C_EMAC_WOL  ((AT91_REG *) 	0xFFFDC0C4) // (EMAC) Wake On LAN Register

-#define AT91C_EMAC_DTF  ((AT91_REG *) 	0xFFFDC058) // (EMAC) Deferred Transmission Frame Register

-#define AT91C_EMAC_TUND ((AT91_REG *) 	0xFFFDC064) // (EMAC) Transmit Underrun Error Register

-#define AT91C_EMAC_NCR  ((AT91_REG *) 	0xFFFDC000) // (EMAC) Network Control Register

-#define AT91C_EMAC_SA4L ((AT91_REG *) 	0xFFFDC0B0) // (EMAC) Specific Address 4 Bottom, First 4 bytes

-#define AT91C_EMAC_RSR  ((AT91_REG *) 	0xFFFDC020) // (EMAC) Receive Status Register

-#define AT91C_EMAC_SA3L ((AT91_REG *) 	0xFFFDC0A8) // (EMAC) Specific Address 3 Bottom, First 4 bytes

-#define AT91C_EMAC_TSR  ((AT91_REG *) 	0xFFFDC014) // (EMAC) Transmit Status Register

-#define AT91C_EMAC_IDR  ((AT91_REG *) 	0xFFFDC02C) // (EMAC) Interrupt Disable Register

-#define AT91C_EMAC_RSE  ((AT91_REG *) 	0xFFFDC074) // (EMAC) Receive Symbol Errors Register

-#define AT91C_EMAC_ECOL ((AT91_REG *) 	0xFFFDC060) // (EMAC) Excessive Collision Register

-#define AT91C_EMAC_TID  ((AT91_REG *) 	0xFFFDC0B8) // (EMAC) Type ID Checking Register

-#define AT91C_EMAC_HRB  ((AT91_REG *) 	0xFFFDC090) // (EMAC) Hash Address Bottom[31:0]

-#define AT91C_EMAC_TBQP ((AT91_REG *) 	0xFFFDC01C) // (EMAC) Transmit Buffer Queue Pointer

-#define AT91C_EMAC_USRIO ((AT91_REG *) 	0xFFFDC0C0) // (EMAC) USER Input/Output Register

-#define AT91C_EMAC_PTR  ((AT91_REG *) 	0xFFFDC038) // (EMAC) Pause Time Register

-#define AT91C_EMAC_SA2H ((AT91_REG *) 	0xFFFDC0A4) // (EMAC) Specific Address 2 Top, Last 2 bytes

-#define AT91C_EMAC_ROV  ((AT91_REG *) 	0xFFFDC070) // (EMAC) Receive Overrun Errors Register

-#define AT91C_EMAC_ALE  ((AT91_REG *) 	0xFFFDC054) // (EMAC) Alignment Error Register

-#define AT91C_EMAC_RJA  ((AT91_REG *) 	0xFFFDC07C) // (EMAC) Receive Jabbers Register

-#define AT91C_EMAC_RBQP ((AT91_REG *) 	0xFFFDC018) // (EMAC) Receive Buffer Queue Pointer

-#define AT91C_EMAC_TPF  ((AT91_REG *) 	0xFFFDC08C) // (EMAC) Transmitted Pause Frames Register

-#define AT91C_EMAC_NCFGR ((AT91_REG *) 	0xFFFDC004) // (EMAC) Network Configuration Register

-#define AT91C_EMAC_HRT  ((AT91_REG *) 	0xFFFDC094) // (EMAC) Hash Address Top[63:32]

-#define AT91C_EMAC_USF  ((AT91_REG *) 	0xFFFDC080) // (EMAC) Undersize Frames Register

-#define AT91C_EMAC_FCSE ((AT91_REG *) 	0xFFFDC050) // (EMAC) Frame Check Sequence Error Register

-#define AT91C_EMAC_TPQ  ((AT91_REG *) 	0xFFFDC0BC) // (EMAC) Transmit Pause Quantum Register

-#define AT91C_EMAC_MAN  ((AT91_REG *) 	0xFFFDC034) // (EMAC) PHY Maintenance Register

-#define AT91C_EMAC_FTO  ((AT91_REG *) 	0xFFFDC040) // (EMAC) Frames Transmitted OK Register

-#define AT91C_EMAC_REV  ((AT91_REG *) 	0xFFFDC0FC) // (EMAC) Revision Register

-#define AT91C_EMAC_IMR  ((AT91_REG *) 	0xFFFDC030) // (EMAC) Interrupt Mask Register

-#define AT91C_EMAC_SCF  ((AT91_REG *) 	0xFFFDC044) // (EMAC) Single Collision Frame Register

-#define AT91C_EMAC_PFR  ((AT91_REG *) 	0xFFFDC03C) // (EMAC) Pause Frames received Register

-#define AT91C_EMAC_MCF  ((AT91_REG *) 	0xFFFDC048) // (EMAC) Multiple Collision Frame Register

-#define AT91C_EMAC_NSR  ((AT91_REG *) 	0xFFFDC008) // (EMAC) Network Status Register

-#define AT91C_EMAC_SA2L ((AT91_REG *) 	0xFFFDC0A0) // (EMAC) Specific Address 2 Bottom, First 4 bytes

-#define AT91C_EMAC_FRO  ((AT91_REG *) 	0xFFFDC04C) // (EMAC) Frames Received OK Register

-#define AT91C_EMAC_IER  ((AT91_REG *) 	0xFFFDC028) // (EMAC) Interrupt Enable Register

-#define AT91C_EMAC_SA1H ((AT91_REG *) 	0xFFFDC09C) // (EMAC) Specific Address 1 Top, Last 2 bytes

-#define AT91C_EMAC_CSE  ((AT91_REG *) 	0xFFFDC068) // (EMAC) Carrier Sense Error Register

-#define AT91C_EMAC_SA3H ((AT91_REG *) 	0xFFFDC0AC) // (EMAC) Specific Address 3 Top, Last 2 bytes

-#define AT91C_EMAC_RRE  ((AT91_REG *) 	0xFFFDC06C) // (EMAC) Receive Ressource Error Register

-#define AT91C_EMAC_STE  ((AT91_REG *) 	0xFFFDC084) // (EMAC) SQE Test Error Register

-// ========== Register definition for PDC_ADC peripheral ========== 

-#define AT91C_ADC_PTSR  ((AT91_REG *) 	0xFFFD8124) // (PDC_ADC) PDC Transfer Status Register

-#define AT91C_ADC_PTCR  ((AT91_REG *) 	0xFFFD8120) // (PDC_ADC) PDC Transfer Control Register

-#define AT91C_ADC_TNPR  ((AT91_REG *) 	0xFFFD8118) // (PDC_ADC) Transmit Next Pointer Register

-#define AT91C_ADC_TNCR  ((AT91_REG *) 	0xFFFD811C) // (PDC_ADC) Transmit Next Counter Register

-#define AT91C_ADC_RNPR  ((AT91_REG *) 	0xFFFD8110) // (PDC_ADC) Receive Next Pointer Register

-#define AT91C_ADC_RNCR  ((AT91_REG *) 	0xFFFD8114) // (PDC_ADC) Receive Next Counter Register

-#define AT91C_ADC_RPR   ((AT91_REG *) 	0xFFFD8100) // (PDC_ADC) Receive Pointer Register

-#define AT91C_ADC_TCR   ((AT91_REG *) 	0xFFFD810C) // (PDC_ADC) Transmit Counter Register

-#define AT91C_ADC_TPR   ((AT91_REG *) 	0xFFFD8108) // (PDC_ADC) Transmit Pointer Register

-#define AT91C_ADC_RCR   ((AT91_REG *) 	0xFFFD8104) // (PDC_ADC) Receive Counter Register

-// ========== Register definition for ADC peripheral ========== 

-#define AT91C_ADC_CDR2  ((AT91_REG *) 	0xFFFD8038) // (ADC) ADC Channel Data Register 2

-#define AT91C_ADC_CDR3  ((AT91_REG *) 	0xFFFD803C) // (ADC) ADC Channel Data Register 3

-#define AT91C_ADC_CDR0  ((AT91_REG *) 	0xFFFD8030) // (ADC) ADC Channel Data Register 0

-#define AT91C_ADC_CDR5  ((AT91_REG *) 	0xFFFD8044) // (ADC) ADC Channel Data Register 5

-#define AT91C_ADC_CHDR  ((AT91_REG *) 	0xFFFD8014) // (ADC) ADC Channel Disable Register

-#define AT91C_ADC_SR    ((AT91_REG *) 	0xFFFD801C) // (ADC) ADC Status Register

-#define AT91C_ADC_CDR4  ((AT91_REG *) 	0xFFFD8040) // (ADC) ADC Channel Data Register 4

-#define AT91C_ADC_CDR1  ((AT91_REG *) 	0xFFFD8034) // (ADC) ADC Channel Data Register 1

-#define AT91C_ADC_LCDR  ((AT91_REG *) 	0xFFFD8020) // (ADC) ADC Last Converted Data Register

-#define AT91C_ADC_IDR   ((AT91_REG *) 	0xFFFD8028) // (ADC) ADC Interrupt Disable Register

-#define AT91C_ADC_CR    ((AT91_REG *) 	0xFFFD8000) // (ADC) ADC Control Register

-#define AT91C_ADC_CDR7  ((AT91_REG *) 	0xFFFD804C) // (ADC) ADC Channel Data Register 7

-#define AT91C_ADC_CDR6  ((AT91_REG *) 	0xFFFD8048) // (ADC) ADC Channel Data Register 6

-#define AT91C_ADC_IER   ((AT91_REG *) 	0xFFFD8024) // (ADC) ADC Interrupt Enable Register

-#define AT91C_ADC_CHER  ((AT91_REG *) 	0xFFFD8010) // (ADC) ADC Channel Enable Register

-#define AT91C_ADC_CHSR  ((AT91_REG *) 	0xFFFD8018) // (ADC) ADC Channel Status Register

-#define AT91C_ADC_MR    ((AT91_REG *) 	0xFFFD8004) // (ADC) ADC Mode Register

-#define AT91C_ADC_IMR   ((AT91_REG *) 	0xFFFD802C) // (ADC) ADC Interrupt Mask Register

-// ========== Register definition for PDC_AES peripheral ========== 

-#define AT91C_AES_TPR   ((AT91_REG *) 	0xFFFA4108) // (PDC_AES) Transmit Pointer Register

-#define AT91C_AES_PTCR  ((AT91_REG *) 	0xFFFA4120) // (PDC_AES) PDC Transfer Control Register

-#define AT91C_AES_RNPR  ((AT91_REG *) 	0xFFFA4110) // (PDC_AES) Receive Next Pointer Register

-#define AT91C_AES_TNCR  ((AT91_REG *) 	0xFFFA411C) // (PDC_AES) Transmit Next Counter Register

-#define AT91C_AES_TCR   ((AT91_REG *) 	0xFFFA410C) // (PDC_AES) Transmit Counter Register

-#define AT91C_AES_RCR   ((AT91_REG *) 	0xFFFA4104) // (PDC_AES) Receive Counter Register

-#define AT91C_AES_RNCR  ((AT91_REG *) 	0xFFFA4114) // (PDC_AES) Receive Next Counter Register

-#define AT91C_AES_TNPR  ((AT91_REG *) 	0xFFFA4118) // (PDC_AES) Transmit Next Pointer Register

-#define AT91C_AES_RPR   ((AT91_REG *) 	0xFFFA4100) // (PDC_AES) Receive Pointer Register

-#define AT91C_AES_PTSR  ((AT91_REG *) 	0xFFFA4124) // (PDC_AES) PDC Transfer Status Register

-// ========== Register definition for AES peripheral ========== 

-#define AT91C_AES_IVxR  ((AT91_REG *) 	0xFFFA4060) // (AES) Initialization Vector x Register

-#define AT91C_AES_MR    ((AT91_REG *) 	0xFFFA4004) // (AES) Mode Register

-#define AT91C_AES_VR    ((AT91_REG *) 	0xFFFA40FC) // (AES) AES Version Register

-#define AT91C_AES_ODATAxR ((AT91_REG *) 	0xFFFA4050) // (AES) Output Data x Register

-#define AT91C_AES_IDATAxR ((AT91_REG *) 	0xFFFA4040) // (AES) Input Data x Register

-#define AT91C_AES_CR    ((AT91_REG *) 	0xFFFA4000) // (AES) Control Register

-#define AT91C_AES_IDR   ((AT91_REG *) 	0xFFFA4014) // (AES) Interrupt Disable Register

-#define AT91C_AES_IMR   ((AT91_REG *) 	0xFFFA4018) // (AES) Interrupt Mask Register

-#define AT91C_AES_IER   ((AT91_REG *) 	0xFFFA4010) // (AES) Interrupt Enable Register

-#define AT91C_AES_KEYWxR ((AT91_REG *) 	0xFFFA4020) // (AES) Key Word x Register

-#define AT91C_AES_ISR   ((AT91_REG *) 	0xFFFA401C) // (AES) Interrupt Status Register

-// ========== Register definition for PDC_TDES peripheral ========== 

-#define AT91C_TDES_RNCR ((AT91_REG *) 	0xFFFA8114) // (PDC_TDES) Receive Next Counter Register

-#define AT91C_TDES_TCR  ((AT91_REG *) 	0xFFFA810C) // (PDC_TDES) Transmit Counter Register

-#define AT91C_TDES_RCR  ((AT91_REG *) 	0xFFFA8104) // (PDC_TDES) Receive Counter Register

-#define AT91C_TDES_TNPR ((AT91_REG *) 	0xFFFA8118) // (PDC_TDES) Transmit Next Pointer Register

-#define AT91C_TDES_RNPR ((AT91_REG *) 	0xFFFA8110) // (PDC_TDES) Receive Next Pointer Register

-#define AT91C_TDES_RPR  ((AT91_REG *) 	0xFFFA8100) // (PDC_TDES) Receive Pointer Register

-#define AT91C_TDES_TNCR ((AT91_REG *) 	0xFFFA811C) // (PDC_TDES) Transmit Next Counter Register

-#define AT91C_TDES_TPR  ((AT91_REG *) 	0xFFFA8108) // (PDC_TDES) Transmit Pointer Register

-#define AT91C_TDES_PTSR ((AT91_REG *) 	0xFFFA8124) // (PDC_TDES) PDC Transfer Status Register

-#define AT91C_TDES_PTCR ((AT91_REG *) 	0xFFFA8120) // (PDC_TDES) PDC Transfer Control Register

-// ========== Register definition for TDES peripheral ========== 

-#define AT91C_TDES_KEY2WxR ((AT91_REG *) 	0xFFFA8028) // (TDES) Key 2 Word x Register

-#define AT91C_TDES_KEY3WxR ((AT91_REG *) 	0xFFFA8030) // (TDES) Key 3 Word x Register

-#define AT91C_TDES_IDR  ((AT91_REG *) 	0xFFFA8014) // (TDES) Interrupt Disable Register

-#define AT91C_TDES_VR   ((AT91_REG *) 	0xFFFA80FC) // (TDES) TDES Version Register

-#define AT91C_TDES_IVxR ((AT91_REG *) 	0xFFFA8060) // (TDES) Initialization Vector x Register

-#define AT91C_TDES_ODATAxR ((AT91_REG *) 	0xFFFA8050) // (TDES) Output Data x Register

-#define AT91C_TDES_IMR  ((AT91_REG *) 	0xFFFA8018) // (TDES) Interrupt Mask Register

-#define AT91C_TDES_MR   ((AT91_REG *) 	0xFFFA8004) // (TDES) Mode Register

-#define AT91C_TDES_CR   ((AT91_REG *) 	0xFFFA8000) // (TDES) Control Register

-#define AT91C_TDES_IER  ((AT91_REG *) 	0xFFFA8010) // (TDES) Interrupt Enable Register

-#define AT91C_TDES_ISR  ((AT91_REG *) 	0xFFFA801C) // (TDES) Interrupt Status Register

-#define AT91C_TDES_IDATAxR ((AT91_REG *) 	0xFFFA8040) // (TDES) Input Data x Register

-#define AT91C_TDES_KEY1WxR ((AT91_REG *) 	0xFFFA8020) // (TDES) Key 1 Word x Register

-

-// *****************************************************************************

-//               PIO DEFINITIONS FOR AT91SAM7X128

-// *****************************************************************************

-#define AT91C_PIO_PA0        ((unsigned int) 1 <<  0) // Pin Controlled by PA0

-#define AT91C_PA0_RXD0     ((unsigned int) AT91C_PIO_PA0) //  USART 0 Receive Data

-#define AT91C_PIO_PA1        ((unsigned int) 1 <<  1) // Pin Controlled by PA1

-#define AT91C_PA1_TXD0     ((unsigned int) AT91C_PIO_PA1) //  USART 0 Transmit Data

-#define AT91C_PIO_PA10       ((unsigned int) 1 << 10) // Pin Controlled by PA10

-#define AT91C_PA10_TWD      ((unsigned int) AT91C_PIO_PA10) //  TWI Two-wire Serial Data

-#define AT91C_PIO_PA11       ((unsigned int) 1 << 11) // Pin Controlled by PA11

-#define AT91C_PA11_TWCK     ((unsigned int) AT91C_PIO_PA11) //  TWI Two-wire Serial Clock

-#define AT91C_PIO_PA12       ((unsigned int) 1 << 12) // Pin Controlled by PA12

-#define AT91C_PA12_NPCS00   ((unsigned int) AT91C_PIO_PA12) //  SPI 0 Peripheral Chip Select 0

-#define AT91C_PIO_PA13       ((unsigned int) 1 << 13) // Pin Controlled by PA13

-#define AT91C_PA13_NPCS01   ((unsigned int) AT91C_PIO_PA13) //  SPI 0 Peripheral Chip Select 1

-#define AT91C_PA13_PCK1     ((unsigned int) AT91C_PIO_PA13) //  PMC Programmable Clock Output 1

-#define AT91C_PIO_PA14       ((unsigned int) 1 << 14) // Pin Controlled by PA14

-#define AT91C_PA14_NPCS02   ((unsigned int) AT91C_PIO_PA14) //  SPI 0 Peripheral Chip Select 2

-#define AT91C_PA14_IRQ1     ((unsigned int) AT91C_PIO_PA14) //  External Interrupt 1

-#define AT91C_PIO_PA15       ((unsigned int) 1 << 15) // Pin Controlled by PA15

-#define AT91C_PA15_NPCS03   ((unsigned int) AT91C_PIO_PA15) //  SPI 0 Peripheral Chip Select 3

-#define AT91C_PA15_TCLK2    ((unsigned int) AT91C_PIO_PA15) //  Timer Counter 2 external clock input

-#define AT91C_PIO_PA16       ((unsigned int) 1 << 16) // Pin Controlled by PA16

-#define AT91C_PA16_MISO0    ((unsigned int) AT91C_PIO_PA16) //  SPI 0 Master In Slave

-#define AT91C_PIO_PA17       ((unsigned int) 1 << 17) // Pin Controlled by PA17

-#define AT91C_PA17_MOSI0    ((unsigned int) AT91C_PIO_PA17) //  SPI 0 Master Out Slave

-#define AT91C_PIO_PA18       ((unsigned int) 1 << 18) // Pin Controlled by PA18

-#define AT91C_PA18_SPCK0    ((unsigned int) AT91C_PIO_PA18) //  SPI 0 Serial Clock

-#define AT91C_PIO_PA19       ((unsigned int) 1 << 19) // Pin Controlled by PA19

-#define AT91C_PA19_CANRX    ((unsigned int) AT91C_PIO_PA19) //  CAN Receive

-#define AT91C_PIO_PA2        ((unsigned int) 1 <<  2) // Pin Controlled by PA2

-#define AT91C_PA2_SCK0     ((unsigned int) AT91C_PIO_PA2) //  USART 0 Serial Clock

-#define AT91C_PA2_NPCS11   ((unsigned int) AT91C_PIO_PA2) //  SPI 1 Peripheral Chip Select 1

-#define AT91C_PIO_PA20       ((unsigned int) 1 << 20) // Pin Controlled by PA20

-#define AT91C_PA20_CANTX    ((unsigned int) AT91C_PIO_PA20) //  CAN Transmit

-#define AT91C_PIO_PA21       ((unsigned int) 1 << 21) // Pin Controlled by PA21

-#define AT91C_PA21_TF       ((unsigned int) AT91C_PIO_PA21) //  SSC Transmit Frame Sync

-#define AT91C_PA21_NPCS10   ((unsigned int) AT91C_PIO_PA21) //  SPI 1 Peripheral Chip Select 0

-#define AT91C_PIO_PA22       ((unsigned int) 1 << 22) // Pin Controlled by PA22

-#define AT91C_PA22_TK       ((unsigned int) AT91C_PIO_PA22) //  SSC Transmit Clock

-#define AT91C_PA22_SPCK1    ((unsigned int) AT91C_PIO_PA22) //  SPI 1 Serial Clock

-#define AT91C_PIO_PA23       ((unsigned int) 1 << 23) // Pin Controlled by PA23

-#define AT91C_PA23_TD       ((unsigned int) AT91C_PIO_PA23) //  SSC Transmit data

-#define AT91C_PA23_MOSI1    ((unsigned int) AT91C_PIO_PA23) //  SPI 1 Master Out Slave

-#define AT91C_PIO_PA24       ((unsigned int) 1 << 24) // Pin Controlled by PA24

-#define AT91C_PA24_RD       ((unsigned int) AT91C_PIO_PA24) //  SSC Receive Data

-#define AT91C_PA24_MISO1    ((unsigned int) AT91C_PIO_PA24) //  SPI 1 Master In Slave

-#define AT91C_PIO_PA25       ((unsigned int) 1 << 25) // Pin Controlled by PA25

-#define AT91C_PA25_RK       ((unsigned int) AT91C_PIO_PA25) //  SSC Receive Clock

-#define AT91C_PA25_NPCS11   ((unsigned int) AT91C_PIO_PA25) //  SPI 1 Peripheral Chip Select 1

-#define AT91C_PIO_PA26       ((unsigned int) 1 << 26) // Pin Controlled by PA26

-#define AT91C_PA26_RF       ((unsigned int) AT91C_PIO_PA26) //  SSC Receive Frame Sync

-#define AT91C_PA26_NPCS12   ((unsigned int) AT91C_PIO_PA26) //  SPI 1 Peripheral Chip Select 2

-#define AT91C_PIO_PA27       ((unsigned int) 1 << 27) // Pin Controlled by PA27

-#define AT91C_PA27_DRXD     ((unsigned int) AT91C_PIO_PA27) //  DBGU Debug Receive Data

-#define AT91C_PA27_PCK3     ((unsigned int) AT91C_PIO_PA27) //  PMC Programmable Clock Output 3

-#define AT91C_PIO_PA28       ((unsigned int) 1 << 28) // Pin Controlled by PA28

-#define AT91C_PA28_DTXD     ((unsigned int) AT91C_PIO_PA28) //  DBGU Debug Transmit Data

-#define AT91C_PIO_PA29       ((unsigned int) 1 << 29) // Pin Controlled by PA29

-#define AT91C_PA29_FIQ      ((unsigned int) AT91C_PIO_PA29) //  AIC Fast Interrupt Input

-#define AT91C_PA29_NPCS13   ((unsigned int) AT91C_PIO_PA29) //  SPI 1 Peripheral Chip Select 3

-#define AT91C_PIO_PA3        ((unsigned int) 1 <<  3) // Pin Controlled by PA3

-#define AT91C_PA3_RTS0     ((unsigned int) AT91C_PIO_PA3) //  USART 0 Ready To Send

-#define AT91C_PA3_NPCS12   ((unsigned int) AT91C_PIO_PA3) //  SPI 1 Peripheral Chip Select 2

-#define AT91C_PIO_PA30       ((unsigned int) 1 << 30) // Pin Controlled by PA30

-#define AT91C_PA30_IRQ0     ((unsigned int) AT91C_PIO_PA30) //  External Interrupt 0

-#define AT91C_PA30_PCK2     ((unsigned int) AT91C_PIO_PA30) //  PMC Programmable Clock Output 2

-#define AT91C_PIO_PA4        ((unsigned int) 1 <<  4) // Pin Controlled by PA4

-#define AT91C_PA4_CTS0     ((unsigned int) AT91C_PIO_PA4) //  USART 0 Clear To Send

-#define AT91C_PA4_NPCS13   ((unsigned int) AT91C_PIO_PA4) //  SPI 1 Peripheral Chip Select 3

-#define AT91C_PIO_PA5        ((unsigned int) 1 <<  5) // Pin Controlled by PA5

-#define AT91C_PA5_RXD1     ((unsigned int) AT91C_PIO_PA5) //  USART 1 Receive Data

-#define AT91C_PIO_PA6        ((unsigned int) 1 <<  6) // Pin Controlled by PA6

-#define AT91C_PA6_TXD1     ((unsigned int) AT91C_PIO_PA6) //  USART 1 Transmit Data

-#define AT91C_PIO_PA7        ((unsigned int) 1 <<  7) // Pin Controlled by PA7

-#define AT91C_PA7_SCK1     ((unsigned int) AT91C_PIO_PA7) //  USART 1 Serial Clock

-#define AT91C_PA7_NPCS01   ((unsigned int) AT91C_PIO_PA7) //  SPI 0 Peripheral Chip Select 1

-#define AT91C_PIO_PA8        ((unsigned int) 1 <<  8) // Pin Controlled by PA8

-#define AT91C_PA8_RTS1     ((unsigned int) AT91C_PIO_PA8) //  USART 1 Ready To Send

-#define AT91C_PA8_NPCS02   ((unsigned int) AT91C_PIO_PA8) //  SPI 0 Peripheral Chip Select 2

-#define AT91C_PIO_PA9        ((unsigned int) 1 <<  9) // Pin Controlled by PA9

-#define AT91C_PA9_CTS1     ((unsigned int) AT91C_PIO_PA9) //  USART 1 Clear To Send

-#define AT91C_PA9_NPCS03   ((unsigned int) AT91C_PIO_PA9) //  SPI 0 Peripheral Chip Select 3

-#define AT91C_PIO_PB0        ((unsigned int) 1 <<  0) // Pin Controlled by PB0

-#define AT91C_PB0_ETXCK_EREFCK ((unsigned int) AT91C_PIO_PB0) //  Ethernet MAC Transmit Clock/Reference Clock

-#define AT91C_PB0_PCK0     ((unsigned int) AT91C_PIO_PB0) //  PMC Programmable Clock Output 0

-#define AT91C_PIO_PB1        ((unsigned int) 1 <<  1) // Pin Controlled by PB1

-#define AT91C_PB1_ETXEN    ((unsigned int) AT91C_PIO_PB1) //  Ethernet MAC Transmit Enable

-#define AT91C_PIO_PB10       ((unsigned int) 1 << 10) // Pin Controlled by PB10

-#define AT91C_PB10_ETX2     ((unsigned int) AT91C_PIO_PB10) //  Ethernet MAC Transmit Data 2

-#define AT91C_PB10_NPCS11   ((unsigned int) AT91C_PIO_PB10) //  SPI 1 Peripheral Chip Select 1

-#define AT91C_PIO_PB11       ((unsigned int) 1 << 11) // Pin Controlled by PB11

-#define AT91C_PB11_ETX3     ((unsigned int) AT91C_PIO_PB11) //  Ethernet MAC Transmit Data 3

-#define AT91C_PB11_NPCS12   ((unsigned int) AT91C_PIO_PB11) //  SPI 1 Peripheral Chip Select 2

-#define AT91C_PIO_PB12       ((unsigned int) 1 << 12) // Pin Controlled by PB12

-#define AT91C_PB12_ETXER    ((unsigned int) AT91C_PIO_PB12) //  Ethernet MAC Transmikt Coding Error

-#define AT91C_PB12_TCLK0    ((unsigned int) AT91C_PIO_PB12) //  Timer Counter 0 external clock input

-#define AT91C_PIO_PB13       ((unsigned int) 1 << 13) // Pin Controlled by PB13

-#define AT91C_PB13_ERX2     ((unsigned int) AT91C_PIO_PB13) //  Ethernet MAC Receive Data 2

-#define AT91C_PB13_NPCS01   ((unsigned int) AT91C_PIO_PB13) //  SPI 0 Peripheral Chip Select 1

-#define AT91C_PIO_PB14       ((unsigned int) 1 << 14) // Pin Controlled by PB14

-#define AT91C_PB14_ERX3     ((unsigned int) AT91C_PIO_PB14) //  Ethernet MAC Receive Data 3

-#define AT91C_PB14_NPCS02   ((unsigned int) AT91C_PIO_PB14) //  SPI 0 Peripheral Chip Select 2

-#define AT91C_PIO_PB15       ((unsigned int) 1 << 15) // Pin Controlled by PB15

-#define AT91C_PB15_ERXDV    ((unsigned int) AT91C_PIO_PB15) //  Ethernet MAC Receive Data Valid

-#define AT91C_PIO_PB16       ((unsigned int) 1 << 16) // Pin Controlled by PB16

-#define AT91C_PB16_ECOL     ((unsigned int) AT91C_PIO_PB16) //  Ethernet MAC Collision Detected

-#define AT91C_PB16_NPCS13   ((unsigned int) AT91C_PIO_PB16) //  SPI 1 Peripheral Chip Select 3

-#define AT91C_PIO_PB17       ((unsigned int) 1 << 17) // Pin Controlled by PB17

-#define AT91C_PB17_ERXCK    ((unsigned int) AT91C_PIO_PB17) //  Ethernet MAC Receive Clock

-#define AT91C_PB17_NPCS03   ((unsigned int) AT91C_PIO_PB17) //  SPI 0 Peripheral Chip Select 3

-#define AT91C_PIO_PB18       ((unsigned int) 1 << 18) // Pin Controlled by PB18

-#define AT91C_PB18_EF100    ((unsigned int) AT91C_PIO_PB18) //  Ethernet MAC Force 100 Mbits/sec

-#define AT91C_PB18_ADTRG    ((unsigned int) AT91C_PIO_PB18) //  ADC External Trigger

-#define AT91C_PIO_PB19       ((unsigned int) 1 << 19) // Pin Controlled by PB19

-#define AT91C_PB19_PWM0     ((unsigned int) AT91C_PIO_PB19) //  PWM Channel 0

-#define AT91C_PB19_TCLK1    ((unsigned int) AT91C_PIO_PB19) //  Timer Counter 1 external clock input

-#define AT91C_PIO_PB2        ((unsigned int) 1 <<  2) // Pin Controlled by PB2

-#define AT91C_PB2_ETX0     ((unsigned int) AT91C_PIO_PB2) //  Ethernet MAC Transmit Data 0

-#define AT91C_PIO_PB20       ((unsigned int) 1 << 20) // Pin Controlled by PB20

-#define AT91C_PB20_PWM1     ((unsigned int) AT91C_PIO_PB20) //  PWM Channel 1

-#define AT91C_PB20_PCK0     ((unsigned int) AT91C_PIO_PB20) //  PMC Programmable Clock Output 0

-#define AT91C_PIO_PB21       ((unsigned int) 1 << 21) // Pin Controlled by PB21

-#define AT91C_PB21_PWM2     ((unsigned int) AT91C_PIO_PB21) //  PWM Channel 2

-#define AT91C_PB21_PCK1     ((unsigned int) AT91C_PIO_PB21) //  PMC Programmable Clock Output 1

-#define AT91C_PIO_PB22       ((unsigned int) 1 << 22) // Pin Controlled by PB22

-#define AT91C_PB22_PWM3     ((unsigned int) AT91C_PIO_PB22) //  PWM Channel 3

-#define AT91C_PB22_PCK2     ((unsigned int) AT91C_PIO_PB22) //  PMC Programmable Clock Output 2

-#define AT91C_PIO_PB23       ((unsigned int) 1 << 23) // Pin Controlled by PB23

-#define AT91C_PB23_TIOA0    ((unsigned int) AT91C_PIO_PB23) //  Timer Counter 0 Multipurpose Timer I/O Pin A

-#define AT91C_PB23_DCD1     ((unsigned int) AT91C_PIO_PB23) //  USART 1 Data Carrier Detect

-#define AT91C_PIO_PB24       ((unsigned int) 1 << 24) // Pin Controlled by PB24

-#define AT91C_PB24_TIOB0    ((unsigned int) AT91C_PIO_PB24) //  Timer Counter 0 Multipurpose Timer I/O Pin B

-#define AT91C_PB24_DSR1     ((unsigned int) AT91C_PIO_PB24) //  USART 1 Data Set ready

-#define AT91C_PIO_PB25       ((unsigned int) 1 << 25) // Pin Controlled by PB25

-#define AT91C_PB25_TIOA1    ((unsigned int) AT91C_PIO_PB25) //  Timer Counter 1 Multipurpose Timer I/O Pin A

-#define AT91C_PB25_DTR1     ((unsigned int) AT91C_PIO_PB25) //  USART 1 Data Terminal ready

-#define AT91C_PIO_PB26       ((unsigned int) 1 << 26) // Pin Controlled by PB26

-#define AT91C_PB26_TIOB1    ((unsigned int) AT91C_PIO_PB26) //  Timer Counter 1 Multipurpose Timer I/O Pin B

-#define AT91C_PB26_RI1      ((unsigned int) AT91C_PIO_PB26) //  USART 1 Ring Indicator

-#define AT91C_PIO_PB27       ((unsigned int) 1 << 27) // Pin Controlled by PB27

-#define AT91C_PB27_TIOA2    ((unsigned int) AT91C_PIO_PB27) //  Timer Counter 2 Multipurpose Timer I/O Pin A

-#define AT91C_PB27_PWM0     ((unsigned int) AT91C_PIO_PB27) //  PWM Channel 0

-#define AT91C_PIO_PB28       ((unsigned int) 1 << 28) // Pin Controlled by PB28

-#define AT91C_PB28_TIOB2    ((unsigned int) AT91C_PIO_PB28) //  Timer Counter 2 Multipurpose Timer I/O Pin B

-#define AT91C_PB28_PWM1     ((unsigned int) AT91C_PIO_PB28) //  PWM Channel 1

-#define AT91C_PIO_PB29       ((unsigned int) 1 << 29) // Pin Controlled by PB29

-#define AT91C_PB29_PCK1     ((unsigned int) AT91C_PIO_PB29) //  PMC Programmable Clock Output 1

-#define AT91C_PB29_PWM2     ((unsigned int) AT91C_PIO_PB29) //  PWM Channel 2

-#define AT91C_PIO_PB3        ((unsigned int) 1 <<  3) // Pin Controlled by PB3

-#define AT91C_PB3_ETX1     ((unsigned int) AT91C_PIO_PB3) //  Ethernet MAC Transmit Data 1

-#define AT91C_PIO_PB30       ((unsigned int) 1 << 30) // Pin Controlled by PB30

-#define AT91C_PB30_PCK2     ((unsigned int) AT91C_PIO_PB30) //  PMC Programmable Clock Output 2

-#define AT91C_PB30_PWM3     ((unsigned int) AT91C_PIO_PB30) //  PWM Channel 3

-#define AT91C_PIO_PB4        ((unsigned int) 1 <<  4) // Pin Controlled by PB4

-#define AT91C_PB4_ECRS_ECRSDV ((unsigned int) AT91C_PIO_PB4) //  Ethernet MAC Carrier Sense/Carrier Sense and Data Valid

-#define AT91C_PIO_PB5        ((unsigned int) 1 <<  5) // Pin Controlled by PB5

-#define AT91C_PB5_ERX0     ((unsigned int) AT91C_PIO_PB5) //  Ethernet MAC Receive Data 0

-#define AT91C_PIO_PB6        ((unsigned int) 1 <<  6) // Pin Controlled by PB6

-#define AT91C_PB6_ERX1     ((unsigned int) AT91C_PIO_PB6) //  Ethernet MAC Receive Data 1

-#define AT91C_PIO_PB7        ((unsigned int) 1 <<  7) // Pin Controlled by PB7

-#define AT91C_PB7_ERXER    ((unsigned int) AT91C_PIO_PB7) //  Ethernet MAC Receive Error

-#define AT91C_PIO_PB8        ((unsigned int) 1 <<  8) // Pin Controlled by PB8

-#define AT91C_PB8_EMDC     ((unsigned int) AT91C_PIO_PB8) //  Ethernet MAC Management Data Clock

-#define AT91C_PIO_PB9        ((unsigned int) 1 <<  9) // Pin Controlled by PB9

-#define AT91C_PB9_EMDIO    ((unsigned int) AT91C_PIO_PB9) //  Ethernet MAC Management Data Input/Output

-

-// *****************************************************************************

-//               PERIPHERAL ID DEFINITIONS FOR AT91SAM7X128

-// *****************************************************************************

-#define AT91C_ID_FIQ    ((unsigned int)  0) // Advanced Interrupt Controller (FIQ)

-#define AT91C_ID_SYS    ((unsigned int)  1) // System Peripheral

-#define AT91C_ID_PIOA   ((unsigned int)  2) // Parallel IO Controller A

-#define AT91C_ID_PIOB   ((unsigned int)  3) // Parallel IO Controller B

-#define AT91C_ID_SPI0   ((unsigned int)  4) // Serial Peripheral Interface 0

-#define AT91C_ID_SPI1   ((unsigned int)  5) // Serial Peripheral Interface 1

-#define AT91C_ID_US0    ((unsigned int)  6) // USART 0

-#define AT91C_ID_US1    ((unsigned int)  7) // USART 1

-#define AT91C_ID_SSC    ((unsigned int)  8) // Serial Synchronous Controller

-#define AT91C_ID_TWI    ((unsigned int)  9) // Two-Wire Interface

-#define AT91C_ID_PWMC   ((unsigned int) 10) // PWM Controller

-#define AT91C_ID_UDP    ((unsigned int) 11) // USB Device Port

-#define AT91C_ID_TC0    ((unsigned int) 12) // Timer Counter 0

-#define AT91C_ID_TC1    ((unsigned int) 13) // Timer Counter 1

-#define AT91C_ID_TC2    ((unsigned int) 14) // Timer Counter 2

-#define AT91C_ID_CAN    ((unsigned int) 15) // Control Area Network Controller

-#define AT91C_ID_EMAC   ((unsigned int) 16) // Ethernet MAC

-#define AT91C_ID_ADC    ((unsigned int) 17) // Analog-to-Digital Converter

-#define AT91C_ID_AES    ((unsigned int) 18) // Advanced Encryption Standard 128-bit

-#define AT91C_ID_TDES   ((unsigned int) 19) // Triple Data Encryption Standard

-#define AT91C_ID_20_Reserved ((unsigned int) 20) // Reserved

-#define AT91C_ID_21_Reserved ((unsigned int) 21) // Reserved

-#define AT91C_ID_22_Reserved ((unsigned int) 22) // Reserved

-#define AT91C_ID_23_Reserved ((unsigned int) 23) // Reserved

-#define AT91C_ID_24_Reserved ((unsigned int) 24) // Reserved

-#define AT91C_ID_25_Reserved ((unsigned int) 25) // Reserved

-#define AT91C_ID_26_Reserved ((unsigned int) 26) // Reserved

-#define AT91C_ID_27_Reserved ((unsigned int) 27) // Reserved

-#define AT91C_ID_28_Reserved ((unsigned int) 28) // Reserved

-#define AT91C_ID_29_Reserved ((unsigned int) 29) // Reserved

-#define AT91C_ID_IRQ0   ((unsigned int) 30) // Advanced Interrupt Controller (IRQ0)

-#define AT91C_ID_IRQ1   ((unsigned int) 31) // Advanced Interrupt Controller (IRQ1)

-

-// *****************************************************************************

-//               BASE ADDRESS DEFINITIONS FOR AT91SAM7X128

-// *****************************************************************************

-#define AT91C_BASE_SYS       ((AT91PS_SYS) 	0xFFFFF000) // (SYS) Base Address

-#define AT91C_BASE_AIC       ((AT91PS_AIC) 	0xFFFFF000) // (AIC) Base Address

-#define AT91C_BASE_PDC_DBGU  ((AT91PS_PDC) 	0xFFFFF300) // (PDC_DBGU) Base Address

-#define AT91C_BASE_DBGU      ((AT91PS_DBGU) 	0xFFFFF200) // (DBGU) Base Address

-#define AT91C_BASE_PIOA      ((AT91PS_PIO) 	0xFFFFF400) // (PIOA) Base Address

-#define AT91C_BASE_PIOB      ((AT91PS_PIO) 	0xFFFFF600) // (PIOB) Base Address

-#define AT91C_BASE_CKGR      ((AT91PS_CKGR) 	0xFFFFFC20) // (CKGR) Base Address

-#define AT91C_BASE_PMC       ((AT91PS_PMC) 	0xFFFFFC00) // (PMC) Base Address

-#define AT91C_BASE_RSTC      ((AT91PS_RSTC) 	0xFFFFFD00) // (RSTC) Base Address

-#define AT91C_BASE_RTTC      ((AT91PS_RTTC) 	0xFFFFFD20) // (RTTC) Base Address

-#define AT91C_BASE_PITC      ((AT91PS_PITC) 	0xFFFFFD30) // (PITC) Base Address

-#define AT91C_BASE_WDTC      ((AT91PS_WDTC) 	0xFFFFFD40) // (WDTC) Base Address

-#define AT91C_BASE_VREG      ((AT91PS_VREG) 	0xFFFFFD60) // (VREG) Base Address

-#define AT91C_BASE_MC        ((AT91PS_MC) 	0xFFFFFF00) // (MC) Base Address

-#define AT91C_BASE_PDC_SPI1  ((AT91PS_PDC) 	0xFFFE4100) // (PDC_SPI1) Base Address

-#define AT91C_BASE_SPI1      ((AT91PS_SPI) 	0xFFFE4000) // (SPI1) Base Address

-#define AT91C_BASE_PDC_SPI0  ((AT91PS_PDC) 	0xFFFE0100) // (PDC_SPI0) Base Address

-#define AT91C_BASE_SPI0      ((AT91PS_SPI) 	0xFFFE0000) // (SPI0) Base Address

-#define AT91C_BASE_PDC_US1   ((AT91PS_PDC) 	0xFFFC4100) // (PDC_US1) Base Address

-#define AT91C_BASE_US1       ((AT91PS_USART) 	0xFFFC4000) // (US1) Base Address

-#define AT91C_BASE_PDC_US0   ((AT91PS_PDC) 	0xFFFC0100) // (PDC_US0) Base Address

-#define AT91C_BASE_US0       ((AT91PS_USART) 	0xFFFC0000) // (US0) Base Address

-#define AT91C_BASE_PDC_SSC   ((AT91PS_PDC) 	0xFFFD4100) // (PDC_SSC) Base Address

-#define AT91C_BASE_SSC       ((AT91PS_SSC) 	0xFFFD4000) // (SSC) Base Address

-#define AT91C_BASE_TWI       ((AT91PS_TWI) 	0xFFFB8000) // (TWI) Base Address

-#define AT91C_BASE_PWMC_CH3  ((AT91PS_PWMC_CH) 	0xFFFCC260) // (PWMC_CH3) Base Address

-#define AT91C_BASE_PWMC_CH2  ((AT91PS_PWMC_CH) 	0xFFFCC240) // (PWMC_CH2) Base Address

-#define AT91C_BASE_PWMC_CH1  ((AT91PS_PWMC_CH) 	0xFFFCC220) // (PWMC_CH1) Base Address

-#define AT91C_BASE_PWMC_CH0  ((AT91PS_PWMC_CH) 	0xFFFCC200) // (PWMC_CH0) Base Address

-#define AT91C_BASE_PWMC      ((AT91PS_PWMC) 	0xFFFCC000) // (PWMC) Base Address

-#define AT91C_BASE_UDP       ((AT91PS_UDP) 	0xFFFB0000) // (UDP) Base Address

-#define AT91C_BASE_TC0       ((AT91PS_TC) 	0xFFFA0000) // (TC0) Base Address

-#define AT91C_BASE_TC1       ((AT91PS_TC) 	0xFFFA0040) // (TC1) Base Address

-#define AT91C_BASE_TC2       ((AT91PS_TC) 	0xFFFA0080) // (TC2) Base Address

-#define AT91C_BASE_TCB       ((AT91PS_TCB) 	0xFFFA0000) // (TCB) Base Address

-#define AT91C_BASE_CAN_MB0   ((AT91PS_CAN_MB) 	0xFFFD0200) // (CAN_MB0) Base Address

-#define AT91C_BASE_CAN_MB1   ((AT91PS_CAN_MB) 	0xFFFD0220) // (CAN_MB1) Base Address

-#define AT91C_BASE_CAN_MB2   ((AT91PS_CAN_MB) 	0xFFFD0240) // (CAN_MB2) Base Address

-#define AT91C_BASE_CAN_MB3   ((AT91PS_CAN_MB) 	0xFFFD0260) // (CAN_MB3) Base Address

-#define AT91C_BASE_CAN_MB4   ((AT91PS_CAN_MB) 	0xFFFD0280) // (CAN_MB4) Base Address

-#define AT91C_BASE_CAN_MB5   ((AT91PS_CAN_MB) 	0xFFFD02A0) // (CAN_MB5) Base Address

-#define AT91C_BASE_CAN_MB6   ((AT91PS_CAN_MB) 	0xFFFD02C0) // (CAN_MB6) Base Address

-#define AT91C_BASE_CAN_MB7   ((AT91PS_CAN_MB) 	0xFFFD02E0) // (CAN_MB7) Base Address

-#define AT91C_BASE_CAN       ((AT91PS_CAN) 	0xFFFD0000) // (CAN) Base Address

-#define AT91C_BASE_EMAC      ((AT91PS_EMAC) 	0xFFFDC000) // (EMAC) Base Address

-#define AT91C_BASE_PDC_ADC   ((AT91PS_PDC) 	0xFFFD8100) // (PDC_ADC) Base Address

-#define AT91C_BASE_ADC       ((AT91PS_ADC) 	0xFFFD8000) // (ADC) Base Address

-#define AT91C_BASE_PDC_AES   ((AT91PS_PDC) 	0xFFFA4100) // (PDC_AES) Base Address

-#define AT91C_BASE_AES       ((AT91PS_AES) 	0xFFFA4000) // (AES) Base Address

-#define AT91C_BASE_PDC_TDES  ((AT91PS_PDC) 	0xFFFA8100) // (PDC_TDES) Base Address

-#define AT91C_BASE_TDES      ((AT91PS_TDES) 	0xFFFA8000) // (TDES) Base Address

-

-// *****************************************************************************

-//               MEMORY MAPPING DEFINITIONS FOR AT91SAM7X128

-// *****************************************************************************

-#define AT91C_ISRAM	 ((char *) 	0x00200000) // Internal SRAM base address

-#define AT91C_ISRAM_SIZE	 ((unsigned int) 0x00008000) // Internal SRAM size in byte (32 Kbyte)

-#define AT91C_IFLASH	 ((char *) 	0x00100000) // Internal ROM base address

-#define AT91C_IFLASH_SIZE	 ((unsigned int) 0x00020000) // Internal ROM size in byte (128 Kbyte)

-#endif /* __IAR_SYSTEMS_ICC__ */

-

-#ifdef __IAR_SYSTEMS_ASM__

-

-// - Hardware register definition

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR System Peripherals

-// - *****************************************************************************

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Advanced Interrupt Controller

-// - *****************************************************************************

-// - -------- AIC_SMR : (AIC Offset: 0x0) Control Register -------- 

-AT91C_AIC_PRIOR           EQU (0x7 <<  0) ;- (AIC) Priority Level

-AT91C_AIC_PRIOR_LOWEST    EQU (0x0) ;- (AIC) Lowest priority level

-AT91C_AIC_PRIOR_HIGHEST   EQU (0x7) ;- (AIC) Highest priority level

-AT91C_AIC_SRCTYPE         EQU (0x3 <<  5) ;- (AIC) Interrupt Source Type

-AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL EQU (0x0 <<  5) ;- (AIC) Internal Sources Code Label High-level Sensitive

-AT91C_AIC_SRCTYPE_EXT_LOW_LEVEL EQU (0x0 <<  5) ;- (AIC) External Sources Code Label Low-level Sensitive

-AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE EQU (0x1 <<  5) ;- (AIC) Internal Sources Code Label Positive Edge triggered

-AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE EQU (0x1 <<  5) ;- (AIC) External Sources Code Label Negative Edge triggered

-AT91C_AIC_SRCTYPE_HIGH_LEVEL EQU (0x2 <<  5) ;- (AIC) Internal Or External Sources Code Label High-level Sensitive

-AT91C_AIC_SRCTYPE_POSITIVE_EDGE EQU (0x3 <<  5) ;- (AIC) Internal Or External Sources Code Label Positive Edge triggered

-// - -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register -------- 

-AT91C_AIC_NFIQ            EQU (0x1 <<  0) ;- (AIC) NFIQ Status

-AT91C_AIC_NIRQ            EQU (0x1 <<  1) ;- (AIC) NIRQ Status

-// - -------- AIC_DCR : (AIC Offset: 0x138) AIC Debug Control Register (Protect) -------- 

-AT91C_AIC_DCR_PROT        EQU (0x1 <<  0) ;- (AIC) Protection Mode

-AT91C_AIC_DCR_GMSK        EQU (0x1 <<  1) ;- (AIC) General Mask

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Peripheral DMA Controller

-// - *****************************************************************************

-// - -------- PDC_PTCR : (PDC Offset: 0x20) PDC Transfer Control Register -------- 

-AT91C_PDC_RXTEN           EQU (0x1 <<  0) ;- (PDC) Receiver Transfer Enable

-AT91C_PDC_RXTDIS          EQU (0x1 <<  1) ;- (PDC) Receiver Transfer Disable

-AT91C_PDC_TXTEN           EQU (0x1 <<  8) ;- (PDC) Transmitter Transfer Enable

-AT91C_PDC_TXTDIS          EQU (0x1 <<  9) ;- (PDC) Transmitter Transfer Disable

-// - -------- PDC_PTSR : (PDC Offset: 0x24) PDC Transfer Status Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Debug Unit

-// - *****************************************************************************

-// - -------- DBGU_CR : (DBGU Offset: 0x0) Debug Unit Control Register -------- 

-AT91C_US_RSTRX            EQU (0x1 <<  2) ;- (DBGU) Reset Receiver

-AT91C_US_RSTTX            EQU (0x1 <<  3) ;- (DBGU) Reset Transmitter

-AT91C_US_RXEN             EQU (0x1 <<  4) ;- (DBGU) Receiver Enable

-AT91C_US_RXDIS            EQU (0x1 <<  5) ;- (DBGU) Receiver Disable

-AT91C_US_TXEN             EQU (0x1 <<  6) ;- (DBGU) Transmitter Enable

-AT91C_US_TXDIS            EQU (0x1 <<  7) ;- (DBGU) Transmitter Disable

-AT91C_US_RSTSTA           EQU (0x1 <<  8) ;- (DBGU) Reset Status Bits

-// - -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register -------- 

-AT91C_US_PAR              EQU (0x7 <<  9) ;- (DBGU) Parity type

-AT91C_US_PAR_EVEN         EQU (0x0 <<  9) ;- (DBGU) Even Parity

-AT91C_US_PAR_ODD          EQU (0x1 <<  9) ;- (DBGU) Odd Parity

-AT91C_US_PAR_SPACE        EQU (0x2 <<  9) ;- (DBGU) Parity forced to 0 (Space)

-AT91C_US_PAR_MARK         EQU (0x3 <<  9) ;- (DBGU) Parity forced to 1 (Mark)

-AT91C_US_PAR_NONE         EQU (0x4 <<  9) ;- (DBGU) No Parity

-AT91C_US_PAR_MULTI_DROP   EQU (0x6 <<  9) ;- (DBGU) Multi-drop mode

-AT91C_US_CHMODE           EQU (0x3 << 14) ;- (DBGU) Channel Mode

-AT91C_US_CHMODE_NORMAL    EQU (0x0 << 14) ;- (DBGU) Normal Mode: The USART channel operates as an RX/TX USART.

-AT91C_US_CHMODE_AUTO      EQU (0x1 << 14) ;- (DBGU) Automatic Echo: Receiver Data Input is connected to the TXD pin.

-AT91C_US_CHMODE_LOCAL     EQU (0x2 << 14) ;- (DBGU) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal.

-AT91C_US_CHMODE_REMOTE    EQU (0x3 << 14) ;- (DBGU) Remote Loopback: RXD pin is internally connected to TXD pin.

-// - -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register -------- 

-AT91C_US_RXRDY            EQU (0x1 <<  0) ;- (DBGU) RXRDY Interrupt

-AT91C_US_TXRDY            EQU (0x1 <<  1) ;- (DBGU) TXRDY Interrupt

-AT91C_US_ENDRX            EQU (0x1 <<  3) ;- (DBGU) End of Receive Transfer Interrupt

-AT91C_US_ENDTX            EQU (0x1 <<  4) ;- (DBGU) End of Transmit Interrupt

-AT91C_US_OVRE             EQU (0x1 <<  5) ;- (DBGU) Overrun Interrupt

-AT91C_US_FRAME            EQU (0x1 <<  6) ;- (DBGU) Framing Error Interrupt

-AT91C_US_PARE             EQU (0x1 <<  7) ;- (DBGU) Parity Error Interrupt

-AT91C_US_TXEMPTY          EQU (0x1 <<  9) ;- (DBGU) TXEMPTY Interrupt

-AT91C_US_TXBUFE           EQU (0x1 << 11) ;- (DBGU) TXBUFE Interrupt

-AT91C_US_RXBUFF           EQU (0x1 << 12) ;- (DBGU) RXBUFF Interrupt

-AT91C_US_COMM_TX          EQU (0x1 << 30) ;- (DBGU) COMM_TX Interrupt

-AT91C_US_COMM_RX          EQU (0x1 << 31) ;- (DBGU) COMM_RX Interrupt

-// - -------- DBGU_IDR : (DBGU Offset: 0xc) Debug Unit Interrupt Disable Register -------- 

-// - -------- DBGU_IMR : (DBGU Offset: 0x10) Debug Unit Interrupt Mask Register -------- 

-// - -------- DBGU_CSR : (DBGU Offset: 0x14) Debug Unit Channel Status Register -------- 

-// - -------- DBGU_FNTR : (DBGU Offset: 0x48) Debug Unit FORCE_NTRST Register -------- 

-AT91C_US_FORCE_NTRST      EQU (0x1 <<  0) ;- (DBGU) Force NTRST in JTAG

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Parallel Input Output Controler

-// - *****************************************************************************

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Clock Generator Controler

-// - *****************************************************************************

-// - -------- CKGR_MOR : (CKGR Offset: 0x0) Main Oscillator Register -------- 

-AT91C_CKGR_MOSCEN         EQU (0x1 <<  0) ;- (CKGR) Main Oscillator Enable

-AT91C_CKGR_OSCBYPASS      EQU (0x1 <<  1) ;- (CKGR) Main Oscillator Bypass

-AT91C_CKGR_OSCOUNT        EQU (0xFF <<  8) ;- (CKGR) Main Oscillator Start-up Time

-// - -------- CKGR_MCFR : (CKGR Offset: 0x4) Main Clock Frequency Register -------- 

-AT91C_CKGR_MAINF          EQU (0xFFFF <<  0) ;- (CKGR) Main Clock Frequency

-AT91C_CKGR_MAINRDY        EQU (0x1 << 16) ;- (CKGR) Main Clock Ready

-// - -------- CKGR_PLLR : (CKGR Offset: 0xc) PLL B Register -------- 

-AT91C_CKGR_DIV            EQU (0xFF <<  0) ;- (CKGR) Divider Selected

-AT91C_CKGR_DIV_0          EQU (0x0) ;- (CKGR) Divider output is 0

-AT91C_CKGR_DIV_BYPASS     EQU (0x1) ;- (CKGR) Divider is bypassed

-AT91C_CKGR_PLLCOUNT       EQU (0x3F <<  8) ;- (CKGR) PLL Counter

-AT91C_CKGR_OUT            EQU (0x3 << 14) ;- (CKGR) PLL Output Frequency Range

-AT91C_CKGR_OUT_0          EQU (0x0 << 14) ;- (CKGR) Please refer to the PLL datasheet

-AT91C_CKGR_OUT_1          EQU (0x1 << 14) ;- (CKGR) Please refer to the PLL datasheet

-AT91C_CKGR_OUT_2          EQU (0x2 << 14) ;- (CKGR) Please refer to the PLL datasheet

-AT91C_CKGR_OUT_3          EQU (0x3 << 14) ;- (CKGR) Please refer to the PLL datasheet

-AT91C_CKGR_MUL            EQU (0x7FF << 16) ;- (CKGR) PLL Multiplier

-AT91C_CKGR_USBDIV         EQU (0x3 << 28) ;- (CKGR) Divider for USB Clocks

-AT91C_CKGR_USBDIV_0       EQU (0x0 << 28) ;- (CKGR) Divider output is PLL clock output

-AT91C_CKGR_USBDIV_1       EQU (0x1 << 28) ;- (CKGR) Divider output is PLL clock output divided by 2

-AT91C_CKGR_USBDIV_2       EQU (0x2 << 28) ;- (CKGR) Divider output is PLL clock output divided by 4

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Power Management Controler

-// - *****************************************************************************

-// - -------- PMC_SCER : (PMC Offset: 0x0) System Clock Enable Register -------- 

-AT91C_PMC_PCK             EQU (0x1 <<  0) ;- (PMC) Processor Clock

-AT91C_PMC_UDP             EQU (0x1 <<  7) ;- (PMC) USB Device Port Clock

-AT91C_PMC_PCK0            EQU (0x1 <<  8) ;- (PMC) Programmable Clock Output

-AT91C_PMC_PCK1            EQU (0x1 <<  9) ;- (PMC) Programmable Clock Output

-AT91C_PMC_PCK2            EQU (0x1 << 10) ;- (PMC) Programmable Clock Output

-AT91C_PMC_PCK3            EQU (0x1 << 11) ;- (PMC) Programmable Clock Output

-// - -------- PMC_SCDR : (PMC Offset: 0x4) System Clock Disable Register -------- 

-// - -------- PMC_SCSR : (PMC Offset: 0x8) System Clock Status Register -------- 

-// - -------- CKGR_MOR : (PMC Offset: 0x20) Main Oscillator Register -------- 

-// - -------- CKGR_MCFR : (PMC Offset: 0x24) Main Clock Frequency Register -------- 

-// - -------- CKGR_PLLR : (PMC Offset: 0x2c) PLL B Register -------- 

-// - -------- PMC_MCKR : (PMC Offset: 0x30) Master Clock Register -------- 

-AT91C_PMC_CSS             EQU (0x3 <<  0) ;- (PMC) Programmable Clock Selection

-AT91C_PMC_CSS_SLOW_CLK    EQU (0x0) ;- (PMC) Slow Clock is selected

-AT91C_PMC_CSS_MAIN_CLK    EQU (0x1) ;- (PMC) Main Clock is selected

-AT91C_PMC_CSS_PLL_CLK     EQU (0x3) ;- (PMC) Clock from PLL is selected

-AT91C_PMC_PRES            EQU (0x7 <<  2) ;- (PMC) Programmable Clock Prescaler

-AT91C_PMC_PRES_CLK        EQU (0x0 <<  2) ;- (PMC) Selected clock

-AT91C_PMC_PRES_CLK_2      EQU (0x1 <<  2) ;- (PMC) Selected clock divided by 2

-AT91C_PMC_PRES_CLK_4      EQU (0x2 <<  2) ;- (PMC) Selected clock divided by 4

-AT91C_PMC_PRES_CLK_8      EQU (0x3 <<  2) ;- (PMC) Selected clock divided by 8

-AT91C_PMC_PRES_CLK_16     EQU (0x4 <<  2) ;- (PMC) Selected clock divided by 16

-AT91C_PMC_PRES_CLK_32     EQU (0x5 <<  2) ;- (PMC) Selected clock divided by 32

-AT91C_PMC_PRES_CLK_64     EQU (0x6 <<  2) ;- (PMC) Selected clock divided by 64

-// - -------- PMC_PCKR : (PMC Offset: 0x40) Programmable Clock Register -------- 

-// - -------- PMC_IER : (PMC Offset: 0x60) PMC Interrupt Enable Register -------- 

-AT91C_PMC_MOSCS           EQU (0x1 <<  0) ;- (PMC) MOSC Status/Enable/Disable/Mask

-AT91C_PMC_LOCK            EQU (0x1 <<  2) ;- (PMC) PLL Status/Enable/Disable/Mask

-AT91C_PMC_MCKRDY          EQU (0x1 <<  3) ;- (PMC) MCK_RDY Status/Enable/Disable/Mask

-AT91C_PMC_PCK0RDY         EQU (0x1 <<  8) ;- (PMC) PCK0_RDY Status/Enable/Disable/Mask

-AT91C_PMC_PCK1RDY         EQU (0x1 <<  9) ;- (PMC) PCK1_RDY Status/Enable/Disable/Mask

-AT91C_PMC_PCK2RDY         EQU (0x1 << 10) ;- (PMC) PCK2_RDY Status/Enable/Disable/Mask

-AT91C_PMC_PCK3RDY         EQU (0x1 << 11) ;- (PMC) PCK3_RDY Status/Enable/Disable/Mask

-// - -------- PMC_IDR : (PMC Offset: 0x64) PMC Interrupt Disable Register -------- 

-// - -------- PMC_SR : (PMC Offset: 0x68) PMC Status Register -------- 

-// - -------- PMC_IMR : (PMC Offset: 0x6c) PMC Interrupt Mask Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Reset Controller Interface

-// - *****************************************************************************

-// - -------- RSTC_RCR : (RSTC Offset: 0x0) Reset Control Register -------- 

-AT91C_RSTC_PROCRST        EQU (0x1 <<  0) ;- (RSTC) Processor Reset

-AT91C_RSTC_PERRST         EQU (0x1 <<  2) ;- (RSTC) Peripheral Reset

-AT91C_RSTC_EXTRST         EQU (0x1 <<  3) ;- (RSTC) External Reset

-AT91C_RSTC_KEY            EQU (0xFF << 24) ;- (RSTC) Password

-// - -------- RSTC_RSR : (RSTC Offset: 0x4) Reset Status Register -------- 

-AT91C_RSTC_URSTS          EQU (0x1 <<  0) ;- (RSTC) User Reset Status

-AT91C_RSTC_BODSTS         EQU (0x1 <<  1) ;- (RSTC) Brownout Detection Status

-AT91C_RSTC_RSTTYP         EQU (0x7 <<  8) ;- (RSTC) Reset Type

-AT91C_RSTC_RSTTYP_POWERUP EQU (0x0 <<  8) ;- (RSTC) Power-up Reset. VDDCORE rising.

-AT91C_RSTC_RSTTYP_WAKEUP  EQU (0x1 <<  8) ;- (RSTC) WakeUp Reset. VDDCORE rising.

-AT91C_RSTC_RSTTYP_WATCHDOG EQU (0x2 <<  8) ;- (RSTC) Watchdog Reset. Watchdog overflow occured.

-AT91C_RSTC_RSTTYP_SOFTWARE EQU (0x3 <<  8) ;- (RSTC) Software Reset. Processor reset required by the software.

-AT91C_RSTC_RSTTYP_USER    EQU (0x4 <<  8) ;- (RSTC) User Reset. NRST pin detected low.

-AT91C_RSTC_RSTTYP_BROWNOUT EQU (0x5 <<  8) ;- (RSTC) Brownout Reset occured.

-AT91C_RSTC_NRSTL          EQU (0x1 << 16) ;- (RSTC) NRST pin level

-AT91C_RSTC_SRCMP          EQU (0x1 << 17) ;- (RSTC) Software Reset Command in Progress.

-// - -------- RSTC_RMR : (RSTC Offset: 0x8) Reset Mode Register -------- 

-AT91C_RSTC_URSTEN         EQU (0x1 <<  0) ;- (RSTC) User Reset Enable

-AT91C_RSTC_URSTIEN        EQU (0x1 <<  4) ;- (RSTC) User Reset Interrupt Enable

-AT91C_RSTC_ERSTL          EQU (0xF <<  8) ;- (RSTC) User Reset Enable

-AT91C_RSTC_BODIEN         EQU (0x1 << 16) ;- (RSTC) Brownout Detection Interrupt Enable

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Real Time Timer Controller Interface

-// - *****************************************************************************

-// - -------- RTTC_RTMR : (RTTC Offset: 0x0) Real-time Mode Register -------- 

-AT91C_RTTC_RTPRES         EQU (0xFFFF <<  0) ;- (RTTC) Real-time Timer Prescaler Value

-AT91C_RTTC_ALMIEN         EQU (0x1 << 16) ;- (RTTC) Alarm Interrupt Enable

-AT91C_RTTC_RTTINCIEN      EQU (0x1 << 17) ;- (RTTC) Real Time Timer Increment Interrupt Enable

-AT91C_RTTC_RTTRST         EQU (0x1 << 18) ;- (RTTC) Real Time Timer Restart

-// - -------- RTTC_RTAR : (RTTC Offset: 0x4) Real-time Alarm Register -------- 

-AT91C_RTTC_ALMV           EQU (0x0 <<  0) ;- (RTTC) Alarm Value

-// - -------- RTTC_RTVR : (RTTC Offset: 0x8) Current Real-time Value Register -------- 

-AT91C_RTTC_CRTV           EQU (0x0 <<  0) ;- (RTTC) Current Real-time Value

-// - -------- RTTC_RTSR : (RTTC Offset: 0xc) Real-time Status Register -------- 

-AT91C_RTTC_ALMS           EQU (0x1 <<  0) ;- (RTTC) Real-time Alarm Status

-AT91C_RTTC_RTTINC         EQU (0x1 <<  1) ;- (RTTC) Real-time Timer Increment

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Periodic Interval Timer Controller Interface

-// - *****************************************************************************

-// - -------- PITC_PIMR : (PITC Offset: 0x0) Periodic Interval Mode Register -------- 

-AT91C_PITC_PIV            EQU (0xFFFFF <<  0) ;- (PITC) Periodic Interval Value

-AT91C_PITC_PITEN          EQU (0x1 << 24) ;- (PITC) Periodic Interval Timer Enabled

-AT91C_PITC_PITIEN         EQU (0x1 << 25) ;- (PITC) Periodic Interval Timer Interrupt Enable

-// - -------- PITC_PISR : (PITC Offset: 0x4) Periodic Interval Status Register -------- 

-AT91C_PITC_PITS           EQU (0x1 <<  0) ;- (PITC) Periodic Interval Timer Status

-// - -------- PITC_PIVR : (PITC Offset: 0x8) Periodic Interval Value Register -------- 

-AT91C_PITC_CPIV           EQU (0xFFFFF <<  0) ;- (PITC) Current Periodic Interval Value

-AT91C_PITC_PICNT          EQU (0xFFF << 20) ;- (PITC) Periodic Interval Counter

-// - -------- PITC_PIIR : (PITC Offset: 0xc) Periodic Interval Image Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Watchdog Timer Controller Interface

-// - *****************************************************************************

-// - -------- WDTC_WDCR : (WDTC Offset: 0x0) Periodic Interval Image Register -------- 

-AT91C_WDTC_WDRSTT         EQU (0x1 <<  0) ;- (WDTC) Watchdog Restart

-AT91C_WDTC_KEY            EQU (0xFF << 24) ;- (WDTC) Watchdog KEY Password

-// - -------- WDTC_WDMR : (WDTC Offset: 0x4) Watchdog Mode Register -------- 

-AT91C_WDTC_WDV            EQU (0xFFF <<  0) ;- (WDTC) Watchdog Timer Restart

-AT91C_WDTC_WDFIEN         EQU (0x1 << 12) ;- (WDTC) Watchdog Fault Interrupt Enable

-AT91C_WDTC_WDRSTEN        EQU (0x1 << 13) ;- (WDTC) Watchdog Reset Enable

-AT91C_WDTC_WDRPROC        EQU (0x1 << 14) ;- (WDTC) Watchdog Timer Restart

-AT91C_WDTC_WDDIS          EQU (0x1 << 15) ;- (WDTC) Watchdog Disable

-AT91C_WDTC_WDD            EQU (0xFFF << 16) ;- (WDTC) Watchdog Delta Value

-AT91C_WDTC_WDDBGHLT       EQU (0x1 << 28) ;- (WDTC) Watchdog Debug Halt

-AT91C_WDTC_WDIDLEHLT      EQU (0x1 << 29) ;- (WDTC) Watchdog Idle Halt

-// - -------- WDTC_WDSR : (WDTC Offset: 0x8) Watchdog Status Register -------- 

-AT91C_WDTC_WDUNF          EQU (0x1 <<  0) ;- (WDTC) Watchdog Underflow

-AT91C_WDTC_WDERR          EQU (0x1 <<  1) ;- (WDTC) Watchdog Error

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Voltage Regulator Mode Controller Interface

-// - *****************************************************************************

-// - -------- VREG_MR : (VREG Offset: 0x0) Voltage Regulator Mode Register -------- 

-AT91C_VREG_PSTDBY         EQU (0x1 <<  0) ;- (VREG) Voltage Regulator Power Standby Mode

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Memory Controller Interface

-// - *****************************************************************************

-// - -------- MC_RCR : (MC Offset: 0x0) MC Remap Control Register -------- 

-AT91C_MC_RCB              EQU (0x1 <<  0) ;- (MC) Remap Command Bit

-// - -------- MC_ASR : (MC Offset: 0x4) MC Abort Status Register -------- 

-AT91C_MC_UNDADD           EQU (0x1 <<  0) ;- (MC) Undefined Addess Abort Status

-AT91C_MC_MISADD           EQU (0x1 <<  1) ;- (MC) Misaligned Addess Abort Status

-AT91C_MC_ABTSZ            EQU (0x3 <<  8) ;- (MC) Abort Size Status

-AT91C_MC_ABTSZ_BYTE       EQU (0x0 <<  8) ;- (MC) Byte

-AT91C_MC_ABTSZ_HWORD      EQU (0x1 <<  8) ;- (MC) Half-word

-AT91C_MC_ABTSZ_WORD       EQU (0x2 <<  8) ;- (MC) Word

-AT91C_MC_ABTTYP           EQU (0x3 << 10) ;- (MC) Abort Type Status

-AT91C_MC_ABTTYP_DATAR     EQU (0x0 << 10) ;- (MC) Data Read

-AT91C_MC_ABTTYP_DATAW     EQU (0x1 << 10) ;- (MC) Data Write

-AT91C_MC_ABTTYP_FETCH     EQU (0x2 << 10) ;- (MC) Code Fetch

-AT91C_MC_MST0             EQU (0x1 << 16) ;- (MC) Master 0 Abort Source

-AT91C_MC_MST1             EQU (0x1 << 17) ;- (MC) Master 1 Abort Source

-AT91C_MC_SVMST0           EQU (0x1 << 24) ;- (MC) Saved Master 0 Abort Source

-AT91C_MC_SVMST1           EQU (0x1 << 25) ;- (MC) Saved Master 1 Abort Source

-// - -------- MC_FMR : (MC Offset: 0x60) MC Flash Mode Register -------- 

-AT91C_MC_FRDY             EQU (0x1 <<  0) ;- (MC) Flash Ready

-AT91C_MC_LOCKE            EQU (0x1 <<  2) ;- (MC) Lock Error

-AT91C_MC_PROGE            EQU (0x1 <<  3) ;- (MC) Programming Error

-AT91C_MC_NEBP             EQU (0x1 <<  7) ;- (MC) No Erase Before Programming

-AT91C_MC_FWS              EQU (0x3 <<  8) ;- (MC) Flash Wait State

-AT91C_MC_FWS_0FWS         EQU (0x0 <<  8) ;- (MC) 1 cycle for Read, 2 for Write operations

-AT91C_MC_FWS_1FWS         EQU (0x1 <<  8) ;- (MC) 2 cycles for Read, 3 for Write operations

-AT91C_MC_FWS_2FWS         EQU (0x2 <<  8) ;- (MC) 3 cycles for Read, 4 for Write operations

-AT91C_MC_FWS_3FWS         EQU (0x3 <<  8) ;- (MC) 4 cycles for Read, 4 for Write operations

-AT91C_MC_FMCN             EQU (0xFF << 16) ;- (MC) Flash Microsecond Cycle Number

-// - -------- MC_FCR : (MC Offset: 0x64) MC Flash Command Register -------- 

-AT91C_MC_FCMD             EQU (0xF <<  0) ;- (MC) Flash Command

-AT91C_MC_FCMD_START_PROG  EQU (0x1) ;- (MC) Starts the programming of th epage specified by PAGEN.

-AT91C_MC_FCMD_LOCK        EQU (0x2) ;- (MC) Starts a lock sequence of the sector defined by the bits 4 to 7 of the field PAGEN.

-AT91C_MC_FCMD_PROG_AND_LOCK EQU (0x3) ;- (MC) The lock sequence automatically happens after the programming sequence is completed.

-AT91C_MC_FCMD_UNLOCK      EQU (0x4) ;- (MC) Starts an unlock sequence of the sector defined by the bits 4 to 7 of the field PAGEN.

-AT91C_MC_FCMD_ERASE_ALL   EQU (0x8) ;- (MC) Starts the erase of the entire flash.If at least a page is locked, the command is cancelled.

-AT91C_MC_FCMD_SET_GP_NVM  EQU (0xB) ;- (MC) Set General Purpose NVM bits.

-AT91C_MC_FCMD_CLR_GP_NVM  EQU (0xD) ;- (MC) Clear General Purpose NVM bits.

-AT91C_MC_FCMD_SET_SECURITY EQU (0xF) ;- (MC) Set Security Bit.

-AT91C_MC_PAGEN            EQU (0x3FF <<  8) ;- (MC) Page Number

-AT91C_MC_KEY              EQU (0xFF << 24) ;- (MC) Writing Protect Key

-// - -------- MC_FSR : (MC Offset: 0x68) MC Flash Command Register -------- 

-AT91C_MC_SECURITY         EQU (0x1 <<  4) ;- (MC) Security Bit Status

-AT91C_MC_GPNVM0           EQU (0x1 <<  8) ;- (MC) Sector 0 Lock Status

-AT91C_MC_GPNVM1           EQU (0x1 <<  9) ;- (MC) Sector 1 Lock Status

-AT91C_MC_GPNVM2           EQU (0x1 << 10) ;- (MC) Sector 2 Lock Status

-AT91C_MC_GPNVM3           EQU (0x1 << 11) ;- (MC) Sector 3 Lock Status

-AT91C_MC_GPNVM4           EQU (0x1 << 12) ;- (MC) Sector 4 Lock Status

-AT91C_MC_GPNVM5           EQU (0x1 << 13) ;- (MC) Sector 5 Lock Status

-AT91C_MC_GPNVM6           EQU (0x1 << 14) ;- (MC) Sector 6 Lock Status

-AT91C_MC_GPNVM7           EQU (0x1 << 15) ;- (MC) Sector 7 Lock Status

-AT91C_MC_LOCKS0           EQU (0x1 << 16) ;- (MC) Sector 0 Lock Status

-AT91C_MC_LOCKS1           EQU (0x1 << 17) ;- (MC) Sector 1 Lock Status

-AT91C_MC_LOCKS2           EQU (0x1 << 18) ;- (MC) Sector 2 Lock Status

-AT91C_MC_LOCKS3           EQU (0x1 << 19) ;- (MC) Sector 3 Lock Status

-AT91C_MC_LOCKS4           EQU (0x1 << 20) ;- (MC) Sector 4 Lock Status

-AT91C_MC_LOCKS5           EQU (0x1 << 21) ;- (MC) Sector 5 Lock Status

-AT91C_MC_LOCKS6           EQU (0x1 << 22) ;- (MC) Sector 6 Lock Status

-AT91C_MC_LOCKS7           EQU (0x1 << 23) ;- (MC) Sector 7 Lock Status

-AT91C_MC_LOCKS8           EQU (0x1 << 24) ;- (MC) Sector 8 Lock Status

-AT91C_MC_LOCKS9           EQU (0x1 << 25) ;- (MC) Sector 9 Lock Status

-AT91C_MC_LOCKS10          EQU (0x1 << 26) ;- (MC) Sector 10 Lock Status

-AT91C_MC_LOCKS11          EQU (0x1 << 27) ;- (MC) Sector 11 Lock Status

-AT91C_MC_LOCKS12          EQU (0x1 << 28) ;- (MC) Sector 12 Lock Status

-AT91C_MC_LOCKS13          EQU (0x1 << 29) ;- (MC) Sector 13 Lock Status

-AT91C_MC_LOCKS14          EQU (0x1 << 30) ;- (MC) Sector 14 Lock Status

-AT91C_MC_LOCKS15          EQU (0x1 << 31) ;- (MC) Sector 15 Lock Status

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Serial Parallel Interface

-// - *****************************************************************************

-// - -------- SPI_CR : (SPI Offset: 0x0) SPI Control Register -------- 

-AT91C_SPI_SPIEN           EQU (0x1 <<  0) ;- (SPI) SPI Enable

-AT91C_SPI_SPIDIS          EQU (0x1 <<  1) ;- (SPI) SPI Disable

-AT91C_SPI_SWRST           EQU (0x1 <<  7) ;- (SPI) SPI Software reset

-AT91C_SPI_LASTXFER        EQU (0x1 << 24) ;- (SPI) SPI Last Transfer

-// - -------- SPI_MR : (SPI Offset: 0x4) SPI Mode Register -------- 

-AT91C_SPI_MSTR            EQU (0x1 <<  0) ;- (SPI) Master/Slave Mode

-AT91C_SPI_PS              EQU (0x1 <<  1) ;- (SPI) Peripheral Select

-AT91C_SPI_PS_FIXED        EQU (0x0 <<  1) ;- (SPI) Fixed Peripheral Select

-AT91C_SPI_PS_VARIABLE     EQU (0x1 <<  1) ;- (SPI) Variable Peripheral Select

-AT91C_SPI_PCSDEC          EQU (0x1 <<  2) ;- (SPI) Chip Select Decode

-AT91C_SPI_FDIV            EQU (0x1 <<  3) ;- (SPI) Clock Selection

-AT91C_SPI_MODFDIS         EQU (0x1 <<  4) ;- (SPI) Mode Fault Detection

-AT91C_SPI_LLB             EQU (0x1 <<  7) ;- (SPI) Clock Selection

-AT91C_SPI_PCS             EQU (0xF << 16) ;- (SPI) Peripheral Chip Select

-AT91C_SPI_DLYBCS          EQU (0xFF << 24) ;- (SPI) Delay Between Chip Selects

-// - -------- SPI_RDR : (SPI Offset: 0x8) Receive Data Register -------- 

-AT91C_SPI_RD              EQU (0xFFFF <<  0) ;- (SPI) Receive Data

-AT91C_SPI_RPCS            EQU (0xF << 16) ;- (SPI) Peripheral Chip Select Status

-// - -------- SPI_TDR : (SPI Offset: 0xc) Transmit Data Register -------- 

-AT91C_SPI_TD              EQU (0xFFFF <<  0) ;- (SPI) Transmit Data

-AT91C_SPI_TPCS            EQU (0xF << 16) ;- (SPI) Peripheral Chip Select Status

-// - -------- SPI_SR : (SPI Offset: 0x10) Status Register -------- 

-AT91C_SPI_RDRF            EQU (0x1 <<  0) ;- (SPI) Receive Data Register Full

-AT91C_SPI_TDRE            EQU (0x1 <<  1) ;- (SPI) Transmit Data Register Empty

-AT91C_SPI_MODF            EQU (0x1 <<  2) ;- (SPI) Mode Fault Error

-AT91C_SPI_OVRES           EQU (0x1 <<  3) ;- (SPI) Overrun Error Status

-AT91C_SPI_ENDRX           EQU (0x1 <<  4) ;- (SPI) End of Receiver Transfer

-AT91C_SPI_ENDTX           EQU (0x1 <<  5) ;- (SPI) End of Receiver Transfer

-AT91C_SPI_RXBUFF          EQU (0x1 <<  6) ;- (SPI) RXBUFF Interrupt

-AT91C_SPI_TXBUFE          EQU (0x1 <<  7) ;- (SPI) TXBUFE Interrupt

-AT91C_SPI_NSSR            EQU (0x1 <<  8) ;- (SPI) NSSR Interrupt

-AT91C_SPI_TXEMPTY         EQU (0x1 <<  9) ;- (SPI) TXEMPTY Interrupt

-AT91C_SPI_SPIENS          EQU (0x1 << 16) ;- (SPI) Enable Status

-// - -------- SPI_IER : (SPI Offset: 0x14) Interrupt Enable Register -------- 

-// - -------- SPI_IDR : (SPI Offset: 0x18) Interrupt Disable Register -------- 

-// - -------- SPI_IMR : (SPI Offset: 0x1c) Interrupt Mask Register -------- 

-// - -------- SPI_CSR : (SPI Offset: 0x30) Chip Select Register -------- 

-AT91C_SPI_CPOL            EQU (0x1 <<  0) ;- (SPI) Clock Polarity

-AT91C_SPI_NCPHA           EQU (0x1 <<  1) ;- (SPI) Clock Phase

-AT91C_SPI_CSAAT           EQU (0x1 <<  3) ;- (SPI) Chip Select Active After Transfer

-AT91C_SPI_BITS            EQU (0xF <<  4) ;- (SPI) Bits Per Transfer

-AT91C_SPI_BITS_8          EQU (0x0 <<  4) ;- (SPI) 8 Bits Per transfer

-AT91C_SPI_BITS_9          EQU (0x1 <<  4) ;- (SPI) 9 Bits Per transfer

-AT91C_SPI_BITS_10         EQU (0x2 <<  4) ;- (SPI) 10 Bits Per transfer

-AT91C_SPI_BITS_11         EQU (0x3 <<  4) ;- (SPI) 11 Bits Per transfer

-AT91C_SPI_BITS_12         EQU (0x4 <<  4) ;- (SPI) 12 Bits Per transfer

-AT91C_SPI_BITS_13         EQU (0x5 <<  4) ;- (SPI) 13 Bits Per transfer

-AT91C_SPI_BITS_14         EQU (0x6 <<  4) ;- (SPI) 14 Bits Per transfer

-AT91C_SPI_BITS_15         EQU (0x7 <<  4) ;- (SPI) 15 Bits Per transfer

-AT91C_SPI_BITS_16         EQU (0x8 <<  4) ;- (SPI) 16 Bits Per transfer

-AT91C_SPI_SCBR            EQU (0xFF <<  8) ;- (SPI) Serial Clock Baud Rate

-AT91C_SPI_DLYBS           EQU (0xFF << 16) ;- (SPI) Delay Before SPCK

-AT91C_SPI_DLYBCT          EQU (0xFF << 24) ;- (SPI) Delay Between Consecutive Transfers

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Usart

-// - *****************************************************************************

-// - -------- US_CR : (USART Offset: 0x0) Debug Unit Control Register -------- 

-AT91C_US_STTBRK           EQU (0x1 <<  9) ;- (USART) Start Break

-AT91C_US_STPBRK           EQU (0x1 << 10) ;- (USART) Stop Break

-AT91C_US_STTTO            EQU (0x1 << 11) ;- (USART) Start Time-out

-AT91C_US_SENDA            EQU (0x1 << 12) ;- (USART) Send Address

-AT91C_US_RSTIT            EQU (0x1 << 13) ;- (USART) Reset Iterations

-AT91C_US_RSTNACK          EQU (0x1 << 14) ;- (USART) Reset Non Acknowledge

-AT91C_US_RETTO            EQU (0x1 << 15) ;- (USART) Rearm Time-out

-AT91C_US_DTREN            EQU (0x1 << 16) ;- (USART) Data Terminal ready Enable

-AT91C_US_DTRDIS           EQU (0x1 << 17) ;- (USART) Data Terminal ready Disable

-AT91C_US_RTSEN            EQU (0x1 << 18) ;- (USART) Request to Send enable

-AT91C_US_RTSDIS           EQU (0x1 << 19) ;- (USART) Request to Send Disable

-// - -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register -------- 

-AT91C_US_USMODE           EQU (0xF <<  0) ;- (USART) Usart mode

-AT91C_US_USMODE_NORMAL    EQU (0x0) ;- (USART) Normal

-AT91C_US_USMODE_RS485     EQU (0x1) ;- (USART) RS485

-AT91C_US_USMODE_HWHSH     EQU (0x2) ;- (USART) Hardware Handshaking

-AT91C_US_USMODE_MODEM     EQU (0x3) ;- (USART) Modem

-AT91C_US_USMODE_ISO7816_0 EQU (0x4) ;- (USART) ISO7816 protocol: T = 0

-AT91C_US_USMODE_ISO7816_1 EQU (0x6) ;- (USART) ISO7816 protocol: T = 1

-AT91C_US_USMODE_IRDA      EQU (0x8) ;- (USART) IrDA

-AT91C_US_USMODE_SWHSH     EQU (0xC) ;- (USART) Software Handshaking

-AT91C_US_CLKS             EQU (0x3 <<  4) ;- (USART) Clock Selection (Baud Rate generator Input Clock

-AT91C_US_CLKS_CLOCK       EQU (0x0 <<  4) ;- (USART) Clock

-AT91C_US_CLKS_FDIV1       EQU (0x1 <<  4) ;- (USART) fdiv1

-AT91C_US_CLKS_SLOW        EQU (0x2 <<  4) ;- (USART) slow_clock (ARM)

-AT91C_US_CLKS_EXT         EQU (0x3 <<  4) ;- (USART) External (SCK)

-AT91C_US_CHRL             EQU (0x3 <<  6) ;- (USART) Clock Selection (Baud Rate generator Input Clock

-AT91C_US_CHRL_5_BITS      EQU (0x0 <<  6) ;- (USART) Character Length: 5 bits

-AT91C_US_CHRL_6_BITS      EQU (0x1 <<  6) ;- (USART) Character Length: 6 bits

-AT91C_US_CHRL_7_BITS      EQU (0x2 <<  6) ;- (USART) Character Length: 7 bits

-AT91C_US_CHRL_8_BITS      EQU (0x3 <<  6) ;- (USART) Character Length: 8 bits

-AT91C_US_SYNC             EQU (0x1 <<  8) ;- (USART) Synchronous Mode Select

-AT91C_US_NBSTOP           EQU (0x3 << 12) ;- (USART) Number of Stop bits

-AT91C_US_NBSTOP_1_BIT     EQU (0x0 << 12) ;- (USART) 1 stop bit

-AT91C_US_NBSTOP_15_BIT    EQU (0x1 << 12) ;- (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits

-AT91C_US_NBSTOP_2_BIT     EQU (0x2 << 12) ;- (USART) 2 stop bits

-AT91C_US_MSBF             EQU (0x1 << 16) ;- (USART) Bit Order

-AT91C_US_MODE9            EQU (0x1 << 17) ;- (USART) 9-bit Character length

-AT91C_US_CKLO             EQU (0x1 << 18) ;- (USART) Clock Output Select

-AT91C_US_OVER             EQU (0x1 << 19) ;- (USART) Over Sampling Mode

-AT91C_US_INACK            EQU (0x1 << 20) ;- (USART) Inhibit Non Acknowledge

-AT91C_US_DSNACK           EQU (0x1 << 21) ;- (USART) Disable Successive NACK

-AT91C_US_MAX_ITER         EQU (0x1 << 24) ;- (USART) Number of Repetitions

-AT91C_US_FILTER           EQU (0x1 << 28) ;- (USART) Receive Line Filter

-// - -------- US_IER : (USART Offset: 0x8) Debug Unit Interrupt Enable Register -------- 

-AT91C_US_RXBRK            EQU (0x1 <<  2) ;- (USART) Break Received/End of Break

-AT91C_US_TIMEOUT          EQU (0x1 <<  8) ;- (USART) Receiver Time-out

-AT91C_US_ITERATION        EQU (0x1 << 10) ;- (USART) Max number of Repetitions Reached

-AT91C_US_NACK             EQU (0x1 << 13) ;- (USART) Non Acknowledge

-AT91C_US_RIIC             EQU (0x1 << 16) ;- (USART) Ring INdicator Input Change Flag

-AT91C_US_DSRIC            EQU (0x1 << 17) ;- (USART) Data Set Ready Input Change Flag

-AT91C_US_DCDIC            EQU (0x1 << 18) ;- (USART) Data Carrier Flag

-AT91C_US_CTSIC            EQU (0x1 << 19) ;- (USART) Clear To Send Input Change Flag

-// - -------- US_IDR : (USART Offset: 0xc) Debug Unit Interrupt Disable Register -------- 

-// - -------- US_IMR : (USART Offset: 0x10) Debug Unit Interrupt Mask Register -------- 

-// - -------- US_CSR : (USART Offset: 0x14) Debug Unit Channel Status Register -------- 

-AT91C_US_RI               EQU (0x1 << 20) ;- (USART) Image of RI Input

-AT91C_US_DSR              EQU (0x1 << 21) ;- (USART) Image of DSR Input

-AT91C_US_DCD              EQU (0x1 << 22) ;- (USART) Image of DCD Input

-AT91C_US_CTS              EQU (0x1 << 23) ;- (USART) Image of CTS Input

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Synchronous Serial Controller Interface

-// - *****************************************************************************

-// - -------- SSC_CR : (SSC Offset: 0x0) SSC Control Register -------- 

-AT91C_SSC_RXEN            EQU (0x1 <<  0) ;- (SSC) Receive Enable

-AT91C_SSC_RXDIS           EQU (0x1 <<  1) ;- (SSC) Receive Disable

-AT91C_SSC_TXEN            EQU (0x1 <<  8) ;- (SSC) Transmit Enable

-AT91C_SSC_TXDIS           EQU (0x1 <<  9) ;- (SSC) Transmit Disable

-AT91C_SSC_SWRST           EQU (0x1 << 15) ;- (SSC) Software Reset

-// - -------- SSC_RCMR : (SSC Offset: 0x10) SSC Receive Clock Mode Register -------- 

-AT91C_SSC_CKS             EQU (0x3 <<  0) ;- (SSC) Receive/Transmit Clock Selection

-AT91C_SSC_CKS_DIV         EQU (0x0) ;- (SSC) Divided Clock

-AT91C_SSC_CKS_TK          EQU (0x1) ;- (SSC) TK Clock signal

-AT91C_SSC_CKS_RK          EQU (0x2) ;- (SSC) RK pin

-AT91C_SSC_CKO             EQU (0x7 <<  2) ;- (SSC) Receive/Transmit Clock Output Mode Selection

-AT91C_SSC_CKO_NONE        EQU (0x0 <<  2) ;- (SSC) Receive/Transmit Clock Output Mode: None RK pin: Input-only

-AT91C_SSC_CKO_CONTINOUS   EQU (0x1 <<  2) ;- (SSC) Continuous Receive/Transmit Clock RK pin: Output

-AT91C_SSC_CKO_DATA_TX     EQU (0x2 <<  2) ;- (SSC) Receive/Transmit Clock only during data transfers RK pin: Output

-AT91C_SSC_CKI             EQU (0x1 <<  5) ;- (SSC) Receive/Transmit Clock Inversion

-AT91C_SSC_START           EQU (0xF <<  8) ;- (SSC) Receive/Transmit Start Selection

-AT91C_SSC_START_CONTINOUS EQU (0x0 <<  8) ;- (SSC) Continuous, as soon as the receiver is enabled, and immediately after the end of transfer of the previous data.

-AT91C_SSC_START_TX        EQU (0x1 <<  8) ;- (SSC) Transmit/Receive start

-AT91C_SSC_START_LOW_RF    EQU (0x2 <<  8) ;- (SSC) Detection of a low level on RF input

-AT91C_SSC_START_HIGH_RF   EQU (0x3 <<  8) ;- (SSC) Detection of a high level on RF input

-AT91C_SSC_START_FALL_RF   EQU (0x4 <<  8) ;- (SSC) Detection of a falling edge on RF input

-AT91C_SSC_START_RISE_RF   EQU (0x5 <<  8) ;- (SSC) Detection of a rising edge on RF input

-AT91C_SSC_START_LEVEL_RF  EQU (0x6 <<  8) ;- (SSC) Detection of any level change on RF input

-AT91C_SSC_START_EDGE_RF   EQU (0x7 <<  8) ;- (SSC) Detection of any edge on RF input

-AT91C_SSC_START_0         EQU (0x8 <<  8) ;- (SSC) Compare 0

-AT91C_SSC_STTDLY          EQU (0xFF << 16) ;- (SSC) Receive/Transmit Start Delay

-AT91C_SSC_PERIOD          EQU (0xFF << 24) ;- (SSC) Receive/Transmit Period Divider Selection

-// - -------- SSC_RFMR : (SSC Offset: 0x14) SSC Receive Frame Mode Register -------- 

-AT91C_SSC_DATLEN          EQU (0x1F <<  0) ;- (SSC) Data Length

-AT91C_SSC_LOOP            EQU (0x1 <<  5) ;- (SSC) Loop Mode

-AT91C_SSC_MSBF            EQU (0x1 <<  7) ;- (SSC) Most Significant Bit First

-AT91C_SSC_DATNB           EQU (0xF <<  8) ;- (SSC) Data Number per Frame

-AT91C_SSC_FSLEN           EQU (0xF << 16) ;- (SSC) Receive/Transmit Frame Sync length

-AT91C_SSC_FSOS            EQU (0x7 << 20) ;- (SSC) Receive/Transmit Frame Sync Output Selection

-AT91C_SSC_FSOS_NONE       EQU (0x0 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: None RK pin Input-only

-AT91C_SSC_FSOS_NEGATIVE   EQU (0x1 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Negative Pulse

-AT91C_SSC_FSOS_POSITIVE   EQU (0x2 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Positive Pulse

-AT91C_SSC_FSOS_LOW        EQU (0x3 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Driver Low during data transfer

-AT91C_SSC_FSOS_HIGH       EQU (0x4 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Driver High during data transfer

-AT91C_SSC_FSOS_TOGGLE     EQU (0x5 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Toggling at each start of data transfer

-AT91C_SSC_FSEDGE          EQU (0x1 << 24) ;- (SSC) Frame Sync Edge Detection

-// - -------- SSC_TCMR : (SSC Offset: 0x18) SSC Transmit Clock Mode Register -------- 

-// - -------- SSC_TFMR : (SSC Offset: 0x1c) SSC Transmit Frame Mode Register -------- 

-AT91C_SSC_DATDEF          EQU (0x1 <<  5) ;- (SSC) Data Default Value

-AT91C_SSC_FSDEN           EQU (0x1 << 23) ;- (SSC) Frame Sync Data Enable

-// - -------- SSC_SR : (SSC Offset: 0x40) SSC Status Register -------- 

-AT91C_SSC_TXRDY           EQU (0x1 <<  0) ;- (SSC) Transmit Ready

-AT91C_SSC_TXEMPTY         EQU (0x1 <<  1) ;- (SSC) Transmit Empty

-AT91C_SSC_ENDTX           EQU (0x1 <<  2) ;- (SSC) End Of Transmission

-AT91C_SSC_TXBUFE          EQU (0x1 <<  3) ;- (SSC) Transmit Buffer Empty

-AT91C_SSC_RXRDY           EQU (0x1 <<  4) ;- (SSC) Receive Ready

-AT91C_SSC_OVRUN           EQU (0x1 <<  5) ;- (SSC) Receive Overrun

-AT91C_SSC_ENDRX           EQU (0x1 <<  6) ;- (SSC) End of Reception

-AT91C_SSC_RXBUFF          EQU (0x1 <<  7) ;- (SSC) Receive Buffer Full

-AT91C_SSC_TXSYN           EQU (0x1 << 10) ;- (SSC) Transmit Sync

-AT91C_SSC_RXSYN           EQU (0x1 << 11) ;- (SSC) Receive Sync

-AT91C_SSC_TXENA           EQU (0x1 << 16) ;- (SSC) Transmit Enable

-AT91C_SSC_RXENA           EQU (0x1 << 17) ;- (SSC) Receive Enable

-// - -------- SSC_IER : (SSC Offset: 0x44) SSC Interrupt Enable Register -------- 

-// - -------- SSC_IDR : (SSC Offset: 0x48) SSC Interrupt Disable Register -------- 

-// - -------- SSC_IMR : (SSC Offset: 0x4c) SSC Interrupt Mask Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Two-wire Interface

-// - *****************************************************************************

-// - -------- TWI_CR : (TWI Offset: 0x0) TWI Control Register -------- 

-AT91C_TWI_START           EQU (0x1 <<  0) ;- (TWI) Send a START Condition

-AT91C_TWI_STOP            EQU (0x1 <<  1) ;- (TWI) Send a STOP Condition

-AT91C_TWI_MSEN            EQU (0x1 <<  2) ;- (TWI) TWI Master Transfer Enabled

-AT91C_TWI_MSDIS           EQU (0x1 <<  3) ;- (TWI) TWI Master Transfer Disabled

-AT91C_TWI_SWRST           EQU (0x1 <<  7) ;- (TWI) Software Reset

-// - -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register -------- 

-AT91C_TWI_IADRSZ          EQU (0x3 <<  8) ;- (TWI) Internal Device Address Size

-AT91C_TWI_IADRSZ_NO       EQU (0x0 <<  8) ;- (TWI) No internal device address

-AT91C_TWI_IADRSZ_1_BYTE   EQU (0x1 <<  8) ;- (TWI) One-byte internal device address

-AT91C_TWI_IADRSZ_2_BYTE   EQU (0x2 <<  8) ;- (TWI) Two-byte internal device address

-AT91C_TWI_IADRSZ_3_BYTE   EQU (0x3 <<  8) ;- (TWI) Three-byte internal device address

-AT91C_TWI_MREAD           EQU (0x1 << 12) ;- (TWI) Master Read Direction

-AT91C_TWI_DADR            EQU (0x7F << 16) ;- (TWI) Device Address

-// - -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register -------- 

-AT91C_TWI_CLDIV           EQU (0xFF <<  0) ;- (TWI) Clock Low Divider

-AT91C_TWI_CHDIV           EQU (0xFF <<  8) ;- (TWI) Clock High Divider

-AT91C_TWI_CKDIV           EQU (0x7 << 16) ;- (TWI) Clock Divider

-// - -------- TWI_SR : (TWI Offset: 0x20) TWI Status Register -------- 

-AT91C_TWI_TXCOMP          EQU (0x1 <<  0) ;- (TWI) Transmission Completed

-AT91C_TWI_RXRDY           EQU (0x1 <<  1) ;- (TWI) Receive holding register ReaDY

-AT91C_TWI_TXRDY           EQU (0x1 <<  2) ;- (TWI) Transmit holding register ReaDY

-AT91C_TWI_OVRE            EQU (0x1 <<  6) ;- (TWI) Overrun Error

-AT91C_TWI_UNRE            EQU (0x1 <<  7) ;- (TWI) Underrun Error

-AT91C_TWI_NACK            EQU (0x1 <<  8) ;- (TWI) Not Acknowledged

-// - -------- TWI_IER : (TWI Offset: 0x24) TWI Interrupt Enable Register -------- 

-// - -------- TWI_IDR : (TWI Offset: 0x28) TWI Interrupt Disable Register -------- 

-// - -------- TWI_IMR : (TWI Offset: 0x2c) TWI Interrupt Mask Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR PWMC Channel Interface

-// - *****************************************************************************

-// - -------- PWMC_CMR : (PWMC_CH Offset: 0x0) PWMC Channel Mode Register -------- 

-AT91C_PWMC_CPRE           EQU (0xF <<  0) ;- (PWMC_CH) Channel Pre-scaler : PWMC_CLKx

-AT91C_PWMC_CPRE_MCK       EQU (0x0) ;- (PWMC_CH) 

-AT91C_PWMC_CPRE_MCKA      EQU (0xB) ;- (PWMC_CH) 

-AT91C_PWMC_CPRE_MCKB      EQU (0xC) ;- (PWMC_CH) 

-AT91C_PWMC_CALG           EQU (0x1 <<  8) ;- (PWMC_CH) Channel Alignment

-AT91C_PWMC_CPOL           EQU (0x1 <<  9) ;- (PWMC_CH) Channel Polarity

-AT91C_PWMC_CPD            EQU (0x1 << 10) ;- (PWMC_CH) Channel Update Period

-// - -------- PWMC_CDTYR : (PWMC_CH Offset: 0x4) PWMC Channel Duty Cycle Register -------- 

-AT91C_PWMC_CDTY           EQU (0x0 <<  0) ;- (PWMC_CH) Channel Duty Cycle

-// - -------- PWMC_CPRDR : (PWMC_CH Offset: 0x8) PWMC Channel Period Register -------- 

-AT91C_PWMC_CPRD           EQU (0x0 <<  0) ;- (PWMC_CH) Channel Period

-// - -------- PWMC_CCNTR : (PWMC_CH Offset: 0xc) PWMC Channel Counter Register -------- 

-AT91C_PWMC_CCNT           EQU (0x0 <<  0) ;- (PWMC_CH) Channel Counter

-// - -------- PWMC_CUPDR : (PWMC_CH Offset: 0x10) PWMC Channel Update Register -------- 

-AT91C_PWMC_CUPD           EQU (0x0 <<  0) ;- (PWMC_CH) Channel Update

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Pulse Width Modulation Controller Interface

-// - *****************************************************************************

-// - -------- PWMC_MR : (PWMC Offset: 0x0) PWMC Mode Register -------- 

-AT91C_PWMC_DIVA           EQU (0xFF <<  0) ;- (PWMC) CLKA divide factor.

-AT91C_PWMC_PREA           EQU (0xF <<  8) ;- (PWMC) Divider Input Clock Prescaler A

-AT91C_PWMC_PREA_MCK       EQU (0x0 <<  8) ;- (PWMC) 

-AT91C_PWMC_DIVB           EQU (0xFF << 16) ;- (PWMC) CLKB divide factor.

-AT91C_PWMC_PREB           EQU (0xF << 24) ;- (PWMC) Divider Input Clock Prescaler B

-AT91C_PWMC_PREB_MCK       EQU (0x0 << 24) ;- (PWMC) 

-// - -------- PWMC_ENA : (PWMC Offset: 0x4) PWMC Enable Register -------- 

-AT91C_PWMC_CHID0          EQU (0x1 <<  0) ;- (PWMC) Channel ID 0

-AT91C_PWMC_CHID1          EQU (0x1 <<  1) ;- (PWMC) Channel ID 1

-AT91C_PWMC_CHID2          EQU (0x1 <<  2) ;- (PWMC) Channel ID 2

-AT91C_PWMC_CHID3          EQU (0x1 <<  3) ;- (PWMC) Channel ID 3

-// - -------- PWMC_DIS : (PWMC Offset: 0x8) PWMC Disable Register -------- 

-// - -------- PWMC_SR : (PWMC Offset: 0xc) PWMC Status Register -------- 

-// - -------- PWMC_IER : (PWMC Offset: 0x10) PWMC Interrupt Enable Register -------- 

-// - -------- PWMC_IDR : (PWMC Offset: 0x14) PWMC Interrupt Disable Register -------- 

-// - -------- PWMC_IMR : (PWMC Offset: 0x18) PWMC Interrupt Mask Register -------- 

-// - -------- PWMC_ISR : (PWMC Offset: 0x1c) PWMC Interrupt Status Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR USB Device Interface

-// - *****************************************************************************

-// - -------- UDP_FRM_NUM : (UDP Offset: 0x0) USB Frame Number Register -------- 

-AT91C_UDP_FRM_NUM         EQU (0x7FF <<  0) ;- (UDP) Frame Number as Defined in the Packet Field Formats

-AT91C_UDP_FRM_ERR         EQU (0x1 << 16) ;- (UDP) Frame Error

-AT91C_UDP_FRM_OK          EQU (0x1 << 17) ;- (UDP) Frame OK

-// - -------- UDP_GLB_STATE : (UDP Offset: 0x4) USB Global State Register -------- 

-AT91C_UDP_FADDEN          EQU (0x1 <<  0) ;- (UDP) Function Address Enable

-AT91C_UDP_CONFG           EQU (0x1 <<  1) ;- (UDP) Configured

-AT91C_UDP_ESR             EQU (0x1 <<  2) ;- (UDP) Enable Send Resume

-AT91C_UDP_RSMINPR         EQU (0x1 <<  3) ;- (UDP) A Resume Has Been Sent to the Host

-AT91C_UDP_RMWUPE          EQU (0x1 <<  4) ;- (UDP) Remote Wake Up Enable

-// - -------- UDP_FADDR : (UDP Offset: 0x8) USB Function Address Register -------- 

-AT91C_UDP_FADD            EQU (0xFF <<  0) ;- (UDP) Function Address Value

-AT91C_UDP_FEN             EQU (0x1 <<  8) ;- (UDP) Function Enable

-// - -------- UDP_IER : (UDP Offset: 0x10) USB Interrupt Enable Register -------- 

-AT91C_UDP_EPINT0          EQU (0x1 <<  0) ;- (UDP) Endpoint 0 Interrupt

-AT91C_UDP_EPINT1          EQU (0x1 <<  1) ;- (UDP) Endpoint 0 Interrupt

-AT91C_UDP_EPINT2          EQU (0x1 <<  2) ;- (UDP) Endpoint 2 Interrupt

-AT91C_UDP_EPINT3          EQU (0x1 <<  3) ;- (UDP) Endpoint 3 Interrupt

-AT91C_UDP_EPINT4          EQU (0x1 <<  4) ;- (UDP) Endpoint 4 Interrupt

-AT91C_UDP_EPINT5          EQU (0x1 <<  5) ;- (UDP) Endpoint 5 Interrupt

-AT91C_UDP_RXSUSP          EQU (0x1 <<  8) ;- (UDP) USB Suspend Interrupt

-AT91C_UDP_RXRSM           EQU (0x1 <<  9) ;- (UDP) USB Resume Interrupt

-AT91C_UDP_EXTRSM          EQU (0x1 << 10) ;- (UDP) USB External Resume Interrupt

-AT91C_UDP_SOFINT          EQU (0x1 << 11) ;- (UDP) USB Start Of frame Interrupt

-AT91C_UDP_WAKEUP          EQU (0x1 << 13) ;- (UDP) USB Resume Interrupt

-// - -------- UDP_IDR : (UDP Offset: 0x14) USB Interrupt Disable Register -------- 

-// - -------- UDP_IMR : (UDP Offset: 0x18) USB Interrupt Mask Register -------- 

-// - -------- UDP_ISR : (UDP Offset: 0x1c) USB Interrupt Status Register -------- 

-AT91C_UDP_ENDBUSRES       EQU (0x1 << 12) ;- (UDP) USB End Of Bus Reset Interrupt

-// - -------- UDP_ICR : (UDP Offset: 0x20) USB Interrupt Clear Register -------- 

-// - -------- UDP_RST_EP : (UDP Offset: 0x28) USB Reset Endpoint Register -------- 

-AT91C_UDP_EP0             EQU (0x1 <<  0) ;- (UDP) Reset Endpoint 0

-AT91C_UDP_EP1             EQU (0x1 <<  1) ;- (UDP) Reset Endpoint 1

-AT91C_UDP_EP2             EQU (0x1 <<  2) ;- (UDP) Reset Endpoint 2

-AT91C_UDP_EP3             EQU (0x1 <<  3) ;- (UDP) Reset Endpoint 3

-AT91C_UDP_EP4             EQU (0x1 <<  4) ;- (UDP) Reset Endpoint 4

-AT91C_UDP_EP5             EQU (0x1 <<  5) ;- (UDP) Reset Endpoint 5

-// - -------- UDP_CSR : (UDP Offset: 0x30) USB Endpoint Control and Status Register -------- 

-AT91C_UDP_TXCOMP          EQU (0x1 <<  0) ;- (UDP) Generates an IN packet with data previously written in the DPR

-AT91C_UDP_RX_DATA_BK0     EQU (0x1 <<  1) ;- (UDP) Receive Data Bank 0

-AT91C_UDP_RXSETUP         EQU (0x1 <<  2) ;- (UDP) Sends STALL to the Host (Control endpoints)

-AT91C_UDP_ISOERROR        EQU (0x1 <<  3) ;- (UDP) Isochronous error (Isochronous endpoints)

-AT91C_UDP_TXPKTRDY        EQU (0x1 <<  4) ;- (UDP) Transmit Packet Ready

-AT91C_UDP_FORCESTALL      EQU (0x1 <<  5) ;- (UDP) Force Stall (used by Control, Bulk and Isochronous endpoints).

-AT91C_UDP_RX_DATA_BK1     EQU (0x1 <<  6) ;- (UDP) Receive Data Bank 1 (only used by endpoints with ping-pong attributes).

-AT91C_UDP_DIR             EQU (0x1 <<  7) ;- (UDP) Transfer Direction

-AT91C_UDP_EPTYPE          EQU (0x7 <<  8) ;- (UDP) Endpoint type

-AT91C_UDP_EPTYPE_CTRL     EQU (0x0 <<  8) ;- (UDP) Control

-AT91C_UDP_EPTYPE_ISO_OUT  EQU (0x1 <<  8) ;- (UDP) Isochronous OUT

-AT91C_UDP_EPTYPE_BULK_OUT EQU (0x2 <<  8) ;- (UDP) Bulk OUT

-AT91C_UDP_EPTYPE_INT_OUT  EQU (0x3 <<  8) ;- (UDP) Interrupt OUT

-AT91C_UDP_EPTYPE_ISO_IN   EQU (0x5 <<  8) ;- (UDP) Isochronous IN

-AT91C_UDP_EPTYPE_BULK_IN  EQU (0x6 <<  8) ;- (UDP) Bulk IN

-AT91C_UDP_EPTYPE_INT_IN   EQU (0x7 <<  8) ;- (UDP) Interrupt IN

-AT91C_UDP_DTGLE           EQU (0x1 << 11) ;- (UDP) Data Toggle

-AT91C_UDP_EPEDS           EQU (0x1 << 15) ;- (UDP) Endpoint Enable Disable

-AT91C_UDP_RXBYTECNT       EQU (0x7FF << 16) ;- (UDP) Number Of Bytes Available in the FIFO

-// - -------- UDP_TXVC : (UDP Offset: 0x74) Transceiver Control Register -------- 

-AT91C_UDP_TXVDIS          EQU (0x1 <<  8) ;- (UDP) 

-AT91C_UDP_PUON            EQU (0x1 <<  9) ;- (UDP) Pull-up ON

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Timer Counter Channel Interface

-// - *****************************************************************************

-// - -------- TC_CCR : (TC Offset: 0x0) TC Channel Control Register -------- 

-AT91C_TC_CLKEN            EQU (0x1 <<  0) ;- (TC) Counter Clock Enable Command

-AT91C_TC_CLKDIS           EQU (0x1 <<  1) ;- (TC) Counter Clock Disable Command

-AT91C_TC_SWTRG            EQU (0x1 <<  2) ;- (TC) Software Trigger Command

-// - -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode -------- 

-AT91C_TC_CLKS             EQU (0x7 <<  0) ;- (TC) Clock Selection

-AT91C_TC_CLKS_TIMER_DIV1_CLOCK EQU (0x0) ;- (TC) Clock selected: TIMER_DIV1_CLOCK

-AT91C_TC_CLKS_TIMER_DIV2_CLOCK EQU (0x1) ;- (TC) Clock selected: TIMER_DIV2_CLOCK

-AT91C_TC_CLKS_TIMER_DIV3_CLOCK EQU (0x2) ;- (TC) Clock selected: TIMER_DIV3_CLOCK

-AT91C_TC_CLKS_TIMER_DIV4_CLOCK EQU (0x3) ;- (TC) Clock selected: TIMER_DIV4_CLOCK

-AT91C_TC_CLKS_TIMER_DIV5_CLOCK EQU (0x4) ;- (TC) Clock selected: TIMER_DIV5_CLOCK

-AT91C_TC_CLKS_XC0         EQU (0x5) ;- (TC) Clock selected: XC0

-AT91C_TC_CLKS_XC1         EQU (0x6) ;- (TC) Clock selected: XC1

-AT91C_TC_CLKS_XC2         EQU (0x7) ;- (TC) Clock selected: XC2

-AT91C_TC_CLKI             EQU (0x1 <<  3) ;- (TC) Clock Invert

-AT91C_TC_BURST            EQU (0x3 <<  4) ;- (TC) Burst Signal Selection

-AT91C_TC_BURST_NONE       EQU (0x0 <<  4) ;- (TC) The clock is not gated by an external signal

-AT91C_TC_BURST_XC0        EQU (0x1 <<  4) ;- (TC) XC0 is ANDed with the selected clock

-AT91C_TC_BURST_XC1        EQU (0x2 <<  4) ;- (TC) XC1 is ANDed with the selected clock

-AT91C_TC_BURST_XC2        EQU (0x3 <<  4) ;- (TC) XC2 is ANDed with the selected clock

-AT91C_TC_CPCSTOP          EQU (0x1 <<  6) ;- (TC) Counter Clock Stopped with RC Compare

-AT91C_TC_LDBSTOP          EQU (0x1 <<  6) ;- (TC) Counter Clock Stopped with RB Loading

-AT91C_TC_CPCDIS           EQU (0x1 <<  7) ;- (TC) Counter Clock Disable with RC Compare

-AT91C_TC_LDBDIS           EQU (0x1 <<  7) ;- (TC) Counter Clock Disabled with RB Loading

-AT91C_TC_ETRGEDG          EQU (0x3 <<  8) ;- (TC) External Trigger Edge Selection

-AT91C_TC_ETRGEDG_NONE     EQU (0x0 <<  8) ;- (TC) Edge: None

-AT91C_TC_ETRGEDG_RISING   EQU (0x1 <<  8) ;- (TC) Edge: rising edge

-AT91C_TC_ETRGEDG_FALLING  EQU (0x2 <<  8) ;- (TC) Edge: falling edge

-AT91C_TC_ETRGEDG_BOTH     EQU (0x3 <<  8) ;- (TC) Edge: each edge

-AT91C_TC_EEVTEDG          EQU (0x3 <<  8) ;- (TC) External Event Edge Selection

-AT91C_TC_EEVTEDG_NONE     EQU (0x0 <<  8) ;- (TC) Edge: None

-AT91C_TC_EEVTEDG_RISING   EQU (0x1 <<  8) ;- (TC) Edge: rising edge

-AT91C_TC_EEVTEDG_FALLING  EQU (0x2 <<  8) ;- (TC) Edge: falling edge

-AT91C_TC_EEVTEDG_BOTH     EQU (0x3 <<  8) ;- (TC) Edge: each edge

-AT91C_TC_EEVT             EQU (0x3 << 10) ;- (TC) External Event  Selection

-AT91C_TC_EEVT_TIOB        EQU (0x0 << 10) ;- (TC) Signal selected as external event: TIOB TIOB direction: input

-AT91C_TC_EEVT_XC0         EQU (0x1 << 10) ;- (TC) Signal selected as external event: XC0 TIOB direction: output

-AT91C_TC_EEVT_XC1         EQU (0x2 << 10) ;- (TC) Signal selected as external event: XC1 TIOB direction: output

-AT91C_TC_EEVT_XC2         EQU (0x3 << 10) ;- (TC) Signal selected as external event: XC2 TIOB direction: output

-AT91C_TC_ABETRG           EQU (0x1 << 10) ;- (TC) TIOA or TIOB External Trigger Selection

-AT91C_TC_ENETRG           EQU (0x1 << 12) ;- (TC) External Event Trigger enable

-AT91C_TC_WAVESEL          EQU (0x3 << 13) ;- (TC) Waveform  Selection

-AT91C_TC_WAVESEL_UP       EQU (0x0 << 13) ;- (TC) UP mode without atomatic trigger on RC Compare

-AT91C_TC_WAVESEL_UPDOWN   EQU (0x1 << 13) ;- (TC) UPDOWN mode without automatic trigger on RC Compare

-AT91C_TC_WAVESEL_UP_AUTO  EQU (0x2 << 13) ;- (TC) UP mode with automatic trigger on RC Compare

-AT91C_TC_WAVESEL_UPDOWN_AUTO EQU (0x3 << 13) ;- (TC) UPDOWN mode with automatic trigger on RC Compare

-AT91C_TC_CPCTRG           EQU (0x1 << 14) ;- (TC) RC Compare Trigger Enable

-AT91C_TC_WAVE             EQU (0x1 << 15) ;- (TC) 

-AT91C_TC_ACPA             EQU (0x3 << 16) ;- (TC) RA Compare Effect on TIOA

-AT91C_TC_ACPA_NONE        EQU (0x0 << 16) ;- (TC) Effect: none

-AT91C_TC_ACPA_SET         EQU (0x1 << 16) ;- (TC) Effect: set

-AT91C_TC_ACPA_CLEAR       EQU (0x2 << 16) ;- (TC) Effect: clear

-AT91C_TC_ACPA_TOGGLE      EQU (0x3 << 16) ;- (TC) Effect: toggle

-AT91C_TC_LDRA             EQU (0x3 << 16) ;- (TC) RA Loading Selection

-AT91C_TC_LDRA_NONE        EQU (0x0 << 16) ;- (TC) Edge: None

-AT91C_TC_LDRA_RISING      EQU (0x1 << 16) ;- (TC) Edge: rising edge of TIOA

-AT91C_TC_LDRA_FALLING     EQU (0x2 << 16) ;- (TC) Edge: falling edge of TIOA

-AT91C_TC_LDRA_BOTH        EQU (0x3 << 16) ;- (TC) Edge: each edge of TIOA

-AT91C_TC_ACPC             EQU (0x3 << 18) ;- (TC) RC Compare Effect on TIOA

-AT91C_TC_ACPC_NONE        EQU (0x0 << 18) ;- (TC) Effect: none

-AT91C_TC_ACPC_SET         EQU (0x1 << 18) ;- (TC) Effect: set

-AT91C_TC_ACPC_CLEAR       EQU (0x2 << 18) ;- (TC) Effect: clear

-AT91C_TC_ACPC_TOGGLE      EQU (0x3 << 18) ;- (TC) Effect: toggle

-AT91C_TC_LDRB             EQU (0x3 << 18) ;- (TC) RB Loading Selection

-AT91C_TC_LDRB_NONE        EQU (0x0 << 18) ;- (TC) Edge: None

-AT91C_TC_LDRB_RISING      EQU (0x1 << 18) ;- (TC) Edge: rising edge of TIOA

-AT91C_TC_LDRB_FALLING     EQU (0x2 << 18) ;- (TC) Edge: falling edge of TIOA

-AT91C_TC_LDRB_BOTH        EQU (0x3 << 18) ;- (TC) Edge: each edge of TIOA

-AT91C_TC_AEEVT            EQU (0x3 << 20) ;- (TC) External Event Effect on TIOA

-AT91C_TC_AEEVT_NONE       EQU (0x0 << 20) ;- (TC) Effect: none

-AT91C_TC_AEEVT_SET        EQU (0x1 << 20) ;- (TC) Effect: set

-AT91C_TC_AEEVT_CLEAR      EQU (0x2 << 20) ;- (TC) Effect: clear

-AT91C_TC_AEEVT_TOGGLE     EQU (0x3 << 20) ;- (TC) Effect: toggle

-AT91C_TC_ASWTRG           EQU (0x3 << 22) ;- (TC) Software Trigger Effect on TIOA

-AT91C_TC_ASWTRG_NONE      EQU (0x0 << 22) ;- (TC) Effect: none

-AT91C_TC_ASWTRG_SET       EQU (0x1 << 22) ;- (TC) Effect: set

-AT91C_TC_ASWTRG_CLEAR     EQU (0x2 << 22) ;- (TC) Effect: clear

-AT91C_TC_ASWTRG_TOGGLE    EQU (0x3 << 22) ;- (TC) Effect: toggle

-AT91C_TC_BCPB             EQU (0x3 << 24) ;- (TC) RB Compare Effect on TIOB

-AT91C_TC_BCPB_NONE        EQU (0x0 << 24) ;- (TC) Effect: none

-AT91C_TC_BCPB_SET         EQU (0x1 << 24) ;- (TC) Effect: set

-AT91C_TC_BCPB_CLEAR       EQU (0x2 << 24) ;- (TC) Effect: clear

-AT91C_TC_BCPB_TOGGLE      EQU (0x3 << 24) ;- (TC) Effect: toggle

-AT91C_TC_BCPC             EQU (0x3 << 26) ;- (TC) RC Compare Effect on TIOB

-AT91C_TC_BCPC_NONE        EQU (0x0 << 26) ;- (TC) Effect: none

-AT91C_TC_BCPC_SET         EQU (0x1 << 26) ;- (TC) Effect: set

-AT91C_TC_BCPC_CLEAR       EQU (0x2 << 26) ;- (TC) Effect: clear

-AT91C_TC_BCPC_TOGGLE      EQU (0x3 << 26) ;- (TC) Effect: toggle

-AT91C_TC_BEEVT            EQU (0x3 << 28) ;- (TC) External Event Effect on TIOB

-AT91C_TC_BEEVT_NONE       EQU (0x0 << 28) ;- (TC) Effect: none

-AT91C_TC_BEEVT_SET        EQU (0x1 << 28) ;- (TC) Effect: set

-AT91C_TC_BEEVT_CLEAR      EQU (0x2 << 28) ;- (TC) Effect: clear

-AT91C_TC_BEEVT_TOGGLE     EQU (0x3 << 28) ;- (TC) Effect: toggle

-AT91C_TC_BSWTRG           EQU (0x3 << 30) ;- (TC) Software Trigger Effect on TIOB

-AT91C_TC_BSWTRG_NONE      EQU (0x0 << 30) ;- (TC) Effect: none

-AT91C_TC_BSWTRG_SET       EQU (0x1 << 30) ;- (TC) Effect: set

-AT91C_TC_BSWTRG_CLEAR     EQU (0x2 << 30) ;- (TC) Effect: clear

-AT91C_TC_BSWTRG_TOGGLE    EQU (0x3 << 30) ;- (TC) Effect: toggle

-// - -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register -------- 

-AT91C_TC_COVFS            EQU (0x1 <<  0) ;- (TC) Counter Overflow

-AT91C_TC_LOVRS            EQU (0x1 <<  1) ;- (TC) Load Overrun

-AT91C_TC_CPAS             EQU (0x1 <<  2) ;- (TC) RA Compare

-AT91C_TC_CPBS             EQU (0x1 <<  3) ;- (TC) RB Compare

-AT91C_TC_CPCS             EQU (0x1 <<  4) ;- (TC) RC Compare

-AT91C_TC_LDRAS            EQU (0x1 <<  5) ;- (TC) RA Loading

-AT91C_TC_LDRBS            EQU (0x1 <<  6) ;- (TC) RB Loading

-AT91C_TC_ETRGS            EQU (0x1 <<  7) ;- (TC) External Trigger

-AT91C_TC_CLKSTA           EQU (0x1 << 16) ;- (TC) Clock Enabling

-AT91C_TC_MTIOA            EQU (0x1 << 17) ;- (TC) TIOA Mirror

-AT91C_TC_MTIOB            EQU (0x1 << 18) ;- (TC) TIOA Mirror

-// - -------- TC_IER : (TC Offset: 0x24) TC Channel Interrupt Enable Register -------- 

-// - -------- TC_IDR : (TC Offset: 0x28) TC Channel Interrupt Disable Register -------- 

-// - -------- TC_IMR : (TC Offset: 0x2c) TC Channel Interrupt Mask Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Timer Counter Interface

-// - *****************************************************************************

-// - -------- TCB_BCR : (TCB Offset: 0xc0) TC Block Control Register -------- 

-AT91C_TCB_SYNC            EQU (0x1 <<  0) ;- (TCB) Synchro Command

-// - -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register -------- 

-AT91C_TCB_TC0XC0S         EQU (0x3 <<  0) ;- (TCB) External Clock Signal 0 Selection

-AT91C_TCB_TC0XC0S_TCLK0   EQU (0x0) ;- (TCB) TCLK0 connected to XC0

-AT91C_TCB_TC0XC0S_NONE    EQU (0x1) ;- (TCB) None signal connected to XC0

-AT91C_TCB_TC0XC0S_TIOA1   EQU (0x2) ;- (TCB) TIOA1 connected to XC0

-AT91C_TCB_TC0XC0S_TIOA2   EQU (0x3) ;- (TCB) TIOA2 connected to XC0

-AT91C_TCB_TC1XC1S         EQU (0x3 <<  2) ;- (TCB) External Clock Signal 1 Selection

-AT91C_TCB_TC1XC1S_TCLK1   EQU (0x0 <<  2) ;- (TCB) TCLK1 connected to XC1

-AT91C_TCB_TC1XC1S_NONE    EQU (0x1 <<  2) ;- (TCB) None signal connected to XC1

-AT91C_TCB_TC1XC1S_TIOA0   EQU (0x2 <<  2) ;- (TCB) TIOA0 connected to XC1

-AT91C_TCB_TC1XC1S_TIOA2   EQU (0x3 <<  2) ;- (TCB) TIOA2 connected to XC1

-AT91C_TCB_TC2XC2S         EQU (0x3 <<  4) ;- (TCB) External Clock Signal 2 Selection

-AT91C_TCB_TC2XC2S_TCLK2   EQU (0x0 <<  4) ;- (TCB) TCLK2 connected to XC2

-AT91C_TCB_TC2XC2S_NONE    EQU (0x1 <<  4) ;- (TCB) None signal connected to XC2

-AT91C_TCB_TC2XC2S_TIOA0   EQU (0x2 <<  4) ;- (TCB) TIOA0 connected to XC2

-AT91C_TCB_TC2XC2S_TIOA1   EQU (0x3 <<  4) ;- (TCB) TIOA2 connected to XC2

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Control Area Network MailBox Interface

-// - *****************************************************************************

-// - -------- CAN_MMR : (CAN_MB Offset: 0x0) CAN Message Mode Register -------- 

-AT91C_CAN_MTIMEMARK       EQU (0xFFFF <<  0) ;- (CAN_MB) Mailbox Timemark

-AT91C_CAN_PRIOR           EQU (0xF << 16) ;- (CAN_MB) Mailbox Priority

-AT91C_CAN_MOT             EQU (0x7 << 24) ;- (CAN_MB) Mailbox Object Type

-AT91C_CAN_MOT_DIS         EQU (0x0 << 24) ;- (CAN_MB) 

-AT91C_CAN_MOT_RX          EQU (0x1 << 24) ;- (CAN_MB) 

-AT91C_CAN_MOT_RXOVERWRITE EQU (0x2 << 24) ;- (CAN_MB) 

-AT91C_CAN_MOT_TX          EQU (0x3 << 24) ;- (CAN_MB) 

-AT91C_CAN_MOT_CONSUMER    EQU (0x4 << 24) ;- (CAN_MB) 

-AT91C_CAN_MOT_PRODUCER    EQU (0x5 << 24) ;- (CAN_MB) 

-// - -------- CAN_MAM : (CAN_MB Offset: 0x4) CAN Message Acceptance Mask Register -------- 

-AT91C_CAN_MIDvB           EQU (0x3FFFF <<  0) ;- (CAN_MB) Complementary bits for identifier in extended mode

-AT91C_CAN_MIDvA           EQU (0x7FF << 18) ;- (CAN_MB) Identifier for standard frame mode

-AT91C_CAN_MIDE            EQU (0x1 << 29) ;- (CAN_MB) Identifier Version

-// - -------- CAN_MID : (CAN_MB Offset: 0x8) CAN Message ID Register -------- 

-// - -------- CAN_MFID : (CAN_MB Offset: 0xc) CAN Message Family ID Register -------- 

-// - -------- CAN_MSR : (CAN_MB Offset: 0x10) CAN Message Status Register -------- 

-AT91C_CAN_MTIMESTAMP      EQU (0xFFFF <<  0) ;- (CAN_MB) Timer Value

-AT91C_CAN_MDLC            EQU (0xF << 16) ;- (CAN_MB) Mailbox Data Length Code

-AT91C_CAN_MRTR            EQU (0x1 << 20) ;- (CAN_MB) Mailbox Remote Transmission Request

-AT91C_CAN_MABT            EQU (0x1 << 22) ;- (CAN_MB) Mailbox Message Abort

-AT91C_CAN_MRDY            EQU (0x1 << 23) ;- (CAN_MB) Mailbox Ready

-AT91C_CAN_MMI             EQU (0x1 << 24) ;- (CAN_MB) Mailbox Message Ignored

-// - -------- CAN_MDL : (CAN_MB Offset: 0x14) CAN Message Data Low Register -------- 

-// - -------- CAN_MDH : (CAN_MB Offset: 0x18) CAN Message Data High Register -------- 

-// - -------- CAN_MCR : (CAN_MB Offset: 0x1c) CAN Message Control Register -------- 

-AT91C_CAN_MACR            EQU (0x1 << 22) ;- (CAN_MB) Abort Request for Mailbox

-AT91C_CAN_MTCR            EQU (0x1 << 23) ;- (CAN_MB) Mailbox Transfer Command

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Control Area Network Interface

-// - *****************************************************************************

-// - -------- CAN_MR : (CAN Offset: 0x0) CAN Mode Register -------- 

-AT91C_CAN_CANEN           EQU (0x1 <<  0) ;- (CAN) CAN Controller Enable

-AT91C_CAN_LPM             EQU (0x1 <<  1) ;- (CAN) Disable/Enable Low Power Mode

-AT91C_CAN_ABM             EQU (0x1 <<  2) ;- (CAN) Disable/Enable Autobaud/Listen Mode

-AT91C_CAN_OVL             EQU (0x1 <<  3) ;- (CAN) Disable/Enable Overload Frame

-AT91C_CAN_TEOF            EQU (0x1 <<  4) ;- (CAN) Time Stamp messages at each end of Frame

-AT91C_CAN_TTM             EQU (0x1 <<  5) ;- (CAN) Disable/Enable Time Trigger Mode

-AT91C_CAN_TIMFRZ          EQU (0x1 <<  6) ;- (CAN) Enable Timer Freeze

-AT91C_CAN_DRPT            EQU (0x1 <<  7) ;- (CAN) Disable Repeat

-// - -------- CAN_IER : (CAN Offset: 0x4) CAN Interrupt Enable Register -------- 

-AT91C_CAN_MB0             EQU (0x1 <<  0) ;- (CAN) Mailbox 0 Flag

-AT91C_CAN_MB1             EQU (0x1 <<  1) ;- (CAN) Mailbox 1 Flag

-AT91C_CAN_MB2             EQU (0x1 <<  2) ;- (CAN) Mailbox 2 Flag

-AT91C_CAN_MB3             EQU (0x1 <<  3) ;- (CAN) Mailbox 3 Flag

-AT91C_CAN_MB4             EQU (0x1 <<  4) ;- (CAN) Mailbox 4 Flag

-AT91C_CAN_MB5             EQU (0x1 <<  5) ;- (CAN) Mailbox 5 Flag

-AT91C_CAN_MB6             EQU (0x1 <<  6) ;- (CAN) Mailbox 6 Flag

-AT91C_CAN_MB7             EQU (0x1 <<  7) ;- (CAN) Mailbox 7 Flag

-AT91C_CAN_MB8             EQU (0x1 <<  8) ;- (CAN) Mailbox 8 Flag

-AT91C_CAN_MB9             EQU (0x1 <<  9) ;- (CAN) Mailbox 9 Flag

-AT91C_CAN_MB10            EQU (0x1 << 10) ;- (CAN) Mailbox 10 Flag

-AT91C_CAN_MB11            EQU (0x1 << 11) ;- (CAN) Mailbox 11 Flag

-AT91C_CAN_MB12            EQU (0x1 << 12) ;- (CAN) Mailbox 12 Flag

-AT91C_CAN_MB13            EQU (0x1 << 13) ;- (CAN) Mailbox 13 Flag

-AT91C_CAN_MB14            EQU (0x1 << 14) ;- (CAN) Mailbox 14 Flag

-AT91C_CAN_MB15            EQU (0x1 << 15) ;- (CAN) Mailbox 15 Flag

-AT91C_CAN_ERRA            EQU (0x1 << 16) ;- (CAN) Error Active Mode Flag

-AT91C_CAN_WARN            EQU (0x1 << 17) ;- (CAN) Warning Limit Flag

-AT91C_CAN_ERRP            EQU (0x1 << 18) ;- (CAN) Error Passive Mode Flag

-AT91C_CAN_BOFF            EQU (0x1 << 19) ;- (CAN) Bus Off Mode Flag

-AT91C_CAN_SLEEP           EQU (0x1 << 20) ;- (CAN) Sleep Flag

-AT91C_CAN_WAKEUP          EQU (0x1 << 21) ;- (CAN) Wakeup Flag

-AT91C_CAN_TOVF            EQU (0x1 << 22) ;- (CAN) Timer Overflow Flag

-AT91C_CAN_TSTP            EQU (0x1 << 23) ;- (CAN) Timestamp Flag

-AT91C_CAN_CERR            EQU (0x1 << 24) ;- (CAN) CRC Error

-AT91C_CAN_SERR            EQU (0x1 << 25) ;- (CAN) Stuffing Error

-AT91C_CAN_AERR            EQU (0x1 << 26) ;- (CAN) Acknowledgment Error

-AT91C_CAN_FERR            EQU (0x1 << 27) ;- (CAN) Form Error

-AT91C_CAN_BERR            EQU (0x1 << 28) ;- (CAN) Bit Error

-// - -------- CAN_IDR : (CAN Offset: 0x8) CAN Interrupt Disable Register -------- 

-// - -------- CAN_IMR : (CAN Offset: 0xc) CAN Interrupt Mask Register -------- 

-// - -------- CAN_SR : (CAN Offset: 0x10) CAN Status Register -------- 

-AT91C_CAN_RBSY            EQU (0x1 << 29) ;- (CAN) Receiver Busy

-AT91C_CAN_TBSY            EQU (0x1 << 30) ;- (CAN) Transmitter Busy

-AT91C_CAN_OVLY            EQU (0x1 << 31) ;- (CAN) Overload Busy

-// - -------- CAN_BR : (CAN Offset: 0x14) CAN Baudrate Register -------- 

-AT91C_CAN_PHASE2          EQU (0x7 <<  0) ;- (CAN) Phase 2 segment

-AT91C_CAN_PHASE1          EQU (0x7 <<  4) ;- (CAN) Phase 1 segment

-AT91C_CAN_PROPAG          EQU (0x7 <<  8) ;- (CAN) Programmation time segment

-AT91C_CAN_SYNC            EQU (0x3 << 12) ;- (CAN) Re-synchronization jump width segment

-AT91C_CAN_BRP             EQU (0x7F << 16) ;- (CAN) Baudrate Prescaler

-AT91C_CAN_SMP             EQU (0x1 << 24) ;- (CAN) Sampling mode

-// - -------- CAN_TIM : (CAN Offset: 0x18) CAN Timer Register -------- 

-AT91C_CAN_TIMER           EQU (0xFFFF <<  0) ;- (CAN) Timer field

-// - -------- CAN_TIMESTP : (CAN Offset: 0x1c) CAN Timestamp Register -------- 

-// - -------- CAN_ECR : (CAN Offset: 0x20) CAN Error Counter Register -------- 

-AT91C_CAN_REC             EQU (0xFF <<  0) ;- (CAN) Receive Error Counter

-AT91C_CAN_TEC             EQU (0xFF << 16) ;- (CAN) Transmit Error Counter

-// - -------- CAN_TCR : (CAN Offset: 0x24) CAN Transfer Command Register -------- 

-AT91C_CAN_TIMRST          EQU (0x1 << 31) ;- (CAN) Timer Reset Field

-// - -------- CAN_ACR : (CAN Offset: 0x28) CAN Abort Command Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Ethernet MAC 10/100

-// - *****************************************************************************

-// - -------- EMAC_NCR : (EMAC Offset: 0x0)  -------- 

-AT91C_EMAC_LB             EQU (0x1 <<  0) ;- (EMAC) Loopback. Optional. When set, loopback signal is at high level.

-AT91C_EMAC_LLB            EQU (0x1 <<  1) ;- (EMAC) Loopback local. 

-AT91C_EMAC_RE             EQU (0x1 <<  2) ;- (EMAC) Receive enable. 

-AT91C_EMAC_TE             EQU (0x1 <<  3) ;- (EMAC) Transmit enable. 

-AT91C_EMAC_MPE            EQU (0x1 <<  4) ;- (EMAC) Management port enable. 

-AT91C_EMAC_CLRSTAT        EQU (0x1 <<  5) ;- (EMAC) Clear statistics registers. 

-AT91C_EMAC_INCSTAT        EQU (0x1 <<  6) ;- (EMAC) Increment statistics registers. 

-AT91C_EMAC_WESTAT         EQU (0x1 <<  7) ;- (EMAC) Write enable for statistics registers. 

-AT91C_EMAC_BP             EQU (0x1 <<  8) ;- (EMAC) Back pressure. 

-AT91C_EMAC_TSTART         EQU (0x1 <<  9) ;- (EMAC) Start Transmission. 

-AT91C_EMAC_THALT          EQU (0x1 << 10) ;- (EMAC) Transmission Halt. 

-AT91C_EMAC_TPFR           EQU (0x1 << 11) ;- (EMAC) Transmit pause frame 

-AT91C_EMAC_TZQ            EQU (0x1 << 12) ;- (EMAC) Transmit zero quantum pause frame

-// - -------- EMAC_NCFGR : (EMAC Offset: 0x4) Network Configuration Register -------- 

-AT91C_EMAC_SPD            EQU (0x1 <<  0) ;- (EMAC) Speed. 

-AT91C_EMAC_FD             EQU (0x1 <<  1) ;- (EMAC) Full duplex. 

-AT91C_EMAC_JFRAME         EQU (0x1 <<  3) ;- (EMAC) Jumbo Frames. 

-AT91C_EMAC_CAF            EQU (0x1 <<  4) ;- (EMAC) Copy all frames. 

-AT91C_EMAC_NBC            EQU (0x1 <<  5) ;- (EMAC) No broadcast. 

-AT91C_EMAC_MTI            EQU (0x1 <<  6) ;- (EMAC) Multicast hash event enable

-AT91C_EMAC_UNI            EQU (0x1 <<  7) ;- (EMAC) Unicast hash enable. 

-AT91C_EMAC_BIG            EQU (0x1 <<  8) ;- (EMAC) Receive 1522 bytes. 

-AT91C_EMAC_EAE            EQU (0x1 <<  9) ;- (EMAC) External address match enable. 

-AT91C_EMAC_CLK            EQU (0x3 << 10) ;- (EMAC) 

-AT91C_EMAC_CLK_HCLK_8     EQU (0x0 << 10) ;- (EMAC) HCLK divided by 8

-AT91C_EMAC_CLK_HCLK_16    EQU (0x1 << 10) ;- (EMAC) HCLK divided by 16

-AT91C_EMAC_CLK_HCLK_32    EQU (0x2 << 10) ;- (EMAC) HCLK divided by 32

-AT91C_EMAC_CLK_HCLK_64    EQU (0x3 << 10) ;- (EMAC) HCLK divided by 64

-AT91C_EMAC_RTY            EQU (0x1 << 12) ;- (EMAC) 

-AT91C_EMAC_PAE            EQU (0x1 << 13) ;- (EMAC) 

-AT91C_EMAC_RBOF           EQU (0x3 << 14) ;- (EMAC) 

-AT91C_EMAC_RBOF_OFFSET_0  EQU (0x0 << 14) ;- (EMAC) no offset from start of receive buffer

-AT91C_EMAC_RBOF_OFFSET_1  EQU (0x1 << 14) ;- (EMAC) one byte offset from start of receive buffer

-AT91C_EMAC_RBOF_OFFSET_2  EQU (0x2 << 14) ;- (EMAC) two bytes offset from start of receive buffer

-AT91C_EMAC_RBOF_OFFSET_3  EQU (0x3 << 14) ;- (EMAC) three bytes offset from start of receive buffer

-AT91C_EMAC_RLCE           EQU (0x1 << 16) ;- (EMAC) Receive Length field Checking Enable

-AT91C_EMAC_DRFCS          EQU (0x1 << 17) ;- (EMAC) Discard Receive FCS

-AT91C_EMAC_EFRHD          EQU (0x1 << 18) ;- (EMAC) 

-AT91C_EMAC_IRXFCS         EQU (0x1 << 19) ;- (EMAC) Ignore RX FCS

-// - -------- EMAC_NSR : (EMAC Offset: 0x8) Network Status Register -------- 

-AT91C_EMAC_LINKR          EQU (0x1 <<  0) ;- (EMAC) 

-AT91C_EMAC_MDIO           EQU (0x1 <<  1) ;- (EMAC) 

-AT91C_EMAC_IDLE           EQU (0x1 <<  2) ;- (EMAC) 

-// - -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Status Register -------- 

-AT91C_EMAC_UBR            EQU (0x1 <<  0) ;- (EMAC) 

-AT91C_EMAC_COL            EQU (0x1 <<  1) ;- (EMAC) 

-AT91C_EMAC_RLES           EQU (0x1 <<  2) ;- (EMAC) 

-AT91C_EMAC_TGO            EQU (0x1 <<  3) ;- (EMAC) Transmit Go

-AT91C_EMAC_BEX            EQU (0x1 <<  4) ;- (EMAC) Buffers exhausted mid frame

-AT91C_EMAC_COMP           EQU (0x1 <<  5) ;- (EMAC) 

-AT91C_EMAC_UND            EQU (0x1 <<  6) ;- (EMAC) 

-// - -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register -------- 

-AT91C_EMAC_BNA            EQU (0x1 <<  0) ;- (EMAC) 

-AT91C_EMAC_REC            EQU (0x1 <<  1) ;- (EMAC) 

-AT91C_EMAC_OVR            EQU (0x1 <<  2) ;- (EMAC) 

-// - -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register -------- 

-AT91C_EMAC_MFD            EQU (0x1 <<  0) ;- (EMAC) 

-AT91C_EMAC_RCOMP          EQU (0x1 <<  1) ;- (EMAC) 

-AT91C_EMAC_RXUBR          EQU (0x1 <<  2) ;- (EMAC) 

-AT91C_EMAC_TXUBR          EQU (0x1 <<  3) ;- (EMAC) 

-AT91C_EMAC_TUNDR          EQU (0x1 <<  4) ;- (EMAC) 

-AT91C_EMAC_RLEX           EQU (0x1 <<  5) ;- (EMAC) 

-AT91C_EMAC_TXERR          EQU (0x1 <<  6) ;- (EMAC) 

-AT91C_EMAC_TCOMP          EQU (0x1 <<  7) ;- (EMAC) 

-AT91C_EMAC_LINK           EQU (0x1 <<  9) ;- (EMAC) 

-AT91C_EMAC_ROVR           EQU (0x1 << 10) ;- (EMAC) 

-AT91C_EMAC_HRESP          EQU (0x1 << 11) ;- (EMAC) 

-AT91C_EMAC_PFRE           EQU (0x1 << 12) ;- (EMAC) 

-AT91C_EMAC_PTZ            EQU (0x1 << 13) ;- (EMAC) 

-// - -------- EMAC_IER : (EMAC Offset: 0x28) Interrupt Enable Register -------- 

-// - -------- EMAC_IDR : (EMAC Offset: 0x2c) Interrupt Disable Register -------- 

-// - -------- EMAC_IMR : (EMAC Offset: 0x30) Interrupt Mask Register -------- 

-// - -------- EMAC_MAN : (EMAC Offset: 0x34) PHY Maintenance Register -------- 

-AT91C_EMAC_DATA           EQU (0xFFFF <<  0) ;- (EMAC) 

-AT91C_EMAC_CODE           EQU (0x3 << 16) ;- (EMAC) 

-AT91C_EMAC_REGA           EQU (0x1F << 18) ;- (EMAC) 

-AT91C_EMAC_PHYA           EQU (0x1F << 23) ;- (EMAC) 

-AT91C_EMAC_RW             EQU (0x3 << 28) ;- (EMAC) 

-AT91C_EMAC_SOF            EQU (0x3 << 30) ;- (EMAC) 

-// - -------- EMAC_USRIO : (EMAC Offset: 0xc0) USER Input Output Register -------- 

-AT91C_EMAC_RMII           EQU (0x1 <<  0) ;- (EMAC) Reduce MII

-// - -------- EMAC_WOL : (EMAC Offset: 0xc4) Wake On LAN Register -------- 

-AT91C_EMAC_IP             EQU (0xFFFF <<  0) ;- (EMAC) ARP request IP address

-AT91C_EMAC_MAG            EQU (0x1 << 16) ;- (EMAC) Magic packet event enable

-AT91C_EMAC_ARP            EQU (0x1 << 17) ;- (EMAC) ARP request event enable

-AT91C_EMAC_SA1            EQU (0x1 << 18) ;- (EMAC) Specific address register 1 event enable

-// - -------- EMAC_REV : (EMAC Offset: 0xfc) Revision Register -------- 

-AT91C_EMAC_REVREF         EQU (0xFFFF <<  0) ;- (EMAC) 

-AT91C_EMAC_PARTREF        EQU (0xFFFF << 16) ;- (EMAC) 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Analog to Digital Convertor

-// - *****************************************************************************

-// - -------- ADC_CR : (ADC Offset: 0x0) ADC Control Register -------- 

-AT91C_ADC_SWRST           EQU (0x1 <<  0) ;- (ADC) Software Reset

-AT91C_ADC_START           EQU (0x1 <<  1) ;- (ADC) Start Conversion

-// - -------- ADC_MR : (ADC Offset: 0x4) ADC Mode Register -------- 

-AT91C_ADC_TRGEN           EQU (0x1 <<  0) ;- (ADC) Trigger Enable

-AT91C_ADC_TRGEN_DIS       EQU (0x0) ;- (ADC) Hradware triggers are disabled. Starting a conversion is only possible by software

-AT91C_ADC_TRGEN_EN        EQU (0x1) ;- (ADC) Hardware trigger selected by TRGSEL field is enabled.

-AT91C_ADC_TRGSEL          EQU (0x7 <<  1) ;- (ADC) Trigger Selection

-AT91C_ADC_TRGSEL_TIOA0    EQU (0x0 <<  1) ;- (ADC) Selected TRGSEL = TIAO0

-AT91C_ADC_TRGSEL_TIOA1    EQU (0x1 <<  1) ;- (ADC) Selected TRGSEL = TIAO1

-AT91C_ADC_TRGSEL_TIOA2    EQU (0x2 <<  1) ;- (ADC) Selected TRGSEL = TIAO2

-AT91C_ADC_TRGSEL_TIOA3    EQU (0x3 <<  1) ;- (ADC) Selected TRGSEL = TIAO3

-AT91C_ADC_TRGSEL_TIOA4    EQU (0x4 <<  1) ;- (ADC) Selected TRGSEL = TIAO4

-AT91C_ADC_TRGSEL_TIOA5    EQU (0x5 <<  1) ;- (ADC) Selected TRGSEL = TIAO5

-AT91C_ADC_TRGSEL_EXT      EQU (0x6 <<  1) ;- (ADC) Selected TRGSEL = External Trigger

-AT91C_ADC_LOWRES          EQU (0x1 <<  4) ;- (ADC) Resolution.

-AT91C_ADC_LOWRES_10_BIT   EQU (0x0 <<  4) ;- (ADC) 10-bit resolution

-AT91C_ADC_LOWRES_8_BIT    EQU (0x1 <<  4) ;- (ADC) 8-bit resolution

-AT91C_ADC_SLEEP           EQU (0x1 <<  5) ;- (ADC) Sleep Mode

-AT91C_ADC_SLEEP_NORMAL_MODE EQU (0x0 <<  5) ;- (ADC) Normal Mode

-AT91C_ADC_SLEEP_MODE      EQU (0x1 <<  5) ;- (ADC) Sleep Mode

-AT91C_ADC_PRESCAL         EQU (0x3F <<  8) ;- (ADC) Prescaler rate selection

-AT91C_ADC_STARTUP         EQU (0x1F << 16) ;- (ADC) Startup Time

-AT91C_ADC_SHTIM           EQU (0xF << 24) ;- (ADC) Sample & Hold Time

-// - -------- 	ADC_CHER : (ADC Offset: 0x10) ADC Channel Enable Register -------- 

-AT91C_ADC_CH0             EQU (0x1 <<  0) ;- (ADC) Channel 0

-AT91C_ADC_CH1             EQU (0x1 <<  1) ;- (ADC) Channel 1

-AT91C_ADC_CH2             EQU (0x1 <<  2) ;- (ADC) Channel 2

-AT91C_ADC_CH3             EQU (0x1 <<  3) ;- (ADC) Channel 3

-AT91C_ADC_CH4             EQU (0x1 <<  4) ;- (ADC) Channel 4

-AT91C_ADC_CH5             EQU (0x1 <<  5) ;- (ADC) Channel 5

-AT91C_ADC_CH6             EQU (0x1 <<  6) ;- (ADC) Channel 6

-AT91C_ADC_CH7             EQU (0x1 <<  7) ;- (ADC) Channel 7

-// - -------- 	ADC_CHDR : (ADC Offset: 0x14) ADC Channel Disable Register -------- 

-// - -------- 	ADC_CHSR : (ADC Offset: 0x18) ADC Channel Status Register -------- 

-// - -------- ADC_SR : (ADC Offset: 0x1c) ADC Status Register -------- 

-AT91C_ADC_EOC0            EQU (0x1 <<  0) ;- (ADC) End of Conversion

-AT91C_ADC_EOC1            EQU (0x1 <<  1) ;- (ADC) End of Conversion

-AT91C_ADC_EOC2            EQU (0x1 <<  2) ;- (ADC) End of Conversion

-AT91C_ADC_EOC3            EQU (0x1 <<  3) ;- (ADC) End of Conversion

-AT91C_ADC_EOC4            EQU (0x1 <<  4) ;- (ADC) End of Conversion

-AT91C_ADC_EOC5            EQU (0x1 <<  5) ;- (ADC) End of Conversion

-AT91C_ADC_EOC6            EQU (0x1 <<  6) ;- (ADC) End of Conversion

-AT91C_ADC_EOC7            EQU (0x1 <<  7) ;- (ADC) End of Conversion

-AT91C_ADC_OVRE0           EQU (0x1 <<  8) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE1           EQU (0x1 <<  9) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE2           EQU (0x1 << 10) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE3           EQU (0x1 << 11) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE4           EQU (0x1 << 12) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE5           EQU (0x1 << 13) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE6           EQU (0x1 << 14) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE7           EQU (0x1 << 15) ;- (ADC) Overrun Error

-AT91C_ADC_DRDY            EQU (0x1 << 16) ;- (ADC) Data Ready

-AT91C_ADC_GOVRE           EQU (0x1 << 17) ;- (ADC) General Overrun

-AT91C_ADC_ENDRX           EQU (0x1 << 18) ;- (ADC) End of Receiver Transfer

-AT91C_ADC_RXBUFF          EQU (0x1 << 19) ;- (ADC) RXBUFF Interrupt

-// - -------- ADC_LCDR : (ADC Offset: 0x20) ADC Last Converted Data Register -------- 

-AT91C_ADC_LDATA           EQU (0x3FF <<  0) ;- (ADC) Last Data Converted

-// - -------- ADC_IER : (ADC Offset: 0x24) ADC Interrupt Enable Register -------- 

-// - -------- ADC_IDR : (ADC Offset: 0x28) ADC Interrupt Disable Register -------- 

-// - -------- ADC_IMR : (ADC Offset: 0x2c) ADC Interrupt Mask Register -------- 

-// - -------- ADC_CDR0 : (ADC Offset: 0x30) ADC Channel Data Register 0 -------- 

-AT91C_ADC_DATA            EQU (0x3FF <<  0) ;- (ADC) Converted Data

-// - -------- ADC_CDR1 : (ADC Offset: 0x34) ADC Channel Data Register 1 -------- 

-// - -------- ADC_CDR2 : (ADC Offset: 0x38) ADC Channel Data Register 2 -------- 

-// - -------- ADC_CDR3 : (ADC Offset: 0x3c) ADC Channel Data Register 3 -------- 

-// - -------- ADC_CDR4 : (ADC Offset: 0x40) ADC Channel Data Register 4 -------- 

-// - -------- ADC_CDR5 : (ADC Offset: 0x44) ADC Channel Data Register 5 -------- 

-// - -------- ADC_CDR6 : (ADC Offset: 0x48) ADC Channel Data Register 6 -------- 

-// - -------- ADC_CDR7 : (ADC Offset: 0x4c) ADC Channel Data Register 7 -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Advanced  Encryption Standard

-// - *****************************************************************************

-// - -------- AES_CR : (AES Offset: 0x0) Control Register -------- 

-AT91C_AES_START           EQU (0x1 <<  0) ;- (AES) Starts Processing

-AT91C_AES_SWRST           EQU (0x1 <<  8) ;- (AES) Software Reset

-AT91C_AES_LOADSEED        EQU (0x1 << 16) ;- (AES) Random Number Generator Seed Loading

-// - -------- AES_MR : (AES Offset: 0x4) Mode Register -------- 

-AT91C_AES_CIPHER          EQU (0x1 <<  0) ;- (AES) Processing Mode

-AT91C_AES_PROCDLY         EQU (0xF <<  4) ;- (AES) Processing Delay

-AT91C_AES_SMOD            EQU (0x3 <<  8) ;- (AES) Start Mode

-AT91C_AES_SMOD_MANUAL     EQU (0x0 <<  8) ;- (AES) Manual Mode: The START bit in register AES_CR must be set to begin encryption or decryption.

-AT91C_AES_SMOD_AUTO       EQU (0x1 <<  8) ;- (AES) Auto Mode: no action in AES_CR is necessary (cf datasheet).

-AT91C_AES_SMOD_PDC        EQU (0x2 <<  8) ;- (AES) PDC Mode (cf datasheet).

-AT91C_AES_OPMOD           EQU (0x7 << 12) ;- (AES) Operation Mode

-AT91C_AES_OPMOD_ECB       EQU (0x0 << 12) ;- (AES) ECB Electronic CodeBook mode.

-AT91C_AES_OPMOD_CBC       EQU (0x1 << 12) ;- (AES) CBC Cipher Block Chaining mode.

-AT91C_AES_OPMOD_OFB       EQU (0x2 << 12) ;- (AES) OFB Output Feedback mode.

-AT91C_AES_OPMOD_CFB       EQU (0x3 << 12) ;- (AES) CFB Cipher Feedback mode.

-AT91C_AES_OPMOD_CTR       EQU (0x4 << 12) ;- (AES) CTR Counter mode.

-AT91C_AES_LOD             EQU (0x1 << 15) ;- (AES) Last Output Data Mode

-AT91C_AES_CFBS            EQU (0x7 << 16) ;- (AES) Cipher Feedback Data Size

-AT91C_AES_CFBS_128_BIT    EQU (0x0 << 16) ;- (AES) 128-bit.

-AT91C_AES_CFBS_64_BIT     EQU (0x1 << 16) ;- (AES) 64-bit.

-AT91C_AES_CFBS_32_BIT     EQU (0x2 << 16) ;- (AES) 32-bit.

-AT91C_AES_CFBS_16_BIT     EQU (0x3 << 16) ;- (AES) 16-bit.

-AT91C_AES_CFBS_8_BIT      EQU (0x4 << 16) ;- (AES) 8-bit.

-AT91C_AES_CKEY            EQU (0xF << 20) ;- (AES) Countermeasure Key

-AT91C_AES_CTYPE           EQU (0x1F << 24) ;- (AES) Countermeasure Type

-AT91C_AES_CTYPE_TYPE1_EN  EQU (0x1 << 24) ;- (AES) Countermeasure type 1 is enabled.

-AT91C_AES_CTYPE_TYPE2_EN  EQU (0x2 << 24) ;- (AES) Countermeasure type 2 is enabled.

-AT91C_AES_CTYPE_TYPE3_EN  EQU (0x4 << 24) ;- (AES) Countermeasure type 3 is enabled.

-AT91C_AES_CTYPE_TYPE4_EN  EQU (0x8 << 24) ;- (AES) Countermeasure type 4 is enabled.

-AT91C_AES_CTYPE_TYPE5_EN  EQU (0x10 << 24) ;- (AES) Countermeasure type 5 is enabled.

-// - -------- AES_IER : (AES Offset: 0x10) Interrupt Enable Register -------- 

-AT91C_AES_DATRDY          EQU (0x1 <<  0) ;- (AES) DATRDY

-AT91C_AES_ENDRX           EQU (0x1 <<  1) ;- (AES) PDC Read Buffer End

-AT91C_AES_ENDTX           EQU (0x1 <<  2) ;- (AES) PDC Write Buffer End

-AT91C_AES_RXBUFF          EQU (0x1 <<  3) ;- (AES) PDC Read Buffer Full

-AT91C_AES_TXBUFE          EQU (0x1 <<  4) ;- (AES) PDC Write Buffer Empty

-AT91C_AES_URAD            EQU (0x1 <<  8) ;- (AES) Unspecified Register Access Detection

-// - -------- AES_IDR : (AES Offset: 0x14) Interrupt Disable Register -------- 

-// - -------- AES_IMR : (AES Offset: 0x18) Interrupt Mask Register -------- 

-// - -------- AES_ISR : (AES Offset: 0x1c) Interrupt Status Register -------- 

-AT91C_AES_URAT            EQU (0x7 << 12) ;- (AES) Unspecified Register Access Type Status

-AT91C_AES_URAT_IN_DAT_WRITE_DATPROC EQU (0x0 << 12) ;- (AES) Input data register written during the data processing in PDC mode.

-AT91C_AES_URAT_OUT_DAT_READ_DATPROC EQU (0x1 << 12) ;- (AES) Output data register read during the data processing.

-AT91C_AES_URAT_MODEREG_WRITE_DATPROC EQU (0x2 << 12) ;- (AES) Mode register written during the data processing.

-AT91C_AES_URAT_OUT_DAT_READ_SUBKEY EQU (0x3 << 12) ;- (AES) Output data register read during the sub-keys generation.

-AT91C_AES_URAT_MODEREG_WRITE_SUBKEY EQU (0x4 << 12) ;- (AES) Mode register written during the sub-keys generation.

-AT91C_AES_URAT_WO_REG_READ EQU (0x5 << 12) ;- (AES) Write-only register read access.

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Triple Data Encryption Standard

-// - *****************************************************************************

-// - -------- TDES_CR : (TDES Offset: 0x0) Control Register -------- 

-AT91C_TDES_START          EQU (0x1 <<  0) ;- (TDES) Starts Processing

-AT91C_TDES_SWRST          EQU (0x1 <<  8) ;- (TDES) Software Reset

-// - -------- TDES_MR : (TDES Offset: 0x4) Mode Register -------- 

-AT91C_TDES_CIPHER         EQU (0x1 <<  0) ;- (TDES) Processing Mode

-AT91C_TDES_TDESMOD        EQU (0x1 <<  1) ;- (TDES) Single or Triple DES Mode

-AT91C_TDES_KEYMOD         EQU (0x1 <<  4) ;- (TDES) Key Mode

-AT91C_TDES_SMOD           EQU (0x3 <<  8) ;- (TDES) Start Mode

-AT91C_TDES_SMOD_MANUAL    EQU (0x0 <<  8) ;- (TDES) Manual Mode: The START bit in register TDES_CR must be set to begin encryption or decryption.

-AT91C_TDES_SMOD_AUTO      EQU (0x1 <<  8) ;- (TDES) Auto Mode: no action in TDES_CR is necessary (cf datasheet).

-AT91C_TDES_SMOD_PDC       EQU (0x2 <<  8) ;- (TDES) PDC Mode (cf datasheet).

-AT91C_TDES_OPMOD          EQU (0x3 << 12) ;- (TDES) Operation Mode

-AT91C_TDES_OPMOD_ECB      EQU (0x0 << 12) ;- (TDES) ECB Electronic CodeBook mode.

-AT91C_TDES_OPMOD_CBC      EQU (0x1 << 12) ;- (TDES) CBC Cipher Block Chaining mode.

-AT91C_TDES_OPMOD_OFB      EQU (0x2 << 12) ;- (TDES) OFB Output Feedback mode.

-AT91C_TDES_OPMOD_CFB      EQU (0x3 << 12) ;- (TDES) CFB Cipher Feedback mode.

-AT91C_TDES_LOD            EQU (0x1 << 15) ;- (TDES) Last Output Data Mode

-AT91C_TDES_CFBS           EQU (0x3 << 16) ;- (TDES) Cipher Feedback Data Size

-AT91C_TDES_CFBS_64_BIT    EQU (0x0 << 16) ;- (TDES) 64-bit.

-AT91C_TDES_CFBS_32_BIT    EQU (0x1 << 16) ;- (TDES) 32-bit.

-AT91C_TDES_CFBS_16_BIT    EQU (0x2 << 16) ;- (TDES) 16-bit.

-AT91C_TDES_CFBS_8_BIT     EQU (0x3 << 16) ;- (TDES) 8-bit.

-// - -------- TDES_IER : (TDES Offset: 0x10) Interrupt Enable Register -------- 

-AT91C_TDES_DATRDY         EQU (0x1 <<  0) ;- (TDES) DATRDY

-AT91C_TDES_ENDRX          EQU (0x1 <<  1) ;- (TDES) PDC Read Buffer End

-AT91C_TDES_ENDTX          EQU (0x1 <<  2) ;- (TDES) PDC Write Buffer End

-AT91C_TDES_RXBUFF         EQU (0x1 <<  3) ;- (TDES) PDC Read Buffer Full

-AT91C_TDES_TXBUFE         EQU (0x1 <<  4) ;- (TDES) PDC Write Buffer Empty

-AT91C_TDES_URAD           EQU (0x1 <<  8) ;- (TDES) Unspecified Register Access Detection

-// - -------- TDES_IDR : (TDES Offset: 0x14) Interrupt Disable Register -------- 

-// - -------- TDES_IMR : (TDES Offset: 0x18) Interrupt Mask Register -------- 

-// - -------- TDES_ISR : (TDES Offset: 0x1c) Interrupt Status Register -------- 

-AT91C_TDES_URAT           EQU (0x3 << 12) ;- (TDES) Unspecified Register Access Type Status

-AT91C_TDES_URAT_IN_DAT_WRITE_DATPROC EQU (0x0 << 12) ;- (TDES) Input data register written during the data processing in PDC mode.

-AT91C_TDES_URAT_OUT_DAT_READ_DATPROC EQU (0x1 << 12) ;- (TDES) Output data register read during the data processing.

-AT91C_TDES_URAT_MODEREG_WRITE_DATPROC EQU (0x2 << 12) ;- (TDES) Mode register written during the data processing.

-AT91C_TDES_URAT_WO_REG_READ EQU (0x3 << 12) ;- (TDES) Write-only register read access.

-

-// - *****************************************************************************

-// -               REGISTER ADDRESS DEFINITION FOR AT91SAM7X128

-// - *****************************************************************************

-// - ========== Register definition for SYS peripheral ========== 

-// - ========== Register definition for AIC peripheral ========== 

-AT91C_AIC_IVR             EQU (0xFFFFF100) ;- (AIC) IRQ Vector Register

-AT91C_AIC_SMR             EQU (0xFFFFF000) ;- (AIC) Source Mode Register

-AT91C_AIC_FVR             EQU (0xFFFFF104) ;- (AIC) FIQ Vector Register

-AT91C_AIC_DCR             EQU (0xFFFFF138) ;- (AIC) Debug Control Register (Protect)

-AT91C_AIC_EOICR           EQU (0xFFFFF130) ;- (AIC) End of Interrupt Command Register

-AT91C_AIC_SVR             EQU (0xFFFFF080) ;- (AIC) Source Vector Register

-AT91C_AIC_FFSR            EQU (0xFFFFF148) ;- (AIC) Fast Forcing Status Register

-AT91C_AIC_ICCR            EQU (0xFFFFF128) ;- (AIC) Interrupt Clear Command Register

-AT91C_AIC_ISR             EQU (0xFFFFF108) ;- (AIC) Interrupt Status Register

-AT91C_AIC_IMR             EQU (0xFFFFF110) ;- (AIC) Interrupt Mask Register

-AT91C_AIC_IPR             EQU (0xFFFFF10C) ;- (AIC) Interrupt Pending Register

-AT91C_AIC_FFER            EQU (0xFFFFF140) ;- (AIC) Fast Forcing Enable Register

-AT91C_AIC_IECR            EQU (0xFFFFF120) ;- (AIC) Interrupt Enable Command Register

-AT91C_AIC_ISCR            EQU (0xFFFFF12C) ;- (AIC) Interrupt Set Command Register

-AT91C_AIC_FFDR            EQU (0xFFFFF144) ;- (AIC) Fast Forcing Disable Register

-AT91C_AIC_CISR            EQU (0xFFFFF114) ;- (AIC) Core Interrupt Status Register

-AT91C_AIC_IDCR            EQU (0xFFFFF124) ;- (AIC) Interrupt Disable Command Register

-AT91C_AIC_SPU             EQU (0xFFFFF134) ;- (AIC) Spurious Vector Register

-// - ========== Register definition for PDC_DBGU peripheral ========== 

-AT91C_DBGU_TCR            EQU (0xFFFFF30C) ;- (PDC_DBGU) Transmit Counter Register

-AT91C_DBGU_RNPR           EQU (0xFFFFF310) ;- (PDC_DBGU) Receive Next Pointer Register

-AT91C_DBGU_TNPR           EQU (0xFFFFF318) ;- (PDC_DBGU) Transmit Next Pointer Register

-AT91C_DBGU_TPR            EQU (0xFFFFF308) ;- (PDC_DBGU) Transmit Pointer Register

-AT91C_DBGU_RPR            EQU (0xFFFFF300) ;- (PDC_DBGU) Receive Pointer Register

-AT91C_DBGU_RCR            EQU (0xFFFFF304) ;- (PDC_DBGU) Receive Counter Register

-AT91C_DBGU_RNCR           EQU (0xFFFFF314) ;- (PDC_DBGU) Receive Next Counter Register

-AT91C_DBGU_PTCR           EQU (0xFFFFF320) ;- (PDC_DBGU) PDC Transfer Control Register

-AT91C_DBGU_PTSR           EQU (0xFFFFF324) ;- (PDC_DBGU) PDC Transfer Status Register

-AT91C_DBGU_TNCR           EQU (0xFFFFF31C) ;- (PDC_DBGU) Transmit Next Counter Register

-// - ========== Register definition for DBGU peripheral ========== 

-AT91C_DBGU_EXID           EQU (0xFFFFF244) ;- (DBGU) Chip ID Extension Register

-AT91C_DBGU_BRGR           EQU (0xFFFFF220) ;- (DBGU) Baud Rate Generator Register

-AT91C_DBGU_IDR            EQU (0xFFFFF20C) ;- (DBGU) Interrupt Disable Register

-AT91C_DBGU_CSR            EQU (0xFFFFF214) ;- (DBGU) Channel Status Register

-AT91C_DBGU_CIDR           EQU (0xFFFFF240) ;- (DBGU) Chip ID Register

-AT91C_DBGU_MR             EQU (0xFFFFF204) ;- (DBGU) Mode Register

-AT91C_DBGU_IMR            EQU (0xFFFFF210) ;- (DBGU) Interrupt Mask Register

-AT91C_DBGU_CR             EQU (0xFFFFF200) ;- (DBGU) Control Register

-AT91C_DBGU_FNTR           EQU (0xFFFFF248) ;- (DBGU) Force NTRST Register

-AT91C_DBGU_THR            EQU (0xFFFFF21C) ;- (DBGU) Transmitter Holding Register

-AT91C_DBGU_RHR            EQU (0xFFFFF218) ;- (DBGU) Receiver Holding Register

-AT91C_DBGU_IER            EQU (0xFFFFF208) ;- (DBGU) Interrupt Enable Register

-// - ========== Register definition for PIOA peripheral ========== 

-AT91C_PIOA_ODR            EQU (0xFFFFF414) ;- (PIOA) Output Disable Registerr

-AT91C_PIOA_SODR           EQU (0xFFFFF430) ;- (PIOA) Set Output Data Register

-AT91C_PIOA_ISR            EQU (0xFFFFF44C) ;- (PIOA) Interrupt Status Register

-AT91C_PIOA_ABSR           EQU (0xFFFFF478) ;- (PIOA) AB Select Status Register

-AT91C_PIOA_IER            EQU (0xFFFFF440) ;- (PIOA) Interrupt Enable Register

-AT91C_PIOA_PPUDR          EQU (0xFFFFF460) ;- (PIOA) Pull-up Disable Register

-AT91C_PIOA_IMR            EQU (0xFFFFF448) ;- (PIOA) Interrupt Mask Register

-AT91C_PIOA_PER            EQU (0xFFFFF400) ;- (PIOA) PIO Enable Register

-AT91C_PIOA_IFDR           EQU (0xFFFFF424) ;- (PIOA) Input Filter Disable Register

-AT91C_PIOA_OWDR           EQU (0xFFFFF4A4) ;- (PIOA) Output Write Disable Register

-AT91C_PIOA_MDSR           EQU (0xFFFFF458) ;- (PIOA) Multi-driver Status Register

-AT91C_PIOA_IDR            EQU (0xFFFFF444) ;- (PIOA) Interrupt Disable Register

-AT91C_PIOA_ODSR           EQU (0xFFFFF438) ;- (PIOA) Output Data Status Register

-AT91C_PIOA_PPUSR          EQU (0xFFFFF468) ;- (PIOA) Pull-up Status Register

-AT91C_PIOA_OWSR           EQU (0xFFFFF4A8) ;- (PIOA) Output Write Status Register

-AT91C_PIOA_BSR            EQU (0xFFFFF474) ;- (PIOA) Select B Register

-AT91C_PIOA_OWER           EQU (0xFFFFF4A0) ;- (PIOA) Output Write Enable Register

-AT91C_PIOA_IFER           EQU (0xFFFFF420) ;- (PIOA) Input Filter Enable Register

-AT91C_PIOA_PDSR           EQU (0xFFFFF43C) ;- (PIOA) Pin Data Status Register

-AT91C_PIOA_PPUER          EQU (0xFFFFF464) ;- (PIOA) Pull-up Enable Register

-AT91C_PIOA_OSR            EQU (0xFFFFF418) ;- (PIOA) Output Status Register

-AT91C_PIOA_ASR            EQU (0xFFFFF470) ;- (PIOA) Select A Register

-AT91C_PIOA_MDDR           EQU (0xFFFFF454) ;- (PIOA) Multi-driver Disable Register

-AT91C_PIOA_CODR           EQU (0xFFFFF434) ;- (PIOA) Clear Output Data Register

-AT91C_PIOA_MDER           EQU (0xFFFFF450) ;- (PIOA) Multi-driver Enable Register

-AT91C_PIOA_PDR            EQU (0xFFFFF404) ;- (PIOA) PIO Disable Register

-AT91C_PIOA_IFSR           EQU (0xFFFFF428) ;- (PIOA) Input Filter Status Register

-AT91C_PIOA_OER            EQU (0xFFFFF410) ;- (PIOA) Output Enable Register

-AT91C_PIOA_PSR            EQU (0xFFFFF408) ;- (PIOA) PIO Status Register

-// - ========== Register definition for PIOB peripheral ========== 

-AT91C_PIOB_OWDR           EQU (0xFFFFF6A4) ;- (PIOB) Output Write Disable Register

-AT91C_PIOB_MDER           EQU (0xFFFFF650) ;- (PIOB) Multi-driver Enable Register

-AT91C_PIOB_PPUSR          EQU (0xFFFFF668) ;- (PIOB) Pull-up Status Register

-AT91C_PIOB_IMR            EQU (0xFFFFF648) ;- (PIOB) Interrupt Mask Register

-AT91C_PIOB_ASR            EQU (0xFFFFF670) ;- (PIOB) Select A Register

-AT91C_PIOB_PPUDR          EQU (0xFFFFF660) ;- (PIOB) Pull-up Disable Register

-AT91C_PIOB_PSR            EQU (0xFFFFF608) ;- (PIOB) PIO Status Register

-AT91C_PIOB_IER            EQU (0xFFFFF640) ;- (PIOB) Interrupt Enable Register

-AT91C_PIOB_CODR           EQU (0xFFFFF634) ;- (PIOB) Clear Output Data Register

-AT91C_PIOB_OWER           EQU (0xFFFFF6A0) ;- (PIOB) Output Write Enable Register

-AT91C_PIOB_ABSR           EQU (0xFFFFF678) ;- (PIOB) AB Select Status Register

-AT91C_PIOB_IFDR           EQU (0xFFFFF624) ;- (PIOB) Input Filter Disable Register

-AT91C_PIOB_PDSR           EQU (0xFFFFF63C) ;- (PIOB) Pin Data Status Register

-AT91C_PIOB_IDR            EQU (0xFFFFF644) ;- (PIOB) Interrupt Disable Register

-AT91C_PIOB_OWSR           EQU (0xFFFFF6A8) ;- (PIOB) Output Write Status Register

-AT91C_PIOB_PDR            EQU (0xFFFFF604) ;- (PIOB) PIO Disable Register

-AT91C_PIOB_ODR            EQU (0xFFFFF614) ;- (PIOB) Output Disable Registerr

-AT91C_PIOB_IFSR           EQU (0xFFFFF628) ;- (PIOB) Input Filter Status Register

-AT91C_PIOB_PPUER          EQU (0xFFFFF664) ;- (PIOB) Pull-up Enable Register

-AT91C_PIOB_SODR           EQU (0xFFFFF630) ;- (PIOB) Set Output Data Register

-AT91C_PIOB_ISR            EQU (0xFFFFF64C) ;- (PIOB) Interrupt Status Register

-AT91C_PIOB_ODSR           EQU (0xFFFFF638) ;- (PIOB) Output Data Status Register

-AT91C_PIOB_OSR            EQU (0xFFFFF618) ;- (PIOB) Output Status Register

-AT91C_PIOB_MDSR           EQU (0xFFFFF658) ;- (PIOB) Multi-driver Status Register

-AT91C_PIOB_IFER           EQU (0xFFFFF620) ;- (PIOB) Input Filter Enable Register

-AT91C_PIOB_BSR            EQU (0xFFFFF674) ;- (PIOB) Select B Register

-AT91C_PIOB_MDDR           EQU (0xFFFFF654) ;- (PIOB) Multi-driver Disable Register

-AT91C_PIOB_OER            EQU (0xFFFFF610) ;- (PIOB) Output Enable Register

-AT91C_PIOB_PER            EQU (0xFFFFF600) ;- (PIOB) PIO Enable Register

-// - ========== Register definition for CKGR peripheral ========== 

-AT91C_CKGR_MOR            EQU (0xFFFFFC20) ;- (CKGR) Main Oscillator Register

-AT91C_CKGR_PLLR           EQU (0xFFFFFC2C) ;- (CKGR) PLL Register

-AT91C_CKGR_MCFR           EQU (0xFFFFFC24) ;- (CKGR) Main Clock  Frequency Register

-// - ========== Register definition for PMC peripheral ========== 

-AT91C_PMC_IDR             EQU (0xFFFFFC64) ;- (PMC) Interrupt Disable Register

-AT91C_PMC_MOR             EQU (0xFFFFFC20) ;- (PMC) Main Oscillator Register

-AT91C_PMC_PLLR            EQU (0xFFFFFC2C) ;- (PMC) PLL Register

-AT91C_PMC_PCER            EQU (0xFFFFFC10) ;- (PMC) Peripheral Clock Enable Register

-AT91C_PMC_PCKR            EQU (0xFFFFFC40) ;- (PMC) Programmable Clock Register

-AT91C_PMC_MCKR            EQU (0xFFFFFC30) ;- (PMC) Master Clock Register

-AT91C_PMC_SCDR            EQU (0xFFFFFC04) ;- (PMC) System Clock Disable Register

-AT91C_PMC_PCDR            EQU (0xFFFFFC14) ;- (PMC) Peripheral Clock Disable Register

-AT91C_PMC_SCSR            EQU (0xFFFFFC08) ;- (PMC) System Clock Status Register

-AT91C_PMC_PCSR            EQU (0xFFFFFC18) ;- (PMC) Peripheral Clock Status Register

-AT91C_PMC_MCFR            EQU (0xFFFFFC24) ;- (PMC) Main Clock  Frequency Register

-AT91C_PMC_SCER            EQU (0xFFFFFC00) ;- (PMC) System Clock Enable Register

-AT91C_PMC_IMR             EQU (0xFFFFFC6C) ;- (PMC) Interrupt Mask Register

-AT91C_PMC_IER             EQU (0xFFFFFC60) ;- (PMC) Interrupt Enable Register

-AT91C_PMC_SR              EQU (0xFFFFFC68) ;- (PMC) Status Register

-// - ========== Register definition for RSTC peripheral ========== 

-AT91C_RSTC_RCR            EQU (0xFFFFFD00) ;- (RSTC) Reset Control Register

-AT91C_RSTC_RMR            EQU (0xFFFFFD08) ;- (RSTC) Reset Mode Register

-AT91C_RSTC_RSR            EQU (0xFFFFFD04) ;- (RSTC) Reset Status Register

-// - ========== Register definition for RTTC peripheral ========== 

-AT91C_RTTC_RTSR           EQU (0xFFFFFD2C) ;- (RTTC) Real-time Status Register

-AT91C_RTTC_RTMR           EQU (0xFFFFFD20) ;- (RTTC) Real-time Mode Register

-AT91C_RTTC_RTVR           EQU (0xFFFFFD28) ;- (RTTC) Real-time Value Register

-AT91C_RTTC_RTAR           EQU (0xFFFFFD24) ;- (RTTC) Real-time Alarm Register

-// - ========== Register definition for PITC peripheral ========== 

-AT91C_PITC_PIVR           EQU (0xFFFFFD38) ;- (PITC) Period Interval Value Register

-AT91C_PITC_PISR           EQU (0xFFFFFD34) ;- (PITC) Period Interval Status Register

-AT91C_PITC_PIIR           EQU (0xFFFFFD3C) ;- (PITC) Period Interval Image Register

-AT91C_PITC_PIMR           EQU (0xFFFFFD30) ;- (PITC) Period Interval Mode Register

-// - ========== Register definition for WDTC peripheral ========== 

-AT91C_WDTC_WDCR           EQU (0xFFFFFD40) ;- (WDTC) Watchdog Control Register

-AT91C_WDTC_WDSR           EQU (0xFFFFFD48) ;- (WDTC) Watchdog Status Register

-AT91C_WDTC_WDMR           EQU (0xFFFFFD44) ;- (WDTC) Watchdog Mode Register

-// - ========== Register definition for VREG peripheral ========== 

-AT91C_VREG_MR             EQU (0xFFFFFD60) ;- (VREG) Voltage Regulator Mode Register

-// - ========== Register definition for MC peripheral ========== 

-AT91C_MC_ASR              EQU (0xFFFFFF04) ;- (MC) MC Abort Status Register

-AT91C_MC_RCR              EQU (0xFFFFFF00) ;- (MC) MC Remap Control Register

-AT91C_MC_FCR              EQU (0xFFFFFF64) ;- (MC) MC Flash Command Register

-AT91C_MC_AASR             EQU (0xFFFFFF08) ;- (MC) MC Abort Address Status Register

-AT91C_MC_FSR              EQU (0xFFFFFF68) ;- (MC) MC Flash Status Register

-AT91C_MC_FMR              EQU (0xFFFFFF60) ;- (MC) MC Flash Mode Register

-// - ========== Register definition for PDC_SPI1 peripheral ========== 

-AT91C_SPI1_PTCR           EQU (0xFFFE4120) ;- (PDC_SPI1) PDC Transfer Control Register

-AT91C_SPI1_RPR            EQU (0xFFFE4100) ;- (PDC_SPI1) Receive Pointer Register

-AT91C_SPI1_TNCR           EQU (0xFFFE411C) ;- (PDC_SPI1) Transmit Next Counter Register

-AT91C_SPI1_TPR            EQU (0xFFFE4108) ;- (PDC_SPI1) Transmit Pointer Register

-AT91C_SPI1_TNPR           EQU (0xFFFE4118) ;- (PDC_SPI1) Transmit Next Pointer Register

-AT91C_SPI1_TCR            EQU (0xFFFE410C) ;- (PDC_SPI1) Transmit Counter Register

-AT91C_SPI1_RCR            EQU (0xFFFE4104) ;- (PDC_SPI1) Receive Counter Register

-AT91C_SPI1_RNPR           EQU (0xFFFE4110) ;- (PDC_SPI1) Receive Next Pointer Register

-AT91C_SPI1_RNCR           EQU (0xFFFE4114) ;- (PDC_SPI1) Receive Next Counter Register

-AT91C_SPI1_PTSR           EQU (0xFFFE4124) ;- (PDC_SPI1) PDC Transfer Status Register

-// - ========== Register definition for SPI1 peripheral ========== 

-AT91C_SPI1_IMR            EQU (0xFFFE401C) ;- (SPI1) Interrupt Mask Register

-AT91C_SPI1_IER            EQU (0xFFFE4014) ;- (SPI1) Interrupt Enable Register

-AT91C_SPI1_MR             EQU (0xFFFE4004) ;- (SPI1) Mode Register

-AT91C_SPI1_RDR            EQU (0xFFFE4008) ;- (SPI1) Receive Data Register

-AT91C_SPI1_IDR            EQU (0xFFFE4018) ;- (SPI1) Interrupt Disable Register

-AT91C_SPI1_SR             EQU (0xFFFE4010) ;- (SPI1) Status Register

-AT91C_SPI1_TDR            EQU (0xFFFE400C) ;- (SPI1) Transmit Data Register

-AT91C_SPI1_CR             EQU (0xFFFE4000) ;- (SPI1) Control Register

-AT91C_SPI1_CSR            EQU (0xFFFE4030) ;- (SPI1) Chip Select Register

-// - ========== Register definition for PDC_SPI0 peripheral ========== 

-AT91C_SPI0_PTCR           EQU (0xFFFE0120) ;- (PDC_SPI0) PDC Transfer Control Register

-AT91C_SPI0_TPR            EQU (0xFFFE0108) ;- (PDC_SPI0) Transmit Pointer Register

-AT91C_SPI0_TCR            EQU (0xFFFE010C) ;- (PDC_SPI0) Transmit Counter Register

-AT91C_SPI0_RCR            EQU (0xFFFE0104) ;- (PDC_SPI0) Receive Counter Register

-AT91C_SPI0_PTSR           EQU (0xFFFE0124) ;- (PDC_SPI0) PDC Transfer Status Register

-AT91C_SPI0_RNPR           EQU (0xFFFE0110) ;- (PDC_SPI0) Receive Next Pointer Register

-AT91C_SPI0_RPR            EQU (0xFFFE0100) ;- (PDC_SPI0) Receive Pointer Register

-AT91C_SPI0_TNCR           EQU (0xFFFE011C) ;- (PDC_SPI0) Transmit Next Counter Register

-AT91C_SPI0_RNCR           EQU (0xFFFE0114) ;- (PDC_SPI0) Receive Next Counter Register

-AT91C_SPI0_TNPR           EQU (0xFFFE0118) ;- (PDC_SPI0) Transmit Next Pointer Register

-// - ========== Register definition for SPI0 peripheral ========== 

-AT91C_SPI0_IER            EQU (0xFFFE0014) ;- (SPI0) Interrupt Enable Register

-AT91C_SPI0_SR             EQU (0xFFFE0010) ;- (SPI0) Status Register

-AT91C_SPI0_IDR            EQU (0xFFFE0018) ;- (SPI0) Interrupt Disable Register

-AT91C_SPI0_CR             EQU (0xFFFE0000) ;- (SPI0) Control Register

-AT91C_SPI0_MR             EQU (0xFFFE0004) ;- (SPI0) Mode Register

-AT91C_SPI0_IMR            EQU (0xFFFE001C) ;- (SPI0) Interrupt Mask Register

-AT91C_SPI0_TDR            EQU (0xFFFE000C) ;- (SPI0) Transmit Data Register

-AT91C_SPI0_RDR            EQU (0xFFFE0008) ;- (SPI0) Receive Data Register

-AT91C_SPI0_CSR            EQU (0xFFFE0030) ;- (SPI0) Chip Select Register

-// - ========== Register definition for PDC_US1 peripheral ========== 

-AT91C_US1_RNCR            EQU (0xFFFC4114) ;- (PDC_US1) Receive Next Counter Register

-AT91C_US1_PTCR            EQU (0xFFFC4120) ;- (PDC_US1) PDC Transfer Control Register

-AT91C_US1_TCR             EQU (0xFFFC410C) ;- (PDC_US1) Transmit Counter Register

-AT91C_US1_PTSR            EQU (0xFFFC4124) ;- (PDC_US1) PDC Transfer Status Register

-AT91C_US1_TNPR            EQU (0xFFFC4118) ;- (PDC_US1) Transmit Next Pointer Register

-AT91C_US1_RCR             EQU (0xFFFC4104) ;- (PDC_US1) Receive Counter Register

-AT91C_US1_RNPR            EQU (0xFFFC4110) ;- (PDC_US1) Receive Next Pointer Register

-AT91C_US1_RPR             EQU (0xFFFC4100) ;- (PDC_US1) Receive Pointer Register

-AT91C_US1_TNCR            EQU (0xFFFC411C) ;- (PDC_US1) Transmit Next Counter Register

-AT91C_US1_TPR             EQU (0xFFFC4108) ;- (PDC_US1) Transmit Pointer Register

-// - ========== Register definition for US1 peripheral ========== 

-AT91C_US1_IF              EQU (0xFFFC404C) ;- (US1) IRDA_FILTER Register

-AT91C_US1_NER             EQU (0xFFFC4044) ;- (US1) Nb Errors Register

-AT91C_US1_RTOR            EQU (0xFFFC4024) ;- (US1) Receiver Time-out Register

-AT91C_US1_CSR             EQU (0xFFFC4014) ;- (US1) Channel Status Register

-AT91C_US1_IDR             EQU (0xFFFC400C) ;- (US1) Interrupt Disable Register

-AT91C_US1_IER             EQU (0xFFFC4008) ;- (US1) Interrupt Enable Register

-AT91C_US1_THR             EQU (0xFFFC401C) ;- (US1) Transmitter Holding Register

-AT91C_US1_TTGR            EQU (0xFFFC4028) ;- (US1) Transmitter Time-guard Register

-AT91C_US1_RHR             EQU (0xFFFC4018) ;- (US1) Receiver Holding Register

-AT91C_US1_BRGR            EQU (0xFFFC4020) ;- (US1) Baud Rate Generator Register

-AT91C_US1_IMR             EQU (0xFFFC4010) ;- (US1) Interrupt Mask Register

-AT91C_US1_FIDI            EQU (0xFFFC4040) ;- (US1) FI_DI_Ratio Register

-AT91C_US1_CR              EQU (0xFFFC4000) ;- (US1) Control Register

-AT91C_US1_MR              EQU (0xFFFC4004) ;- (US1) Mode Register

-// - ========== Register definition for PDC_US0 peripheral ========== 

-AT91C_US0_TNPR            EQU (0xFFFC0118) ;- (PDC_US0) Transmit Next Pointer Register

-AT91C_US0_RNPR            EQU (0xFFFC0110) ;- (PDC_US0) Receive Next Pointer Register

-AT91C_US0_TCR             EQU (0xFFFC010C) ;- (PDC_US0) Transmit Counter Register

-AT91C_US0_PTCR            EQU (0xFFFC0120) ;- (PDC_US0) PDC Transfer Control Register

-AT91C_US0_PTSR            EQU (0xFFFC0124) ;- (PDC_US0) PDC Transfer Status Register

-AT91C_US0_TNCR            EQU (0xFFFC011C) ;- (PDC_US0) Transmit Next Counter Register

-AT91C_US0_TPR             EQU (0xFFFC0108) ;- (PDC_US0) Transmit Pointer Register

-AT91C_US0_RCR             EQU (0xFFFC0104) ;- (PDC_US0) Receive Counter Register

-AT91C_US0_RPR             EQU (0xFFFC0100) ;- (PDC_US0) Receive Pointer Register

-AT91C_US0_RNCR            EQU (0xFFFC0114) ;- (PDC_US0) Receive Next Counter Register

-// - ========== Register definition for US0 peripheral ========== 

-AT91C_US0_BRGR            EQU (0xFFFC0020) ;- (US0) Baud Rate Generator Register

-AT91C_US0_NER             EQU (0xFFFC0044) ;- (US0) Nb Errors Register

-AT91C_US0_CR              EQU (0xFFFC0000) ;- (US0) Control Register

-AT91C_US0_IMR             EQU (0xFFFC0010) ;- (US0) Interrupt Mask Register

-AT91C_US0_FIDI            EQU (0xFFFC0040) ;- (US0) FI_DI_Ratio Register

-AT91C_US0_TTGR            EQU (0xFFFC0028) ;- (US0) Transmitter Time-guard Register

-AT91C_US0_MR              EQU (0xFFFC0004) ;- (US0) Mode Register

-AT91C_US0_RTOR            EQU (0xFFFC0024) ;- (US0) Receiver Time-out Register

-AT91C_US0_CSR             EQU (0xFFFC0014) ;- (US0) Channel Status Register

-AT91C_US0_RHR             EQU (0xFFFC0018) ;- (US0) Receiver Holding Register

-AT91C_US0_IDR             EQU (0xFFFC000C) ;- (US0) Interrupt Disable Register

-AT91C_US0_THR             EQU (0xFFFC001C) ;- (US0) Transmitter Holding Register

-AT91C_US0_IF              EQU (0xFFFC004C) ;- (US0) IRDA_FILTER Register

-AT91C_US0_IER             EQU (0xFFFC0008) ;- (US0) Interrupt Enable Register

-// - ========== Register definition for PDC_SSC peripheral ========== 

-AT91C_SSC_TNCR            EQU (0xFFFD411C) ;- (PDC_SSC) Transmit Next Counter Register

-AT91C_SSC_RPR             EQU (0xFFFD4100) ;- (PDC_SSC) Receive Pointer Register

-AT91C_SSC_RNCR            EQU (0xFFFD4114) ;- (PDC_SSC) Receive Next Counter Register

-AT91C_SSC_TPR             EQU (0xFFFD4108) ;- (PDC_SSC) Transmit Pointer Register

-AT91C_SSC_PTCR            EQU (0xFFFD4120) ;- (PDC_SSC) PDC Transfer Control Register

-AT91C_SSC_TCR             EQU (0xFFFD410C) ;- (PDC_SSC) Transmit Counter Register

-AT91C_SSC_RCR             EQU (0xFFFD4104) ;- (PDC_SSC) Receive Counter Register

-AT91C_SSC_RNPR            EQU (0xFFFD4110) ;- (PDC_SSC) Receive Next Pointer Register

-AT91C_SSC_TNPR            EQU (0xFFFD4118) ;- (PDC_SSC) Transmit Next Pointer Register

-AT91C_SSC_PTSR            EQU (0xFFFD4124) ;- (PDC_SSC) PDC Transfer Status Register

-// - ========== Register definition for SSC peripheral ========== 

-AT91C_SSC_RHR             EQU (0xFFFD4020) ;- (SSC) Receive Holding Register

-AT91C_SSC_RSHR            EQU (0xFFFD4030) ;- (SSC) Receive Sync Holding Register

-AT91C_SSC_TFMR            EQU (0xFFFD401C) ;- (SSC) Transmit Frame Mode Register

-AT91C_SSC_IDR             EQU (0xFFFD4048) ;- (SSC) Interrupt Disable Register

-AT91C_SSC_THR             EQU (0xFFFD4024) ;- (SSC) Transmit Holding Register

-AT91C_SSC_RCMR            EQU (0xFFFD4010) ;- (SSC) Receive Clock ModeRegister

-AT91C_SSC_IER             EQU (0xFFFD4044) ;- (SSC) Interrupt Enable Register

-AT91C_SSC_TSHR            EQU (0xFFFD4034) ;- (SSC) Transmit Sync Holding Register

-AT91C_SSC_SR              EQU (0xFFFD4040) ;- (SSC) Status Register

-AT91C_SSC_CMR             EQU (0xFFFD4004) ;- (SSC) Clock Mode Register

-AT91C_SSC_TCMR            EQU (0xFFFD4018) ;- (SSC) Transmit Clock Mode Register

-AT91C_SSC_CR              EQU (0xFFFD4000) ;- (SSC) Control Register

-AT91C_SSC_IMR             EQU (0xFFFD404C) ;- (SSC) Interrupt Mask Register

-AT91C_SSC_RFMR            EQU (0xFFFD4014) ;- (SSC) Receive Frame Mode Register

-// - ========== Register definition for TWI peripheral ========== 

-AT91C_TWI_IER             EQU (0xFFFB8024) ;- (TWI) Interrupt Enable Register

-AT91C_TWI_CR              EQU (0xFFFB8000) ;- (TWI) Control Register

-AT91C_TWI_SR              EQU (0xFFFB8020) ;- (TWI) Status Register

-AT91C_TWI_IMR             EQU (0xFFFB802C) ;- (TWI) Interrupt Mask Register

-AT91C_TWI_THR             EQU (0xFFFB8034) ;- (TWI) Transmit Holding Register

-AT91C_TWI_IDR             EQU (0xFFFB8028) ;- (TWI) Interrupt Disable Register

-AT91C_TWI_IADR            EQU (0xFFFB800C) ;- (TWI) Internal Address Register

-AT91C_TWI_MMR             EQU (0xFFFB8004) ;- (TWI) Master Mode Register

-AT91C_TWI_CWGR            EQU (0xFFFB8010) ;- (TWI) Clock Waveform Generator Register

-AT91C_TWI_RHR             EQU (0xFFFB8030) ;- (TWI) Receive Holding Register

-// - ========== Register definition for PWMC_CH3 peripheral ========== 

-AT91C_PWMC_CH3_CUPDR      EQU (0xFFFCC270) ;- (PWMC_CH3) Channel Update Register

-AT91C_PWMC_CH3_Reserved   EQU (0xFFFCC274) ;- (PWMC_CH3) Reserved

-AT91C_PWMC_CH3_CPRDR      EQU (0xFFFCC268) ;- (PWMC_CH3) Channel Period Register

-AT91C_PWMC_CH3_CDTYR      EQU (0xFFFCC264) ;- (PWMC_CH3) Channel Duty Cycle Register

-AT91C_PWMC_CH3_CCNTR      EQU (0xFFFCC26C) ;- (PWMC_CH3) Channel Counter Register

-AT91C_PWMC_CH3_CMR        EQU (0xFFFCC260) ;- (PWMC_CH3) Channel Mode Register

-// - ========== Register definition for PWMC_CH2 peripheral ========== 

-AT91C_PWMC_CH2_Reserved   EQU (0xFFFCC254) ;- (PWMC_CH2) Reserved

-AT91C_PWMC_CH2_CMR        EQU (0xFFFCC240) ;- (PWMC_CH2) Channel Mode Register

-AT91C_PWMC_CH2_CCNTR      EQU (0xFFFCC24C) ;- (PWMC_CH2) Channel Counter Register

-AT91C_PWMC_CH2_CPRDR      EQU (0xFFFCC248) ;- (PWMC_CH2) Channel Period Register

-AT91C_PWMC_CH2_CUPDR      EQU (0xFFFCC250) ;- (PWMC_CH2) Channel Update Register

-AT91C_PWMC_CH2_CDTYR      EQU (0xFFFCC244) ;- (PWMC_CH2) Channel Duty Cycle Register

-// - ========== Register definition for PWMC_CH1 peripheral ========== 

-AT91C_PWMC_CH1_Reserved   EQU (0xFFFCC234) ;- (PWMC_CH1) Reserved

-AT91C_PWMC_CH1_CUPDR      EQU (0xFFFCC230) ;- (PWMC_CH1) Channel Update Register

-AT91C_PWMC_CH1_CPRDR      EQU (0xFFFCC228) ;- (PWMC_CH1) Channel Period Register

-AT91C_PWMC_CH1_CCNTR      EQU (0xFFFCC22C) ;- (PWMC_CH1) Channel Counter Register

-AT91C_PWMC_CH1_CDTYR      EQU (0xFFFCC224) ;- (PWMC_CH1) Channel Duty Cycle Register

-AT91C_PWMC_CH1_CMR        EQU (0xFFFCC220) ;- (PWMC_CH1) Channel Mode Register

-// - ========== Register definition for PWMC_CH0 peripheral ========== 

-AT91C_PWMC_CH0_Reserved   EQU (0xFFFCC214) ;- (PWMC_CH0) Reserved

-AT91C_PWMC_CH0_CPRDR      EQU (0xFFFCC208) ;- (PWMC_CH0) Channel Period Register

-AT91C_PWMC_CH0_CDTYR      EQU (0xFFFCC204) ;- (PWMC_CH0) Channel Duty Cycle Register

-AT91C_PWMC_CH0_CMR        EQU (0xFFFCC200) ;- (PWMC_CH0) Channel Mode Register

-AT91C_PWMC_CH0_CUPDR      EQU (0xFFFCC210) ;- (PWMC_CH0) Channel Update Register

-AT91C_PWMC_CH0_CCNTR      EQU (0xFFFCC20C) ;- (PWMC_CH0) Channel Counter Register

-// - ========== Register definition for PWMC peripheral ========== 

-AT91C_PWMC_IDR            EQU (0xFFFCC014) ;- (PWMC) PWMC Interrupt Disable Register

-AT91C_PWMC_DIS            EQU (0xFFFCC008) ;- (PWMC) PWMC Disable Register

-AT91C_PWMC_IER            EQU (0xFFFCC010) ;- (PWMC) PWMC Interrupt Enable Register

-AT91C_PWMC_VR             EQU (0xFFFCC0FC) ;- (PWMC) PWMC Version Register

-AT91C_PWMC_ISR            EQU (0xFFFCC01C) ;- (PWMC) PWMC Interrupt Status Register

-AT91C_PWMC_SR             EQU (0xFFFCC00C) ;- (PWMC) PWMC Status Register

-AT91C_PWMC_IMR            EQU (0xFFFCC018) ;- (PWMC) PWMC Interrupt Mask Register

-AT91C_PWMC_MR             EQU (0xFFFCC000) ;- (PWMC) PWMC Mode Register

-AT91C_PWMC_ENA            EQU (0xFFFCC004) ;- (PWMC) PWMC Enable Register

-// - ========== Register definition for UDP peripheral ========== 

-AT91C_UDP_IMR             EQU (0xFFFB0018) ;- (UDP) Interrupt Mask Register

-AT91C_UDP_FADDR           EQU (0xFFFB0008) ;- (UDP) Function Address Register

-AT91C_UDP_NUM             EQU (0xFFFB0000) ;- (UDP) Frame Number Register

-AT91C_UDP_FDR             EQU (0xFFFB0050) ;- (UDP) Endpoint FIFO Data Register

-AT91C_UDP_ISR             EQU (0xFFFB001C) ;- (UDP) Interrupt Status Register

-AT91C_UDP_CSR             EQU (0xFFFB0030) ;- (UDP) Endpoint Control and Status Register

-AT91C_UDP_IDR             EQU (0xFFFB0014) ;- (UDP) Interrupt Disable Register

-AT91C_UDP_ICR             EQU (0xFFFB0020) ;- (UDP) Interrupt Clear Register

-AT91C_UDP_RSTEP           EQU (0xFFFB0028) ;- (UDP) Reset Endpoint Register

-AT91C_UDP_TXVC            EQU (0xFFFB0074) ;- (UDP) Transceiver Control Register

-AT91C_UDP_GLBSTATE        EQU (0xFFFB0004) ;- (UDP) Global State Register

-AT91C_UDP_IER             EQU (0xFFFB0010) ;- (UDP) Interrupt Enable Register

-// - ========== Register definition for TC0 peripheral ========== 

-AT91C_TC0_SR              EQU (0xFFFA0020) ;- (TC0) Status Register

-AT91C_TC0_RC              EQU (0xFFFA001C) ;- (TC0) Register C

-AT91C_TC0_RB              EQU (0xFFFA0018) ;- (TC0) Register B

-AT91C_TC0_CCR             EQU (0xFFFA0000) ;- (TC0) Channel Control Register

-AT91C_TC0_CMR             EQU (0xFFFA0004) ;- (TC0) Channel Mode Register (Capture Mode / Waveform Mode)

-AT91C_TC0_IER             EQU (0xFFFA0024) ;- (TC0) Interrupt Enable Register

-AT91C_TC0_RA              EQU (0xFFFA0014) ;- (TC0) Register A

-AT91C_TC0_IDR             EQU (0xFFFA0028) ;- (TC0) Interrupt Disable Register

-AT91C_TC0_CV              EQU (0xFFFA0010) ;- (TC0) Counter Value

-AT91C_TC0_IMR             EQU (0xFFFA002C) ;- (TC0) Interrupt Mask Register

-// - ========== Register definition for TC1 peripheral ========== 

-AT91C_TC1_RB              EQU (0xFFFA0058) ;- (TC1) Register B

-AT91C_TC1_CCR             EQU (0xFFFA0040) ;- (TC1) Channel Control Register

-AT91C_TC1_IER             EQU (0xFFFA0064) ;- (TC1) Interrupt Enable Register

-AT91C_TC1_IDR             EQU (0xFFFA0068) ;- (TC1) Interrupt Disable Register

-AT91C_TC1_SR              EQU (0xFFFA0060) ;- (TC1) Status Register

-AT91C_TC1_CMR             EQU (0xFFFA0044) ;- (TC1) Channel Mode Register (Capture Mode / Waveform Mode)

-AT91C_TC1_RA              EQU (0xFFFA0054) ;- (TC1) Register A

-AT91C_TC1_RC              EQU (0xFFFA005C) ;- (TC1) Register C

-AT91C_TC1_IMR             EQU (0xFFFA006C) ;- (TC1) Interrupt Mask Register

-AT91C_TC1_CV              EQU (0xFFFA0050) ;- (TC1) Counter Value

-// - ========== Register definition for TC2 peripheral ========== 

-AT91C_TC2_CMR             EQU (0xFFFA0084) ;- (TC2) Channel Mode Register (Capture Mode / Waveform Mode)

-AT91C_TC2_CCR             EQU (0xFFFA0080) ;- (TC2) Channel Control Register

-AT91C_TC2_CV              EQU (0xFFFA0090) ;- (TC2) Counter Value

-AT91C_TC2_RA              EQU (0xFFFA0094) ;- (TC2) Register A

-AT91C_TC2_RB              EQU (0xFFFA0098) ;- (TC2) Register B

-AT91C_TC2_IDR             EQU (0xFFFA00A8) ;- (TC2) Interrupt Disable Register

-AT91C_TC2_IMR             EQU (0xFFFA00AC) ;- (TC2) Interrupt Mask Register

-AT91C_TC2_RC              EQU (0xFFFA009C) ;- (TC2) Register C

-AT91C_TC2_IER             EQU (0xFFFA00A4) ;- (TC2) Interrupt Enable Register

-AT91C_TC2_SR              EQU (0xFFFA00A0) ;- (TC2) Status Register

-// - ========== Register definition for TCB peripheral ========== 

-AT91C_TCB_BMR             EQU (0xFFFA00C4) ;- (TCB) TC Block Mode Register

-AT91C_TCB_BCR             EQU (0xFFFA00C0) ;- (TCB) TC Block Control Register

-// - ========== Register definition for CAN_MB0 peripheral ========== 

-AT91C_CAN_MB0_MDL         EQU (0xFFFD0214) ;- (CAN_MB0) MailBox Data Low Register

-AT91C_CAN_MB0_MAM         EQU (0xFFFD0204) ;- (CAN_MB0) MailBox Acceptance Mask Register

-AT91C_CAN_MB0_MCR         EQU (0xFFFD021C) ;- (CAN_MB0) MailBox Control Register

-AT91C_CAN_MB0_MID         EQU (0xFFFD0208) ;- (CAN_MB0) MailBox ID Register

-AT91C_CAN_MB0_MSR         EQU (0xFFFD0210) ;- (CAN_MB0) MailBox Status Register

-AT91C_CAN_MB0_MFID        EQU (0xFFFD020C) ;- (CAN_MB0) MailBox Family ID Register

-AT91C_CAN_MB0_MDH         EQU (0xFFFD0218) ;- (CAN_MB0) MailBox Data High Register

-AT91C_CAN_MB0_MMR         EQU (0xFFFD0200) ;- (CAN_MB0) MailBox Mode Register

-// - ========== Register definition for CAN_MB1 peripheral ========== 

-AT91C_CAN_MB1_MDL         EQU (0xFFFD0234) ;- (CAN_MB1) MailBox Data Low Register

-AT91C_CAN_MB1_MID         EQU (0xFFFD0228) ;- (CAN_MB1) MailBox ID Register

-AT91C_CAN_MB1_MMR         EQU (0xFFFD0220) ;- (CAN_MB1) MailBox Mode Register

-AT91C_CAN_MB1_MSR         EQU (0xFFFD0230) ;- (CAN_MB1) MailBox Status Register

-AT91C_CAN_MB1_MAM         EQU (0xFFFD0224) ;- (CAN_MB1) MailBox Acceptance Mask Register

-AT91C_CAN_MB1_MDH         EQU (0xFFFD0238) ;- (CAN_MB1) MailBox Data High Register

-AT91C_CAN_MB1_MCR         EQU (0xFFFD023C) ;- (CAN_MB1) MailBox Control Register

-AT91C_CAN_MB1_MFID        EQU (0xFFFD022C) ;- (CAN_MB1) MailBox Family ID Register

-// - ========== Register definition for CAN_MB2 peripheral ========== 

-AT91C_CAN_MB2_MCR         EQU (0xFFFD025C) ;- (CAN_MB2) MailBox Control Register

-AT91C_CAN_MB2_MDH         EQU (0xFFFD0258) ;- (CAN_MB2) MailBox Data High Register

-AT91C_CAN_MB2_MID         EQU (0xFFFD0248) ;- (CAN_MB2) MailBox ID Register

-AT91C_CAN_MB2_MDL         EQU (0xFFFD0254) ;- (CAN_MB2) MailBox Data Low Register

-AT91C_CAN_MB2_MMR         EQU (0xFFFD0240) ;- (CAN_MB2) MailBox Mode Register

-AT91C_CAN_MB2_MAM         EQU (0xFFFD0244) ;- (CAN_MB2) MailBox Acceptance Mask Register

-AT91C_CAN_MB2_MFID        EQU (0xFFFD024C) ;- (CAN_MB2) MailBox Family ID Register

-AT91C_CAN_MB2_MSR         EQU (0xFFFD0250) ;- (CAN_MB2) MailBox Status Register

-// - ========== Register definition for CAN_MB3 peripheral ========== 

-AT91C_CAN_MB3_MFID        EQU (0xFFFD026C) ;- (CAN_MB3) MailBox Family ID Register

-AT91C_CAN_MB3_MAM         EQU (0xFFFD0264) ;- (CAN_MB3) MailBox Acceptance Mask Register

-AT91C_CAN_MB3_MID         EQU (0xFFFD0268) ;- (CAN_MB3) MailBox ID Register

-AT91C_CAN_MB3_MCR         EQU (0xFFFD027C) ;- (CAN_MB3) MailBox Control Register

-AT91C_CAN_MB3_MMR         EQU (0xFFFD0260) ;- (CAN_MB3) MailBox Mode Register

-AT91C_CAN_MB3_MSR         EQU (0xFFFD0270) ;- (CAN_MB3) MailBox Status Register

-AT91C_CAN_MB3_MDL         EQU (0xFFFD0274) ;- (CAN_MB3) MailBox Data Low Register

-AT91C_CAN_MB3_MDH         EQU (0xFFFD0278) ;- (CAN_MB3) MailBox Data High Register

-// - ========== Register definition for CAN_MB4 peripheral ========== 

-AT91C_CAN_MB4_MID         EQU (0xFFFD0288) ;- (CAN_MB4) MailBox ID Register

-AT91C_CAN_MB4_MMR         EQU (0xFFFD0280) ;- (CAN_MB4) MailBox Mode Register

-AT91C_CAN_MB4_MDH         EQU (0xFFFD0298) ;- (CAN_MB4) MailBox Data High Register

-AT91C_CAN_MB4_MFID        EQU (0xFFFD028C) ;- (CAN_MB4) MailBox Family ID Register

-AT91C_CAN_MB4_MSR         EQU (0xFFFD0290) ;- (CAN_MB4) MailBox Status Register

-AT91C_CAN_MB4_MCR         EQU (0xFFFD029C) ;- (CAN_MB4) MailBox Control Register

-AT91C_CAN_MB4_MDL         EQU (0xFFFD0294) ;- (CAN_MB4) MailBox Data Low Register

-AT91C_CAN_MB4_MAM         EQU (0xFFFD0284) ;- (CAN_MB4) MailBox Acceptance Mask Register

-// - ========== Register definition for CAN_MB5 peripheral ========== 

-AT91C_CAN_MB5_MSR         EQU (0xFFFD02B0) ;- (CAN_MB5) MailBox Status Register

-AT91C_CAN_MB5_MCR         EQU (0xFFFD02BC) ;- (CAN_MB5) MailBox Control Register

-AT91C_CAN_MB5_MFID        EQU (0xFFFD02AC) ;- (CAN_MB5) MailBox Family ID Register

-AT91C_CAN_MB5_MDH         EQU (0xFFFD02B8) ;- (CAN_MB5) MailBox Data High Register

-AT91C_CAN_MB5_MID         EQU (0xFFFD02A8) ;- (CAN_MB5) MailBox ID Register

-AT91C_CAN_MB5_MMR         EQU (0xFFFD02A0) ;- (CAN_MB5) MailBox Mode Register

-AT91C_CAN_MB5_MDL         EQU (0xFFFD02B4) ;- (CAN_MB5) MailBox Data Low Register

-AT91C_CAN_MB5_MAM         EQU (0xFFFD02A4) ;- (CAN_MB5) MailBox Acceptance Mask Register

-// - ========== Register definition for CAN_MB6 peripheral ========== 

-AT91C_CAN_MB6_MFID        EQU (0xFFFD02CC) ;- (CAN_MB6) MailBox Family ID Register

-AT91C_CAN_MB6_MID         EQU (0xFFFD02C8) ;- (CAN_MB6) MailBox ID Register

-AT91C_CAN_MB6_MAM         EQU (0xFFFD02C4) ;- (CAN_MB6) MailBox Acceptance Mask Register

-AT91C_CAN_MB6_MSR         EQU (0xFFFD02D0) ;- (CAN_MB6) MailBox Status Register

-AT91C_CAN_MB6_MDL         EQU (0xFFFD02D4) ;- (CAN_MB6) MailBox Data Low Register

-AT91C_CAN_MB6_MCR         EQU (0xFFFD02DC) ;- (CAN_MB6) MailBox Control Register

-AT91C_CAN_MB6_MDH         EQU (0xFFFD02D8) ;- (CAN_MB6) MailBox Data High Register

-AT91C_CAN_MB6_MMR         EQU (0xFFFD02C0) ;- (CAN_MB6) MailBox Mode Register

-// - ========== Register definition for CAN_MB7 peripheral ========== 

-AT91C_CAN_MB7_MCR         EQU (0xFFFD02FC) ;- (CAN_MB7) MailBox Control Register

-AT91C_CAN_MB7_MDH         EQU (0xFFFD02F8) ;- (CAN_MB7) MailBox Data High Register

-AT91C_CAN_MB7_MFID        EQU (0xFFFD02EC) ;- (CAN_MB7) MailBox Family ID Register

-AT91C_CAN_MB7_MDL         EQU (0xFFFD02F4) ;- (CAN_MB7) MailBox Data Low Register

-AT91C_CAN_MB7_MID         EQU (0xFFFD02E8) ;- (CAN_MB7) MailBox ID Register

-AT91C_CAN_MB7_MMR         EQU (0xFFFD02E0) ;- (CAN_MB7) MailBox Mode Register

-AT91C_CAN_MB7_MAM         EQU (0xFFFD02E4) ;- (CAN_MB7) MailBox Acceptance Mask Register

-AT91C_CAN_MB7_MSR         EQU (0xFFFD02F0) ;- (CAN_MB7) MailBox Status Register

-// - ========== Register definition for CAN peripheral ========== 

-AT91C_CAN_TCR             EQU (0xFFFD0024) ;- (CAN) Transfer Command Register

-AT91C_CAN_IMR             EQU (0xFFFD000C) ;- (CAN) Interrupt Mask Register

-AT91C_CAN_IER             EQU (0xFFFD0004) ;- (CAN) Interrupt Enable Register

-AT91C_CAN_ECR             EQU (0xFFFD0020) ;- (CAN) Error Counter Register

-AT91C_CAN_TIMESTP         EQU (0xFFFD001C) ;- (CAN) Time Stamp Register

-AT91C_CAN_MR              EQU (0xFFFD0000) ;- (CAN) Mode Register

-AT91C_CAN_IDR             EQU (0xFFFD0008) ;- (CAN) Interrupt Disable Register

-AT91C_CAN_ACR             EQU (0xFFFD0028) ;- (CAN) Abort Command Register

-AT91C_CAN_TIM             EQU (0xFFFD0018) ;- (CAN) Timer Register

-AT91C_CAN_SR              EQU (0xFFFD0010) ;- (CAN) Status Register

-AT91C_CAN_BR              EQU (0xFFFD0014) ;- (CAN) Baudrate Register

-AT91C_CAN_VR              EQU (0xFFFD00FC) ;- (CAN) Version Register

-// - ========== Register definition for EMAC peripheral ========== 

-AT91C_EMAC_ISR            EQU (0xFFFDC024) ;- (EMAC) Interrupt Status Register

-AT91C_EMAC_SA4H           EQU (0xFFFDC0B4) ;- (EMAC) Specific Address 4 Top, Last 2 bytes

-AT91C_EMAC_SA1L           EQU (0xFFFDC098) ;- (EMAC) Specific Address 1 Bottom, First 4 bytes

-AT91C_EMAC_ELE            EQU (0xFFFDC078) ;- (EMAC) Excessive Length Errors Register

-AT91C_EMAC_LCOL           EQU (0xFFFDC05C) ;- (EMAC) Late Collision Register

-AT91C_EMAC_RLE            EQU (0xFFFDC088) ;- (EMAC) Receive Length Field Mismatch Register

-AT91C_EMAC_WOL            EQU (0xFFFDC0C4) ;- (EMAC) Wake On LAN Register

-AT91C_EMAC_DTF            EQU (0xFFFDC058) ;- (EMAC) Deferred Transmission Frame Register

-AT91C_EMAC_TUND           EQU (0xFFFDC064) ;- (EMAC) Transmit Underrun Error Register

-AT91C_EMAC_NCR            EQU (0xFFFDC000) ;- (EMAC) Network Control Register

-AT91C_EMAC_SA4L           EQU (0xFFFDC0B0) ;- (EMAC) Specific Address 4 Bottom, First 4 bytes

-AT91C_EMAC_RSR            EQU (0xFFFDC020) ;- (EMAC) Receive Status Register

-AT91C_EMAC_SA3L           EQU (0xFFFDC0A8) ;- (EMAC) Specific Address 3 Bottom, First 4 bytes

-AT91C_EMAC_TSR            EQU (0xFFFDC014) ;- (EMAC) Transmit Status Register

-AT91C_EMAC_IDR            EQU (0xFFFDC02C) ;- (EMAC) Interrupt Disable Register

-AT91C_EMAC_RSE            EQU (0xFFFDC074) ;- (EMAC) Receive Symbol Errors Register

-AT91C_EMAC_ECOL           EQU (0xFFFDC060) ;- (EMAC) Excessive Collision Register

-AT91C_EMAC_TID            EQU (0xFFFDC0B8) ;- (EMAC) Type ID Checking Register

-AT91C_EMAC_HRB            EQU (0xFFFDC090) ;- (EMAC) Hash Address Bottom[31:0]

-AT91C_EMAC_TBQP           EQU (0xFFFDC01C) ;- (EMAC) Transmit Buffer Queue Pointer

-AT91C_EMAC_USRIO          EQU (0xFFFDC0C0) ;- (EMAC) USER Input/Output Register

-AT91C_EMAC_PTR            EQU (0xFFFDC038) ;- (EMAC) Pause Time Register

-AT91C_EMAC_SA2H           EQU (0xFFFDC0A4) ;- (EMAC) Specific Address 2 Top, Last 2 bytes

-AT91C_EMAC_ROV            EQU (0xFFFDC070) ;- (EMAC) Receive Overrun Errors Register

-AT91C_EMAC_ALE            EQU (0xFFFDC054) ;- (EMAC) Alignment Error Register

-AT91C_EMAC_RJA            EQU (0xFFFDC07C) ;- (EMAC) Receive Jabbers Register

-AT91C_EMAC_RBQP           EQU (0xFFFDC018) ;- (EMAC) Receive Buffer Queue Pointer

-AT91C_EMAC_TPF            EQU (0xFFFDC08C) ;- (EMAC) Transmitted Pause Frames Register

-AT91C_EMAC_NCFGR          EQU (0xFFFDC004) ;- (EMAC) Network Configuration Register

-AT91C_EMAC_HRT            EQU (0xFFFDC094) ;- (EMAC) Hash Address Top[63:32]

-AT91C_EMAC_USF            EQU (0xFFFDC080) ;- (EMAC) Undersize Frames Register

-AT91C_EMAC_FCSE           EQU (0xFFFDC050) ;- (EMAC) Frame Check Sequence Error Register

-AT91C_EMAC_TPQ            EQU (0xFFFDC0BC) ;- (EMAC) Transmit Pause Quantum Register

-AT91C_EMAC_MAN            EQU (0xFFFDC034) ;- (EMAC) PHY Maintenance Register

-AT91C_EMAC_FTO            EQU (0xFFFDC040) ;- (EMAC) Frames Transmitted OK Register

-AT91C_EMAC_REV            EQU (0xFFFDC0FC) ;- (EMAC) Revision Register

-AT91C_EMAC_IMR            EQU (0xFFFDC030) ;- (EMAC) Interrupt Mask Register

-AT91C_EMAC_SCF            EQU (0xFFFDC044) ;- (EMAC) Single Collision Frame Register

-AT91C_EMAC_PFR            EQU (0xFFFDC03C) ;- (EMAC) Pause Frames received Register

-AT91C_EMAC_MCF            EQU (0xFFFDC048) ;- (EMAC) Multiple Collision Frame Register

-AT91C_EMAC_NSR            EQU (0xFFFDC008) ;- (EMAC) Network Status Register

-AT91C_EMAC_SA2L           EQU (0xFFFDC0A0) ;- (EMAC) Specific Address 2 Bottom, First 4 bytes

-AT91C_EMAC_FRO            EQU (0xFFFDC04C) ;- (EMAC) Frames Received OK Register

-AT91C_EMAC_IER            EQU (0xFFFDC028) ;- (EMAC) Interrupt Enable Register

-AT91C_EMAC_SA1H           EQU (0xFFFDC09C) ;- (EMAC) Specific Address 1 Top, Last 2 bytes

-AT91C_EMAC_CSE            EQU (0xFFFDC068) ;- (EMAC) Carrier Sense Error Register

-AT91C_EMAC_SA3H           EQU (0xFFFDC0AC) ;- (EMAC) Specific Address 3 Top, Last 2 bytes

-AT91C_EMAC_RRE            EQU (0xFFFDC06C) ;- (EMAC) Receive Ressource Error Register

-AT91C_EMAC_STE            EQU (0xFFFDC084) ;- (EMAC) SQE Test Error Register

-// - ========== Register definition for PDC_ADC peripheral ========== 

-AT91C_ADC_PTSR            EQU (0xFFFD8124) ;- (PDC_ADC) PDC Transfer Status Register

-AT91C_ADC_PTCR            EQU (0xFFFD8120) ;- (PDC_ADC) PDC Transfer Control Register

-AT91C_ADC_TNPR            EQU (0xFFFD8118) ;- (PDC_ADC) Transmit Next Pointer Register

-AT91C_ADC_TNCR            EQU (0xFFFD811C) ;- (PDC_ADC) Transmit Next Counter Register

-AT91C_ADC_RNPR            EQU (0xFFFD8110) ;- (PDC_ADC) Receive Next Pointer Register

-AT91C_ADC_RNCR            EQU (0xFFFD8114) ;- (PDC_ADC) Receive Next Counter Register

-AT91C_ADC_RPR             EQU (0xFFFD8100) ;- (PDC_ADC) Receive Pointer Register

-AT91C_ADC_TCR             EQU (0xFFFD810C) ;- (PDC_ADC) Transmit Counter Register

-AT91C_ADC_TPR             EQU (0xFFFD8108) ;- (PDC_ADC) Transmit Pointer Register

-AT91C_ADC_RCR             EQU (0xFFFD8104) ;- (PDC_ADC) Receive Counter Register

-// - ========== Register definition for ADC peripheral ========== 

-AT91C_ADC_CDR2            EQU (0xFFFD8038) ;- (ADC) ADC Channel Data Register 2

-AT91C_ADC_CDR3            EQU (0xFFFD803C) ;- (ADC) ADC Channel Data Register 3

-AT91C_ADC_CDR0            EQU (0xFFFD8030) ;- (ADC) ADC Channel Data Register 0

-AT91C_ADC_CDR5            EQU (0xFFFD8044) ;- (ADC) ADC Channel Data Register 5

-AT91C_ADC_CHDR            EQU (0xFFFD8014) ;- (ADC) ADC Channel Disable Register

-AT91C_ADC_SR              EQU (0xFFFD801C) ;- (ADC) ADC Status Register

-AT91C_ADC_CDR4            EQU (0xFFFD8040) ;- (ADC) ADC Channel Data Register 4

-AT91C_ADC_CDR1            EQU (0xFFFD8034) ;- (ADC) ADC Channel Data Register 1

-AT91C_ADC_LCDR            EQU (0xFFFD8020) ;- (ADC) ADC Last Converted Data Register

-AT91C_ADC_IDR             EQU (0xFFFD8028) ;- (ADC) ADC Interrupt Disable Register

-AT91C_ADC_CR              EQU (0xFFFD8000) ;- (ADC) ADC Control Register

-AT91C_ADC_CDR7            EQU (0xFFFD804C) ;- (ADC) ADC Channel Data Register 7

-AT91C_ADC_CDR6            EQU (0xFFFD8048) ;- (ADC) ADC Channel Data Register 6

-AT91C_ADC_IER             EQU (0xFFFD8024) ;- (ADC) ADC Interrupt Enable Register

-AT91C_ADC_CHER            EQU (0xFFFD8010) ;- (ADC) ADC Channel Enable Register

-AT91C_ADC_CHSR            EQU (0xFFFD8018) ;- (ADC) ADC Channel Status Register

-AT91C_ADC_MR              EQU (0xFFFD8004) ;- (ADC) ADC Mode Register

-AT91C_ADC_IMR             EQU (0xFFFD802C) ;- (ADC) ADC Interrupt Mask Register

-// - ========== Register definition for PDC_AES peripheral ========== 

-AT91C_AES_TPR             EQU (0xFFFA4108) ;- (PDC_AES) Transmit Pointer Register

-AT91C_AES_PTCR            EQU (0xFFFA4120) ;- (PDC_AES) PDC Transfer Control Register

-AT91C_AES_RNPR            EQU (0xFFFA4110) ;- (PDC_AES) Receive Next Pointer Register

-AT91C_AES_TNCR            EQU (0xFFFA411C) ;- (PDC_AES) Transmit Next Counter Register

-AT91C_AES_TCR             EQU (0xFFFA410C) ;- (PDC_AES) Transmit Counter Register

-AT91C_AES_RCR             EQU (0xFFFA4104) ;- (PDC_AES) Receive Counter Register

-AT91C_AES_RNCR            EQU (0xFFFA4114) ;- (PDC_AES) Receive Next Counter Register

-AT91C_AES_TNPR            EQU (0xFFFA4118) ;- (PDC_AES) Transmit Next Pointer Register

-AT91C_AES_RPR             EQU (0xFFFA4100) ;- (PDC_AES) Receive Pointer Register

-AT91C_AES_PTSR            EQU (0xFFFA4124) ;- (PDC_AES) PDC Transfer Status Register

-// - ========== Register definition for AES peripheral ========== 

-AT91C_AES_IVxR            EQU (0xFFFA4060) ;- (AES) Initialization Vector x Register

-AT91C_AES_MR              EQU (0xFFFA4004) ;- (AES) Mode Register

-AT91C_AES_VR              EQU (0xFFFA40FC) ;- (AES) AES Version Register

-AT91C_AES_ODATAxR         EQU (0xFFFA4050) ;- (AES) Output Data x Register

-AT91C_AES_IDATAxR         EQU (0xFFFA4040) ;- (AES) Input Data x Register

-AT91C_AES_CR              EQU (0xFFFA4000) ;- (AES) Control Register

-AT91C_AES_IDR             EQU (0xFFFA4014) ;- (AES) Interrupt Disable Register

-AT91C_AES_IMR             EQU (0xFFFA4018) ;- (AES) Interrupt Mask Register

-AT91C_AES_IER             EQU (0xFFFA4010) ;- (AES) Interrupt Enable Register

-AT91C_AES_KEYWxR          EQU (0xFFFA4020) ;- (AES) Key Word x Register

-AT91C_AES_ISR             EQU (0xFFFA401C) ;- (AES) Interrupt Status Register

-// - ========== Register definition for PDC_TDES peripheral ========== 

-AT91C_TDES_RNCR           EQU (0xFFFA8114) ;- (PDC_TDES) Receive Next Counter Register

-AT91C_TDES_TCR            EQU (0xFFFA810C) ;- (PDC_TDES) Transmit Counter Register

-AT91C_TDES_RCR            EQU (0xFFFA8104) ;- (PDC_TDES) Receive Counter Register

-AT91C_TDES_TNPR           EQU (0xFFFA8118) ;- (PDC_TDES) Transmit Next Pointer Register

-AT91C_TDES_RNPR           EQU (0xFFFA8110) ;- (PDC_TDES) Receive Next Pointer Register

-AT91C_TDES_RPR            EQU (0xFFFA8100) ;- (PDC_TDES) Receive Pointer Register

-AT91C_TDES_TNCR           EQU (0xFFFA811C) ;- (PDC_TDES) Transmit Next Counter Register

-AT91C_TDES_TPR            EQU (0xFFFA8108) ;- (PDC_TDES) Transmit Pointer Register

-AT91C_TDES_PTSR           EQU (0xFFFA8124) ;- (PDC_TDES) PDC Transfer Status Register

-AT91C_TDES_PTCR           EQU (0xFFFA8120) ;- (PDC_TDES) PDC Transfer Control Register

-// - ========== Register definition for TDES peripheral ========== 

-AT91C_TDES_KEY2WxR        EQU (0xFFFA8028) ;- (TDES) Key 2 Word x Register

-AT91C_TDES_KEY3WxR        EQU (0xFFFA8030) ;- (TDES) Key 3 Word x Register

-AT91C_TDES_IDR            EQU (0xFFFA8014) ;- (TDES) Interrupt Disable Register

-AT91C_TDES_VR             EQU (0xFFFA80FC) ;- (TDES) TDES Version Register

-AT91C_TDES_IVxR           EQU (0xFFFA8060) ;- (TDES) Initialization Vector x Register

-AT91C_TDES_ODATAxR        EQU (0xFFFA8050) ;- (TDES) Output Data x Register

-AT91C_TDES_IMR            EQU (0xFFFA8018) ;- (TDES) Interrupt Mask Register

-AT91C_TDES_MR             EQU (0xFFFA8004) ;- (TDES) Mode Register

-AT91C_TDES_CR             EQU (0xFFFA8000) ;- (TDES) Control Register

-AT91C_TDES_IER            EQU (0xFFFA8010) ;- (TDES) Interrupt Enable Register

-AT91C_TDES_ISR            EQU (0xFFFA801C) ;- (TDES) Interrupt Status Register

-AT91C_TDES_IDATAxR        EQU (0xFFFA8040) ;- (TDES) Input Data x Register

-AT91C_TDES_KEY1WxR        EQU (0xFFFA8020) ;- (TDES) Key 1 Word x Register

-

-// - *****************************************************************************

-// -               PIO DEFINITIONS FOR AT91SAM7X128

-// - *****************************************************************************

-AT91C_PIO_PA0             EQU (1 <<  0) ;- Pin Controlled by PA0

-AT91C_PA0_RXD0            EQU (AT91C_PIO_PA0) ;-  USART 0 Receive Data

-AT91C_PIO_PA1             EQU (1 <<  1) ;- Pin Controlled by PA1

-AT91C_PA1_TXD0            EQU (AT91C_PIO_PA1) ;-  USART 0 Transmit Data

-AT91C_PIO_PA10            EQU (1 << 10) ;- Pin Controlled by PA10

-AT91C_PA10_TWD            EQU (AT91C_PIO_PA10) ;-  TWI Two-wire Serial Data

-AT91C_PIO_PA11            EQU (1 << 11) ;- Pin Controlled by PA11

-AT91C_PA11_TWCK           EQU (AT91C_PIO_PA11) ;-  TWI Two-wire Serial Clock

-AT91C_PIO_PA12            EQU (1 << 12) ;- Pin Controlled by PA12

-AT91C_PA12_NPCS00         EQU (AT91C_PIO_PA12) ;-  SPI 0 Peripheral Chip Select 0

-AT91C_PIO_PA13            EQU (1 << 13) ;- Pin Controlled by PA13

-AT91C_PA13_NPCS01         EQU (AT91C_PIO_PA13) ;-  SPI 0 Peripheral Chip Select 1

-AT91C_PA13_PCK1           EQU (AT91C_PIO_PA13) ;-  PMC Programmable Clock Output 1

-AT91C_PIO_PA14            EQU (1 << 14) ;- Pin Controlled by PA14

-AT91C_PA14_NPCS02         EQU (AT91C_PIO_PA14) ;-  SPI 0 Peripheral Chip Select 2

-AT91C_PA14_IRQ1           EQU (AT91C_PIO_PA14) ;-  External Interrupt 1

-AT91C_PIO_PA15            EQU (1 << 15) ;- Pin Controlled by PA15

-AT91C_PA15_NPCS03         EQU (AT91C_PIO_PA15) ;-  SPI 0 Peripheral Chip Select 3

-AT91C_PA15_TCLK2          EQU (AT91C_PIO_PA15) ;-  Timer Counter 2 external clock input

-AT91C_PIO_PA16            EQU (1 << 16) ;- Pin Controlled by PA16

-AT91C_PA16_MISO0          EQU (AT91C_PIO_PA16) ;-  SPI 0 Master In Slave

-AT91C_PIO_PA17            EQU (1 << 17) ;- Pin Controlled by PA17

-AT91C_PA17_MOSI0          EQU (AT91C_PIO_PA17) ;-  SPI 0 Master Out Slave

-AT91C_PIO_PA18            EQU (1 << 18) ;- Pin Controlled by PA18

-AT91C_PA18_SPCK0          EQU (AT91C_PIO_PA18) ;-  SPI 0 Serial Clock

-AT91C_PIO_PA19            EQU (1 << 19) ;- Pin Controlled by PA19

-AT91C_PA19_CANRX          EQU (AT91C_PIO_PA19) ;-  CAN Receive

-AT91C_PIO_PA2             EQU (1 <<  2) ;- Pin Controlled by PA2

-AT91C_PA2_SCK0            EQU (AT91C_PIO_PA2) ;-  USART 0 Serial Clock

-AT91C_PA2_NPCS11          EQU (AT91C_PIO_PA2) ;-  SPI 1 Peripheral Chip Select 1

-AT91C_PIO_PA20            EQU (1 << 20) ;- Pin Controlled by PA20

-AT91C_PA20_CANTX          EQU (AT91C_PIO_PA20) ;-  CAN Transmit

-AT91C_PIO_PA21            EQU (1 << 21) ;- Pin Controlled by PA21

-AT91C_PA21_TF             EQU (AT91C_PIO_PA21) ;-  SSC Transmit Frame Sync

-AT91C_PA21_NPCS10         EQU (AT91C_PIO_PA21) ;-  SPI 1 Peripheral Chip Select 0

-AT91C_PIO_PA22            EQU (1 << 22) ;- Pin Controlled by PA22

-AT91C_PA22_TK             EQU (AT91C_PIO_PA22) ;-  SSC Transmit Clock

-AT91C_PA22_SPCK1          EQU (AT91C_PIO_PA22) ;-  SPI 1 Serial Clock

-AT91C_PIO_PA23            EQU (1 << 23) ;- Pin Controlled by PA23

-AT91C_PA23_TD             EQU (AT91C_PIO_PA23) ;-  SSC Transmit data

-AT91C_PA23_MOSI1          EQU (AT91C_PIO_PA23) ;-  SPI 1 Master Out Slave

-AT91C_PIO_PA24            EQU (1 << 24) ;- Pin Controlled by PA24

-AT91C_PA24_RD             EQU (AT91C_PIO_PA24) ;-  SSC Receive Data

-AT91C_PA24_MISO1          EQU (AT91C_PIO_PA24) ;-  SPI 1 Master In Slave

-AT91C_PIO_PA25            EQU (1 << 25) ;- Pin Controlled by PA25

-AT91C_PA25_RK             EQU (AT91C_PIO_PA25) ;-  SSC Receive Clock

-AT91C_PA25_NPCS11         EQU (AT91C_PIO_PA25) ;-  SPI 1 Peripheral Chip Select 1

-AT91C_PIO_PA26            EQU (1 << 26) ;- Pin Controlled by PA26

-AT91C_PA26_RF             EQU (AT91C_PIO_PA26) ;-  SSC Receive Frame Sync

-AT91C_PA26_NPCS12         EQU (AT91C_PIO_PA26) ;-  SPI 1 Peripheral Chip Select 2

-AT91C_PIO_PA27            EQU (1 << 27) ;- Pin Controlled by PA27

-AT91C_PA27_DRXD           EQU (AT91C_PIO_PA27) ;-  DBGU Debug Receive Data

-AT91C_PA27_PCK3           EQU (AT91C_PIO_PA27) ;-  PMC Programmable Clock Output 3

-AT91C_PIO_PA28            EQU (1 << 28) ;- Pin Controlled by PA28

-AT91C_PA28_DTXD           EQU (AT91C_PIO_PA28) ;-  DBGU Debug Transmit Data

-AT91C_PIO_PA29            EQU (1 << 29) ;- Pin Controlled by PA29

-AT91C_PA29_FIQ            EQU (AT91C_PIO_PA29) ;-  AIC Fast Interrupt Input

-AT91C_PA29_NPCS13         EQU (AT91C_PIO_PA29) ;-  SPI 1 Peripheral Chip Select 3

-AT91C_PIO_PA3             EQU (1 <<  3) ;- Pin Controlled by PA3

-AT91C_PA3_RTS0            EQU (AT91C_PIO_PA3) ;-  USART 0 Ready To Send

-AT91C_PA3_NPCS12          EQU (AT91C_PIO_PA3) ;-  SPI 1 Peripheral Chip Select 2

-AT91C_PIO_PA30            EQU (1 << 30) ;- Pin Controlled by PA30

-AT91C_PA30_IRQ0           EQU (AT91C_PIO_PA30) ;-  External Interrupt 0

-AT91C_PA30_PCK2           EQU (AT91C_PIO_PA30) ;-  PMC Programmable Clock Output 2

-AT91C_PIO_PA4             EQU (1 <<  4) ;- Pin Controlled by PA4

-AT91C_PA4_CTS0            EQU (AT91C_PIO_PA4) ;-  USART 0 Clear To Send

-AT91C_PA4_NPCS13          EQU (AT91C_PIO_PA4) ;-  SPI 1 Peripheral Chip Select 3

-AT91C_PIO_PA5             EQU (1 <<  5) ;- Pin Controlled by PA5

-AT91C_PA5_RXD1            EQU (AT91C_PIO_PA5) ;-  USART 1 Receive Data

-AT91C_PIO_PA6             EQU (1 <<  6) ;- Pin Controlled by PA6

-AT91C_PA6_TXD1            EQU (AT91C_PIO_PA6) ;-  USART 1 Transmit Data

-AT91C_PIO_PA7             EQU (1 <<  7) ;- Pin Controlled by PA7

-AT91C_PA7_SCK1            EQU (AT91C_PIO_PA7) ;-  USART 1 Serial Clock

-AT91C_PA7_NPCS01          EQU (AT91C_PIO_PA7) ;-  SPI 0 Peripheral Chip Select 1

-AT91C_PIO_PA8             EQU (1 <<  8) ;- Pin Controlled by PA8

-AT91C_PA8_RTS1            EQU (AT91C_PIO_PA8) ;-  USART 1 Ready To Send

-AT91C_PA8_NPCS02          EQU (AT91C_PIO_PA8) ;-  SPI 0 Peripheral Chip Select 2

-AT91C_PIO_PA9             EQU (1 <<  9) ;- Pin Controlled by PA9

-AT91C_PA9_CTS1            EQU (AT91C_PIO_PA9) ;-  USART 1 Clear To Send

-AT91C_PA9_NPCS03          EQU (AT91C_PIO_PA9) ;-  SPI 0 Peripheral Chip Select 3

-AT91C_PIO_PB0             EQU (1 <<  0) ;- Pin Controlled by PB0

-AT91C_PB0_ETXCK_EREFCK    EQU (AT91C_PIO_PB0) ;-  Ethernet MAC Transmit Clock/Reference Clock

-AT91C_PB0_PCK0            EQU (AT91C_PIO_PB0) ;-  PMC Programmable Clock Output 0

-AT91C_PIO_PB1             EQU (1 <<  1) ;- Pin Controlled by PB1

-AT91C_PB1_ETXEN           EQU (AT91C_PIO_PB1) ;-  Ethernet MAC Transmit Enable

-AT91C_PIO_PB10            EQU (1 << 10) ;- Pin Controlled by PB10

-AT91C_PB10_ETX2           EQU (AT91C_PIO_PB10) ;-  Ethernet MAC Transmit Data 2

-AT91C_PB10_NPCS11         EQU (AT91C_PIO_PB10) ;-  SPI 1 Peripheral Chip Select 1

-AT91C_PIO_PB11            EQU (1 << 11) ;- Pin Controlled by PB11

-AT91C_PB11_ETX3           EQU (AT91C_PIO_PB11) ;-  Ethernet MAC Transmit Data 3

-AT91C_PB11_NPCS12         EQU (AT91C_PIO_PB11) ;-  SPI 1 Peripheral Chip Select 2

-AT91C_PIO_PB12            EQU (1 << 12) ;- Pin Controlled by PB12

-AT91C_PB12_ETXER          EQU (AT91C_PIO_PB12) ;-  Ethernet MAC Transmikt Coding Error

-AT91C_PB12_TCLK0          EQU (AT91C_PIO_PB12) ;-  Timer Counter 0 external clock input

-AT91C_PIO_PB13            EQU (1 << 13) ;- Pin Controlled by PB13

-AT91C_PB13_ERX2           EQU (AT91C_PIO_PB13) ;-  Ethernet MAC Receive Data 2

-AT91C_PB13_NPCS01         EQU (AT91C_PIO_PB13) ;-  SPI 0 Peripheral Chip Select 1

-AT91C_PIO_PB14            EQU (1 << 14) ;- Pin Controlled by PB14

-AT91C_PB14_ERX3           EQU (AT91C_PIO_PB14) ;-  Ethernet MAC Receive Data 3

-AT91C_PB14_NPCS02         EQU (AT91C_PIO_PB14) ;-  SPI 0 Peripheral Chip Select 2

-AT91C_PIO_PB15            EQU (1 << 15) ;- Pin Controlled by PB15

-AT91C_PB15_ERXDV          EQU (AT91C_PIO_PB15) ;-  Ethernet MAC Receive Data Valid

-AT91C_PIO_PB16            EQU (1 << 16) ;- Pin Controlled by PB16

-AT91C_PB16_ECOL           EQU (AT91C_PIO_PB16) ;-  Ethernet MAC Collision Detected

-AT91C_PB16_NPCS13         EQU (AT91C_PIO_PB16) ;-  SPI 1 Peripheral Chip Select 3

-AT91C_PIO_PB17            EQU (1 << 17) ;- Pin Controlled by PB17

-AT91C_PB17_ERXCK          EQU (AT91C_PIO_PB17) ;-  Ethernet MAC Receive Clock

-AT91C_PB17_NPCS03         EQU (AT91C_PIO_PB17) ;-  SPI 0 Peripheral Chip Select 3

-AT91C_PIO_PB18            EQU (1 << 18) ;- Pin Controlled by PB18

-AT91C_PB18_EF100          EQU (AT91C_PIO_PB18) ;-  Ethernet MAC Force 100 Mbits/sec

-AT91C_PB18_ADTRG          EQU (AT91C_PIO_PB18) ;-  ADC External Trigger

-AT91C_PIO_PB19            EQU (1 << 19) ;- Pin Controlled by PB19

-AT91C_PB19_PWM0           EQU (AT91C_PIO_PB19) ;-  PWM Channel 0

-AT91C_PB19_TCLK1          EQU (AT91C_PIO_PB19) ;-  Timer Counter 1 external clock input

-AT91C_PIO_PB2             EQU (1 <<  2) ;- Pin Controlled by PB2

-AT91C_PB2_ETX0            EQU (AT91C_PIO_PB2) ;-  Ethernet MAC Transmit Data 0

-AT91C_PIO_PB20            EQU (1 << 20) ;- Pin Controlled by PB20

-AT91C_PB20_PWM1           EQU (AT91C_PIO_PB20) ;-  PWM Channel 1

-AT91C_PB20_PCK0           EQU (AT91C_PIO_PB20) ;-  PMC Programmable Clock Output 0

-AT91C_PIO_PB21            EQU (1 << 21) ;- Pin Controlled by PB21

-AT91C_PB21_PWM2           EQU (AT91C_PIO_PB21) ;-  PWM Channel 2

-AT91C_PB21_PCK1           EQU (AT91C_PIO_PB21) ;-  PMC Programmable Clock Output 1

-AT91C_PIO_PB22            EQU (1 << 22) ;- Pin Controlled by PB22

-AT91C_PB22_PWM3           EQU (AT91C_PIO_PB22) ;-  PWM Channel 3

-AT91C_PB22_PCK2           EQU (AT91C_PIO_PB22) ;-  PMC Programmable Clock Output 2

-AT91C_PIO_PB23            EQU (1 << 23) ;- Pin Controlled by PB23

-AT91C_PB23_TIOA0          EQU (AT91C_PIO_PB23) ;-  Timer Counter 0 Multipurpose Timer I/O Pin A

-AT91C_PB23_DCD1           EQU (AT91C_PIO_PB23) ;-  USART 1 Data Carrier Detect

-AT91C_PIO_PB24            EQU (1 << 24) ;- Pin Controlled by PB24

-AT91C_PB24_TIOB0          EQU (AT91C_PIO_PB24) ;-  Timer Counter 0 Multipurpose Timer I/O Pin B

-AT91C_PB24_DSR1           EQU (AT91C_PIO_PB24) ;-  USART 1 Data Set ready

-AT91C_PIO_PB25            EQU (1 << 25) ;- Pin Controlled by PB25

-AT91C_PB25_TIOA1          EQU (AT91C_PIO_PB25) ;-  Timer Counter 1 Multipurpose Timer I/O Pin A

-AT91C_PB25_DTR1           EQU (AT91C_PIO_PB25) ;-  USART 1 Data Terminal ready

-AT91C_PIO_PB26            EQU (1 << 26) ;- Pin Controlled by PB26

-AT91C_PB26_TIOB1          EQU (AT91C_PIO_PB26) ;-  Timer Counter 1 Multipurpose Timer I/O Pin B

-AT91C_PB26_RI1            EQU (AT91C_PIO_PB26) ;-  USART 1 Ring Indicator

-AT91C_PIO_PB27            EQU (1 << 27) ;- Pin Controlled by PB27

-AT91C_PB27_TIOA2          EQU (AT91C_PIO_PB27) ;-  Timer Counter 2 Multipurpose Timer I/O Pin A

-AT91C_PB27_PWM0           EQU (AT91C_PIO_PB27) ;-  PWM Channel 0

-AT91C_PIO_PB28            EQU (1 << 28) ;- Pin Controlled by PB28

-AT91C_PB28_TIOB2          EQU (AT91C_PIO_PB28) ;-  Timer Counter 2 Multipurpose Timer I/O Pin B

-AT91C_PB28_PWM1           EQU (AT91C_PIO_PB28) ;-  PWM Channel 1

-AT91C_PIO_PB29            EQU (1 << 29) ;- Pin Controlled by PB29

-AT91C_PB29_PCK1           EQU (AT91C_PIO_PB29) ;-  PMC Programmable Clock Output 1

-AT91C_PB29_PWM2           EQU (AT91C_PIO_PB29) ;-  PWM Channel 2

-AT91C_PIO_PB3             EQU (1 <<  3) ;- Pin Controlled by PB3

-AT91C_PB3_ETX1            EQU (AT91C_PIO_PB3) ;-  Ethernet MAC Transmit Data 1

-AT91C_PIO_PB30            EQU (1 << 30) ;- Pin Controlled by PB30

-AT91C_PB30_PCK2           EQU (AT91C_PIO_PB30) ;-  PMC Programmable Clock Output 2

-AT91C_PB30_PWM3           EQU (AT91C_PIO_PB30) ;-  PWM Channel 3

-AT91C_PIO_PB4             EQU (1 <<  4) ;- Pin Controlled by PB4

-AT91C_PB4_ECRS_ECRSDV     EQU (AT91C_PIO_PB4) ;-  Ethernet MAC Carrier Sense/Carrier Sense and Data Valid

-AT91C_PIO_PB5             EQU (1 <<  5) ;- Pin Controlled by PB5

-AT91C_PB5_ERX0            EQU (AT91C_PIO_PB5) ;-  Ethernet MAC Receive Data 0

-AT91C_PIO_PB6             EQU (1 <<  6) ;- Pin Controlled by PB6

-AT91C_PB6_ERX1            EQU (AT91C_PIO_PB6) ;-  Ethernet MAC Receive Data 1

-AT91C_PIO_PB7             EQU (1 <<  7) ;- Pin Controlled by PB7

-AT91C_PB7_ERXER           EQU (AT91C_PIO_PB7) ;-  Ethernet MAC Receive Error

-AT91C_PIO_PB8             EQU (1 <<  8) ;- Pin Controlled by PB8

-AT91C_PB8_EMDC            EQU (AT91C_PIO_PB8) ;-  Ethernet MAC Management Data Clock

-AT91C_PIO_PB9             EQU (1 <<  9) ;- Pin Controlled by PB9

-AT91C_PB9_EMDIO           EQU (AT91C_PIO_PB9) ;-  Ethernet MAC Management Data Input/Output

-

-// - *****************************************************************************

-// -               PERIPHERAL ID DEFINITIONS FOR AT91SAM7X128

-// - *****************************************************************************

-AT91C_ID_FIQ              EQU ( 0) ;- Advanced Interrupt Controller (FIQ)

-AT91C_ID_SYS              EQU ( 1) ;- System Peripheral

-AT91C_ID_PIOA             EQU ( 2) ;- Parallel IO Controller A

-AT91C_ID_PIOB             EQU ( 3) ;- Parallel IO Controller B

-AT91C_ID_SPI0             EQU ( 4) ;- Serial Peripheral Interface 0

-AT91C_ID_SPI1             EQU ( 5) ;- Serial Peripheral Interface 1

-AT91C_ID_US0              EQU ( 6) ;- USART 0

-AT91C_ID_US1              EQU ( 7) ;- USART 1

-AT91C_ID_SSC              EQU ( 8) ;- Serial Synchronous Controller

-AT91C_ID_TWI              EQU ( 9) ;- Two-Wire Interface

-AT91C_ID_PWMC             EQU (10) ;- PWM Controller

-AT91C_ID_UDP              EQU (11) ;- USB Device Port

-AT91C_ID_TC0              EQU (12) ;- Timer Counter 0

-AT91C_ID_TC1              EQU (13) ;- Timer Counter 1

-AT91C_ID_TC2              EQU (14) ;- Timer Counter 2

-AT91C_ID_CAN              EQU (15) ;- Control Area Network Controller

-AT91C_ID_EMAC             EQU (16) ;- Ethernet MAC

-AT91C_ID_ADC              EQU (17) ;- Analog-to-Digital Converter

-AT91C_ID_AES              EQU (18) ;- Advanced Encryption Standard 128-bit

-AT91C_ID_TDES             EQU (19) ;- Triple Data Encryption Standard

-AT91C_ID_20_Reserved      EQU (20) ;- Reserved

-AT91C_ID_21_Reserved      EQU (21) ;- Reserved

-AT91C_ID_22_Reserved      EQU (22) ;- Reserved

-AT91C_ID_23_Reserved      EQU (23) ;- Reserved

-AT91C_ID_24_Reserved      EQU (24) ;- Reserved

-AT91C_ID_25_Reserved      EQU (25) ;- Reserved

-AT91C_ID_26_Reserved      EQU (26) ;- Reserved

-AT91C_ID_27_Reserved      EQU (27) ;- Reserved

-AT91C_ID_28_Reserved      EQU (28) ;- Reserved

-AT91C_ID_29_Reserved      EQU (29) ;- Reserved

-AT91C_ID_IRQ0             EQU (30) ;- Advanced Interrupt Controller (IRQ0)

-AT91C_ID_IRQ1             EQU (31) ;- Advanced Interrupt Controller (IRQ1)

-

-// - *****************************************************************************

-// -               BASE ADDRESS DEFINITIONS FOR AT91SAM7X128

-// - *****************************************************************************

-AT91C_BASE_SYS            EQU (0xFFFFF000) ;- (SYS) Base Address

-AT91C_BASE_AIC            EQU (0xFFFFF000) ;- (AIC) Base Address

-AT91C_BASE_PDC_DBGU       EQU (0xFFFFF300) ;- (PDC_DBGU) Base Address

-AT91C_BASE_DBGU           EQU (0xFFFFF200) ;- (DBGU) Base Address

-AT91C_BASE_PIOA           EQU (0xFFFFF400) ;- (PIOA) Base Address

-AT91C_BASE_PIOB           EQU (0xFFFFF600) ;- (PIOB) Base Address

-AT91C_BASE_CKGR           EQU (0xFFFFFC20) ;- (CKGR) Base Address

-AT91C_BASE_PMC            EQU (0xFFFFFC00) ;- (PMC) Base Address

-AT91C_BASE_RSTC           EQU (0xFFFFFD00) ;- (RSTC) Base Address

-AT91C_BASE_RTTC           EQU (0xFFFFFD20) ;- (RTTC) Base Address

-AT91C_BASE_PITC           EQU (0xFFFFFD30) ;- (PITC) Base Address

-AT91C_BASE_WDTC           EQU (0xFFFFFD40) ;- (WDTC) Base Address

-AT91C_BASE_VREG           EQU (0xFFFFFD60) ;- (VREG) Base Address

-AT91C_BASE_MC             EQU (0xFFFFFF00) ;- (MC) Base Address

-AT91C_BASE_PDC_SPI1       EQU (0xFFFE4100) ;- (PDC_SPI1) Base Address

-AT91C_BASE_SPI1           EQU (0xFFFE4000) ;- (SPI1) Base Address

-AT91C_BASE_PDC_SPI0       EQU (0xFFFE0100) ;- (PDC_SPI0) Base Address

-AT91C_BASE_SPI0           EQU (0xFFFE0000) ;- (SPI0) Base Address

-AT91C_BASE_PDC_US1        EQU (0xFFFC4100) ;- (PDC_US1) Base Address

-AT91C_BASE_US1            EQU (0xFFFC4000) ;- (US1) Base Address

-AT91C_BASE_PDC_US0        EQU (0xFFFC0100) ;- (PDC_US0) Base Address

-AT91C_BASE_US0            EQU (0xFFFC0000) ;- (US0) Base Address

-AT91C_BASE_PDC_SSC        EQU (0xFFFD4100) ;- (PDC_SSC) Base Address

-AT91C_BASE_SSC            EQU (0xFFFD4000) ;- (SSC) Base Address

-AT91C_BASE_TWI            EQU (0xFFFB8000) ;- (TWI) Base Address

-AT91C_BASE_PWMC_CH3       EQU (0xFFFCC260) ;- (PWMC_CH3) Base Address

-AT91C_BASE_PWMC_CH2       EQU (0xFFFCC240) ;- (PWMC_CH2) Base Address

-AT91C_BASE_PWMC_CH1       EQU (0xFFFCC220) ;- (PWMC_CH1) Base Address

-AT91C_BASE_PWMC_CH0       EQU (0xFFFCC200) ;- (PWMC_CH0) Base Address

-AT91C_BASE_PWMC           EQU (0xFFFCC000) ;- (PWMC) Base Address

-AT91C_BASE_UDP            EQU (0xFFFB0000) ;- (UDP) Base Address

-AT91C_BASE_TC0            EQU (0xFFFA0000) ;- (TC0) Base Address

-AT91C_BASE_TC1            EQU (0xFFFA0040) ;- (TC1) Base Address

-AT91C_BASE_TC2            EQU (0xFFFA0080) ;- (TC2) Base Address

-AT91C_BASE_TCB            EQU (0xFFFA0000) ;- (TCB) Base Address

-AT91C_BASE_CAN_MB0        EQU (0xFFFD0200) ;- (CAN_MB0) Base Address

-AT91C_BASE_CAN_MB1        EQU (0xFFFD0220) ;- (CAN_MB1) Base Address

-AT91C_BASE_CAN_MB2        EQU (0xFFFD0240) ;- (CAN_MB2) Base Address

-AT91C_BASE_CAN_MB3        EQU (0xFFFD0260) ;- (CAN_MB3) Base Address

-AT91C_BASE_CAN_MB4        EQU (0xFFFD0280) ;- (CAN_MB4) Base Address

-AT91C_BASE_CAN_MB5        EQU (0xFFFD02A0) ;- (CAN_MB5) Base Address

-AT91C_BASE_CAN_MB6        EQU (0xFFFD02C0) ;- (CAN_MB6) Base Address

-AT91C_BASE_CAN_MB7        EQU (0xFFFD02E0) ;- (CAN_MB7) Base Address

-AT91C_BASE_CAN            EQU (0xFFFD0000) ;- (CAN) Base Address

-AT91C_BASE_EMAC           EQU (0xFFFDC000) ;- (EMAC) Base Address

-AT91C_BASE_PDC_ADC        EQU (0xFFFD8100) ;- (PDC_ADC) Base Address

-AT91C_BASE_ADC            EQU (0xFFFD8000) ;- (ADC) Base Address

-AT91C_BASE_PDC_AES        EQU (0xFFFA4100) ;- (PDC_AES) Base Address

-AT91C_BASE_AES            EQU (0xFFFA4000) ;- (AES) Base Address

-AT91C_BASE_PDC_TDES       EQU (0xFFFA8100) ;- (PDC_TDES) Base Address

-AT91C_BASE_TDES           EQU (0xFFFA8000) ;- (TDES) Base Address

-

-// - *****************************************************************************

-// -               MEMORY MAPPING DEFINITIONS FOR AT91SAM7X128

-// - *****************************************************************************

-AT91C_ISRAM               EQU (0x00200000) ;- Internal SRAM base address

-AT91C_ISRAM_SIZE          EQU (0x00008000) ;- Internal SRAM size in byte (32 Kbyte)

-AT91C_IFLASH              EQU (0x00100000) ;- Internal ROM base address

-AT91C_IFLASH_SIZE         EQU (0x00020000) ;- Internal ROM size in byte (128 Kbyte)

-#endif /* __IAR_SYSTEMS_ASM__ */

-

-

-#endif /* AT91SAM7X128_H */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x256.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x256.h
deleted file mode 100644
index 742f25c..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/ioat91sam7x256.h
+++ /dev/null
@@ -1,4700 +0,0 @@
-// - ----------------------------------------------------------------------------

-// -          ATMEL Microcontroller Software Support  -  ROUSSET  -

-// - ----------------------------------------------------------------------------

-// -  DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR

-// -  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

-// -  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE

-// -  DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,

-// -  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

-// -  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,

-// -  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF

-// -  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

-// -  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,

-// -  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-// - ----------------------------------------------------------------------------

-// - File Name           : AT91SAM7X256.h

-// - Object              : AT91SAM7X256 definitions

-// - Generated           : AT91 SW Application Group  05/20/2005 (16:22:29)

-// - 

-// - CVS Reference       : /AT91SAM7X256.pl/1.11/Tue May 10 12:15:32 2005//

-// - CVS Reference       : /SYS_SAM7X.pl/1.3/Tue Feb  1 17:01:43 2005//

-// - CVS Reference       : /MC_SAM7X.pl/1.2/Fri May 20 14:13:04 2005//

-// - CVS Reference       : /PMC_SAM7X.pl/1.4/Tue Feb  8 13:58:10 2005//

-// - CVS Reference       : /RSTC_SAM7X.pl/1.1/Tue Feb  1 16:16:26 2005//

-// - CVS Reference       : /UDP_SAM7X.pl/1.1/Tue May 10 11:35:35 2005//

-// - CVS Reference       : /PWM_SAM7X.pl/1.1/Tue May 10 11:53:07 2005//

-// - CVS Reference       : /AIC_6075B.pl/1.3/Fri May 20 14:01:30 2005//

-// - CVS Reference       : /PIO_6057A.pl/1.2/Thu Feb  3 10:18:28 2005//

-// - CVS Reference       : /RTTC_6081A.pl/1.2/Tue Nov  9 14:43:58 2004//

-// - CVS Reference       : /PITC_6079A.pl/1.2/Tue Nov  9 14:43:56 2004//

-// - CVS Reference       : /WDTC_6080A.pl/1.3/Tue Nov  9 14:44:00 2004//

-// - CVS Reference       : /VREG_6085B.pl/1.1/Tue Feb  1 16:05:48 2005//

-// - CVS Reference       : /PDC_6074C.pl/1.2/Thu Feb  3 08:48:54 2005//

-// - CVS Reference       : /DBGU_6059D.pl/1.1/Mon Jan 31 13:15:32 2005//

-// - CVS Reference       : /SPI_6088D.pl/1.3/Fri May 20 14:08:59 2005//

-// - CVS Reference       : /US_6089C.pl/1.1/Mon Jul 12 18:23:26 2004//

-// - CVS Reference       : /SSC_6078A.pl/1.1/Tue Jul 13 07:45:40 2004//

-// - CVS Reference       : /TWI_6061A.pl/1.1/Tue Jul 13 07:38:06 2004//

-// - CVS Reference       : /TC_6082A.pl/1.7/Fri Mar 11 12:52:17 2005//

-// - CVS Reference       : /CAN_6019B.pl/1.1/Tue Mar  8 12:42:22 2005//

-// - CVS Reference       : /EMACB_6119A.pl/1.5/Thu Feb  3 15:52:04 2005//

-// - CVS Reference       : /ADC_6051C.pl/1.1/Fri Oct 17 09:12:38 2003//

-// - CVS Reference       : /AES_6149A.pl/1.10/Mon Feb  7 09:44:25 2005//

-// - CVS Reference       : /DES3_6150A.pl/1.1/Mon Jan 17 08:34:31 2005//

-// - ----------------------------------------------------------------------------

-

-#ifndef AT91SAM7X256_H

-#define AT91SAM7X256_H

-

-#ifdef __IAR_SYSTEMS_ICC__

-

-typedef volatile unsigned int AT91_REG;// Hardware register definition

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR System Peripherals

-// *****************************************************************************

-typedef struct _AT91S_SYS {

-	AT91_REG	 AIC_SMR[32]; 	// Source Mode Register

-	AT91_REG	 AIC_SVR[32]; 	// Source Vector Register

-	AT91_REG	 AIC_IVR; 	// IRQ Vector Register

-	AT91_REG	 AIC_FVR; 	// FIQ Vector Register

-	AT91_REG	 AIC_ISR; 	// Interrupt Status Register

-	AT91_REG	 AIC_IPR; 	// Interrupt Pending Register

-	AT91_REG	 AIC_IMR; 	// Interrupt Mask Register

-	AT91_REG	 AIC_CISR; 	// Core Interrupt Status Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 AIC_IECR; 	// Interrupt Enable Command Register

-	AT91_REG	 AIC_IDCR; 	// Interrupt Disable Command Register

-	AT91_REG	 AIC_ICCR; 	// Interrupt Clear Command Register

-	AT91_REG	 AIC_ISCR; 	// Interrupt Set Command Register

-	AT91_REG	 AIC_EOICR; 	// End of Interrupt Command Register

-	AT91_REG	 AIC_SPU; 	// Spurious Vector Register

-	AT91_REG	 AIC_DCR; 	// Debug Control Register (Protect)

-	AT91_REG	 Reserved1[1]; 	// 

-	AT91_REG	 AIC_FFER; 	// Fast Forcing Enable Register

-	AT91_REG	 AIC_FFDR; 	// Fast Forcing Disable Register

-	AT91_REG	 AIC_FFSR; 	// Fast Forcing Status Register

-	AT91_REG	 Reserved2[45]; 	// 

-	AT91_REG	 DBGU_CR; 	// Control Register

-	AT91_REG	 DBGU_MR; 	// Mode Register

-	AT91_REG	 DBGU_IER; 	// Interrupt Enable Register

-	AT91_REG	 DBGU_IDR; 	// Interrupt Disable Register

-	AT91_REG	 DBGU_IMR; 	// Interrupt Mask Register

-	AT91_REG	 DBGU_CSR; 	// Channel Status Register

-	AT91_REG	 DBGU_RHR; 	// Receiver Holding Register

-	AT91_REG	 DBGU_THR; 	// Transmitter Holding Register

-	AT91_REG	 DBGU_BRGR; 	// Baud Rate Generator Register

-	AT91_REG	 Reserved3[7]; 	// 

-	AT91_REG	 DBGU_CIDR; 	// Chip ID Register

-	AT91_REG	 DBGU_EXID; 	// Chip ID Extension Register

-	AT91_REG	 DBGU_FNTR; 	// Force NTRST Register

-	AT91_REG	 Reserved4[45]; 	// 

-	AT91_REG	 DBGU_RPR; 	// Receive Pointer Register

-	AT91_REG	 DBGU_RCR; 	// Receive Counter Register

-	AT91_REG	 DBGU_TPR; 	// Transmit Pointer Register

-	AT91_REG	 DBGU_TCR; 	// Transmit Counter Register

-	AT91_REG	 DBGU_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 DBGU_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 DBGU_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 DBGU_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 DBGU_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 DBGU_PTSR; 	// PDC Transfer Status Register

-	AT91_REG	 Reserved5[54]; 	// 

-	AT91_REG	 PIOA_PER; 	// PIO Enable Register

-	AT91_REG	 PIOA_PDR; 	// PIO Disable Register

-	AT91_REG	 PIOA_PSR; 	// PIO Status Register

-	AT91_REG	 Reserved6[1]; 	// 

-	AT91_REG	 PIOA_OER; 	// Output Enable Register

-	AT91_REG	 PIOA_ODR; 	// Output Disable Registerr

-	AT91_REG	 PIOA_OSR; 	// Output Status Register

-	AT91_REG	 Reserved7[1]; 	// 

-	AT91_REG	 PIOA_IFER; 	// Input Filter Enable Register

-	AT91_REG	 PIOA_IFDR; 	// Input Filter Disable Register

-	AT91_REG	 PIOA_IFSR; 	// Input Filter Status Register

-	AT91_REG	 Reserved8[1]; 	// 

-	AT91_REG	 PIOA_SODR; 	// Set Output Data Register

-	AT91_REG	 PIOA_CODR; 	// Clear Output Data Register

-	AT91_REG	 PIOA_ODSR; 	// Output Data Status Register

-	AT91_REG	 PIOA_PDSR; 	// Pin Data Status Register

-	AT91_REG	 PIOA_IER; 	// Interrupt Enable Register

-	AT91_REG	 PIOA_IDR; 	// Interrupt Disable Register

-	AT91_REG	 PIOA_IMR; 	// Interrupt Mask Register

-	AT91_REG	 PIOA_ISR; 	// Interrupt Status Register

-	AT91_REG	 PIOA_MDER; 	// Multi-driver Enable Register

-	AT91_REG	 PIOA_MDDR; 	// Multi-driver Disable Register

-	AT91_REG	 PIOA_MDSR; 	// Multi-driver Status Register

-	AT91_REG	 Reserved9[1]; 	// 

-	AT91_REG	 PIOA_PPUDR; 	// Pull-up Disable Register

-	AT91_REG	 PIOA_PPUER; 	// Pull-up Enable Register

-	AT91_REG	 PIOA_PPUSR; 	// Pull-up Status Register

-	AT91_REG	 Reserved10[1]; 	// 

-	AT91_REG	 PIOA_ASR; 	// Select A Register

-	AT91_REG	 PIOA_BSR; 	// Select B Register

-	AT91_REG	 PIOA_ABSR; 	// AB Select Status Register

-	AT91_REG	 Reserved11[9]; 	// 

-	AT91_REG	 PIOA_OWER; 	// Output Write Enable Register

-	AT91_REG	 PIOA_OWDR; 	// Output Write Disable Register

-	AT91_REG	 PIOA_OWSR; 	// Output Write Status Register

-	AT91_REG	 Reserved12[85]; 	// 

-	AT91_REG	 PIOB_PER; 	// PIO Enable Register

-	AT91_REG	 PIOB_PDR; 	// PIO Disable Register

-	AT91_REG	 PIOB_PSR; 	// PIO Status Register

-	AT91_REG	 Reserved13[1]; 	// 

-	AT91_REG	 PIOB_OER; 	// Output Enable Register

-	AT91_REG	 PIOB_ODR; 	// Output Disable Registerr

-	AT91_REG	 PIOB_OSR; 	// Output Status Register

-	AT91_REG	 Reserved14[1]; 	// 

-	AT91_REG	 PIOB_IFER; 	// Input Filter Enable Register

-	AT91_REG	 PIOB_IFDR; 	// Input Filter Disable Register

-	AT91_REG	 PIOB_IFSR; 	// Input Filter Status Register

-	AT91_REG	 Reserved15[1]; 	// 

-	AT91_REG	 PIOB_SODR; 	// Set Output Data Register

-	AT91_REG	 PIOB_CODR; 	// Clear Output Data Register

-	AT91_REG	 PIOB_ODSR; 	// Output Data Status Register

-	AT91_REG	 PIOB_PDSR; 	// Pin Data Status Register

-	AT91_REG	 PIOB_IER; 	// Interrupt Enable Register

-	AT91_REG	 PIOB_IDR; 	// Interrupt Disable Register

-	AT91_REG	 PIOB_IMR; 	// Interrupt Mask Register

-	AT91_REG	 PIOB_ISR; 	// Interrupt Status Register

-	AT91_REG	 PIOB_MDER; 	// Multi-driver Enable Register

-	AT91_REG	 PIOB_MDDR; 	// Multi-driver Disable Register

-	AT91_REG	 PIOB_MDSR; 	// Multi-driver Status Register

-	AT91_REG	 Reserved16[1]; 	// 

-	AT91_REG	 PIOB_PPUDR; 	// Pull-up Disable Register

-	AT91_REG	 PIOB_PPUER; 	// Pull-up Enable Register

-	AT91_REG	 PIOB_PPUSR; 	// Pull-up Status Register

-	AT91_REG	 Reserved17[1]; 	// 

-	AT91_REG	 PIOB_ASR; 	// Select A Register

-	AT91_REG	 PIOB_BSR; 	// Select B Register

-	AT91_REG	 PIOB_ABSR; 	// AB Select Status Register

-	AT91_REG	 Reserved18[9]; 	// 

-	AT91_REG	 PIOB_OWER; 	// Output Write Enable Register

-	AT91_REG	 PIOB_OWDR; 	// Output Write Disable Register

-	AT91_REG	 PIOB_OWSR; 	// Output Write Status Register

-	AT91_REG	 Reserved19[341]; 	// 

-	AT91_REG	 PMC_SCER; 	// System Clock Enable Register

-	AT91_REG	 PMC_SCDR; 	// System Clock Disable Register

-	AT91_REG	 PMC_SCSR; 	// System Clock Status Register

-	AT91_REG	 Reserved20[1]; 	// 

-	AT91_REG	 PMC_PCER; 	// Peripheral Clock Enable Register

-	AT91_REG	 PMC_PCDR; 	// Peripheral Clock Disable Register

-	AT91_REG	 PMC_PCSR; 	// Peripheral Clock Status Register

-	AT91_REG	 Reserved21[1]; 	// 

-	AT91_REG	 PMC_MOR; 	// Main Oscillator Register

-	AT91_REG	 PMC_MCFR; 	// Main Clock  Frequency Register

-	AT91_REG	 Reserved22[1]; 	// 

-	AT91_REG	 PMC_PLLR; 	// PLL Register

-	AT91_REG	 PMC_MCKR; 	// Master Clock Register

-	AT91_REG	 Reserved23[3]; 	// 

-	AT91_REG	 PMC_PCKR[4]; 	// Programmable Clock Register

-	AT91_REG	 Reserved24[4]; 	// 

-	AT91_REG	 PMC_IER; 	// Interrupt Enable Register

-	AT91_REG	 PMC_IDR; 	// Interrupt Disable Register

-	AT91_REG	 PMC_SR; 	// Status Register

-	AT91_REG	 PMC_IMR; 	// Interrupt Mask Register

-	AT91_REG	 Reserved25[36]; 	// 

-	AT91_REG	 RSTC_RCR; 	// Reset Control Register

-	AT91_REG	 RSTC_RSR; 	// Reset Status Register

-	AT91_REG	 RSTC_RMR; 	// Reset Mode Register

-	AT91_REG	 Reserved26[5]; 	// 

-	AT91_REG	 RTTC_RTMR; 	// Real-time Mode Register

-	AT91_REG	 RTTC_RTAR; 	// Real-time Alarm Register

-	AT91_REG	 RTTC_RTVR; 	// Real-time Value Register

-	AT91_REG	 RTTC_RTSR; 	// Real-time Status Register

-	AT91_REG	 PITC_PIMR; 	// Period Interval Mode Register

-	AT91_REG	 PITC_PISR; 	// Period Interval Status Register

-	AT91_REG	 PITC_PIVR; 	// Period Interval Value Register

-	AT91_REG	 PITC_PIIR; 	// Period Interval Image Register

-	AT91_REG	 WDTC_WDCR; 	// Watchdog Control Register

-	AT91_REG	 WDTC_WDMR; 	// Watchdog Mode Register

-	AT91_REG	 WDTC_WDSR; 	// Watchdog Status Register

-	AT91_REG	 Reserved27[5]; 	// 

-	AT91_REG	 VREG_MR; 	// Voltage Regulator Mode Register

-} AT91S_SYS, *AT91PS_SYS;

-

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Advanced Interrupt Controller

-// *****************************************************************************

-typedef struct _AT91S_AIC {

-	AT91_REG	 AIC_SMR[32]; 	// Source Mode Register

-	AT91_REG	 AIC_SVR[32]; 	// Source Vector Register

-	AT91_REG	 AIC_IVR; 	// IRQ Vector Register

-	AT91_REG	 AIC_FVR; 	// FIQ Vector Register

-	AT91_REG	 AIC_ISR; 	// Interrupt Status Register

-	AT91_REG	 AIC_IPR; 	// Interrupt Pending Register

-	AT91_REG	 AIC_IMR; 	// Interrupt Mask Register

-	AT91_REG	 AIC_CISR; 	// Core Interrupt Status Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 AIC_IECR; 	// Interrupt Enable Command Register

-	AT91_REG	 AIC_IDCR; 	// Interrupt Disable Command Register

-	AT91_REG	 AIC_ICCR; 	// Interrupt Clear Command Register

-	AT91_REG	 AIC_ISCR; 	// Interrupt Set Command Register

-	AT91_REG	 AIC_EOICR; 	// End of Interrupt Command Register

-	AT91_REG	 AIC_SPU; 	// Spurious Vector Register

-	AT91_REG	 AIC_DCR; 	// Debug Control Register (Protect)

-	AT91_REG	 Reserved1[1]; 	// 

-	AT91_REG	 AIC_FFER; 	// Fast Forcing Enable Register

-	AT91_REG	 AIC_FFDR; 	// Fast Forcing Disable Register

-	AT91_REG	 AIC_FFSR; 	// Fast Forcing Status Register

-} AT91S_AIC, *AT91PS_AIC;

-

-// -------- AIC_SMR : (AIC Offset: 0x0) Control Register -------- 

-#define AT91C_AIC_PRIOR       ((unsigned int) 0x7 <<  0) // (AIC) Priority Level

-#define 	AT91C_AIC_PRIOR_LOWEST               ((unsigned int) 0x0) // (AIC) Lowest priority level

-#define 	AT91C_AIC_PRIOR_HIGHEST              ((unsigned int) 0x7) // (AIC) Highest priority level

-#define AT91C_AIC_SRCTYPE     ((unsigned int) 0x3 <<  5) // (AIC) Interrupt Source Type

-#define 	AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL       ((unsigned int) 0x0 <<  5) // (AIC) Internal Sources Code Label High-level Sensitive

-#define 	AT91C_AIC_SRCTYPE_EXT_LOW_LEVEL        ((unsigned int) 0x0 <<  5) // (AIC) External Sources Code Label Low-level Sensitive

-#define 	AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE    ((unsigned int) 0x1 <<  5) // (AIC) Internal Sources Code Label Positive Edge triggered

-#define 	AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE    ((unsigned int) 0x1 <<  5) // (AIC) External Sources Code Label Negative Edge triggered

-#define 	AT91C_AIC_SRCTYPE_HIGH_LEVEL           ((unsigned int) 0x2 <<  5) // (AIC) Internal Or External Sources Code Label High-level Sensitive

-#define 	AT91C_AIC_SRCTYPE_POSITIVE_EDGE        ((unsigned int) 0x3 <<  5) // (AIC) Internal Or External Sources Code Label Positive Edge triggered

-// -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register -------- 

-#define AT91C_AIC_NFIQ        ((unsigned int) 0x1 <<  0) // (AIC) NFIQ Status

-#define AT91C_AIC_NIRQ        ((unsigned int) 0x1 <<  1) // (AIC) NIRQ Status

-// -------- AIC_DCR : (AIC Offset: 0x138) AIC Debug Control Register (Protect) -------- 

-#define AT91C_AIC_DCR_PROT    ((unsigned int) 0x1 <<  0) // (AIC) Protection Mode

-#define AT91C_AIC_DCR_GMSK    ((unsigned int) 0x1 <<  1) // (AIC) General Mask

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Peripheral DMA Controller

-// *****************************************************************************

-typedef struct _AT91S_PDC {

-	AT91_REG	 PDC_RPR; 	// Receive Pointer Register

-	AT91_REG	 PDC_RCR; 	// Receive Counter Register

-	AT91_REG	 PDC_TPR; 	// Transmit Pointer Register

-	AT91_REG	 PDC_TCR; 	// Transmit Counter Register

-	AT91_REG	 PDC_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 PDC_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 PDC_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 PDC_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 PDC_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 PDC_PTSR; 	// PDC Transfer Status Register

-} AT91S_PDC, *AT91PS_PDC;

-

-// -------- PDC_PTCR : (PDC Offset: 0x20) PDC Transfer Control Register -------- 

-#define AT91C_PDC_RXTEN       ((unsigned int) 0x1 <<  0) // (PDC) Receiver Transfer Enable

-#define AT91C_PDC_RXTDIS      ((unsigned int) 0x1 <<  1) // (PDC) Receiver Transfer Disable

-#define AT91C_PDC_TXTEN       ((unsigned int) 0x1 <<  8) // (PDC) Transmitter Transfer Enable

-#define AT91C_PDC_TXTDIS      ((unsigned int) 0x1 <<  9) // (PDC) Transmitter Transfer Disable

-// -------- PDC_PTSR : (PDC Offset: 0x24) PDC Transfer Status Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Debug Unit

-// *****************************************************************************

-typedef struct _AT91S_DBGU {

-	AT91_REG	 DBGU_CR; 	// Control Register

-	AT91_REG	 DBGU_MR; 	// Mode Register

-	AT91_REG	 DBGU_IER; 	// Interrupt Enable Register

-	AT91_REG	 DBGU_IDR; 	// Interrupt Disable Register

-	AT91_REG	 DBGU_IMR; 	// Interrupt Mask Register

-	AT91_REG	 DBGU_CSR; 	// Channel Status Register

-	AT91_REG	 DBGU_RHR; 	// Receiver Holding Register

-	AT91_REG	 DBGU_THR; 	// Transmitter Holding Register

-	AT91_REG	 DBGU_BRGR; 	// Baud Rate Generator Register

-	AT91_REG	 Reserved0[7]; 	// 

-	AT91_REG	 DBGU_CIDR; 	// Chip ID Register

-	AT91_REG	 DBGU_EXID; 	// Chip ID Extension Register

-	AT91_REG	 DBGU_FNTR; 	// Force NTRST Register

-	AT91_REG	 Reserved1[45]; 	// 

-	AT91_REG	 DBGU_RPR; 	// Receive Pointer Register

-	AT91_REG	 DBGU_RCR; 	// Receive Counter Register

-	AT91_REG	 DBGU_TPR; 	// Transmit Pointer Register

-	AT91_REG	 DBGU_TCR; 	// Transmit Counter Register

-	AT91_REG	 DBGU_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 DBGU_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 DBGU_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 DBGU_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 DBGU_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 DBGU_PTSR; 	// PDC Transfer Status Register

-} AT91S_DBGU, *AT91PS_DBGU;

-

-// -------- DBGU_CR : (DBGU Offset: 0x0) Debug Unit Control Register -------- 

-#define AT91C_US_RSTRX        ((unsigned int) 0x1 <<  2) // (DBGU) Reset Receiver

-#define AT91C_US_RSTTX        ((unsigned int) 0x1 <<  3) // (DBGU) Reset Transmitter

-#define AT91C_US_RXEN         ((unsigned int) 0x1 <<  4) // (DBGU) Receiver Enable

-#define AT91C_US_RXDIS        ((unsigned int) 0x1 <<  5) // (DBGU) Receiver Disable

-#define AT91C_US_TXEN         ((unsigned int) 0x1 <<  6) // (DBGU) Transmitter Enable

-#define AT91C_US_TXDIS        ((unsigned int) 0x1 <<  7) // (DBGU) Transmitter Disable

-#define AT91C_US_RSTSTA       ((unsigned int) 0x1 <<  8) // (DBGU) Reset Status Bits

-// -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register -------- 

-#define AT91C_US_PAR          ((unsigned int) 0x7 <<  9) // (DBGU) Parity type

-#define 	AT91C_US_PAR_EVEN                 ((unsigned int) 0x0 <<  9) // (DBGU) Even Parity

-#define 	AT91C_US_PAR_ODD                  ((unsigned int) 0x1 <<  9) // (DBGU) Odd Parity

-#define 	AT91C_US_PAR_SPACE                ((unsigned int) 0x2 <<  9) // (DBGU) Parity forced to 0 (Space)

-#define 	AT91C_US_PAR_MARK                 ((unsigned int) 0x3 <<  9) // (DBGU) Parity forced to 1 (Mark)

-#define 	AT91C_US_PAR_NONE                 ((unsigned int) 0x4 <<  9) // (DBGU) No Parity

-#define 	AT91C_US_PAR_MULTI_DROP           ((unsigned int) 0x6 <<  9) // (DBGU) Multi-drop mode

-#define AT91C_US_CHMODE       ((unsigned int) 0x3 << 14) // (DBGU) Channel Mode

-#define 	AT91C_US_CHMODE_NORMAL               ((unsigned int) 0x0 << 14) // (DBGU) Normal Mode: The USART channel operates as an RX/TX USART.

-#define 	AT91C_US_CHMODE_AUTO                 ((unsigned int) 0x1 << 14) // (DBGU) Automatic Echo: Receiver Data Input is connected to the TXD pin.

-#define 	AT91C_US_CHMODE_LOCAL                ((unsigned int) 0x2 << 14) // (DBGU) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal.

-#define 	AT91C_US_CHMODE_REMOTE               ((unsigned int) 0x3 << 14) // (DBGU) Remote Loopback: RXD pin is internally connected to TXD pin.

-// -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register -------- 

-#define AT91C_US_RXRDY        ((unsigned int) 0x1 <<  0) // (DBGU) RXRDY Interrupt

-#define AT91C_US_TXRDY        ((unsigned int) 0x1 <<  1) // (DBGU) TXRDY Interrupt

-#define AT91C_US_ENDRX        ((unsigned int) 0x1 <<  3) // (DBGU) End of Receive Transfer Interrupt

-#define AT91C_US_ENDTX        ((unsigned int) 0x1 <<  4) // (DBGU) End of Transmit Interrupt

-#define AT91C_US_OVRE         ((unsigned int) 0x1 <<  5) // (DBGU) Overrun Interrupt

-#define AT91C_US_FRAME        ((unsigned int) 0x1 <<  6) // (DBGU) Framing Error Interrupt

-#define AT91C_US_PARE         ((unsigned int) 0x1 <<  7) // (DBGU) Parity Error Interrupt

-#define AT91C_US_TXEMPTY      ((unsigned int) 0x1 <<  9) // (DBGU) TXEMPTY Interrupt

-#define AT91C_US_TXBUFE       ((unsigned int) 0x1 << 11) // (DBGU) TXBUFE Interrupt

-#define AT91C_US_RXBUFF       ((unsigned int) 0x1 << 12) // (DBGU) RXBUFF Interrupt

-#define AT91C_US_COMM_TX      ((unsigned int) 0x1 << 30) // (DBGU) COMM_TX Interrupt

-#define AT91C_US_COMM_RX      ((unsigned int) 0x1 << 31) // (DBGU) COMM_RX Interrupt

-// -------- DBGU_IDR : (DBGU Offset: 0xc) Debug Unit Interrupt Disable Register -------- 

-// -------- DBGU_IMR : (DBGU Offset: 0x10) Debug Unit Interrupt Mask Register -------- 

-// -------- DBGU_CSR : (DBGU Offset: 0x14) Debug Unit Channel Status Register -------- 

-// -------- DBGU_FNTR : (DBGU Offset: 0x48) Debug Unit FORCE_NTRST Register -------- 

-#define AT91C_US_FORCE_NTRST  ((unsigned int) 0x1 <<  0) // (DBGU) Force NTRST in JTAG

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Parallel Input Output Controler

-// *****************************************************************************

-typedef struct _AT91S_PIO {

-	AT91_REG	 PIO_PER; 	// PIO Enable Register

-	AT91_REG	 PIO_PDR; 	// PIO Disable Register

-	AT91_REG	 PIO_PSR; 	// PIO Status Register

-	AT91_REG	 Reserved0[1]; 	// 

-	AT91_REG	 PIO_OER; 	// Output Enable Register

-	AT91_REG	 PIO_ODR; 	// Output Disable Registerr

-	AT91_REG	 PIO_OSR; 	// Output Status Register

-	AT91_REG	 Reserved1[1]; 	// 

-	AT91_REG	 PIO_IFER; 	// Input Filter Enable Register

-	AT91_REG	 PIO_IFDR; 	// Input Filter Disable Register

-	AT91_REG	 PIO_IFSR; 	// Input Filter Status Register

-	AT91_REG	 Reserved2[1]; 	// 

-	AT91_REG	 PIO_SODR; 	// Set Output Data Register

-	AT91_REG	 PIO_CODR; 	// Clear Output Data Register

-	AT91_REG	 PIO_ODSR; 	// Output Data Status Register

-	AT91_REG	 PIO_PDSR; 	// Pin Data Status Register

-	AT91_REG	 PIO_IER; 	// Interrupt Enable Register

-	AT91_REG	 PIO_IDR; 	// Interrupt Disable Register

-	AT91_REG	 PIO_IMR; 	// Interrupt Mask Register

-	AT91_REG	 PIO_ISR; 	// Interrupt Status Register

-	AT91_REG	 PIO_MDER; 	// Multi-driver Enable Register

-	AT91_REG	 PIO_MDDR; 	// Multi-driver Disable Register

-	AT91_REG	 PIO_MDSR; 	// Multi-driver Status Register

-	AT91_REG	 Reserved3[1]; 	// 

-	AT91_REG	 PIO_PPUDR; 	// Pull-up Disable Register

-	AT91_REG	 PIO_PPUER; 	// Pull-up Enable Register

-	AT91_REG	 PIO_PPUSR; 	// Pull-up Status Register

-	AT91_REG	 Reserved4[1]; 	// 

-	AT91_REG	 PIO_ASR; 	// Select A Register

-	AT91_REG	 PIO_BSR; 	// Select B Register

-	AT91_REG	 PIO_ABSR; 	// AB Select Status Register

-	AT91_REG	 Reserved5[9]; 	// 

-	AT91_REG	 PIO_OWER; 	// Output Write Enable Register

-	AT91_REG	 PIO_OWDR; 	// Output Write Disable Register

-	AT91_REG	 PIO_OWSR; 	// Output Write Status Register

-} AT91S_PIO, *AT91PS_PIO;

-

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Clock Generator Controler

-// *****************************************************************************

-typedef struct _AT91S_CKGR {

-	AT91_REG	 CKGR_MOR; 	// Main Oscillator Register

-	AT91_REG	 CKGR_MCFR; 	// Main Clock  Frequency Register

-	AT91_REG	 Reserved0[1]; 	// 

-	AT91_REG	 CKGR_PLLR; 	// PLL Register

-} AT91S_CKGR, *AT91PS_CKGR;

-

-// -------- CKGR_MOR : (CKGR Offset: 0x0) Main Oscillator Register -------- 

-#define AT91C_CKGR_MOSCEN     ((unsigned int) 0x1 <<  0) // (CKGR) Main Oscillator Enable

-#define AT91C_CKGR_OSCBYPASS  ((unsigned int) 0x1 <<  1) // (CKGR) Main Oscillator Bypass

-#define AT91C_CKGR_OSCOUNT    ((unsigned int) 0xFF <<  8) // (CKGR) Main Oscillator Start-up Time

-// -------- CKGR_MCFR : (CKGR Offset: 0x4) Main Clock Frequency Register -------- 

-#define AT91C_CKGR_MAINF      ((unsigned int) 0xFFFF <<  0) // (CKGR) Main Clock Frequency

-#define AT91C_CKGR_MAINRDY    ((unsigned int) 0x1 << 16) // (CKGR) Main Clock Ready

-// -------- CKGR_PLLR : (CKGR Offset: 0xc) PLL B Register -------- 

-#define AT91C_CKGR_DIV        ((unsigned int) 0xFF <<  0) // (CKGR) Divider Selected

-#define 	AT91C_CKGR_DIV_0                    ((unsigned int) 0x0) // (CKGR) Divider output is 0

-#define 	AT91C_CKGR_DIV_BYPASS               ((unsigned int) 0x1) // (CKGR) Divider is bypassed

-#define AT91C_CKGR_PLLCOUNT   ((unsigned int) 0x3F <<  8) // (CKGR) PLL Counter

-#define AT91C_CKGR_OUT        ((unsigned int) 0x3 << 14) // (CKGR) PLL Output Frequency Range

-#define 	AT91C_CKGR_OUT_0                    ((unsigned int) 0x0 << 14) // (CKGR) Please refer to the PLL datasheet

-#define 	AT91C_CKGR_OUT_1                    ((unsigned int) 0x1 << 14) // (CKGR) Please refer to the PLL datasheet

-#define 	AT91C_CKGR_OUT_2                    ((unsigned int) 0x2 << 14) // (CKGR) Please refer to the PLL datasheet

-#define 	AT91C_CKGR_OUT_3                    ((unsigned int) 0x3 << 14) // (CKGR) Please refer to the PLL datasheet

-#define AT91C_CKGR_MUL        ((unsigned int) 0x7FF << 16) // (CKGR) PLL Multiplier

-#define AT91C_CKGR_USBDIV     ((unsigned int) 0x3 << 28) // (CKGR) Divider for USB Clocks

-#define 	AT91C_CKGR_USBDIV_0                    ((unsigned int) 0x0 << 28) // (CKGR) Divider output is PLL clock output

-#define 	AT91C_CKGR_USBDIV_1                    ((unsigned int) 0x1 << 28) // (CKGR) Divider output is PLL clock output divided by 2

-#define 	AT91C_CKGR_USBDIV_2                    ((unsigned int) 0x2 << 28) // (CKGR) Divider output is PLL clock output divided by 4

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Power Management Controler

-// *****************************************************************************

-typedef struct _AT91S_PMC {

-	AT91_REG	 PMC_SCER; 	// System Clock Enable Register

-	AT91_REG	 PMC_SCDR; 	// System Clock Disable Register

-	AT91_REG	 PMC_SCSR; 	// System Clock Status Register

-	AT91_REG	 Reserved0[1]; 	// 

-	AT91_REG	 PMC_PCER; 	// Peripheral Clock Enable Register

-	AT91_REG	 PMC_PCDR; 	// Peripheral Clock Disable Register

-	AT91_REG	 PMC_PCSR; 	// Peripheral Clock Status Register

-	AT91_REG	 Reserved1[1]; 	// 

-	AT91_REG	 PMC_MOR; 	// Main Oscillator Register

-	AT91_REG	 PMC_MCFR; 	// Main Clock  Frequency Register

-	AT91_REG	 Reserved2[1]; 	// 

-	AT91_REG	 PMC_PLLR; 	// PLL Register

-	AT91_REG	 PMC_MCKR; 	// Master Clock Register

-	AT91_REG	 Reserved3[3]; 	// 

-	AT91_REG	 PMC_PCKR[4]; 	// Programmable Clock Register

-	AT91_REG	 Reserved4[4]; 	// 

-	AT91_REG	 PMC_IER; 	// Interrupt Enable Register

-	AT91_REG	 PMC_IDR; 	// Interrupt Disable Register

-	AT91_REG	 PMC_SR; 	// Status Register

-	AT91_REG	 PMC_IMR; 	// Interrupt Mask Register

-} AT91S_PMC, *AT91PS_PMC;

-

-// -------- PMC_SCER : (PMC Offset: 0x0) System Clock Enable Register -------- 

-#define AT91C_PMC_PCK         ((unsigned int) 0x1 <<  0) // (PMC) Processor Clock

-#define AT91C_PMC_UDP         ((unsigned int) 0x1 <<  7) // (PMC) USB Device Port Clock

-#define AT91C_PMC_PCK0        ((unsigned int) 0x1 <<  8) // (PMC) Programmable Clock Output

-#define AT91C_PMC_PCK1        ((unsigned int) 0x1 <<  9) // (PMC) Programmable Clock Output

-#define AT91C_PMC_PCK2        ((unsigned int) 0x1 << 10) // (PMC) Programmable Clock Output

-#define AT91C_PMC_PCK3        ((unsigned int) 0x1 << 11) // (PMC) Programmable Clock Output

-// -------- PMC_SCDR : (PMC Offset: 0x4) System Clock Disable Register -------- 

-// -------- PMC_SCSR : (PMC Offset: 0x8) System Clock Status Register -------- 

-// -------- CKGR_MOR : (PMC Offset: 0x20) Main Oscillator Register -------- 

-// -------- CKGR_MCFR : (PMC Offset: 0x24) Main Clock Frequency Register -------- 

-// -------- CKGR_PLLR : (PMC Offset: 0x2c) PLL B Register -------- 

-// -------- PMC_MCKR : (PMC Offset: 0x30) Master Clock Register -------- 

-#define AT91C_PMC_CSS         ((unsigned int) 0x3 <<  0) // (PMC) Programmable Clock Selection

-#define 	AT91C_PMC_CSS_SLOW_CLK             ((unsigned int) 0x0) // (PMC) Slow Clock is selected

-#define 	AT91C_PMC_CSS_MAIN_CLK             ((unsigned int) 0x1) // (PMC) Main Clock is selected

-#define 	AT91C_PMC_CSS_PLL_CLK              ((unsigned int) 0x3) // (PMC) Clock from PLL is selected

-#define AT91C_PMC_PRES        ((unsigned int) 0x7 <<  2) // (PMC) Programmable Clock Prescaler

-#define 	AT91C_PMC_PRES_CLK                  ((unsigned int) 0x0 <<  2) // (PMC) Selected clock

-#define 	AT91C_PMC_PRES_CLK_2                ((unsigned int) 0x1 <<  2) // (PMC) Selected clock divided by 2

-#define 	AT91C_PMC_PRES_CLK_4                ((unsigned int) 0x2 <<  2) // (PMC) Selected clock divided by 4

-#define 	AT91C_PMC_PRES_CLK_8                ((unsigned int) 0x3 <<  2) // (PMC) Selected clock divided by 8

-#define 	AT91C_PMC_PRES_CLK_16               ((unsigned int) 0x4 <<  2) // (PMC) Selected clock divided by 16

-#define 	AT91C_PMC_PRES_CLK_32               ((unsigned int) 0x5 <<  2) // (PMC) Selected clock divided by 32

-#define 	AT91C_PMC_PRES_CLK_64               ((unsigned int) 0x6 <<  2) // (PMC) Selected clock divided by 64

-// -------- PMC_PCKR : (PMC Offset: 0x40) Programmable Clock Register -------- 

-// -------- PMC_IER : (PMC Offset: 0x60) PMC Interrupt Enable Register -------- 

-#define AT91C_PMC_MOSCS       ((unsigned int) 0x1 <<  0) // (PMC) MOSC Status/Enable/Disable/Mask

-#define AT91C_PMC_LOCK        ((unsigned int) 0x1 <<  2) // (PMC) PLL Status/Enable/Disable/Mask

-#define AT91C_PMC_MCKRDY      ((unsigned int) 0x1 <<  3) // (PMC) MCK_RDY Status/Enable/Disable/Mask

-#define AT91C_PMC_PCK0RDY     ((unsigned int) 0x1 <<  8) // (PMC) PCK0_RDY Status/Enable/Disable/Mask

-#define AT91C_PMC_PCK1RDY     ((unsigned int) 0x1 <<  9) // (PMC) PCK1_RDY Status/Enable/Disable/Mask

-#define AT91C_PMC_PCK2RDY     ((unsigned int) 0x1 << 10) // (PMC) PCK2_RDY Status/Enable/Disable/Mask

-#define AT91C_PMC_PCK3RDY     ((unsigned int) 0x1 << 11) // (PMC) PCK3_RDY Status/Enable/Disable/Mask

-// -------- PMC_IDR : (PMC Offset: 0x64) PMC Interrupt Disable Register -------- 

-// -------- PMC_SR : (PMC Offset: 0x68) PMC Status Register -------- 

-// -------- PMC_IMR : (PMC Offset: 0x6c) PMC Interrupt Mask Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Reset Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_RSTC {

-	AT91_REG	 RSTC_RCR; 	// Reset Control Register

-	AT91_REG	 RSTC_RSR; 	// Reset Status Register

-	AT91_REG	 RSTC_RMR; 	// Reset Mode Register

-} AT91S_RSTC, *AT91PS_RSTC;

-

-// -------- RSTC_RCR : (RSTC Offset: 0x0) Reset Control Register -------- 

-#define AT91C_RSTC_PROCRST    ((unsigned int) 0x1 <<  0) // (RSTC) Processor Reset

-#define AT91C_RSTC_PERRST     ((unsigned int) 0x1 <<  2) // (RSTC) Peripheral Reset

-#define AT91C_RSTC_EXTRST     ((unsigned int) 0x1 <<  3) // (RSTC) External Reset

-#define AT91C_RSTC_KEY        ((unsigned int) 0xFF << 24) // (RSTC) Password

-// -------- RSTC_RSR : (RSTC Offset: 0x4) Reset Status Register -------- 

-#define AT91C_RSTC_URSTS      ((unsigned int) 0x1 <<  0) // (RSTC) User Reset Status

-#define AT91C_RSTC_BODSTS     ((unsigned int) 0x1 <<  1) // (RSTC) Brownout Detection Status

-#define AT91C_RSTC_RSTTYP     ((unsigned int) 0x7 <<  8) // (RSTC) Reset Type

-#define 	AT91C_RSTC_RSTTYP_POWERUP              ((unsigned int) 0x0 <<  8) // (RSTC) Power-up Reset. VDDCORE rising.

-#define 	AT91C_RSTC_RSTTYP_WAKEUP               ((unsigned int) 0x1 <<  8) // (RSTC) WakeUp Reset. VDDCORE rising.

-#define 	AT91C_RSTC_RSTTYP_WATCHDOG             ((unsigned int) 0x2 <<  8) // (RSTC) Watchdog Reset. Watchdog overflow occured.

-#define 	AT91C_RSTC_RSTTYP_SOFTWARE             ((unsigned int) 0x3 <<  8) // (RSTC) Software Reset. Processor reset required by the software.

-#define 	AT91C_RSTC_RSTTYP_USER                 ((unsigned int) 0x4 <<  8) // (RSTC) User Reset. NRST pin detected low.

-#define 	AT91C_RSTC_RSTTYP_BROWNOUT             ((unsigned int) 0x5 <<  8) // (RSTC) Brownout Reset occured.

-#define AT91C_RSTC_NRSTL      ((unsigned int) 0x1 << 16) // (RSTC) NRST pin level

-#define AT91C_RSTC_SRCMP      ((unsigned int) 0x1 << 17) // (RSTC) Software Reset Command in Progress.

-// -------- RSTC_RMR : (RSTC Offset: 0x8) Reset Mode Register -------- 

-#define AT91C_RSTC_URSTEN     ((unsigned int) 0x1 <<  0) // (RSTC) User Reset Enable

-#define AT91C_RSTC_URSTIEN    ((unsigned int) 0x1 <<  4) // (RSTC) User Reset Interrupt Enable

-#define AT91C_RSTC_ERSTL      ((unsigned int) 0xF <<  8) // (RSTC) User Reset Enable

-#define AT91C_RSTC_BODIEN     ((unsigned int) 0x1 << 16) // (RSTC) Brownout Detection Interrupt Enable

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Real Time Timer Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_RTTC {

-	AT91_REG	 RTTC_RTMR; 	// Real-time Mode Register

-	AT91_REG	 RTTC_RTAR; 	// Real-time Alarm Register

-	AT91_REG	 RTTC_RTVR; 	// Real-time Value Register

-	AT91_REG	 RTTC_RTSR; 	// Real-time Status Register

-} AT91S_RTTC, *AT91PS_RTTC;

-

-// -------- RTTC_RTMR : (RTTC Offset: 0x0) Real-time Mode Register -------- 

-#define AT91C_RTTC_RTPRES     ((unsigned int) 0xFFFF <<  0) // (RTTC) Real-time Timer Prescaler Value

-#define AT91C_RTTC_ALMIEN     ((unsigned int) 0x1 << 16) // (RTTC) Alarm Interrupt Enable

-#define AT91C_RTTC_RTTINCIEN  ((unsigned int) 0x1 << 17) // (RTTC) Real Time Timer Increment Interrupt Enable

-#define AT91C_RTTC_RTTRST     ((unsigned int) 0x1 << 18) // (RTTC) Real Time Timer Restart

-// -------- RTTC_RTAR : (RTTC Offset: 0x4) Real-time Alarm Register -------- 

-#define AT91C_RTTC_ALMV       ((unsigned int) 0x0 <<  0) // (RTTC) Alarm Value

-// -------- RTTC_RTVR : (RTTC Offset: 0x8) Current Real-time Value Register -------- 

-#define AT91C_RTTC_CRTV       ((unsigned int) 0x0 <<  0) // (RTTC) Current Real-time Value

-// -------- RTTC_RTSR : (RTTC Offset: 0xc) Real-time Status Register -------- 

-#define AT91C_RTTC_ALMS       ((unsigned int) 0x1 <<  0) // (RTTC) Real-time Alarm Status

-#define AT91C_RTTC_RTTINC     ((unsigned int) 0x1 <<  1) // (RTTC) Real-time Timer Increment

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Periodic Interval Timer Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_PITC {

-	AT91_REG	 PITC_PIMR; 	// Period Interval Mode Register

-	AT91_REG	 PITC_PISR; 	// Period Interval Status Register

-	AT91_REG	 PITC_PIVR; 	// Period Interval Value Register

-	AT91_REG	 PITC_PIIR; 	// Period Interval Image Register

-} AT91S_PITC, *AT91PS_PITC;

-

-// -------- PITC_PIMR : (PITC Offset: 0x0) Periodic Interval Mode Register -------- 

-#define AT91C_PITC_PIV        ((unsigned int) 0xFFFFF <<  0) // (PITC) Periodic Interval Value

-#define AT91C_PITC_PITEN      ((unsigned int) 0x1 << 24) // (PITC) Periodic Interval Timer Enabled

-#define AT91C_PITC_PITIEN     ((unsigned int) 0x1 << 25) // (PITC) Periodic Interval Timer Interrupt Enable

-// -------- PITC_PISR : (PITC Offset: 0x4) Periodic Interval Status Register -------- 

-#define AT91C_PITC_PITS       ((unsigned int) 0x1 <<  0) // (PITC) Periodic Interval Timer Status

-// -------- PITC_PIVR : (PITC Offset: 0x8) Periodic Interval Value Register -------- 

-#define AT91C_PITC_CPIV       ((unsigned int) 0xFFFFF <<  0) // (PITC) Current Periodic Interval Value

-#define AT91C_PITC_PICNT      ((unsigned int) 0xFFF << 20) // (PITC) Periodic Interval Counter

-// -------- PITC_PIIR : (PITC Offset: 0xc) Periodic Interval Image Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Watchdog Timer Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_WDTC {

-	AT91_REG	 WDTC_WDCR; 	// Watchdog Control Register

-	AT91_REG	 WDTC_WDMR; 	// Watchdog Mode Register

-	AT91_REG	 WDTC_WDSR; 	// Watchdog Status Register

-} AT91S_WDTC, *AT91PS_WDTC;

-

-// -------- WDTC_WDCR : (WDTC Offset: 0x0) Periodic Interval Image Register -------- 

-#define AT91C_WDTC_WDRSTT     ((unsigned int) 0x1 <<  0) // (WDTC) Watchdog Restart

-#define AT91C_WDTC_KEY        ((unsigned int) 0xFF << 24) // (WDTC) Watchdog KEY Password

-// -------- WDTC_WDMR : (WDTC Offset: 0x4) Watchdog Mode Register -------- 

-#define AT91C_WDTC_WDV        ((unsigned int) 0xFFF <<  0) // (WDTC) Watchdog Timer Restart

-#define AT91C_WDTC_WDFIEN     ((unsigned int) 0x1 << 12) // (WDTC) Watchdog Fault Interrupt Enable

-#define AT91C_WDTC_WDRSTEN    ((unsigned int) 0x1 << 13) // (WDTC) Watchdog Reset Enable

-#define AT91C_WDTC_WDRPROC    ((unsigned int) 0x1 << 14) // (WDTC) Watchdog Timer Restart

-#define AT91C_WDTC_WDDIS      ((unsigned int) 0x1 << 15) // (WDTC) Watchdog Disable

-#define AT91C_WDTC_WDD        ((unsigned int) 0xFFF << 16) // (WDTC) Watchdog Delta Value

-#define AT91C_WDTC_WDDBGHLT   ((unsigned int) 0x1 << 28) // (WDTC) Watchdog Debug Halt

-#define AT91C_WDTC_WDIDLEHLT  ((unsigned int) 0x1 << 29) // (WDTC) Watchdog Idle Halt

-// -------- WDTC_WDSR : (WDTC Offset: 0x8) Watchdog Status Register -------- 

-#define AT91C_WDTC_WDUNF      ((unsigned int) 0x1 <<  0) // (WDTC) Watchdog Underflow

-#define AT91C_WDTC_WDERR      ((unsigned int) 0x1 <<  1) // (WDTC) Watchdog Error

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Voltage Regulator Mode Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_VREG {

-	AT91_REG	 VREG_MR; 	// Voltage Regulator Mode Register

-} AT91S_VREG, *AT91PS_VREG;

-

-// -------- VREG_MR : (VREG Offset: 0x0) Voltage Regulator Mode Register -------- 

-#define AT91C_VREG_PSTDBY     ((unsigned int) 0x1 <<  0) // (VREG) Voltage Regulator Power Standby Mode

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Memory Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_MC {

-	AT91_REG	 MC_RCR; 	// MC Remap Control Register

-	AT91_REG	 MC_ASR; 	// MC Abort Status Register

-	AT91_REG	 MC_AASR; 	// MC Abort Address Status Register

-	AT91_REG	 Reserved0[21]; 	// 

-	AT91_REG	 MC_FMR; 	// MC Flash Mode Register

-	AT91_REG	 MC_FCR; 	// MC Flash Command Register

-	AT91_REG	 MC_FSR; 	// MC Flash Status Register

-} AT91S_MC, *AT91PS_MC;

-

-// -------- MC_RCR : (MC Offset: 0x0) MC Remap Control Register -------- 

-#define AT91C_MC_RCB          ((unsigned int) 0x1 <<  0) // (MC) Remap Command Bit

-// -------- MC_ASR : (MC Offset: 0x4) MC Abort Status Register -------- 

-#define AT91C_MC_UNDADD       ((unsigned int) 0x1 <<  0) // (MC) Undefined Addess Abort Status

-#define AT91C_MC_MISADD       ((unsigned int) 0x1 <<  1) // (MC) Misaligned Addess Abort Status

-#define AT91C_MC_ABTSZ        ((unsigned int) 0x3 <<  8) // (MC) Abort Size Status

-#define 	AT91C_MC_ABTSZ_BYTE                 ((unsigned int) 0x0 <<  8) // (MC) Byte

-#define 	AT91C_MC_ABTSZ_HWORD                ((unsigned int) 0x1 <<  8) // (MC) Half-word

-#define 	AT91C_MC_ABTSZ_WORD                 ((unsigned int) 0x2 <<  8) // (MC) Word

-#define AT91C_MC_ABTTYP       ((unsigned int) 0x3 << 10) // (MC) Abort Type Status

-#define 	AT91C_MC_ABTTYP_DATAR                ((unsigned int) 0x0 << 10) // (MC) Data Read

-#define 	AT91C_MC_ABTTYP_DATAW                ((unsigned int) 0x1 << 10) // (MC) Data Write

-#define 	AT91C_MC_ABTTYP_FETCH                ((unsigned int) 0x2 << 10) // (MC) Code Fetch

-#define AT91C_MC_MST0         ((unsigned int) 0x1 << 16) // (MC) Master 0 Abort Source

-#define AT91C_MC_MST1         ((unsigned int) 0x1 << 17) // (MC) Master 1 Abort Source

-#define AT91C_MC_SVMST0       ((unsigned int) 0x1 << 24) // (MC) Saved Master 0 Abort Source

-#define AT91C_MC_SVMST1       ((unsigned int) 0x1 << 25) // (MC) Saved Master 1 Abort Source

-// -------- MC_FMR : (MC Offset: 0x60) MC Flash Mode Register -------- 

-#define AT91C_MC_FRDY         ((unsigned int) 0x1 <<  0) // (MC) Flash Ready

-#define AT91C_MC_LOCKE        ((unsigned int) 0x1 <<  2) // (MC) Lock Error

-#define AT91C_MC_PROGE        ((unsigned int) 0x1 <<  3) // (MC) Programming Error

-#define AT91C_MC_NEBP         ((unsigned int) 0x1 <<  7) // (MC) No Erase Before Programming

-#define AT91C_MC_FWS          ((unsigned int) 0x3 <<  8) // (MC) Flash Wait State

-#define 	AT91C_MC_FWS_0FWS                 ((unsigned int) 0x0 <<  8) // (MC) 1 cycle for Read, 2 for Write operations

-#define 	AT91C_MC_FWS_1FWS                 ((unsigned int) 0x1 <<  8) // (MC) 2 cycles for Read, 3 for Write operations

-#define 	AT91C_MC_FWS_2FWS                 ((unsigned int) 0x2 <<  8) // (MC) 3 cycles for Read, 4 for Write operations

-#define 	AT91C_MC_FWS_3FWS                 ((unsigned int) 0x3 <<  8) // (MC) 4 cycles for Read, 4 for Write operations

-#define AT91C_MC_FMCN         ((unsigned int) 0xFF << 16) // (MC) Flash Microsecond Cycle Number

-// -------- MC_FCR : (MC Offset: 0x64) MC Flash Command Register -------- 

-#define AT91C_MC_FCMD         ((unsigned int) 0xF <<  0) // (MC) Flash Command

-#define 	AT91C_MC_FCMD_START_PROG           ((unsigned int) 0x1) // (MC) Starts the programming of th epage specified by PAGEN.

-#define 	AT91C_MC_FCMD_LOCK                 ((unsigned int) 0x2) // (MC) Starts a lock sequence of the sector defined by the bits 4 to 7 of the field PAGEN.

-#define 	AT91C_MC_FCMD_PROG_AND_LOCK        ((unsigned int) 0x3) // (MC) The lock sequence automatically happens after the programming sequence is completed.

-#define 	AT91C_MC_FCMD_UNLOCK               ((unsigned int) 0x4) // (MC) Starts an unlock sequence of the sector defined by the bits 4 to 7 of the field PAGEN.

-#define 	AT91C_MC_FCMD_ERASE_ALL            ((unsigned int) 0x8) // (MC) Starts the erase of the entire flash.If at least a page is locked, the command is cancelled.

-#define 	AT91C_MC_FCMD_SET_GP_NVM           ((unsigned int) 0xB) // (MC) Set General Purpose NVM bits.

-#define 	AT91C_MC_FCMD_CLR_GP_NVM           ((unsigned int) 0xD) // (MC) Clear General Purpose NVM bits.

-#define 	AT91C_MC_FCMD_SET_SECURITY         ((unsigned int) 0xF) // (MC) Set Security Bit.

-#define AT91C_MC_PAGEN        ((unsigned int) 0x3FF <<  8) // (MC) Page Number

-#define AT91C_MC_KEY          ((unsigned int) 0xFF << 24) // (MC) Writing Protect Key

-// -------- MC_FSR : (MC Offset: 0x68) MC Flash Command Register -------- 

-#define AT91C_MC_SECURITY     ((unsigned int) 0x1 <<  4) // (MC) Security Bit Status

-#define AT91C_MC_GPNVM0       ((unsigned int) 0x1 <<  8) // (MC) Sector 0 Lock Status

-#define AT91C_MC_GPNVM1       ((unsigned int) 0x1 <<  9) // (MC) Sector 1 Lock Status

-#define AT91C_MC_GPNVM2       ((unsigned int) 0x1 << 10) // (MC) Sector 2 Lock Status

-#define AT91C_MC_GPNVM3       ((unsigned int) 0x1 << 11) // (MC) Sector 3 Lock Status

-#define AT91C_MC_GPNVM4       ((unsigned int) 0x1 << 12) // (MC) Sector 4 Lock Status

-#define AT91C_MC_GPNVM5       ((unsigned int) 0x1 << 13) // (MC) Sector 5 Lock Status

-#define AT91C_MC_GPNVM6       ((unsigned int) 0x1 << 14) // (MC) Sector 6 Lock Status

-#define AT91C_MC_GPNVM7       ((unsigned int) 0x1 << 15) // (MC) Sector 7 Lock Status

-#define AT91C_MC_LOCKS0       ((unsigned int) 0x1 << 16) // (MC) Sector 0 Lock Status

-#define AT91C_MC_LOCKS1       ((unsigned int) 0x1 << 17) // (MC) Sector 1 Lock Status

-#define AT91C_MC_LOCKS2       ((unsigned int) 0x1 << 18) // (MC) Sector 2 Lock Status

-#define AT91C_MC_LOCKS3       ((unsigned int) 0x1 << 19) // (MC) Sector 3 Lock Status

-#define AT91C_MC_LOCKS4       ((unsigned int) 0x1 << 20) // (MC) Sector 4 Lock Status

-#define AT91C_MC_LOCKS5       ((unsigned int) 0x1 << 21) // (MC) Sector 5 Lock Status

-#define AT91C_MC_LOCKS6       ((unsigned int) 0x1 << 22) // (MC) Sector 6 Lock Status

-#define AT91C_MC_LOCKS7       ((unsigned int) 0x1 << 23) // (MC) Sector 7 Lock Status

-#define AT91C_MC_LOCKS8       ((unsigned int) 0x1 << 24) // (MC) Sector 8 Lock Status

-#define AT91C_MC_LOCKS9       ((unsigned int) 0x1 << 25) // (MC) Sector 9 Lock Status

-#define AT91C_MC_LOCKS10      ((unsigned int) 0x1 << 26) // (MC) Sector 10 Lock Status

-#define AT91C_MC_LOCKS11      ((unsigned int) 0x1 << 27) // (MC) Sector 11 Lock Status

-#define AT91C_MC_LOCKS12      ((unsigned int) 0x1 << 28) // (MC) Sector 12 Lock Status

-#define AT91C_MC_LOCKS13      ((unsigned int) 0x1 << 29) // (MC) Sector 13 Lock Status

-#define AT91C_MC_LOCKS14      ((unsigned int) 0x1 << 30) // (MC) Sector 14 Lock Status

-#define AT91C_MC_LOCKS15      ((unsigned int) 0x1 << 31) // (MC) Sector 15 Lock Status

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Serial Parallel Interface

-// *****************************************************************************

-typedef struct _AT91S_SPI {

-	AT91_REG	 SPI_CR; 	// Control Register

-	AT91_REG	 SPI_MR; 	// Mode Register

-	AT91_REG	 SPI_RDR; 	// Receive Data Register

-	AT91_REG	 SPI_TDR; 	// Transmit Data Register

-	AT91_REG	 SPI_SR; 	// Status Register

-	AT91_REG	 SPI_IER; 	// Interrupt Enable Register

-	AT91_REG	 SPI_IDR; 	// Interrupt Disable Register

-	AT91_REG	 SPI_IMR; 	// Interrupt Mask Register

-	AT91_REG	 Reserved0[4]; 	// 

-	AT91_REG	 SPI_CSR[4]; 	// Chip Select Register

-	AT91_REG	 Reserved1[48]; 	// 

-	AT91_REG	 SPI_RPR; 	// Receive Pointer Register

-	AT91_REG	 SPI_RCR; 	// Receive Counter Register

-	AT91_REG	 SPI_TPR; 	// Transmit Pointer Register

-	AT91_REG	 SPI_TCR; 	// Transmit Counter Register

-	AT91_REG	 SPI_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 SPI_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 SPI_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 SPI_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 SPI_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 SPI_PTSR; 	// PDC Transfer Status Register

-} AT91S_SPI, *AT91PS_SPI;

-

-// -------- SPI_CR : (SPI Offset: 0x0) SPI Control Register -------- 

-#define AT91C_SPI_SPIEN       ((unsigned int) 0x1 <<  0) // (SPI) SPI Enable

-#define AT91C_SPI_SPIDIS      ((unsigned int) 0x1 <<  1) // (SPI) SPI Disable

-#define AT91C_SPI_SWRST       ((unsigned int) 0x1 <<  7) // (SPI) SPI Software reset

-#define AT91C_SPI_LASTXFER    ((unsigned int) 0x1 << 24) // (SPI) SPI Last Transfer

-// -------- SPI_MR : (SPI Offset: 0x4) SPI Mode Register -------- 

-#define AT91C_SPI_MSTR        ((unsigned int) 0x1 <<  0) // (SPI) Master/Slave Mode

-#define AT91C_SPI_PS          ((unsigned int) 0x1 <<  1) // (SPI) Peripheral Select

-#define 	AT91C_SPI_PS_FIXED                ((unsigned int) 0x0 <<  1) // (SPI) Fixed Peripheral Select

-#define 	AT91C_SPI_PS_VARIABLE             ((unsigned int) 0x1 <<  1) // (SPI) Variable Peripheral Select

-#define AT91C_SPI_PCSDEC      ((unsigned int) 0x1 <<  2) // (SPI) Chip Select Decode

-#define AT91C_SPI_FDIV        ((unsigned int) 0x1 <<  3) // (SPI) Clock Selection

-#define AT91C_SPI_MODFDIS     ((unsigned int) 0x1 <<  4) // (SPI) Mode Fault Detection

-#define AT91C_SPI_LLB         ((unsigned int) 0x1 <<  7) // (SPI) Clock Selection

-#define AT91C_SPI_PCS         ((unsigned int) 0xF << 16) // (SPI) Peripheral Chip Select

-#define AT91C_SPI_DLYBCS      ((unsigned int) 0xFF << 24) // (SPI) Delay Between Chip Selects

-// -------- SPI_RDR : (SPI Offset: 0x8) Receive Data Register -------- 

-#define AT91C_SPI_RD          ((unsigned int) 0xFFFF <<  0) // (SPI) Receive Data

-#define AT91C_SPI_RPCS        ((unsigned int) 0xF << 16) // (SPI) Peripheral Chip Select Status

-// -------- SPI_TDR : (SPI Offset: 0xc) Transmit Data Register -------- 

-#define AT91C_SPI_TD          ((unsigned int) 0xFFFF <<  0) // (SPI) Transmit Data

-#define AT91C_SPI_TPCS        ((unsigned int) 0xF << 16) // (SPI) Peripheral Chip Select Status

-// -------- SPI_SR : (SPI Offset: 0x10) Status Register -------- 

-#define AT91C_SPI_RDRF        ((unsigned int) 0x1 <<  0) // (SPI) Receive Data Register Full

-#define AT91C_SPI_TDRE        ((unsigned int) 0x1 <<  1) // (SPI) Transmit Data Register Empty

-#define AT91C_SPI_MODF        ((unsigned int) 0x1 <<  2) // (SPI) Mode Fault Error

-#define AT91C_SPI_OVRES       ((unsigned int) 0x1 <<  3) // (SPI) Overrun Error Status

-#define AT91C_SPI_ENDRX       ((unsigned int) 0x1 <<  4) // (SPI) End of Receiver Transfer

-#define AT91C_SPI_ENDTX       ((unsigned int) 0x1 <<  5) // (SPI) End of Receiver Transfer

-#define AT91C_SPI_RXBUFF      ((unsigned int) 0x1 <<  6) // (SPI) RXBUFF Interrupt

-#define AT91C_SPI_TXBUFE      ((unsigned int) 0x1 <<  7) // (SPI) TXBUFE Interrupt

-#define AT91C_SPI_NSSR        ((unsigned int) 0x1 <<  8) // (SPI) NSSR Interrupt

-#define AT91C_SPI_TXEMPTY     ((unsigned int) 0x1 <<  9) // (SPI) TXEMPTY Interrupt

-#define AT91C_SPI_SPIENS      ((unsigned int) 0x1 << 16) // (SPI) Enable Status

-// -------- SPI_IER : (SPI Offset: 0x14) Interrupt Enable Register -------- 

-// -------- SPI_IDR : (SPI Offset: 0x18) Interrupt Disable Register -------- 

-// -------- SPI_IMR : (SPI Offset: 0x1c) Interrupt Mask Register -------- 

-// -------- SPI_CSR : (SPI Offset: 0x30) Chip Select Register -------- 

-#define AT91C_SPI_CPOL        ((unsigned int) 0x1 <<  0) // (SPI) Clock Polarity

-#define AT91C_SPI_NCPHA       ((unsigned int) 0x1 <<  1) // (SPI) Clock Phase

-#define AT91C_SPI_CSAAT       ((unsigned int) 0x1 <<  3) // (SPI) Chip Select Active After Transfer

-#define AT91C_SPI_BITS        ((unsigned int) 0xF <<  4) // (SPI) Bits Per Transfer

-#define 	AT91C_SPI_BITS_8                    ((unsigned int) 0x0 <<  4) // (SPI) 8 Bits Per transfer

-#define 	AT91C_SPI_BITS_9                    ((unsigned int) 0x1 <<  4) // (SPI) 9 Bits Per transfer

-#define 	AT91C_SPI_BITS_10                   ((unsigned int) 0x2 <<  4) // (SPI) 10 Bits Per transfer

-#define 	AT91C_SPI_BITS_11                   ((unsigned int) 0x3 <<  4) // (SPI) 11 Bits Per transfer

-#define 	AT91C_SPI_BITS_12                   ((unsigned int) 0x4 <<  4) // (SPI) 12 Bits Per transfer

-#define 	AT91C_SPI_BITS_13                   ((unsigned int) 0x5 <<  4) // (SPI) 13 Bits Per transfer

-#define 	AT91C_SPI_BITS_14                   ((unsigned int) 0x6 <<  4) // (SPI) 14 Bits Per transfer

-#define 	AT91C_SPI_BITS_15                   ((unsigned int) 0x7 <<  4) // (SPI) 15 Bits Per transfer

-#define 	AT91C_SPI_BITS_16                   ((unsigned int) 0x8 <<  4) // (SPI) 16 Bits Per transfer

-#define AT91C_SPI_SCBR        ((unsigned int) 0xFF <<  8) // (SPI) Serial Clock Baud Rate

-#define AT91C_SPI_DLYBS       ((unsigned int) 0xFF << 16) // (SPI) Delay Before SPCK

-#define AT91C_SPI_DLYBCT      ((unsigned int) 0xFF << 24) // (SPI) Delay Between Consecutive Transfers

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Usart

-// *****************************************************************************

-typedef struct _AT91S_USART {

-	AT91_REG	 US_CR; 	// Control Register

-	AT91_REG	 US_MR; 	// Mode Register

-	AT91_REG	 US_IER; 	// Interrupt Enable Register

-	AT91_REG	 US_IDR; 	// Interrupt Disable Register

-	AT91_REG	 US_IMR; 	// Interrupt Mask Register

-	AT91_REG	 US_CSR; 	// Channel Status Register

-	AT91_REG	 US_RHR; 	// Receiver Holding Register

-	AT91_REG	 US_THR; 	// Transmitter Holding Register

-	AT91_REG	 US_BRGR; 	// Baud Rate Generator Register

-	AT91_REG	 US_RTOR; 	// Receiver Time-out Register

-	AT91_REG	 US_TTGR; 	// Transmitter Time-guard Register

-	AT91_REG	 Reserved0[5]; 	// 

-	AT91_REG	 US_FIDI; 	// FI_DI_Ratio Register

-	AT91_REG	 US_NER; 	// Nb Errors Register

-	AT91_REG	 Reserved1[1]; 	// 

-	AT91_REG	 US_IF; 	// IRDA_FILTER Register

-	AT91_REG	 Reserved2[44]; 	// 

-	AT91_REG	 US_RPR; 	// Receive Pointer Register

-	AT91_REG	 US_RCR; 	// Receive Counter Register

-	AT91_REG	 US_TPR; 	// Transmit Pointer Register

-	AT91_REG	 US_TCR; 	// Transmit Counter Register

-	AT91_REG	 US_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 US_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 US_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 US_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 US_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 US_PTSR; 	// PDC Transfer Status Register

-} AT91S_USART, *AT91PS_USART;

-

-// -------- US_CR : (USART Offset: 0x0) Debug Unit Control Register -------- 

-#define AT91C_US_STTBRK       ((unsigned int) 0x1 <<  9) // (USART) Start Break

-#define AT91C_US_STPBRK       ((unsigned int) 0x1 << 10) // (USART) Stop Break

-#define AT91C_US_STTTO        ((unsigned int) 0x1 << 11) // (USART) Start Time-out

-#define AT91C_US_SENDA        ((unsigned int) 0x1 << 12) // (USART) Send Address

-#define AT91C_US_RSTIT        ((unsigned int) 0x1 << 13) // (USART) Reset Iterations

-#define AT91C_US_RSTNACK      ((unsigned int) 0x1 << 14) // (USART) Reset Non Acknowledge

-#define AT91C_US_RETTO        ((unsigned int) 0x1 << 15) // (USART) Rearm Time-out

-#define AT91C_US_DTREN        ((unsigned int) 0x1 << 16) // (USART) Data Terminal ready Enable

-#define AT91C_US_DTRDIS       ((unsigned int) 0x1 << 17) // (USART) Data Terminal ready Disable

-#define AT91C_US_RTSEN        ((unsigned int) 0x1 << 18) // (USART) Request to Send enable

-#define AT91C_US_RTSDIS       ((unsigned int) 0x1 << 19) // (USART) Request to Send Disable

-// -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register -------- 

-#define AT91C_US_USMODE       ((unsigned int) 0xF <<  0) // (USART) Usart mode

-#define 	AT91C_US_USMODE_NORMAL               ((unsigned int) 0x0) // (USART) Normal

-#define 	AT91C_US_USMODE_RS485                ((unsigned int) 0x1) // (USART) RS485

-#define 	AT91C_US_USMODE_HWHSH                ((unsigned int) 0x2) // (USART) Hardware Handshaking

-#define 	AT91C_US_USMODE_MODEM                ((unsigned int) 0x3) // (USART) Modem

-#define 	AT91C_US_USMODE_ISO7816_0            ((unsigned int) 0x4) // (USART) ISO7816 protocol: T = 0

-#define 	AT91C_US_USMODE_ISO7816_1            ((unsigned int) 0x6) // (USART) ISO7816 protocol: T = 1

-#define 	AT91C_US_USMODE_IRDA                 ((unsigned int) 0x8) // (USART) IrDA

-#define 	AT91C_US_USMODE_SWHSH                ((unsigned int) 0xC) // (USART) Software Handshaking

-#define AT91C_US_CLKS         ((unsigned int) 0x3 <<  4) // (USART) Clock Selection (Baud Rate generator Input Clock

-#define 	AT91C_US_CLKS_CLOCK                ((unsigned int) 0x0 <<  4) // (USART) Clock

-#define 	AT91C_US_CLKS_FDIV1                ((unsigned int) 0x1 <<  4) // (USART) fdiv1

-#define 	AT91C_US_CLKS_SLOW                 ((unsigned int) 0x2 <<  4) // (USART) slow_clock (ARM)

-#define 	AT91C_US_CLKS_EXT                  ((unsigned int) 0x3 <<  4) // (USART) External (SCK)

-#define AT91C_US_CHRL         ((unsigned int) 0x3 <<  6) // (USART) Clock Selection (Baud Rate generator Input Clock

-#define 	AT91C_US_CHRL_5_BITS               ((unsigned int) 0x0 <<  6) // (USART) Character Length: 5 bits

-#define 	AT91C_US_CHRL_6_BITS               ((unsigned int) 0x1 <<  6) // (USART) Character Length: 6 bits

-#define 	AT91C_US_CHRL_7_BITS               ((unsigned int) 0x2 <<  6) // (USART) Character Length: 7 bits

-#define 	AT91C_US_CHRL_8_BITS               ((unsigned int) 0x3 <<  6) // (USART) Character Length: 8 bits

-#define AT91C_US_SYNC         ((unsigned int) 0x1 <<  8) // (USART) Synchronous Mode Select

-#define AT91C_US_NBSTOP       ((unsigned int) 0x3 << 12) // (USART) Number of Stop bits

-#define 	AT91C_US_NBSTOP_1_BIT                ((unsigned int) 0x0 << 12) // (USART) 1 stop bit

-#define 	AT91C_US_NBSTOP_15_BIT               ((unsigned int) 0x1 << 12) // (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits

-#define 	AT91C_US_NBSTOP_2_BIT                ((unsigned int) 0x2 << 12) // (USART) 2 stop bits

-#define AT91C_US_MSBF         ((unsigned int) 0x1 << 16) // (USART) Bit Order

-#define AT91C_US_MODE9        ((unsigned int) 0x1 << 17) // (USART) 9-bit Character length

-#define AT91C_US_CKLO         ((unsigned int) 0x1 << 18) // (USART) Clock Output Select

-#define AT91C_US_OVER         ((unsigned int) 0x1 << 19) // (USART) Over Sampling Mode

-#define AT91C_US_INACK        ((unsigned int) 0x1 << 20) // (USART) Inhibit Non Acknowledge

-#define AT91C_US_DSNACK       ((unsigned int) 0x1 << 21) // (USART) Disable Successive NACK

-#define AT91C_US_MAX_ITER     ((unsigned int) 0x1 << 24) // (USART) Number of Repetitions

-#define AT91C_US_FILTER       ((unsigned int) 0x1 << 28) // (USART) Receive Line Filter

-// -------- US_IER : (USART Offset: 0x8) Debug Unit Interrupt Enable Register -------- 

-#define AT91C_US_RXBRK        ((unsigned int) 0x1 <<  2) // (USART) Break Received/End of Break

-#define AT91C_US_TIMEOUT      ((unsigned int) 0x1 <<  8) // (USART) Receiver Time-out

-#define AT91C_US_ITERATION    ((unsigned int) 0x1 << 10) // (USART) Max number of Repetitions Reached

-#define AT91C_US_NACK         ((unsigned int) 0x1 << 13) // (USART) Non Acknowledge

-#define AT91C_US_RIIC         ((unsigned int) 0x1 << 16) // (USART) Ring INdicator Input Change Flag

-#define AT91C_US_DSRIC        ((unsigned int) 0x1 << 17) // (USART) Data Set Ready Input Change Flag

-#define AT91C_US_DCDIC        ((unsigned int) 0x1 << 18) // (USART) Data Carrier Flag

-#define AT91C_US_CTSIC        ((unsigned int) 0x1 << 19) // (USART) Clear To Send Input Change Flag

-// -------- US_IDR : (USART Offset: 0xc) Debug Unit Interrupt Disable Register -------- 

-// -------- US_IMR : (USART Offset: 0x10) Debug Unit Interrupt Mask Register -------- 

-// -------- US_CSR : (USART Offset: 0x14) Debug Unit Channel Status Register -------- 

-#define AT91C_US_RI           ((unsigned int) 0x1 << 20) // (USART) Image of RI Input

-#define AT91C_US_DSR          ((unsigned int) 0x1 << 21) // (USART) Image of DSR Input

-#define AT91C_US_DCD          ((unsigned int) 0x1 << 22) // (USART) Image of DCD Input

-#define AT91C_US_CTS          ((unsigned int) 0x1 << 23) // (USART) Image of CTS Input

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Synchronous Serial Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_SSC {

-	AT91_REG	 SSC_CR; 	// Control Register

-	AT91_REG	 SSC_CMR; 	// Clock Mode Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 SSC_RCMR; 	// Receive Clock ModeRegister

-	AT91_REG	 SSC_RFMR; 	// Receive Frame Mode Register

-	AT91_REG	 SSC_TCMR; 	// Transmit Clock Mode Register

-	AT91_REG	 SSC_TFMR; 	// Transmit Frame Mode Register

-	AT91_REG	 SSC_RHR; 	// Receive Holding Register

-	AT91_REG	 SSC_THR; 	// Transmit Holding Register

-	AT91_REG	 Reserved1[2]; 	// 

-	AT91_REG	 SSC_RSHR; 	// Receive Sync Holding Register

-	AT91_REG	 SSC_TSHR; 	// Transmit Sync Holding Register

-	AT91_REG	 Reserved2[2]; 	// 

-	AT91_REG	 SSC_SR; 	// Status Register

-	AT91_REG	 SSC_IER; 	// Interrupt Enable Register

-	AT91_REG	 SSC_IDR; 	// Interrupt Disable Register

-	AT91_REG	 SSC_IMR; 	// Interrupt Mask Register

-	AT91_REG	 Reserved3[44]; 	// 

-	AT91_REG	 SSC_RPR; 	// Receive Pointer Register

-	AT91_REG	 SSC_RCR; 	// Receive Counter Register

-	AT91_REG	 SSC_TPR; 	// Transmit Pointer Register

-	AT91_REG	 SSC_TCR; 	// Transmit Counter Register

-	AT91_REG	 SSC_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 SSC_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 SSC_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 SSC_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 SSC_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 SSC_PTSR; 	// PDC Transfer Status Register

-} AT91S_SSC, *AT91PS_SSC;

-

-// -------- SSC_CR : (SSC Offset: 0x0) SSC Control Register -------- 

-#define AT91C_SSC_RXEN        ((unsigned int) 0x1 <<  0) // (SSC) Receive Enable

-#define AT91C_SSC_RXDIS       ((unsigned int) 0x1 <<  1) // (SSC) Receive Disable

-#define AT91C_SSC_TXEN        ((unsigned int) 0x1 <<  8) // (SSC) Transmit Enable

-#define AT91C_SSC_TXDIS       ((unsigned int) 0x1 <<  9) // (SSC) Transmit Disable

-#define AT91C_SSC_SWRST       ((unsigned int) 0x1 << 15) // (SSC) Software Reset

-// -------- SSC_RCMR : (SSC Offset: 0x10) SSC Receive Clock Mode Register -------- 

-#define AT91C_SSC_CKS         ((unsigned int) 0x3 <<  0) // (SSC) Receive/Transmit Clock Selection

-#define 	AT91C_SSC_CKS_DIV                  ((unsigned int) 0x0) // (SSC) Divided Clock

-#define 	AT91C_SSC_CKS_TK                   ((unsigned int) 0x1) // (SSC) TK Clock signal

-#define 	AT91C_SSC_CKS_RK                   ((unsigned int) 0x2) // (SSC) RK pin

-#define AT91C_SSC_CKO         ((unsigned int) 0x7 <<  2) // (SSC) Receive/Transmit Clock Output Mode Selection

-#define 	AT91C_SSC_CKO_NONE                 ((unsigned int) 0x0 <<  2) // (SSC) Receive/Transmit Clock Output Mode: None RK pin: Input-only

-#define 	AT91C_SSC_CKO_CONTINOUS            ((unsigned int) 0x1 <<  2) // (SSC) Continuous Receive/Transmit Clock RK pin: Output

-#define 	AT91C_SSC_CKO_DATA_TX              ((unsigned int) 0x2 <<  2) // (SSC) Receive/Transmit Clock only during data transfers RK pin: Output

-#define AT91C_SSC_CKI         ((unsigned int) 0x1 <<  5) // (SSC) Receive/Transmit Clock Inversion

-#define AT91C_SSC_START       ((unsigned int) 0xF <<  8) // (SSC) Receive/Transmit Start Selection

-#define 	AT91C_SSC_START_CONTINOUS            ((unsigned int) 0x0 <<  8) // (SSC) Continuous, as soon as the receiver is enabled, and immediately after the end of transfer of the previous data.

-#define 	AT91C_SSC_START_TX                   ((unsigned int) 0x1 <<  8) // (SSC) Transmit/Receive start

-#define 	AT91C_SSC_START_LOW_RF               ((unsigned int) 0x2 <<  8) // (SSC) Detection of a low level on RF input

-#define 	AT91C_SSC_START_HIGH_RF              ((unsigned int) 0x3 <<  8) // (SSC) Detection of a high level on RF input

-#define 	AT91C_SSC_START_FALL_RF              ((unsigned int) 0x4 <<  8) // (SSC) Detection of a falling edge on RF input

-#define 	AT91C_SSC_START_RISE_RF              ((unsigned int) 0x5 <<  8) // (SSC) Detection of a rising edge on RF input

-#define 	AT91C_SSC_START_LEVEL_RF             ((unsigned int) 0x6 <<  8) // (SSC) Detection of any level change on RF input

-#define 	AT91C_SSC_START_EDGE_RF              ((unsigned int) 0x7 <<  8) // (SSC) Detection of any edge on RF input

-#define 	AT91C_SSC_START_0                    ((unsigned int) 0x8 <<  8) // (SSC) Compare 0

-#define AT91C_SSC_STTDLY      ((unsigned int) 0xFF << 16) // (SSC) Receive/Transmit Start Delay

-#define AT91C_SSC_PERIOD      ((unsigned int) 0xFF << 24) // (SSC) Receive/Transmit Period Divider Selection

-// -------- SSC_RFMR : (SSC Offset: 0x14) SSC Receive Frame Mode Register -------- 

-#define AT91C_SSC_DATLEN      ((unsigned int) 0x1F <<  0) // (SSC) Data Length

-#define AT91C_SSC_LOOP        ((unsigned int) 0x1 <<  5) // (SSC) Loop Mode

-#define AT91C_SSC_MSBF        ((unsigned int) 0x1 <<  7) // (SSC) Most Significant Bit First

-#define AT91C_SSC_DATNB       ((unsigned int) 0xF <<  8) // (SSC) Data Number per Frame

-#define AT91C_SSC_FSLEN       ((unsigned int) 0xF << 16) // (SSC) Receive/Transmit Frame Sync length

-#define AT91C_SSC_FSOS        ((unsigned int) 0x7 << 20) // (SSC) Receive/Transmit Frame Sync Output Selection

-#define 	AT91C_SSC_FSOS_NONE                 ((unsigned int) 0x0 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: None RK pin Input-only

-#define 	AT91C_SSC_FSOS_NEGATIVE             ((unsigned int) 0x1 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Negative Pulse

-#define 	AT91C_SSC_FSOS_POSITIVE             ((unsigned int) 0x2 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Positive Pulse

-#define 	AT91C_SSC_FSOS_LOW                  ((unsigned int) 0x3 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Driver Low during data transfer

-#define 	AT91C_SSC_FSOS_HIGH                 ((unsigned int) 0x4 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Driver High during data transfer

-#define 	AT91C_SSC_FSOS_TOGGLE               ((unsigned int) 0x5 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Toggling at each start of data transfer

-#define AT91C_SSC_FSEDGE      ((unsigned int) 0x1 << 24) // (SSC) Frame Sync Edge Detection

-// -------- SSC_TCMR : (SSC Offset: 0x18) SSC Transmit Clock Mode Register -------- 

-// -------- SSC_TFMR : (SSC Offset: 0x1c) SSC Transmit Frame Mode Register -------- 

-#define AT91C_SSC_DATDEF      ((unsigned int) 0x1 <<  5) // (SSC) Data Default Value

-#define AT91C_SSC_FSDEN       ((unsigned int) 0x1 << 23) // (SSC) Frame Sync Data Enable

-// -------- SSC_SR : (SSC Offset: 0x40) SSC Status Register -------- 

-#define AT91C_SSC_TXRDY       ((unsigned int) 0x1 <<  0) // (SSC) Transmit Ready

-#define AT91C_SSC_TXEMPTY     ((unsigned int) 0x1 <<  1) // (SSC) Transmit Empty

-#define AT91C_SSC_ENDTX       ((unsigned int) 0x1 <<  2) // (SSC) End Of Transmission

-#define AT91C_SSC_TXBUFE      ((unsigned int) 0x1 <<  3) // (SSC) Transmit Buffer Empty

-#define AT91C_SSC_RXRDY       ((unsigned int) 0x1 <<  4) // (SSC) Receive Ready

-#define AT91C_SSC_OVRUN       ((unsigned int) 0x1 <<  5) // (SSC) Receive Overrun

-#define AT91C_SSC_ENDRX       ((unsigned int) 0x1 <<  6) // (SSC) End of Reception

-#define AT91C_SSC_RXBUFF      ((unsigned int) 0x1 <<  7) // (SSC) Receive Buffer Full

-#define AT91C_SSC_TXSYN       ((unsigned int) 0x1 << 10) // (SSC) Transmit Sync

-#define AT91C_SSC_RXSYN       ((unsigned int) 0x1 << 11) // (SSC) Receive Sync

-#define AT91C_SSC_TXENA       ((unsigned int) 0x1 << 16) // (SSC) Transmit Enable

-#define AT91C_SSC_RXENA       ((unsigned int) 0x1 << 17) // (SSC) Receive Enable

-// -------- SSC_IER : (SSC Offset: 0x44) SSC Interrupt Enable Register -------- 

-// -------- SSC_IDR : (SSC Offset: 0x48) SSC Interrupt Disable Register -------- 

-// -------- SSC_IMR : (SSC Offset: 0x4c) SSC Interrupt Mask Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Two-wire Interface

-// *****************************************************************************

-typedef struct _AT91S_TWI {

-	AT91_REG	 TWI_CR; 	// Control Register

-	AT91_REG	 TWI_MMR; 	// Master Mode Register

-	AT91_REG	 Reserved0[1]; 	// 

-	AT91_REG	 TWI_IADR; 	// Internal Address Register

-	AT91_REG	 TWI_CWGR; 	// Clock Waveform Generator Register

-	AT91_REG	 Reserved1[3]; 	// 

-	AT91_REG	 TWI_SR; 	// Status Register

-	AT91_REG	 TWI_IER; 	// Interrupt Enable Register

-	AT91_REG	 TWI_IDR; 	// Interrupt Disable Register

-	AT91_REG	 TWI_IMR; 	// Interrupt Mask Register

-	AT91_REG	 TWI_RHR; 	// Receive Holding Register

-	AT91_REG	 TWI_THR; 	// Transmit Holding Register

-} AT91S_TWI, *AT91PS_TWI;

-

-// -------- TWI_CR : (TWI Offset: 0x0) TWI Control Register -------- 

-#define AT91C_TWI_START       ((unsigned int) 0x1 <<  0) // (TWI) Send a START Condition

-#define AT91C_TWI_STOP        ((unsigned int) 0x1 <<  1) // (TWI) Send a STOP Condition

-#define AT91C_TWI_MSEN        ((unsigned int) 0x1 <<  2) // (TWI) TWI Master Transfer Enabled

-#define AT91C_TWI_MSDIS       ((unsigned int) 0x1 <<  3) // (TWI) TWI Master Transfer Disabled

-#define AT91C_TWI_SWRST       ((unsigned int) 0x1 <<  7) // (TWI) Software Reset

-// -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register -------- 

-#define AT91C_TWI_IADRSZ      ((unsigned int) 0x3 <<  8) // (TWI) Internal Device Address Size

-#define 	AT91C_TWI_IADRSZ_NO                   ((unsigned int) 0x0 <<  8) // (TWI) No internal device address

-#define 	AT91C_TWI_IADRSZ_1_BYTE               ((unsigned int) 0x1 <<  8) // (TWI) One-byte internal device address

-#define 	AT91C_TWI_IADRSZ_2_BYTE               ((unsigned int) 0x2 <<  8) // (TWI) Two-byte internal device address

-#define 	AT91C_TWI_IADRSZ_3_BYTE               ((unsigned int) 0x3 <<  8) // (TWI) Three-byte internal device address

-#define AT91C_TWI_MREAD       ((unsigned int) 0x1 << 12) // (TWI) Master Read Direction

-#define AT91C_TWI_DADR        ((unsigned int) 0x7F << 16) // (TWI) Device Address

-// -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register -------- 

-#define AT91C_TWI_CLDIV       ((unsigned int) 0xFF <<  0) // (TWI) Clock Low Divider

-#define AT91C_TWI_CHDIV       ((unsigned int) 0xFF <<  8) // (TWI) Clock High Divider

-#define AT91C_TWI_CKDIV       ((unsigned int) 0x7 << 16) // (TWI) Clock Divider

-// -------- TWI_SR : (TWI Offset: 0x20) TWI Status Register -------- 

-#define AT91C_TWI_TXCOMP      ((unsigned int) 0x1 <<  0) // (TWI) Transmission Completed

-#define AT91C_TWI_RXRDY       ((unsigned int) 0x1 <<  1) // (TWI) Receive holding register ReaDY

-#define AT91C_TWI_TXRDY       ((unsigned int) 0x1 <<  2) // (TWI) Transmit holding register ReaDY

-#define AT91C_TWI_OVRE        ((unsigned int) 0x1 <<  6) // (TWI) Overrun Error

-#define AT91C_TWI_UNRE        ((unsigned int) 0x1 <<  7) // (TWI) Underrun Error

-#define AT91C_TWI_NACK        ((unsigned int) 0x1 <<  8) // (TWI) Not Acknowledged

-// -------- TWI_IER : (TWI Offset: 0x24) TWI Interrupt Enable Register -------- 

-// -------- TWI_IDR : (TWI Offset: 0x28) TWI Interrupt Disable Register -------- 

-// -------- TWI_IMR : (TWI Offset: 0x2c) TWI Interrupt Mask Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR PWMC Channel Interface

-// *****************************************************************************

-typedef struct _AT91S_PWMC_CH {

-	AT91_REG	 PWMC_CMR; 	// Channel Mode Register

-	AT91_REG	 PWMC_CDTYR; 	// Channel Duty Cycle Register

-	AT91_REG	 PWMC_CPRDR; 	// Channel Period Register

-	AT91_REG	 PWMC_CCNTR; 	// Channel Counter Register

-	AT91_REG	 PWMC_CUPDR; 	// Channel Update Register

-	AT91_REG	 PWMC_Reserved[3]; 	// Reserved

-} AT91S_PWMC_CH, *AT91PS_PWMC_CH;

-

-// -------- PWMC_CMR : (PWMC_CH Offset: 0x0) PWMC Channel Mode Register -------- 

-#define AT91C_PWMC_CPRE       ((unsigned int) 0xF <<  0) // (PWMC_CH) Channel Pre-scaler : PWMC_CLKx

-#define 	AT91C_PWMC_CPRE_MCK                  ((unsigned int) 0x0) // (PWMC_CH) 

-#define 	AT91C_PWMC_CPRE_MCKA                 ((unsigned int) 0xB) // (PWMC_CH) 

-#define 	AT91C_PWMC_CPRE_MCKB                 ((unsigned int) 0xC) // (PWMC_CH) 

-#define AT91C_PWMC_CALG       ((unsigned int) 0x1 <<  8) // (PWMC_CH) Channel Alignment

-#define AT91C_PWMC_CPOL       ((unsigned int) 0x1 <<  9) // (PWMC_CH) Channel Polarity

-#define AT91C_PWMC_CPD        ((unsigned int) 0x1 << 10) // (PWMC_CH) Channel Update Period

-// -------- PWMC_CDTYR : (PWMC_CH Offset: 0x4) PWMC Channel Duty Cycle Register -------- 

-#define AT91C_PWMC_CDTY       ((unsigned int) 0x0 <<  0) // (PWMC_CH) Channel Duty Cycle

-// -------- PWMC_CPRDR : (PWMC_CH Offset: 0x8) PWMC Channel Period Register -------- 

-#define AT91C_PWMC_CPRD       ((unsigned int) 0x0 <<  0) // (PWMC_CH) Channel Period

-// -------- PWMC_CCNTR : (PWMC_CH Offset: 0xc) PWMC Channel Counter Register -------- 

-#define AT91C_PWMC_CCNT       ((unsigned int) 0x0 <<  0) // (PWMC_CH) Channel Counter

-// -------- PWMC_CUPDR : (PWMC_CH Offset: 0x10) PWMC Channel Update Register -------- 

-#define AT91C_PWMC_CUPD       ((unsigned int) 0x0 <<  0) // (PWMC_CH) Channel Update

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Pulse Width Modulation Controller Interface

-// *****************************************************************************

-typedef struct _AT91S_PWMC {

-	AT91_REG	 PWMC_MR; 	// PWMC Mode Register

-	AT91_REG	 PWMC_ENA; 	// PWMC Enable Register

-	AT91_REG	 PWMC_DIS; 	// PWMC Disable Register

-	AT91_REG	 PWMC_SR; 	// PWMC Status Register

-	AT91_REG	 PWMC_IER; 	// PWMC Interrupt Enable Register

-	AT91_REG	 PWMC_IDR; 	// PWMC Interrupt Disable Register

-	AT91_REG	 PWMC_IMR; 	// PWMC Interrupt Mask Register

-	AT91_REG	 PWMC_ISR; 	// PWMC Interrupt Status Register

-	AT91_REG	 Reserved0[55]; 	// 

-	AT91_REG	 PWMC_VR; 	// PWMC Version Register

-	AT91_REG	 Reserved1[64]; 	// 

-	AT91S_PWMC_CH	 PWMC_CH[4]; 	// PWMC Channel

-} AT91S_PWMC, *AT91PS_PWMC;

-

-// -------- PWMC_MR : (PWMC Offset: 0x0) PWMC Mode Register -------- 

-#define AT91C_PWMC_DIVA       ((unsigned int) 0xFF <<  0) // (PWMC) CLKA divide factor.

-#define AT91C_PWMC_PREA       ((unsigned int) 0xF <<  8) // (PWMC) Divider Input Clock Prescaler A

-#define 	AT91C_PWMC_PREA_MCK                  ((unsigned int) 0x0 <<  8) // (PWMC) 

-#define AT91C_PWMC_DIVB       ((unsigned int) 0xFF << 16) // (PWMC) CLKB divide factor.

-#define AT91C_PWMC_PREB       ((unsigned int) 0xF << 24) // (PWMC) Divider Input Clock Prescaler B

-#define 	AT91C_PWMC_PREB_MCK                  ((unsigned int) 0x0 << 24) // (PWMC) 

-// -------- PWMC_ENA : (PWMC Offset: 0x4) PWMC Enable Register -------- 

-#define AT91C_PWMC_CHID0      ((unsigned int) 0x1 <<  0) // (PWMC) Channel ID 0

-#define AT91C_PWMC_CHID1      ((unsigned int) 0x1 <<  1) // (PWMC) Channel ID 1

-#define AT91C_PWMC_CHID2      ((unsigned int) 0x1 <<  2) // (PWMC) Channel ID 2

-#define AT91C_PWMC_CHID3      ((unsigned int) 0x1 <<  3) // (PWMC) Channel ID 3

-// -------- PWMC_DIS : (PWMC Offset: 0x8) PWMC Disable Register -------- 

-// -------- PWMC_SR : (PWMC Offset: 0xc) PWMC Status Register -------- 

-// -------- PWMC_IER : (PWMC Offset: 0x10) PWMC Interrupt Enable Register -------- 

-// -------- PWMC_IDR : (PWMC Offset: 0x14) PWMC Interrupt Disable Register -------- 

-// -------- PWMC_IMR : (PWMC Offset: 0x18) PWMC Interrupt Mask Register -------- 

-// -------- PWMC_ISR : (PWMC Offset: 0x1c) PWMC Interrupt Status Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR USB Device Interface

-// *****************************************************************************

-typedef struct _AT91S_UDP {

-	AT91_REG	 UDP_NUM; 	// Frame Number Register

-	AT91_REG	 UDP_GLBSTATE; 	// Global State Register

-	AT91_REG	 UDP_FADDR; 	// Function Address Register

-	AT91_REG	 Reserved0[1]; 	// 

-	AT91_REG	 UDP_IER; 	// Interrupt Enable Register

-	AT91_REG	 UDP_IDR; 	// Interrupt Disable Register

-	AT91_REG	 UDP_IMR; 	// Interrupt Mask Register

-	AT91_REG	 UDP_ISR; 	// Interrupt Status Register

-	AT91_REG	 UDP_ICR; 	// Interrupt Clear Register

-	AT91_REG	 Reserved1[1]; 	// 

-	AT91_REG	 UDP_RSTEP; 	// Reset Endpoint Register

-	AT91_REG	 Reserved2[1]; 	// 

-	AT91_REG	 UDP_CSR[6]; 	// Endpoint Control and Status Register

-	AT91_REG	 Reserved3[2]; 	// 

-	AT91_REG	 UDP_FDR[6]; 	// Endpoint FIFO Data Register

-	AT91_REG	 Reserved4[3]; 	// 

-	AT91_REG	 UDP_TXVC; 	// Transceiver Control Register

-} AT91S_UDP, *AT91PS_UDP;

-

-// -------- UDP_FRM_NUM : (UDP Offset: 0x0) USB Frame Number Register -------- 

-#define AT91C_UDP_FRM_NUM     ((unsigned int) 0x7FF <<  0) // (UDP) Frame Number as Defined in the Packet Field Formats

-#define AT91C_UDP_FRM_ERR     ((unsigned int) 0x1 << 16) // (UDP) Frame Error

-#define AT91C_UDP_FRM_OK      ((unsigned int) 0x1 << 17) // (UDP) Frame OK

-// -------- UDP_GLB_STATE : (UDP Offset: 0x4) USB Global State Register -------- 

-#define AT91C_UDP_FADDEN      ((unsigned int) 0x1 <<  0) // (UDP) Function Address Enable

-#define AT91C_UDP_CONFG       ((unsigned int) 0x1 <<  1) // (UDP) Configured

-#define AT91C_UDP_ESR         ((unsigned int) 0x1 <<  2) // (UDP) Enable Send Resume

-#define AT91C_UDP_RSMINPR     ((unsigned int) 0x1 <<  3) // (UDP) A Resume Has Been Sent to the Host

-#define AT91C_UDP_RMWUPE      ((unsigned int) 0x1 <<  4) // (UDP) Remote Wake Up Enable

-// -------- UDP_FADDR : (UDP Offset: 0x8) USB Function Address Register -------- 

-#define AT91C_UDP_FADD        ((unsigned int) 0xFF <<  0) // (UDP) Function Address Value

-#define AT91C_UDP_FEN         ((unsigned int) 0x1 <<  8) // (UDP) Function Enable

-// -------- UDP_IER : (UDP Offset: 0x10) USB Interrupt Enable Register -------- 

-#define AT91C_UDP_EPINT0      ((unsigned int) 0x1 <<  0) // (UDP) Endpoint 0 Interrupt

-#define AT91C_UDP_EPINT1      ((unsigned int) 0x1 <<  1) // (UDP) Endpoint 0 Interrupt

-#define AT91C_UDP_EPINT2      ((unsigned int) 0x1 <<  2) // (UDP) Endpoint 2 Interrupt

-#define AT91C_UDP_EPINT3      ((unsigned int) 0x1 <<  3) // (UDP) Endpoint 3 Interrupt

-#define AT91C_UDP_EPINT4      ((unsigned int) 0x1 <<  4) // (UDP) Endpoint 4 Interrupt

-#define AT91C_UDP_EPINT5      ((unsigned int) 0x1 <<  5) // (UDP) Endpoint 5 Interrupt

-#define AT91C_UDP_RXSUSP      ((unsigned int) 0x1 <<  8) // (UDP) USB Suspend Interrupt

-#define AT91C_UDP_RXRSM       ((unsigned int) 0x1 <<  9) // (UDP) USB Resume Interrupt

-#define AT91C_UDP_EXTRSM      ((unsigned int) 0x1 << 10) // (UDP) USB External Resume Interrupt

-#define AT91C_UDP_SOFINT      ((unsigned int) 0x1 << 11) // (UDP) USB Start Of frame Interrupt

-#define AT91C_UDP_WAKEUP      ((unsigned int) 0x1 << 13) // (UDP) USB Resume Interrupt

-// -------- UDP_IDR : (UDP Offset: 0x14) USB Interrupt Disable Register -------- 

-// -------- UDP_IMR : (UDP Offset: 0x18) USB Interrupt Mask Register -------- 

-// -------- UDP_ISR : (UDP Offset: 0x1c) USB Interrupt Status Register -------- 

-#define AT91C_UDP_ENDBUSRES   ((unsigned int) 0x1 << 12) // (UDP) USB End Of Bus Reset Interrupt

-// -------- UDP_ICR : (UDP Offset: 0x20) USB Interrupt Clear Register -------- 

-// -------- UDP_RST_EP : (UDP Offset: 0x28) USB Reset Endpoint Register -------- 

-#define AT91C_UDP_EP0         ((unsigned int) 0x1 <<  0) // (UDP) Reset Endpoint 0

-#define AT91C_UDP_EP1         ((unsigned int) 0x1 <<  1) // (UDP) Reset Endpoint 1

-#define AT91C_UDP_EP2         ((unsigned int) 0x1 <<  2) // (UDP) Reset Endpoint 2

-#define AT91C_UDP_EP3         ((unsigned int) 0x1 <<  3) // (UDP) Reset Endpoint 3

-#define AT91C_UDP_EP4         ((unsigned int) 0x1 <<  4) // (UDP) Reset Endpoint 4

-#define AT91C_UDP_EP5         ((unsigned int) 0x1 <<  5) // (UDP) Reset Endpoint 5

-// -------- UDP_CSR : (UDP Offset: 0x30) USB Endpoint Control and Status Register -------- 

-#define AT91C_UDP_TXCOMP      ((unsigned int) 0x1 <<  0) // (UDP) Generates an IN packet with data previously written in the DPR

-#define AT91C_UDP_RX_DATA_BK0 ((unsigned int) 0x1 <<  1) // (UDP) Receive Data Bank 0

-#define AT91C_UDP_RXSETUP     ((unsigned int) 0x1 <<  2) // (UDP) Sends STALL to the Host (Control endpoints)

-#define AT91C_UDP_ISOERROR    ((unsigned int) 0x1 <<  3) // (UDP) Isochronous error (Isochronous endpoints)

-#define AT91C_UDP_TXPKTRDY    ((unsigned int) 0x1 <<  4) // (UDP) Transmit Packet Ready

-#define AT91C_UDP_FORCESTALL  ((unsigned int) 0x1 <<  5) // (UDP) Force Stall (used by Control, Bulk and Isochronous endpoints).

-#define AT91C_UDP_RX_DATA_BK1 ((unsigned int) 0x1 <<  6) // (UDP) Receive Data Bank 1 (only used by endpoints with ping-pong attributes).

-#define AT91C_UDP_DIR         ((unsigned int) 0x1 <<  7) // (UDP) Transfer Direction

-#define AT91C_UDP_EPTYPE      ((unsigned int) 0x7 <<  8) // (UDP) Endpoint type

-#define 	AT91C_UDP_EPTYPE_CTRL                 ((unsigned int) 0x0 <<  8) // (UDP) Control

-#define 	AT91C_UDP_EPTYPE_ISO_OUT              ((unsigned int) 0x1 <<  8) // (UDP) Isochronous OUT

-#define 	AT91C_UDP_EPTYPE_BULK_OUT             ((unsigned int) 0x2 <<  8) // (UDP) Bulk OUT

-#define 	AT91C_UDP_EPTYPE_INT_OUT              ((unsigned int) 0x3 <<  8) // (UDP) Interrupt OUT

-#define 	AT91C_UDP_EPTYPE_ISO_IN               ((unsigned int) 0x5 <<  8) // (UDP) Isochronous IN

-#define 	AT91C_UDP_EPTYPE_BULK_IN              ((unsigned int) 0x6 <<  8) // (UDP) Bulk IN

-#define 	AT91C_UDP_EPTYPE_INT_IN               ((unsigned int) 0x7 <<  8) // (UDP) Interrupt IN

-#define AT91C_UDP_DTGLE       ((unsigned int) 0x1 << 11) // (UDP) Data Toggle

-#define AT91C_UDP_EPEDS       ((unsigned int) 0x1 << 15) // (UDP) Endpoint Enable Disable

-#define AT91C_UDP_RXBYTECNT   ((unsigned int) 0x7FF << 16) // (UDP) Number Of Bytes Available in the FIFO

-// -------- UDP_TXVC : (UDP Offset: 0x74) Transceiver Control Register -------- 

-#define AT91C_UDP_TXVDIS      ((unsigned int) 0x1 <<  8) // (UDP) 

-#define AT91C_UDP_PUON        ((unsigned int) 0x1 <<  9) // (UDP) Pull-up ON

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Timer Counter Channel Interface

-// *****************************************************************************

-typedef struct _AT91S_TC {

-	AT91_REG	 TC_CCR; 	// Channel Control Register

-	AT91_REG	 TC_CMR; 	// Channel Mode Register (Capture Mode / Waveform Mode)

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 TC_CV; 	// Counter Value

-	AT91_REG	 TC_RA; 	// Register A

-	AT91_REG	 TC_RB; 	// Register B

-	AT91_REG	 TC_RC; 	// Register C

-	AT91_REG	 TC_SR; 	// Status Register

-	AT91_REG	 TC_IER; 	// Interrupt Enable Register

-	AT91_REG	 TC_IDR; 	// Interrupt Disable Register

-	AT91_REG	 TC_IMR; 	// Interrupt Mask Register

-} AT91S_TC, *AT91PS_TC;

-

-// -------- TC_CCR : (TC Offset: 0x0) TC Channel Control Register -------- 

-#define AT91C_TC_CLKEN        ((unsigned int) 0x1 <<  0) // (TC) Counter Clock Enable Command

-#define AT91C_TC_CLKDIS       ((unsigned int) 0x1 <<  1) // (TC) Counter Clock Disable Command

-#define AT91C_TC_SWTRG        ((unsigned int) 0x1 <<  2) // (TC) Software Trigger Command

-// -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode -------- 

-#define AT91C_TC_CLKS         ((unsigned int) 0x7 <<  0) // (TC) Clock Selection

-#define 	AT91C_TC_CLKS_TIMER_DIV1_CLOCK     ((unsigned int) 0x0) // (TC) Clock selected: TIMER_DIV1_CLOCK

-#define 	AT91C_TC_CLKS_TIMER_DIV2_CLOCK     ((unsigned int) 0x1) // (TC) Clock selected: TIMER_DIV2_CLOCK

-#define 	AT91C_TC_CLKS_TIMER_DIV3_CLOCK     ((unsigned int) 0x2) // (TC) Clock selected: TIMER_DIV3_CLOCK

-#define 	AT91C_TC_CLKS_TIMER_DIV4_CLOCK     ((unsigned int) 0x3) // (TC) Clock selected: TIMER_DIV4_CLOCK

-#define 	AT91C_TC_CLKS_TIMER_DIV5_CLOCK     ((unsigned int) 0x4) // (TC) Clock selected: TIMER_DIV5_CLOCK

-#define 	AT91C_TC_CLKS_XC0                  ((unsigned int) 0x5) // (TC) Clock selected: XC0

-#define 	AT91C_TC_CLKS_XC1                  ((unsigned int) 0x6) // (TC) Clock selected: XC1

-#define 	AT91C_TC_CLKS_XC2                  ((unsigned int) 0x7) // (TC) Clock selected: XC2

-#define AT91C_TC_CLKI         ((unsigned int) 0x1 <<  3) // (TC) Clock Invert

-#define AT91C_TC_BURST        ((unsigned int) 0x3 <<  4) // (TC) Burst Signal Selection

-#define 	AT91C_TC_BURST_NONE                 ((unsigned int) 0x0 <<  4) // (TC) The clock is not gated by an external signal

-#define 	AT91C_TC_BURST_XC0                  ((unsigned int) 0x1 <<  4) // (TC) XC0 is ANDed with the selected clock

-#define 	AT91C_TC_BURST_XC1                  ((unsigned int) 0x2 <<  4) // (TC) XC1 is ANDed with the selected clock

-#define 	AT91C_TC_BURST_XC2                  ((unsigned int) 0x3 <<  4) // (TC) XC2 is ANDed with the selected clock

-#define AT91C_TC_CPCSTOP      ((unsigned int) 0x1 <<  6) // (TC) Counter Clock Stopped with RC Compare

-#define AT91C_TC_LDBSTOP      ((unsigned int) 0x1 <<  6) // (TC) Counter Clock Stopped with RB Loading

-#define AT91C_TC_CPCDIS       ((unsigned int) 0x1 <<  7) // (TC) Counter Clock Disable with RC Compare

-#define AT91C_TC_LDBDIS       ((unsigned int) 0x1 <<  7) // (TC) Counter Clock Disabled with RB Loading

-#define AT91C_TC_ETRGEDG      ((unsigned int) 0x3 <<  8) // (TC) External Trigger Edge Selection

-#define 	AT91C_TC_ETRGEDG_NONE                 ((unsigned int) 0x0 <<  8) // (TC) Edge: None

-#define 	AT91C_TC_ETRGEDG_RISING               ((unsigned int) 0x1 <<  8) // (TC) Edge: rising edge

-#define 	AT91C_TC_ETRGEDG_FALLING              ((unsigned int) 0x2 <<  8) // (TC) Edge: falling edge

-#define 	AT91C_TC_ETRGEDG_BOTH                 ((unsigned int) 0x3 <<  8) // (TC) Edge: each edge

-#define AT91C_TC_EEVTEDG      ((unsigned int) 0x3 <<  8) // (TC) External Event Edge Selection

-#define 	AT91C_TC_EEVTEDG_NONE                 ((unsigned int) 0x0 <<  8) // (TC) Edge: None

-#define 	AT91C_TC_EEVTEDG_RISING               ((unsigned int) 0x1 <<  8) // (TC) Edge: rising edge

-#define 	AT91C_TC_EEVTEDG_FALLING              ((unsigned int) 0x2 <<  8) // (TC) Edge: falling edge

-#define 	AT91C_TC_EEVTEDG_BOTH                 ((unsigned int) 0x3 <<  8) // (TC) Edge: each edge

-#define AT91C_TC_EEVT         ((unsigned int) 0x3 << 10) // (TC) External Event  Selection

-#define 	AT91C_TC_EEVT_TIOB                 ((unsigned int) 0x0 << 10) // (TC) Signal selected as external event: TIOB TIOB direction: input

-#define 	AT91C_TC_EEVT_XC0                  ((unsigned int) 0x1 << 10) // (TC) Signal selected as external event: XC0 TIOB direction: output

-#define 	AT91C_TC_EEVT_XC1                  ((unsigned int) 0x2 << 10) // (TC) Signal selected as external event: XC1 TIOB direction: output

-#define 	AT91C_TC_EEVT_XC2                  ((unsigned int) 0x3 << 10) // (TC) Signal selected as external event: XC2 TIOB direction: output

-#define AT91C_TC_ABETRG       ((unsigned int) 0x1 << 10) // (TC) TIOA or TIOB External Trigger Selection

-#define AT91C_TC_ENETRG       ((unsigned int) 0x1 << 12) // (TC) External Event Trigger enable

-#define AT91C_TC_WAVESEL      ((unsigned int) 0x3 << 13) // (TC) Waveform  Selection

-#define 	AT91C_TC_WAVESEL_UP                   ((unsigned int) 0x0 << 13) // (TC) UP mode without atomatic trigger on RC Compare

-#define 	AT91C_TC_WAVESEL_UPDOWN               ((unsigned int) 0x1 << 13) // (TC) UPDOWN mode without automatic trigger on RC Compare

-#define 	AT91C_TC_WAVESEL_UP_AUTO              ((unsigned int) 0x2 << 13) // (TC) UP mode with automatic trigger on RC Compare

-#define 	AT91C_TC_WAVESEL_UPDOWN_AUTO          ((unsigned int) 0x3 << 13) // (TC) UPDOWN mode with automatic trigger on RC Compare

-#define AT91C_TC_CPCTRG       ((unsigned int) 0x1 << 14) // (TC) RC Compare Trigger Enable

-#define AT91C_TC_WAVE         ((unsigned int) 0x1 << 15) // (TC) 

-#define AT91C_TC_ACPA         ((unsigned int) 0x3 << 16) // (TC) RA Compare Effect on TIOA

-#define 	AT91C_TC_ACPA_NONE                 ((unsigned int) 0x0 << 16) // (TC) Effect: none

-#define 	AT91C_TC_ACPA_SET                  ((unsigned int) 0x1 << 16) // (TC) Effect: set

-#define 	AT91C_TC_ACPA_CLEAR                ((unsigned int) 0x2 << 16) // (TC) Effect: clear

-#define 	AT91C_TC_ACPA_TOGGLE               ((unsigned int) 0x3 << 16) // (TC) Effect: toggle

-#define AT91C_TC_LDRA         ((unsigned int) 0x3 << 16) // (TC) RA Loading Selection

-#define 	AT91C_TC_LDRA_NONE                 ((unsigned int) 0x0 << 16) // (TC) Edge: None

-#define 	AT91C_TC_LDRA_RISING               ((unsigned int) 0x1 << 16) // (TC) Edge: rising edge of TIOA

-#define 	AT91C_TC_LDRA_FALLING              ((unsigned int) 0x2 << 16) // (TC) Edge: falling edge of TIOA

-#define 	AT91C_TC_LDRA_BOTH                 ((unsigned int) 0x3 << 16) // (TC) Edge: each edge of TIOA

-#define AT91C_TC_ACPC         ((unsigned int) 0x3 << 18) // (TC) RC Compare Effect on TIOA

-#define 	AT91C_TC_ACPC_NONE                 ((unsigned int) 0x0 << 18) // (TC) Effect: none

-#define 	AT91C_TC_ACPC_SET                  ((unsigned int) 0x1 << 18) // (TC) Effect: set

-#define 	AT91C_TC_ACPC_CLEAR                ((unsigned int) 0x2 << 18) // (TC) Effect: clear

-#define 	AT91C_TC_ACPC_TOGGLE               ((unsigned int) 0x3 << 18) // (TC) Effect: toggle

-#define AT91C_TC_LDRB         ((unsigned int) 0x3 << 18) // (TC) RB Loading Selection

-#define 	AT91C_TC_LDRB_NONE                 ((unsigned int) 0x0 << 18) // (TC) Edge: None

-#define 	AT91C_TC_LDRB_RISING               ((unsigned int) 0x1 << 18) // (TC) Edge: rising edge of TIOA

-#define 	AT91C_TC_LDRB_FALLING              ((unsigned int) 0x2 << 18) // (TC) Edge: falling edge of TIOA

-#define 	AT91C_TC_LDRB_BOTH                 ((unsigned int) 0x3 << 18) // (TC) Edge: each edge of TIOA

-#define AT91C_TC_AEEVT        ((unsigned int) 0x3 << 20) // (TC) External Event Effect on TIOA

-#define 	AT91C_TC_AEEVT_NONE                 ((unsigned int) 0x0 << 20) // (TC) Effect: none

-#define 	AT91C_TC_AEEVT_SET                  ((unsigned int) 0x1 << 20) // (TC) Effect: set

-#define 	AT91C_TC_AEEVT_CLEAR                ((unsigned int) 0x2 << 20) // (TC) Effect: clear

-#define 	AT91C_TC_AEEVT_TOGGLE               ((unsigned int) 0x3 << 20) // (TC) Effect: toggle

-#define AT91C_TC_ASWTRG       ((unsigned int) 0x3 << 22) // (TC) Software Trigger Effect on TIOA

-#define 	AT91C_TC_ASWTRG_NONE                 ((unsigned int) 0x0 << 22) // (TC) Effect: none

-#define 	AT91C_TC_ASWTRG_SET                  ((unsigned int) 0x1 << 22) // (TC) Effect: set

-#define 	AT91C_TC_ASWTRG_CLEAR                ((unsigned int) 0x2 << 22) // (TC) Effect: clear

-#define 	AT91C_TC_ASWTRG_TOGGLE               ((unsigned int) 0x3 << 22) // (TC) Effect: toggle

-#define AT91C_TC_BCPB         ((unsigned int) 0x3 << 24) // (TC) RB Compare Effect on TIOB

-#define 	AT91C_TC_BCPB_NONE                 ((unsigned int) 0x0 << 24) // (TC) Effect: none

-#define 	AT91C_TC_BCPB_SET                  ((unsigned int) 0x1 << 24) // (TC) Effect: set

-#define 	AT91C_TC_BCPB_CLEAR                ((unsigned int) 0x2 << 24) // (TC) Effect: clear

-#define 	AT91C_TC_BCPB_TOGGLE               ((unsigned int) 0x3 << 24) // (TC) Effect: toggle

-#define AT91C_TC_BCPC         ((unsigned int) 0x3 << 26) // (TC) RC Compare Effect on TIOB

-#define 	AT91C_TC_BCPC_NONE                 ((unsigned int) 0x0 << 26) // (TC) Effect: none

-#define 	AT91C_TC_BCPC_SET                  ((unsigned int) 0x1 << 26) // (TC) Effect: set

-#define 	AT91C_TC_BCPC_CLEAR                ((unsigned int) 0x2 << 26) // (TC) Effect: clear

-#define 	AT91C_TC_BCPC_TOGGLE               ((unsigned int) 0x3 << 26) // (TC) Effect: toggle

-#define AT91C_TC_BEEVT        ((unsigned int) 0x3 << 28) // (TC) External Event Effect on TIOB

-#define 	AT91C_TC_BEEVT_NONE                 ((unsigned int) 0x0 << 28) // (TC) Effect: none

-#define 	AT91C_TC_BEEVT_SET                  ((unsigned int) 0x1 << 28) // (TC) Effect: set

-#define 	AT91C_TC_BEEVT_CLEAR                ((unsigned int) 0x2 << 28) // (TC) Effect: clear

-#define 	AT91C_TC_BEEVT_TOGGLE               ((unsigned int) 0x3 << 28) // (TC) Effect: toggle

-#define AT91C_TC_BSWTRG       ((unsigned int) 0x3 << 30) // (TC) Software Trigger Effect on TIOB

-#define 	AT91C_TC_BSWTRG_NONE                 ((unsigned int) 0x0 << 30) // (TC) Effect: none

-#define 	AT91C_TC_BSWTRG_SET                  ((unsigned int) 0x1 << 30) // (TC) Effect: set

-#define 	AT91C_TC_BSWTRG_CLEAR                ((unsigned int) 0x2 << 30) // (TC) Effect: clear

-#define 	AT91C_TC_BSWTRG_TOGGLE               ((unsigned int) 0x3 << 30) // (TC) Effect: toggle

-// -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register -------- 

-#define AT91C_TC_COVFS        ((unsigned int) 0x1 <<  0) // (TC) Counter Overflow

-#define AT91C_TC_LOVRS        ((unsigned int) 0x1 <<  1) // (TC) Load Overrun

-#define AT91C_TC_CPAS         ((unsigned int) 0x1 <<  2) // (TC) RA Compare

-#define AT91C_TC_CPBS         ((unsigned int) 0x1 <<  3) // (TC) RB Compare

-#define AT91C_TC_CPCS         ((unsigned int) 0x1 <<  4) // (TC) RC Compare

-#define AT91C_TC_LDRAS        ((unsigned int) 0x1 <<  5) // (TC) RA Loading

-#define AT91C_TC_LDRBS        ((unsigned int) 0x1 <<  6) // (TC) RB Loading

-#define AT91C_TC_ETRGS        ((unsigned int) 0x1 <<  7) // (TC) External Trigger

-#define AT91C_TC_CLKSTA       ((unsigned int) 0x1 << 16) // (TC) Clock Enabling

-#define AT91C_TC_MTIOA        ((unsigned int) 0x1 << 17) // (TC) TIOA Mirror

-#define AT91C_TC_MTIOB        ((unsigned int) 0x1 << 18) // (TC) TIOA Mirror

-// -------- TC_IER : (TC Offset: 0x24) TC Channel Interrupt Enable Register -------- 

-// -------- TC_IDR : (TC Offset: 0x28) TC Channel Interrupt Disable Register -------- 

-// -------- TC_IMR : (TC Offset: 0x2c) TC Channel Interrupt Mask Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Timer Counter Interface

-// *****************************************************************************

-typedef struct _AT91S_TCB {

-	AT91S_TC	 TCB_TC0; 	// TC Channel 0

-	AT91_REG	 Reserved0[4]; 	// 

-	AT91S_TC	 TCB_TC1; 	// TC Channel 1

-	AT91_REG	 Reserved1[4]; 	// 

-	AT91S_TC	 TCB_TC2; 	// TC Channel 2

-	AT91_REG	 Reserved2[4]; 	// 

-	AT91_REG	 TCB_BCR; 	// TC Block Control Register

-	AT91_REG	 TCB_BMR; 	// TC Block Mode Register

-} AT91S_TCB, *AT91PS_TCB;

-

-// -------- TCB_BCR : (TCB Offset: 0xc0) TC Block Control Register -------- 

-#define AT91C_TCB_SYNC        ((unsigned int) 0x1 <<  0) // (TCB) Synchro Command

-// -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register -------- 

-#define AT91C_TCB_TC0XC0S     ((unsigned int) 0x3 <<  0) // (TCB) External Clock Signal 0 Selection

-#define 	AT91C_TCB_TC0XC0S_TCLK0                ((unsigned int) 0x0) // (TCB) TCLK0 connected to XC0

-#define 	AT91C_TCB_TC0XC0S_NONE                 ((unsigned int) 0x1) // (TCB) None signal connected to XC0

-#define 	AT91C_TCB_TC0XC0S_TIOA1                ((unsigned int) 0x2) // (TCB) TIOA1 connected to XC0

-#define 	AT91C_TCB_TC0XC0S_TIOA2                ((unsigned int) 0x3) // (TCB) TIOA2 connected to XC0

-#define AT91C_TCB_TC1XC1S     ((unsigned int) 0x3 <<  2) // (TCB) External Clock Signal 1 Selection

-#define 	AT91C_TCB_TC1XC1S_TCLK1                ((unsigned int) 0x0 <<  2) // (TCB) TCLK1 connected to XC1

-#define 	AT91C_TCB_TC1XC1S_NONE                 ((unsigned int) 0x1 <<  2) // (TCB) None signal connected to XC1

-#define 	AT91C_TCB_TC1XC1S_TIOA0                ((unsigned int) 0x2 <<  2) // (TCB) TIOA0 connected to XC1

-#define 	AT91C_TCB_TC1XC1S_TIOA2                ((unsigned int) 0x3 <<  2) // (TCB) TIOA2 connected to XC1

-#define AT91C_TCB_TC2XC2S     ((unsigned int) 0x3 <<  4) // (TCB) External Clock Signal 2 Selection

-#define 	AT91C_TCB_TC2XC2S_TCLK2                ((unsigned int) 0x0 <<  4) // (TCB) TCLK2 connected to XC2

-#define 	AT91C_TCB_TC2XC2S_NONE                 ((unsigned int) 0x1 <<  4) // (TCB) None signal connected to XC2

-#define 	AT91C_TCB_TC2XC2S_TIOA0                ((unsigned int) 0x2 <<  4) // (TCB) TIOA0 connected to XC2

-#define 	AT91C_TCB_TC2XC2S_TIOA1                ((unsigned int) 0x3 <<  4) // (TCB) TIOA2 connected to XC2

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Control Area Network MailBox Interface

-// *****************************************************************************

-typedef struct _AT91S_CAN_MB {

-	AT91_REG	 CAN_MB_MMR; 	// MailBox Mode Register

-	AT91_REG	 CAN_MB_MAM; 	// MailBox Acceptance Mask Register

-	AT91_REG	 CAN_MB_MID; 	// MailBox ID Register

-	AT91_REG	 CAN_MB_MFID; 	// MailBox Family ID Register

-	AT91_REG	 CAN_MB_MSR; 	// MailBox Status Register

-	AT91_REG	 CAN_MB_MDL; 	// MailBox Data Low Register

-	AT91_REG	 CAN_MB_MDH; 	// MailBox Data High Register

-	AT91_REG	 CAN_MB_MCR; 	// MailBox Control Register

-} AT91S_CAN_MB, *AT91PS_CAN_MB;

-

-// -------- CAN_MMR : (CAN_MB Offset: 0x0) CAN Message Mode Register -------- 

-#define AT91C_CAN_MTIMEMARK   ((unsigned int) 0xFFFF <<  0) // (CAN_MB) Mailbox Timemark

-#define AT91C_CAN_PRIOR       ((unsigned int) 0xF << 16) // (CAN_MB) Mailbox Priority

-#define AT91C_CAN_MOT         ((unsigned int) 0x7 << 24) // (CAN_MB) Mailbox Object Type

-#define 	AT91C_CAN_MOT_DIS                  ((unsigned int) 0x0 << 24) // (CAN_MB) 

-#define 	AT91C_CAN_MOT_RX                   ((unsigned int) 0x1 << 24) // (CAN_MB) 

-#define 	AT91C_CAN_MOT_RXOVERWRITE          ((unsigned int) 0x2 << 24) // (CAN_MB) 

-#define 	AT91C_CAN_MOT_TX                   ((unsigned int) 0x3 << 24) // (CAN_MB) 

-#define 	AT91C_CAN_MOT_CONSUMER             ((unsigned int) 0x4 << 24) // (CAN_MB) 

-#define 	AT91C_CAN_MOT_PRODUCER             ((unsigned int) 0x5 << 24) // (CAN_MB) 

-// -------- CAN_MAM : (CAN_MB Offset: 0x4) CAN Message Acceptance Mask Register -------- 

-#define AT91C_CAN_MIDvB       ((unsigned int) 0x3FFFF <<  0) // (CAN_MB) Complementary bits for identifier in extended mode

-#define AT91C_CAN_MIDvA       ((unsigned int) 0x7FF << 18) // (CAN_MB) Identifier for standard frame mode

-#define AT91C_CAN_MIDE        ((unsigned int) 0x1 << 29) // (CAN_MB) Identifier Version

-// -------- CAN_MID : (CAN_MB Offset: 0x8) CAN Message ID Register -------- 

-// -------- CAN_MFID : (CAN_MB Offset: 0xc) CAN Message Family ID Register -------- 

-// -------- CAN_MSR : (CAN_MB Offset: 0x10) CAN Message Status Register -------- 

-#define AT91C_CAN_MTIMESTAMP  ((unsigned int) 0xFFFF <<  0) // (CAN_MB) Timer Value

-#define AT91C_CAN_MDLC        ((unsigned int) 0xF << 16) // (CAN_MB) Mailbox Data Length Code

-#define AT91C_CAN_MRTR        ((unsigned int) 0x1 << 20) // (CAN_MB) Mailbox Remote Transmission Request

-#define AT91C_CAN_MABT        ((unsigned int) 0x1 << 22) // (CAN_MB) Mailbox Message Abort

-#define AT91C_CAN_MRDY        ((unsigned int) 0x1 << 23) // (CAN_MB) Mailbox Ready

-#define AT91C_CAN_MMI         ((unsigned int) 0x1 << 24) // (CAN_MB) Mailbox Message Ignored

-// -------- CAN_MDL : (CAN_MB Offset: 0x14) CAN Message Data Low Register -------- 

-// -------- CAN_MDH : (CAN_MB Offset: 0x18) CAN Message Data High Register -------- 

-// -------- CAN_MCR : (CAN_MB Offset: 0x1c) CAN Message Control Register -------- 

-#define AT91C_CAN_MACR        ((unsigned int) 0x1 << 22) // (CAN_MB) Abort Request for Mailbox

-#define AT91C_CAN_MTCR        ((unsigned int) 0x1 << 23) // (CAN_MB) Mailbox Transfer Command

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Control Area Network Interface

-// *****************************************************************************

-typedef struct _AT91S_CAN {

-	AT91_REG	 CAN_MR; 	// Mode Register

-	AT91_REG	 CAN_IER; 	// Interrupt Enable Register

-	AT91_REG	 CAN_IDR; 	// Interrupt Disable Register

-	AT91_REG	 CAN_IMR; 	// Interrupt Mask Register

-	AT91_REG	 CAN_SR; 	// Status Register

-	AT91_REG	 CAN_BR; 	// Baudrate Register

-	AT91_REG	 CAN_TIM; 	// Timer Register

-	AT91_REG	 CAN_TIMESTP; 	// Time Stamp Register

-	AT91_REG	 CAN_ECR; 	// Error Counter Register

-	AT91_REG	 CAN_TCR; 	// Transfer Command Register

-	AT91_REG	 CAN_ACR; 	// Abort Command Register

-	AT91_REG	 Reserved0[52]; 	// 

-	AT91_REG	 CAN_VR; 	// Version Register

-	AT91_REG	 Reserved1[64]; 	// 

-	AT91S_CAN_MB	 CAN_MB0; 	// CAN Mailbox 0

-	AT91S_CAN_MB	 CAN_MB1; 	// CAN Mailbox 1

-	AT91S_CAN_MB	 CAN_MB2; 	// CAN Mailbox 2

-	AT91S_CAN_MB	 CAN_MB3; 	// CAN Mailbox 3

-	AT91S_CAN_MB	 CAN_MB4; 	// CAN Mailbox 4

-	AT91S_CAN_MB	 CAN_MB5; 	// CAN Mailbox 5

-	AT91S_CAN_MB	 CAN_MB6; 	// CAN Mailbox 6

-	AT91S_CAN_MB	 CAN_MB7; 	// CAN Mailbox 7

-	AT91S_CAN_MB	 CAN_MB8; 	// CAN Mailbox 8

-	AT91S_CAN_MB	 CAN_MB9; 	// CAN Mailbox 9

-	AT91S_CAN_MB	 CAN_MB10; 	// CAN Mailbox 10

-	AT91S_CAN_MB	 CAN_MB11; 	// CAN Mailbox 11

-	AT91S_CAN_MB	 CAN_MB12; 	// CAN Mailbox 12

-	AT91S_CAN_MB	 CAN_MB13; 	// CAN Mailbox 13

-	AT91S_CAN_MB	 CAN_MB14; 	// CAN Mailbox 14

-	AT91S_CAN_MB	 CAN_MB15; 	// CAN Mailbox 15

-} AT91S_CAN, *AT91PS_CAN;

-

-// -------- CAN_MR : (CAN Offset: 0x0) CAN Mode Register -------- 

-#define AT91C_CAN_CANEN       ((unsigned int) 0x1 <<  0) // (CAN) CAN Controller Enable

-#define AT91C_CAN_LPM         ((unsigned int) 0x1 <<  1) // (CAN) Disable/Enable Low Power Mode

-#define AT91C_CAN_ABM         ((unsigned int) 0x1 <<  2) // (CAN) Disable/Enable Autobaud/Listen Mode

-#define AT91C_CAN_OVL         ((unsigned int) 0x1 <<  3) // (CAN) Disable/Enable Overload Frame

-#define AT91C_CAN_TEOF        ((unsigned int) 0x1 <<  4) // (CAN) Time Stamp messages at each end of Frame

-#define AT91C_CAN_TTM         ((unsigned int) 0x1 <<  5) // (CAN) Disable/Enable Time Trigger Mode

-#define AT91C_CAN_TIMFRZ      ((unsigned int) 0x1 <<  6) // (CAN) Enable Timer Freeze

-#define AT91C_CAN_DRPT        ((unsigned int) 0x1 <<  7) // (CAN) Disable Repeat

-// -------- CAN_IER : (CAN Offset: 0x4) CAN Interrupt Enable Register -------- 

-#define AT91C_CAN_MB0         ((unsigned int) 0x1 <<  0) // (CAN) Mailbox 0 Flag

-#define AT91C_CAN_MB1         ((unsigned int) 0x1 <<  1) // (CAN) Mailbox 1 Flag

-#define AT91C_CAN_MB2         ((unsigned int) 0x1 <<  2) // (CAN) Mailbox 2 Flag

-#define AT91C_CAN_MB3         ((unsigned int) 0x1 <<  3) // (CAN) Mailbox 3 Flag

-#define AT91C_CAN_MB4         ((unsigned int) 0x1 <<  4) // (CAN) Mailbox 4 Flag

-#define AT91C_CAN_MB5         ((unsigned int) 0x1 <<  5) // (CAN) Mailbox 5 Flag

-#define AT91C_CAN_MB6         ((unsigned int) 0x1 <<  6) // (CAN) Mailbox 6 Flag

-#define AT91C_CAN_MB7         ((unsigned int) 0x1 <<  7) // (CAN) Mailbox 7 Flag

-#define AT91C_CAN_MB8         ((unsigned int) 0x1 <<  8) // (CAN) Mailbox 8 Flag

-#define AT91C_CAN_MB9         ((unsigned int) 0x1 <<  9) // (CAN) Mailbox 9 Flag

-#define AT91C_CAN_MB10        ((unsigned int) 0x1 << 10) // (CAN) Mailbox 10 Flag

-#define AT91C_CAN_MB11        ((unsigned int) 0x1 << 11) // (CAN) Mailbox 11 Flag

-#define AT91C_CAN_MB12        ((unsigned int) 0x1 << 12) // (CAN) Mailbox 12 Flag

-#define AT91C_CAN_MB13        ((unsigned int) 0x1 << 13) // (CAN) Mailbox 13 Flag

-#define AT91C_CAN_MB14        ((unsigned int) 0x1 << 14) // (CAN) Mailbox 14 Flag

-#define AT91C_CAN_MB15        ((unsigned int) 0x1 << 15) // (CAN) Mailbox 15 Flag

-#define AT91C_CAN_ERRA        ((unsigned int) 0x1 << 16) // (CAN) Error Active Mode Flag

-#define AT91C_CAN_WARN        ((unsigned int) 0x1 << 17) // (CAN) Warning Limit Flag

-#define AT91C_CAN_ERRP        ((unsigned int) 0x1 << 18) // (CAN) Error Passive Mode Flag

-#define AT91C_CAN_BOFF        ((unsigned int) 0x1 << 19) // (CAN) Bus Off Mode Flag

-#define AT91C_CAN_SLEEP       ((unsigned int) 0x1 << 20) // (CAN) Sleep Flag

-#define AT91C_CAN_WAKEUP      ((unsigned int) 0x1 << 21) // (CAN) Wakeup Flag

-#define AT91C_CAN_TOVF        ((unsigned int) 0x1 << 22) // (CAN) Timer Overflow Flag

-#define AT91C_CAN_TSTP        ((unsigned int) 0x1 << 23) // (CAN) Timestamp Flag

-#define AT91C_CAN_CERR        ((unsigned int) 0x1 << 24) // (CAN) CRC Error

-#define AT91C_CAN_SERR        ((unsigned int) 0x1 << 25) // (CAN) Stuffing Error

-#define AT91C_CAN_AERR        ((unsigned int) 0x1 << 26) // (CAN) Acknowledgment Error

-#define AT91C_CAN_FERR        ((unsigned int) 0x1 << 27) // (CAN) Form Error

-#define AT91C_CAN_BERR        ((unsigned int) 0x1 << 28) // (CAN) Bit Error

-// -------- CAN_IDR : (CAN Offset: 0x8) CAN Interrupt Disable Register -------- 

-// -------- CAN_IMR : (CAN Offset: 0xc) CAN Interrupt Mask Register -------- 

-// -------- CAN_SR : (CAN Offset: 0x10) CAN Status Register -------- 

-#define AT91C_CAN_RBSY        ((unsigned int) 0x1 << 29) // (CAN) Receiver Busy

-#define AT91C_CAN_TBSY        ((unsigned int) 0x1 << 30) // (CAN) Transmitter Busy

-#define AT91C_CAN_OVLY        ((unsigned int) 0x1 << 31) // (CAN) Overload Busy

-// -------- CAN_BR : (CAN Offset: 0x14) CAN Baudrate Register -------- 

-#define AT91C_CAN_PHASE2      ((unsigned int) 0x7 <<  0) // (CAN) Phase 2 segment

-#define AT91C_CAN_PHASE1      ((unsigned int) 0x7 <<  4) // (CAN) Phase 1 segment

-#define AT91C_CAN_PROPAG      ((unsigned int) 0x7 <<  8) // (CAN) Programmation time segment

-#define AT91C_CAN_SYNC        ((unsigned int) 0x3 << 12) // (CAN) Re-synchronization jump width segment

-#define AT91C_CAN_BRP         ((unsigned int) 0x7F << 16) // (CAN) Baudrate Prescaler

-#define AT91C_CAN_SMP         ((unsigned int) 0x1 << 24) // (CAN) Sampling mode

-// -------- CAN_TIM : (CAN Offset: 0x18) CAN Timer Register -------- 

-#define AT91C_CAN_TIMER       ((unsigned int) 0xFFFF <<  0) // (CAN) Timer field

-// -------- CAN_TIMESTP : (CAN Offset: 0x1c) CAN Timestamp Register -------- 

-// -------- CAN_ECR : (CAN Offset: 0x20) CAN Error Counter Register -------- 

-#define AT91C_CAN_REC         ((unsigned int) 0xFF <<  0) // (CAN) Receive Error Counter

-#define AT91C_CAN_TEC         ((unsigned int) 0xFF << 16) // (CAN) Transmit Error Counter

-// -------- CAN_TCR : (CAN Offset: 0x24) CAN Transfer Command Register -------- 

-#define AT91C_CAN_TIMRST      ((unsigned int) 0x1 << 31) // (CAN) Timer Reset Field

-// -------- CAN_ACR : (CAN Offset: 0x28) CAN Abort Command Register -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Ethernet MAC 10/100

-// *****************************************************************************

-typedef struct _AT91S_EMAC {

-	AT91_REG	 EMAC_NCR; 	// Network Control Register

-	AT91_REG	 EMAC_NCFGR; 	// Network Configuration Register

-	AT91_REG	 EMAC_NSR; 	// Network Status Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 EMAC_TSR; 	// Transmit Status Register

-	AT91_REG	 EMAC_RBQP; 	// Receive Buffer Queue Pointer

-	AT91_REG	 EMAC_TBQP; 	// Transmit Buffer Queue Pointer

-	AT91_REG	 EMAC_RSR; 	// Receive Status Register

-	AT91_REG	 EMAC_ISR; 	// Interrupt Status Register

-	AT91_REG	 EMAC_IER; 	// Interrupt Enable Register

-	AT91_REG	 EMAC_IDR; 	// Interrupt Disable Register

-	AT91_REG	 EMAC_IMR; 	// Interrupt Mask Register

-	AT91_REG	 EMAC_MAN; 	// PHY Maintenance Register

-	AT91_REG	 EMAC_PTR; 	// Pause Time Register

-	AT91_REG	 EMAC_PFR; 	// Pause Frames received Register

-	AT91_REG	 EMAC_FTO; 	// Frames Transmitted OK Register

-	AT91_REG	 EMAC_SCF; 	// Single Collision Frame Register

-	AT91_REG	 EMAC_MCF; 	// Multiple Collision Frame Register

-	AT91_REG	 EMAC_FRO; 	// Frames Received OK Register

-	AT91_REG	 EMAC_FCSE; 	// Frame Check Sequence Error Register

-	AT91_REG	 EMAC_ALE; 	// Alignment Error Register

-	AT91_REG	 EMAC_DTF; 	// Deferred Transmission Frame Register

-	AT91_REG	 EMAC_LCOL; 	// Late Collision Register

-	AT91_REG	 EMAC_ECOL; 	// Excessive Collision Register

-	AT91_REG	 EMAC_TUND; 	// Transmit Underrun Error Register

-	AT91_REG	 EMAC_CSE; 	// Carrier Sense Error Register

-	AT91_REG	 EMAC_RRE; 	// Receive Ressource Error Register

-	AT91_REG	 EMAC_ROV; 	// Receive Overrun Errors Register

-	AT91_REG	 EMAC_RSE; 	// Receive Symbol Errors Register

-	AT91_REG	 EMAC_ELE; 	// Excessive Length Errors Register

-	AT91_REG	 EMAC_RJA; 	// Receive Jabbers Register

-	AT91_REG	 EMAC_USF; 	// Undersize Frames Register

-	AT91_REG	 EMAC_STE; 	// SQE Test Error Register

-	AT91_REG	 EMAC_RLE; 	// Receive Length Field Mismatch Register

-	AT91_REG	 EMAC_TPF; 	// Transmitted Pause Frames Register

-	AT91_REG	 EMAC_HRB; 	// Hash Address Bottom[31:0]

-	AT91_REG	 EMAC_HRT; 	// Hash Address Top[63:32]

-	AT91_REG	 EMAC_SA1L; 	// Specific Address 1 Bottom, First 4 bytes

-	AT91_REG	 EMAC_SA1H; 	// Specific Address 1 Top, Last 2 bytes

-	AT91_REG	 EMAC_SA2L; 	// Specific Address 2 Bottom, First 4 bytes

-	AT91_REG	 EMAC_SA2H; 	// Specific Address 2 Top, Last 2 bytes

-	AT91_REG	 EMAC_SA3L; 	// Specific Address 3 Bottom, First 4 bytes

-	AT91_REG	 EMAC_SA3H; 	// Specific Address 3 Top, Last 2 bytes

-	AT91_REG	 EMAC_SA4L; 	// Specific Address 4 Bottom, First 4 bytes

-	AT91_REG	 EMAC_SA4H; 	// Specific Address 4 Top, Last 2 bytes

-	AT91_REG	 EMAC_TID; 	// Type ID Checking Register

-	AT91_REG	 EMAC_TPQ; 	// Transmit Pause Quantum Register

-	AT91_REG	 EMAC_USRIO; 	// USER Input/Output Register

-	AT91_REG	 EMAC_WOL; 	// Wake On LAN Register

-	AT91_REG	 Reserved1[13]; 	// 

-	AT91_REG	 EMAC_REV; 	// Revision Register

-} AT91S_EMAC, *AT91PS_EMAC;

-

-// -------- EMAC_NCR : (EMAC Offset: 0x0)  -------- 

-#define AT91C_EMAC_LB         ((unsigned int) 0x1 <<  0) // (EMAC) Loopback. Optional. When set, loopback signal is at high level.

-#define AT91C_EMAC_LLB        ((unsigned int) 0x1 <<  1) // (EMAC) Loopback local. 

-#define AT91C_EMAC_RE         ((unsigned int) 0x1 <<  2) // (EMAC) Receive enable. 

-#define AT91C_EMAC_TE         ((unsigned int) 0x1 <<  3) // (EMAC) Transmit enable. 

-#define AT91C_EMAC_MPE        ((unsigned int) 0x1 <<  4) // (EMAC) Management port enable. 

-#define AT91C_EMAC_CLRSTAT    ((unsigned int) 0x1 <<  5) // (EMAC) Clear statistics registers. 

-#define AT91C_EMAC_INCSTAT    ((unsigned int) 0x1 <<  6) // (EMAC) Increment statistics registers. 

-#define AT91C_EMAC_WESTAT     ((unsigned int) 0x1 <<  7) // (EMAC) Write enable for statistics registers. 

-#define AT91C_EMAC_BP         ((unsigned int) 0x1 <<  8) // (EMAC) Back pressure. 

-#define AT91C_EMAC_TSTART     ((unsigned int) 0x1 <<  9) // (EMAC) Start Transmission. 

-#define AT91C_EMAC_THALT      ((unsigned int) 0x1 << 10) // (EMAC) Transmission Halt. 

-#define AT91C_EMAC_TPFR       ((unsigned int) 0x1 << 11) // (EMAC) Transmit pause frame 

-#define AT91C_EMAC_TZQ        ((unsigned int) 0x1 << 12) // (EMAC) Transmit zero quantum pause frame

-// -------- EMAC_NCFGR : (EMAC Offset: 0x4) Network Configuration Register -------- 

-#define AT91C_EMAC_SPD        ((unsigned int) 0x1 <<  0) // (EMAC) Speed. 

-#define AT91C_EMAC_FD         ((unsigned int) 0x1 <<  1) // (EMAC) Full duplex. 

-#define AT91C_EMAC_JFRAME     ((unsigned int) 0x1 <<  3) // (EMAC) Jumbo Frames. 

-#define AT91C_EMAC_CAF        ((unsigned int) 0x1 <<  4) // (EMAC) Copy all frames. 

-#define AT91C_EMAC_NBC        ((unsigned int) 0x1 <<  5) // (EMAC) No broadcast. 

-#define AT91C_EMAC_MTI        ((unsigned int) 0x1 <<  6) // (EMAC) Multicast hash event enable

-#define AT91C_EMAC_UNI        ((unsigned int) 0x1 <<  7) // (EMAC) Unicast hash enable. 

-#define AT91C_EMAC_BIG        ((unsigned int) 0x1 <<  8) // (EMAC) Receive 1522 bytes. 

-#define AT91C_EMAC_EAE        ((unsigned int) 0x1 <<  9) // (EMAC) External address match enable. 

-#define AT91C_EMAC_CLK        ((unsigned int) 0x3 << 10) // (EMAC) 

-#define 	AT91C_EMAC_CLK_HCLK_8               ((unsigned int) 0x0 << 10) // (EMAC) HCLK divided by 8

-#define 	AT91C_EMAC_CLK_HCLK_16              ((unsigned int) 0x1 << 10) // (EMAC) HCLK divided by 16

-#define 	AT91C_EMAC_CLK_HCLK_32              ((unsigned int) 0x2 << 10) // (EMAC) HCLK divided by 32

-#define 	AT91C_EMAC_CLK_HCLK_64              ((unsigned int) 0x3 << 10) // (EMAC) HCLK divided by 64

-#define AT91C_EMAC_RTY        ((unsigned int) 0x1 << 12) // (EMAC) 

-#define AT91C_EMAC_PAE        ((unsigned int) 0x1 << 13) // (EMAC) 

-#define AT91C_EMAC_RBOF       ((unsigned int) 0x3 << 14) // (EMAC) 

-#define 	AT91C_EMAC_RBOF_OFFSET_0             ((unsigned int) 0x0 << 14) // (EMAC) no offset from start of receive buffer

-#define 	AT91C_EMAC_RBOF_OFFSET_1             ((unsigned int) 0x1 << 14) // (EMAC) one byte offset from start of receive buffer

-#define 	AT91C_EMAC_RBOF_OFFSET_2             ((unsigned int) 0x2 << 14) // (EMAC) two bytes offset from start of receive buffer

-#define 	AT91C_EMAC_RBOF_OFFSET_3             ((unsigned int) 0x3 << 14) // (EMAC) three bytes offset from start of receive buffer

-#define AT91C_EMAC_RLCE       ((unsigned int) 0x1 << 16) // (EMAC) Receive Length field Checking Enable

-#define AT91C_EMAC_DRFCS      ((unsigned int) 0x1 << 17) // (EMAC) Discard Receive FCS

-#define AT91C_EMAC_EFRHD      ((unsigned int) 0x1 << 18) // (EMAC) 

-#define AT91C_EMAC_IRXFCS     ((unsigned int) 0x1 << 19) // (EMAC) Ignore RX FCS

-// -------- EMAC_NSR : (EMAC Offset: 0x8) Network Status Register -------- 

-#define AT91C_EMAC_LINKR      ((unsigned int) 0x1 <<  0) // (EMAC) 

-#define AT91C_EMAC_MDIO       ((unsigned int) 0x1 <<  1) // (EMAC) 

-#define AT91C_EMAC_IDLE       ((unsigned int) 0x1 <<  2) // (EMAC) 

-// -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Status Register -------- 

-#define AT91C_EMAC_UBR        ((unsigned int) 0x1 <<  0) // (EMAC) 

-#define AT91C_EMAC_COL        ((unsigned int) 0x1 <<  1) // (EMAC) 

-#define AT91C_EMAC_RLES       ((unsigned int) 0x1 <<  2) // (EMAC) 

-#define AT91C_EMAC_TGO        ((unsigned int) 0x1 <<  3) // (EMAC) Transmit Go

-#define AT91C_EMAC_BEX        ((unsigned int) 0x1 <<  4) // (EMAC) Buffers exhausted mid frame

-#define AT91C_EMAC_COMP       ((unsigned int) 0x1 <<  5) // (EMAC) 

-#define AT91C_EMAC_UND        ((unsigned int) 0x1 <<  6) // (EMAC) 

-// -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register -------- 

-#define AT91C_EMAC_BNA        ((unsigned int) 0x1 <<  0) // (EMAC) 

-#define AT91C_EMAC_REC        ((unsigned int) 0x1 <<  1) // (EMAC) 

-#define AT91C_EMAC_OVR        ((unsigned int) 0x1 <<  2) // (EMAC) 

-// -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register -------- 

-#define AT91C_EMAC_MFD        ((unsigned int) 0x1 <<  0) // (EMAC) 

-#define AT91C_EMAC_RCOMP      ((unsigned int) 0x1 <<  1) // (EMAC) 

-#define AT91C_EMAC_RXUBR      ((unsigned int) 0x1 <<  2) // (EMAC) 

-#define AT91C_EMAC_TXUBR      ((unsigned int) 0x1 <<  3) // (EMAC) 

-#define AT91C_EMAC_TUNDR      ((unsigned int) 0x1 <<  4) // (EMAC) 

-#define AT91C_EMAC_RLEX       ((unsigned int) 0x1 <<  5) // (EMAC) 

-#define AT91C_EMAC_TXERR      ((unsigned int) 0x1 <<  6) // (EMAC) 

-#define AT91C_EMAC_TCOMP      ((unsigned int) 0x1 <<  7) // (EMAC) 

-#define AT91C_EMAC_LINK       ((unsigned int) 0x1 <<  9) // (EMAC) 

-#define AT91C_EMAC_ROVR       ((unsigned int) 0x1 << 10) // (EMAC) 

-#define AT91C_EMAC_HRESP      ((unsigned int) 0x1 << 11) // (EMAC) 

-#define AT91C_EMAC_PFRE       ((unsigned int) 0x1 << 12) // (EMAC) 

-#define AT91C_EMAC_PTZ        ((unsigned int) 0x1 << 13) // (EMAC) 

-// -------- EMAC_IER : (EMAC Offset: 0x28) Interrupt Enable Register -------- 

-// -------- EMAC_IDR : (EMAC Offset: 0x2c) Interrupt Disable Register -------- 

-// -------- EMAC_IMR : (EMAC Offset: 0x30) Interrupt Mask Register -------- 

-// -------- EMAC_MAN : (EMAC Offset: 0x34) PHY Maintenance Register -------- 

-#define AT91C_EMAC_DATA       ((unsigned int) 0xFFFF <<  0) // (EMAC) 

-#define AT91C_EMAC_CODE       ((unsigned int) 0x3 << 16) // (EMAC) 

-#define AT91C_EMAC_REGA       ((unsigned int) 0x1F << 18) // (EMAC) 

-#define AT91C_EMAC_PHYA       ((unsigned int) 0x1F << 23) // (EMAC) 

-#define AT91C_EMAC_RW         ((unsigned int) 0x3 << 28) // (EMAC) 

-#define AT91C_EMAC_SOF        ((unsigned int) 0x3 << 30) // (EMAC) 

-// -------- EMAC_USRIO : (EMAC Offset: 0xc0) USER Input Output Register -------- 

-#define AT91C_EMAC_RMII       ((unsigned int) 0x1 <<  0) // (EMAC) Reduce MII

-// -------- EMAC_WOL : (EMAC Offset: 0xc4) Wake On LAN Register -------- 

-#define AT91C_EMAC_IP         ((unsigned int) 0xFFFF <<  0) // (EMAC) ARP request IP address

-#define AT91C_EMAC_MAG        ((unsigned int) 0x1 << 16) // (EMAC) Magic packet event enable

-#define AT91C_EMAC_ARP        ((unsigned int) 0x1 << 17) // (EMAC) ARP request event enable

-#define AT91C_EMAC_SA1        ((unsigned int) 0x1 << 18) // (EMAC) Specific address register 1 event enable

-// -------- EMAC_REV : (EMAC Offset: 0xfc) Revision Register -------- 

-#define AT91C_EMAC_REVREF     ((unsigned int) 0xFFFF <<  0) // (EMAC) 

-#define AT91C_EMAC_PARTREF    ((unsigned int) 0xFFFF << 16) // (EMAC) 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Analog to Digital Convertor

-// *****************************************************************************

-typedef struct _AT91S_ADC {

-	AT91_REG	 ADC_CR; 	// ADC Control Register

-	AT91_REG	 ADC_MR; 	// ADC Mode Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 ADC_CHER; 	// ADC Channel Enable Register

-	AT91_REG	 ADC_CHDR; 	// ADC Channel Disable Register

-	AT91_REG	 ADC_CHSR; 	// ADC Channel Status Register

-	AT91_REG	 ADC_SR; 	// ADC Status Register

-	AT91_REG	 ADC_LCDR; 	// ADC Last Converted Data Register

-	AT91_REG	 ADC_IER; 	// ADC Interrupt Enable Register

-	AT91_REG	 ADC_IDR; 	// ADC Interrupt Disable Register

-	AT91_REG	 ADC_IMR; 	// ADC Interrupt Mask Register

-	AT91_REG	 ADC_CDR0; 	// ADC Channel Data Register 0

-	AT91_REG	 ADC_CDR1; 	// ADC Channel Data Register 1

-	AT91_REG	 ADC_CDR2; 	// ADC Channel Data Register 2

-	AT91_REG	 ADC_CDR3; 	// ADC Channel Data Register 3

-	AT91_REG	 ADC_CDR4; 	// ADC Channel Data Register 4

-	AT91_REG	 ADC_CDR5; 	// ADC Channel Data Register 5

-	AT91_REG	 ADC_CDR6; 	// ADC Channel Data Register 6

-	AT91_REG	 ADC_CDR7; 	// ADC Channel Data Register 7

-	AT91_REG	 Reserved1[44]; 	// 

-	AT91_REG	 ADC_RPR; 	// Receive Pointer Register

-	AT91_REG	 ADC_RCR; 	// Receive Counter Register

-	AT91_REG	 ADC_TPR; 	// Transmit Pointer Register

-	AT91_REG	 ADC_TCR; 	// Transmit Counter Register

-	AT91_REG	 ADC_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 ADC_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 ADC_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 ADC_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 ADC_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 ADC_PTSR; 	// PDC Transfer Status Register

-} AT91S_ADC, *AT91PS_ADC;

-

-// -------- ADC_CR : (ADC Offset: 0x0) ADC Control Register -------- 

-#define AT91C_ADC_SWRST       ((unsigned int) 0x1 <<  0) // (ADC) Software Reset

-#define AT91C_ADC_START       ((unsigned int) 0x1 <<  1) // (ADC) Start Conversion

-// -------- ADC_MR : (ADC Offset: 0x4) ADC Mode Register -------- 

-#define AT91C_ADC_TRGEN       ((unsigned int) 0x1 <<  0) // (ADC) Trigger Enable

-#define 	AT91C_ADC_TRGEN_DIS                  ((unsigned int) 0x0) // (ADC) Hradware triggers are disabled. Starting a conversion is only possible by software

-#define 	AT91C_ADC_TRGEN_EN                   ((unsigned int) 0x1) // (ADC) Hardware trigger selected by TRGSEL field is enabled.

-#define AT91C_ADC_TRGSEL      ((unsigned int) 0x7 <<  1) // (ADC) Trigger Selection

-#define 	AT91C_ADC_TRGSEL_TIOA0                ((unsigned int) 0x0 <<  1) // (ADC) Selected TRGSEL = TIAO0

-#define 	AT91C_ADC_TRGSEL_TIOA1                ((unsigned int) 0x1 <<  1) // (ADC) Selected TRGSEL = TIAO1

-#define 	AT91C_ADC_TRGSEL_TIOA2                ((unsigned int) 0x2 <<  1) // (ADC) Selected TRGSEL = TIAO2

-#define 	AT91C_ADC_TRGSEL_TIOA3                ((unsigned int) 0x3 <<  1) // (ADC) Selected TRGSEL = TIAO3

-#define 	AT91C_ADC_TRGSEL_TIOA4                ((unsigned int) 0x4 <<  1) // (ADC) Selected TRGSEL = TIAO4

-#define 	AT91C_ADC_TRGSEL_TIOA5                ((unsigned int) 0x5 <<  1) // (ADC) Selected TRGSEL = TIAO5

-#define 	AT91C_ADC_TRGSEL_EXT                  ((unsigned int) 0x6 <<  1) // (ADC) Selected TRGSEL = External Trigger

-#define AT91C_ADC_LOWRES      ((unsigned int) 0x1 <<  4) // (ADC) Resolution.

-#define 	AT91C_ADC_LOWRES_10_BIT               ((unsigned int) 0x0 <<  4) // (ADC) 10-bit resolution

-#define 	AT91C_ADC_LOWRES_8_BIT                ((unsigned int) 0x1 <<  4) // (ADC) 8-bit resolution

-#define AT91C_ADC_SLEEP       ((unsigned int) 0x1 <<  5) // (ADC) Sleep Mode

-#define 	AT91C_ADC_SLEEP_NORMAL_MODE          ((unsigned int) 0x0 <<  5) // (ADC) Normal Mode

-#define 	AT91C_ADC_SLEEP_MODE                 ((unsigned int) 0x1 <<  5) // (ADC) Sleep Mode

-#define AT91C_ADC_PRESCAL     ((unsigned int) 0x3F <<  8) // (ADC) Prescaler rate selection

-#define AT91C_ADC_STARTUP     ((unsigned int) 0x1F << 16) // (ADC) Startup Time

-#define AT91C_ADC_SHTIM       ((unsigned int) 0xF << 24) // (ADC) Sample & Hold Time

-// -------- 	ADC_CHER : (ADC Offset: 0x10) ADC Channel Enable Register -------- 

-#define AT91C_ADC_CH0         ((unsigned int) 0x1 <<  0) // (ADC) Channel 0

-#define AT91C_ADC_CH1         ((unsigned int) 0x1 <<  1) // (ADC) Channel 1

-#define AT91C_ADC_CH2         ((unsigned int) 0x1 <<  2) // (ADC) Channel 2

-#define AT91C_ADC_CH3         ((unsigned int) 0x1 <<  3) // (ADC) Channel 3

-#define AT91C_ADC_CH4         ((unsigned int) 0x1 <<  4) // (ADC) Channel 4

-#define AT91C_ADC_CH5         ((unsigned int) 0x1 <<  5) // (ADC) Channel 5

-#define AT91C_ADC_CH6         ((unsigned int) 0x1 <<  6) // (ADC) Channel 6

-#define AT91C_ADC_CH7         ((unsigned int) 0x1 <<  7) // (ADC) Channel 7

-// -------- 	ADC_CHDR : (ADC Offset: 0x14) ADC Channel Disable Register -------- 

-// -------- 	ADC_CHSR : (ADC Offset: 0x18) ADC Channel Status Register -------- 

-// -------- ADC_SR : (ADC Offset: 0x1c) ADC Status Register -------- 

-#define AT91C_ADC_EOC0        ((unsigned int) 0x1 <<  0) // (ADC) End of Conversion

-#define AT91C_ADC_EOC1        ((unsigned int) 0x1 <<  1) // (ADC) End of Conversion

-#define AT91C_ADC_EOC2        ((unsigned int) 0x1 <<  2) // (ADC) End of Conversion

-#define AT91C_ADC_EOC3        ((unsigned int) 0x1 <<  3) // (ADC) End of Conversion

-#define AT91C_ADC_EOC4        ((unsigned int) 0x1 <<  4) // (ADC) End of Conversion

-#define AT91C_ADC_EOC5        ((unsigned int) 0x1 <<  5) // (ADC) End of Conversion

-#define AT91C_ADC_EOC6        ((unsigned int) 0x1 <<  6) // (ADC) End of Conversion

-#define AT91C_ADC_EOC7        ((unsigned int) 0x1 <<  7) // (ADC) End of Conversion

-#define AT91C_ADC_OVRE0       ((unsigned int) 0x1 <<  8) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE1       ((unsigned int) 0x1 <<  9) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE2       ((unsigned int) 0x1 << 10) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE3       ((unsigned int) 0x1 << 11) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE4       ((unsigned int) 0x1 << 12) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE5       ((unsigned int) 0x1 << 13) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE6       ((unsigned int) 0x1 << 14) // (ADC) Overrun Error

-#define AT91C_ADC_OVRE7       ((unsigned int) 0x1 << 15) // (ADC) Overrun Error

-#define AT91C_ADC_DRDY        ((unsigned int) 0x1 << 16) // (ADC) Data Ready

-#define AT91C_ADC_GOVRE       ((unsigned int) 0x1 << 17) // (ADC) General Overrun

-#define AT91C_ADC_ENDRX       ((unsigned int) 0x1 << 18) // (ADC) End of Receiver Transfer

-#define AT91C_ADC_RXBUFF      ((unsigned int) 0x1 << 19) // (ADC) RXBUFF Interrupt

-// -------- ADC_LCDR : (ADC Offset: 0x20) ADC Last Converted Data Register -------- 

-#define AT91C_ADC_LDATA       ((unsigned int) 0x3FF <<  0) // (ADC) Last Data Converted

-// -------- ADC_IER : (ADC Offset: 0x24) ADC Interrupt Enable Register -------- 

-// -------- ADC_IDR : (ADC Offset: 0x28) ADC Interrupt Disable Register -------- 

-// -------- ADC_IMR : (ADC Offset: 0x2c) ADC Interrupt Mask Register -------- 

-// -------- ADC_CDR0 : (ADC Offset: 0x30) ADC Channel Data Register 0 -------- 

-#define AT91C_ADC_DATA        ((unsigned int) 0x3FF <<  0) // (ADC) Converted Data

-// -------- ADC_CDR1 : (ADC Offset: 0x34) ADC Channel Data Register 1 -------- 

-// -------- ADC_CDR2 : (ADC Offset: 0x38) ADC Channel Data Register 2 -------- 

-// -------- ADC_CDR3 : (ADC Offset: 0x3c) ADC Channel Data Register 3 -------- 

-// -------- ADC_CDR4 : (ADC Offset: 0x40) ADC Channel Data Register 4 -------- 

-// -------- ADC_CDR5 : (ADC Offset: 0x44) ADC Channel Data Register 5 -------- 

-// -------- ADC_CDR6 : (ADC Offset: 0x48) ADC Channel Data Register 6 -------- 

-// -------- ADC_CDR7 : (ADC Offset: 0x4c) ADC Channel Data Register 7 -------- 

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Advanced  Encryption Standard

-// *****************************************************************************

-typedef struct _AT91S_AES {

-	AT91_REG	 AES_CR; 	// Control Register

-	AT91_REG	 AES_MR; 	// Mode Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 AES_IER; 	// Interrupt Enable Register

-	AT91_REG	 AES_IDR; 	// Interrupt Disable Register

-	AT91_REG	 AES_IMR; 	// Interrupt Mask Register

-	AT91_REG	 AES_ISR; 	// Interrupt Status Register

-	AT91_REG	 AES_KEYWxR[4]; 	// Key Word x Register

-	AT91_REG	 Reserved1[4]; 	// 

-	AT91_REG	 AES_IDATAxR[4]; 	// Input Data x Register

-	AT91_REG	 AES_ODATAxR[4]; 	// Output Data x Register

-	AT91_REG	 AES_IVxR[4]; 	// Initialization Vector x Register

-	AT91_REG	 Reserved2[35]; 	// 

-	AT91_REG	 AES_VR; 	// AES Version Register

-	AT91_REG	 AES_RPR; 	// Receive Pointer Register

-	AT91_REG	 AES_RCR; 	// Receive Counter Register

-	AT91_REG	 AES_TPR; 	// Transmit Pointer Register

-	AT91_REG	 AES_TCR; 	// Transmit Counter Register

-	AT91_REG	 AES_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 AES_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 AES_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 AES_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 AES_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 AES_PTSR; 	// PDC Transfer Status Register

-} AT91S_AES, *AT91PS_AES;

-

-// -------- AES_CR : (AES Offset: 0x0) Control Register -------- 

-#define AT91C_AES_START       ((unsigned int) 0x1 <<  0) // (AES) Starts Processing

-#define AT91C_AES_SWRST       ((unsigned int) 0x1 <<  8) // (AES) Software Reset

-#define AT91C_AES_LOADSEED    ((unsigned int) 0x1 << 16) // (AES) Random Number Generator Seed Loading

-// -------- AES_MR : (AES Offset: 0x4) Mode Register -------- 

-#define AT91C_AES_CIPHER      ((unsigned int) 0x1 <<  0) // (AES) Processing Mode

-#define AT91C_AES_PROCDLY     ((unsigned int) 0xF <<  4) // (AES) Processing Delay

-#define AT91C_AES_SMOD        ((unsigned int) 0x3 <<  8) // (AES) Start Mode

-#define 	AT91C_AES_SMOD_MANUAL               ((unsigned int) 0x0 <<  8) // (AES) Manual Mode: The START bit in register AES_CR must be set to begin encryption or decryption.

-#define 	AT91C_AES_SMOD_AUTO                 ((unsigned int) 0x1 <<  8) // (AES) Auto Mode: no action in AES_CR is necessary (cf datasheet).

-#define 	AT91C_AES_SMOD_PDC                  ((unsigned int) 0x2 <<  8) // (AES) PDC Mode (cf datasheet).

-#define AT91C_AES_OPMOD       ((unsigned int) 0x7 << 12) // (AES) Operation Mode

-#define 	AT91C_AES_OPMOD_ECB                  ((unsigned int) 0x0 << 12) // (AES) ECB Electronic CodeBook mode.

-#define 	AT91C_AES_OPMOD_CBC                  ((unsigned int) 0x1 << 12) // (AES) CBC Cipher Block Chaining mode.

-#define 	AT91C_AES_OPMOD_OFB                  ((unsigned int) 0x2 << 12) // (AES) OFB Output Feedback mode.

-#define 	AT91C_AES_OPMOD_CFB                  ((unsigned int) 0x3 << 12) // (AES) CFB Cipher Feedback mode.

-#define 	AT91C_AES_OPMOD_CTR                  ((unsigned int) 0x4 << 12) // (AES) CTR Counter mode.

-#define AT91C_AES_LOD         ((unsigned int) 0x1 << 15) // (AES) Last Output Data Mode

-#define AT91C_AES_CFBS        ((unsigned int) 0x7 << 16) // (AES) Cipher Feedback Data Size

-#define 	AT91C_AES_CFBS_128_BIT              ((unsigned int) 0x0 << 16) // (AES) 128-bit.

-#define 	AT91C_AES_CFBS_64_BIT               ((unsigned int) 0x1 << 16) // (AES) 64-bit.

-#define 	AT91C_AES_CFBS_32_BIT               ((unsigned int) 0x2 << 16) // (AES) 32-bit.

-#define 	AT91C_AES_CFBS_16_BIT               ((unsigned int) 0x3 << 16) // (AES) 16-bit.

-#define 	AT91C_AES_CFBS_8_BIT                ((unsigned int) 0x4 << 16) // (AES) 8-bit.

-#define AT91C_AES_CKEY        ((unsigned int) 0xF << 20) // (AES) Countermeasure Key

-#define AT91C_AES_CTYPE       ((unsigned int) 0x1F << 24) // (AES) Countermeasure Type

-#define 	AT91C_AES_CTYPE_TYPE1_EN             ((unsigned int) 0x1 << 24) // (AES) Countermeasure type 1 is enabled.

-#define 	AT91C_AES_CTYPE_TYPE2_EN             ((unsigned int) 0x2 << 24) // (AES) Countermeasure type 2 is enabled.

-#define 	AT91C_AES_CTYPE_TYPE3_EN             ((unsigned int) 0x4 << 24) // (AES) Countermeasure type 3 is enabled.

-#define 	AT91C_AES_CTYPE_TYPE4_EN             ((unsigned int) 0x8 << 24) // (AES) Countermeasure type 4 is enabled.

-#define 	AT91C_AES_CTYPE_TYPE5_EN             ((unsigned int) 0x10 << 24) // (AES) Countermeasure type 5 is enabled.

-// -------- AES_IER : (AES Offset: 0x10) Interrupt Enable Register -------- 

-#define AT91C_AES_DATRDY      ((unsigned int) 0x1 <<  0) // (AES) DATRDY

-#define AT91C_AES_ENDRX       ((unsigned int) 0x1 <<  1) // (AES) PDC Read Buffer End

-#define AT91C_AES_ENDTX       ((unsigned int) 0x1 <<  2) // (AES) PDC Write Buffer End

-#define AT91C_AES_RXBUFF      ((unsigned int) 0x1 <<  3) // (AES) PDC Read Buffer Full

-#define AT91C_AES_TXBUFE      ((unsigned int) 0x1 <<  4) // (AES) PDC Write Buffer Empty

-#define AT91C_AES_URAD        ((unsigned int) 0x1 <<  8) // (AES) Unspecified Register Access Detection

-// -------- AES_IDR : (AES Offset: 0x14) Interrupt Disable Register -------- 

-// -------- AES_IMR : (AES Offset: 0x18) Interrupt Mask Register -------- 

-// -------- AES_ISR : (AES Offset: 0x1c) Interrupt Status Register -------- 

-#define AT91C_AES_URAT        ((unsigned int) 0x7 << 12) // (AES) Unspecified Register Access Type Status

-#define 	AT91C_AES_URAT_IN_DAT_WRITE_DATPROC ((unsigned int) 0x0 << 12) // (AES) Input data register written during the data processing in PDC mode.

-#define 	AT91C_AES_URAT_OUT_DAT_READ_DATPROC ((unsigned int) 0x1 << 12) // (AES) Output data register read during the data processing.

-#define 	AT91C_AES_URAT_MODEREG_WRITE_DATPROC ((unsigned int) 0x2 << 12) // (AES) Mode register written during the data processing.

-#define 	AT91C_AES_URAT_OUT_DAT_READ_SUBKEY  ((unsigned int) 0x3 << 12) // (AES) Output data register read during the sub-keys generation.

-#define 	AT91C_AES_URAT_MODEREG_WRITE_SUBKEY ((unsigned int) 0x4 << 12) // (AES) Mode register written during the sub-keys generation.

-#define 	AT91C_AES_URAT_WO_REG_READ          ((unsigned int) 0x5 << 12) // (AES) Write-only register read access.

-

-// *****************************************************************************

-//              SOFTWARE API DEFINITION  FOR Triple Data Encryption Standard

-// *****************************************************************************

-typedef struct _AT91S_TDES {

-	AT91_REG	 TDES_CR; 	// Control Register

-	AT91_REG	 TDES_MR; 	// Mode Register

-	AT91_REG	 Reserved0[2]; 	// 

-	AT91_REG	 TDES_IER; 	// Interrupt Enable Register

-	AT91_REG	 TDES_IDR; 	// Interrupt Disable Register

-	AT91_REG	 TDES_IMR; 	// Interrupt Mask Register

-	AT91_REG	 TDES_ISR; 	// Interrupt Status Register

-	AT91_REG	 TDES_KEY1WxR[2]; 	// Key 1 Word x Register

-	AT91_REG	 TDES_KEY2WxR[2]; 	// Key 2 Word x Register

-	AT91_REG	 TDES_KEY3WxR[2]; 	// Key 3 Word x Register

-	AT91_REG	 Reserved1[2]; 	// 

-	AT91_REG	 TDES_IDATAxR[2]; 	// Input Data x Register

-	AT91_REG	 Reserved2[2]; 	// 

-	AT91_REG	 TDES_ODATAxR[2]; 	// Output Data x Register

-	AT91_REG	 Reserved3[2]; 	// 

-	AT91_REG	 TDES_IVxR[2]; 	// Initialization Vector x Register

-	AT91_REG	 Reserved4[37]; 	// 

-	AT91_REG	 TDES_VR; 	// TDES Version Register

-	AT91_REG	 TDES_RPR; 	// Receive Pointer Register

-	AT91_REG	 TDES_RCR; 	// Receive Counter Register

-	AT91_REG	 TDES_TPR; 	// Transmit Pointer Register

-	AT91_REG	 TDES_TCR; 	// Transmit Counter Register

-	AT91_REG	 TDES_RNPR; 	// Receive Next Pointer Register

-	AT91_REG	 TDES_RNCR; 	// Receive Next Counter Register

-	AT91_REG	 TDES_TNPR; 	// Transmit Next Pointer Register

-	AT91_REG	 TDES_TNCR; 	// Transmit Next Counter Register

-	AT91_REG	 TDES_PTCR; 	// PDC Transfer Control Register

-	AT91_REG	 TDES_PTSR; 	// PDC Transfer Status Register

-} AT91S_TDES, *AT91PS_TDES;

-

-// -------- TDES_CR : (TDES Offset: 0x0) Control Register -------- 

-#define AT91C_TDES_START      ((unsigned int) 0x1 <<  0) // (TDES) Starts Processing

-#define AT91C_TDES_SWRST      ((unsigned int) 0x1 <<  8) // (TDES) Software Reset

-// -------- TDES_MR : (TDES Offset: 0x4) Mode Register -------- 

-#define AT91C_TDES_CIPHER     ((unsigned int) 0x1 <<  0) // (TDES) Processing Mode

-#define AT91C_TDES_TDESMOD    ((unsigned int) 0x1 <<  1) // (TDES) Single or Triple DES Mode

-#define AT91C_TDES_KEYMOD     ((unsigned int) 0x1 <<  4) // (TDES) Key Mode

-#define AT91C_TDES_SMOD       ((unsigned int) 0x3 <<  8) // (TDES) Start Mode

-#define 	AT91C_TDES_SMOD_MANUAL               ((unsigned int) 0x0 <<  8) // (TDES) Manual Mode: The START bit in register TDES_CR must be set to begin encryption or decryption.

-#define 	AT91C_TDES_SMOD_AUTO                 ((unsigned int) 0x1 <<  8) // (TDES) Auto Mode: no action in TDES_CR is necessary (cf datasheet).

-#define 	AT91C_TDES_SMOD_PDC                  ((unsigned int) 0x2 <<  8) // (TDES) PDC Mode (cf datasheet).

-#define AT91C_TDES_OPMOD      ((unsigned int) 0x3 << 12) // (TDES) Operation Mode

-#define 	AT91C_TDES_OPMOD_ECB                  ((unsigned int) 0x0 << 12) // (TDES) ECB Electronic CodeBook mode.

-#define 	AT91C_TDES_OPMOD_CBC                  ((unsigned int) 0x1 << 12) // (TDES) CBC Cipher Block Chaining mode.

-#define 	AT91C_TDES_OPMOD_OFB                  ((unsigned int) 0x2 << 12) // (TDES) OFB Output Feedback mode.

-#define 	AT91C_TDES_OPMOD_CFB                  ((unsigned int) 0x3 << 12) // (TDES) CFB Cipher Feedback mode.

-#define AT91C_TDES_LOD        ((unsigned int) 0x1 << 15) // (TDES) Last Output Data Mode

-#define AT91C_TDES_CFBS       ((unsigned int) 0x3 << 16) // (TDES) Cipher Feedback Data Size

-#define 	AT91C_TDES_CFBS_64_BIT               ((unsigned int) 0x0 << 16) // (TDES) 64-bit.

-#define 	AT91C_TDES_CFBS_32_BIT               ((unsigned int) 0x1 << 16) // (TDES) 32-bit.

-#define 	AT91C_TDES_CFBS_16_BIT               ((unsigned int) 0x2 << 16) // (TDES) 16-bit.

-#define 	AT91C_TDES_CFBS_8_BIT                ((unsigned int) 0x3 << 16) // (TDES) 8-bit.

-// -------- TDES_IER : (TDES Offset: 0x10) Interrupt Enable Register -------- 

-#define AT91C_TDES_DATRDY     ((unsigned int) 0x1 <<  0) // (TDES) DATRDY

-#define AT91C_TDES_ENDRX      ((unsigned int) 0x1 <<  1) // (TDES) PDC Read Buffer End

-#define AT91C_TDES_ENDTX      ((unsigned int) 0x1 <<  2) // (TDES) PDC Write Buffer End

-#define AT91C_TDES_RXBUFF     ((unsigned int) 0x1 <<  3) // (TDES) PDC Read Buffer Full

-#define AT91C_TDES_TXBUFE     ((unsigned int) 0x1 <<  4) // (TDES) PDC Write Buffer Empty

-#define AT91C_TDES_URAD       ((unsigned int) 0x1 <<  8) // (TDES) Unspecified Register Access Detection

-// -------- TDES_IDR : (TDES Offset: 0x14) Interrupt Disable Register -------- 

-// -------- TDES_IMR : (TDES Offset: 0x18) Interrupt Mask Register -------- 

-// -------- TDES_ISR : (TDES Offset: 0x1c) Interrupt Status Register -------- 

-#define AT91C_TDES_URAT       ((unsigned int) 0x3 << 12) // (TDES) Unspecified Register Access Type Status

-#define 	AT91C_TDES_URAT_IN_DAT_WRITE_DATPROC ((unsigned int) 0x0 << 12) // (TDES) Input data register written during the data processing in PDC mode.

-#define 	AT91C_TDES_URAT_OUT_DAT_READ_DATPROC ((unsigned int) 0x1 << 12) // (TDES) Output data register read during the data processing.

-#define 	AT91C_TDES_URAT_MODEREG_WRITE_DATPROC ((unsigned int) 0x2 << 12) // (TDES) Mode register written during the data processing.

-#define 	AT91C_TDES_URAT_WO_REG_READ          ((unsigned int) 0x3 << 12) // (TDES) Write-only register read access.

-

-// *****************************************************************************

-//               REGISTER ADDRESS DEFINITION FOR AT91SAM7X256

-// *****************************************************************************

-// ========== Register definition for SYS peripheral ========== 

-// ========== Register definition for AIC peripheral ========== 

-#define AT91C_AIC_IVR   ((AT91_REG *) 	0xFFFFF100) // (AIC) IRQ Vector Register

-#define AT91C_AIC_SMR   ((AT91_REG *) 	0xFFFFF000) // (AIC) Source Mode Register

-#define AT91C_AIC_FVR   ((AT91_REG *) 	0xFFFFF104) // (AIC) FIQ Vector Register

-#define AT91C_AIC_DCR   ((AT91_REG *) 	0xFFFFF138) // (AIC) Debug Control Register (Protect)

-#define AT91C_AIC_EOICR ((AT91_REG *) 	0xFFFFF130) // (AIC) End of Interrupt Command Register

-#define AT91C_AIC_SVR   ((AT91_REG *) 	0xFFFFF080) // (AIC) Source Vector Register

-#define AT91C_AIC_FFSR  ((AT91_REG *) 	0xFFFFF148) // (AIC) Fast Forcing Status Register

-#define AT91C_AIC_ICCR  ((AT91_REG *) 	0xFFFFF128) // (AIC) Interrupt Clear Command Register

-#define AT91C_AIC_ISR   ((AT91_REG *) 	0xFFFFF108) // (AIC) Interrupt Status Register

-#define AT91C_AIC_IMR   ((AT91_REG *) 	0xFFFFF110) // (AIC) Interrupt Mask Register

-#define AT91C_AIC_IPR   ((AT91_REG *) 	0xFFFFF10C) // (AIC) Interrupt Pending Register

-#define AT91C_AIC_FFER  ((AT91_REG *) 	0xFFFFF140) // (AIC) Fast Forcing Enable Register

-#define AT91C_AIC_IECR  ((AT91_REG *) 	0xFFFFF120) // (AIC) Interrupt Enable Command Register

-#define AT91C_AIC_ISCR  ((AT91_REG *) 	0xFFFFF12C) // (AIC) Interrupt Set Command Register

-#define AT91C_AIC_FFDR  ((AT91_REG *) 	0xFFFFF144) // (AIC) Fast Forcing Disable Register

-#define AT91C_AIC_CISR  ((AT91_REG *) 	0xFFFFF114) // (AIC) Core Interrupt Status Register

-#define AT91C_AIC_IDCR  ((AT91_REG *) 	0xFFFFF124) // (AIC) Interrupt Disable Command Register

-#define AT91C_AIC_SPU   ((AT91_REG *) 	0xFFFFF134) // (AIC) Spurious Vector Register

-// ========== Register definition for PDC_DBGU peripheral ========== 

-#define AT91C_DBGU_TCR  ((AT91_REG *) 	0xFFFFF30C) // (PDC_DBGU) Transmit Counter Register

-#define AT91C_DBGU_RNPR ((AT91_REG *) 	0xFFFFF310) // (PDC_DBGU) Receive Next Pointer Register

-#define AT91C_DBGU_TNPR ((AT91_REG *) 	0xFFFFF318) // (PDC_DBGU) Transmit Next Pointer Register

-#define AT91C_DBGU_TPR  ((AT91_REG *) 	0xFFFFF308) // (PDC_DBGU) Transmit Pointer Register

-#define AT91C_DBGU_RPR  ((AT91_REG *) 	0xFFFFF300) // (PDC_DBGU) Receive Pointer Register

-#define AT91C_DBGU_RCR  ((AT91_REG *) 	0xFFFFF304) // (PDC_DBGU) Receive Counter Register

-#define AT91C_DBGU_RNCR ((AT91_REG *) 	0xFFFFF314) // (PDC_DBGU) Receive Next Counter Register

-#define AT91C_DBGU_PTCR ((AT91_REG *) 	0xFFFFF320) // (PDC_DBGU) PDC Transfer Control Register

-#define AT91C_DBGU_PTSR ((AT91_REG *) 	0xFFFFF324) // (PDC_DBGU) PDC Transfer Status Register

-#define AT91C_DBGU_TNCR ((AT91_REG *) 	0xFFFFF31C) // (PDC_DBGU) Transmit Next Counter Register

-// ========== Register definition for DBGU peripheral ========== 

-#define AT91C_DBGU_EXID ((AT91_REG *) 	0xFFFFF244) // (DBGU) Chip ID Extension Register

-#define AT91C_DBGU_BRGR ((AT91_REG *) 	0xFFFFF220) // (DBGU) Baud Rate Generator Register

-#define AT91C_DBGU_IDR  ((AT91_REG *) 	0xFFFFF20C) // (DBGU) Interrupt Disable Register

-#define AT91C_DBGU_CSR  ((AT91_REG *) 	0xFFFFF214) // (DBGU) Channel Status Register

-#define AT91C_DBGU_CIDR ((AT91_REG *) 	0xFFFFF240) // (DBGU) Chip ID Register

-#define AT91C_DBGU_MR   ((AT91_REG *) 	0xFFFFF204) // (DBGU) Mode Register

-#define AT91C_DBGU_IMR  ((AT91_REG *) 	0xFFFFF210) // (DBGU) Interrupt Mask Register

-#define AT91C_DBGU_CR   ((AT91_REG *) 	0xFFFFF200) // (DBGU) Control Register

-#define AT91C_DBGU_FNTR ((AT91_REG *) 	0xFFFFF248) // (DBGU) Force NTRST Register

-#define AT91C_DBGU_THR  ((AT91_REG *) 	0xFFFFF21C) // (DBGU) Transmitter Holding Register

-#define AT91C_DBGU_RHR  ((AT91_REG *) 	0xFFFFF218) // (DBGU) Receiver Holding Register

-#define AT91C_DBGU_IER  ((AT91_REG *) 	0xFFFFF208) // (DBGU) Interrupt Enable Register

-// ========== Register definition for PIOA peripheral ========== 

-#define AT91C_PIOA_ODR  ((AT91_REG *) 	0xFFFFF414) // (PIOA) Output Disable Registerr

-#define AT91C_PIOA_SODR ((AT91_REG *) 	0xFFFFF430) // (PIOA) Set Output Data Register

-#define AT91C_PIOA_ISR  ((AT91_REG *) 	0xFFFFF44C) // (PIOA) Interrupt Status Register

-#define AT91C_PIOA_ABSR ((AT91_REG *) 	0xFFFFF478) // (PIOA) AB Select Status Register

-#define AT91C_PIOA_IER  ((AT91_REG *) 	0xFFFFF440) // (PIOA) Interrupt Enable Register

-#define AT91C_PIOA_PPUDR ((AT91_REG *) 	0xFFFFF460) // (PIOA) Pull-up Disable Register

-#define AT91C_PIOA_IMR  ((AT91_REG *) 	0xFFFFF448) // (PIOA) Interrupt Mask Register

-#define AT91C_PIOA_PER  ((AT91_REG *) 	0xFFFFF400) // (PIOA) PIO Enable Register

-#define AT91C_PIOA_IFDR ((AT91_REG *) 	0xFFFFF424) // (PIOA) Input Filter Disable Register

-#define AT91C_PIOA_OWDR ((AT91_REG *) 	0xFFFFF4A4) // (PIOA) Output Write Disable Register

-#define AT91C_PIOA_MDSR ((AT91_REG *) 	0xFFFFF458) // (PIOA) Multi-driver Status Register

-#define AT91C_PIOA_IDR  ((AT91_REG *) 	0xFFFFF444) // (PIOA) Interrupt Disable Register

-#define AT91C_PIOA_ODSR ((AT91_REG *) 	0xFFFFF438) // (PIOA) Output Data Status Register

-#define AT91C_PIOA_PPUSR ((AT91_REG *) 	0xFFFFF468) // (PIOA) Pull-up Status Register

-#define AT91C_PIOA_OWSR ((AT91_REG *) 	0xFFFFF4A8) // (PIOA) Output Write Status Register

-#define AT91C_PIOA_BSR  ((AT91_REG *) 	0xFFFFF474) // (PIOA) Select B Register

-#define AT91C_PIOA_OWER ((AT91_REG *) 	0xFFFFF4A0) // (PIOA) Output Write Enable Register

-#define AT91C_PIOA_IFER ((AT91_REG *) 	0xFFFFF420) // (PIOA) Input Filter Enable Register

-#define AT91C_PIOA_PDSR ((AT91_REG *) 	0xFFFFF43C) // (PIOA) Pin Data Status Register

-#define AT91C_PIOA_PPUER ((AT91_REG *) 	0xFFFFF464) // (PIOA) Pull-up Enable Register

-#define AT91C_PIOA_OSR  ((AT91_REG *) 	0xFFFFF418) // (PIOA) Output Status Register

-#define AT91C_PIOA_ASR  ((AT91_REG *) 	0xFFFFF470) // (PIOA) Select A Register

-#define AT91C_PIOA_MDDR ((AT91_REG *) 	0xFFFFF454) // (PIOA) Multi-driver Disable Register

-#define AT91C_PIOA_CODR ((AT91_REG *) 	0xFFFFF434) // (PIOA) Clear Output Data Register

-#define AT91C_PIOA_MDER ((AT91_REG *) 	0xFFFFF450) // (PIOA) Multi-driver Enable Register

-#define AT91C_PIOA_PDR  ((AT91_REG *) 	0xFFFFF404) // (PIOA) PIO Disable Register

-#define AT91C_PIOA_IFSR ((AT91_REG *) 	0xFFFFF428) // (PIOA) Input Filter Status Register

-#define AT91C_PIOA_OER  ((AT91_REG *) 	0xFFFFF410) // (PIOA) Output Enable Register

-#define AT91C_PIOA_PSR  ((AT91_REG *) 	0xFFFFF408) // (PIOA) PIO Status Register

-// ========== Register definition for PIOB peripheral ========== 

-#define AT91C_PIOB_OWDR ((AT91_REG *) 	0xFFFFF6A4) // (PIOB) Output Write Disable Register

-#define AT91C_PIOB_MDER ((AT91_REG *) 	0xFFFFF650) // (PIOB) Multi-driver Enable Register

-#define AT91C_PIOB_PPUSR ((AT91_REG *) 	0xFFFFF668) // (PIOB) Pull-up Status Register

-#define AT91C_PIOB_IMR  ((AT91_REG *) 	0xFFFFF648) // (PIOB) Interrupt Mask Register

-#define AT91C_PIOB_ASR  ((AT91_REG *) 	0xFFFFF670) // (PIOB) Select A Register

-#define AT91C_PIOB_PPUDR ((AT91_REG *) 	0xFFFFF660) // (PIOB) Pull-up Disable Register

-#define AT91C_PIOB_PSR  ((AT91_REG *) 	0xFFFFF608) // (PIOB) PIO Status Register

-#define AT91C_PIOB_IER  ((AT91_REG *) 	0xFFFFF640) // (PIOB) Interrupt Enable Register

-#define AT91C_PIOB_CODR ((AT91_REG *) 	0xFFFFF634) // (PIOB) Clear Output Data Register

-#define AT91C_PIOB_OWER ((AT91_REG *) 	0xFFFFF6A0) // (PIOB) Output Write Enable Register

-#define AT91C_PIOB_ABSR ((AT91_REG *) 	0xFFFFF678) // (PIOB) AB Select Status Register

-#define AT91C_PIOB_IFDR ((AT91_REG *) 	0xFFFFF624) // (PIOB) Input Filter Disable Register

-#define AT91C_PIOB_PDSR ((AT91_REG *) 	0xFFFFF63C) // (PIOB) Pin Data Status Register

-#define AT91C_PIOB_IDR  ((AT91_REG *) 	0xFFFFF644) // (PIOB) Interrupt Disable Register

-#define AT91C_PIOB_OWSR ((AT91_REG *) 	0xFFFFF6A8) // (PIOB) Output Write Status Register

-#define AT91C_PIOB_PDR  ((AT91_REG *) 	0xFFFFF604) // (PIOB) PIO Disable Register

-#define AT91C_PIOB_ODR  ((AT91_REG *) 	0xFFFFF614) // (PIOB) Output Disable Registerr

-#define AT91C_PIOB_IFSR ((AT91_REG *) 	0xFFFFF628) // (PIOB) Input Filter Status Register

-#define AT91C_PIOB_PPUER ((AT91_REG *) 	0xFFFFF664) // (PIOB) Pull-up Enable Register

-#define AT91C_PIOB_SODR ((AT91_REG *) 	0xFFFFF630) // (PIOB) Set Output Data Register

-#define AT91C_PIOB_ISR  ((AT91_REG *) 	0xFFFFF64C) // (PIOB) Interrupt Status Register

-#define AT91C_PIOB_ODSR ((AT91_REG *) 	0xFFFFF638) // (PIOB) Output Data Status Register

-#define AT91C_PIOB_OSR  ((AT91_REG *) 	0xFFFFF618) // (PIOB) Output Status Register

-#define AT91C_PIOB_MDSR ((AT91_REG *) 	0xFFFFF658) // (PIOB) Multi-driver Status Register

-#define AT91C_PIOB_IFER ((AT91_REG *) 	0xFFFFF620) // (PIOB) Input Filter Enable Register

-#define AT91C_PIOB_BSR  ((AT91_REG *) 	0xFFFFF674) // (PIOB) Select B Register

-#define AT91C_PIOB_MDDR ((AT91_REG *) 	0xFFFFF654) // (PIOB) Multi-driver Disable Register

-#define AT91C_PIOB_OER  ((AT91_REG *) 	0xFFFFF610) // (PIOB) Output Enable Register

-#define AT91C_PIOB_PER  ((AT91_REG *) 	0xFFFFF600) // (PIOB) PIO Enable Register

-// ========== Register definition for CKGR peripheral ========== 

-#define AT91C_CKGR_MOR  ((AT91_REG *) 	0xFFFFFC20) // (CKGR) Main Oscillator Register

-#define AT91C_CKGR_PLLR ((AT91_REG *) 	0xFFFFFC2C) // (CKGR) PLL Register

-#define AT91C_CKGR_MCFR ((AT91_REG *) 	0xFFFFFC24) // (CKGR) Main Clock  Frequency Register

-// ========== Register definition for PMC peripheral ========== 

-#define AT91C_PMC_IDR   ((AT91_REG *) 	0xFFFFFC64) // (PMC) Interrupt Disable Register

-#define AT91C_PMC_MOR   ((AT91_REG *) 	0xFFFFFC20) // (PMC) Main Oscillator Register

-#define AT91C_PMC_PLLR  ((AT91_REG *) 	0xFFFFFC2C) // (PMC) PLL Register

-#define AT91C_PMC_PCER  ((AT91_REG *) 	0xFFFFFC10) // (PMC) Peripheral Clock Enable Register

-#define AT91C_PMC_PCKR  ((AT91_REG *) 	0xFFFFFC40) // (PMC) Programmable Clock Register

-#define AT91C_PMC_MCKR  ((AT91_REG *) 	0xFFFFFC30) // (PMC) Master Clock Register

-#define AT91C_PMC_SCDR  ((AT91_REG *) 	0xFFFFFC04) // (PMC) System Clock Disable Register

-#define AT91C_PMC_PCDR  ((AT91_REG *) 	0xFFFFFC14) // (PMC) Peripheral Clock Disable Register

-#define AT91C_PMC_SCSR  ((AT91_REG *) 	0xFFFFFC08) // (PMC) System Clock Status Register

-#define AT91C_PMC_PCSR  ((AT91_REG *) 	0xFFFFFC18) // (PMC) Peripheral Clock Status Register

-#define AT91C_PMC_MCFR  ((AT91_REG *) 	0xFFFFFC24) // (PMC) Main Clock  Frequency Register

-#define AT91C_PMC_SCER  ((AT91_REG *) 	0xFFFFFC00) // (PMC) System Clock Enable Register

-#define AT91C_PMC_IMR   ((AT91_REG *) 	0xFFFFFC6C) // (PMC) Interrupt Mask Register

-#define AT91C_PMC_IER   ((AT91_REG *) 	0xFFFFFC60) // (PMC) Interrupt Enable Register

-#define AT91C_PMC_SR    ((AT91_REG *) 	0xFFFFFC68) // (PMC) Status Register

-// ========== Register definition for RSTC peripheral ========== 

-#define AT91C_RSTC_RCR  ((AT91_REG *) 	0xFFFFFD00) // (RSTC) Reset Control Register

-#define AT91C_RSTC_RMR  ((AT91_REG *) 	0xFFFFFD08) // (RSTC) Reset Mode Register

-#define AT91C_RSTC_RSR  ((AT91_REG *) 	0xFFFFFD04) // (RSTC) Reset Status Register

-// ========== Register definition for RTTC peripheral ========== 

-#define AT91C_RTTC_RTSR ((AT91_REG *) 	0xFFFFFD2C) // (RTTC) Real-time Status Register

-#define AT91C_RTTC_RTMR ((AT91_REG *) 	0xFFFFFD20) // (RTTC) Real-time Mode Register

-#define AT91C_RTTC_RTVR ((AT91_REG *) 	0xFFFFFD28) // (RTTC) Real-time Value Register

-#define AT91C_RTTC_RTAR ((AT91_REG *) 	0xFFFFFD24) // (RTTC) Real-time Alarm Register

-// ========== Register definition for PITC peripheral ========== 

-#define AT91C_PITC_PIVR ((AT91_REG *) 	0xFFFFFD38) // (PITC) Period Interval Value Register

-#define AT91C_PITC_PISR ((AT91_REG *) 	0xFFFFFD34) // (PITC) Period Interval Status Register

-#define AT91C_PITC_PIIR ((AT91_REG *) 	0xFFFFFD3C) // (PITC) Period Interval Image Register

-#define AT91C_PITC_PIMR ((AT91_REG *) 	0xFFFFFD30) // (PITC) Period Interval Mode Register

-// ========== Register definition for WDTC peripheral ========== 

-#define AT91C_WDTC_WDCR ((AT91_REG *) 	0xFFFFFD40) // (WDTC) Watchdog Control Register

-#define AT91C_WDTC_WDSR ((AT91_REG *) 	0xFFFFFD48) // (WDTC) Watchdog Status Register

-#define AT91C_WDTC_WDMR ((AT91_REG *) 	0xFFFFFD44) // (WDTC) Watchdog Mode Register

-// ========== Register definition for VREG peripheral ========== 

-#define AT91C_VREG_MR   ((AT91_REG *) 	0xFFFFFD60) // (VREG) Voltage Regulator Mode Register

-// ========== Register definition for MC peripheral ========== 

-#define AT91C_MC_ASR    ((AT91_REG *) 	0xFFFFFF04) // (MC) MC Abort Status Register

-#define AT91C_MC_RCR    ((AT91_REG *) 	0xFFFFFF00) // (MC) MC Remap Control Register

-#define AT91C_MC_FCR    ((AT91_REG *) 	0xFFFFFF64) // (MC) MC Flash Command Register

-#define AT91C_MC_AASR   ((AT91_REG *) 	0xFFFFFF08) // (MC) MC Abort Address Status Register

-#define AT91C_MC_FSR    ((AT91_REG *) 	0xFFFFFF68) // (MC) MC Flash Status Register

-#define AT91C_MC_FMR    ((AT91_REG *) 	0xFFFFFF60) // (MC) MC Flash Mode Register

-// ========== Register definition for PDC_SPI1 peripheral ========== 

-#define AT91C_SPI1_PTCR ((AT91_REG *) 	0xFFFE4120) // (PDC_SPI1) PDC Transfer Control Register

-#define AT91C_SPI1_RPR  ((AT91_REG *) 	0xFFFE4100) // (PDC_SPI1) Receive Pointer Register

-#define AT91C_SPI1_TNCR ((AT91_REG *) 	0xFFFE411C) // (PDC_SPI1) Transmit Next Counter Register

-#define AT91C_SPI1_TPR  ((AT91_REG *) 	0xFFFE4108) // (PDC_SPI1) Transmit Pointer Register

-#define AT91C_SPI1_TNPR ((AT91_REG *) 	0xFFFE4118) // (PDC_SPI1) Transmit Next Pointer Register

-#define AT91C_SPI1_TCR  ((AT91_REG *) 	0xFFFE410C) // (PDC_SPI1) Transmit Counter Register

-#define AT91C_SPI1_RCR  ((AT91_REG *) 	0xFFFE4104) // (PDC_SPI1) Receive Counter Register

-#define AT91C_SPI1_RNPR ((AT91_REG *) 	0xFFFE4110) // (PDC_SPI1) Receive Next Pointer Register

-#define AT91C_SPI1_RNCR ((AT91_REG *) 	0xFFFE4114) // (PDC_SPI1) Receive Next Counter Register

-#define AT91C_SPI1_PTSR ((AT91_REG *) 	0xFFFE4124) // (PDC_SPI1) PDC Transfer Status Register

-// ========== Register definition for SPI1 peripheral ========== 

-#define AT91C_SPI1_IMR  ((AT91_REG *) 	0xFFFE401C) // (SPI1) Interrupt Mask Register

-#define AT91C_SPI1_IER  ((AT91_REG *) 	0xFFFE4014) // (SPI1) Interrupt Enable Register

-#define AT91C_SPI1_MR   ((AT91_REG *) 	0xFFFE4004) // (SPI1) Mode Register

-#define AT91C_SPI1_RDR  ((AT91_REG *) 	0xFFFE4008) // (SPI1) Receive Data Register

-#define AT91C_SPI1_IDR  ((AT91_REG *) 	0xFFFE4018) // (SPI1) Interrupt Disable Register

-#define AT91C_SPI1_SR   ((AT91_REG *) 	0xFFFE4010) // (SPI1) Status Register

-#define AT91C_SPI1_TDR  ((AT91_REG *) 	0xFFFE400C) // (SPI1) Transmit Data Register

-#define AT91C_SPI1_CR   ((AT91_REG *) 	0xFFFE4000) // (SPI1) Control Register

-#define AT91C_SPI1_CSR  ((AT91_REG *) 	0xFFFE4030) // (SPI1) Chip Select Register

-// ========== Register definition for PDC_SPI0 peripheral ========== 

-#define AT91C_SPI0_PTCR ((AT91_REG *) 	0xFFFE0120) // (PDC_SPI0) PDC Transfer Control Register

-#define AT91C_SPI0_TPR  ((AT91_REG *) 	0xFFFE0108) // (PDC_SPI0) Transmit Pointer Register

-#define AT91C_SPI0_TCR  ((AT91_REG *) 	0xFFFE010C) // (PDC_SPI0) Transmit Counter Register

-#define AT91C_SPI0_RCR  ((AT91_REG *) 	0xFFFE0104) // (PDC_SPI0) Receive Counter Register

-#define AT91C_SPI0_PTSR ((AT91_REG *) 	0xFFFE0124) // (PDC_SPI0) PDC Transfer Status Register

-#define AT91C_SPI0_RNPR ((AT91_REG *) 	0xFFFE0110) // (PDC_SPI0) Receive Next Pointer Register

-#define AT91C_SPI0_RPR  ((AT91_REG *) 	0xFFFE0100) // (PDC_SPI0) Receive Pointer Register

-#define AT91C_SPI0_TNCR ((AT91_REG *) 	0xFFFE011C) // (PDC_SPI0) Transmit Next Counter Register

-#define AT91C_SPI0_RNCR ((AT91_REG *) 	0xFFFE0114) // (PDC_SPI0) Receive Next Counter Register

-#define AT91C_SPI0_TNPR ((AT91_REG *) 	0xFFFE0118) // (PDC_SPI0) Transmit Next Pointer Register

-// ========== Register definition for SPI0 peripheral ========== 

-#define AT91C_SPI0_IER  ((AT91_REG *) 	0xFFFE0014) // (SPI0) Interrupt Enable Register

-#define AT91C_SPI0_SR   ((AT91_REG *) 	0xFFFE0010) // (SPI0) Status Register

-#define AT91C_SPI0_IDR  ((AT91_REG *) 	0xFFFE0018) // (SPI0) Interrupt Disable Register

-#define AT91C_SPI0_CR   ((AT91_REG *) 	0xFFFE0000) // (SPI0) Control Register

-#define AT91C_SPI0_MR   ((AT91_REG *) 	0xFFFE0004) // (SPI0) Mode Register

-#define AT91C_SPI0_IMR  ((AT91_REG *) 	0xFFFE001C) // (SPI0) Interrupt Mask Register

-#define AT91C_SPI0_TDR  ((AT91_REG *) 	0xFFFE000C) // (SPI0) Transmit Data Register

-#define AT91C_SPI0_RDR  ((AT91_REG *) 	0xFFFE0008) // (SPI0) Receive Data Register

-#define AT91C_SPI0_CSR  ((AT91_REG *) 	0xFFFE0030) // (SPI0) Chip Select Register

-// ========== Register definition for PDC_US1 peripheral ========== 

-#define AT91C_US1_RNCR  ((AT91_REG *) 	0xFFFC4114) // (PDC_US1) Receive Next Counter Register

-#define AT91C_US1_PTCR  ((AT91_REG *) 	0xFFFC4120) // (PDC_US1) PDC Transfer Control Register

-#define AT91C_US1_TCR   ((AT91_REG *) 	0xFFFC410C) // (PDC_US1) Transmit Counter Register

-#define AT91C_US1_PTSR  ((AT91_REG *) 	0xFFFC4124) // (PDC_US1) PDC Transfer Status Register

-#define AT91C_US1_TNPR  ((AT91_REG *) 	0xFFFC4118) // (PDC_US1) Transmit Next Pointer Register

-#define AT91C_US1_RCR   ((AT91_REG *) 	0xFFFC4104) // (PDC_US1) Receive Counter Register

-#define AT91C_US1_RNPR  ((AT91_REG *) 	0xFFFC4110) // (PDC_US1) Receive Next Pointer Register

-#define AT91C_US1_RPR   ((AT91_REG *) 	0xFFFC4100) // (PDC_US1) Receive Pointer Register

-#define AT91C_US1_TNCR  ((AT91_REG *) 	0xFFFC411C) // (PDC_US1) Transmit Next Counter Register

-#define AT91C_US1_TPR   ((AT91_REG *) 	0xFFFC4108) // (PDC_US1) Transmit Pointer Register

-// ========== Register definition for US1 peripheral ========== 

-#define AT91C_US1_IF    ((AT91_REG *) 	0xFFFC404C) // (US1) IRDA_FILTER Register

-#define AT91C_US1_NER   ((AT91_REG *) 	0xFFFC4044) // (US1) Nb Errors Register

-#define AT91C_US1_RTOR  ((AT91_REG *) 	0xFFFC4024) // (US1) Receiver Time-out Register

-#define AT91C_US1_CSR   ((AT91_REG *) 	0xFFFC4014) // (US1) Channel Status Register

-#define AT91C_US1_IDR   ((AT91_REG *) 	0xFFFC400C) // (US1) Interrupt Disable Register

-#define AT91C_US1_IER   ((AT91_REG *) 	0xFFFC4008) // (US1) Interrupt Enable Register

-#define AT91C_US1_THR   ((AT91_REG *) 	0xFFFC401C) // (US1) Transmitter Holding Register

-#define AT91C_US1_TTGR  ((AT91_REG *) 	0xFFFC4028) // (US1) Transmitter Time-guard Register

-#define AT91C_US1_RHR   ((AT91_REG *) 	0xFFFC4018) // (US1) Receiver Holding Register

-#define AT91C_US1_BRGR  ((AT91_REG *) 	0xFFFC4020) // (US1) Baud Rate Generator Register

-#define AT91C_US1_IMR   ((AT91_REG *) 	0xFFFC4010) // (US1) Interrupt Mask Register

-#define AT91C_US1_FIDI  ((AT91_REG *) 	0xFFFC4040) // (US1) FI_DI_Ratio Register

-#define AT91C_US1_CR    ((AT91_REG *) 	0xFFFC4000) // (US1) Control Register

-#define AT91C_US1_MR    ((AT91_REG *) 	0xFFFC4004) // (US1) Mode Register

-// ========== Register definition for PDC_US0 peripheral ========== 

-#define AT91C_US0_TNPR  ((AT91_REG *) 	0xFFFC0118) // (PDC_US0) Transmit Next Pointer Register

-#define AT91C_US0_RNPR  ((AT91_REG *) 	0xFFFC0110) // (PDC_US0) Receive Next Pointer Register

-#define AT91C_US0_TCR   ((AT91_REG *) 	0xFFFC010C) // (PDC_US0) Transmit Counter Register

-#define AT91C_US0_PTCR  ((AT91_REG *) 	0xFFFC0120) // (PDC_US0) PDC Transfer Control Register

-#define AT91C_US0_PTSR  ((AT91_REG *) 	0xFFFC0124) // (PDC_US0) PDC Transfer Status Register

-#define AT91C_US0_TNCR  ((AT91_REG *) 	0xFFFC011C) // (PDC_US0) Transmit Next Counter Register

-#define AT91C_US0_TPR   ((AT91_REG *) 	0xFFFC0108) // (PDC_US0) Transmit Pointer Register

-#define AT91C_US0_RCR   ((AT91_REG *) 	0xFFFC0104) // (PDC_US0) Receive Counter Register

-#define AT91C_US0_RPR   ((AT91_REG *) 	0xFFFC0100) // (PDC_US0) Receive Pointer Register

-#define AT91C_US0_RNCR  ((AT91_REG *) 	0xFFFC0114) // (PDC_US0) Receive Next Counter Register

-// ========== Register definition for US0 peripheral ========== 

-#define AT91C_US0_BRGR  ((AT91_REG *) 	0xFFFC0020) // (US0) Baud Rate Generator Register

-#define AT91C_US0_NER   ((AT91_REG *) 	0xFFFC0044) // (US0) Nb Errors Register

-#define AT91C_US0_CR    ((AT91_REG *) 	0xFFFC0000) // (US0) Control Register

-#define AT91C_US0_IMR   ((AT91_REG *) 	0xFFFC0010) // (US0) Interrupt Mask Register

-#define AT91C_US0_FIDI  ((AT91_REG *) 	0xFFFC0040) // (US0) FI_DI_Ratio Register

-#define AT91C_US0_TTGR  ((AT91_REG *) 	0xFFFC0028) // (US0) Transmitter Time-guard Register

-#define AT91C_US0_MR    ((AT91_REG *) 	0xFFFC0004) // (US0) Mode Register

-#define AT91C_US0_RTOR  ((AT91_REG *) 	0xFFFC0024) // (US0) Receiver Time-out Register

-#define AT91C_US0_CSR   ((AT91_REG *) 	0xFFFC0014) // (US0) Channel Status Register

-#define AT91C_US0_RHR   ((AT91_REG *) 	0xFFFC0018) // (US0) Receiver Holding Register

-#define AT91C_US0_IDR   ((AT91_REG *) 	0xFFFC000C) // (US0) Interrupt Disable Register

-#define AT91C_US0_THR   ((AT91_REG *) 	0xFFFC001C) // (US0) Transmitter Holding Register

-#define AT91C_US0_IF    ((AT91_REG *) 	0xFFFC004C) // (US0) IRDA_FILTER Register

-#define AT91C_US0_IER   ((AT91_REG *) 	0xFFFC0008) // (US0) Interrupt Enable Register

-// ========== Register definition for PDC_SSC peripheral ========== 

-#define AT91C_SSC_TNCR  ((AT91_REG *) 	0xFFFD411C) // (PDC_SSC) Transmit Next Counter Register

-#define AT91C_SSC_RPR   ((AT91_REG *) 	0xFFFD4100) // (PDC_SSC) Receive Pointer Register

-#define AT91C_SSC_RNCR  ((AT91_REG *) 	0xFFFD4114) // (PDC_SSC) Receive Next Counter Register

-#define AT91C_SSC_TPR   ((AT91_REG *) 	0xFFFD4108) // (PDC_SSC) Transmit Pointer Register

-#define AT91C_SSC_PTCR  ((AT91_REG *) 	0xFFFD4120) // (PDC_SSC) PDC Transfer Control Register

-#define AT91C_SSC_TCR   ((AT91_REG *) 	0xFFFD410C) // (PDC_SSC) Transmit Counter Register

-#define AT91C_SSC_RCR   ((AT91_REG *) 	0xFFFD4104) // (PDC_SSC) Receive Counter Register

-#define AT91C_SSC_RNPR  ((AT91_REG *) 	0xFFFD4110) // (PDC_SSC) Receive Next Pointer Register

-#define AT91C_SSC_TNPR  ((AT91_REG *) 	0xFFFD4118) // (PDC_SSC) Transmit Next Pointer Register

-#define AT91C_SSC_PTSR  ((AT91_REG *) 	0xFFFD4124) // (PDC_SSC) PDC Transfer Status Register

-// ========== Register definition for SSC peripheral ========== 

-#define AT91C_SSC_RHR   ((AT91_REG *) 	0xFFFD4020) // (SSC) Receive Holding Register

-#define AT91C_SSC_RSHR  ((AT91_REG *) 	0xFFFD4030) // (SSC) Receive Sync Holding Register

-#define AT91C_SSC_TFMR  ((AT91_REG *) 	0xFFFD401C) // (SSC) Transmit Frame Mode Register

-#define AT91C_SSC_IDR   ((AT91_REG *) 	0xFFFD4048) // (SSC) Interrupt Disable Register

-#define AT91C_SSC_THR   ((AT91_REG *) 	0xFFFD4024) // (SSC) Transmit Holding Register

-#define AT91C_SSC_RCMR  ((AT91_REG *) 	0xFFFD4010) // (SSC) Receive Clock ModeRegister

-#define AT91C_SSC_IER   ((AT91_REG *) 	0xFFFD4044) // (SSC) Interrupt Enable Register

-#define AT91C_SSC_TSHR  ((AT91_REG *) 	0xFFFD4034) // (SSC) Transmit Sync Holding Register

-#define AT91C_SSC_SR    ((AT91_REG *) 	0xFFFD4040) // (SSC) Status Register

-#define AT91C_SSC_CMR   ((AT91_REG *) 	0xFFFD4004) // (SSC) Clock Mode Register

-#define AT91C_SSC_TCMR  ((AT91_REG *) 	0xFFFD4018) // (SSC) Transmit Clock Mode Register

-#define AT91C_SSC_CR    ((AT91_REG *) 	0xFFFD4000) // (SSC) Control Register

-#define AT91C_SSC_IMR   ((AT91_REG *) 	0xFFFD404C) // (SSC) Interrupt Mask Register

-#define AT91C_SSC_RFMR  ((AT91_REG *) 	0xFFFD4014) // (SSC) Receive Frame Mode Register

-// ========== Register definition for TWI peripheral ========== 

-#define AT91C_TWI_IER   ((AT91_REG *) 	0xFFFB8024) // (TWI) Interrupt Enable Register

-#define AT91C_TWI_CR    ((AT91_REG *) 	0xFFFB8000) // (TWI) Control Register

-#define AT91C_TWI_SR    ((AT91_REG *) 	0xFFFB8020) // (TWI) Status Register

-#define AT91C_TWI_IMR   ((AT91_REG *) 	0xFFFB802C) // (TWI) Interrupt Mask Register

-#define AT91C_TWI_THR   ((AT91_REG *) 	0xFFFB8034) // (TWI) Transmit Holding Register

-#define AT91C_TWI_IDR   ((AT91_REG *) 	0xFFFB8028) // (TWI) Interrupt Disable Register

-#define AT91C_TWI_IADR  ((AT91_REG *) 	0xFFFB800C) // (TWI) Internal Address Register

-#define AT91C_TWI_MMR   ((AT91_REG *) 	0xFFFB8004) // (TWI) Master Mode Register

-#define AT91C_TWI_CWGR  ((AT91_REG *) 	0xFFFB8010) // (TWI) Clock Waveform Generator Register

-#define AT91C_TWI_RHR   ((AT91_REG *) 	0xFFFB8030) // (TWI) Receive Holding Register

-// ========== Register definition for PWMC_CH3 peripheral ========== 

-#define AT91C_PWMC_CH3_CUPDR ((AT91_REG *) 	0xFFFCC270) // (PWMC_CH3) Channel Update Register

-#define AT91C_PWMC_CH3_Reserved ((AT91_REG *) 	0xFFFCC274) // (PWMC_CH3) Reserved

-#define AT91C_PWMC_CH3_CPRDR ((AT91_REG *) 	0xFFFCC268) // (PWMC_CH3) Channel Period Register

-#define AT91C_PWMC_CH3_CDTYR ((AT91_REG *) 	0xFFFCC264) // (PWMC_CH3) Channel Duty Cycle Register

-#define AT91C_PWMC_CH3_CCNTR ((AT91_REG *) 	0xFFFCC26C) // (PWMC_CH3) Channel Counter Register

-#define AT91C_PWMC_CH3_CMR ((AT91_REG *) 	0xFFFCC260) // (PWMC_CH3) Channel Mode Register

-// ========== Register definition for PWMC_CH2 peripheral ========== 

-#define AT91C_PWMC_CH2_Reserved ((AT91_REG *) 	0xFFFCC254) // (PWMC_CH2) Reserved

-#define AT91C_PWMC_CH2_CMR ((AT91_REG *) 	0xFFFCC240) // (PWMC_CH2) Channel Mode Register

-#define AT91C_PWMC_CH2_CCNTR ((AT91_REG *) 	0xFFFCC24C) // (PWMC_CH2) Channel Counter Register

-#define AT91C_PWMC_CH2_CPRDR ((AT91_REG *) 	0xFFFCC248) // (PWMC_CH2) Channel Period Register

-#define AT91C_PWMC_CH2_CUPDR ((AT91_REG *) 	0xFFFCC250) // (PWMC_CH2) Channel Update Register

-#define AT91C_PWMC_CH2_CDTYR ((AT91_REG *) 	0xFFFCC244) // (PWMC_CH2) Channel Duty Cycle Register

-// ========== Register definition for PWMC_CH1 peripheral ========== 

-#define AT91C_PWMC_CH1_Reserved ((AT91_REG *) 	0xFFFCC234) // (PWMC_CH1) Reserved

-#define AT91C_PWMC_CH1_CUPDR ((AT91_REG *) 	0xFFFCC230) // (PWMC_CH1) Channel Update Register

-#define AT91C_PWMC_CH1_CPRDR ((AT91_REG *) 	0xFFFCC228) // (PWMC_CH1) Channel Period Register

-#define AT91C_PWMC_CH1_CCNTR ((AT91_REG *) 	0xFFFCC22C) // (PWMC_CH1) Channel Counter Register

-#define AT91C_PWMC_CH1_CDTYR ((AT91_REG *) 	0xFFFCC224) // (PWMC_CH1) Channel Duty Cycle Register

-#define AT91C_PWMC_CH1_CMR ((AT91_REG *) 	0xFFFCC220) // (PWMC_CH1) Channel Mode Register

-// ========== Register definition for PWMC_CH0 peripheral ========== 

-#define AT91C_PWMC_CH0_Reserved ((AT91_REG *) 	0xFFFCC214) // (PWMC_CH0) Reserved

-#define AT91C_PWMC_CH0_CPRDR ((AT91_REG *) 	0xFFFCC208) // (PWMC_CH0) Channel Period Register

-#define AT91C_PWMC_CH0_CDTYR ((AT91_REG *) 	0xFFFCC204) // (PWMC_CH0) Channel Duty Cycle Register

-#define AT91C_PWMC_CH0_CMR ((AT91_REG *) 	0xFFFCC200) // (PWMC_CH0) Channel Mode Register

-#define AT91C_PWMC_CH0_CUPDR ((AT91_REG *) 	0xFFFCC210) // (PWMC_CH0) Channel Update Register

-#define AT91C_PWMC_CH0_CCNTR ((AT91_REG *) 	0xFFFCC20C) // (PWMC_CH0) Channel Counter Register

-// ========== Register definition for PWMC peripheral ========== 

-#define AT91C_PWMC_IDR  ((AT91_REG *) 	0xFFFCC014) // (PWMC) PWMC Interrupt Disable Register

-#define AT91C_PWMC_DIS  ((AT91_REG *) 	0xFFFCC008) // (PWMC) PWMC Disable Register

-#define AT91C_PWMC_IER  ((AT91_REG *) 	0xFFFCC010) // (PWMC) PWMC Interrupt Enable Register

-#define AT91C_PWMC_VR   ((AT91_REG *) 	0xFFFCC0FC) // (PWMC) PWMC Version Register

-#define AT91C_PWMC_ISR  ((AT91_REG *) 	0xFFFCC01C) // (PWMC) PWMC Interrupt Status Register

-#define AT91C_PWMC_SR   ((AT91_REG *) 	0xFFFCC00C) // (PWMC) PWMC Status Register

-#define AT91C_PWMC_IMR  ((AT91_REG *) 	0xFFFCC018) // (PWMC) PWMC Interrupt Mask Register

-#define AT91C_PWMC_MR   ((AT91_REG *) 	0xFFFCC000) // (PWMC) PWMC Mode Register

-#define AT91C_PWMC_ENA  ((AT91_REG *) 	0xFFFCC004) // (PWMC) PWMC Enable Register

-// ========== Register definition for UDP peripheral ========== 

-#define AT91C_UDP_IMR   ((AT91_REG *) 	0xFFFB0018) // (UDP) Interrupt Mask Register

-#define AT91C_UDP_FADDR ((AT91_REG *) 	0xFFFB0008) // (UDP) Function Address Register

-#define AT91C_UDP_NUM   ((AT91_REG *) 	0xFFFB0000) // (UDP) Frame Number Register

-#define AT91C_UDP_FDR   ((AT91_REG *) 	0xFFFB0050) // (UDP) Endpoint FIFO Data Register

-#define AT91C_UDP_ISR   ((AT91_REG *) 	0xFFFB001C) // (UDP) Interrupt Status Register

-#define AT91C_UDP_CSR   ((AT91_REG *) 	0xFFFB0030) // (UDP) Endpoint Control and Status Register

-#define AT91C_UDP_IDR   ((AT91_REG *) 	0xFFFB0014) // (UDP) Interrupt Disable Register

-#define AT91C_UDP_ICR   ((AT91_REG *) 	0xFFFB0020) // (UDP) Interrupt Clear Register

-#define AT91C_UDP_RSTEP ((AT91_REG *) 	0xFFFB0028) // (UDP) Reset Endpoint Register

-#define AT91C_UDP_TXVC  ((AT91_REG *) 	0xFFFB0074) // (UDP) Transceiver Control Register

-#define AT91C_UDP_GLBSTATE ((AT91_REG *) 	0xFFFB0004) // (UDP) Global State Register

-#define AT91C_UDP_IER   ((AT91_REG *) 	0xFFFB0010) // (UDP) Interrupt Enable Register

-// ========== Register definition for TC0 peripheral ========== 

-#define AT91C_TC0_SR    ((AT91_REG *) 	0xFFFA0020) // (TC0) Status Register

-#define AT91C_TC0_RC    ((AT91_REG *) 	0xFFFA001C) // (TC0) Register C

-#define AT91C_TC0_RB    ((AT91_REG *) 	0xFFFA0018) // (TC0) Register B

-#define AT91C_TC0_CCR   ((AT91_REG *) 	0xFFFA0000) // (TC0) Channel Control Register

-#define AT91C_TC0_CMR   ((AT91_REG *) 	0xFFFA0004) // (TC0) Channel Mode Register (Capture Mode / Waveform Mode)

-#define AT91C_TC0_IER   ((AT91_REG *) 	0xFFFA0024) // (TC0) Interrupt Enable Register

-#define AT91C_TC0_RA    ((AT91_REG *) 	0xFFFA0014) // (TC0) Register A

-#define AT91C_TC0_IDR   ((AT91_REG *) 	0xFFFA0028) // (TC0) Interrupt Disable Register

-#define AT91C_TC0_CV    ((AT91_REG *) 	0xFFFA0010) // (TC0) Counter Value

-#define AT91C_TC0_IMR   ((AT91_REG *) 	0xFFFA002C) // (TC0) Interrupt Mask Register

-// ========== Register definition for TC1 peripheral ========== 

-#define AT91C_TC1_RB    ((AT91_REG *) 	0xFFFA0058) // (TC1) Register B

-#define AT91C_TC1_CCR   ((AT91_REG *) 	0xFFFA0040) // (TC1) Channel Control Register

-#define AT91C_TC1_IER   ((AT91_REG *) 	0xFFFA0064) // (TC1) Interrupt Enable Register

-#define AT91C_TC1_IDR   ((AT91_REG *) 	0xFFFA0068) // (TC1) Interrupt Disable Register

-#define AT91C_TC1_SR    ((AT91_REG *) 	0xFFFA0060) // (TC1) Status Register

-#define AT91C_TC1_CMR   ((AT91_REG *) 	0xFFFA0044) // (TC1) Channel Mode Register (Capture Mode / Waveform Mode)

-#define AT91C_TC1_RA    ((AT91_REG *) 	0xFFFA0054) // (TC1) Register A

-#define AT91C_TC1_RC    ((AT91_REG *) 	0xFFFA005C) // (TC1) Register C

-#define AT91C_TC1_IMR   ((AT91_REG *) 	0xFFFA006C) // (TC1) Interrupt Mask Register

-#define AT91C_TC1_CV    ((AT91_REG *) 	0xFFFA0050) // (TC1) Counter Value

-// ========== Register definition for TC2 peripheral ========== 

-#define AT91C_TC2_CMR   ((AT91_REG *) 	0xFFFA0084) // (TC2) Channel Mode Register (Capture Mode / Waveform Mode)

-#define AT91C_TC2_CCR   ((AT91_REG *) 	0xFFFA0080) // (TC2) Channel Control Register

-#define AT91C_TC2_CV    ((AT91_REG *) 	0xFFFA0090) // (TC2) Counter Value

-#define AT91C_TC2_RA    ((AT91_REG *) 	0xFFFA0094) // (TC2) Register A

-#define AT91C_TC2_RB    ((AT91_REG *) 	0xFFFA0098) // (TC2) Register B

-#define AT91C_TC2_IDR   ((AT91_REG *) 	0xFFFA00A8) // (TC2) Interrupt Disable Register

-#define AT91C_TC2_IMR   ((AT91_REG *) 	0xFFFA00AC) // (TC2) Interrupt Mask Register

-#define AT91C_TC2_RC    ((AT91_REG *) 	0xFFFA009C) // (TC2) Register C

-#define AT91C_TC2_IER   ((AT91_REG *) 	0xFFFA00A4) // (TC2) Interrupt Enable Register

-#define AT91C_TC2_SR    ((AT91_REG *) 	0xFFFA00A0) // (TC2) Status Register

-// ========== Register definition for TCB peripheral ========== 

-#define AT91C_TCB_BMR   ((AT91_REG *) 	0xFFFA00C4) // (TCB) TC Block Mode Register

-#define AT91C_TCB_BCR   ((AT91_REG *) 	0xFFFA00C0) // (TCB) TC Block Control Register

-// ========== Register definition for CAN_MB0 peripheral ========== 

-#define AT91C_CAN_MB0_MDL ((AT91_REG *) 	0xFFFD0214) // (CAN_MB0) MailBox Data Low Register

-#define AT91C_CAN_MB0_MAM ((AT91_REG *) 	0xFFFD0204) // (CAN_MB0) MailBox Acceptance Mask Register

-#define AT91C_CAN_MB0_MCR ((AT91_REG *) 	0xFFFD021C) // (CAN_MB0) MailBox Control Register

-#define AT91C_CAN_MB0_MID ((AT91_REG *) 	0xFFFD0208) // (CAN_MB0) MailBox ID Register

-#define AT91C_CAN_MB0_MSR ((AT91_REG *) 	0xFFFD0210) // (CAN_MB0) MailBox Status Register

-#define AT91C_CAN_MB0_MFID ((AT91_REG *) 	0xFFFD020C) // (CAN_MB0) MailBox Family ID Register

-#define AT91C_CAN_MB0_MDH ((AT91_REG *) 	0xFFFD0218) // (CAN_MB0) MailBox Data High Register

-#define AT91C_CAN_MB0_MMR ((AT91_REG *) 	0xFFFD0200) // (CAN_MB0) MailBox Mode Register

-// ========== Register definition for CAN_MB1 peripheral ========== 

-#define AT91C_CAN_MB1_MDL ((AT91_REG *) 	0xFFFD0234) // (CAN_MB1) MailBox Data Low Register

-#define AT91C_CAN_MB1_MID ((AT91_REG *) 	0xFFFD0228) // (CAN_MB1) MailBox ID Register

-#define AT91C_CAN_MB1_MMR ((AT91_REG *) 	0xFFFD0220) // (CAN_MB1) MailBox Mode Register

-#define AT91C_CAN_MB1_MSR ((AT91_REG *) 	0xFFFD0230) // (CAN_MB1) MailBox Status Register

-#define AT91C_CAN_MB1_MAM ((AT91_REG *) 	0xFFFD0224) // (CAN_MB1) MailBox Acceptance Mask Register

-#define AT91C_CAN_MB1_MDH ((AT91_REG *) 	0xFFFD0238) // (CAN_MB1) MailBox Data High Register

-#define AT91C_CAN_MB1_MCR ((AT91_REG *) 	0xFFFD023C) // (CAN_MB1) MailBox Control Register

-#define AT91C_CAN_MB1_MFID ((AT91_REG *) 	0xFFFD022C) // (CAN_MB1) MailBox Family ID Register

-// ========== Register definition for CAN_MB2 peripheral ========== 

-#define AT91C_CAN_MB2_MCR ((AT91_REG *) 	0xFFFD025C) // (CAN_MB2) MailBox Control Register

-#define AT91C_CAN_MB2_MDH ((AT91_REG *) 	0xFFFD0258) // (CAN_MB2) MailBox Data High Register

-#define AT91C_CAN_MB2_MID ((AT91_REG *) 	0xFFFD0248) // (CAN_MB2) MailBox ID Register

-#define AT91C_CAN_MB2_MDL ((AT91_REG *) 	0xFFFD0254) // (CAN_MB2) MailBox Data Low Register

-#define AT91C_CAN_MB2_MMR ((AT91_REG *) 	0xFFFD0240) // (CAN_MB2) MailBox Mode Register

-#define AT91C_CAN_MB2_MAM ((AT91_REG *) 	0xFFFD0244) // (CAN_MB2) MailBox Acceptance Mask Register

-#define AT91C_CAN_MB2_MFID ((AT91_REG *) 	0xFFFD024C) // (CAN_MB2) MailBox Family ID Register

-#define AT91C_CAN_MB2_MSR ((AT91_REG *) 	0xFFFD0250) // (CAN_MB2) MailBox Status Register

-// ========== Register definition for CAN_MB3 peripheral ========== 

-#define AT91C_CAN_MB3_MFID ((AT91_REG *) 	0xFFFD026C) // (CAN_MB3) MailBox Family ID Register

-#define AT91C_CAN_MB3_MAM ((AT91_REG *) 	0xFFFD0264) // (CAN_MB3) MailBox Acceptance Mask Register

-#define AT91C_CAN_MB3_MID ((AT91_REG *) 	0xFFFD0268) // (CAN_MB3) MailBox ID Register

-#define AT91C_CAN_MB3_MCR ((AT91_REG *) 	0xFFFD027C) // (CAN_MB3) MailBox Control Register

-#define AT91C_CAN_MB3_MMR ((AT91_REG *) 	0xFFFD0260) // (CAN_MB3) MailBox Mode Register

-#define AT91C_CAN_MB3_MSR ((AT91_REG *) 	0xFFFD0270) // (CAN_MB3) MailBox Status Register

-#define AT91C_CAN_MB3_MDL ((AT91_REG *) 	0xFFFD0274) // (CAN_MB3) MailBox Data Low Register

-#define AT91C_CAN_MB3_MDH ((AT91_REG *) 	0xFFFD0278) // (CAN_MB3) MailBox Data High Register

-// ========== Register definition for CAN_MB4 peripheral ========== 

-#define AT91C_CAN_MB4_MID ((AT91_REG *) 	0xFFFD0288) // (CAN_MB4) MailBox ID Register

-#define AT91C_CAN_MB4_MMR ((AT91_REG *) 	0xFFFD0280) // (CAN_MB4) MailBox Mode Register

-#define AT91C_CAN_MB4_MDH ((AT91_REG *) 	0xFFFD0298) // (CAN_MB4) MailBox Data High Register

-#define AT91C_CAN_MB4_MFID ((AT91_REG *) 	0xFFFD028C) // (CAN_MB4) MailBox Family ID Register

-#define AT91C_CAN_MB4_MSR ((AT91_REG *) 	0xFFFD0290) // (CAN_MB4) MailBox Status Register

-#define AT91C_CAN_MB4_MCR ((AT91_REG *) 	0xFFFD029C) // (CAN_MB4) MailBox Control Register

-#define AT91C_CAN_MB4_MDL ((AT91_REG *) 	0xFFFD0294) // (CAN_MB4) MailBox Data Low Register

-#define AT91C_CAN_MB4_MAM ((AT91_REG *) 	0xFFFD0284) // (CAN_MB4) MailBox Acceptance Mask Register

-// ========== Register definition for CAN_MB5 peripheral ========== 

-#define AT91C_CAN_MB5_MSR ((AT91_REG *) 	0xFFFD02B0) // (CAN_MB5) MailBox Status Register

-#define AT91C_CAN_MB5_MCR ((AT91_REG *) 	0xFFFD02BC) // (CAN_MB5) MailBox Control Register

-#define AT91C_CAN_MB5_MFID ((AT91_REG *) 	0xFFFD02AC) // (CAN_MB5) MailBox Family ID Register

-#define AT91C_CAN_MB5_MDH ((AT91_REG *) 	0xFFFD02B8) // (CAN_MB5) MailBox Data High Register

-#define AT91C_CAN_MB5_MID ((AT91_REG *) 	0xFFFD02A8) // (CAN_MB5) MailBox ID Register

-#define AT91C_CAN_MB5_MMR ((AT91_REG *) 	0xFFFD02A0) // (CAN_MB5) MailBox Mode Register

-#define AT91C_CAN_MB5_MDL ((AT91_REG *) 	0xFFFD02B4) // (CAN_MB5) MailBox Data Low Register

-#define AT91C_CAN_MB5_MAM ((AT91_REG *) 	0xFFFD02A4) // (CAN_MB5) MailBox Acceptance Mask Register

-// ========== Register definition for CAN_MB6 peripheral ========== 

-#define AT91C_CAN_MB6_MFID ((AT91_REG *) 	0xFFFD02CC) // (CAN_MB6) MailBox Family ID Register

-#define AT91C_CAN_MB6_MID ((AT91_REG *) 	0xFFFD02C8) // (CAN_MB6) MailBox ID Register

-#define AT91C_CAN_MB6_MAM ((AT91_REG *) 	0xFFFD02C4) // (CAN_MB6) MailBox Acceptance Mask Register

-#define AT91C_CAN_MB6_MSR ((AT91_REG *) 	0xFFFD02D0) // (CAN_MB6) MailBox Status Register

-#define AT91C_CAN_MB6_MDL ((AT91_REG *) 	0xFFFD02D4) // (CAN_MB6) MailBox Data Low Register

-#define AT91C_CAN_MB6_MCR ((AT91_REG *) 	0xFFFD02DC) // (CAN_MB6) MailBox Control Register

-#define AT91C_CAN_MB6_MDH ((AT91_REG *) 	0xFFFD02D8) // (CAN_MB6) MailBox Data High Register

-#define AT91C_CAN_MB6_MMR ((AT91_REG *) 	0xFFFD02C0) // (CAN_MB6) MailBox Mode Register

-// ========== Register definition for CAN_MB7 peripheral ========== 

-#define AT91C_CAN_MB7_MCR ((AT91_REG *) 	0xFFFD02FC) // (CAN_MB7) MailBox Control Register

-#define AT91C_CAN_MB7_MDH ((AT91_REG *) 	0xFFFD02F8) // (CAN_MB7) MailBox Data High Register

-#define AT91C_CAN_MB7_MFID ((AT91_REG *) 	0xFFFD02EC) // (CAN_MB7) MailBox Family ID Register

-#define AT91C_CAN_MB7_MDL ((AT91_REG *) 	0xFFFD02F4) // (CAN_MB7) MailBox Data Low Register

-#define AT91C_CAN_MB7_MID ((AT91_REG *) 	0xFFFD02E8) // (CAN_MB7) MailBox ID Register

-#define AT91C_CAN_MB7_MMR ((AT91_REG *) 	0xFFFD02E0) // (CAN_MB7) MailBox Mode Register

-#define AT91C_CAN_MB7_MAM ((AT91_REG *) 	0xFFFD02E4) // (CAN_MB7) MailBox Acceptance Mask Register

-#define AT91C_CAN_MB7_MSR ((AT91_REG *) 	0xFFFD02F0) // (CAN_MB7) MailBox Status Register

-// ========== Register definition for CAN peripheral ========== 

-#define AT91C_CAN_TCR   ((AT91_REG *) 	0xFFFD0024) // (CAN) Transfer Command Register

-#define AT91C_CAN_IMR   ((AT91_REG *) 	0xFFFD000C) // (CAN) Interrupt Mask Register

-#define AT91C_CAN_IER   ((AT91_REG *) 	0xFFFD0004) // (CAN) Interrupt Enable Register

-#define AT91C_CAN_ECR   ((AT91_REG *) 	0xFFFD0020) // (CAN) Error Counter Register

-#define AT91C_CAN_TIMESTP ((AT91_REG *) 	0xFFFD001C) // (CAN) Time Stamp Register

-#define AT91C_CAN_MR    ((AT91_REG *) 	0xFFFD0000) // (CAN) Mode Register

-#define AT91C_CAN_IDR   ((AT91_REG *) 	0xFFFD0008) // (CAN) Interrupt Disable Register

-#define AT91C_CAN_ACR   ((AT91_REG *) 	0xFFFD0028) // (CAN) Abort Command Register

-#define AT91C_CAN_TIM   ((AT91_REG *) 	0xFFFD0018) // (CAN) Timer Register

-#define AT91C_CAN_SR    ((AT91_REG *) 	0xFFFD0010) // (CAN) Status Register

-#define AT91C_CAN_BR    ((AT91_REG *) 	0xFFFD0014) // (CAN) Baudrate Register

-#define AT91C_CAN_VR    ((AT91_REG *) 	0xFFFD00FC) // (CAN) Version Register

-// ========== Register definition for EMAC peripheral ========== 

-#define AT91C_EMAC_ISR  ((AT91_REG *) 	0xFFFDC024) // (EMAC) Interrupt Status Register

-#define AT91C_EMAC_SA4H ((AT91_REG *) 	0xFFFDC0B4) // (EMAC) Specific Address 4 Top, Last 2 bytes

-#define AT91C_EMAC_SA1L ((AT91_REG *) 	0xFFFDC098) // (EMAC) Specific Address 1 Bottom, First 4 bytes

-#define AT91C_EMAC_ELE  ((AT91_REG *) 	0xFFFDC078) // (EMAC) Excessive Length Errors Register

-#define AT91C_EMAC_LCOL ((AT91_REG *) 	0xFFFDC05C) // (EMAC) Late Collision Register

-#define AT91C_EMAC_RLE  ((AT91_REG *) 	0xFFFDC088) // (EMAC) Receive Length Field Mismatch Register

-#define AT91C_EMAC_WOL  ((AT91_REG *) 	0xFFFDC0C4) // (EMAC) Wake On LAN Register

-#define AT91C_EMAC_DTF  ((AT91_REG *) 	0xFFFDC058) // (EMAC) Deferred Transmission Frame Register

-#define AT91C_EMAC_TUND ((AT91_REG *) 	0xFFFDC064) // (EMAC) Transmit Underrun Error Register

-#define AT91C_EMAC_NCR  ((AT91_REG *) 	0xFFFDC000) // (EMAC) Network Control Register

-#define AT91C_EMAC_SA4L ((AT91_REG *) 	0xFFFDC0B0) // (EMAC) Specific Address 4 Bottom, First 4 bytes

-#define AT91C_EMAC_RSR  ((AT91_REG *) 	0xFFFDC020) // (EMAC) Receive Status Register

-#define AT91C_EMAC_SA3L ((AT91_REG *) 	0xFFFDC0A8) // (EMAC) Specific Address 3 Bottom, First 4 bytes

-#define AT91C_EMAC_TSR  ((AT91_REG *) 	0xFFFDC014) // (EMAC) Transmit Status Register

-#define AT91C_EMAC_IDR  ((AT91_REG *) 	0xFFFDC02C) // (EMAC) Interrupt Disable Register

-#define AT91C_EMAC_RSE  ((AT91_REG *) 	0xFFFDC074) // (EMAC) Receive Symbol Errors Register

-#define AT91C_EMAC_ECOL ((AT91_REG *) 	0xFFFDC060) // (EMAC) Excessive Collision Register

-#define AT91C_EMAC_TID  ((AT91_REG *) 	0xFFFDC0B8) // (EMAC) Type ID Checking Register

-#define AT91C_EMAC_HRB  ((AT91_REG *) 	0xFFFDC090) // (EMAC) Hash Address Bottom[31:0]

-#define AT91C_EMAC_TBQP ((AT91_REG *) 	0xFFFDC01C) // (EMAC) Transmit Buffer Queue Pointer

-#define AT91C_EMAC_USRIO ((AT91_REG *) 	0xFFFDC0C0) // (EMAC) USER Input/Output Register

-#define AT91C_EMAC_PTR  ((AT91_REG *) 	0xFFFDC038) // (EMAC) Pause Time Register

-#define AT91C_EMAC_SA2H ((AT91_REG *) 	0xFFFDC0A4) // (EMAC) Specific Address 2 Top, Last 2 bytes

-#define AT91C_EMAC_ROV  ((AT91_REG *) 	0xFFFDC070) // (EMAC) Receive Overrun Errors Register

-#define AT91C_EMAC_ALE  ((AT91_REG *) 	0xFFFDC054) // (EMAC) Alignment Error Register

-#define AT91C_EMAC_RJA  ((AT91_REG *) 	0xFFFDC07C) // (EMAC) Receive Jabbers Register

-#define AT91C_EMAC_RBQP ((AT91_REG *) 	0xFFFDC018) // (EMAC) Receive Buffer Queue Pointer

-#define AT91C_EMAC_TPF  ((AT91_REG *) 	0xFFFDC08C) // (EMAC) Transmitted Pause Frames Register

-#define AT91C_EMAC_NCFGR ((AT91_REG *) 	0xFFFDC004) // (EMAC) Network Configuration Register

-#define AT91C_EMAC_HRT  ((AT91_REG *) 	0xFFFDC094) // (EMAC) Hash Address Top[63:32]

-#define AT91C_EMAC_USF  ((AT91_REG *) 	0xFFFDC080) // (EMAC) Undersize Frames Register

-#define AT91C_EMAC_FCSE ((AT91_REG *) 	0xFFFDC050) // (EMAC) Frame Check Sequence Error Register

-#define AT91C_EMAC_TPQ  ((AT91_REG *) 	0xFFFDC0BC) // (EMAC) Transmit Pause Quantum Register

-#define AT91C_EMAC_MAN  ((AT91_REG *) 	0xFFFDC034) // (EMAC) PHY Maintenance Register

-#define AT91C_EMAC_FTO  ((AT91_REG *) 	0xFFFDC040) // (EMAC) Frames Transmitted OK Register

-#define AT91C_EMAC_REV  ((AT91_REG *) 	0xFFFDC0FC) // (EMAC) Revision Register

-#define AT91C_EMAC_IMR  ((AT91_REG *) 	0xFFFDC030) // (EMAC) Interrupt Mask Register

-#define AT91C_EMAC_SCF  ((AT91_REG *) 	0xFFFDC044) // (EMAC) Single Collision Frame Register

-#define AT91C_EMAC_PFR  ((AT91_REG *) 	0xFFFDC03C) // (EMAC) Pause Frames received Register

-#define AT91C_EMAC_MCF  ((AT91_REG *) 	0xFFFDC048) // (EMAC) Multiple Collision Frame Register

-#define AT91C_EMAC_NSR  ((AT91_REG *) 	0xFFFDC008) // (EMAC) Network Status Register

-#define AT91C_EMAC_SA2L ((AT91_REG *) 	0xFFFDC0A0) // (EMAC) Specific Address 2 Bottom, First 4 bytes

-#define AT91C_EMAC_FRO  ((AT91_REG *) 	0xFFFDC04C) // (EMAC) Frames Received OK Register

-#define AT91C_EMAC_IER  ((AT91_REG *) 	0xFFFDC028) // (EMAC) Interrupt Enable Register

-#define AT91C_EMAC_SA1H ((AT91_REG *) 	0xFFFDC09C) // (EMAC) Specific Address 1 Top, Last 2 bytes

-#define AT91C_EMAC_CSE  ((AT91_REG *) 	0xFFFDC068) // (EMAC) Carrier Sense Error Register

-#define AT91C_EMAC_SA3H ((AT91_REG *) 	0xFFFDC0AC) // (EMAC) Specific Address 3 Top, Last 2 bytes

-#define AT91C_EMAC_RRE  ((AT91_REG *) 	0xFFFDC06C) // (EMAC) Receive Ressource Error Register

-#define AT91C_EMAC_STE  ((AT91_REG *) 	0xFFFDC084) // (EMAC) SQE Test Error Register

-// ========== Register definition for PDC_ADC peripheral ========== 

-#define AT91C_ADC_PTSR  ((AT91_REG *) 	0xFFFD8124) // (PDC_ADC) PDC Transfer Status Register

-#define AT91C_ADC_PTCR  ((AT91_REG *) 	0xFFFD8120) // (PDC_ADC) PDC Transfer Control Register

-#define AT91C_ADC_TNPR  ((AT91_REG *) 	0xFFFD8118) // (PDC_ADC) Transmit Next Pointer Register

-#define AT91C_ADC_TNCR  ((AT91_REG *) 	0xFFFD811C) // (PDC_ADC) Transmit Next Counter Register

-#define AT91C_ADC_RNPR  ((AT91_REG *) 	0xFFFD8110) // (PDC_ADC) Receive Next Pointer Register

-#define AT91C_ADC_RNCR  ((AT91_REG *) 	0xFFFD8114) // (PDC_ADC) Receive Next Counter Register

-#define AT91C_ADC_RPR   ((AT91_REG *) 	0xFFFD8100) // (PDC_ADC) Receive Pointer Register

-#define AT91C_ADC_TCR   ((AT91_REG *) 	0xFFFD810C) // (PDC_ADC) Transmit Counter Register

-#define AT91C_ADC_TPR   ((AT91_REG *) 	0xFFFD8108) // (PDC_ADC) Transmit Pointer Register

-#define AT91C_ADC_RCR   ((AT91_REG *) 	0xFFFD8104) // (PDC_ADC) Receive Counter Register

-// ========== Register definition for ADC peripheral ========== 

-#define AT91C_ADC_CDR2  ((AT91_REG *) 	0xFFFD8038) // (ADC) ADC Channel Data Register 2

-#define AT91C_ADC_CDR3  ((AT91_REG *) 	0xFFFD803C) // (ADC) ADC Channel Data Register 3

-#define AT91C_ADC_CDR0  ((AT91_REG *) 	0xFFFD8030) // (ADC) ADC Channel Data Register 0

-#define AT91C_ADC_CDR5  ((AT91_REG *) 	0xFFFD8044) // (ADC) ADC Channel Data Register 5

-#define AT91C_ADC_CHDR  ((AT91_REG *) 	0xFFFD8014) // (ADC) ADC Channel Disable Register

-#define AT91C_ADC_SR    ((AT91_REG *) 	0xFFFD801C) // (ADC) ADC Status Register

-#define AT91C_ADC_CDR4  ((AT91_REG *) 	0xFFFD8040) // (ADC) ADC Channel Data Register 4

-#define AT91C_ADC_CDR1  ((AT91_REG *) 	0xFFFD8034) // (ADC) ADC Channel Data Register 1

-#define AT91C_ADC_LCDR  ((AT91_REG *) 	0xFFFD8020) // (ADC) ADC Last Converted Data Register

-#define AT91C_ADC_IDR   ((AT91_REG *) 	0xFFFD8028) // (ADC) ADC Interrupt Disable Register

-#define AT91C_ADC_CR    ((AT91_REG *) 	0xFFFD8000) // (ADC) ADC Control Register

-#define AT91C_ADC_CDR7  ((AT91_REG *) 	0xFFFD804C) // (ADC) ADC Channel Data Register 7

-#define AT91C_ADC_CDR6  ((AT91_REG *) 	0xFFFD8048) // (ADC) ADC Channel Data Register 6

-#define AT91C_ADC_IER   ((AT91_REG *) 	0xFFFD8024) // (ADC) ADC Interrupt Enable Register

-#define AT91C_ADC_CHER  ((AT91_REG *) 	0xFFFD8010) // (ADC) ADC Channel Enable Register

-#define AT91C_ADC_CHSR  ((AT91_REG *) 	0xFFFD8018) // (ADC) ADC Channel Status Register

-#define AT91C_ADC_MR    ((AT91_REG *) 	0xFFFD8004) // (ADC) ADC Mode Register

-#define AT91C_ADC_IMR   ((AT91_REG *) 	0xFFFD802C) // (ADC) ADC Interrupt Mask Register

-// ========== Register definition for PDC_AES peripheral ========== 

-#define AT91C_AES_TPR   ((AT91_REG *) 	0xFFFA4108) // (PDC_AES) Transmit Pointer Register

-#define AT91C_AES_PTCR  ((AT91_REG *) 	0xFFFA4120) // (PDC_AES) PDC Transfer Control Register

-#define AT91C_AES_RNPR  ((AT91_REG *) 	0xFFFA4110) // (PDC_AES) Receive Next Pointer Register

-#define AT91C_AES_TNCR  ((AT91_REG *) 	0xFFFA411C) // (PDC_AES) Transmit Next Counter Register

-#define AT91C_AES_TCR   ((AT91_REG *) 	0xFFFA410C) // (PDC_AES) Transmit Counter Register

-#define AT91C_AES_RCR   ((AT91_REG *) 	0xFFFA4104) // (PDC_AES) Receive Counter Register

-#define AT91C_AES_RNCR  ((AT91_REG *) 	0xFFFA4114) // (PDC_AES) Receive Next Counter Register

-#define AT91C_AES_TNPR  ((AT91_REG *) 	0xFFFA4118) // (PDC_AES) Transmit Next Pointer Register

-#define AT91C_AES_RPR   ((AT91_REG *) 	0xFFFA4100) // (PDC_AES) Receive Pointer Register

-#define AT91C_AES_PTSR  ((AT91_REG *) 	0xFFFA4124) // (PDC_AES) PDC Transfer Status Register

-// ========== Register definition for AES peripheral ========== 

-#define AT91C_AES_IVxR  ((AT91_REG *) 	0xFFFA4060) // (AES) Initialization Vector x Register

-#define AT91C_AES_MR    ((AT91_REG *) 	0xFFFA4004) // (AES) Mode Register

-#define AT91C_AES_VR    ((AT91_REG *) 	0xFFFA40FC) // (AES) AES Version Register

-#define AT91C_AES_ODATAxR ((AT91_REG *) 	0xFFFA4050) // (AES) Output Data x Register

-#define AT91C_AES_IDATAxR ((AT91_REG *) 	0xFFFA4040) // (AES) Input Data x Register

-#define AT91C_AES_CR    ((AT91_REG *) 	0xFFFA4000) // (AES) Control Register

-#define AT91C_AES_IDR   ((AT91_REG *) 	0xFFFA4014) // (AES) Interrupt Disable Register

-#define AT91C_AES_IMR   ((AT91_REG *) 	0xFFFA4018) // (AES) Interrupt Mask Register

-#define AT91C_AES_IER   ((AT91_REG *) 	0xFFFA4010) // (AES) Interrupt Enable Register

-#define AT91C_AES_KEYWxR ((AT91_REG *) 	0xFFFA4020) // (AES) Key Word x Register

-#define AT91C_AES_ISR   ((AT91_REG *) 	0xFFFA401C) // (AES) Interrupt Status Register

-// ========== Register definition for PDC_TDES peripheral ========== 

-#define AT91C_TDES_RNCR ((AT91_REG *) 	0xFFFA8114) // (PDC_TDES) Receive Next Counter Register

-#define AT91C_TDES_TCR  ((AT91_REG *) 	0xFFFA810C) // (PDC_TDES) Transmit Counter Register

-#define AT91C_TDES_RCR  ((AT91_REG *) 	0xFFFA8104) // (PDC_TDES) Receive Counter Register

-#define AT91C_TDES_TNPR ((AT91_REG *) 	0xFFFA8118) // (PDC_TDES) Transmit Next Pointer Register

-#define AT91C_TDES_RNPR ((AT91_REG *) 	0xFFFA8110) // (PDC_TDES) Receive Next Pointer Register

-#define AT91C_TDES_RPR  ((AT91_REG *) 	0xFFFA8100) // (PDC_TDES) Receive Pointer Register

-#define AT91C_TDES_TNCR ((AT91_REG *) 	0xFFFA811C) // (PDC_TDES) Transmit Next Counter Register

-#define AT91C_TDES_TPR  ((AT91_REG *) 	0xFFFA8108) // (PDC_TDES) Transmit Pointer Register

-#define AT91C_TDES_PTSR ((AT91_REG *) 	0xFFFA8124) // (PDC_TDES) PDC Transfer Status Register

-#define AT91C_TDES_PTCR ((AT91_REG *) 	0xFFFA8120) // (PDC_TDES) PDC Transfer Control Register

-// ========== Register definition for TDES peripheral ========== 

-#define AT91C_TDES_KEY2WxR ((AT91_REG *) 	0xFFFA8028) // (TDES) Key 2 Word x Register

-#define AT91C_TDES_KEY3WxR ((AT91_REG *) 	0xFFFA8030) // (TDES) Key 3 Word x Register

-#define AT91C_TDES_IDR  ((AT91_REG *) 	0xFFFA8014) // (TDES) Interrupt Disable Register

-#define AT91C_TDES_VR   ((AT91_REG *) 	0xFFFA80FC) // (TDES) TDES Version Register

-#define AT91C_TDES_IVxR ((AT91_REG *) 	0xFFFA8060) // (TDES) Initialization Vector x Register

-#define AT91C_TDES_ODATAxR ((AT91_REG *) 	0xFFFA8050) // (TDES) Output Data x Register

-#define AT91C_TDES_IMR  ((AT91_REG *) 	0xFFFA8018) // (TDES) Interrupt Mask Register

-#define AT91C_TDES_MR   ((AT91_REG *) 	0xFFFA8004) // (TDES) Mode Register

-#define AT91C_TDES_CR   ((AT91_REG *) 	0xFFFA8000) // (TDES) Control Register

-#define AT91C_TDES_IER  ((AT91_REG *) 	0xFFFA8010) // (TDES) Interrupt Enable Register

-#define AT91C_TDES_ISR  ((AT91_REG *) 	0xFFFA801C) // (TDES) Interrupt Status Register

-#define AT91C_TDES_IDATAxR ((AT91_REG *) 	0xFFFA8040) // (TDES) Input Data x Register

-#define AT91C_TDES_KEY1WxR ((AT91_REG *) 	0xFFFA8020) // (TDES) Key 1 Word x Register

-

-// *****************************************************************************

-//               PIO DEFINITIONS FOR AT91SAM7X256

-// *****************************************************************************

-#define AT91C_PIO_PA0        ((unsigned int) 1 <<  0) // Pin Controlled by PA0

-#define AT91C_PA0_RXD0     ((unsigned int) AT91C_PIO_PA0) //  USART 0 Receive Data

-#define AT91C_PIO_PA1        ((unsigned int) 1 <<  1) // Pin Controlled by PA1

-#define AT91C_PA1_TXD0     ((unsigned int) AT91C_PIO_PA1) //  USART 0 Transmit Data

-#define AT91C_PIO_PA10       ((unsigned int) 1 << 10) // Pin Controlled by PA10

-#define AT91C_PA10_TWD      ((unsigned int) AT91C_PIO_PA10) //  TWI Two-wire Serial Data

-#define AT91C_PIO_PA11       ((unsigned int) 1 << 11) // Pin Controlled by PA11

-#define AT91C_PA11_TWCK     ((unsigned int) AT91C_PIO_PA11) //  TWI Two-wire Serial Clock

-#define AT91C_PIO_PA12       ((unsigned int) 1 << 12) // Pin Controlled by PA12

-#define AT91C_PA12_NPCS00   ((unsigned int) AT91C_PIO_PA12) //  SPI 0 Peripheral Chip Select 0

-#define AT91C_PIO_PA13       ((unsigned int) 1 << 13) // Pin Controlled by PA13

-#define AT91C_PA13_NPCS01   ((unsigned int) AT91C_PIO_PA13) //  SPI 0 Peripheral Chip Select 1

-#define AT91C_PA13_PCK1     ((unsigned int) AT91C_PIO_PA13) //  PMC Programmable Clock Output 1

-#define AT91C_PIO_PA14       ((unsigned int) 1 << 14) // Pin Controlled by PA14

-#define AT91C_PA14_NPCS02   ((unsigned int) AT91C_PIO_PA14) //  SPI 0 Peripheral Chip Select 2

-#define AT91C_PA14_IRQ1     ((unsigned int) AT91C_PIO_PA14) //  External Interrupt 1

-#define AT91C_PIO_PA15       ((unsigned int) 1 << 15) // Pin Controlled by PA15

-#define AT91C_PA15_NPCS03   ((unsigned int) AT91C_PIO_PA15) //  SPI 0 Peripheral Chip Select 3

-#define AT91C_PA15_TCLK2    ((unsigned int) AT91C_PIO_PA15) //  Timer Counter 2 external clock input

-#define AT91C_PIO_PA16       ((unsigned int) 1 << 16) // Pin Controlled by PA16

-#define AT91C_PA16_MISO0    ((unsigned int) AT91C_PIO_PA16) //  SPI 0 Master In Slave

-#define AT91C_PIO_PA17       ((unsigned int) 1 << 17) // Pin Controlled by PA17

-#define AT91C_PA17_MOSI0    ((unsigned int) AT91C_PIO_PA17) //  SPI 0 Master Out Slave

-#define AT91C_PIO_PA18       ((unsigned int) 1 << 18) // Pin Controlled by PA18

-#define AT91C_PA18_SPCK0    ((unsigned int) AT91C_PIO_PA18) //  SPI 0 Serial Clock

-#define AT91C_PIO_PA19       ((unsigned int) 1 << 19) // Pin Controlled by PA19

-#define AT91C_PA19_CANRX    ((unsigned int) AT91C_PIO_PA19) //  CAN Receive

-#define AT91C_PIO_PA2        ((unsigned int) 1 <<  2) // Pin Controlled by PA2

-#define AT91C_PA2_SCK0     ((unsigned int) AT91C_PIO_PA2) //  USART 0 Serial Clock

-#define AT91C_PA2_NPCS11   ((unsigned int) AT91C_PIO_PA2) //  SPI 1 Peripheral Chip Select 1

-#define AT91C_PIO_PA20       ((unsigned int) 1 << 20) // Pin Controlled by PA20

-#define AT91C_PA20_CANTX    ((unsigned int) AT91C_PIO_PA20) //  CAN Transmit

-#define AT91C_PIO_PA21       ((unsigned int) 1 << 21) // Pin Controlled by PA21

-#define AT91C_PA21_TF       ((unsigned int) AT91C_PIO_PA21) //  SSC Transmit Frame Sync

-#define AT91C_PA21_NPCS10   ((unsigned int) AT91C_PIO_PA21) //  SPI 1 Peripheral Chip Select 0

-#define AT91C_PIO_PA22       ((unsigned int) 1 << 22) // Pin Controlled by PA22

-#define AT91C_PA22_TK       ((unsigned int) AT91C_PIO_PA22) //  SSC Transmit Clock

-#define AT91C_PA22_SPCK1    ((unsigned int) AT91C_PIO_PA22) //  SPI 1 Serial Clock

-#define AT91C_PIO_PA23       ((unsigned int) 1 << 23) // Pin Controlled by PA23

-#define AT91C_PA23_TD       ((unsigned int) AT91C_PIO_PA23) //  SSC Transmit data

-#define AT91C_PA23_MOSI1    ((unsigned int) AT91C_PIO_PA23) //  SPI 1 Master Out Slave

-#define AT91C_PIO_PA24       ((unsigned int) 1 << 24) // Pin Controlled by PA24

-#define AT91C_PA24_RD       ((unsigned int) AT91C_PIO_PA24) //  SSC Receive Data

-#define AT91C_PA24_MISO1    ((unsigned int) AT91C_PIO_PA24) //  SPI 1 Master In Slave

-#define AT91C_PIO_PA25       ((unsigned int) 1 << 25) // Pin Controlled by PA25

-#define AT91C_PA25_RK       ((unsigned int) AT91C_PIO_PA25) //  SSC Receive Clock

-#define AT91C_PA25_NPCS11   ((unsigned int) AT91C_PIO_PA25) //  SPI 1 Peripheral Chip Select 1

-#define AT91C_PIO_PA26       ((unsigned int) 1 << 26) // Pin Controlled by PA26

-#define AT91C_PA26_RF       ((unsigned int) AT91C_PIO_PA26) //  SSC Receive Frame Sync

-#define AT91C_PA26_NPCS12   ((unsigned int) AT91C_PIO_PA26) //  SPI 1 Peripheral Chip Select 2

-#define AT91C_PIO_PA27       ((unsigned int) 1 << 27) // Pin Controlled by PA27

-#define AT91C_PA27_DRXD     ((unsigned int) AT91C_PIO_PA27) //  DBGU Debug Receive Data

-#define AT91C_PA27_PCK3     ((unsigned int) AT91C_PIO_PA27) //  PMC Programmable Clock Output 3

-#define AT91C_PIO_PA28       ((unsigned int) 1 << 28) // Pin Controlled by PA28

-#define AT91C_PA28_DTXD     ((unsigned int) AT91C_PIO_PA28) //  DBGU Debug Transmit Data

-#define AT91C_PIO_PA29       ((unsigned int) 1 << 29) // Pin Controlled by PA29

-#define AT91C_PA29_FIQ      ((unsigned int) AT91C_PIO_PA29) //  AIC Fast Interrupt Input

-#define AT91C_PA29_NPCS13   ((unsigned int) AT91C_PIO_PA29) //  SPI 1 Peripheral Chip Select 3

-#define AT91C_PIO_PA3        ((unsigned int) 1 <<  3) // Pin Controlled by PA3

-#define AT91C_PA3_RTS0     ((unsigned int) AT91C_PIO_PA3) //  USART 0 Ready To Send

-#define AT91C_PA3_NPCS12   ((unsigned int) AT91C_PIO_PA3) //  SPI 1 Peripheral Chip Select 2

-#define AT91C_PIO_PA30       ((unsigned int) 1 << 30) // Pin Controlled by PA30

-#define AT91C_PA30_IRQ0     ((unsigned int) AT91C_PIO_PA30) //  External Interrupt 0

-#define AT91C_PA30_PCK2     ((unsigned int) AT91C_PIO_PA30) //  PMC Programmable Clock Output 2

-#define AT91C_PIO_PA4        ((unsigned int) 1 <<  4) // Pin Controlled by PA4

-#define AT91C_PA4_CTS0     ((unsigned int) AT91C_PIO_PA4) //  USART 0 Clear To Send

-#define AT91C_PA4_NPCS13   ((unsigned int) AT91C_PIO_PA4) //  SPI 1 Peripheral Chip Select 3

-#define AT91C_PIO_PA5        ((unsigned int) 1 <<  5) // Pin Controlled by PA5

-#define AT91C_PA5_RXD1     ((unsigned int) AT91C_PIO_PA5) //  USART 1 Receive Data

-#define AT91C_PIO_PA6        ((unsigned int) 1 <<  6) // Pin Controlled by PA6

-#define AT91C_PA6_TXD1     ((unsigned int) AT91C_PIO_PA6) //  USART 1 Transmit Data

-#define AT91C_PIO_PA7        ((unsigned int) 1 <<  7) // Pin Controlled by PA7

-#define AT91C_PA7_SCK1     ((unsigned int) AT91C_PIO_PA7) //  USART 1 Serial Clock

-#define AT91C_PA7_NPCS01   ((unsigned int) AT91C_PIO_PA7) //  SPI 0 Peripheral Chip Select 1

-#define AT91C_PIO_PA8        ((unsigned int) 1 <<  8) // Pin Controlled by PA8

-#define AT91C_PA8_RTS1     ((unsigned int) AT91C_PIO_PA8) //  USART 1 Ready To Send

-#define AT91C_PA8_NPCS02   ((unsigned int) AT91C_PIO_PA8) //  SPI 0 Peripheral Chip Select 2

-#define AT91C_PIO_PA9        ((unsigned int) 1 <<  9) // Pin Controlled by PA9

-#define AT91C_PA9_CTS1     ((unsigned int) AT91C_PIO_PA9) //  USART 1 Clear To Send

-#define AT91C_PA9_NPCS03   ((unsigned int) AT91C_PIO_PA9) //  SPI 0 Peripheral Chip Select 3

-#define AT91C_PIO_PB0        ((unsigned int) 1 <<  0) // Pin Controlled by PB0

-#define AT91C_PB0_ETXCK_EREFCK ((unsigned int) AT91C_PIO_PB0) //  Ethernet MAC Transmit Clock/Reference Clock

-#define AT91C_PB0_PCK0     ((unsigned int) AT91C_PIO_PB0) //  PMC Programmable Clock Output 0

-#define AT91C_PIO_PB1        ((unsigned int) 1 <<  1) // Pin Controlled by PB1

-#define AT91C_PB1_ETXEN    ((unsigned int) AT91C_PIO_PB1) //  Ethernet MAC Transmit Enable

-#define AT91C_PIO_PB10       ((unsigned int) 1 << 10) // Pin Controlled by PB10

-#define AT91C_PB10_ETX2     ((unsigned int) AT91C_PIO_PB10) //  Ethernet MAC Transmit Data 2

-#define AT91C_PB10_NPCS11   ((unsigned int) AT91C_PIO_PB10) //  SPI 1 Peripheral Chip Select 1

-#define AT91C_PIO_PB11       ((unsigned int) 1 << 11) // Pin Controlled by PB11

-#define AT91C_PB11_ETX3     ((unsigned int) AT91C_PIO_PB11) //  Ethernet MAC Transmit Data 3

-#define AT91C_PB11_NPCS12   ((unsigned int) AT91C_PIO_PB11) //  SPI 1 Peripheral Chip Select 2

-#define AT91C_PIO_PB12       ((unsigned int) 1 << 12) // Pin Controlled by PB12

-#define AT91C_PB12_ETXER    ((unsigned int) AT91C_PIO_PB12) //  Ethernet MAC Transmikt Coding Error

-#define AT91C_PB12_TCLK0    ((unsigned int) AT91C_PIO_PB12) //  Timer Counter 0 external clock input

-#define AT91C_PIO_PB13       ((unsigned int) 1 << 13) // Pin Controlled by PB13

-#define AT91C_PB13_ERX2     ((unsigned int) AT91C_PIO_PB13) //  Ethernet MAC Receive Data 2

-#define AT91C_PB13_NPCS01   ((unsigned int) AT91C_PIO_PB13) //  SPI 0 Peripheral Chip Select 1

-#define AT91C_PIO_PB14       ((unsigned int) 1 << 14) // Pin Controlled by PB14

-#define AT91C_PB14_ERX3     ((unsigned int) AT91C_PIO_PB14) //  Ethernet MAC Receive Data 3

-#define AT91C_PB14_NPCS02   ((unsigned int) AT91C_PIO_PB14) //  SPI 0 Peripheral Chip Select 2

-#define AT91C_PIO_PB15       ((unsigned int) 1 << 15) // Pin Controlled by PB15

-#define AT91C_PB15_ERXDV    ((unsigned int) AT91C_PIO_PB15) //  Ethernet MAC Receive Data Valid

-#define AT91C_PIO_PB16       ((unsigned int) 1 << 16) // Pin Controlled by PB16

-#define AT91C_PB16_ECOL     ((unsigned int) AT91C_PIO_PB16) //  Ethernet MAC Collision Detected

-#define AT91C_PB16_NPCS13   ((unsigned int) AT91C_PIO_PB16) //  SPI 1 Peripheral Chip Select 3

-#define AT91C_PIO_PB17       ((unsigned int) 1 << 17) // Pin Controlled by PB17

-#define AT91C_PB17_ERXCK    ((unsigned int) AT91C_PIO_PB17) //  Ethernet MAC Receive Clock

-#define AT91C_PB17_NPCS03   ((unsigned int) AT91C_PIO_PB17) //  SPI 0 Peripheral Chip Select 3

-#define AT91C_PIO_PB18       ((unsigned int) 1 << 18) // Pin Controlled by PB18

-#define AT91C_PB18_EF100    ((unsigned int) AT91C_PIO_PB18) //  Ethernet MAC Force 100 Mbits/sec

-#define AT91C_PB18_ADTRG    ((unsigned int) AT91C_PIO_PB18) //  ADC External Trigger

-#define AT91C_PIO_PB19       ((unsigned int) 1 << 19) // Pin Controlled by PB19

-#define AT91C_PB19_PWM0     ((unsigned int) AT91C_PIO_PB19) //  PWM Channel 0

-#define AT91C_PB19_TCLK1    ((unsigned int) AT91C_PIO_PB19) //  Timer Counter 1 external clock input

-#define AT91C_PIO_PB2        ((unsigned int) 1 <<  2) // Pin Controlled by PB2

-#define AT91C_PB2_ETX0     ((unsigned int) AT91C_PIO_PB2) //  Ethernet MAC Transmit Data 0

-#define AT91C_PIO_PB20       ((unsigned int) 1 << 20) // Pin Controlled by PB20

-#define AT91C_PB20_PWM1     ((unsigned int) AT91C_PIO_PB20) //  PWM Channel 1

-#define AT91C_PB20_PCK0     ((unsigned int) AT91C_PIO_PB20) //  PMC Programmable Clock Output 0

-#define AT91C_PIO_PB21       ((unsigned int) 1 << 21) // Pin Controlled by PB21

-#define AT91C_PB21_PWM2     ((unsigned int) AT91C_PIO_PB21) //  PWM Channel 2

-#define AT91C_PB21_PCK1     ((unsigned int) AT91C_PIO_PB21) //  PMC Programmable Clock Output 1

-#define AT91C_PIO_PB22       ((unsigned int) 1 << 22) // Pin Controlled by PB22

-#define AT91C_PB22_PWM3     ((unsigned int) AT91C_PIO_PB22) //  PWM Channel 3

-#define AT91C_PB22_PCK2     ((unsigned int) AT91C_PIO_PB22) //  PMC Programmable Clock Output 2

-#define AT91C_PIO_PB23       ((unsigned int) 1 << 23) // Pin Controlled by PB23

-#define AT91C_PB23_TIOA0    ((unsigned int) AT91C_PIO_PB23) //  Timer Counter 0 Multipurpose Timer I/O Pin A

-#define AT91C_PB23_DCD1     ((unsigned int) AT91C_PIO_PB23) //  USART 1 Data Carrier Detect

-#define AT91C_PIO_PB24       ((unsigned int) 1 << 24) // Pin Controlled by PB24

-#define AT91C_PB24_TIOB0    ((unsigned int) AT91C_PIO_PB24) //  Timer Counter 0 Multipurpose Timer I/O Pin B

-#define AT91C_PB24_DSR1     ((unsigned int) AT91C_PIO_PB24) //  USART 1 Data Set ready

-#define AT91C_PIO_PB25       ((unsigned int) 1 << 25) // Pin Controlled by PB25

-#define AT91C_PB25_TIOA1    ((unsigned int) AT91C_PIO_PB25) //  Timer Counter 1 Multipurpose Timer I/O Pin A

-#define AT91C_PB25_DTR1     ((unsigned int) AT91C_PIO_PB25) //  USART 1 Data Terminal ready

-#define AT91C_PIO_PB26       ((unsigned int) 1 << 26) // Pin Controlled by PB26

-#define AT91C_PB26_TIOB1    ((unsigned int) AT91C_PIO_PB26) //  Timer Counter 1 Multipurpose Timer I/O Pin B

-#define AT91C_PB26_RI1      ((unsigned int) AT91C_PIO_PB26) //  USART 1 Ring Indicator

-#define AT91C_PIO_PB27       ((unsigned int) 1 << 27) // Pin Controlled by PB27

-#define AT91C_PB27_TIOA2    ((unsigned int) AT91C_PIO_PB27) //  Timer Counter 2 Multipurpose Timer I/O Pin A

-#define AT91C_PB27_PWM0     ((unsigned int) AT91C_PIO_PB27) //  PWM Channel 0

-#define AT91C_PIO_PB28       ((unsigned int) 1 << 28) // Pin Controlled by PB28

-#define AT91C_PB28_TIOB2    ((unsigned int) AT91C_PIO_PB28) //  Timer Counter 2 Multipurpose Timer I/O Pin B

-#define AT91C_PB28_PWM1     ((unsigned int) AT91C_PIO_PB28) //  PWM Channel 1

-#define AT91C_PIO_PB29       ((unsigned int) 1 << 29) // Pin Controlled by PB29

-#define AT91C_PB29_PCK1     ((unsigned int) AT91C_PIO_PB29) //  PMC Programmable Clock Output 1

-#define AT91C_PB29_PWM2     ((unsigned int) AT91C_PIO_PB29) //  PWM Channel 2

-#define AT91C_PIO_PB3        ((unsigned int) 1 <<  3) // Pin Controlled by PB3

-#define AT91C_PB3_ETX1     ((unsigned int) AT91C_PIO_PB3) //  Ethernet MAC Transmit Data 1

-#define AT91C_PIO_PB30       ((unsigned int) 1 << 30) // Pin Controlled by PB30

-#define AT91C_PB30_PCK2     ((unsigned int) AT91C_PIO_PB30) //  PMC Programmable Clock Output 2

-#define AT91C_PB30_PWM3     ((unsigned int) AT91C_PIO_PB30) //  PWM Channel 3

-#define AT91C_PIO_PB4        ((unsigned int) 1 <<  4) // Pin Controlled by PB4

-#define AT91C_PB4_ECRS_ECRSDV ((unsigned int) AT91C_PIO_PB4) //  Ethernet MAC Carrier Sense/Carrier Sense and Data Valid

-#define AT91C_PIO_PB5        ((unsigned int) 1 <<  5) // Pin Controlled by PB5

-#define AT91C_PB5_ERX0     ((unsigned int) AT91C_PIO_PB5) //  Ethernet MAC Receive Data 0

-#define AT91C_PIO_PB6        ((unsigned int) 1 <<  6) // Pin Controlled by PB6

-#define AT91C_PB6_ERX1     ((unsigned int) AT91C_PIO_PB6) //  Ethernet MAC Receive Data 1

-#define AT91C_PIO_PB7        ((unsigned int) 1 <<  7) // Pin Controlled by PB7

-#define AT91C_PB7_ERXER    ((unsigned int) AT91C_PIO_PB7) //  Ethernet MAC Receive Error

-#define AT91C_PIO_PB8        ((unsigned int) 1 <<  8) // Pin Controlled by PB8

-#define AT91C_PB8_EMDC     ((unsigned int) AT91C_PIO_PB8) //  Ethernet MAC Management Data Clock

-#define AT91C_PIO_PB9        ((unsigned int) 1 <<  9) // Pin Controlled by PB9

-#define AT91C_PB9_EMDIO    ((unsigned int) AT91C_PIO_PB9) //  Ethernet MAC Management Data Input/Output

-

-// *****************************************************************************

-//               PERIPHERAL ID DEFINITIONS FOR AT91SAM7X256

-// *****************************************************************************

-#define AT91C_ID_FIQ    ((unsigned int)  0) // Advanced Interrupt Controller (FIQ)

-#define AT91C_ID_SYS    ((unsigned int)  1) // System Peripheral

-#define AT91C_ID_PIOA   ((unsigned int)  2) // Parallel IO Controller A

-#define AT91C_ID_PIOB   ((unsigned int)  3) // Parallel IO Controller B

-#define AT91C_ID_SPI0   ((unsigned int)  4) // Serial Peripheral Interface 0

-#define AT91C_ID_SPI1   ((unsigned int)  5) // Serial Peripheral Interface 1

-#define AT91C_ID_US0    ((unsigned int)  6) // USART 0

-#define AT91C_ID_US1    ((unsigned int)  7) // USART 1

-#define AT91C_ID_SSC    ((unsigned int)  8) // Serial Synchronous Controller

-#define AT91C_ID_TWI    ((unsigned int)  9) // Two-Wire Interface

-#define AT91C_ID_PWMC   ((unsigned int) 10) // PWM Controller

-#define AT91C_ID_UDP    ((unsigned int) 11) // USB Device Port

-#define AT91C_ID_TC0    ((unsigned int) 12) // Timer Counter 0

-#define AT91C_ID_TC1    ((unsigned int) 13) // Timer Counter 1

-#define AT91C_ID_TC2    ((unsigned int) 14) // Timer Counter 2

-#define AT91C_ID_CAN    ((unsigned int) 15) // Control Area Network Controller

-#define AT91C_ID_EMAC   ((unsigned int) 16) // Ethernet MAC

-#define AT91C_ID_ADC    ((unsigned int) 17) // Analog-to-Digital Converter

-#define AT91C_ID_AES    ((unsigned int) 18) // Advanced Encryption Standard 128-bit

-#define AT91C_ID_TDES   ((unsigned int) 19) // Triple Data Encryption Standard

-#define AT91C_ID_20_Reserved ((unsigned int) 20) // Reserved

-#define AT91C_ID_21_Reserved ((unsigned int) 21) // Reserved

-#define AT91C_ID_22_Reserved ((unsigned int) 22) // Reserved

-#define AT91C_ID_23_Reserved ((unsigned int) 23) // Reserved

-#define AT91C_ID_24_Reserved ((unsigned int) 24) // Reserved

-#define AT91C_ID_25_Reserved ((unsigned int) 25) // Reserved

-#define AT91C_ID_26_Reserved ((unsigned int) 26) // Reserved

-#define AT91C_ID_27_Reserved ((unsigned int) 27) // Reserved

-#define AT91C_ID_28_Reserved ((unsigned int) 28) // Reserved

-#define AT91C_ID_29_Reserved ((unsigned int) 29) // Reserved

-#define AT91C_ID_IRQ0   ((unsigned int) 30) // Advanced Interrupt Controller (IRQ0)

-#define AT91C_ID_IRQ1   ((unsigned int) 31) // Advanced Interrupt Controller (IRQ1)

-

-// *****************************************************************************

-//               BASE ADDRESS DEFINITIONS FOR AT91SAM7X256

-// *****************************************************************************

-#define AT91C_BASE_SYS       ((AT91PS_SYS) 	0xFFFFF000) // (SYS) Base Address

-#define AT91C_BASE_AIC       ((AT91PS_AIC) 	0xFFFFF000) // (AIC) Base Address

-#define AT91C_BASE_PDC_DBGU  ((AT91PS_PDC) 	0xFFFFF300) // (PDC_DBGU) Base Address

-#define AT91C_BASE_DBGU      ((AT91PS_DBGU) 	0xFFFFF200) // (DBGU) Base Address

-#define AT91C_BASE_PIOA      ((AT91PS_PIO) 	0xFFFFF400) // (PIOA) Base Address

-#define AT91C_BASE_PIOB      ((AT91PS_PIO) 	0xFFFFF600) // (PIOB) Base Address

-#define AT91C_BASE_CKGR      ((AT91PS_CKGR) 	0xFFFFFC20) // (CKGR) Base Address

-#define AT91C_BASE_PMC       ((AT91PS_PMC) 	0xFFFFFC00) // (PMC) Base Address

-#define AT91C_BASE_RSTC      ((AT91PS_RSTC) 	0xFFFFFD00) // (RSTC) Base Address

-#define AT91C_BASE_RTTC      ((AT91PS_RTTC) 	0xFFFFFD20) // (RTTC) Base Address

-#define AT91C_BASE_PITC      ((AT91PS_PITC) 	0xFFFFFD30) // (PITC) Base Address

-#define AT91C_BASE_WDTC      ((AT91PS_WDTC) 	0xFFFFFD40) // (WDTC) Base Address

-#define AT91C_BASE_VREG      ((AT91PS_VREG) 	0xFFFFFD60) // (VREG) Base Address

-#define AT91C_BASE_MC        ((AT91PS_MC) 	0xFFFFFF00) // (MC) Base Address

-#define AT91C_BASE_PDC_SPI1  ((AT91PS_PDC) 	0xFFFE4100) // (PDC_SPI1) Base Address

-#define AT91C_BASE_SPI1      ((AT91PS_SPI) 	0xFFFE4000) // (SPI1) Base Address

-#define AT91C_BASE_PDC_SPI0  ((AT91PS_PDC) 	0xFFFE0100) // (PDC_SPI0) Base Address

-#define AT91C_BASE_SPI0      ((AT91PS_SPI) 	0xFFFE0000) // (SPI0) Base Address

-#define AT91C_BASE_PDC_US1   ((AT91PS_PDC) 	0xFFFC4100) // (PDC_US1) Base Address

-#define AT91C_BASE_US1       ((AT91PS_USART) 	0xFFFC4000) // (US1) Base Address

-#define AT91C_BASE_PDC_US0   ((AT91PS_PDC) 	0xFFFC0100) // (PDC_US0) Base Address

-#define AT91C_BASE_US0       ((AT91PS_USART) 	0xFFFC0000) // (US0) Base Address

-#define AT91C_BASE_PDC_SSC   ((AT91PS_PDC) 	0xFFFD4100) // (PDC_SSC) Base Address

-#define AT91C_BASE_SSC       ((AT91PS_SSC) 	0xFFFD4000) // (SSC) Base Address

-#define AT91C_BASE_TWI       ((AT91PS_TWI) 	0xFFFB8000) // (TWI) Base Address

-#define AT91C_BASE_PWMC_CH3  ((AT91PS_PWMC_CH) 	0xFFFCC260) // (PWMC_CH3) Base Address

-#define AT91C_BASE_PWMC_CH2  ((AT91PS_PWMC_CH) 	0xFFFCC240) // (PWMC_CH2) Base Address

-#define AT91C_BASE_PWMC_CH1  ((AT91PS_PWMC_CH) 	0xFFFCC220) // (PWMC_CH1) Base Address

-#define AT91C_BASE_PWMC_CH0  ((AT91PS_PWMC_CH) 	0xFFFCC200) // (PWMC_CH0) Base Address

-#define AT91C_BASE_PWMC      ((AT91PS_PWMC) 	0xFFFCC000) // (PWMC) Base Address

-#define AT91C_BASE_UDP       ((AT91PS_UDP) 	0xFFFB0000) // (UDP) Base Address

-#define AT91C_BASE_TC0       ((AT91PS_TC) 	0xFFFA0000) // (TC0) Base Address

-#define AT91C_BASE_TC1       ((AT91PS_TC) 	0xFFFA0040) // (TC1) Base Address

-#define AT91C_BASE_TC2       ((AT91PS_TC) 	0xFFFA0080) // (TC2) Base Address

-#define AT91C_BASE_TCB       ((AT91PS_TCB) 	0xFFFA0000) // (TCB) Base Address

-#define AT91C_BASE_CAN_MB0   ((AT91PS_CAN_MB) 	0xFFFD0200) // (CAN_MB0) Base Address

-#define AT91C_BASE_CAN_MB1   ((AT91PS_CAN_MB) 	0xFFFD0220) // (CAN_MB1) Base Address

-#define AT91C_BASE_CAN_MB2   ((AT91PS_CAN_MB) 	0xFFFD0240) // (CAN_MB2) Base Address

-#define AT91C_BASE_CAN_MB3   ((AT91PS_CAN_MB) 	0xFFFD0260) // (CAN_MB3) Base Address

-#define AT91C_BASE_CAN_MB4   ((AT91PS_CAN_MB) 	0xFFFD0280) // (CAN_MB4) Base Address

-#define AT91C_BASE_CAN_MB5   ((AT91PS_CAN_MB) 	0xFFFD02A0) // (CAN_MB5) Base Address

-#define AT91C_BASE_CAN_MB6   ((AT91PS_CAN_MB) 	0xFFFD02C0) // (CAN_MB6) Base Address

-#define AT91C_BASE_CAN_MB7   ((AT91PS_CAN_MB) 	0xFFFD02E0) // (CAN_MB7) Base Address

-#define AT91C_BASE_CAN       ((AT91PS_CAN) 	0xFFFD0000) // (CAN) Base Address

-#define AT91C_BASE_EMAC      ((AT91PS_EMAC) 	0xFFFDC000) // (EMAC) Base Address

-#define AT91C_BASE_PDC_ADC   ((AT91PS_PDC) 	0xFFFD8100) // (PDC_ADC) Base Address

-#define AT91C_BASE_ADC       ((AT91PS_ADC) 	0xFFFD8000) // (ADC) Base Address

-#define AT91C_BASE_PDC_AES   ((AT91PS_PDC) 	0xFFFA4100) // (PDC_AES) Base Address

-#define AT91C_BASE_AES       ((AT91PS_AES) 	0xFFFA4000) // (AES) Base Address

-#define AT91C_BASE_PDC_TDES  ((AT91PS_PDC) 	0xFFFA8100) // (PDC_TDES) Base Address

-#define AT91C_BASE_TDES      ((AT91PS_TDES) 	0xFFFA8000) // (TDES) Base Address

-

-// *****************************************************************************

-//               MEMORY MAPPING DEFINITIONS FOR AT91SAM7X256

-// *****************************************************************************

-#define AT91C_ISRAM	 ((char *) 	0x00200000) // Internal SRAM base address

-#define AT91C_ISRAM_SIZE	 ((unsigned int) 0x00010000) // Internal SRAM size in byte (64 Kbyte)

-#define AT91C_IFLASH	 ((char *) 	0x00100000) // Internal ROM base address

-#define AT91C_IFLASH_SIZE	 ((unsigned int) 0x00040000) // Internal ROM size in byte (256 Kbyte)

-#endif /* __IAR_SYSTEMS_ICC__ */

-

-#ifdef __IAR_SYSTEMS_ASM__

-

-// - Hardware register definition

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR System Peripherals

-// - *****************************************************************************

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Advanced Interrupt Controller

-// - *****************************************************************************

-// - -------- AIC_SMR : (AIC Offset: 0x0) Control Register -------- 

-AT91C_AIC_PRIOR           EQU (0x7 <<  0) ;- (AIC) Priority Level

-AT91C_AIC_PRIOR_LOWEST    EQU (0x0) ;- (AIC) Lowest priority level

-AT91C_AIC_PRIOR_HIGHEST   EQU (0x7) ;- (AIC) Highest priority level

-AT91C_AIC_SRCTYPE         EQU (0x3 <<  5) ;- (AIC) Interrupt Source Type

-AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL EQU (0x0 <<  5) ;- (AIC) Internal Sources Code Label High-level Sensitive

-AT91C_AIC_SRCTYPE_EXT_LOW_LEVEL EQU (0x0 <<  5) ;- (AIC) External Sources Code Label Low-level Sensitive

-AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE EQU (0x1 <<  5) ;- (AIC) Internal Sources Code Label Positive Edge triggered

-AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE EQU (0x1 <<  5) ;- (AIC) External Sources Code Label Negative Edge triggered

-AT91C_AIC_SRCTYPE_HIGH_LEVEL EQU (0x2 <<  5) ;- (AIC) Internal Or External Sources Code Label High-level Sensitive

-AT91C_AIC_SRCTYPE_POSITIVE_EDGE EQU (0x3 <<  5) ;- (AIC) Internal Or External Sources Code Label Positive Edge triggered

-// - -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register -------- 

-AT91C_AIC_NFIQ            EQU (0x1 <<  0) ;- (AIC) NFIQ Status

-AT91C_AIC_NIRQ            EQU (0x1 <<  1) ;- (AIC) NIRQ Status

-// - -------- AIC_DCR : (AIC Offset: 0x138) AIC Debug Control Register (Protect) -------- 

-AT91C_AIC_DCR_PROT        EQU (0x1 <<  0) ;- (AIC) Protection Mode

-AT91C_AIC_DCR_GMSK        EQU (0x1 <<  1) ;- (AIC) General Mask

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Peripheral DMA Controller

-// - *****************************************************************************

-// - -------- PDC_PTCR : (PDC Offset: 0x20) PDC Transfer Control Register -------- 

-AT91C_PDC_RXTEN           EQU (0x1 <<  0) ;- (PDC) Receiver Transfer Enable

-AT91C_PDC_RXTDIS          EQU (0x1 <<  1) ;- (PDC) Receiver Transfer Disable

-AT91C_PDC_TXTEN           EQU (0x1 <<  8) ;- (PDC) Transmitter Transfer Enable

-AT91C_PDC_TXTDIS          EQU (0x1 <<  9) ;- (PDC) Transmitter Transfer Disable

-// - -------- PDC_PTSR : (PDC Offset: 0x24) PDC Transfer Status Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Debug Unit

-// - *****************************************************************************

-// - -------- DBGU_CR : (DBGU Offset: 0x0) Debug Unit Control Register -------- 

-AT91C_US_RSTRX            EQU (0x1 <<  2) ;- (DBGU) Reset Receiver

-AT91C_US_RSTTX            EQU (0x1 <<  3) ;- (DBGU) Reset Transmitter

-AT91C_US_RXEN             EQU (0x1 <<  4) ;- (DBGU) Receiver Enable

-AT91C_US_RXDIS            EQU (0x1 <<  5) ;- (DBGU) Receiver Disable

-AT91C_US_TXEN             EQU (0x1 <<  6) ;- (DBGU) Transmitter Enable

-AT91C_US_TXDIS            EQU (0x1 <<  7) ;- (DBGU) Transmitter Disable

-AT91C_US_RSTSTA           EQU (0x1 <<  8) ;- (DBGU) Reset Status Bits

-// - -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register -------- 

-AT91C_US_PAR              EQU (0x7 <<  9) ;- (DBGU) Parity type

-AT91C_US_PAR_EVEN         EQU (0x0 <<  9) ;- (DBGU) Even Parity

-AT91C_US_PAR_ODD          EQU (0x1 <<  9) ;- (DBGU) Odd Parity

-AT91C_US_PAR_SPACE        EQU (0x2 <<  9) ;- (DBGU) Parity forced to 0 (Space)

-AT91C_US_PAR_MARK         EQU (0x3 <<  9) ;- (DBGU) Parity forced to 1 (Mark)

-AT91C_US_PAR_NONE         EQU (0x4 <<  9) ;- (DBGU) No Parity

-AT91C_US_PAR_MULTI_DROP   EQU (0x6 <<  9) ;- (DBGU) Multi-drop mode

-AT91C_US_CHMODE           EQU (0x3 << 14) ;- (DBGU) Channel Mode

-AT91C_US_CHMODE_NORMAL    EQU (0x0 << 14) ;- (DBGU) Normal Mode: The USART channel operates as an RX/TX USART.

-AT91C_US_CHMODE_AUTO      EQU (0x1 << 14) ;- (DBGU) Automatic Echo: Receiver Data Input is connected to the TXD pin.

-AT91C_US_CHMODE_LOCAL     EQU (0x2 << 14) ;- (DBGU) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal.

-AT91C_US_CHMODE_REMOTE    EQU (0x3 << 14) ;- (DBGU) Remote Loopback: RXD pin is internally connected to TXD pin.

-// - -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register -------- 

-AT91C_US_RXRDY            EQU (0x1 <<  0) ;- (DBGU) RXRDY Interrupt

-AT91C_US_TXRDY            EQU (0x1 <<  1) ;- (DBGU) TXRDY Interrupt

-AT91C_US_ENDRX            EQU (0x1 <<  3) ;- (DBGU) End of Receive Transfer Interrupt

-AT91C_US_ENDTX            EQU (0x1 <<  4) ;- (DBGU) End of Transmit Interrupt

-AT91C_US_OVRE             EQU (0x1 <<  5) ;- (DBGU) Overrun Interrupt

-AT91C_US_FRAME            EQU (0x1 <<  6) ;- (DBGU) Framing Error Interrupt

-AT91C_US_PARE             EQU (0x1 <<  7) ;- (DBGU) Parity Error Interrupt

-AT91C_US_TXEMPTY          EQU (0x1 <<  9) ;- (DBGU) TXEMPTY Interrupt

-AT91C_US_TXBUFE           EQU (0x1 << 11) ;- (DBGU) TXBUFE Interrupt

-AT91C_US_RXBUFF           EQU (0x1 << 12) ;- (DBGU) RXBUFF Interrupt

-AT91C_US_COMM_TX          EQU (0x1 << 30) ;- (DBGU) COMM_TX Interrupt

-AT91C_US_COMM_RX          EQU (0x1 << 31) ;- (DBGU) COMM_RX Interrupt

-// - -------- DBGU_IDR : (DBGU Offset: 0xc) Debug Unit Interrupt Disable Register -------- 

-// - -------- DBGU_IMR : (DBGU Offset: 0x10) Debug Unit Interrupt Mask Register -------- 

-// - -------- DBGU_CSR : (DBGU Offset: 0x14) Debug Unit Channel Status Register -------- 

-// - -------- DBGU_FNTR : (DBGU Offset: 0x48) Debug Unit FORCE_NTRST Register -------- 

-AT91C_US_FORCE_NTRST      EQU (0x1 <<  0) ;- (DBGU) Force NTRST in JTAG

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Parallel Input Output Controler

-// - *****************************************************************************

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Clock Generator Controler

-// - *****************************************************************************

-// - -------- CKGR_MOR : (CKGR Offset: 0x0) Main Oscillator Register -------- 

-AT91C_CKGR_MOSCEN         EQU (0x1 <<  0) ;- (CKGR) Main Oscillator Enable

-AT91C_CKGR_OSCBYPASS      EQU (0x1 <<  1) ;- (CKGR) Main Oscillator Bypass

-AT91C_CKGR_OSCOUNT        EQU (0xFF <<  8) ;- (CKGR) Main Oscillator Start-up Time

-// - -------- CKGR_MCFR : (CKGR Offset: 0x4) Main Clock Frequency Register -------- 

-AT91C_CKGR_MAINF          EQU (0xFFFF <<  0) ;- (CKGR) Main Clock Frequency

-AT91C_CKGR_MAINRDY        EQU (0x1 << 16) ;- (CKGR) Main Clock Ready

-// - -------- CKGR_PLLR : (CKGR Offset: 0xc) PLL B Register -------- 

-AT91C_CKGR_DIV            EQU (0xFF <<  0) ;- (CKGR) Divider Selected

-AT91C_CKGR_DIV_0          EQU (0x0) ;- (CKGR) Divider output is 0

-AT91C_CKGR_DIV_BYPASS     EQU (0x1) ;- (CKGR) Divider is bypassed

-AT91C_CKGR_PLLCOUNT       EQU (0x3F <<  8) ;- (CKGR) PLL Counter

-AT91C_CKGR_OUT            EQU (0x3 << 14) ;- (CKGR) PLL Output Frequency Range

-AT91C_CKGR_OUT_0          EQU (0x0 << 14) ;- (CKGR) Please refer to the PLL datasheet

-AT91C_CKGR_OUT_1          EQU (0x1 << 14) ;- (CKGR) Please refer to the PLL datasheet

-AT91C_CKGR_OUT_2          EQU (0x2 << 14) ;- (CKGR) Please refer to the PLL datasheet

-AT91C_CKGR_OUT_3          EQU (0x3 << 14) ;- (CKGR) Please refer to the PLL datasheet

-AT91C_CKGR_MUL            EQU (0x7FF << 16) ;- (CKGR) PLL Multiplier

-AT91C_CKGR_USBDIV         EQU (0x3 << 28) ;- (CKGR) Divider for USB Clocks

-AT91C_CKGR_USBDIV_0       EQU (0x0 << 28) ;- (CKGR) Divider output is PLL clock output

-AT91C_CKGR_USBDIV_1       EQU (0x1 << 28) ;- (CKGR) Divider output is PLL clock output divided by 2

-AT91C_CKGR_USBDIV_2       EQU (0x2 << 28) ;- (CKGR) Divider output is PLL clock output divided by 4

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Power Management Controler

-// - *****************************************************************************

-// - -------- PMC_SCER : (PMC Offset: 0x0) System Clock Enable Register -------- 

-AT91C_PMC_PCK             EQU (0x1 <<  0) ;- (PMC) Processor Clock

-AT91C_PMC_UDP             EQU (0x1 <<  7) ;- (PMC) USB Device Port Clock

-AT91C_PMC_PCK0            EQU (0x1 <<  8) ;- (PMC) Programmable Clock Output

-AT91C_PMC_PCK1            EQU (0x1 <<  9) ;- (PMC) Programmable Clock Output

-AT91C_PMC_PCK2            EQU (0x1 << 10) ;- (PMC) Programmable Clock Output

-AT91C_PMC_PCK3            EQU (0x1 << 11) ;- (PMC) Programmable Clock Output

-// - -------- PMC_SCDR : (PMC Offset: 0x4) System Clock Disable Register -------- 

-// - -------- PMC_SCSR : (PMC Offset: 0x8) System Clock Status Register -------- 

-// - -------- CKGR_MOR : (PMC Offset: 0x20) Main Oscillator Register -------- 

-// - -------- CKGR_MCFR : (PMC Offset: 0x24) Main Clock Frequency Register -------- 

-// - -------- CKGR_PLLR : (PMC Offset: 0x2c) PLL B Register -------- 

-// - -------- PMC_MCKR : (PMC Offset: 0x30) Master Clock Register -------- 

-AT91C_PMC_CSS             EQU (0x3 <<  0) ;- (PMC) Programmable Clock Selection

-AT91C_PMC_CSS_SLOW_CLK    EQU (0x0) ;- (PMC) Slow Clock is selected

-AT91C_PMC_CSS_MAIN_CLK    EQU (0x1) ;- (PMC) Main Clock is selected

-AT91C_PMC_CSS_PLL_CLK     EQU (0x3) ;- (PMC) Clock from PLL is selected

-AT91C_PMC_PRES            EQU (0x7 <<  2) ;- (PMC) Programmable Clock Prescaler

-AT91C_PMC_PRES_CLK        EQU (0x0 <<  2) ;- (PMC) Selected clock

-AT91C_PMC_PRES_CLK_2      EQU (0x1 <<  2) ;- (PMC) Selected clock divided by 2

-AT91C_PMC_PRES_CLK_4      EQU (0x2 <<  2) ;- (PMC) Selected clock divided by 4

-AT91C_PMC_PRES_CLK_8      EQU (0x3 <<  2) ;- (PMC) Selected clock divided by 8

-AT91C_PMC_PRES_CLK_16     EQU (0x4 <<  2) ;- (PMC) Selected clock divided by 16

-AT91C_PMC_PRES_CLK_32     EQU (0x5 <<  2) ;- (PMC) Selected clock divided by 32

-AT91C_PMC_PRES_CLK_64     EQU (0x6 <<  2) ;- (PMC) Selected clock divided by 64

-// - -------- PMC_PCKR : (PMC Offset: 0x40) Programmable Clock Register -------- 

-// - -------- PMC_IER : (PMC Offset: 0x60) PMC Interrupt Enable Register -------- 

-AT91C_PMC_MOSCS           EQU (0x1 <<  0) ;- (PMC) MOSC Status/Enable/Disable/Mask

-AT91C_PMC_LOCK            EQU (0x1 <<  2) ;- (PMC) PLL Status/Enable/Disable/Mask

-AT91C_PMC_MCKRDY          EQU (0x1 <<  3) ;- (PMC) MCK_RDY Status/Enable/Disable/Mask

-AT91C_PMC_PCK0RDY         EQU (0x1 <<  8) ;- (PMC) PCK0_RDY Status/Enable/Disable/Mask

-AT91C_PMC_PCK1RDY         EQU (0x1 <<  9) ;- (PMC) PCK1_RDY Status/Enable/Disable/Mask

-AT91C_PMC_PCK2RDY         EQU (0x1 << 10) ;- (PMC) PCK2_RDY Status/Enable/Disable/Mask

-AT91C_PMC_PCK3RDY         EQU (0x1 << 11) ;- (PMC) PCK3_RDY Status/Enable/Disable/Mask

-// - -------- PMC_IDR : (PMC Offset: 0x64) PMC Interrupt Disable Register -------- 

-// - -------- PMC_SR : (PMC Offset: 0x68) PMC Status Register -------- 

-// - -------- PMC_IMR : (PMC Offset: 0x6c) PMC Interrupt Mask Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Reset Controller Interface

-// - *****************************************************************************

-// - -------- RSTC_RCR : (RSTC Offset: 0x0) Reset Control Register -------- 

-AT91C_RSTC_PROCRST        EQU (0x1 <<  0) ;- (RSTC) Processor Reset

-AT91C_RSTC_PERRST         EQU (0x1 <<  2) ;- (RSTC) Peripheral Reset

-AT91C_RSTC_EXTRST         EQU (0x1 <<  3) ;- (RSTC) External Reset

-AT91C_RSTC_KEY            EQU (0xFF << 24) ;- (RSTC) Password

-// - -------- RSTC_RSR : (RSTC Offset: 0x4) Reset Status Register -------- 

-AT91C_RSTC_URSTS          EQU (0x1 <<  0) ;- (RSTC) User Reset Status

-AT91C_RSTC_BODSTS         EQU (0x1 <<  1) ;- (RSTC) Brownout Detection Status

-AT91C_RSTC_RSTTYP         EQU (0x7 <<  8) ;- (RSTC) Reset Type

-AT91C_RSTC_RSTTYP_POWERUP EQU (0x0 <<  8) ;- (RSTC) Power-up Reset. VDDCORE rising.

-AT91C_RSTC_RSTTYP_WAKEUP  EQU (0x1 <<  8) ;- (RSTC) WakeUp Reset. VDDCORE rising.

-AT91C_RSTC_RSTTYP_WATCHDOG EQU (0x2 <<  8) ;- (RSTC) Watchdog Reset. Watchdog overflow occured.

-AT91C_RSTC_RSTTYP_SOFTWARE EQU (0x3 <<  8) ;- (RSTC) Software Reset. Processor reset required by the software.

-AT91C_RSTC_RSTTYP_USER    EQU (0x4 <<  8) ;- (RSTC) User Reset. NRST pin detected low.

-AT91C_RSTC_RSTTYP_BROWNOUT EQU (0x5 <<  8) ;- (RSTC) Brownout Reset occured.

-AT91C_RSTC_NRSTL          EQU (0x1 << 16) ;- (RSTC) NRST pin level

-AT91C_RSTC_SRCMP          EQU (0x1 << 17) ;- (RSTC) Software Reset Command in Progress.

-// - -------- RSTC_RMR : (RSTC Offset: 0x8) Reset Mode Register -------- 

-AT91C_RSTC_URSTEN         EQU (0x1 <<  0) ;- (RSTC) User Reset Enable

-AT91C_RSTC_URSTIEN        EQU (0x1 <<  4) ;- (RSTC) User Reset Interrupt Enable

-AT91C_RSTC_ERSTL          EQU (0xF <<  8) ;- (RSTC) User Reset Enable

-AT91C_RSTC_BODIEN         EQU (0x1 << 16) ;- (RSTC) Brownout Detection Interrupt Enable

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Real Time Timer Controller Interface

-// - *****************************************************************************

-// - -------- RTTC_RTMR : (RTTC Offset: 0x0) Real-time Mode Register -------- 

-AT91C_RTTC_RTPRES         EQU (0xFFFF <<  0) ;- (RTTC) Real-time Timer Prescaler Value

-AT91C_RTTC_ALMIEN         EQU (0x1 << 16) ;- (RTTC) Alarm Interrupt Enable

-AT91C_RTTC_RTTINCIEN      EQU (0x1 << 17) ;- (RTTC) Real Time Timer Increment Interrupt Enable

-AT91C_RTTC_RTTRST         EQU (0x1 << 18) ;- (RTTC) Real Time Timer Restart

-// - -------- RTTC_RTAR : (RTTC Offset: 0x4) Real-time Alarm Register -------- 

-AT91C_RTTC_ALMV           EQU (0x0 <<  0) ;- (RTTC) Alarm Value

-// - -------- RTTC_RTVR : (RTTC Offset: 0x8) Current Real-time Value Register -------- 

-AT91C_RTTC_CRTV           EQU (0x0 <<  0) ;- (RTTC) Current Real-time Value

-// - -------- RTTC_RTSR : (RTTC Offset: 0xc) Real-time Status Register -------- 

-AT91C_RTTC_ALMS           EQU (0x1 <<  0) ;- (RTTC) Real-time Alarm Status

-AT91C_RTTC_RTTINC         EQU (0x1 <<  1) ;- (RTTC) Real-time Timer Increment

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Periodic Interval Timer Controller Interface

-// - *****************************************************************************

-// - -------- PITC_PIMR : (PITC Offset: 0x0) Periodic Interval Mode Register -------- 

-AT91C_PITC_PIV            EQU (0xFFFFF <<  0) ;- (PITC) Periodic Interval Value

-AT91C_PITC_PITEN          EQU (0x1 << 24) ;- (PITC) Periodic Interval Timer Enabled

-AT91C_PITC_PITIEN         EQU (0x1 << 25) ;- (PITC) Periodic Interval Timer Interrupt Enable

-// - -------- PITC_PISR : (PITC Offset: 0x4) Periodic Interval Status Register -------- 

-AT91C_PITC_PITS           EQU (0x1 <<  0) ;- (PITC) Periodic Interval Timer Status

-// - -------- PITC_PIVR : (PITC Offset: 0x8) Periodic Interval Value Register -------- 

-AT91C_PITC_CPIV           EQU (0xFFFFF <<  0) ;- (PITC) Current Periodic Interval Value

-AT91C_PITC_PICNT          EQU (0xFFF << 20) ;- (PITC) Periodic Interval Counter

-// - -------- PITC_PIIR : (PITC Offset: 0xc) Periodic Interval Image Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Watchdog Timer Controller Interface

-// - *****************************************************************************

-// - -------- WDTC_WDCR : (WDTC Offset: 0x0) Periodic Interval Image Register -------- 

-AT91C_WDTC_WDRSTT         EQU (0x1 <<  0) ;- (WDTC) Watchdog Restart

-AT91C_WDTC_KEY            EQU (0xFF << 24) ;- (WDTC) Watchdog KEY Password

-// - -------- WDTC_WDMR : (WDTC Offset: 0x4) Watchdog Mode Register -------- 

-AT91C_WDTC_WDV            EQU (0xFFF <<  0) ;- (WDTC) Watchdog Timer Restart

-AT91C_WDTC_WDFIEN         EQU (0x1 << 12) ;- (WDTC) Watchdog Fault Interrupt Enable

-AT91C_WDTC_WDRSTEN        EQU (0x1 << 13) ;- (WDTC) Watchdog Reset Enable

-AT91C_WDTC_WDRPROC        EQU (0x1 << 14) ;- (WDTC) Watchdog Timer Restart

-AT91C_WDTC_WDDIS          EQU (0x1 << 15) ;- (WDTC) Watchdog Disable

-AT91C_WDTC_WDD            EQU (0xFFF << 16) ;- (WDTC) Watchdog Delta Value

-AT91C_WDTC_WDDBGHLT       EQU (0x1 << 28) ;- (WDTC) Watchdog Debug Halt

-AT91C_WDTC_WDIDLEHLT      EQU (0x1 << 29) ;- (WDTC) Watchdog Idle Halt

-// - -------- WDTC_WDSR : (WDTC Offset: 0x8) Watchdog Status Register -------- 

-AT91C_WDTC_WDUNF          EQU (0x1 <<  0) ;- (WDTC) Watchdog Underflow

-AT91C_WDTC_WDERR          EQU (0x1 <<  1) ;- (WDTC) Watchdog Error

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Voltage Regulator Mode Controller Interface

-// - *****************************************************************************

-// - -------- VREG_MR : (VREG Offset: 0x0) Voltage Regulator Mode Register -------- 

-AT91C_VREG_PSTDBY         EQU (0x1 <<  0) ;- (VREG) Voltage Regulator Power Standby Mode

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Memory Controller Interface

-// - *****************************************************************************

-// - -------- MC_RCR : (MC Offset: 0x0) MC Remap Control Register -------- 

-AT91C_MC_RCB              EQU (0x1 <<  0) ;- (MC) Remap Command Bit

-// - -------- MC_ASR : (MC Offset: 0x4) MC Abort Status Register -------- 

-AT91C_MC_UNDADD           EQU (0x1 <<  0) ;- (MC) Undefined Addess Abort Status

-AT91C_MC_MISADD           EQU (0x1 <<  1) ;- (MC) Misaligned Addess Abort Status

-AT91C_MC_ABTSZ            EQU (0x3 <<  8) ;- (MC) Abort Size Status

-AT91C_MC_ABTSZ_BYTE       EQU (0x0 <<  8) ;- (MC) Byte

-AT91C_MC_ABTSZ_HWORD      EQU (0x1 <<  8) ;- (MC) Half-word

-AT91C_MC_ABTSZ_WORD       EQU (0x2 <<  8) ;- (MC) Word

-AT91C_MC_ABTTYP           EQU (0x3 << 10) ;- (MC) Abort Type Status

-AT91C_MC_ABTTYP_DATAR     EQU (0x0 << 10) ;- (MC) Data Read

-AT91C_MC_ABTTYP_DATAW     EQU (0x1 << 10) ;- (MC) Data Write

-AT91C_MC_ABTTYP_FETCH     EQU (0x2 << 10) ;- (MC) Code Fetch

-AT91C_MC_MST0             EQU (0x1 << 16) ;- (MC) Master 0 Abort Source

-AT91C_MC_MST1             EQU (0x1 << 17) ;- (MC) Master 1 Abort Source

-AT91C_MC_SVMST0           EQU (0x1 << 24) ;- (MC) Saved Master 0 Abort Source

-AT91C_MC_SVMST1           EQU (0x1 << 25) ;- (MC) Saved Master 1 Abort Source

-// - -------- MC_FMR : (MC Offset: 0x60) MC Flash Mode Register -------- 

-AT91C_MC_FRDY             EQU (0x1 <<  0) ;- (MC) Flash Ready

-AT91C_MC_LOCKE            EQU (0x1 <<  2) ;- (MC) Lock Error

-AT91C_MC_PROGE            EQU (0x1 <<  3) ;- (MC) Programming Error

-AT91C_MC_NEBP             EQU (0x1 <<  7) ;- (MC) No Erase Before Programming

-AT91C_MC_FWS              EQU (0x3 <<  8) ;- (MC) Flash Wait State

-AT91C_MC_FWS_0FWS         EQU (0x0 <<  8) ;- (MC) 1 cycle for Read, 2 for Write operations

-AT91C_MC_FWS_1FWS         EQU (0x1 <<  8) ;- (MC) 2 cycles for Read, 3 for Write operations

-AT91C_MC_FWS_2FWS         EQU (0x2 <<  8) ;- (MC) 3 cycles for Read, 4 for Write operations

-AT91C_MC_FWS_3FWS         EQU (0x3 <<  8) ;- (MC) 4 cycles for Read, 4 for Write operations

-AT91C_MC_FMCN             EQU (0xFF << 16) ;- (MC) Flash Microsecond Cycle Number

-// - -------- MC_FCR : (MC Offset: 0x64) MC Flash Command Register -------- 

-AT91C_MC_FCMD             EQU (0xF <<  0) ;- (MC) Flash Command

-AT91C_MC_FCMD_START_PROG  EQU (0x1) ;- (MC) Starts the programming of th epage specified by PAGEN.

-AT91C_MC_FCMD_LOCK        EQU (0x2) ;- (MC) Starts a lock sequence of the sector defined by the bits 4 to 7 of the field PAGEN.

-AT91C_MC_FCMD_PROG_AND_LOCK EQU (0x3) ;- (MC) The lock sequence automatically happens after the programming sequence is completed.

-AT91C_MC_FCMD_UNLOCK      EQU (0x4) ;- (MC) Starts an unlock sequence of the sector defined by the bits 4 to 7 of the field PAGEN.

-AT91C_MC_FCMD_ERASE_ALL   EQU (0x8) ;- (MC) Starts the erase of the entire flash.If at least a page is locked, the command is cancelled.

-AT91C_MC_FCMD_SET_GP_NVM  EQU (0xB) ;- (MC) Set General Purpose NVM bits.

-AT91C_MC_FCMD_CLR_GP_NVM  EQU (0xD) ;- (MC) Clear General Purpose NVM bits.

-AT91C_MC_FCMD_SET_SECURITY EQU (0xF) ;- (MC) Set Security Bit.

-AT91C_MC_PAGEN            EQU (0x3FF <<  8) ;- (MC) Page Number

-AT91C_MC_KEY              EQU (0xFF << 24) ;- (MC) Writing Protect Key

-// - -------- MC_FSR : (MC Offset: 0x68) MC Flash Command Register -------- 

-AT91C_MC_SECURITY         EQU (0x1 <<  4) ;- (MC) Security Bit Status

-AT91C_MC_GPNVM0           EQU (0x1 <<  8) ;- (MC) Sector 0 Lock Status

-AT91C_MC_GPNVM1           EQU (0x1 <<  9) ;- (MC) Sector 1 Lock Status

-AT91C_MC_GPNVM2           EQU (0x1 << 10) ;- (MC) Sector 2 Lock Status

-AT91C_MC_GPNVM3           EQU (0x1 << 11) ;- (MC) Sector 3 Lock Status

-AT91C_MC_GPNVM4           EQU (0x1 << 12) ;- (MC) Sector 4 Lock Status

-AT91C_MC_GPNVM5           EQU (0x1 << 13) ;- (MC) Sector 5 Lock Status

-AT91C_MC_GPNVM6           EQU (0x1 << 14) ;- (MC) Sector 6 Lock Status

-AT91C_MC_GPNVM7           EQU (0x1 << 15) ;- (MC) Sector 7 Lock Status

-AT91C_MC_LOCKS0           EQU (0x1 << 16) ;- (MC) Sector 0 Lock Status

-AT91C_MC_LOCKS1           EQU (0x1 << 17) ;- (MC) Sector 1 Lock Status

-AT91C_MC_LOCKS2           EQU (0x1 << 18) ;- (MC) Sector 2 Lock Status

-AT91C_MC_LOCKS3           EQU (0x1 << 19) ;- (MC) Sector 3 Lock Status

-AT91C_MC_LOCKS4           EQU (0x1 << 20) ;- (MC) Sector 4 Lock Status

-AT91C_MC_LOCKS5           EQU (0x1 << 21) ;- (MC) Sector 5 Lock Status

-AT91C_MC_LOCKS6           EQU (0x1 << 22) ;- (MC) Sector 6 Lock Status

-AT91C_MC_LOCKS7           EQU (0x1 << 23) ;- (MC) Sector 7 Lock Status

-AT91C_MC_LOCKS8           EQU (0x1 << 24) ;- (MC) Sector 8 Lock Status

-AT91C_MC_LOCKS9           EQU (0x1 << 25) ;- (MC) Sector 9 Lock Status

-AT91C_MC_LOCKS10          EQU (0x1 << 26) ;- (MC) Sector 10 Lock Status

-AT91C_MC_LOCKS11          EQU (0x1 << 27) ;- (MC) Sector 11 Lock Status

-AT91C_MC_LOCKS12          EQU (0x1 << 28) ;- (MC) Sector 12 Lock Status

-AT91C_MC_LOCKS13          EQU (0x1 << 29) ;- (MC) Sector 13 Lock Status

-AT91C_MC_LOCKS14          EQU (0x1 << 30) ;- (MC) Sector 14 Lock Status

-AT91C_MC_LOCKS15          EQU (0x1 << 31) ;- (MC) Sector 15 Lock Status

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Serial Parallel Interface

-// - *****************************************************************************

-// - -------- SPI_CR : (SPI Offset: 0x0) SPI Control Register -------- 

-AT91C_SPI_SPIEN           EQU (0x1 <<  0) ;- (SPI) SPI Enable

-AT91C_SPI_SPIDIS          EQU (0x1 <<  1) ;- (SPI) SPI Disable

-AT91C_SPI_SWRST           EQU (0x1 <<  7) ;- (SPI) SPI Software reset

-AT91C_SPI_LASTXFER        EQU (0x1 << 24) ;- (SPI) SPI Last Transfer

-// - -------- SPI_MR : (SPI Offset: 0x4) SPI Mode Register -------- 

-AT91C_SPI_MSTR            EQU (0x1 <<  0) ;- (SPI) Master/Slave Mode

-AT91C_SPI_PS              EQU (0x1 <<  1) ;- (SPI) Peripheral Select

-AT91C_SPI_PS_FIXED        EQU (0x0 <<  1) ;- (SPI) Fixed Peripheral Select

-AT91C_SPI_PS_VARIABLE     EQU (0x1 <<  1) ;- (SPI) Variable Peripheral Select

-AT91C_SPI_PCSDEC          EQU (0x1 <<  2) ;- (SPI) Chip Select Decode

-AT91C_SPI_FDIV            EQU (0x1 <<  3) ;- (SPI) Clock Selection

-AT91C_SPI_MODFDIS         EQU (0x1 <<  4) ;- (SPI) Mode Fault Detection

-AT91C_SPI_LLB             EQU (0x1 <<  7) ;- (SPI) Clock Selection

-AT91C_SPI_PCS             EQU (0xF << 16) ;- (SPI) Peripheral Chip Select

-AT91C_SPI_DLYBCS          EQU (0xFF << 24) ;- (SPI) Delay Between Chip Selects

-// - -------- SPI_RDR : (SPI Offset: 0x8) Receive Data Register -------- 

-AT91C_SPI_RD              EQU (0xFFFF <<  0) ;- (SPI) Receive Data

-AT91C_SPI_RPCS            EQU (0xF << 16) ;- (SPI) Peripheral Chip Select Status

-// - -------- SPI_TDR : (SPI Offset: 0xc) Transmit Data Register -------- 

-AT91C_SPI_TD              EQU (0xFFFF <<  0) ;- (SPI) Transmit Data

-AT91C_SPI_TPCS            EQU (0xF << 16) ;- (SPI) Peripheral Chip Select Status

-// - -------- SPI_SR : (SPI Offset: 0x10) Status Register -------- 

-AT91C_SPI_RDRF            EQU (0x1 <<  0) ;- (SPI) Receive Data Register Full

-AT91C_SPI_TDRE            EQU (0x1 <<  1) ;- (SPI) Transmit Data Register Empty

-AT91C_SPI_MODF            EQU (0x1 <<  2) ;- (SPI) Mode Fault Error

-AT91C_SPI_OVRES           EQU (0x1 <<  3) ;- (SPI) Overrun Error Status

-AT91C_SPI_ENDRX           EQU (0x1 <<  4) ;- (SPI) End of Receiver Transfer

-AT91C_SPI_ENDTX           EQU (0x1 <<  5) ;- (SPI) End of Receiver Transfer

-AT91C_SPI_RXBUFF          EQU (0x1 <<  6) ;- (SPI) RXBUFF Interrupt

-AT91C_SPI_TXBUFE          EQU (0x1 <<  7) ;- (SPI) TXBUFE Interrupt

-AT91C_SPI_NSSR            EQU (0x1 <<  8) ;- (SPI) NSSR Interrupt

-AT91C_SPI_TXEMPTY         EQU (0x1 <<  9) ;- (SPI) TXEMPTY Interrupt

-AT91C_SPI_SPIENS          EQU (0x1 << 16) ;- (SPI) Enable Status

-// - -------- SPI_IER : (SPI Offset: 0x14) Interrupt Enable Register -------- 

-// - -------- SPI_IDR : (SPI Offset: 0x18) Interrupt Disable Register -------- 

-// - -------- SPI_IMR : (SPI Offset: 0x1c) Interrupt Mask Register -------- 

-// - -------- SPI_CSR : (SPI Offset: 0x30) Chip Select Register -------- 

-AT91C_SPI_CPOL            EQU (0x1 <<  0) ;- (SPI) Clock Polarity

-AT91C_SPI_NCPHA           EQU (0x1 <<  1) ;- (SPI) Clock Phase

-AT91C_SPI_CSAAT           EQU (0x1 <<  3) ;- (SPI) Chip Select Active After Transfer

-AT91C_SPI_BITS            EQU (0xF <<  4) ;- (SPI) Bits Per Transfer

-AT91C_SPI_BITS_8          EQU (0x0 <<  4) ;- (SPI) 8 Bits Per transfer

-AT91C_SPI_BITS_9          EQU (0x1 <<  4) ;- (SPI) 9 Bits Per transfer

-AT91C_SPI_BITS_10         EQU (0x2 <<  4) ;- (SPI) 10 Bits Per transfer

-AT91C_SPI_BITS_11         EQU (0x3 <<  4) ;- (SPI) 11 Bits Per transfer

-AT91C_SPI_BITS_12         EQU (0x4 <<  4) ;- (SPI) 12 Bits Per transfer

-AT91C_SPI_BITS_13         EQU (0x5 <<  4) ;- (SPI) 13 Bits Per transfer

-AT91C_SPI_BITS_14         EQU (0x6 <<  4) ;- (SPI) 14 Bits Per transfer

-AT91C_SPI_BITS_15         EQU (0x7 <<  4) ;- (SPI) 15 Bits Per transfer

-AT91C_SPI_BITS_16         EQU (0x8 <<  4) ;- (SPI) 16 Bits Per transfer

-AT91C_SPI_SCBR            EQU (0xFF <<  8) ;- (SPI) Serial Clock Baud Rate

-AT91C_SPI_DLYBS           EQU (0xFF << 16) ;- (SPI) Delay Before SPCK

-AT91C_SPI_DLYBCT          EQU (0xFF << 24) ;- (SPI) Delay Between Consecutive Transfers

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Usart

-// - *****************************************************************************

-// - -------- US_CR : (USART Offset: 0x0) Debug Unit Control Register -------- 

-AT91C_US_STTBRK           EQU (0x1 <<  9) ;- (USART) Start Break

-AT91C_US_STPBRK           EQU (0x1 << 10) ;- (USART) Stop Break

-AT91C_US_STTTO            EQU (0x1 << 11) ;- (USART) Start Time-out

-AT91C_US_SENDA            EQU (0x1 << 12) ;- (USART) Send Address

-AT91C_US_RSTIT            EQU (0x1 << 13) ;- (USART) Reset Iterations

-AT91C_US_RSTNACK          EQU (0x1 << 14) ;- (USART) Reset Non Acknowledge

-AT91C_US_RETTO            EQU (0x1 << 15) ;- (USART) Rearm Time-out

-AT91C_US_DTREN            EQU (0x1 << 16) ;- (USART) Data Terminal ready Enable

-AT91C_US_DTRDIS           EQU (0x1 << 17) ;- (USART) Data Terminal ready Disable

-AT91C_US_RTSEN            EQU (0x1 << 18) ;- (USART) Request to Send enable

-AT91C_US_RTSDIS           EQU (0x1 << 19) ;- (USART) Request to Send Disable

-// - -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register -------- 

-AT91C_US_USMODE           EQU (0xF <<  0) ;- (USART) Usart mode

-AT91C_US_USMODE_NORMAL    EQU (0x0) ;- (USART) Normal

-AT91C_US_USMODE_RS485     EQU (0x1) ;- (USART) RS485

-AT91C_US_USMODE_HWHSH     EQU (0x2) ;- (USART) Hardware Handshaking

-AT91C_US_USMODE_MODEM     EQU (0x3) ;- (USART) Modem

-AT91C_US_USMODE_ISO7816_0 EQU (0x4) ;- (USART) ISO7816 protocol: T = 0

-AT91C_US_USMODE_ISO7816_1 EQU (0x6) ;- (USART) ISO7816 protocol: T = 1

-AT91C_US_USMODE_IRDA      EQU (0x8) ;- (USART) IrDA

-AT91C_US_USMODE_SWHSH     EQU (0xC) ;- (USART) Software Handshaking

-AT91C_US_CLKS             EQU (0x3 <<  4) ;- (USART) Clock Selection (Baud Rate generator Input Clock

-AT91C_US_CLKS_CLOCK       EQU (0x0 <<  4) ;- (USART) Clock

-AT91C_US_CLKS_FDIV1       EQU (0x1 <<  4) ;- (USART) fdiv1

-AT91C_US_CLKS_SLOW        EQU (0x2 <<  4) ;- (USART) slow_clock (ARM)

-AT91C_US_CLKS_EXT         EQU (0x3 <<  4) ;- (USART) External (SCK)

-AT91C_US_CHRL             EQU (0x3 <<  6) ;- (USART) Clock Selection (Baud Rate generator Input Clock

-AT91C_US_CHRL_5_BITS      EQU (0x0 <<  6) ;- (USART) Character Length: 5 bits

-AT91C_US_CHRL_6_BITS      EQU (0x1 <<  6) ;- (USART) Character Length: 6 bits

-AT91C_US_CHRL_7_BITS      EQU (0x2 <<  6) ;- (USART) Character Length: 7 bits

-AT91C_US_CHRL_8_BITS      EQU (0x3 <<  6) ;- (USART) Character Length: 8 bits

-AT91C_US_SYNC             EQU (0x1 <<  8) ;- (USART) Synchronous Mode Select

-AT91C_US_NBSTOP           EQU (0x3 << 12) ;- (USART) Number of Stop bits

-AT91C_US_NBSTOP_1_BIT     EQU (0x0 << 12) ;- (USART) 1 stop bit

-AT91C_US_NBSTOP_15_BIT    EQU (0x1 << 12) ;- (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits

-AT91C_US_NBSTOP_2_BIT     EQU (0x2 << 12) ;- (USART) 2 stop bits

-AT91C_US_MSBF             EQU (0x1 << 16) ;- (USART) Bit Order

-AT91C_US_MODE9            EQU (0x1 << 17) ;- (USART) 9-bit Character length

-AT91C_US_CKLO             EQU (0x1 << 18) ;- (USART) Clock Output Select

-AT91C_US_OVER             EQU (0x1 << 19) ;- (USART) Over Sampling Mode

-AT91C_US_INACK            EQU (0x1 << 20) ;- (USART) Inhibit Non Acknowledge

-AT91C_US_DSNACK           EQU (0x1 << 21) ;- (USART) Disable Successive NACK

-AT91C_US_MAX_ITER         EQU (0x1 << 24) ;- (USART) Number of Repetitions

-AT91C_US_FILTER           EQU (0x1 << 28) ;- (USART) Receive Line Filter

-// - -------- US_IER : (USART Offset: 0x8) Debug Unit Interrupt Enable Register -------- 

-AT91C_US_RXBRK            EQU (0x1 <<  2) ;- (USART) Break Received/End of Break

-AT91C_US_TIMEOUT          EQU (0x1 <<  8) ;- (USART) Receiver Time-out

-AT91C_US_ITERATION        EQU (0x1 << 10) ;- (USART) Max number of Repetitions Reached

-AT91C_US_NACK             EQU (0x1 << 13) ;- (USART) Non Acknowledge

-AT91C_US_RIIC             EQU (0x1 << 16) ;- (USART) Ring INdicator Input Change Flag

-AT91C_US_DSRIC            EQU (0x1 << 17) ;- (USART) Data Set Ready Input Change Flag

-AT91C_US_DCDIC            EQU (0x1 << 18) ;- (USART) Data Carrier Flag

-AT91C_US_CTSIC            EQU (0x1 << 19) ;- (USART) Clear To Send Input Change Flag

-// - -------- US_IDR : (USART Offset: 0xc) Debug Unit Interrupt Disable Register -------- 

-// - -------- US_IMR : (USART Offset: 0x10) Debug Unit Interrupt Mask Register -------- 

-// - -------- US_CSR : (USART Offset: 0x14) Debug Unit Channel Status Register -------- 

-AT91C_US_RI               EQU (0x1 << 20) ;- (USART) Image of RI Input

-AT91C_US_DSR              EQU (0x1 << 21) ;- (USART) Image of DSR Input

-AT91C_US_DCD              EQU (0x1 << 22) ;- (USART) Image of DCD Input

-AT91C_US_CTS              EQU (0x1 << 23) ;- (USART) Image of CTS Input

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Synchronous Serial Controller Interface

-// - *****************************************************************************

-// - -------- SSC_CR : (SSC Offset: 0x0) SSC Control Register -------- 

-AT91C_SSC_RXEN            EQU (0x1 <<  0) ;- (SSC) Receive Enable

-AT91C_SSC_RXDIS           EQU (0x1 <<  1) ;- (SSC) Receive Disable

-AT91C_SSC_TXEN            EQU (0x1 <<  8) ;- (SSC) Transmit Enable

-AT91C_SSC_TXDIS           EQU (0x1 <<  9) ;- (SSC) Transmit Disable

-AT91C_SSC_SWRST           EQU (0x1 << 15) ;- (SSC) Software Reset

-// - -------- SSC_RCMR : (SSC Offset: 0x10) SSC Receive Clock Mode Register -------- 

-AT91C_SSC_CKS             EQU (0x3 <<  0) ;- (SSC) Receive/Transmit Clock Selection

-AT91C_SSC_CKS_DIV         EQU (0x0) ;- (SSC) Divided Clock

-AT91C_SSC_CKS_TK          EQU (0x1) ;- (SSC) TK Clock signal

-AT91C_SSC_CKS_RK          EQU (0x2) ;- (SSC) RK pin

-AT91C_SSC_CKO             EQU (0x7 <<  2) ;- (SSC) Receive/Transmit Clock Output Mode Selection

-AT91C_SSC_CKO_NONE        EQU (0x0 <<  2) ;- (SSC) Receive/Transmit Clock Output Mode: None RK pin: Input-only

-AT91C_SSC_CKO_CONTINOUS   EQU (0x1 <<  2) ;- (SSC) Continuous Receive/Transmit Clock RK pin: Output

-AT91C_SSC_CKO_DATA_TX     EQU (0x2 <<  2) ;- (SSC) Receive/Transmit Clock only during data transfers RK pin: Output

-AT91C_SSC_CKI             EQU (0x1 <<  5) ;- (SSC) Receive/Transmit Clock Inversion

-AT91C_SSC_START           EQU (0xF <<  8) ;- (SSC) Receive/Transmit Start Selection

-AT91C_SSC_START_CONTINOUS EQU (0x0 <<  8) ;- (SSC) Continuous, as soon as the receiver is enabled, and immediately after the end of transfer of the previous data.

-AT91C_SSC_START_TX        EQU (0x1 <<  8) ;- (SSC) Transmit/Receive start

-AT91C_SSC_START_LOW_RF    EQU (0x2 <<  8) ;- (SSC) Detection of a low level on RF input

-AT91C_SSC_START_HIGH_RF   EQU (0x3 <<  8) ;- (SSC) Detection of a high level on RF input

-AT91C_SSC_START_FALL_RF   EQU (0x4 <<  8) ;- (SSC) Detection of a falling edge on RF input

-AT91C_SSC_START_RISE_RF   EQU (0x5 <<  8) ;- (SSC) Detection of a rising edge on RF input

-AT91C_SSC_START_LEVEL_RF  EQU (0x6 <<  8) ;- (SSC) Detection of any level change on RF input

-AT91C_SSC_START_EDGE_RF   EQU (0x7 <<  8) ;- (SSC) Detection of any edge on RF input

-AT91C_SSC_START_0         EQU (0x8 <<  8) ;- (SSC) Compare 0

-AT91C_SSC_STTDLY          EQU (0xFF << 16) ;- (SSC) Receive/Transmit Start Delay

-AT91C_SSC_PERIOD          EQU (0xFF << 24) ;- (SSC) Receive/Transmit Period Divider Selection

-// - -------- SSC_RFMR : (SSC Offset: 0x14) SSC Receive Frame Mode Register -------- 

-AT91C_SSC_DATLEN          EQU (0x1F <<  0) ;- (SSC) Data Length

-AT91C_SSC_LOOP            EQU (0x1 <<  5) ;- (SSC) Loop Mode

-AT91C_SSC_MSBF            EQU (0x1 <<  7) ;- (SSC) Most Significant Bit First

-AT91C_SSC_DATNB           EQU (0xF <<  8) ;- (SSC) Data Number per Frame

-AT91C_SSC_FSLEN           EQU (0xF << 16) ;- (SSC) Receive/Transmit Frame Sync length

-AT91C_SSC_FSOS            EQU (0x7 << 20) ;- (SSC) Receive/Transmit Frame Sync Output Selection

-AT91C_SSC_FSOS_NONE       EQU (0x0 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: None RK pin Input-only

-AT91C_SSC_FSOS_NEGATIVE   EQU (0x1 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Negative Pulse

-AT91C_SSC_FSOS_POSITIVE   EQU (0x2 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Positive Pulse

-AT91C_SSC_FSOS_LOW        EQU (0x3 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Driver Low during data transfer

-AT91C_SSC_FSOS_HIGH       EQU (0x4 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Driver High during data transfer

-AT91C_SSC_FSOS_TOGGLE     EQU (0x5 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Toggling at each start of data transfer

-AT91C_SSC_FSEDGE          EQU (0x1 << 24) ;- (SSC) Frame Sync Edge Detection

-// - -------- SSC_TCMR : (SSC Offset: 0x18) SSC Transmit Clock Mode Register -------- 

-// - -------- SSC_TFMR : (SSC Offset: 0x1c) SSC Transmit Frame Mode Register -------- 

-AT91C_SSC_DATDEF          EQU (0x1 <<  5) ;- (SSC) Data Default Value

-AT91C_SSC_FSDEN           EQU (0x1 << 23) ;- (SSC) Frame Sync Data Enable

-// - -------- SSC_SR : (SSC Offset: 0x40) SSC Status Register -------- 

-AT91C_SSC_TXRDY           EQU (0x1 <<  0) ;- (SSC) Transmit Ready

-AT91C_SSC_TXEMPTY         EQU (0x1 <<  1) ;- (SSC) Transmit Empty

-AT91C_SSC_ENDTX           EQU (0x1 <<  2) ;- (SSC) End Of Transmission

-AT91C_SSC_TXBUFE          EQU (0x1 <<  3) ;- (SSC) Transmit Buffer Empty

-AT91C_SSC_RXRDY           EQU (0x1 <<  4) ;- (SSC) Receive Ready

-AT91C_SSC_OVRUN           EQU (0x1 <<  5) ;- (SSC) Receive Overrun

-AT91C_SSC_ENDRX           EQU (0x1 <<  6) ;- (SSC) End of Reception

-AT91C_SSC_RXBUFF          EQU (0x1 <<  7) ;- (SSC) Receive Buffer Full

-AT91C_SSC_TXSYN           EQU (0x1 << 10) ;- (SSC) Transmit Sync

-AT91C_SSC_RXSYN           EQU (0x1 << 11) ;- (SSC) Receive Sync

-AT91C_SSC_TXENA           EQU (0x1 << 16) ;- (SSC) Transmit Enable

-AT91C_SSC_RXENA           EQU (0x1 << 17) ;- (SSC) Receive Enable

-// - -------- SSC_IER : (SSC Offset: 0x44) SSC Interrupt Enable Register -------- 

-// - -------- SSC_IDR : (SSC Offset: 0x48) SSC Interrupt Disable Register -------- 

-// - -------- SSC_IMR : (SSC Offset: 0x4c) SSC Interrupt Mask Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Two-wire Interface

-// - *****************************************************************************

-// - -------- TWI_CR : (TWI Offset: 0x0) TWI Control Register -------- 

-AT91C_TWI_START           EQU (0x1 <<  0) ;- (TWI) Send a START Condition

-AT91C_TWI_STOP            EQU (0x1 <<  1) ;- (TWI) Send a STOP Condition

-AT91C_TWI_MSEN            EQU (0x1 <<  2) ;- (TWI) TWI Master Transfer Enabled

-AT91C_TWI_MSDIS           EQU (0x1 <<  3) ;- (TWI) TWI Master Transfer Disabled

-AT91C_TWI_SWRST           EQU (0x1 <<  7) ;- (TWI) Software Reset

-// - -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register -------- 

-AT91C_TWI_IADRSZ          EQU (0x3 <<  8) ;- (TWI) Internal Device Address Size

-AT91C_TWI_IADRSZ_NO       EQU (0x0 <<  8) ;- (TWI) No internal device address

-AT91C_TWI_IADRSZ_1_BYTE   EQU (0x1 <<  8) ;- (TWI) One-byte internal device address

-AT91C_TWI_IADRSZ_2_BYTE   EQU (0x2 <<  8) ;- (TWI) Two-byte internal device address

-AT91C_TWI_IADRSZ_3_BYTE   EQU (0x3 <<  8) ;- (TWI) Three-byte internal device address

-AT91C_TWI_MREAD           EQU (0x1 << 12) ;- (TWI) Master Read Direction

-AT91C_TWI_DADR            EQU (0x7F << 16) ;- (TWI) Device Address

-// - -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register -------- 

-AT91C_TWI_CLDIV           EQU (0xFF <<  0) ;- (TWI) Clock Low Divider

-AT91C_TWI_CHDIV           EQU (0xFF <<  8) ;- (TWI) Clock High Divider

-AT91C_TWI_CKDIV           EQU (0x7 << 16) ;- (TWI) Clock Divider

-// - -------- TWI_SR : (TWI Offset: 0x20) TWI Status Register -------- 

-AT91C_TWI_TXCOMP          EQU (0x1 <<  0) ;- (TWI) Transmission Completed

-AT91C_TWI_RXRDY           EQU (0x1 <<  1) ;- (TWI) Receive holding register ReaDY

-AT91C_TWI_TXRDY           EQU (0x1 <<  2) ;- (TWI) Transmit holding register ReaDY

-AT91C_TWI_OVRE            EQU (0x1 <<  6) ;- (TWI) Overrun Error

-AT91C_TWI_UNRE            EQU (0x1 <<  7) ;- (TWI) Underrun Error

-AT91C_TWI_NACK            EQU (0x1 <<  8) ;- (TWI) Not Acknowledged

-// - -------- TWI_IER : (TWI Offset: 0x24) TWI Interrupt Enable Register -------- 

-// - -------- TWI_IDR : (TWI Offset: 0x28) TWI Interrupt Disable Register -------- 

-// - -------- TWI_IMR : (TWI Offset: 0x2c) TWI Interrupt Mask Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR PWMC Channel Interface

-// - *****************************************************************************

-// - -------- PWMC_CMR : (PWMC_CH Offset: 0x0) PWMC Channel Mode Register -------- 

-AT91C_PWMC_CPRE           EQU (0xF <<  0) ;- (PWMC_CH) Channel Pre-scaler : PWMC_CLKx

-AT91C_PWMC_CPRE_MCK       EQU (0x0) ;- (PWMC_CH) 

-AT91C_PWMC_CPRE_MCKA      EQU (0xB) ;- (PWMC_CH) 

-AT91C_PWMC_CPRE_MCKB      EQU (0xC) ;- (PWMC_CH) 

-AT91C_PWMC_CALG           EQU (0x1 <<  8) ;- (PWMC_CH) Channel Alignment

-AT91C_PWMC_CPOL           EQU (0x1 <<  9) ;- (PWMC_CH) Channel Polarity

-AT91C_PWMC_CPD            EQU (0x1 << 10) ;- (PWMC_CH) Channel Update Period

-// - -------- PWMC_CDTYR : (PWMC_CH Offset: 0x4) PWMC Channel Duty Cycle Register -------- 

-AT91C_PWMC_CDTY           EQU (0x0 <<  0) ;- (PWMC_CH) Channel Duty Cycle

-// - -------- PWMC_CPRDR : (PWMC_CH Offset: 0x8) PWMC Channel Period Register -------- 

-AT91C_PWMC_CPRD           EQU (0x0 <<  0) ;- (PWMC_CH) Channel Period

-// - -------- PWMC_CCNTR : (PWMC_CH Offset: 0xc) PWMC Channel Counter Register -------- 

-AT91C_PWMC_CCNT           EQU (0x0 <<  0) ;- (PWMC_CH) Channel Counter

-// - -------- PWMC_CUPDR : (PWMC_CH Offset: 0x10) PWMC Channel Update Register -------- 

-AT91C_PWMC_CUPD           EQU (0x0 <<  0) ;- (PWMC_CH) Channel Update

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Pulse Width Modulation Controller Interface

-// - *****************************************************************************

-// - -------- PWMC_MR : (PWMC Offset: 0x0) PWMC Mode Register -------- 

-AT91C_PWMC_DIVA           EQU (0xFF <<  0) ;- (PWMC) CLKA divide factor.

-AT91C_PWMC_PREA           EQU (0xF <<  8) ;- (PWMC) Divider Input Clock Prescaler A

-AT91C_PWMC_PREA_MCK       EQU (0x0 <<  8) ;- (PWMC) 

-AT91C_PWMC_DIVB           EQU (0xFF << 16) ;- (PWMC) CLKB divide factor.

-AT91C_PWMC_PREB           EQU (0xF << 24) ;- (PWMC) Divider Input Clock Prescaler B

-AT91C_PWMC_PREB_MCK       EQU (0x0 << 24) ;- (PWMC) 

-// - -------- PWMC_ENA : (PWMC Offset: 0x4) PWMC Enable Register -------- 

-AT91C_PWMC_CHID0          EQU (0x1 <<  0) ;- (PWMC) Channel ID 0

-AT91C_PWMC_CHID1          EQU (0x1 <<  1) ;- (PWMC) Channel ID 1

-AT91C_PWMC_CHID2          EQU (0x1 <<  2) ;- (PWMC) Channel ID 2

-AT91C_PWMC_CHID3          EQU (0x1 <<  3) ;- (PWMC) Channel ID 3

-// - -------- PWMC_DIS : (PWMC Offset: 0x8) PWMC Disable Register -------- 

-// - -------- PWMC_SR : (PWMC Offset: 0xc) PWMC Status Register -------- 

-// - -------- PWMC_IER : (PWMC Offset: 0x10) PWMC Interrupt Enable Register -------- 

-// - -------- PWMC_IDR : (PWMC Offset: 0x14) PWMC Interrupt Disable Register -------- 

-// - -------- PWMC_IMR : (PWMC Offset: 0x18) PWMC Interrupt Mask Register -------- 

-// - -------- PWMC_ISR : (PWMC Offset: 0x1c) PWMC Interrupt Status Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR USB Device Interface

-// - *****************************************************************************

-// - -------- UDP_FRM_NUM : (UDP Offset: 0x0) USB Frame Number Register -------- 

-AT91C_UDP_FRM_NUM         EQU (0x7FF <<  0) ;- (UDP) Frame Number as Defined in the Packet Field Formats

-AT91C_UDP_FRM_ERR         EQU (0x1 << 16) ;- (UDP) Frame Error

-AT91C_UDP_FRM_OK          EQU (0x1 << 17) ;- (UDP) Frame OK

-// - -------- UDP_GLB_STATE : (UDP Offset: 0x4) USB Global State Register -------- 

-AT91C_UDP_FADDEN          EQU (0x1 <<  0) ;- (UDP) Function Address Enable

-AT91C_UDP_CONFG           EQU (0x1 <<  1) ;- (UDP) Configured

-AT91C_UDP_ESR             EQU (0x1 <<  2) ;- (UDP) Enable Send Resume

-AT91C_UDP_RSMINPR         EQU (0x1 <<  3) ;- (UDP) A Resume Has Been Sent to the Host

-AT91C_UDP_RMWUPE          EQU (0x1 <<  4) ;- (UDP) Remote Wake Up Enable

-// - -------- UDP_FADDR : (UDP Offset: 0x8) USB Function Address Register -------- 

-AT91C_UDP_FADD            EQU (0xFF <<  0) ;- (UDP) Function Address Value

-AT91C_UDP_FEN             EQU (0x1 <<  8) ;- (UDP) Function Enable

-// - -------- UDP_IER : (UDP Offset: 0x10) USB Interrupt Enable Register -------- 

-AT91C_UDP_EPINT0          EQU (0x1 <<  0) ;- (UDP) Endpoint 0 Interrupt

-AT91C_UDP_EPINT1          EQU (0x1 <<  1) ;- (UDP) Endpoint 0 Interrupt

-AT91C_UDP_EPINT2          EQU (0x1 <<  2) ;- (UDP) Endpoint 2 Interrupt

-AT91C_UDP_EPINT3          EQU (0x1 <<  3) ;- (UDP) Endpoint 3 Interrupt

-AT91C_UDP_EPINT4          EQU (0x1 <<  4) ;- (UDP) Endpoint 4 Interrupt

-AT91C_UDP_EPINT5          EQU (0x1 <<  5) ;- (UDP) Endpoint 5 Interrupt

-AT91C_UDP_RXSUSP          EQU (0x1 <<  8) ;- (UDP) USB Suspend Interrupt

-AT91C_UDP_RXRSM           EQU (0x1 <<  9) ;- (UDP) USB Resume Interrupt

-AT91C_UDP_EXTRSM          EQU (0x1 << 10) ;- (UDP) USB External Resume Interrupt

-AT91C_UDP_SOFINT          EQU (0x1 << 11) ;- (UDP) USB Start Of frame Interrupt

-AT91C_UDP_WAKEUP          EQU (0x1 << 13) ;- (UDP) USB Resume Interrupt

-// - -------- UDP_IDR : (UDP Offset: 0x14) USB Interrupt Disable Register -------- 

-// - -------- UDP_IMR : (UDP Offset: 0x18) USB Interrupt Mask Register -------- 

-// - -------- UDP_ISR : (UDP Offset: 0x1c) USB Interrupt Status Register -------- 

-AT91C_UDP_ENDBUSRES       EQU (0x1 << 12) ;- (UDP) USB End Of Bus Reset Interrupt

-// - -------- UDP_ICR : (UDP Offset: 0x20) USB Interrupt Clear Register -------- 

-// - -------- UDP_RST_EP : (UDP Offset: 0x28) USB Reset Endpoint Register -------- 

-AT91C_UDP_EP0             EQU (0x1 <<  0) ;- (UDP) Reset Endpoint 0

-AT91C_UDP_EP1             EQU (0x1 <<  1) ;- (UDP) Reset Endpoint 1

-AT91C_UDP_EP2             EQU (0x1 <<  2) ;- (UDP) Reset Endpoint 2

-AT91C_UDP_EP3             EQU (0x1 <<  3) ;- (UDP) Reset Endpoint 3

-AT91C_UDP_EP4             EQU (0x1 <<  4) ;- (UDP) Reset Endpoint 4

-AT91C_UDP_EP5             EQU (0x1 <<  5) ;- (UDP) Reset Endpoint 5

-// - -------- UDP_CSR : (UDP Offset: 0x30) USB Endpoint Control and Status Register -------- 

-AT91C_UDP_TXCOMP          EQU (0x1 <<  0) ;- (UDP) Generates an IN packet with data previously written in the DPR

-AT91C_UDP_RX_DATA_BK0     EQU (0x1 <<  1) ;- (UDP) Receive Data Bank 0

-AT91C_UDP_RXSETUP         EQU (0x1 <<  2) ;- (UDP) Sends STALL to the Host (Control endpoints)

-AT91C_UDP_ISOERROR        EQU (0x1 <<  3) ;- (UDP) Isochronous error (Isochronous endpoints)

-AT91C_UDP_TXPKTRDY        EQU (0x1 <<  4) ;- (UDP) Transmit Packet Ready

-AT91C_UDP_FORCESTALL      EQU (0x1 <<  5) ;- (UDP) Force Stall (used by Control, Bulk and Isochronous endpoints).

-AT91C_UDP_RX_DATA_BK1     EQU (0x1 <<  6) ;- (UDP) Receive Data Bank 1 (only used by endpoints with ping-pong attributes).

-AT91C_UDP_DIR             EQU (0x1 <<  7) ;- (UDP) Transfer Direction

-AT91C_UDP_EPTYPE          EQU (0x7 <<  8) ;- (UDP) Endpoint type

-AT91C_UDP_EPTYPE_CTRL     EQU (0x0 <<  8) ;- (UDP) Control

-AT91C_UDP_EPTYPE_ISO_OUT  EQU (0x1 <<  8) ;- (UDP) Isochronous OUT

-AT91C_UDP_EPTYPE_BULK_OUT EQU (0x2 <<  8) ;- (UDP) Bulk OUT

-AT91C_UDP_EPTYPE_INT_OUT  EQU (0x3 <<  8) ;- (UDP) Interrupt OUT

-AT91C_UDP_EPTYPE_ISO_IN   EQU (0x5 <<  8) ;- (UDP) Isochronous IN

-AT91C_UDP_EPTYPE_BULK_IN  EQU (0x6 <<  8) ;- (UDP) Bulk IN

-AT91C_UDP_EPTYPE_INT_IN   EQU (0x7 <<  8) ;- (UDP) Interrupt IN

-AT91C_UDP_DTGLE           EQU (0x1 << 11) ;- (UDP) Data Toggle

-AT91C_UDP_EPEDS           EQU (0x1 << 15) ;- (UDP) Endpoint Enable Disable

-AT91C_UDP_RXBYTECNT       EQU (0x7FF << 16) ;- (UDP) Number Of Bytes Available in the FIFO

-// - -------- UDP_TXVC : (UDP Offset: 0x74) Transceiver Control Register -------- 

-AT91C_UDP_TXVDIS          EQU (0x1 <<  8) ;- (UDP) 

-AT91C_UDP_PUON            EQU (0x1 <<  9) ;- (UDP) Pull-up ON

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Timer Counter Channel Interface

-// - *****************************************************************************

-// - -------- TC_CCR : (TC Offset: 0x0) TC Channel Control Register -------- 

-AT91C_TC_CLKEN            EQU (0x1 <<  0) ;- (TC) Counter Clock Enable Command

-AT91C_TC_CLKDIS           EQU (0x1 <<  1) ;- (TC) Counter Clock Disable Command

-AT91C_TC_SWTRG            EQU (0x1 <<  2) ;- (TC) Software Trigger Command

-// - -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode -------- 

-AT91C_TC_CLKS             EQU (0x7 <<  0) ;- (TC) Clock Selection

-AT91C_TC_CLKS_TIMER_DIV1_CLOCK EQU (0x0) ;- (TC) Clock selected: TIMER_DIV1_CLOCK

-AT91C_TC_CLKS_TIMER_DIV2_CLOCK EQU (0x1) ;- (TC) Clock selected: TIMER_DIV2_CLOCK

-AT91C_TC_CLKS_TIMER_DIV3_CLOCK EQU (0x2) ;- (TC) Clock selected: TIMER_DIV3_CLOCK

-AT91C_TC_CLKS_TIMER_DIV4_CLOCK EQU (0x3) ;- (TC) Clock selected: TIMER_DIV4_CLOCK

-AT91C_TC_CLKS_TIMER_DIV5_CLOCK EQU (0x4) ;- (TC) Clock selected: TIMER_DIV5_CLOCK

-AT91C_TC_CLKS_XC0         EQU (0x5) ;- (TC) Clock selected: XC0

-AT91C_TC_CLKS_XC1         EQU (0x6) ;- (TC) Clock selected: XC1

-AT91C_TC_CLKS_XC2         EQU (0x7) ;- (TC) Clock selected: XC2

-AT91C_TC_CLKI             EQU (0x1 <<  3) ;- (TC) Clock Invert

-AT91C_TC_BURST            EQU (0x3 <<  4) ;- (TC) Burst Signal Selection

-AT91C_TC_BURST_NONE       EQU (0x0 <<  4) ;- (TC) The clock is not gated by an external signal

-AT91C_TC_BURST_XC0        EQU (0x1 <<  4) ;- (TC) XC0 is ANDed with the selected clock

-AT91C_TC_BURST_XC1        EQU (0x2 <<  4) ;- (TC) XC1 is ANDed with the selected clock

-AT91C_TC_BURST_XC2        EQU (0x3 <<  4) ;- (TC) XC2 is ANDed with the selected clock

-AT91C_TC_CPCSTOP          EQU (0x1 <<  6) ;- (TC) Counter Clock Stopped with RC Compare

-AT91C_TC_LDBSTOP          EQU (0x1 <<  6) ;- (TC) Counter Clock Stopped with RB Loading

-AT91C_TC_CPCDIS           EQU (0x1 <<  7) ;- (TC) Counter Clock Disable with RC Compare

-AT91C_TC_LDBDIS           EQU (0x1 <<  7) ;- (TC) Counter Clock Disabled with RB Loading

-AT91C_TC_ETRGEDG          EQU (0x3 <<  8) ;- (TC) External Trigger Edge Selection

-AT91C_TC_ETRGEDG_NONE     EQU (0x0 <<  8) ;- (TC) Edge: None

-AT91C_TC_ETRGEDG_RISING   EQU (0x1 <<  8) ;- (TC) Edge: rising edge

-AT91C_TC_ETRGEDG_FALLING  EQU (0x2 <<  8) ;- (TC) Edge: falling edge

-AT91C_TC_ETRGEDG_BOTH     EQU (0x3 <<  8) ;- (TC) Edge: each edge

-AT91C_TC_EEVTEDG          EQU (0x3 <<  8) ;- (TC) External Event Edge Selection

-AT91C_TC_EEVTEDG_NONE     EQU (0x0 <<  8) ;- (TC) Edge: None

-AT91C_TC_EEVTEDG_RISING   EQU (0x1 <<  8) ;- (TC) Edge: rising edge

-AT91C_TC_EEVTEDG_FALLING  EQU (0x2 <<  8) ;- (TC) Edge: falling edge

-AT91C_TC_EEVTEDG_BOTH     EQU (0x3 <<  8) ;- (TC) Edge: each edge

-AT91C_TC_EEVT             EQU (0x3 << 10) ;- (TC) External Event  Selection

-AT91C_TC_EEVT_TIOB        EQU (0x0 << 10) ;- (TC) Signal selected as external event: TIOB TIOB direction: input

-AT91C_TC_EEVT_XC0         EQU (0x1 << 10) ;- (TC) Signal selected as external event: XC0 TIOB direction: output

-AT91C_TC_EEVT_XC1         EQU (0x2 << 10) ;- (TC) Signal selected as external event: XC1 TIOB direction: output

-AT91C_TC_EEVT_XC2         EQU (0x3 << 10) ;- (TC) Signal selected as external event: XC2 TIOB direction: output

-AT91C_TC_ABETRG           EQU (0x1 << 10) ;- (TC) TIOA or TIOB External Trigger Selection

-AT91C_TC_ENETRG           EQU (0x1 << 12) ;- (TC) External Event Trigger enable

-AT91C_TC_WAVESEL          EQU (0x3 << 13) ;- (TC) Waveform  Selection

-AT91C_TC_WAVESEL_UP       EQU (0x0 << 13) ;- (TC) UP mode without atomatic trigger on RC Compare

-AT91C_TC_WAVESEL_UPDOWN   EQU (0x1 << 13) ;- (TC) UPDOWN mode without automatic trigger on RC Compare

-AT91C_TC_WAVESEL_UP_AUTO  EQU (0x2 << 13) ;- (TC) UP mode with automatic trigger on RC Compare

-AT91C_TC_WAVESEL_UPDOWN_AUTO EQU (0x3 << 13) ;- (TC) UPDOWN mode with automatic trigger on RC Compare

-AT91C_TC_CPCTRG           EQU (0x1 << 14) ;- (TC) RC Compare Trigger Enable

-AT91C_TC_WAVE             EQU (0x1 << 15) ;- (TC) 

-AT91C_TC_ACPA             EQU (0x3 << 16) ;- (TC) RA Compare Effect on TIOA

-AT91C_TC_ACPA_NONE        EQU (0x0 << 16) ;- (TC) Effect: none

-AT91C_TC_ACPA_SET         EQU (0x1 << 16) ;- (TC) Effect: set

-AT91C_TC_ACPA_CLEAR       EQU (0x2 << 16) ;- (TC) Effect: clear

-AT91C_TC_ACPA_TOGGLE      EQU (0x3 << 16) ;- (TC) Effect: toggle

-AT91C_TC_LDRA             EQU (0x3 << 16) ;- (TC) RA Loading Selection

-AT91C_TC_LDRA_NONE        EQU (0x0 << 16) ;- (TC) Edge: None

-AT91C_TC_LDRA_RISING      EQU (0x1 << 16) ;- (TC) Edge: rising edge of TIOA

-AT91C_TC_LDRA_FALLING     EQU (0x2 << 16) ;- (TC) Edge: falling edge of TIOA

-AT91C_TC_LDRA_BOTH        EQU (0x3 << 16) ;- (TC) Edge: each edge of TIOA

-AT91C_TC_ACPC             EQU (0x3 << 18) ;- (TC) RC Compare Effect on TIOA

-AT91C_TC_ACPC_NONE        EQU (0x0 << 18) ;- (TC) Effect: none

-AT91C_TC_ACPC_SET         EQU (0x1 << 18) ;- (TC) Effect: set

-AT91C_TC_ACPC_CLEAR       EQU (0x2 << 18) ;- (TC) Effect: clear

-AT91C_TC_ACPC_TOGGLE      EQU (0x3 << 18) ;- (TC) Effect: toggle

-AT91C_TC_LDRB             EQU (0x3 << 18) ;- (TC) RB Loading Selection

-AT91C_TC_LDRB_NONE        EQU (0x0 << 18) ;- (TC) Edge: None

-AT91C_TC_LDRB_RISING      EQU (0x1 << 18) ;- (TC) Edge: rising edge of TIOA

-AT91C_TC_LDRB_FALLING     EQU (0x2 << 18) ;- (TC) Edge: falling edge of TIOA

-AT91C_TC_LDRB_BOTH        EQU (0x3 << 18) ;- (TC) Edge: each edge of TIOA

-AT91C_TC_AEEVT            EQU (0x3 << 20) ;- (TC) External Event Effect on TIOA

-AT91C_TC_AEEVT_NONE       EQU (0x0 << 20) ;- (TC) Effect: none

-AT91C_TC_AEEVT_SET        EQU (0x1 << 20) ;- (TC) Effect: set

-AT91C_TC_AEEVT_CLEAR      EQU (0x2 << 20) ;- (TC) Effect: clear

-AT91C_TC_AEEVT_TOGGLE     EQU (0x3 << 20) ;- (TC) Effect: toggle

-AT91C_TC_ASWTRG           EQU (0x3 << 22) ;- (TC) Software Trigger Effect on TIOA

-AT91C_TC_ASWTRG_NONE      EQU (0x0 << 22) ;- (TC) Effect: none

-AT91C_TC_ASWTRG_SET       EQU (0x1 << 22) ;- (TC) Effect: set

-AT91C_TC_ASWTRG_CLEAR     EQU (0x2 << 22) ;- (TC) Effect: clear

-AT91C_TC_ASWTRG_TOGGLE    EQU (0x3 << 22) ;- (TC) Effect: toggle

-AT91C_TC_BCPB             EQU (0x3 << 24) ;- (TC) RB Compare Effect on TIOB

-AT91C_TC_BCPB_NONE        EQU (0x0 << 24) ;- (TC) Effect: none

-AT91C_TC_BCPB_SET         EQU (0x1 << 24) ;- (TC) Effect: set

-AT91C_TC_BCPB_CLEAR       EQU (0x2 << 24) ;- (TC) Effect: clear

-AT91C_TC_BCPB_TOGGLE      EQU (0x3 << 24) ;- (TC) Effect: toggle

-AT91C_TC_BCPC             EQU (0x3 << 26) ;- (TC) RC Compare Effect on TIOB

-AT91C_TC_BCPC_NONE        EQU (0x0 << 26) ;- (TC) Effect: none

-AT91C_TC_BCPC_SET         EQU (0x1 << 26) ;- (TC) Effect: set

-AT91C_TC_BCPC_CLEAR       EQU (0x2 << 26) ;- (TC) Effect: clear

-AT91C_TC_BCPC_TOGGLE      EQU (0x3 << 26) ;- (TC) Effect: toggle

-AT91C_TC_BEEVT            EQU (0x3 << 28) ;- (TC) External Event Effect on TIOB

-AT91C_TC_BEEVT_NONE       EQU (0x0 << 28) ;- (TC) Effect: none

-AT91C_TC_BEEVT_SET        EQU (0x1 << 28) ;- (TC) Effect: set

-AT91C_TC_BEEVT_CLEAR      EQU (0x2 << 28) ;- (TC) Effect: clear

-AT91C_TC_BEEVT_TOGGLE     EQU (0x3 << 28) ;- (TC) Effect: toggle

-AT91C_TC_BSWTRG           EQU (0x3 << 30) ;- (TC) Software Trigger Effect on TIOB

-AT91C_TC_BSWTRG_NONE      EQU (0x0 << 30) ;- (TC) Effect: none

-AT91C_TC_BSWTRG_SET       EQU (0x1 << 30) ;- (TC) Effect: set

-AT91C_TC_BSWTRG_CLEAR     EQU (0x2 << 30) ;- (TC) Effect: clear

-AT91C_TC_BSWTRG_TOGGLE    EQU (0x3 << 30) ;- (TC) Effect: toggle

-// - -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register -------- 

-AT91C_TC_COVFS            EQU (0x1 <<  0) ;- (TC) Counter Overflow

-AT91C_TC_LOVRS            EQU (0x1 <<  1) ;- (TC) Load Overrun

-AT91C_TC_CPAS             EQU (0x1 <<  2) ;- (TC) RA Compare

-AT91C_TC_CPBS             EQU (0x1 <<  3) ;- (TC) RB Compare

-AT91C_TC_CPCS             EQU (0x1 <<  4) ;- (TC) RC Compare

-AT91C_TC_LDRAS            EQU (0x1 <<  5) ;- (TC) RA Loading

-AT91C_TC_LDRBS            EQU (0x1 <<  6) ;- (TC) RB Loading

-AT91C_TC_ETRGS            EQU (0x1 <<  7) ;- (TC) External Trigger

-AT91C_TC_CLKSTA           EQU (0x1 << 16) ;- (TC) Clock Enabling

-AT91C_TC_MTIOA            EQU (0x1 << 17) ;- (TC) TIOA Mirror

-AT91C_TC_MTIOB            EQU (0x1 << 18) ;- (TC) TIOA Mirror

-// - -------- TC_IER : (TC Offset: 0x24) TC Channel Interrupt Enable Register -------- 

-// - -------- TC_IDR : (TC Offset: 0x28) TC Channel Interrupt Disable Register -------- 

-// - -------- TC_IMR : (TC Offset: 0x2c) TC Channel Interrupt Mask Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Timer Counter Interface

-// - *****************************************************************************

-// - -------- TCB_BCR : (TCB Offset: 0xc0) TC Block Control Register -------- 

-AT91C_TCB_SYNC            EQU (0x1 <<  0) ;- (TCB) Synchro Command

-// - -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register -------- 

-AT91C_TCB_TC0XC0S         EQU (0x3 <<  0) ;- (TCB) External Clock Signal 0 Selection

-AT91C_TCB_TC0XC0S_TCLK0   EQU (0x0) ;- (TCB) TCLK0 connected to XC0

-AT91C_TCB_TC0XC0S_NONE    EQU (0x1) ;- (TCB) None signal connected to XC0

-AT91C_TCB_TC0XC0S_TIOA1   EQU (0x2) ;- (TCB) TIOA1 connected to XC0

-AT91C_TCB_TC0XC0S_TIOA2   EQU (0x3) ;- (TCB) TIOA2 connected to XC0

-AT91C_TCB_TC1XC1S         EQU (0x3 <<  2) ;- (TCB) External Clock Signal 1 Selection

-AT91C_TCB_TC1XC1S_TCLK1   EQU (0x0 <<  2) ;- (TCB) TCLK1 connected to XC1

-AT91C_TCB_TC1XC1S_NONE    EQU (0x1 <<  2) ;- (TCB) None signal connected to XC1

-AT91C_TCB_TC1XC1S_TIOA0   EQU (0x2 <<  2) ;- (TCB) TIOA0 connected to XC1

-AT91C_TCB_TC1XC1S_TIOA2   EQU (0x3 <<  2) ;- (TCB) TIOA2 connected to XC1

-AT91C_TCB_TC2XC2S         EQU (0x3 <<  4) ;- (TCB) External Clock Signal 2 Selection

-AT91C_TCB_TC2XC2S_TCLK2   EQU (0x0 <<  4) ;- (TCB) TCLK2 connected to XC2

-AT91C_TCB_TC2XC2S_NONE    EQU (0x1 <<  4) ;- (TCB) None signal connected to XC2

-AT91C_TCB_TC2XC2S_TIOA0   EQU (0x2 <<  4) ;- (TCB) TIOA0 connected to XC2

-AT91C_TCB_TC2XC2S_TIOA1   EQU (0x3 <<  4) ;- (TCB) TIOA2 connected to XC2

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Control Area Network MailBox Interface

-// - *****************************************************************************

-// - -------- CAN_MMR : (CAN_MB Offset: 0x0) CAN Message Mode Register -------- 

-AT91C_CAN_MTIMEMARK       EQU (0xFFFF <<  0) ;- (CAN_MB) Mailbox Timemark

-AT91C_CAN_PRIOR           EQU (0xF << 16) ;- (CAN_MB) Mailbox Priority

-AT91C_CAN_MOT             EQU (0x7 << 24) ;- (CAN_MB) Mailbox Object Type

-AT91C_CAN_MOT_DIS         EQU (0x0 << 24) ;- (CAN_MB) 

-AT91C_CAN_MOT_RX          EQU (0x1 << 24) ;- (CAN_MB) 

-AT91C_CAN_MOT_RXOVERWRITE EQU (0x2 << 24) ;- (CAN_MB) 

-AT91C_CAN_MOT_TX          EQU (0x3 << 24) ;- (CAN_MB) 

-AT91C_CAN_MOT_CONSUMER    EQU (0x4 << 24) ;- (CAN_MB) 

-AT91C_CAN_MOT_PRODUCER    EQU (0x5 << 24) ;- (CAN_MB) 

-// - -------- CAN_MAM : (CAN_MB Offset: 0x4) CAN Message Acceptance Mask Register -------- 

-AT91C_CAN_MIDvB           EQU (0x3FFFF <<  0) ;- (CAN_MB) Complementary bits for identifier in extended mode

-AT91C_CAN_MIDvA           EQU (0x7FF << 18) ;- (CAN_MB) Identifier for standard frame mode

-AT91C_CAN_MIDE            EQU (0x1 << 29) ;- (CAN_MB) Identifier Version

-// - -------- CAN_MID : (CAN_MB Offset: 0x8) CAN Message ID Register -------- 

-// - -------- CAN_MFID : (CAN_MB Offset: 0xc) CAN Message Family ID Register -------- 

-// - -------- CAN_MSR : (CAN_MB Offset: 0x10) CAN Message Status Register -------- 

-AT91C_CAN_MTIMESTAMP      EQU (0xFFFF <<  0) ;- (CAN_MB) Timer Value

-AT91C_CAN_MDLC            EQU (0xF << 16) ;- (CAN_MB) Mailbox Data Length Code

-AT91C_CAN_MRTR            EQU (0x1 << 20) ;- (CAN_MB) Mailbox Remote Transmission Request

-AT91C_CAN_MABT            EQU (0x1 << 22) ;- (CAN_MB) Mailbox Message Abort

-AT91C_CAN_MRDY            EQU (0x1 << 23) ;- (CAN_MB) Mailbox Ready

-AT91C_CAN_MMI             EQU (0x1 << 24) ;- (CAN_MB) Mailbox Message Ignored

-// - -------- CAN_MDL : (CAN_MB Offset: 0x14) CAN Message Data Low Register -------- 

-// - -------- CAN_MDH : (CAN_MB Offset: 0x18) CAN Message Data High Register -------- 

-// - -------- CAN_MCR : (CAN_MB Offset: 0x1c) CAN Message Control Register -------- 

-AT91C_CAN_MACR            EQU (0x1 << 22) ;- (CAN_MB) Abort Request for Mailbox

-AT91C_CAN_MTCR            EQU (0x1 << 23) ;- (CAN_MB) Mailbox Transfer Command

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Control Area Network Interface

-// - *****************************************************************************

-// - -------- CAN_MR : (CAN Offset: 0x0) CAN Mode Register -------- 

-AT91C_CAN_CANEN           EQU (0x1 <<  0) ;- (CAN) CAN Controller Enable

-AT91C_CAN_LPM             EQU (0x1 <<  1) ;- (CAN) Disable/Enable Low Power Mode

-AT91C_CAN_ABM             EQU (0x1 <<  2) ;- (CAN) Disable/Enable Autobaud/Listen Mode

-AT91C_CAN_OVL             EQU (0x1 <<  3) ;- (CAN) Disable/Enable Overload Frame

-AT91C_CAN_TEOF            EQU (0x1 <<  4) ;- (CAN) Time Stamp messages at each end of Frame

-AT91C_CAN_TTM             EQU (0x1 <<  5) ;- (CAN) Disable/Enable Time Trigger Mode

-AT91C_CAN_TIMFRZ          EQU (0x1 <<  6) ;- (CAN) Enable Timer Freeze

-AT91C_CAN_DRPT            EQU (0x1 <<  7) ;- (CAN) Disable Repeat

-// - -------- CAN_IER : (CAN Offset: 0x4) CAN Interrupt Enable Register -------- 

-AT91C_CAN_MB0             EQU (0x1 <<  0) ;- (CAN) Mailbox 0 Flag

-AT91C_CAN_MB1             EQU (0x1 <<  1) ;- (CAN) Mailbox 1 Flag

-AT91C_CAN_MB2             EQU (0x1 <<  2) ;- (CAN) Mailbox 2 Flag

-AT91C_CAN_MB3             EQU (0x1 <<  3) ;- (CAN) Mailbox 3 Flag

-AT91C_CAN_MB4             EQU (0x1 <<  4) ;- (CAN) Mailbox 4 Flag

-AT91C_CAN_MB5             EQU (0x1 <<  5) ;- (CAN) Mailbox 5 Flag

-AT91C_CAN_MB6             EQU (0x1 <<  6) ;- (CAN) Mailbox 6 Flag

-AT91C_CAN_MB7             EQU (0x1 <<  7) ;- (CAN) Mailbox 7 Flag

-AT91C_CAN_MB8             EQU (0x1 <<  8) ;- (CAN) Mailbox 8 Flag

-AT91C_CAN_MB9             EQU (0x1 <<  9) ;- (CAN) Mailbox 9 Flag

-AT91C_CAN_MB10            EQU (0x1 << 10) ;- (CAN) Mailbox 10 Flag

-AT91C_CAN_MB11            EQU (0x1 << 11) ;- (CAN) Mailbox 11 Flag

-AT91C_CAN_MB12            EQU (0x1 << 12) ;- (CAN) Mailbox 12 Flag

-AT91C_CAN_MB13            EQU (0x1 << 13) ;- (CAN) Mailbox 13 Flag

-AT91C_CAN_MB14            EQU (0x1 << 14) ;- (CAN) Mailbox 14 Flag

-AT91C_CAN_MB15            EQU (0x1 << 15) ;- (CAN) Mailbox 15 Flag

-AT91C_CAN_ERRA            EQU (0x1 << 16) ;- (CAN) Error Active Mode Flag

-AT91C_CAN_WARN            EQU (0x1 << 17) ;- (CAN) Warning Limit Flag

-AT91C_CAN_ERRP            EQU (0x1 << 18) ;- (CAN) Error Passive Mode Flag

-AT91C_CAN_BOFF            EQU (0x1 << 19) ;- (CAN) Bus Off Mode Flag

-AT91C_CAN_SLEEP           EQU (0x1 << 20) ;- (CAN) Sleep Flag

-AT91C_CAN_WAKEUP          EQU (0x1 << 21) ;- (CAN) Wakeup Flag

-AT91C_CAN_TOVF            EQU (0x1 << 22) ;- (CAN) Timer Overflow Flag

-AT91C_CAN_TSTP            EQU (0x1 << 23) ;- (CAN) Timestamp Flag

-AT91C_CAN_CERR            EQU (0x1 << 24) ;- (CAN) CRC Error

-AT91C_CAN_SERR            EQU (0x1 << 25) ;- (CAN) Stuffing Error

-AT91C_CAN_AERR            EQU (0x1 << 26) ;- (CAN) Acknowledgment Error

-AT91C_CAN_FERR            EQU (0x1 << 27) ;- (CAN) Form Error

-AT91C_CAN_BERR            EQU (0x1 << 28) ;- (CAN) Bit Error

-// - -------- CAN_IDR : (CAN Offset: 0x8) CAN Interrupt Disable Register -------- 

-// - -------- CAN_IMR : (CAN Offset: 0xc) CAN Interrupt Mask Register -------- 

-// - -------- CAN_SR : (CAN Offset: 0x10) CAN Status Register -------- 

-AT91C_CAN_RBSY            EQU (0x1 << 29) ;- (CAN) Receiver Busy

-AT91C_CAN_TBSY            EQU (0x1 << 30) ;- (CAN) Transmitter Busy

-AT91C_CAN_OVLY            EQU (0x1 << 31) ;- (CAN) Overload Busy

-// - -------- CAN_BR : (CAN Offset: 0x14) CAN Baudrate Register -------- 

-AT91C_CAN_PHASE2          EQU (0x7 <<  0) ;- (CAN) Phase 2 segment

-AT91C_CAN_PHASE1          EQU (0x7 <<  4) ;- (CAN) Phase 1 segment

-AT91C_CAN_PROPAG          EQU (0x7 <<  8) ;- (CAN) Programmation time segment

-AT91C_CAN_SYNC            EQU (0x3 << 12) ;- (CAN) Re-synchronization jump width segment

-AT91C_CAN_BRP             EQU (0x7F << 16) ;- (CAN) Baudrate Prescaler

-AT91C_CAN_SMP             EQU (0x1 << 24) ;- (CAN) Sampling mode

-// - -------- CAN_TIM : (CAN Offset: 0x18) CAN Timer Register -------- 

-AT91C_CAN_TIMER           EQU (0xFFFF <<  0) ;- (CAN) Timer field

-// - -------- CAN_TIMESTP : (CAN Offset: 0x1c) CAN Timestamp Register -------- 

-// - -------- CAN_ECR : (CAN Offset: 0x20) CAN Error Counter Register -------- 

-AT91C_CAN_REC             EQU (0xFF <<  0) ;- (CAN) Receive Error Counter

-AT91C_CAN_TEC             EQU (0xFF << 16) ;- (CAN) Transmit Error Counter

-// - -------- CAN_TCR : (CAN Offset: 0x24) CAN Transfer Command Register -------- 

-AT91C_CAN_TIMRST          EQU (0x1 << 31) ;- (CAN) Timer Reset Field

-// - -------- CAN_ACR : (CAN Offset: 0x28) CAN Abort Command Register -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Ethernet MAC 10/100

-// - *****************************************************************************

-// - -------- EMAC_NCR : (EMAC Offset: 0x0)  -------- 

-AT91C_EMAC_LB             EQU (0x1 <<  0) ;- (EMAC) Loopback. Optional. When set, loopback signal is at high level.

-AT91C_EMAC_LLB            EQU (0x1 <<  1) ;- (EMAC) Loopback local. 

-AT91C_EMAC_RE             EQU (0x1 <<  2) ;- (EMAC) Receive enable. 

-AT91C_EMAC_TE             EQU (0x1 <<  3) ;- (EMAC) Transmit enable. 

-AT91C_EMAC_MPE            EQU (0x1 <<  4) ;- (EMAC) Management port enable. 

-AT91C_EMAC_CLRSTAT        EQU (0x1 <<  5) ;- (EMAC) Clear statistics registers. 

-AT91C_EMAC_INCSTAT        EQU (0x1 <<  6) ;- (EMAC) Increment statistics registers. 

-AT91C_EMAC_WESTAT         EQU (0x1 <<  7) ;- (EMAC) Write enable for statistics registers. 

-AT91C_EMAC_BP             EQU (0x1 <<  8) ;- (EMAC) Back pressure. 

-AT91C_EMAC_TSTART         EQU (0x1 <<  9) ;- (EMAC) Start Transmission. 

-AT91C_EMAC_THALT          EQU (0x1 << 10) ;- (EMAC) Transmission Halt. 

-AT91C_EMAC_TPFR           EQU (0x1 << 11) ;- (EMAC) Transmit pause frame 

-AT91C_EMAC_TZQ            EQU (0x1 << 12) ;- (EMAC) Transmit zero quantum pause frame

-// - -------- EMAC_NCFGR : (EMAC Offset: 0x4) Network Configuration Register -------- 

-AT91C_EMAC_SPD            EQU (0x1 <<  0) ;- (EMAC) Speed. 

-AT91C_EMAC_FD             EQU (0x1 <<  1) ;- (EMAC) Full duplex. 

-AT91C_EMAC_JFRAME         EQU (0x1 <<  3) ;- (EMAC) Jumbo Frames. 

-AT91C_EMAC_CAF            EQU (0x1 <<  4) ;- (EMAC) Copy all frames. 

-AT91C_EMAC_NBC            EQU (0x1 <<  5) ;- (EMAC) No broadcast. 

-AT91C_EMAC_MTI            EQU (0x1 <<  6) ;- (EMAC) Multicast hash event enable

-AT91C_EMAC_UNI            EQU (0x1 <<  7) ;- (EMAC) Unicast hash enable. 

-AT91C_EMAC_BIG            EQU (0x1 <<  8) ;- (EMAC) Receive 1522 bytes. 

-AT91C_EMAC_EAE            EQU (0x1 <<  9) ;- (EMAC) External address match enable. 

-AT91C_EMAC_CLK            EQU (0x3 << 10) ;- (EMAC) 

-AT91C_EMAC_CLK_HCLK_8     EQU (0x0 << 10) ;- (EMAC) HCLK divided by 8

-AT91C_EMAC_CLK_HCLK_16    EQU (0x1 << 10) ;- (EMAC) HCLK divided by 16

-AT91C_EMAC_CLK_HCLK_32    EQU (0x2 << 10) ;- (EMAC) HCLK divided by 32

-AT91C_EMAC_CLK_HCLK_64    EQU (0x3 << 10) ;- (EMAC) HCLK divided by 64

-AT91C_EMAC_RTY            EQU (0x1 << 12) ;- (EMAC) 

-AT91C_EMAC_PAE            EQU (0x1 << 13) ;- (EMAC) 

-AT91C_EMAC_RBOF           EQU (0x3 << 14) ;- (EMAC) 

-AT91C_EMAC_RBOF_OFFSET_0  EQU (0x0 << 14) ;- (EMAC) no offset from start of receive buffer

-AT91C_EMAC_RBOF_OFFSET_1  EQU (0x1 << 14) ;- (EMAC) one byte offset from start of receive buffer

-AT91C_EMAC_RBOF_OFFSET_2  EQU (0x2 << 14) ;- (EMAC) two bytes offset from start of receive buffer

-AT91C_EMAC_RBOF_OFFSET_3  EQU (0x3 << 14) ;- (EMAC) three bytes offset from start of receive buffer

-AT91C_EMAC_RLCE           EQU (0x1 << 16) ;- (EMAC) Receive Length field Checking Enable

-AT91C_EMAC_DRFCS          EQU (0x1 << 17) ;- (EMAC) Discard Receive FCS

-AT91C_EMAC_EFRHD          EQU (0x1 << 18) ;- (EMAC) 

-AT91C_EMAC_IRXFCS         EQU (0x1 << 19) ;- (EMAC) Ignore RX FCS

-// - -------- EMAC_NSR : (EMAC Offset: 0x8) Network Status Register -------- 

-AT91C_EMAC_LINKR          EQU (0x1 <<  0) ;- (EMAC) 

-AT91C_EMAC_MDIO           EQU (0x1 <<  1) ;- (EMAC) 

-AT91C_EMAC_IDLE           EQU (0x1 <<  2) ;- (EMAC) 

-// - -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Status Register -------- 

-AT91C_EMAC_UBR            EQU (0x1 <<  0) ;- (EMAC) 

-AT91C_EMAC_COL            EQU (0x1 <<  1) ;- (EMAC) 

-AT91C_EMAC_RLES           EQU (0x1 <<  2) ;- (EMAC) 

-AT91C_EMAC_TGO            EQU (0x1 <<  3) ;- (EMAC) Transmit Go

-AT91C_EMAC_BEX            EQU (0x1 <<  4) ;- (EMAC) Buffers exhausted mid frame

-AT91C_EMAC_COMP           EQU (0x1 <<  5) ;- (EMAC) 

-AT91C_EMAC_UND            EQU (0x1 <<  6) ;- (EMAC) 

-// - -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register -------- 

-AT91C_EMAC_BNA            EQU (0x1 <<  0) ;- (EMAC) 

-AT91C_EMAC_REC            EQU (0x1 <<  1) ;- (EMAC) 

-AT91C_EMAC_OVR            EQU (0x1 <<  2) ;- (EMAC) 

-// - -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register -------- 

-AT91C_EMAC_MFD            EQU (0x1 <<  0) ;- (EMAC) 

-AT91C_EMAC_RCOMP          EQU (0x1 <<  1) ;- (EMAC) 

-AT91C_EMAC_RXUBR          EQU (0x1 <<  2) ;- (EMAC) 

-AT91C_EMAC_TXUBR          EQU (0x1 <<  3) ;- (EMAC) 

-AT91C_EMAC_TUNDR          EQU (0x1 <<  4) ;- (EMAC) 

-AT91C_EMAC_RLEX           EQU (0x1 <<  5) ;- (EMAC) 

-AT91C_EMAC_TXERR          EQU (0x1 <<  6) ;- (EMAC) 

-AT91C_EMAC_TCOMP          EQU (0x1 <<  7) ;- (EMAC) 

-AT91C_EMAC_LINK           EQU (0x1 <<  9) ;- (EMAC) 

-AT91C_EMAC_ROVR           EQU (0x1 << 10) ;- (EMAC) 

-AT91C_EMAC_HRESP          EQU (0x1 << 11) ;- (EMAC) 

-AT91C_EMAC_PFRE           EQU (0x1 << 12) ;- (EMAC) 

-AT91C_EMAC_PTZ            EQU (0x1 << 13) ;- (EMAC) 

-// - -------- EMAC_IER : (EMAC Offset: 0x28) Interrupt Enable Register -------- 

-// - -------- EMAC_IDR : (EMAC Offset: 0x2c) Interrupt Disable Register -------- 

-// - -------- EMAC_IMR : (EMAC Offset: 0x30) Interrupt Mask Register -------- 

-// - -------- EMAC_MAN : (EMAC Offset: 0x34) PHY Maintenance Register -------- 

-AT91C_EMAC_DATA           EQU (0xFFFF <<  0) ;- (EMAC) 

-AT91C_EMAC_CODE           EQU (0x3 << 16) ;- (EMAC) 

-AT91C_EMAC_REGA           EQU (0x1F << 18) ;- (EMAC) 

-AT91C_EMAC_PHYA           EQU (0x1F << 23) ;- (EMAC) 

-AT91C_EMAC_RW             EQU (0x3 << 28) ;- (EMAC) 

-AT91C_EMAC_SOF            EQU (0x3 << 30) ;- (EMAC) 

-// - -------- EMAC_USRIO : (EMAC Offset: 0xc0) USER Input Output Register -------- 

-AT91C_EMAC_RMII           EQU (0x1 <<  0) ;- (EMAC) Reduce MII

-// - -------- EMAC_WOL : (EMAC Offset: 0xc4) Wake On LAN Register -------- 

-AT91C_EMAC_IP             EQU (0xFFFF <<  0) ;- (EMAC) ARP request IP address

-AT91C_EMAC_MAG            EQU (0x1 << 16) ;- (EMAC) Magic packet event enable

-AT91C_EMAC_ARP            EQU (0x1 << 17) ;- (EMAC) ARP request event enable

-AT91C_EMAC_SA1            EQU (0x1 << 18) ;- (EMAC) Specific address register 1 event enable

-// - -------- EMAC_REV : (EMAC Offset: 0xfc) Revision Register -------- 

-AT91C_EMAC_REVREF         EQU (0xFFFF <<  0) ;- (EMAC) 

-AT91C_EMAC_PARTREF        EQU (0xFFFF << 16) ;- (EMAC) 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Analog to Digital Convertor

-// - *****************************************************************************

-// - -------- ADC_CR : (ADC Offset: 0x0) ADC Control Register -------- 

-AT91C_ADC_SWRST           EQU (0x1 <<  0) ;- (ADC) Software Reset

-AT91C_ADC_START           EQU (0x1 <<  1) ;- (ADC) Start Conversion

-// - -------- ADC_MR : (ADC Offset: 0x4) ADC Mode Register -------- 

-AT91C_ADC_TRGEN           EQU (0x1 <<  0) ;- (ADC) Trigger Enable

-AT91C_ADC_TRGEN_DIS       EQU (0x0) ;- (ADC) Hradware triggers are disabled. Starting a conversion is only possible by software

-AT91C_ADC_TRGEN_EN        EQU (0x1) ;- (ADC) Hardware trigger selected by TRGSEL field is enabled.

-AT91C_ADC_TRGSEL          EQU (0x7 <<  1) ;- (ADC) Trigger Selection

-AT91C_ADC_TRGSEL_TIOA0    EQU (0x0 <<  1) ;- (ADC) Selected TRGSEL = TIAO0

-AT91C_ADC_TRGSEL_TIOA1    EQU (0x1 <<  1) ;- (ADC) Selected TRGSEL = TIAO1

-AT91C_ADC_TRGSEL_TIOA2    EQU (0x2 <<  1) ;- (ADC) Selected TRGSEL = TIAO2

-AT91C_ADC_TRGSEL_TIOA3    EQU (0x3 <<  1) ;- (ADC) Selected TRGSEL = TIAO3

-AT91C_ADC_TRGSEL_TIOA4    EQU (0x4 <<  1) ;- (ADC) Selected TRGSEL = TIAO4

-AT91C_ADC_TRGSEL_TIOA5    EQU (0x5 <<  1) ;- (ADC) Selected TRGSEL = TIAO5

-AT91C_ADC_TRGSEL_EXT      EQU (0x6 <<  1) ;- (ADC) Selected TRGSEL = External Trigger

-AT91C_ADC_LOWRES          EQU (0x1 <<  4) ;- (ADC) Resolution.

-AT91C_ADC_LOWRES_10_BIT   EQU (0x0 <<  4) ;- (ADC) 10-bit resolution

-AT91C_ADC_LOWRES_8_BIT    EQU (0x1 <<  4) ;- (ADC) 8-bit resolution

-AT91C_ADC_SLEEP           EQU (0x1 <<  5) ;- (ADC) Sleep Mode

-AT91C_ADC_SLEEP_NORMAL_MODE EQU (0x0 <<  5) ;- (ADC) Normal Mode

-AT91C_ADC_SLEEP_MODE      EQU (0x1 <<  5) ;- (ADC) Sleep Mode

-AT91C_ADC_PRESCAL         EQU (0x3F <<  8) ;- (ADC) Prescaler rate selection

-AT91C_ADC_STARTUP         EQU (0x1F << 16) ;- (ADC) Startup Time

-AT91C_ADC_SHTIM           EQU (0xF << 24) ;- (ADC) Sample & Hold Time

-// - -------- 	ADC_CHER : (ADC Offset: 0x10) ADC Channel Enable Register -------- 

-AT91C_ADC_CH0             EQU (0x1 <<  0) ;- (ADC) Channel 0

-AT91C_ADC_CH1             EQU (0x1 <<  1) ;- (ADC) Channel 1

-AT91C_ADC_CH2             EQU (0x1 <<  2) ;- (ADC) Channel 2

-AT91C_ADC_CH3             EQU (0x1 <<  3) ;- (ADC) Channel 3

-AT91C_ADC_CH4             EQU (0x1 <<  4) ;- (ADC) Channel 4

-AT91C_ADC_CH5             EQU (0x1 <<  5) ;- (ADC) Channel 5

-AT91C_ADC_CH6             EQU (0x1 <<  6) ;- (ADC) Channel 6

-AT91C_ADC_CH7             EQU (0x1 <<  7) ;- (ADC) Channel 7

-// - -------- 	ADC_CHDR : (ADC Offset: 0x14) ADC Channel Disable Register -------- 

-// - -------- 	ADC_CHSR : (ADC Offset: 0x18) ADC Channel Status Register -------- 

-// - -------- ADC_SR : (ADC Offset: 0x1c) ADC Status Register -------- 

-AT91C_ADC_EOC0            EQU (0x1 <<  0) ;- (ADC) End of Conversion

-AT91C_ADC_EOC1            EQU (0x1 <<  1) ;- (ADC) End of Conversion

-AT91C_ADC_EOC2            EQU (0x1 <<  2) ;- (ADC) End of Conversion

-AT91C_ADC_EOC3            EQU (0x1 <<  3) ;- (ADC) End of Conversion

-AT91C_ADC_EOC4            EQU (0x1 <<  4) ;- (ADC) End of Conversion

-AT91C_ADC_EOC5            EQU (0x1 <<  5) ;- (ADC) End of Conversion

-AT91C_ADC_EOC6            EQU (0x1 <<  6) ;- (ADC) End of Conversion

-AT91C_ADC_EOC7            EQU (0x1 <<  7) ;- (ADC) End of Conversion

-AT91C_ADC_OVRE0           EQU (0x1 <<  8) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE1           EQU (0x1 <<  9) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE2           EQU (0x1 << 10) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE3           EQU (0x1 << 11) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE4           EQU (0x1 << 12) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE5           EQU (0x1 << 13) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE6           EQU (0x1 << 14) ;- (ADC) Overrun Error

-AT91C_ADC_OVRE7           EQU (0x1 << 15) ;- (ADC) Overrun Error

-AT91C_ADC_DRDY            EQU (0x1 << 16) ;- (ADC) Data Ready

-AT91C_ADC_GOVRE           EQU (0x1 << 17) ;- (ADC) General Overrun

-AT91C_ADC_ENDRX           EQU (0x1 << 18) ;- (ADC) End of Receiver Transfer

-AT91C_ADC_RXBUFF          EQU (0x1 << 19) ;- (ADC) RXBUFF Interrupt

-// - -------- ADC_LCDR : (ADC Offset: 0x20) ADC Last Converted Data Register -------- 

-AT91C_ADC_LDATA           EQU (0x3FF <<  0) ;- (ADC) Last Data Converted

-// - -------- ADC_IER : (ADC Offset: 0x24) ADC Interrupt Enable Register -------- 

-// - -------- ADC_IDR : (ADC Offset: 0x28) ADC Interrupt Disable Register -------- 

-// - -------- ADC_IMR : (ADC Offset: 0x2c) ADC Interrupt Mask Register -------- 

-// - -------- ADC_CDR0 : (ADC Offset: 0x30) ADC Channel Data Register 0 -------- 

-AT91C_ADC_DATA            EQU (0x3FF <<  0) ;- (ADC) Converted Data

-// - -------- ADC_CDR1 : (ADC Offset: 0x34) ADC Channel Data Register 1 -------- 

-// - -------- ADC_CDR2 : (ADC Offset: 0x38) ADC Channel Data Register 2 -------- 

-// - -------- ADC_CDR3 : (ADC Offset: 0x3c) ADC Channel Data Register 3 -------- 

-// - -------- ADC_CDR4 : (ADC Offset: 0x40) ADC Channel Data Register 4 -------- 

-// - -------- ADC_CDR5 : (ADC Offset: 0x44) ADC Channel Data Register 5 -------- 

-// - -------- ADC_CDR6 : (ADC Offset: 0x48) ADC Channel Data Register 6 -------- 

-// - -------- ADC_CDR7 : (ADC Offset: 0x4c) ADC Channel Data Register 7 -------- 

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Advanced  Encryption Standard

-// - *****************************************************************************

-// - -------- AES_CR : (AES Offset: 0x0) Control Register -------- 

-AT91C_AES_START           EQU (0x1 <<  0) ;- (AES) Starts Processing

-AT91C_AES_SWRST           EQU (0x1 <<  8) ;- (AES) Software Reset

-AT91C_AES_LOADSEED        EQU (0x1 << 16) ;- (AES) Random Number Generator Seed Loading

-// - -------- AES_MR : (AES Offset: 0x4) Mode Register -------- 

-AT91C_AES_CIPHER          EQU (0x1 <<  0) ;- (AES) Processing Mode

-AT91C_AES_PROCDLY         EQU (0xF <<  4) ;- (AES) Processing Delay

-AT91C_AES_SMOD            EQU (0x3 <<  8) ;- (AES) Start Mode

-AT91C_AES_SMOD_MANUAL     EQU (0x0 <<  8) ;- (AES) Manual Mode: The START bit in register AES_CR must be set to begin encryption or decryption.

-AT91C_AES_SMOD_AUTO       EQU (0x1 <<  8) ;- (AES) Auto Mode: no action in AES_CR is necessary (cf datasheet).

-AT91C_AES_SMOD_PDC        EQU (0x2 <<  8) ;- (AES) PDC Mode (cf datasheet).

-AT91C_AES_OPMOD           EQU (0x7 << 12) ;- (AES) Operation Mode

-AT91C_AES_OPMOD_ECB       EQU (0x0 << 12) ;- (AES) ECB Electronic CodeBook mode.

-AT91C_AES_OPMOD_CBC       EQU (0x1 << 12) ;- (AES) CBC Cipher Block Chaining mode.

-AT91C_AES_OPMOD_OFB       EQU (0x2 << 12) ;- (AES) OFB Output Feedback mode.

-AT91C_AES_OPMOD_CFB       EQU (0x3 << 12) ;- (AES) CFB Cipher Feedback mode.

-AT91C_AES_OPMOD_CTR       EQU (0x4 << 12) ;- (AES) CTR Counter mode.

-AT91C_AES_LOD             EQU (0x1 << 15) ;- (AES) Last Output Data Mode

-AT91C_AES_CFBS            EQU (0x7 << 16) ;- (AES) Cipher Feedback Data Size

-AT91C_AES_CFBS_128_BIT    EQU (0x0 << 16) ;- (AES) 128-bit.

-AT91C_AES_CFBS_64_BIT     EQU (0x1 << 16) ;- (AES) 64-bit.

-AT91C_AES_CFBS_32_BIT     EQU (0x2 << 16) ;- (AES) 32-bit.

-AT91C_AES_CFBS_16_BIT     EQU (0x3 << 16) ;- (AES) 16-bit.

-AT91C_AES_CFBS_8_BIT      EQU (0x4 << 16) ;- (AES) 8-bit.

-AT91C_AES_CKEY            EQU (0xF << 20) ;- (AES) Countermeasure Key

-AT91C_AES_CTYPE           EQU (0x1F << 24) ;- (AES) Countermeasure Type

-AT91C_AES_CTYPE_TYPE1_EN  EQU (0x1 << 24) ;- (AES) Countermeasure type 1 is enabled.

-AT91C_AES_CTYPE_TYPE2_EN  EQU (0x2 << 24) ;- (AES) Countermeasure type 2 is enabled.

-AT91C_AES_CTYPE_TYPE3_EN  EQU (0x4 << 24) ;- (AES) Countermeasure type 3 is enabled.

-AT91C_AES_CTYPE_TYPE4_EN  EQU (0x8 << 24) ;- (AES) Countermeasure type 4 is enabled.

-AT91C_AES_CTYPE_TYPE5_EN  EQU (0x10 << 24) ;- (AES) Countermeasure type 5 is enabled.

-// - -------- AES_IER : (AES Offset: 0x10) Interrupt Enable Register -------- 

-AT91C_AES_DATRDY          EQU (0x1 <<  0) ;- (AES) DATRDY

-AT91C_AES_ENDRX           EQU (0x1 <<  1) ;- (AES) PDC Read Buffer End

-AT91C_AES_ENDTX           EQU (0x1 <<  2) ;- (AES) PDC Write Buffer End

-AT91C_AES_RXBUFF          EQU (0x1 <<  3) ;- (AES) PDC Read Buffer Full

-AT91C_AES_TXBUFE          EQU (0x1 <<  4) ;- (AES) PDC Write Buffer Empty

-AT91C_AES_URAD            EQU (0x1 <<  8) ;- (AES) Unspecified Register Access Detection

-// - -------- AES_IDR : (AES Offset: 0x14) Interrupt Disable Register -------- 

-// - -------- AES_IMR : (AES Offset: 0x18) Interrupt Mask Register -------- 

-// - -------- AES_ISR : (AES Offset: 0x1c) Interrupt Status Register -------- 

-AT91C_AES_URAT            EQU (0x7 << 12) ;- (AES) Unspecified Register Access Type Status

-AT91C_AES_URAT_IN_DAT_WRITE_DATPROC EQU (0x0 << 12) ;- (AES) Input data register written during the data processing in PDC mode.

-AT91C_AES_URAT_OUT_DAT_READ_DATPROC EQU (0x1 << 12) ;- (AES) Output data register read during the data processing.

-AT91C_AES_URAT_MODEREG_WRITE_DATPROC EQU (0x2 << 12) ;- (AES) Mode register written during the data processing.

-AT91C_AES_URAT_OUT_DAT_READ_SUBKEY EQU (0x3 << 12) ;- (AES) Output data register read during the sub-keys generation.

-AT91C_AES_URAT_MODEREG_WRITE_SUBKEY EQU (0x4 << 12) ;- (AES) Mode register written during the sub-keys generation.

-AT91C_AES_URAT_WO_REG_READ EQU (0x5 << 12) ;- (AES) Write-only register read access.

-

-// - *****************************************************************************

-// -              SOFTWARE API DEFINITION  FOR Triple Data Encryption Standard

-// - *****************************************************************************

-// - -------- TDES_CR : (TDES Offset: 0x0) Control Register -------- 

-AT91C_TDES_START          EQU (0x1 <<  0) ;- (TDES) Starts Processing

-AT91C_TDES_SWRST          EQU (0x1 <<  8) ;- (TDES) Software Reset

-// - -------- TDES_MR : (TDES Offset: 0x4) Mode Register -------- 

-AT91C_TDES_CIPHER         EQU (0x1 <<  0) ;- (TDES) Processing Mode

-AT91C_TDES_TDESMOD        EQU (0x1 <<  1) ;- (TDES) Single or Triple DES Mode

-AT91C_TDES_KEYMOD         EQU (0x1 <<  4) ;- (TDES) Key Mode

-AT91C_TDES_SMOD           EQU (0x3 <<  8) ;- (TDES) Start Mode

-AT91C_TDES_SMOD_MANUAL    EQU (0x0 <<  8) ;- (TDES) Manual Mode: The START bit in register TDES_CR must be set to begin encryption or decryption.

-AT91C_TDES_SMOD_AUTO      EQU (0x1 <<  8) ;- (TDES) Auto Mode: no action in TDES_CR is necessary (cf datasheet).

-AT91C_TDES_SMOD_PDC       EQU (0x2 <<  8) ;- (TDES) PDC Mode (cf datasheet).

-AT91C_TDES_OPMOD          EQU (0x3 << 12) ;- (TDES) Operation Mode

-AT91C_TDES_OPMOD_ECB      EQU (0x0 << 12) ;- (TDES) ECB Electronic CodeBook mode.

-AT91C_TDES_OPMOD_CBC      EQU (0x1 << 12) ;- (TDES) CBC Cipher Block Chaining mode.

-AT91C_TDES_OPMOD_OFB      EQU (0x2 << 12) ;- (TDES) OFB Output Feedback mode.

-AT91C_TDES_OPMOD_CFB      EQU (0x3 << 12) ;- (TDES) CFB Cipher Feedback mode.

-AT91C_TDES_LOD            EQU (0x1 << 15) ;- (TDES) Last Output Data Mode

-AT91C_TDES_CFBS           EQU (0x3 << 16) ;- (TDES) Cipher Feedback Data Size

-AT91C_TDES_CFBS_64_BIT    EQU (0x0 << 16) ;- (TDES) 64-bit.

-AT91C_TDES_CFBS_32_BIT    EQU (0x1 << 16) ;- (TDES) 32-bit.

-AT91C_TDES_CFBS_16_BIT    EQU (0x2 << 16) ;- (TDES) 16-bit.

-AT91C_TDES_CFBS_8_BIT     EQU (0x3 << 16) ;- (TDES) 8-bit.

-// - -------- TDES_IER : (TDES Offset: 0x10) Interrupt Enable Register -------- 

-AT91C_TDES_DATRDY         EQU (0x1 <<  0) ;- (TDES) DATRDY

-AT91C_TDES_ENDRX          EQU (0x1 <<  1) ;- (TDES) PDC Read Buffer End

-AT91C_TDES_ENDTX          EQU (0x1 <<  2) ;- (TDES) PDC Write Buffer End

-AT91C_TDES_RXBUFF         EQU (0x1 <<  3) ;- (TDES) PDC Read Buffer Full

-AT91C_TDES_TXBUFE         EQU (0x1 <<  4) ;- (TDES) PDC Write Buffer Empty

-AT91C_TDES_URAD           EQU (0x1 <<  8) ;- (TDES) Unspecified Register Access Detection

-// - -------- TDES_IDR : (TDES Offset: 0x14) Interrupt Disable Register -------- 

-// - -------- TDES_IMR : (TDES Offset: 0x18) Interrupt Mask Register -------- 

-// - -------- TDES_ISR : (TDES Offset: 0x1c) Interrupt Status Register -------- 

-AT91C_TDES_URAT           EQU (0x3 << 12) ;- (TDES) Unspecified Register Access Type Status

-AT91C_TDES_URAT_IN_DAT_WRITE_DATPROC EQU (0x0 << 12) ;- (TDES) Input data register written during the data processing in PDC mode.

-AT91C_TDES_URAT_OUT_DAT_READ_DATPROC EQU (0x1 << 12) ;- (TDES) Output data register read during the data processing.

-AT91C_TDES_URAT_MODEREG_WRITE_DATPROC EQU (0x2 << 12) ;- (TDES) Mode register written during the data processing.

-AT91C_TDES_URAT_WO_REG_READ EQU (0x3 << 12) ;- (TDES) Write-only register read access.

-

-// - *****************************************************************************

-// -               REGISTER ADDRESS DEFINITION FOR AT91SAM7X256

-// - *****************************************************************************

-// - ========== Register definition for SYS peripheral ========== 

-// - ========== Register definition for AIC peripheral ========== 

-AT91C_AIC_IVR             EQU (0xFFFFF100) ;- (AIC) IRQ Vector Register

-AT91C_AIC_SMR             EQU (0xFFFFF000) ;- (AIC) Source Mode Register

-AT91C_AIC_FVR             EQU (0xFFFFF104) ;- (AIC) FIQ Vector Register

-AT91C_AIC_DCR             EQU (0xFFFFF138) ;- (AIC) Debug Control Register (Protect)

-AT91C_AIC_EOICR           EQU (0xFFFFF130) ;- (AIC) End of Interrupt Command Register

-AT91C_AIC_SVR             EQU (0xFFFFF080) ;- (AIC) Source Vector Register

-AT91C_AIC_FFSR            EQU (0xFFFFF148) ;- (AIC) Fast Forcing Status Register

-AT91C_AIC_ICCR            EQU (0xFFFFF128) ;- (AIC) Interrupt Clear Command Register

-AT91C_AIC_ISR             EQU (0xFFFFF108) ;- (AIC) Interrupt Status Register

-AT91C_AIC_IMR             EQU (0xFFFFF110) ;- (AIC) Interrupt Mask Register

-AT91C_AIC_IPR             EQU (0xFFFFF10C) ;- (AIC) Interrupt Pending Register

-AT91C_AIC_FFER            EQU (0xFFFFF140) ;- (AIC) Fast Forcing Enable Register

-AT91C_AIC_IECR            EQU (0xFFFFF120) ;- (AIC) Interrupt Enable Command Register

-AT91C_AIC_ISCR            EQU (0xFFFFF12C) ;- (AIC) Interrupt Set Command Register

-AT91C_AIC_FFDR            EQU (0xFFFFF144) ;- (AIC) Fast Forcing Disable Register

-AT91C_AIC_CISR            EQU (0xFFFFF114) ;- (AIC) Core Interrupt Status Register

-AT91C_AIC_IDCR            EQU (0xFFFFF124) ;- (AIC) Interrupt Disable Command Register

-AT91C_AIC_SPU             EQU (0xFFFFF134) ;- (AIC) Spurious Vector Register

-// - ========== Register definition for PDC_DBGU peripheral ========== 

-AT91C_DBGU_TCR            EQU (0xFFFFF30C) ;- (PDC_DBGU) Transmit Counter Register

-AT91C_DBGU_RNPR           EQU (0xFFFFF310) ;- (PDC_DBGU) Receive Next Pointer Register

-AT91C_DBGU_TNPR           EQU (0xFFFFF318) ;- (PDC_DBGU) Transmit Next Pointer Register

-AT91C_DBGU_TPR            EQU (0xFFFFF308) ;- (PDC_DBGU) Transmit Pointer Register

-AT91C_DBGU_RPR            EQU (0xFFFFF300) ;- (PDC_DBGU) Receive Pointer Register

-AT91C_DBGU_RCR            EQU (0xFFFFF304) ;- (PDC_DBGU) Receive Counter Register

-AT91C_DBGU_RNCR           EQU (0xFFFFF314) ;- (PDC_DBGU) Receive Next Counter Register

-AT91C_DBGU_PTCR           EQU (0xFFFFF320) ;- (PDC_DBGU) PDC Transfer Control Register

-AT91C_DBGU_PTSR           EQU (0xFFFFF324) ;- (PDC_DBGU) PDC Transfer Status Register

-AT91C_DBGU_TNCR           EQU (0xFFFFF31C) ;- (PDC_DBGU) Transmit Next Counter Register

-// - ========== Register definition for DBGU peripheral ========== 

-AT91C_DBGU_EXID           EQU (0xFFFFF244) ;- (DBGU) Chip ID Extension Register

-AT91C_DBGU_BRGR           EQU (0xFFFFF220) ;- (DBGU) Baud Rate Generator Register

-AT91C_DBGU_IDR            EQU (0xFFFFF20C) ;- (DBGU) Interrupt Disable Register

-AT91C_DBGU_CSR            EQU (0xFFFFF214) ;- (DBGU) Channel Status Register

-AT91C_DBGU_CIDR           EQU (0xFFFFF240) ;- (DBGU) Chip ID Register

-AT91C_DBGU_MR             EQU (0xFFFFF204) ;- (DBGU) Mode Register

-AT91C_DBGU_IMR            EQU (0xFFFFF210) ;- (DBGU) Interrupt Mask Register

-AT91C_DBGU_CR             EQU (0xFFFFF200) ;- (DBGU) Control Register

-AT91C_DBGU_FNTR           EQU (0xFFFFF248) ;- (DBGU) Force NTRST Register

-AT91C_DBGU_THR            EQU (0xFFFFF21C) ;- (DBGU) Transmitter Holding Register

-AT91C_DBGU_RHR            EQU (0xFFFFF218) ;- (DBGU) Receiver Holding Register

-AT91C_DBGU_IER            EQU (0xFFFFF208) ;- (DBGU) Interrupt Enable Register

-// - ========== Register definition for PIOA peripheral ========== 

-AT91C_PIOA_ODR            EQU (0xFFFFF414) ;- (PIOA) Output Disable Registerr

-AT91C_PIOA_SODR           EQU (0xFFFFF430) ;- (PIOA) Set Output Data Register

-AT91C_PIOA_ISR            EQU (0xFFFFF44C) ;- (PIOA) Interrupt Status Register

-AT91C_PIOA_ABSR           EQU (0xFFFFF478) ;- (PIOA) AB Select Status Register

-AT91C_PIOA_IER            EQU (0xFFFFF440) ;- (PIOA) Interrupt Enable Register

-AT91C_PIOA_PPUDR          EQU (0xFFFFF460) ;- (PIOA) Pull-up Disable Register

-AT91C_PIOA_IMR            EQU (0xFFFFF448) ;- (PIOA) Interrupt Mask Register

-AT91C_PIOA_PER            EQU (0xFFFFF400) ;- (PIOA) PIO Enable Register

-AT91C_PIOA_IFDR           EQU (0xFFFFF424) ;- (PIOA) Input Filter Disable Register

-AT91C_PIOA_OWDR           EQU (0xFFFFF4A4) ;- (PIOA) Output Write Disable Register

-AT91C_PIOA_MDSR           EQU (0xFFFFF458) ;- (PIOA) Multi-driver Status Register

-AT91C_PIOA_IDR            EQU (0xFFFFF444) ;- (PIOA) Interrupt Disable Register

-AT91C_PIOA_ODSR           EQU (0xFFFFF438) ;- (PIOA) Output Data Status Register

-AT91C_PIOA_PPUSR          EQU (0xFFFFF468) ;- (PIOA) Pull-up Status Register

-AT91C_PIOA_OWSR           EQU (0xFFFFF4A8) ;- (PIOA) Output Write Status Register

-AT91C_PIOA_BSR            EQU (0xFFFFF474) ;- (PIOA) Select B Register

-AT91C_PIOA_OWER           EQU (0xFFFFF4A0) ;- (PIOA) Output Write Enable Register

-AT91C_PIOA_IFER           EQU (0xFFFFF420) ;- (PIOA) Input Filter Enable Register

-AT91C_PIOA_PDSR           EQU (0xFFFFF43C) ;- (PIOA) Pin Data Status Register

-AT91C_PIOA_PPUER          EQU (0xFFFFF464) ;- (PIOA) Pull-up Enable Register

-AT91C_PIOA_OSR            EQU (0xFFFFF418) ;- (PIOA) Output Status Register

-AT91C_PIOA_ASR            EQU (0xFFFFF470) ;- (PIOA) Select A Register

-AT91C_PIOA_MDDR           EQU (0xFFFFF454) ;- (PIOA) Multi-driver Disable Register

-AT91C_PIOA_CODR           EQU (0xFFFFF434) ;- (PIOA) Clear Output Data Register

-AT91C_PIOA_MDER           EQU (0xFFFFF450) ;- (PIOA) Multi-driver Enable Register

-AT91C_PIOA_PDR            EQU (0xFFFFF404) ;- (PIOA) PIO Disable Register

-AT91C_PIOA_IFSR           EQU (0xFFFFF428) ;- (PIOA) Input Filter Status Register

-AT91C_PIOA_OER            EQU (0xFFFFF410) ;- (PIOA) Output Enable Register

-AT91C_PIOA_PSR            EQU (0xFFFFF408) ;- (PIOA) PIO Status Register

-// - ========== Register definition for PIOB peripheral ========== 

-AT91C_PIOB_OWDR           EQU (0xFFFFF6A4) ;- (PIOB) Output Write Disable Register

-AT91C_PIOB_MDER           EQU (0xFFFFF650) ;- (PIOB) Multi-driver Enable Register

-AT91C_PIOB_PPUSR          EQU (0xFFFFF668) ;- (PIOB) Pull-up Status Register

-AT91C_PIOB_IMR            EQU (0xFFFFF648) ;- (PIOB) Interrupt Mask Register

-AT91C_PIOB_ASR            EQU (0xFFFFF670) ;- (PIOB) Select A Register

-AT91C_PIOB_PPUDR          EQU (0xFFFFF660) ;- (PIOB) Pull-up Disable Register

-AT91C_PIOB_PSR            EQU (0xFFFFF608) ;- (PIOB) PIO Status Register

-AT91C_PIOB_IER            EQU (0xFFFFF640) ;- (PIOB) Interrupt Enable Register

-AT91C_PIOB_CODR           EQU (0xFFFFF634) ;- (PIOB) Clear Output Data Register

-AT91C_PIOB_OWER           EQU (0xFFFFF6A0) ;- (PIOB) Output Write Enable Register

-AT91C_PIOB_ABSR           EQU (0xFFFFF678) ;- (PIOB) AB Select Status Register

-AT91C_PIOB_IFDR           EQU (0xFFFFF624) ;- (PIOB) Input Filter Disable Register

-AT91C_PIOB_PDSR           EQU (0xFFFFF63C) ;- (PIOB) Pin Data Status Register

-AT91C_PIOB_IDR            EQU (0xFFFFF644) ;- (PIOB) Interrupt Disable Register

-AT91C_PIOB_OWSR           EQU (0xFFFFF6A8) ;- (PIOB) Output Write Status Register

-AT91C_PIOB_PDR            EQU (0xFFFFF604) ;- (PIOB) PIO Disable Register

-AT91C_PIOB_ODR            EQU (0xFFFFF614) ;- (PIOB) Output Disable Registerr

-AT91C_PIOB_IFSR           EQU (0xFFFFF628) ;- (PIOB) Input Filter Status Register

-AT91C_PIOB_PPUER          EQU (0xFFFFF664) ;- (PIOB) Pull-up Enable Register

-AT91C_PIOB_SODR           EQU (0xFFFFF630) ;- (PIOB) Set Output Data Register

-AT91C_PIOB_ISR            EQU (0xFFFFF64C) ;- (PIOB) Interrupt Status Register

-AT91C_PIOB_ODSR           EQU (0xFFFFF638) ;- (PIOB) Output Data Status Register

-AT91C_PIOB_OSR            EQU (0xFFFFF618) ;- (PIOB) Output Status Register

-AT91C_PIOB_MDSR           EQU (0xFFFFF658) ;- (PIOB) Multi-driver Status Register

-AT91C_PIOB_IFER           EQU (0xFFFFF620) ;- (PIOB) Input Filter Enable Register

-AT91C_PIOB_BSR            EQU (0xFFFFF674) ;- (PIOB) Select B Register

-AT91C_PIOB_MDDR           EQU (0xFFFFF654) ;- (PIOB) Multi-driver Disable Register

-AT91C_PIOB_OER            EQU (0xFFFFF610) ;- (PIOB) Output Enable Register

-AT91C_PIOB_PER            EQU (0xFFFFF600) ;- (PIOB) PIO Enable Register

-// - ========== Register definition for CKGR peripheral ========== 

-AT91C_CKGR_MOR            EQU (0xFFFFFC20) ;- (CKGR) Main Oscillator Register

-AT91C_CKGR_PLLR           EQU (0xFFFFFC2C) ;- (CKGR) PLL Register

-AT91C_CKGR_MCFR           EQU (0xFFFFFC24) ;- (CKGR) Main Clock  Frequency Register

-// - ========== Register definition for PMC peripheral ========== 

-AT91C_PMC_IDR             EQU (0xFFFFFC64) ;- (PMC) Interrupt Disable Register

-AT91C_PMC_MOR             EQU (0xFFFFFC20) ;- (PMC) Main Oscillator Register

-AT91C_PMC_PLLR            EQU (0xFFFFFC2C) ;- (PMC) PLL Register

-AT91C_PMC_PCER            EQU (0xFFFFFC10) ;- (PMC) Peripheral Clock Enable Register

-AT91C_PMC_PCKR            EQU (0xFFFFFC40) ;- (PMC) Programmable Clock Register

-AT91C_PMC_MCKR            EQU (0xFFFFFC30) ;- (PMC) Master Clock Register

-AT91C_PMC_SCDR            EQU (0xFFFFFC04) ;- (PMC) System Clock Disable Register

-AT91C_PMC_PCDR            EQU (0xFFFFFC14) ;- (PMC) Peripheral Clock Disable Register

-AT91C_PMC_SCSR            EQU (0xFFFFFC08) ;- (PMC) System Clock Status Register

-AT91C_PMC_PCSR            EQU (0xFFFFFC18) ;- (PMC) Peripheral Clock Status Register

-AT91C_PMC_MCFR            EQU (0xFFFFFC24) ;- (PMC) Main Clock  Frequency Register

-AT91C_PMC_SCER            EQU (0xFFFFFC00) ;- (PMC) System Clock Enable Register

-AT91C_PMC_IMR             EQU (0xFFFFFC6C) ;- (PMC) Interrupt Mask Register

-AT91C_PMC_IER             EQU (0xFFFFFC60) ;- (PMC) Interrupt Enable Register

-AT91C_PMC_SR              EQU (0xFFFFFC68) ;- (PMC) Status Register

-// - ========== Register definition for RSTC peripheral ========== 

-AT91C_RSTC_RCR            EQU (0xFFFFFD00) ;- (RSTC) Reset Control Register

-AT91C_RSTC_RMR            EQU (0xFFFFFD08) ;- (RSTC) Reset Mode Register

-AT91C_RSTC_RSR            EQU (0xFFFFFD04) ;- (RSTC) Reset Status Register

-// - ========== Register definition for RTTC peripheral ========== 

-AT91C_RTTC_RTSR           EQU (0xFFFFFD2C) ;- (RTTC) Real-time Status Register

-AT91C_RTTC_RTMR           EQU (0xFFFFFD20) ;- (RTTC) Real-time Mode Register

-AT91C_RTTC_RTVR           EQU (0xFFFFFD28) ;- (RTTC) Real-time Value Register

-AT91C_RTTC_RTAR           EQU (0xFFFFFD24) ;- (RTTC) Real-time Alarm Register

-// - ========== Register definition for PITC peripheral ========== 

-AT91C_PITC_PIVR           EQU (0xFFFFFD38) ;- (PITC) Period Interval Value Register

-AT91C_PITC_PISR           EQU (0xFFFFFD34) ;- (PITC) Period Interval Status Register

-AT91C_PITC_PIIR           EQU (0xFFFFFD3C) ;- (PITC) Period Interval Image Register

-AT91C_PITC_PIMR           EQU (0xFFFFFD30) ;- (PITC) Period Interval Mode Register

-// - ========== Register definition for WDTC peripheral ========== 

-AT91C_WDTC_WDCR           EQU (0xFFFFFD40) ;- (WDTC) Watchdog Control Register

-AT91C_WDTC_WDSR           EQU (0xFFFFFD48) ;- (WDTC) Watchdog Status Register

-AT91C_WDTC_WDMR           EQU (0xFFFFFD44) ;- (WDTC) Watchdog Mode Register

-// - ========== Register definition for VREG peripheral ========== 

-AT91C_VREG_MR             EQU (0xFFFFFD60) ;- (VREG) Voltage Regulator Mode Register

-// - ========== Register definition for MC peripheral ========== 

-AT91C_MC_ASR              EQU (0xFFFFFF04) ;- (MC) MC Abort Status Register

-AT91C_MC_RCR              EQU (0xFFFFFF00) ;- (MC) MC Remap Control Register

-AT91C_MC_FCR              EQU (0xFFFFFF64) ;- (MC) MC Flash Command Register

-AT91C_MC_AASR             EQU (0xFFFFFF08) ;- (MC) MC Abort Address Status Register

-AT91C_MC_FSR              EQU (0xFFFFFF68) ;- (MC) MC Flash Status Register

-AT91C_MC_FMR              EQU (0xFFFFFF60) ;- (MC) MC Flash Mode Register

-// - ========== Register definition for PDC_SPI1 peripheral ========== 

-AT91C_SPI1_PTCR           EQU (0xFFFE4120) ;- (PDC_SPI1) PDC Transfer Control Register

-AT91C_SPI1_RPR            EQU (0xFFFE4100) ;- (PDC_SPI1) Receive Pointer Register

-AT91C_SPI1_TNCR           EQU (0xFFFE411C) ;- (PDC_SPI1) Transmit Next Counter Register

-AT91C_SPI1_TPR            EQU (0xFFFE4108) ;- (PDC_SPI1) Transmit Pointer Register

-AT91C_SPI1_TNPR           EQU (0xFFFE4118) ;- (PDC_SPI1) Transmit Next Pointer Register

-AT91C_SPI1_TCR            EQU (0xFFFE410C) ;- (PDC_SPI1) Transmit Counter Register

-AT91C_SPI1_RCR            EQU (0xFFFE4104) ;- (PDC_SPI1) Receive Counter Register

-AT91C_SPI1_RNPR           EQU (0xFFFE4110) ;- (PDC_SPI1) Receive Next Pointer Register

-AT91C_SPI1_RNCR           EQU (0xFFFE4114) ;- (PDC_SPI1) Receive Next Counter Register

-AT91C_SPI1_PTSR           EQU (0xFFFE4124) ;- (PDC_SPI1) PDC Transfer Status Register

-// - ========== Register definition for SPI1 peripheral ========== 

-AT91C_SPI1_IMR            EQU (0xFFFE401C) ;- (SPI1) Interrupt Mask Register

-AT91C_SPI1_IER            EQU (0xFFFE4014) ;- (SPI1) Interrupt Enable Register

-AT91C_SPI1_MR             EQU (0xFFFE4004) ;- (SPI1) Mode Register

-AT91C_SPI1_RDR            EQU (0xFFFE4008) ;- (SPI1) Receive Data Register

-AT91C_SPI1_IDR            EQU (0xFFFE4018) ;- (SPI1) Interrupt Disable Register

-AT91C_SPI1_SR             EQU (0xFFFE4010) ;- (SPI1) Status Register

-AT91C_SPI1_TDR            EQU (0xFFFE400C) ;- (SPI1) Transmit Data Register

-AT91C_SPI1_CR             EQU (0xFFFE4000) ;- (SPI1) Control Register

-AT91C_SPI1_CSR            EQU (0xFFFE4030) ;- (SPI1) Chip Select Register

-// - ========== Register definition for PDC_SPI0 peripheral ========== 

-AT91C_SPI0_PTCR           EQU (0xFFFE0120) ;- (PDC_SPI0) PDC Transfer Control Register

-AT91C_SPI0_TPR            EQU (0xFFFE0108) ;- (PDC_SPI0) Transmit Pointer Register

-AT91C_SPI0_TCR            EQU (0xFFFE010C) ;- (PDC_SPI0) Transmit Counter Register

-AT91C_SPI0_RCR            EQU (0xFFFE0104) ;- (PDC_SPI0) Receive Counter Register

-AT91C_SPI0_PTSR           EQU (0xFFFE0124) ;- (PDC_SPI0) PDC Transfer Status Register

-AT91C_SPI0_RNPR           EQU (0xFFFE0110) ;- (PDC_SPI0) Receive Next Pointer Register

-AT91C_SPI0_RPR            EQU (0xFFFE0100) ;- (PDC_SPI0) Receive Pointer Register

-AT91C_SPI0_TNCR           EQU (0xFFFE011C) ;- (PDC_SPI0) Transmit Next Counter Register

-AT91C_SPI0_RNCR           EQU (0xFFFE0114) ;- (PDC_SPI0) Receive Next Counter Register

-AT91C_SPI0_TNPR           EQU (0xFFFE0118) ;- (PDC_SPI0) Transmit Next Pointer Register

-// - ========== Register definition for SPI0 peripheral ========== 

-AT91C_SPI0_IER            EQU (0xFFFE0014) ;- (SPI0) Interrupt Enable Register

-AT91C_SPI0_SR             EQU (0xFFFE0010) ;- (SPI0) Status Register

-AT91C_SPI0_IDR            EQU (0xFFFE0018) ;- (SPI0) Interrupt Disable Register

-AT91C_SPI0_CR             EQU (0xFFFE0000) ;- (SPI0) Control Register

-AT91C_SPI0_MR             EQU (0xFFFE0004) ;- (SPI0) Mode Register

-AT91C_SPI0_IMR            EQU (0xFFFE001C) ;- (SPI0) Interrupt Mask Register

-AT91C_SPI0_TDR            EQU (0xFFFE000C) ;- (SPI0) Transmit Data Register

-AT91C_SPI0_RDR            EQU (0xFFFE0008) ;- (SPI0) Receive Data Register

-AT91C_SPI0_CSR            EQU (0xFFFE0030) ;- (SPI0) Chip Select Register

-// - ========== Register definition for PDC_US1 peripheral ========== 

-AT91C_US1_RNCR            EQU (0xFFFC4114) ;- (PDC_US1) Receive Next Counter Register

-AT91C_US1_PTCR            EQU (0xFFFC4120) ;- (PDC_US1) PDC Transfer Control Register

-AT91C_US1_TCR             EQU (0xFFFC410C) ;- (PDC_US1) Transmit Counter Register

-AT91C_US1_PTSR            EQU (0xFFFC4124) ;- (PDC_US1) PDC Transfer Status Register

-AT91C_US1_TNPR            EQU (0xFFFC4118) ;- (PDC_US1) Transmit Next Pointer Register

-AT91C_US1_RCR             EQU (0xFFFC4104) ;- (PDC_US1) Receive Counter Register

-AT91C_US1_RNPR            EQU (0xFFFC4110) ;- (PDC_US1) Receive Next Pointer Register

-AT91C_US1_RPR             EQU (0xFFFC4100) ;- (PDC_US1) Receive Pointer Register

-AT91C_US1_TNCR            EQU (0xFFFC411C) ;- (PDC_US1) Transmit Next Counter Register

-AT91C_US1_TPR             EQU (0xFFFC4108) ;- (PDC_US1) Transmit Pointer Register

-// - ========== Register definition for US1 peripheral ========== 

-AT91C_US1_IF              EQU (0xFFFC404C) ;- (US1) IRDA_FILTER Register

-AT91C_US1_NER             EQU (0xFFFC4044) ;- (US1) Nb Errors Register

-AT91C_US1_RTOR            EQU (0xFFFC4024) ;- (US1) Receiver Time-out Register

-AT91C_US1_CSR             EQU (0xFFFC4014) ;- (US1) Channel Status Register

-AT91C_US1_IDR             EQU (0xFFFC400C) ;- (US1) Interrupt Disable Register

-AT91C_US1_IER             EQU (0xFFFC4008) ;- (US1) Interrupt Enable Register

-AT91C_US1_THR             EQU (0xFFFC401C) ;- (US1) Transmitter Holding Register

-AT91C_US1_TTGR            EQU (0xFFFC4028) ;- (US1) Transmitter Time-guard Register

-AT91C_US1_RHR             EQU (0xFFFC4018) ;- (US1) Receiver Holding Register

-AT91C_US1_BRGR            EQU (0xFFFC4020) ;- (US1) Baud Rate Generator Register

-AT91C_US1_IMR             EQU (0xFFFC4010) ;- (US1) Interrupt Mask Register

-AT91C_US1_FIDI            EQU (0xFFFC4040) ;- (US1) FI_DI_Ratio Register

-AT91C_US1_CR              EQU (0xFFFC4000) ;- (US1) Control Register

-AT91C_US1_MR              EQU (0xFFFC4004) ;- (US1) Mode Register

-// - ========== Register definition for PDC_US0 peripheral ========== 

-AT91C_US0_TNPR            EQU (0xFFFC0118) ;- (PDC_US0) Transmit Next Pointer Register

-AT91C_US0_RNPR            EQU (0xFFFC0110) ;- (PDC_US0) Receive Next Pointer Register

-AT91C_US0_TCR             EQU (0xFFFC010C) ;- (PDC_US0) Transmit Counter Register

-AT91C_US0_PTCR            EQU (0xFFFC0120) ;- (PDC_US0) PDC Transfer Control Register

-AT91C_US0_PTSR            EQU (0xFFFC0124) ;- (PDC_US0) PDC Transfer Status Register

-AT91C_US0_TNCR            EQU (0xFFFC011C) ;- (PDC_US0) Transmit Next Counter Register

-AT91C_US0_TPR             EQU (0xFFFC0108) ;- (PDC_US0) Transmit Pointer Register

-AT91C_US0_RCR             EQU (0xFFFC0104) ;- (PDC_US0) Receive Counter Register

-AT91C_US0_RPR             EQU (0xFFFC0100) ;- (PDC_US0) Receive Pointer Register

-AT91C_US0_RNCR            EQU (0xFFFC0114) ;- (PDC_US0) Receive Next Counter Register

-// - ========== Register definition for US0 peripheral ========== 

-AT91C_US0_BRGR            EQU (0xFFFC0020) ;- (US0) Baud Rate Generator Register

-AT91C_US0_NER             EQU (0xFFFC0044) ;- (US0) Nb Errors Register

-AT91C_US0_CR              EQU (0xFFFC0000) ;- (US0) Control Register

-AT91C_US0_IMR             EQU (0xFFFC0010) ;- (US0) Interrupt Mask Register

-AT91C_US0_FIDI            EQU (0xFFFC0040) ;- (US0) FI_DI_Ratio Register

-AT91C_US0_TTGR            EQU (0xFFFC0028) ;- (US0) Transmitter Time-guard Register

-AT91C_US0_MR              EQU (0xFFFC0004) ;- (US0) Mode Register

-AT91C_US0_RTOR            EQU (0xFFFC0024) ;- (US0) Receiver Time-out Register

-AT91C_US0_CSR             EQU (0xFFFC0014) ;- (US0) Channel Status Register

-AT91C_US0_RHR             EQU (0xFFFC0018) ;- (US0) Receiver Holding Register

-AT91C_US0_IDR             EQU (0xFFFC000C) ;- (US0) Interrupt Disable Register

-AT91C_US0_THR             EQU (0xFFFC001C) ;- (US0) Transmitter Holding Register

-AT91C_US0_IF              EQU (0xFFFC004C) ;- (US0) IRDA_FILTER Register

-AT91C_US0_IER             EQU (0xFFFC0008) ;- (US0) Interrupt Enable Register

-// - ========== Register definition for PDC_SSC peripheral ========== 

-AT91C_SSC_TNCR            EQU (0xFFFD411C) ;- (PDC_SSC) Transmit Next Counter Register

-AT91C_SSC_RPR             EQU (0xFFFD4100) ;- (PDC_SSC) Receive Pointer Register

-AT91C_SSC_RNCR            EQU (0xFFFD4114) ;- (PDC_SSC) Receive Next Counter Register

-AT91C_SSC_TPR             EQU (0xFFFD4108) ;- (PDC_SSC) Transmit Pointer Register

-AT91C_SSC_PTCR            EQU (0xFFFD4120) ;- (PDC_SSC) PDC Transfer Control Register

-AT91C_SSC_TCR             EQU (0xFFFD410C) ;- (PDC_SSC) Transmit Counter Register

-AT91C_SSC_RCR             EQU (0xFFFD4104) ;- (PDC_SSC) Receive Counter Register

-AT91C_SSC_RNPR            EQU (0xFFFD4110) ;- (PDC_SSC) Receive Next Pointer Register

-AT91C_SSC_TNPR            EQU (0xFFFD4118) ;- (PDC_SSC) Transmit Next Pointer Register

-AT91C_SSC_PTSR            EQU (0xFFFD4124) ;- (PDC_SSC) PDC Transfer Status Register

-// - ========== Register definition for SSC peripheral ========== 

-AT91C_SSC_RHR             EQU (0xFFFD4020) ;- (SSC) Receive Holding Register

-AT91C_SSC_RSHR            EQU (0xFFFD4030) ;- (SSC) Receive Sync Holding Register

-AT91C_SSC_TFMR            EQU (0xFFFD401C) ;- (SSC) Transmit Frame Mode Register

-AT91C_SSC_IDR             EQU (0xFFFD4048) ;- (SSC) Interrupt Disable Register

-AT91C_SSC_THR             EQU (0xFFFD4024) ;- (SSC) Transmit Holding Register

-AT91C_SSC_RCMR            EQU (0xFFFD4010) ;- (SSC) Receive Clock ModeRegister

-AT91C_SSC_IER             EQU (0xFFFD4044) ;- (SSC) Interrupt Enable Register

-AT91C_SSC_TSHR            EQU (0xFFFD4034) ;- (SSC) Transmit Sync Holding Register

-AT91C_SSC_SR              EQU (0xFFFD4040) ;- (SSC) Status Register

-AT91C_SSC_CMR             EQU (0xFFFD4004) ;- (SSC) Clock Mode Register

-AT91C_SSC_TCMR            EQU (0xFFFD4018) ;- (SSC) Transmit Clock Mode Register

-AT91C_SSC_CR              EQU (0xFFFD4000) ;- (SSC) Control Register

-AT91C_SSC_IMR             EQU (0xFFFD404C) ;- (SSC) Interrupt Mask Register

-AT91C_SSC_RFMR            EQU (0xFFFD4014) ;- (SSC) Receive Frame Mode Register

-// - ========== Register definition for TWI peripheral ========== 

-AT91C_TWI_IER             EQU (0xFFFB8024) ;- (TWI) Interrupt Enable Register

-AT91C_TWI_CR              EQU (0xFFFB8000) ;- (TWI) Control Register

-AT91C_TWI_SR              EQU (0xFFFB8020) ;- (TWI) Status Register

-AT91C_TWI_IMR             EQU (0xFFFB802C) ;- (TWI) Interrupt Mask Register

-AT91C_TWI_THR             EQU (0xFFFB8034) ;- (TWI) Transmit Holding Register

-AT91C_TWI_IDR             EQU (0xFFFB8028) ;- (TWI) Interrupt Disable Register

-AT91C_TWI_IADR            EQU (0xFFFB800C) ;- (TWI) Internal Address Register

-AT91C_TWI_MMR             EQU (0xFFFB8004) ;- (TWI) Master Mode Register

-AT91C_TWI_CWGR            EQU (0xFFFB8010) ;- (TWI) Clock Waveform Generator Register

-AT91C_TWI_RHR             EQU (0xFFFB8030) ;- (TWI) Receive Holding Register

-// - ========== Register definition for PWMC_CH3 peripheral ========== 

-AT91C_PWMC_CH3_CUPDR      EQU (0xFFFCC270) ;- (PWMC_CH3) Channel Update Register

-AT91C_PWMC_CH3_Reserved   EQU (0xFFFCC274) ;- (PWMC_CH3) Reserved

-AT91C_PWMC_CH3_CPRDR      EQU (0xFFFCC268) ;- (PWMC_CH3) Channel Period Register

-AT91C_PWMC_CH3_CDTYR      EQU (0xFFFCC264) ;- (PWMC_CH3) Channel Duty Cycle Register

-AT91C_PWMC_CH3_CCNTR      EQU (0xFFFCC26C) ;- (PWMC_CH3) Channel Counter Register

-AT91C_PWMC_CH3_CMR        EQU (0xFFFCC260) ;- (PWMC_CH3) Channel Mode Register

-// - ========== Register definition for PWMC_CH2 peripheral ========== 

-AT91C_PWMC_CH2_Reserved   EQU (0xFFFCC254) ;- (PWMC_CH2) Reserved

-AT91C_PWMC_CH2_CMR        EQU (0xFFFCC240) ;- (PWMC_CH2) Channel Mode Register

-AT91C_PWMC_CH2_CCNTR      EQU (0xFFFCC24C) ;- (PWMC_CH2) Channel Counter Register

-AT91C_PWMC_CH2_CPRDR      EQU (0xFFFCC248) ;- (PWMC_CH2) Channel Period Register

-AT91C_PWMC_CH2_CUPDR      EQU (0xFFFCC250) ;- (PWMC_CH2) Channel Update Register

-AT91C_PWMC_CH2_CDTYR      EQU (0xFFFCC244) ;- (PWMC_CH2) Channel Duty Cycle Register

-// - ========== Register definition for PWMC_CH1 peripheral ========== 

-AT91C_PWMC_CH1_Reserved   EQU (0xFFFCC234) ;- (PWMC_CH1) Reserved

-AT91C_PWMC_CH1_CUPDR      EQU (0xFFFCC230) ;- (PWMC_CH1) Channel Update Register

-AT91C_PWMC_CH1_CPRDR      EQU (0xFFFCC228) ;- (PWMC_CH1) Channel Period Register

-AT91C_PWMC_CH1_CCNTR      EQU (0xFFFCC22C) ;- (PWMC_CH1) Channel Counter Register

-AT91C_PWMC_CH1_CDTYR      EQU (0xFFFCC224) ;- (PWMC_CH1) Channel Duty Cycle Register

-AT91C_PWMC_CH1_CMR        EQU (0xFFFCC220) ;- (PWMC_CH1) Channel Mode Register

-// - ========== Register definition for PWMC_CH0 peripheral ========== 

-AT91C_PWMC_CH0_Reserved   EQU (0xFFFCC214) ;- (PWMC_CH0) Reserved

-AT91C_PWMC_CH0_CPRDR      EQU (0xFFFCC208) ;- (PWMC_CH0) Channel Period Register

-AT91C_PWMC_CH0_CDTYR      EQU (0xFFFCC204) ;- (PWMC_CH0) Channel Duty Cycle Register

-AT91C_PWMC_CH0_CMR        EQU (0xFFFCC200) ;- (PWMC_CH0) Channel Mode Register

-AT91C_PWMC_CH0_CUPDR      EQU (0xFFFCC210) ;- (PWMC_CH0) Channel Update Register

-AT91C_PWMC_CH0_CCNTR      EQU (0xFFFCC20C) ;- (PWMC_CH0) Channel Counter Register

-// - ========== Register definition for PWMC peripheral ========== 

-AT91C_PWMC_IDR            EQU (0xFFFCC014) ;- (PWMC) PWMC Interrupt Disable Register

-AT91C_PWMC_DIS            EQU (0xFFFCC008) ;- (PWMC) PWMC Disable Register

-AT91C_PWMC_IER            EQU (0xFFFCC010) ;- (PWMC) PWMC Interrupt Enable Register

-AT91C_PWMC_VR             EQU (0xFFFCC0FC) ;- (PWMC) PWMC Version Register

-AT91C_PWMC_ISR            EQU (0xFFFCC01C) ;- (PWMC) PWMC Interrupt Status Register

-AT91C_PWMC_SR             EQU (0xFFFCC00C) ;- (PWMC) PWMC Status Register

-AT91C_PWMC_IMR            EQU (0xFFFCC018) ;- (PWMC) PWMC Interrupt Mask Register

-AT91C_PWMC_MR             EQU (0xFFFCC000) ;- (PWMC) PWMC Mode Register

-AT91C_PWMC_ENA            EQU (0xFFFCC004) ;- (PWMC) PWMC Enable Register

-// - ========== Register definition for UDP peripheral ========== 

-AT91C_UDP_IMR             EQU (0xFFFB0018) ;- (UDP) Interrupt Mask Register

-AT91C_UDP_FADDR           EQU (0xFFFB0008) ;- (UDP) Function Address Register

-AT91C_UDP_NUM             EQU (0xFFFB0000) ;- (UDP) Frame Number Register

-AT91C_UDP_FDR             EQU (0xFFFB0050) ;- (UDP) Endpoint FIFO Data Register

-AT91C_UDP_ISR             EQU (0xFFFB001C) ;- (UDP) Interrupt Status Register

-AT91C_UDP_CSR             EQU (0xFFFB0030) ;- (UDP) Endpoint Control and Status Register

-AT91C_UDP_IDR             EQU (0xFFFB0014) ;- (UDP) Interrupt Disable Register

-AT91C_UDP_ICR             EQU (0xFFFB0020) ;- (UDP) Interrupt Clear Register

-AT91C_UDP_RSTEP           EQU (0xFFFB0028) ;- (UDP) Reset Endpoint Register

-AT91C_UDP_TXVC            EQU (0xFFFB0074) ;- (UDP) Transceiver Control Register

-AT91C_UDP_GLBSTATE        EQU (0xFFFB0004) ;- (UDP) Global State Register

-AT91C_UDP_IER             EQU (0xFFFB0010) ;- (UDP) Interrupt Enable Register

-// - ========== Register definition for TC0 peripheral ========== 

-AT91C_TC0_SR              EQU (0xFFFA0020) ;- (TC0) Status Register

-AT91C_TC0_RC              EQU (0xFFFA001C) ;- (TC0) Register C

-AT91C_TC0_RB              EQU (0xFFFA0018) ;- (TC0) Register B

-AT91C_TC0_CCR             EQU (0xFFFA0000) ;- (TC0) Channel Control Register

-AT91C_TC0_CMR             EQU (0xFFFA0004) ;- (TC0) Channel Mode Register (Capture Mode / Waveform Mode)

-AT91C_TC0_IER             EQU (0xFFFA0024) ;- (TC0) Interrupt Enable Register

-AT91C_TC0_RA              EQU (0xFFFA0014) ;- (TC0) Register A

-AT91C_TC0_IDR             EQU (0xFFFA0028) ;- (TC0) Interrupt Disable Register

-AT91C_TC0_CV              EQU (0xFFFA0010) ;- (TC0) Counter Value

-AT91C_TC0_IMR             EQU (0xFFFA002C) ;- (TC0) Interrupt Mask Register

-// - ========== Register definition for TC1 peripheral ========== 

-AT91C_TC1_RB              EQU (0xFFFA0058) ;- (TC1) Register B

-AT91C_TC1_CCR             EQU (0xFFFA0040) ;- (TC1) Channel Control Register

-AT91C_TC1_IER             EQU (0xFFFA0064) ;- (TC1) Interrupt Enable Register

-AT91C_TC1_IDR             EQU (0xFFFA0068) ;- (TC1) Interrupt Disable Register

-AT91C_TC1_SR              EQU (0xFFFA0060) ;- (TC1) Status Register

-AT91C_TC1_CMR             EQU (0xFFFA0044) ;- (TC1) Channel Mode Register (Capture Mode / Waveform Mode)

-AT91C_TC1_RA              EQU (0xFFFA0054) ;- (TC1) Register A

-AT91C_TC1_RC              EQU (0xFFFA005C) ;- (TC1) Register C

-AT91C_TC1_IMR             EQU (0xFFFA006C) ;- (TC1) Interrupt Mask Register

-AT91C_TC1_CV              EQU (0xFFFA0050) ;- (TC1) Counter Value

-// - ========== Register definition for TC2 peripheral ========== 

-AT91C_TC2_CMR             EQU (0xFFFA0084) ;- (TC2) Channel Mode Register (Capture Mode / Waveform Mode)

-AT91C_TC2_CCR             EQU (0xFFFA0080) ;- (TC2) Channel Control Register

-AT91C_TC2_CV              EQU (0xFFFA0090) ;- (TC2) Counter Value

-AT91C_TC2_RA              EQU (0xFFFA0094) ;- (TC2) Register A

-AT91C_TC2_RB              EQU (0xFFFA0098) ;- (TC2) Register B

-AT91C_TC2_IDR             EQU (0xFFFA00A8) ;- (TC2) Interrupt Disable Register

-AT91C_TC2_IMR             EQU (0xFFFA00AC) ;- (TC2) Interrupt Mask Register

-AT91C_TC2_RC              EQU (0xFFFA009C) ;- (TC2) Register C

-AT91C_TC2_IER             EQU (0xFFFA00A4) ;- (TC2) Interrupt Enable Register

-AT91C_TC2_SR              EQU (0xFFFA00A0) ;- (TC2) Status Register

-// - ========== Register definition for TCB peripheral ========== 

-AT91C_TCB_BMR             EQU (0xFFFA00C4) ;- (TCB) TC Block Mode Register

-AT91C_TCB_BCR             EQU (0xFFFA00C0) ;- (TCB) TC Block Control Register

-// - ========== Register definition for CAN_MB0 peripheral ========== 

-AT91C_CAN_MB0_MDL         EQU (0xFFFD0214) ;- (CAN_MB0) MailBox Data Low Register

-AT91C_CAN_MB0_MAM         EQU (0xFFFD0204) ;- (CAN_MB0) MailBox Acceptance Mask Register

-AT91C_CAN_MB0_MCR         EQU (0xFFFD021C) ;- (CAN_MB0) MailBox Control Register

-AT91C_CAN_MB0_MID         EQU (0xFFFD0208) ;- (CAN_MB0) MailBox ID Register

-AT91C_CAN_MB0_MSR         EQU (0xFFFD0210) ;- (CAN_MB0) MailBox Status Register

-AT91C_CAN_MB0_MFID        EQU (0xFFFD020C) ;- (CAN_MB0) MailBox Family ID Register

-AT91C_CAN_MB0_MDH         EQU (0xFFFD0218) ;- (CAN_MB0) MailBox Data High Register

-AT91C_CAN_MB0_MMR         EQU (0xFFFD0200) ;- (CAN_MB0) MailBox Mode Register

-// - ========== Register definition for CAN_MB1 peripheral ========== 

-AT91C_CAN_MB1_MDL         EQU (0xFFFD0234) ;- (CAN_MB1) MailBox Data Low Register

-AT91C_CAN_MB1_MID         EQU (0xFFFD0228) ;- (CAN_MB1) MailBox ID Register

-AT91C_CAN_MB1_MMR         EQU (0xFFFD0220) ;- (CAN_MB1) MailBox Mode Register

-AT91C_CAN_MB1_MSR         EQU (0xFFFD0230) ;- (CAN_MB1) MailBox Status Register

-AT91C_CAN_MB1_MAM         EQU (0xFFFD0224) ;- (CAN_MB1) MailBox Acceptance Mask Register

-AT91C_CAN_MB1_MDH         EQU (0xFFFD0238) ;- (CAN_MB1) MailBox Data High Register

-AT91C_CAN_MB1_MCR         EQU (0xFFFD023C) ;- (CAN_MB1) MailBox Control Register

-AT91C_CAN_MB1_MFID        EQU (0xFFFD022C) ;- (CAN_MB1) MailBox Family ID Register

-// - ========== Register definition for CAN_MB2 peripheral ========== 

-AT91C_CAN_MB2_MCR         EQU (0xFFFD025C) ;- (CAN_MB2) MailBox Control Register

-AT91C_CAN_MB2_MDH         EQU (0xFFFD0258) ;- (CAN_MB2) MailBox Data High Register

-AT91C_CAN_MB2_MID         EQU (0xFFFD0248) ;- (CAN_MB2) MailBox ID Register

-AT91C_CAN_MB2_MDL         EQU (0xFFFD0254) ;- (CAN_MB2) MailBox Data Low Register

-AT91C_CAN_MB2_MMR         EQU (0xFFFD0240) ;- (CAN_MB2) MailBox Mode Register

-AT91C_CAN_MB2_MAM         EQU (0xFFFD0244) ;- (CAN_MB2) MailBox Acceptance Mask Register

-AT91C_CAN_MB2_MFID        EQU (0xFFFD024C) ;- (CAN_MB2) MailBox Family ID Register

-AT91C_CAN_MB2_MSR         EQU (0xFFFD0250) ;- (CAN_MB2) MailBox Status Register

-// - ========== Register definition for CAN_MB3 peripheral ========== 

-AT91C_CAN_MB3_MFID        EQU (0xFFFD026C) ;- (CAN_MB3) MailBox Family ID Register

-AT91C_CAN_MB3_MAM         EQU (0xFFFD0264) ;- (CAN_MB3) MailBox Acceptance Mask Register

-AT91C_CAN_MB3_MID         EQU (0xFFFD0268) ;- (CAN_MB3) MailBox ID Register

-AT91C_CAN_MB3_MCR         EQU (0xFFFD027C) ;- (CAN_MB3) MailBox Control Register

-AT91C_CAN_MB3_MMR         EQU (0xFFFD0260) ;- (CAN_MB3) MailBox Mode Register

-AT91C_CAN_MB3_MSR         EQU (0xFFFD0270) ;- (CAN_MB3) MailBox Status Register

-AT91C_CAN_MB3_MDL         EQU (0xFFFD0274) ;- (CAN_MB3) MailBox Data Low Register

-AT91C_CAN_MB3_MDH         EQU (0xFFFD0278) ;- (CAN_MB3) MailBox Data High Register

-// - ========== Register definition for CAN_MB4 peripheral ========== 

-AT91C_CAN_MB4_MID         EQU (0xFFFD0288) ;- (CAN_MB4) MailBox ID Register

-AT91C_CAN_MB4_MMR         EQU (0xFFFD0280) ;- (CAN_MB4) MailBox Mode Register

-AT91C_CAN_MB4_MDH         EQU (0xFFFD0298) ;- (CAN_MB4) MailBox Data High Register

-AT91C_CAN_MB4_MFID        EQU (0xFFFD028C) ;- (CAN_MB4) MailBox Family ID Register

-AT91C_CAN_MB4_MSR         EQU (0xFFFD0290) ;- (CAN_MB4) MailBox Status Register

-AT91C_CAN_MB4_MCR         EQU (0xFFFD029C) ;- (CAN_MB4) MailBox Control Register

-AT91C_CAN_MB4_MDL         EQU (0xFFFD0294) ;- (CAN_MB4) MailBox Data Low Register

-AT91C_CAN_MB4_MAM         EQU (0xFFFD0284) ;- (CAN_MB4) MailBox Acceptance Mask Register

-// - ========== Register definition for CAN_MB5 peripheral ========== 

-AT91C_CAN_MB5_MSR         EQU (0xFFFD02B0) ;- (CAN_MB5) MailBox Status Register

-AT91C_CAN_MB5_MCR         EQU (0xFFFD02BC) ;- (CAN_MB5) MailBox Control Register

-AT91C_CAN_MB5_MFID        EQU (0xFFFD02AC) ;- (CAN_MB5) MailBox Family ID Register

-AT91C_CAN_MB5_MDH         EQU (0xFFFD02B8) ;- (CAN_MB5) MailBox Data High Register

-AT91C_CAN_MB5_MID         EQU (0xFFFD02A8) ;- (CAN_MB5) MailBox ID Register

-AT91C_CAN_MB5_MMR         EQU (0xFFFD02A0) ;- (CAN_MB5) MailBox Mode Register

-AT91C_CAN_MB5_MDL         EQU (0xFFFD02B4) ;- (CAN_MB5) MailBox Data Low Register

-AT91C_CAN_MB5_MAM         EQU (0xFFFD02A4) ;- (CAN_MB5) MailBox Acceptance Mask Register

-// - ========== Register definition for CAN_MB6 peripheral ========== 

-AT91C_CAN_MB6_MFID        EQU (0xFFFD02CC) ;- (CAN_MB6) MailBox Family ID Register

-AT91C_CAN_MB6_MID         EQU (0xFFFD02C8) ;- (CAN_MB6) MailBox ID Register

-AT91C_CAN_MB6_MAM         EQU (0xFFFD02C4) ;- (CAN_MB6) MailBox Acceptance Mask Register

-AT91C_CAN_MB6_MSR         EQU (0xFFFD02D0) ;- (CAN_MB6) MailBox Status Register

-AT91C_CAN_MB6_MDL         EQU (0xFFFD02D4) ;- (CAN_MB6) MailBox Data Low Register

-AT91C_CAN_MB6_MCR         EQU (0xFFFD02DC) ;- (CAN_MB6) MailBox Control Register

-AT91C_CAN_MB6_MDH         EQU (0xFFFD02D8) ;- (CAN_MB6) MailBox Data High Register

-AT91C_CAN_MB6_MMR         EQU (0xFFFD02C0) ;- (CAN_MB6) MailBox Mode Register

-// - ========== Register definition for CAN_MB7 peripheral ========== 

-AT91C_CAN_MB7_MCR         EQU (0xFFFD02FC) ;- (CAN_MB7) MailBox Control Register

-AT91C_CAN_MB7_MDH         EQU (0xFFFD02F8) ;- (CAN_MB7) MailBox Data High Register

-AT91C_CAN_MB7_MFID        EQU (0xFFFD02EC) ;- (CAN_MB7) MailBox Family ID Register

-AT91C_CAN_MB7_MDL         EQU (0xFFFD02F4) ;- (CAN_MB7) MailBox Data Low Register

-AT91C_CAN_MB7_MID         EQU (0xFFFD02E8) ;- (CAN_MB7) MailBox ID Register

-AT91C_CAN_MB7_MMR         EQU (0xFFFD02E0) ;- (CAN_MB7) MailBox Mode Register

-AT91C_CAN_MB7_MAM         EQU (0xFFFD02E4) ;- (CAN_MB7) MailBox Acceptance Mask Register

-AT91C_CAN_MB7_MSR         EQU (0xFFFD02F0) ;- (CAN_MB7) MailBox Status Register

-// - ========== Register definition for CAN peripheral ========== 

-AT91C_CAN_TCR             EQU (0xFFFD0024) ;- (CAN) Transfer Command Register

-AT91C_CAN_IMR             EQU (0xFFFD000C) ;- (CAN) Interrupt Mask Register

-AT91C_CAN_IER             EQU (0xFFFD0004) ;- (CAN) Interrupt Enable Register

-AT91C_CAN_ECR             EQU (0xFFFD0020) ;- (CAN) Error Counter Register

-AT91C_CAN_TIMESTP         EQU (0xFFFD001C) ;- (CAN) Time Stamp Register

-AT91C_CAN_MR              EQU (0xFFFD0000) ;- (CAN) Mode Register

-AT91C_CAN_IDR             EQU (0xFFFD0008) ;- (CAN) Interrupt Disable Register

-AT91C_CAN_ACR             EQU (0xFFFD0028) ;- (CAN) Abort Command Register

-AT91C_CAN_TIM             EQU (0xFFFD0018) ;- (CAN) Timer Register

-AT91C_CAN_SR              EQU (0xFFFD0010) ;- (CAN) Status Register

-AT91C_CAN_BR              EQU (0xFFFD0014) ;- (CAN) Baudrate Register

-AT91C_CAN_VR              EQU (0xFFFD00FC) ;- (CAN) Version Register

-// - ========== Register definition for EMAC peripheral ========== 

-AT91C_EMAC_ISR            EQU (0xFFFDC024) ;- (EMAC) Interrupt Status Register

-AT91C_EMAC_SA4H           EQU (0xFFFDC0B4) ;- (EMAC) Specific Address 4 Top, Last 2 bytes

-AT91C_EMAC_SA1L           EQU (0xFFFDC098) ;- (EMAC) Specific Address 1 Bottom, First 4 bytes

-AT91C_EMAC_ELE            EQU (0xFFFDC078) ;- (EMAC) Excessive Length Errors Register

-AT91C_EMAC_LCOL           EQU (0xFFFDC05C) ;- (EMAC) Late Collision Register

-AT91C_EMAC_RLE            EQU (0xFFFDC088) ;- (EMAC) Receive Length Field Mismatch Register

-AT91C_EMAC_WOL            EQU (0xFFFDC0C4) ;- (EMAC) Wake On LAN Register

-AT91C_EMAC_DTF            EQU (0xFFFDC058) ;- (EMAC) Deferred Transmission Frame Register

-AT91C_EMAC_TUND           EQU (0xFFFDC064) ;- (EMAC) Transmit Underrun Error Register

-AT91C_EMAC_NCR            EQU (0xFFFDC000) ;- (EMAC) Network Control Register

-AT91C_EMAC_SA4L           EQU (0xFFFDC0B0) ;- (EMAC) Specific Address 4 Bottom, First 4 bytes

-AT91C_EMAC_RSR            EQU (0xFFFDC020) ;- (EMAC) Receive Status Register

-AT91C_EMAC_SA3L           EQU (0xFFFDC0A8) ;- (EMAC) Specific Address 3 Bottom, First 4 bytes

-AT91C_EMAC_TSR            EQU (0xFFFDC014) ;- (EMAC) Transmit Status Register

-AT91C_EMAC_IDR            EQU (0xFFFDC02C) ;- (EMAC) Interrupt Disable Register

-AT91C_EMAC_RSE            EQU (0xFFFDC074) ;- (EMAC) Receive Symbol Errors Register

-AT91C_EMAC_ECOL           EQU (0xFFFDC060) ;- (EMAC) Excessive Collision Register

-AT91C_EMAC_TID            EQU (0xFFFDC0B8) ;- (EMAC) Type ID Checking Register

-AT91C_EMAC_HRB            EQU (0xFFFDC090) ;- (EMAC) Hash Address Bottom[31:0]

-AT91C_EMAC_TBQP           EQU (0xFFFDC01C) ;- (EMAC) Transmit Buffer Queue Pointer

-AT91C_EMAC_USRIO          EQU (0xFFFDC0C0) ;- (EMAC) USER Input/Output Register

-AT91C_EMAC_PTR            EQU (0xFFFDC038) ;- (EMAC) Pause Time Register

-AT91C_EMAC_SA2H           EQU (0xFFFDC0A4) ;- (EMAC) Specific Address 2 Top, Last 2 bytes

-AT91C_EMAC_ROV            EQU (0xFFFDC070) ;- (EMAC) Receive Overrun Errors Register

-AT91C_EMAC_ALE            EQU (0xFFFDC054) ;- (EMAC) Alignment Error Register

-AT91C_EMAC_RJA            EQU (0xFFFDC07C) ;- (EMAC) Receive Jabbers Register

-AT91C_EMAC_RBQP           EQU (0xFFFDC018) ;- (EMAC) Receive Buffer Queue Pointer

-AT91C_EMAC_TPF            EQU (0xFFFDC08C) ;- (EMAC) Transmitted Pause Frames Register

-AT91C_EMAC_NCFGR          EQU (0xFFFDC004) ;- (EMAC) Network Configuration Register

-AT91C_EMAC_HRT            EQU (0xFFFDC094) ;- (EMAC) Hash Address Top[63:32]

-AT91C_EMAC_USF            EQU (0xFFFDC080) ;- (EMAC) Undersize Frames Register

-AT91C_EMAC_FCSE           EQU (0xFFFDC050) ;- (EMAC) Frame Check Sequence Error Register

-AT91C_EMAC_TPQ            EQU (0xFFFDC0BC) ;- (EMAC) Transmit Pause Quantum Register

-AT91C_EMAC_MAN            EQU (0xFFFDC034) ;- (EMAC) PHY Maintenance Register

-AT91C_EMAC_FTO            EQU (0xFFFDC040) ;- (EMAC) Frames Transmitted OK Register

-AT91C_EMAC_REV            EQU (0xFFFDC0FC) ;- (EMAC) Revision Register

-AT91C_EMAC_IMR            EQU (0xFFFDC030) ;- (EMAC) Interrupt Mask Register

-AT91C_EMAC_SCF            EQU (0xFFFDC044) ;- (EMAC) Single Collision Frame Register

-AT91C_EMAC_PFR            EQU (0xFFFDC03C) ;- (EMAC) Pause Frames received Register

-AT91C_EMAC_MCF            EQU (0xFFFDC048) ;- (EMAC) Multiple Collision Frame Register

-AT91C_EMAC_NSR            EQU (0xFFFDC008) ;- (EMAC) Network Status Register

-AT91C_EMAC_SA2L           EQU (0xFFFDC0A0) ;- (EMAC) Specific Address 2 Bottom, First 4 bytes

-AT91C_EMAC_FRO            EQU (0xFFFDC04C) ;- (EMAC) Frames Received OK Register

-AT91C_EMAC_IER            EQU (0xFFFDC028) ;- (EMAC) Interrupt Enable Register

-AT91C_EMAC_SA1H           EQU (0xFFFDC09C) ;- (EMAC) Specific Address 1 Top, Last 2 bytes

-AT91C_EMAC_CSE            EQU (0xFFFDC068) ;- (EMAC) Carrier Sense Error Register

-AT91C_EMAC_SA3H           EQU (0xFFFDC0AC) ;- (EMAC) Specific Address 3 Top, Last 2 bytes

-AT91C_EMAC_RRE            EQU (0xFFFDC06C) ;- (EMAC) Receive Ressource Error Register

-AT91C_EMAC_STE            EQU (0xFFFDC084) ;- (EMAC) SQE Test Error Register

-// - ========== Register definition for PDC_ADC peripheral ========== 

-AT91C_ADC_PTSR            EQU (0xFFFD8124) ;- (PDC_ADC) PDC Transfer Status Register

-AT91C_ADC_PTCR            EQU (0xFFFD8120) ;- (PDC_ADC) PDC Transfer Control Register

-AT91C_ADC_TNPR            EQU (0xFFFD8118) ;- (PDC_ADC) Transmit Next Pointer Register

-AT91C_ADC_TNCR            EQU (0xFFFD811C) ;- (PDC_ADC) Transmit Next Counter Register

-AT91C_ADC_RNPR            EQU (0xFFFD8110) ;- (PDC_ADC) Receive Next Pointer Register

-AT91C_ADC_RNCR            EQU (0xFFFD8114) ;- (PDC_ADC) Receive Next Counter Register

-AT91C_ADC_RPR             EQU (0xFFFD8100) ;- (PDC_ADC) Receive Pointer Register

-AT91C_ADC_TCR             EQU (0xFFFD810C) ;- (PDC_ADC) Transmit Counter Register

-AT91C_ADC_TPR             EQU (0xFFFD8108) ;- (PDC_ADC) Transmit Pointer Register

-AT91C_ADC_RCR             EQU (0xFFFD8104) ;- (PDC_ADC) Receive Counter Register

-// - ========== Register definition for ADC peripheral ========== 

-AT91C_ADC_CDR2            EQU (0xFFFD8038) ;- (ADC) ADC Channel Data Register 2

-AT91C_ADC_CDR3            EQU (0xFFFD803C) ;- (ADC) ADC Channel Data Register 3

-AT91C_ADC_CDR0            EQU (0xFFFD8030) ;- (ADC) ADC Channel Data Register 0

-AT91C_ADC_CDR5            EQU (0xFFFD8044) ;- (ADC) ADC Channel Data Register 5

-AT91C_ADC_CHDR            EQU (0xFFFD8014) ;- (ADC) ADC Channel Disable Register

-AT91C_ADC_SR              EQU (0xFFFD801C) ;- (ADC) ADC Status Register

-AT91C_ADC_CDR4            EQU (0xFFFD8040) ;- (ADC) ADC Channel Data Register 4

-AT91C_ADC_CDR1            EQU (0xFFFD8034) ;- (ADC) ADC Channel Data Register 1

-AT91C_ADC_LCDR            EQU (0xFFFD8020) ;- (ADC) ADC Last Converted Data Register

-AT91C_ADC_IDR             EQU (0xFFFD8028) ;- (ADC) ADC Interrupt Disable Register

-AT91C_ADC_CR              EQU (0xFFFD8000) ;- (ADC) ADC Control Register

-AT91C_ADC_CDR7            EQU (0xFFFD804C) ;- (ADC) ADC Channel Data Register 7

-AT91C_ADC_CDR6            EQU (0xFFFD8048) ;- (ADC) ADC Channel Data Register 6

-AT91C_ADC_IER             EQU (0xFFFD8024) ;- (ADC) ADC Interrupt Enable Register

-AT91C_ADC_CHER            EQU (0xFFFD8010) ;- (ADC) ADC Channel Enable Register

-AT91C_ADC_CHSR            EQU (0xFFFD8018) ;- (ADC) ADC Channel Status Register

-AT91C_ADC_MR              EQU (0xFFFD8004) ;- (ADC) ADC Mode Register

-AT91C_ADC_IMR             EQU (0xFFFD802C) ;- (ADC) ADC Interrupt Mask Register

-// - ========== Register definition for PDC_AES peripheral ========== 

-AT91C_AES_TPR             EQU (0xFFFA4108) ;- (PDC_AES) Transmit Pointer Register

-AT91C_AES_PTCR            EQU (0xFFFA4120) ;- (PDC_AES) PDC Transfer Control Register

-AT91C_AES_RNPR            EQU (0xFFFA4110) ;- (PDC_AES) Receive Next Pointer Register

-AT91C_AES_TNCR            EQU (0xFFFA411C) ;- (PDC_AES) Transmit Next Counter Register

-AT91C_AES_TCR             EQU (0xFFFA410C) ;- (PDC_AES) Transmit Counter Register

-AT91C_AES_RCR             EQU (0xFFFA4104) ;- (PDC_AES) Receive Counter Register

-AT91C_AES_RNCR            EQU (0xFFFA4114) ;- (PDC_AES) Receive Next Counter Register

-AT91C_AES_TNPR            EQU (0xFFFA4118) ;- (PDC_AES) Transmit Next Pointer Register

-AT91C_AES_RPR             EQU (0xFFFA4100) ;- (PDC_AES) Receive Pointer Register

-AT91C_AES_PTSR            EQU (0xFFFA4124) ;- (PDC_AES) PDC Transfer Status Register

-// - ========== Register definition for AES peripheral ========== 

-AT91C_AES_IVxR            EQU (0xFFFA4060) ;- (AES) Initialization Vector x Register

-AT91C_AES_MR              EQU (0xFFFA4004) ;- (AES) Mode Register

-AT91C_AES_VR              EQU (0xFFFA40FC) ;- (AES) AES Version Register

-AT91C_AES_ODATAxR         EQU (0xFFFA4050) ;- (AES) Output Data x Register

-AT91C_AES_IDATAxR         EQU (0xFFFA4040) ;- (AES) Input Data x Register

-AT91C_AES_CR              EQU (0xFFFA4000) ;- (AES) Control Register

-AT91C_AES_IDR             EQU (0xFFFA4014) ;- (AES) Interrupt Disable Register

-AT91C_AES_IMR             EQU (0xFFFA4018) ;- (AES) Interrupt Mask Register

-AT91C_AES_IER             EQU (0xFFFA4010) ;- (AES) Interrupt Enable Register

-AT91C_AES_KEYWxR          EQU (0xFFFA4020) ;- (AES) Key Word x Register

-AT91C_AES_ISR             EQU (0xFFFA401C) ;- (AES) Interrupt Status Register

-// - ========== Register definition for PDC_TDES peripheral ========== 

-AT91C_TDES_RNCR           EQU (0xFFFA8114) ;- (PDC_TDES) Receive Next Counter Register

-AT91C_TDES_TCR            EQU (0xFFFA810C) ;- (PDC_TDES) Transmit Counter Register

-AT91C_TDES_RCR            EQU (0xFFFA8104) ;- (PDC_TDES) Receive Counter Register

-AT91C_TDES_TNPR           EQU (0xFFFA8118) ;- (PDC_TDES) Transmit Next Pointer Register

-AT91C_TDES_RNPR           EQU (0xFFFA8110) ;- (PDC_TDES) Receive Next Pointer Register

-AT91C_TDES_RPR            EQU (0xFFFA8100) ;- (PDC_TDES) Receive Pointer Register

-AT91C_TDES_TNCR           EQU (0xFFFA811C) ;- (PDC_TDES) Transmit Next Counter Register

-AT91C_TDES_TPR            EQU (0xFFFA8108) ;- (PDC_TDES) Transmit Pointer Register

-AT91C_TDES_PTSR           EQU (0xFFFA8124) ;- (PDC_TDES) PDC Transfer Status Register

-AT91C_TDES_PTCR           EQU (0xFFFA8120) ;- (PDC_TDES) PDC Transfer Control Register

-// - ========== Register definition for TDES peripheral ========== 

-AT91C_TDES_KEY2WxR        EQU (0xFFFA8028) ;- (TDES) Key 2 Word x Register

-AT91C_TDES_KEY3WxR        EQU (0xFFFA8030) ;- (TDES) Key 3 Word x Register

-AT91C_TDES_IDR            EQU (0xFFFA8014) ;- (TDES) Interrupt Disable Register

-AT91C_TDES_VR             EQU (0xFFFA80FC) ;- (TDES) TDES Version Register

-AT91C_TDES_IVxR           EQU (0xFFFA8060) ;- (TDES) Initialization Vector x Register

-AT91C_TDES_ODATAxR        EQU (0xFFFA8050) ;- (TDES) Output Data x Register

-AT91C_TDES_IMR            EQU (0xFFFA8018) ;- (TDES) Interrupt Mask Register

-AT91C_TDES_MR             EQU (0xFFFA8004) ;- (TDES) Mode Register

-AT91C_TDES_CR             EQU (0xFFFA8000) ;- (TDES) Control Register

-AT91C_TDES_IER            EQU (0xFFFA8010) ;- (TDES) Interrupt Enable Register

-AT91C_TDES_ISR            EQU (0xFFFA801C) ;- (TDES) Interrupt Status Register

-AT91C_TDES_IDATAxR        EQU (0xFFFA8040) ;- (TDES) Input Data x Register

-AT91C_TDES_KEY1WxR        EQU (0xFFFA8020) ;- (TDES) Key 1 Word x Register

-

-// - *****************************************************************************

-// -               PIO DEFINITIONS FOR AT91SAM7X256

-// - *****************************************************************************

-AT91C_PIO_PA0             EQU (1 <<  0) ;- Pin Controlled by PA0

-AT91C_PA0_RXD0            EQU (AT91C_PIO_PA0) ;-  USART 0 Receive Data

-AT91C_PIO_PA1             EQU (1 <<  1) ;- Pin Controlled by PA1

-AT91C_PA1_TXD0            EQU (AT91C_PIO_PA1) ;-  USART 0 Transmit Data

-AT91C_PIO_PA10            EQU (1 << 10) ;- Pin Controlled by PA10

-AT91C_PA10_TWD            EQU (AT91C_PIO_PA10) ;-  TWI Two-wire Serial Data

-AT91C_PIO_PA11            EQU (1 << 11) ;- Pin Controlled by PA11

-AT91C_PA11_TWCK           EQU (AT91C_PIO_PA11) ;-  TWI Two-wire Serial Clock

-AT91C_PIO_PA12            EQU (1 << 12) ;- Pin Controlled by PA12

-AT91C_PA12_NPCS00         EQU (AT91C_PIO_PA12) ;-  SPI 0 Peripheral Chip Select 0

-AT91C_PIO_PA13            EQU (1 << 13) ;- Pin Controlled by PA13

-AT91C_PA13_NPCS01         EQU (AT91C_PIO_PA13) ;-  SPI 0 Peripheral Chip Select 1

-AT91C_PA13_PCK1           EQU (AT91C_PIO_PA13) ;-  PMC Programmable Clock Output 1

-AT91C_PIO_PA14            EQU (1 << 14) ;- Pin Controlled by PA14

-AT91C_PA14_NPCS02         EQU (AT91C_PIO_PA14) ;-  SPI 0 Peripheral Chip Select 2

-AT91C_PA14_IRQ1           EQU (AT91C_PIO_PA14) ;-  External Interrupt 1

-AT91C_PIO_PA15            EQU (1 << 15) ;- Pin Controlled by PA15

-AT91C_PA15_NPCS03         EQU (AT91C_PIO_PA15) ;-  SPI 0 Peripheral Chip Select 3

-AT91C_PA15_TCLK2          EQU (AT91C_PIO_PA15) ;-  Timer Counter 2 external clock input

-AT91C_PIO_PA16            EQU (1 << 16) ;- Pin Controlled by PA16

-AT91C_PA16_MISO0          EQU (AT91C_PIO_PA16) ;-  SPI 0 Master In Slave

-AT91C_PIO_PA17            EQU (1 << 17) ;- Pin Controlled by PA17

-AT91C_PA17_MOSI0          EQU (AT91C_PIO_PA17) ;-  SPI 0 Master Out Slave

-AT91C_PIO_PA18            EQU (1 << 18) ;- Pin Controlled by PA18

-AT91C_PA18_SPCK0          EQU (AT91C_PIO_PA18) ;-  SPI 0 Serial Clock

-AT91C_PIO_PA19            EQU (1 << 19) ;- Pin Controlled by PA19

-AT91C_PA19_CANRX          EQU (AT91C_PIO_PA19) ;-  CAN Receive

-AT91C_PIO_PA2             EQU (1 <<  2) ;- Pin Controlled by PA2

-AT91C_PA2_SCK0            EQU (AT91C_PIO_PA2) ;-  USART 0 Serial Clock

-AT91C_PA2_NPCS11          EQU (AT91C_PIO_PA2) ;-  SPI 1 Peripheral Chip Select 1

-AT91C_PIO_PA20            EQU (1 << 20) ;- Pin Controlled by PA20

-AT91C_PA20_CANTX          EQU (AT91C_PIO_PA20) ;-  CAN Transmit

-AT91C_PIO_PA21            EQU (1 << 21) ;- Pin Controlled by PA21

-AT91C_PA21_TF             EQU (AT91C_PIO_PA21) ;-  SSC Transmit Frame Sync

-AT91C_PA21_NPCS10         EQU (AT91C_PIO_PA21) ;-  SPI 1 Peripheral Chip Select 0

-AT91C_PIO_PA22            EQU (1 << 22) ;- Pin Controlled by PA22

-AT91C_PA22_TK             EQU (AT91C_PIO_PA22) ;-  SSC Transmit Clock

-AT91C_PA22_SPCK1          EQU (AT91C_PIO_PA22) ;-  SPI 1 Serial Clock

-AT91C_PIO_PA23            EQU (1 << 23) ;- Pin Controlled by PA23

-AT91C_PA23_TD             EQU (AT91C_PIO_PA23) ;-  SSC Transmit data

-AT91C_PA23_MOSI1          EQU (AT91C_PIO_PA23) ;-  SPI 1 Master Out Slave

-AT91C_PIO_PA24            EQU (1 << 24) ;- Pin Controlled by PA24

-AT91C_PA24_RD             EQU (AT91C_PIO_PA24) ;-  SSC Receive Data

-AT91C_PA24_MISO1          EQU (AT91C_PIO_PA24) ;-  SPI 1 Master In Slave

-AT91C_PIO_PA25            EQU (1 << 25) ;- Pin Controlled by PA25

-AT91C_PA25_RK             EQU (AT91C_PIO_PA25) ;-  SSC Receive Clock

-AT91C_PA25_NPCS11         EQU (AT91C_PIO_PA25) ;-  SPI 1 Peripheral Chip Select 1

-AT91C_PIO_PA26            EQU (1 << 26) ;- Pin Controlled by PA26

-AT91C_PA26_RF             EQU (AT91C_PIO_PA26) ;-  SSC Receive Frame Sync

-AT91C_PA26_NPCS12         EQU (AT91C_PIO_PA26) ;-  SPI 1 Peripheral Chip Select 2

-AT91C_PIO_PA27            EQU (1 << 27) ;- Pin Controlled by PA27

-AT91C_PA27_DRXD           EQU (AT91C_PIO_PA27) ;-  DBGU Debug Receive Data

-AT91C_PA27_PCK3           EQU (AT91C_PIO_PA27) ;-  PMC Programmable Clock Output 3

-AT91C_PIO_PA28            EQU (1 << 28) ;- Pin Controlled by PA28

-AT91C_PA28_DTXD           EQU (AT91C_PIO_PA28) ;-  DBGU Debug Transmit Data

-AT91C_PIO_PA29            EQU (1 << 29) ;- Pin Controlled by PA29

-AT91C_PA29_FIQ            EQU (AT91C_PIO_PA29) ;-  AIC Fast Interrupt Input

-AT91C_PA29_NPCS13         EQU (AT91C_PIO_PA29) ;-  SPI 1 Peripheral Chip Select 3

-AT91C_PIO_PA3             EQU (1 <<  3) ;- Pin Controlled by PA3

-AT91C_PA3_RTS0            EQU (AT91C_PIO_PA3) ;-  USART 0 Ready To Send

-AT91C_PA3_NPCS12          EQU (AT91C_PIO_PA3) ;-  SPI 1 Peripheral Chip Select 2

-AT91C_PIO_PA30            EQU (1 << 30) ;- Pin Controlled by PA30

-AT91C_PA30_IRQ0           EQU (AT91C_PIO_PA30) ;-  External Interrupt 0

-AT91C_PA30_PCK2           EQU (AT91C_PIO_PA30) ;-  PMC Programmable Clock Output 2

-AT91C_PIO_PA4             EQU (1 <<  4) ;- Pin Controlled by PA4

-AT91C_PA4_CTS0            EQU (AT91C_PIO_PA4) ;-  USART 0 Clear To Send

-AT91C_PA4_NPCS13          EQU (AT91C_PIO_PA4) ;-  SPI 1 Peripheral Chip Select 3

-AT91C_PIO_PA5             EQU (1 <<  5) ;- Pin Controlled by PA5

-AT91C_PA5_RXD1            EQU (AT91C_PIO_PA5) ;-  USART 1 Receive Data

-AT91C_PIO_PA6             EQU (1 <<  6) ;- Pin Controlled by PA6

-AT91C_PA6_TXD1            EQU (AT91C_PIO_PA6) ;-  USART 1 Transmit Data

-AT91C_PIO_PA7             EQU (1 <<  7) ;- Pin Controlled by PA7

-AT91C_PA7_SCK1            EQU (AT91C_PIO_PA7) ;-  USART 1 Serial Clock

-AT91C_PA7_NPCS01          EQU (AT91C_PIO_PA7) ;-  SPI 0 Peripheral Chip Select 1

-AT91C_PIO_PA8             EQU (1 <<  8) ;- Pin Controlled by PA8

-AT91C_PA8_RTS1            EQU (AT91C_PIO_PA8) ;-  USART 1 Ready To Send

-AT91C_PA8_NPCS02          EQU (AT91C_PIO_PA8) ;-  SPI 0 Peripheral Chip Select 2

-AT91C_PIO_PA9             EQU (1 <<  9) ;- Pin Controlled by PA9

-AT91C_PA9_CTS1            EQU (AT91C_PIO_PA9) ;-  USART 1 Clear To Send

-AT91C_PA9_NPCS03          EQU (AT91C_PIO_PA9) ;-  SPI 0 Peripheral Chip Select 3

-AT91C_PIO_PB0             EQU (1 <<  0) ;- Pin Controlled by PB0

-AT91C_PB0_ETXCK_EREFCK    EQU (AT91C_PIO_PB0) ;-  Ethernet MAC Transmit Clock/Reference Clock

-AT91C_PB0_PCK0            EQU (AT91C_PIO_PB0) ;-  PMC Programmable Clock Output 0

-AT91C_PIO_PB1             EQU (1 <<  1) ;- Pin Controlled by PB1

-AT91C_PB1_ETXEN           EQU (AT91C_PIO_PB1) ;-  Ethernet MAC Transmit Enable

-AT91C_PIO_PB10            EQU (1 << 10) ;- Pin Controlled by PB10

-AT91C_PB10_ETX2           EQU (AT91C_PIO_PB10) ;-  Ethernet MAC Transmit Data 2

-AT91C_PB10_NPCS11         EQU (AT91C_PIO_PB10) ;-  SPI 1 Peripheral Chip Select 1

-AT91C_PIO_PB11            EQU (1 << 11) ;- Pin Controlled by PB11

-AT91C_PB11_ETX3           EQU (AT91C_PIO_PB11) ;-  Ethernet MAC Transmit Data 3

-AT91C_PB11_NPCS12         EQU (AT91C_PIO_PB11) ;-  SPI 1 Peripheral Chip Select 2

-AT91C_PIO_PB12            EQU (1 << 12) ;- Pin Controlled by PB12

-AT91C_PB12_ETXER          EQU (AT91C_PIO_PB12) ;-  Ethernet MAC Transmikt Coding Error

-AT91C_PB12_TCLK0          EQU (AT91C_PIO_PB12) ;-  Timer Counter 0 external clock input

-AT91C_PIO_PB13            EQU (1 << 13) ;- Pin Controlled by PB13

-AT91C_PB13_ERX2           EQU (AT91C_PIO_PB13) ;-  Ethernet MAC Receive Data 2

-AT91C_PB13_NPCS01         EQU (AT91C_PIO_PB13) ;-  SPI 0 Peripheral Chip Select 1

-AT91C_PIO_PB14            EQU (1 << 14) ;- Pin Controlled by PB14

-AT91C_PB14_ERX3           EQU (AT91C_PIO_PB14) ;-  Ethernet MAC Receive Data 3

-AT91C_PB14_NPCS02         EQU (AT91C_PIO_PB14) ;-  SPI 0 Peripheral Chip Select 2

-AT91C_PIO_PB15            EQU (1 << 15) ;- Pin Controlled by PB15

-AT91C_PB15_ERXDV          EQU (AT91C_PIO_PB15) ;-  Ethernet MAC Receive Data Valid

-AT91C_PIO_PB16            EQU (1 << 16) ;- Pin Controlled by PB16

-AT91C_PB16_ECOL           EQU (AT91C_PIO_PB16) ;-  Ethernet MAC Collision Detected

-AT91C_PB16_NPCS13         EQU (AT91C_PIO_PB16) ;-  SPI 1 Peripheral Chip Select 3

-AT91C_PIO_PB17            EQU (1 << 17) ;- Pin Controlled by PB17

-AT91C_PB17_ERXCK          EQU (AT91C_PIO_PB17) ;-  Ethernet MAC Receive Clock

-AT91C_PB17_NPCS03         EQU (AT91C_PIO_PB17) ;-  SPI 0 Peripheral Chip Select 3

-AT91C_PIO_PB18            EQU (1 << 18) ;- Pin Controlled by PB18

-AT91C_PB18_EF100          EQU (AT91C_PIO_PB18) ;-  Ethernet MAC Force 100 Mbits/sec

-AT91C_PB18_ADTRG          EQU (AT91C_PIO_PB18) ;-  ADC External Trigger

-AT91C_PIO_PB19            EQU (1 << 19) ;- Pin Controlled by PB19

-AT91C_PB19_PWM0           EQU (AT91C_PIO_PB19) ;-  PWM Channel 0

-AT91C_PB19_TCLK1          EQU (AT91C_PIO_PB19) ;-  Timer Counter 1 external clock input

-AT91C_PIO_PB2             EQU (1 <<  2) ;- Pin Controlled by PB2

-AT91C_PB2_ETX0            EQU (AT91C_PIO_PB2) ;-  Ethernet MAC Transmit Data 0

-AT91C_PIO_PB20            EQU (1 << 20) ;- Pin Controlled by PB20

-AT91C_PB20_PWM1           EQU (AT91C_PIO_PB20) ;-  PWM Channel 1

-AT91C_PB20_PCK0           EQU (AT91C_PIO_PB20) ;-  PMC Programmable Clock Output 0

-AT91C_PIO_PB21            EQU (1 << 21) ;- Pin Controlled by PB21

-AT91C_PB21_PWM2           EQU (AT91C_PIO_PB21) ;-  PWM Channel 2

-AT91C_PB21_PCK1           EQU (AT91C_PIO_PB21) ;-  PMC Programmable Clock Output 1

-AT91C_PIO_PB22            EQU (1 << 22) ;- Pin Controlled by PB22

-AT91C_PB22_PWM3           EQU (AT91C_PIO_PB22) ;-  PWM Channel 3

-AT91C_PB22_PCK2           EQU (AT91C_PIO_PB22) ;-  PMC Programmable Clock Output 2

-AT91C_PIO_PB23            EQU (1 << 23) ;- Pin Controlled by PB23

-AT91C_PB23_TIOA0          EQU (AT91C_PIO_PB23) ;-  Timer Counter 0 Multipurpose Timer I/O Pin A

-AT91C_PB23_DCD1           EQU (AT91C_PIO_PB23) ;-  USART 1 Data Carrier Detect

-AT91C_PIO_PB24            EQU (1 << 24) ;- Pin Controlled by PB24

-AT91C_PB24_TIOB0          EQU (AT91C_PIO_PB24) ;-  Timer Counter 0 Multipurpose Timer I/O Pin B

-AT91C_PB24_DSR1           EQU (AT91C_PIO_PB24) ;-  USART 1 Data Set ready

-AT91C_PIO_PB25            EQU (1 << 25) ;- Pin Controlled by PB25

-AT91C_PB25_TIOA1          EQU (AT91C_PIO_PB25) ;-  Timer Counter 1 Multipurpose Timer I/O Pin A

-AT91C_PB25_DTR1           EQU (AT91C_PIO_PB25) ;-  USART 1 Data Terminal ready

-AT91C_PIO_PB26            EQU (1 << 26) ;- Pin Controlled by PB26

-AT91C_PB26_TIOB1          EQU (AT91C_PIO_PB26) ;-  Timer Counter 1 Multipurpose Timer I/O Pin B

-AT91C_PB26_RI1            EQU (AT91C_PIO_PB26) ;-  USART 1 Ring Indicator

-AT91C_PIO_PB27            EQU (1 << 27) ;- Pin Controlled by PB27

-AT91C_PB27_TIOA2          EQU (AT91C_PIO_PB27) ;-  Timer Counter 2 Multipurpose Timer I/O Pin A

-AT91C_PB27_PWM0           EQU (AT91C_PIO_PB27) ;-  PWM Channel 0

-AT91C_PIO_PB28            EQU (1 << 28) ;- Pin Controlled by PB28

-AT91C_PB28_TIOB2          EQU (AT91C_PIO_PB28) ;-  Timer Counter 2 Multipurpose Timer I/O Pin B

-AT91C_PB28_PWM1           EQU (AT91C_PIO_PB28) ;-  PWM Channel 1

-AT91C_PIO_PB29            EQU (1 << 29) ;- Pin Controlled by PB29

-AT91C_PB29_PCK1           EQU (AT91C_PIO_PB29) ;-  PMC Programmable Clock Output 1

-AT91C_PB29_PWM2           EQU (AT91C_PIO_PB29) ;-  PWM Channel 2

-AT91C_PIO_PB3             EQU (1 <<  3) ;- Pin Controlled by PB3

-AT91C_PB3_ETX1            EQU (AT91C_PIO_PB3) ;-  Ethernet MAC Transmit Data 1

-AT91C_PIO_PB30            EQU (1 << 30) ;- Pin Controlled by PB30

-AT91C_PB30_PCK2           EQU (AT91C_PIO_PB30) ;-  PMC Programmable Clock Output 2

-AT91C_PB30_PWM3           EQU (AT91C_PIO_PB30) ;-  PWM Channel 3

-AT91C_PIO_PB4             EQU (1 <<  4) ;- Pin Controlled by PB4

-AT91C_PB4_ECRS_ECRSDV     EQU (AT91C_PIO_PB4) ;-  Ethernet MAC Carrier Sense/Carrier Sense and Data Valid

-AT91C_PIO_PB5             EQU (1 <<  5) ;- Pin Controlled by PB5

-AT91C_PB5_ERX0            EQU (AT91C_PIO_PB5) ;-  Ethernet MAC Receive Data 0

-AT91C_PIO_PB6             EQU (1 <<  6) ;- Pin Controlled by PB6

-AT91C_PB6_ERX1            EQU (AT91C_PIO_PB6) ;-  Ethernet MAC Receive Data 1

-AT91C_PIO_PB7             EQU (1 <<  7) ;- Pin Controlled by PB7

-AT91C_PB7_ERXER           EQU (AT91C_PIO_PB7) ;-  Ethernet MAC Receive Error

-AT91C_PIO_PB8             EQU (1 <<  8) ;- Pin Controlled by PB8

-AT91C_PB8_EMDC            EQU (AT91C_PIO_PB8) ;-  Ethernet MAC Management Data Clock

-AT91C_PIO_PB9             EQU (1 <<  9) ;- Pin Controlled by PB9

-AT91C_PB9_EMDIO           EQU (AT91C_PIO_PB9) ;-  Ethernet MAC Management Data Input/Output

-

-// - *****************************************************************************

-// -               PERIPHERAL ID DEFINITIONS FOR AT91SAM7X256

-// - *****************************************************************************

-AT91C_ID_FIQ              EQU ( 0) ;- Advanced Interrupt Controller (FIQ)

-AT91C_ID_SYS              EQU ( 1) ;- System Peripheral

-AT91C_ID_PIOA             EQU ( 2) ;- Parallel IO Controller A

-AT91C_ID_PIOB             EQU ( 3) ;- Parallel IO Controller B

-AT91C_ID_SPI0             EQU ( 4) ;- Serial Peripheral Interface 0

-AT91C_ID_SPI1             EQU ( 5) ;- Serial Peripheral Interface 1

-AT91C_ID_US0              EQU ( 6) ;- USART 0

-AT91C_ID_US1              EQU ( 7) ;- USART 1

-AT91C_ID_SSC              EQU ( 8) ;- Serial Synchronous Controller

-AT91C_ID_TWI              EQU ( 9) ;- Two-Wire Interface

-AT91C_ID_PWMC             EQU (10) ;- PWM Controller

-AT91C_ID_UDP              EQU (11) ;- USB Device Port

-AT91C_ID_TC0              EQU (12) ;- Timer Counter 0

-AT91C_ID_TC1              EQU (13) ;- Timer Counter 1

-AT91C_ID_TC2              EQU (14) ;- Timer Counter 2

-AT91C_ID_CAN              EQU (15) ;- Control Area Network Controller

-AT91C_ID_EMAC             EQU (16) ;- Ethernet MAC

-AT91C_ID_ADC              EQU (17) ;- Analog-to-Digital Converter

-AT91C_ID_AES              EQU (18) ;- Advanced Encryption Standard 128-bit

-AT91C_ID_TDES             EQU (19) ;- Triple Data Encryption Standard

-AT91C_ID_20_Reserved      EQU (20) ;- Reserved

-AT91C_ID_21_Reserved      EQU (21) ;- Reserved

-AT91C_ID_22_Reserved      EQU (22) ;- Reserved

-AT91C_ID_23_Reserved      EQU (23) ;- Reserved

-AT91C_ID_24_Reserved      EQU (24) ;- Reserved

-AT91C_ID_25_Reserved      EQU (25) ;- Reserved

-AT91C_ID_26_Reserved      EQU (26) ;- Reserved

-AT91C_ID_27_Reserved      EQU (27) ;- Reserved

-AT91C_ID_28_Reserved      EQU (28) ;- Reserved

-AT91C_ID_29_Reserved      EQU (29) ;- Reserved

-AT91C_ID_IRQ0             EQU (30) ;- Advanced Interrupt Controller (IRQ0)

-AT91C_ID_IRQ1             EQU (31) ;- Advanced Interrupt Controller (IRQ1)

-

-// - *****************************************************************************

-// -               BASE ADDRESS DEFINITIONS FOR AT91SAM7X256

-// - *****************************************************************************

-AT91C_BASE_SYS            EQU (0xFFFFF000) ;- (SYS) Base Address

-AT91C_BASE_AIC            EQU (0xFFFFF000) ;- (AIC) Base Address

-AT91C_BASE_PDC_DBGU       EQU (0xFFFFF300) ;- (PDC_DBGU) Base Address

-AT91C_BASE_DBGU           EQU (0xFFFFF200) ;- (DBGU) Base Address

-AT91C_BASE_PIOA           EQU (0xFFFFF400) ;- (PIOA) Base Address

-AT91C_BASE_PIOB           EQU (0xFFFFF600) ;- (PIOB) Base Address

-AT91C_BASE_CKGR           EQU (0xFFFFFC20) ;- (CKGR) Base Address

-AT91C_BASE_PMC            EQU (0xFFFFFC00) ;- (PMC) Base Address

-AT91C_BASE_RSTC           EQU (0xFFFFFD00) ;- (RSTC) Base Address

-AT91C_BASE_RTTC           EQU (0xFFFFFD20) ;- (RTTC) Base Address

-AT91C_BASE_PITC           EQU (0xFFFFFD30) ;- (PITC) Base Address

-AT91C_BASE_WDTC           EQU (0xFFFFFD40) ;- (WDTC) Base Address

-AT91C_BASE_VREG           EQU (0xFFFFFD60) ;- (VREG) Base Address

-AT91C_BASE_MC             EQU (0xFFFFFF00) ;- (MC) Base Address

-AT91C_BASE_PDC_SPI1       EQU (0xFFFE4100) ;- (PDC_SPI1) Base Address

-AT91C_BASE_SPI1           EQU (0xFFFE4000) ;- (SPI1) Base Address

-AT91C_BASE_PDC_SPI0       EQU (0xFFFE0100) ;- (PDC_SPI0) Base Address

-AT91C_BASE_SPI0           EQU (0xFFFE0000) ;- (SPI0) Base Address

-AT91C_BASE_PDC_US1        EQU (0xFFFC4100) ;- (PDC_US1) Base Address

-AT91C_BASE_US1            EQU (0xFFFC4000) ;- (US1) Base Address

-AT91C_BASE_PDC_US0        EQU (0xFFFC0100) ;- (PDC_US0) Base Address

-AT91C_BASE_US0            EQU (0xFFFC0000) ;- (US0) Base Address

-AT91C_BASE_PDC_SSC        EQU (0xFFFD4100) ;- (PDC_SSC) Base Address

-AT91C_BASE_SSC            EQU (0xFFFD4000) ;- (SSC) Base Address

-AT91C_BASE_TWI            EQU (0xFFFB8000) ;- (TWI) Base Address

-AT91C_BASE_PWMC_CH3       EQU (0xFFFCC260) ;- (PWMC_CH3) Base Address

-AT91C_BASE_PWMC_CH2       EQU (0xFFFCC240) ;- (PWMC_CH2) Base Address

-AT91C_BASE_PWMC_CH1       EQU (0xFFFCC220) ;- (PWMC_CH1) Base Address

-AT91C_BASE_PWMC_CH0       EQU (0xFFFCC200) ;- (PWMC_CH0) Base Address

-AT91C_BASE_PWMC           EQU (0xFFFCC000) ;- (PWMC) Base Address

-AT91C_BASE_UDP            EQU (0xFFFB0000) ;- (UDP) Base Address

-AT91C_BASE_TC0            EQU (0xFFFA0000) ;- (TC0) Base Address

-AT91C_BASE_TC1            EQU (0xFFFA0040) ;- (TC1) Base Address

-AT91C_BASE_TC2            EQU (0xFFFA0080) ;- (TC2) Base Address

-AT91C_BASE_TCB            EQU (0xFFFA0000) ;- (TCB) Base Address

-AT91C_BASE_CAN_MB0        EQU (0xFFFD0200) ;- (CAN_MB0) Base Address

-AT91C_BASE_CAN_MB1        EQU (0xFFFD0220) ;- (CAN_MB1) Base Address

-AT91C_BASE_CAN_MB2        EQU (0xFFFD0240) ;- (CAN_MB2) Base Address

-AT91C_BASE_CAN_MB3        EQU (0xFFFD0260) ;- (CAN_MB3) Base Address

-AT91C_BASE_CAN_MB4        EQU (0xFFFD0280) ;- (CAN_MB4) Base Address

-AT91C_BASE_CAN_MB5        EQU (0xFFFD02A0) ;- (CAN_MB5) Base Address

-AT91C_BASE_CAN_MB6        EQU (0xFFFD02C0) ;- (CAN_MB6) Base Address

-AT91C_BASE_CAN_MB7        EQU (0xFFFD02E0) ;- (CAN_MB7) Base Address

-AT91C_BASE_CAN            EQU (0xFFFD0000) ;- (CAN) Base Address

-AT91C_BASE_EMAC           EQU (0xFFFDC000) ;- (EMAC) Base Address

-AT91C_BASE_PDC_ADC        EQU (0xFFFD8100) ;- (PDC_ADC) Base Address

-AT91C_BASE_ADC            EQU (0xFFFD8000) ;- (ADC) Base Address

-AT91C_BASE_PDC_AES        EQU (0xFFFA4100) ;- (PDC_AES) Base Address

-AT91C_BASE_AES            EQU (0xFFFA4000) ;- (AES) Base Address

-AT91C_BASE_PDC_TDES       EQU (0xFFFA8100) ;- (PDC_TDES) Base Address

-AT91C_BASE_TDES           EQU (0xFFFA8000) ;- (TDES) Base Address

-

-// - *****************************************************************************

-// -               MEMORY MAPPING DEFINITIONS FOR AT91SAM7X256

-// - *****************************************************************************

-AT91C_ISRAM               EQU (0x00200000) ;- Internal SRAM base address

-AT91C_ISRAM_SIZE          EQU (0x00010000) ;- Internal SRAM size in byte (64 Kbyte)

-AT91C_IFLASH              EQU (0x00100000) ;- Internal ROM base address

-AT91C_IFLASH_SIZE         EQU (0x00040000) ;- Internal ROM size in byte (256 Kbyte)

-#endif /* __IAR_SYSTEMS_ASM__ */

-

-

-#endif /* AT91SAM7X256_H */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/mii.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/mii.h
deleted file mode 100644
index 29b2f53..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/SrcIAR/mii.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Generic MII registers. */

-

-#define MII_BMCR            0x00        /* Basic mode control register */

-#define MII_BMSR            0x01        /* Basic mode status register  */

-#define MII_PHYSID1         0x02        /* PHYS ID 1                   */

-#define MII_PHYSID2         0x03        /* PHYS ID 2                   */

-#define MII_ADVERTISE       0x04        /* Advertisement control reg   */

-#define MII_LPA             0x05        /* Link partner ability reg    */

-#define MII_EXPANSION       0x06        /* Expansion register          */

-#define MII_DCOUNTER        0x12        /* Disconnect counter          */

-#define MII_FCSCOUNTER      0x13        /* False carrier counter       */

-#define MII_NWAYTEST        0x14        /* N-way auto-neg test reg     */

-#define MII_RERRCOUNTER     0x15        /* Receive error counter       */

-#define MII_SREVISION       0x16        /* Silicon revision            */

-#define MII_RESV1           0x17        /* Reserved...                 */

-#define MII_LBRERROR        0x18        /* Lpback, rx, bypass error    */

-#define MII_PHYADDR         0x19        /* PHY address                 */

-#define MII_RESV2           0x1a        /* Reserved...                 */

-#define MII_TPISTATUS       0x1b        /* TPI status for 10mbps       */

-#define MII_NCONFIG         0x1c        /* Network interface config    */

-

-/* Basic mode control register. */

-#define BMCR_RESV               0x007f  /* Unused...                   */

-#define BMCR_CTST               0x0080  /* Collision test              */

-#define BMCR_FULLDPLX           0x0100  /* Full duplex                 */

-#define BMCR_ANRESTART          0x0200  /* Auto negotiation restart    */

-#define BMCR_ISOLATE            0x0400  /* Disconnect DP83840 from MII */

-#define BMCR_PDOWN              0x0800  /* Powerdown the DP83840       */

-#define BMCR_ANENABLE           0x1000  /* Enable auto negotiation     */

-#define BMCR_SPEED100           0x2000  /* Select 100Mbps              */

-#define BMCR_LOOPBACK           0x4000  /* TXD loopback bits           */

-#define BMCR_RESET              0x8000  /* Reset the DP83840           */

-

-/* Basic mode status register. */

-#define BMSR_ERCAP              0x0001  /* Ext-reg capability          */

-#define BMSR_JCD                0x0002  /* Jabber detected             */

-#define BMSR_LSTATUS            0x0004  /* Link status                 */

-#define BMSR_ANEGCAPABLE        0x0008  /* Able to do auto-negotiation */

-#define BMSR_RFAULT             0x0010  /* Remote fault detected       */

-#define BMSR_ANEGCOMPLETE       0x0020  /* Auto-negotiation complete   */

-#define BMSR_RESV               0x07c0  /* Unused...                   */

-#define BMSR_10HALF             0x0800  /* Can do 10mbps, half-duplex  */

-#define BMSR_10FULL             0x1000  /* Can do 10mbps, full-duplex  */

-#define BMSR_100HALF            0x2000  /* Can do 100mbps, half-duplex */

-#define BMSR_100FULL            0x4000  /* Can do 100mbps, full-duplex */

-#define BMSR_100BASE4           0x8000  /* Can do 100mbps, 4k packets  */

-

-/* Advertisement control register. */

-#define ADVERTISE_SLCT          0x001f  /* Selector bits               */

-#define ADVERTISE_CSMA          0x0001  /* Only selector supported     */

-#define ADVERTISE_10HALF        0x0020  /* Try for 10mbps half-duplex  */

-#define ADVERTISE_10FULL        0x0040  /* Try for 10mbps full-duplex  */

-#define ADVERTISE_100HALF       0x0080  /* Try for 100mbps half-duplex */

-#define ADVERTISE_100FULL       0x0100  /* Try for 100mbps full-duplex */

-#define ADVERTISE_100BASE4      0x0200  /* Try for 100mbps 4k packets  */

-#define ADVERTISE_RESV          0x1c00  /* Unused...                   */

-#define ADVERTISE_RFAULT        0x2000  /* Say we can detect faults    */

-#define ADVERTISE_LPACK         0x4000  /* Ack link partners response  */

-#define ADVERTISE_NPAGE         0x8000  /* Next page bit               */

-

-#define ADVERTISE_FULL (ADVERTISE_100FULL | ADVERTISE_10FULL | \

-			ADVERTISE_CSMA)

-#define ADVERTISE_ALL (ADVERTISE_10HALF | ADVERTISE_10FULL | \

-                       ADVERTISE_100HALF | ADVERTISE_100FULL)

-

-/* Link partner ability register. */

-#define LPA_SLCT                0x001f  /* Same as advertise selector  */

-#define LPA_10HALF              0x0020  /* Can do 10mbps half-duplex   */

-#define LPA_10FULL              0x0040  /* Can do 10mbps full-duplex   */

-#define LPA_100HALF             0x0080  /* Can do 100mbps half-duplex  */

-#define LPA_100FULL             0x0100  /* Can do 100mbps full-duplex  */

-#define LPA_100BASE4            0x0200  /* Can do 100mbps 4k packets   */

-#define LPA_RESV                0x1c00  /* Unused...                   */

-#define LPA_RFAULT              0x2000  /* Link partner faulted        */

-#define LPA_LPACK               0x4000  /* Link partner acked us       */

-#define LPA_NPAGE               0x8000  /* Next page bit               */

-

-#define LPA_DUPLEX		(LPA_10FULL | LPA_100FULL)

-#define LPA_100			(LPA_100FULL | LPA_100HALF | LPA_100BASE4)

-

-/* Expansion register for auto-negotiation. */

-#define EXPANSION_NWAY          0x0001  /* Can do N-way auto-nego      */

-#define EXPANSION_LCWP          0x0002  /* Got new RX page code word   */

-#define EXPANSION_ENABLENPAGE   0x0004  /* This enables npage words    */

-#define EXPANSION_NPCAPABLE     0x0008  /* Link partner supports npage */

-#define EXPANSION_MFAULTS       0x0010  /* Multiple faults detected    */

-#define EXPANSION_RESV          0xffe0  /* Unused...                   */

-

-/* N-way test register. */

-#define NWAYTEST_RESV1          0x00ff  /* Unused...                   */

-#define NWAYTEST_LOOPBACK       0x0100  /* Enable loopback for N-way   */

-#define NWAYTEST_RESV2          0xfe00  /* Unused...                   */

-

-#define SPEED_10				10

-#define SPEED_100				100

-

-/* Duplex, half or full. */

-#define DUPLEX_HALF				0x00

-#define DUPLEX_FULL				0x01

-

-/* PHY ID */

-#define MII_DM9161_ID     0x0181b8a0

-#define MII_AM79C875_ID   0x00225540	/* 0x00225541 */

-

-#define AT91C_PHY_ADDR	31

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/main.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/main.c
deleted file mode 100644
index c1080e4..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/main.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-/*

- * Creates all the application tasks, then starts the scheduler.

- *

- * A task is also created called "uIP".  This executes the uIP stack and small

- * WEB server sample.  All the other tasks are from the set of standard

- * demo tasks.  The WEB documentation provides more details of the standard

- * demo application tasks.

- *

- * Main.c also creates a task called "Check".  This only executes every three

- * seconds but has the highest priority so is guaranteed to get processor time.

- * Its main function is to check the status of all the other demo application

- * tasks.  LED mainCHECK_LED is toggled every three seconds by the check task

- * should no error conditions be detected in any of the standard demo tasks.

- * The toggle rate increasing to 500ms indicates that at least one error has

- * been detected.

- */

-

-

-/* Standard includes. */

-#include <stdlib.h>

-#include <string.h>

-

-/* Scheduler includes. */

-#include "FreeRTOS.h"

-#include "task.h"

-

-/* Demo application includes. */

-#include "partest.h"

-#include "PollQ.h"

-#include "dynamic.h"

-#include "semtest.h"

-#include "flash.h"

-#include "integer.h"

-#include "flop.h"

-#include "BlockQ.h"

-#include "death.h"

-#include "uip_task.h"

-

-/*-----------------------------------------------------------*/

-

-/* Priorities/stacks for the demo application tasks. */

-#define mainQUEUE_POLL_PRIORITY		( tskIDLE_PRIORITY + 1 )

-#define mainCHECK_TASK_PRIORITY		( tskIDLE_PRIORITY + 3 )

-#define mainSEM_TEST_PRIORITY		( tskIDLE_PRIORITY + 1 )

-#define mainUIP_PRIORITY			( tskIDLE_PRIORITY + 3 )

-#define mainFLASH_PRIORITY			( tskIDLE_PRIORITY + 2 )

-#define mainBLOCK_Q_PRIORITY		( tskIDLE_PRIORITY + 1 )

-#define mainDEATH_PRIORITY			( tskIDLE_PRIORITY + 2 )

-#define mainUIP_TASK_STACK_SIZE		( 250 )

-

-/* The rate at which the on board LED will toggle when there is/is not an

-error. */

-#define mainNO_ERROR_FLASH_PERIOD	( ( TickType_t ) 3000 / portTICK_PERIOD_MS  )

-#define mainERROR_FLASH_PERIOD		( ( TickType_t ) 500 / portTICK_PERIOD_MS  )

-

-/* The LED used by the check task to indicate the system status. */

-#define mainCHECK_LED 				( 3 )

-/*-----------------------------------------------------------*/

-

-/*

- * Checks that all the demo application tasks are still executing without error

- * - as described at the top of the file.

- */

-static long prvCheckOtherTasksAreStillRunning( void );

-

-/*

- * The task that executes at the highest priority and calls

- * prvCheckOtherTasksAreStillRunning().  See the description at the top

- * of the file.

- */

-static void vErrorChecks( void *pvParameters );

-

-/*

- * Configure the processor for use with the Atmel demo board.  This is very

- * minimal as most of the setup is performed in the startup code.

- */

-static void prvSetupHardware( void );

-

-/*-----------------------------------------------------------*/

-

-/*

- * Starts all the other tasks, then starts the scheduler.

- */

-int main( void )

-{

-	/* Configure the processor. */

-	prvSetupHardware();

-

-	/* Setup the port used to flash the LED's. */

-	vParTestInitialise();

-

-	/* Start the task that handles the TCP/IP and WEB server functionality. */

-    xTaskCreate( vuIP_TASK, "uIP", mainUIP_TASK_STACK_SIZE, NULL, mainUIP_PRIORITY, NULL );

-	

-	/* Start the demo/test application tasks.  These are created in addition

-	to the TCP/IP task for demonstration and test purposes. */

-	vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );

-	vStartDynamicPriorityTasks();

-	vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );

-	vStartLEDFlashTasks( mainFLASH_PRIORITY );

-	vStartIntegerMathTasks( tskIDLE_PRIORITY );

-	vStartMathTasks( tskIDLE_PRIORITY );

-	vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );

-

-	/* Start the check task - which is defined in this file. */	

-    xTaskCreate( vErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );

-

-	/* Must be last to get created. */

-	vCreateSuicidalTasks( mainDEATH_PRIORITY );

-

-	/* Now all the tasks have been started - start the scheduler. */

-	vTaskStartScheduler();

-

-	/* Should never reach here because the tasks should now be executing! */

-	return 0;

-}

-/*-----------------------------------------------------------*/

-

-static void prvSetupHardware( void )

-{

-	/* When using the JTAG debugger the hardware is not always initialised to

-	the correct default state.  This line just ensures that this does not

-	cause all interrupts to be masked at the start. */

-	AT91C_BASE_AIC->AIC_EOICR = 0;

-	

-	/* Most setup is performed by the low level init function called from the

-	startup asm file.

-

-	Configure the PIO Lines corresponding to LED1 to LED4 to be outputs as

-	well as the UART Tx line. */

-	AT91F_PIO_CfgOutput( AT91C_BASE_PIOB, LED_MASK );

-

-	/* Enable the peripheral clock. */

-	AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA );

-	AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1 << AT91C_ID_PIOB ) ;

-	AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1 << AT91C_ID_EMAC ) ;

-}

-/*-----------------------------------------------------------*/

-

-static void vErrorChecks( void *pvParameters )

-{

-TickType_t xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;

-TickType_t xLastWakeTime;

-

-	/* Initialise xLastWakeTime to ensure the first call to vTaskDelayUntil()

-	functions correctly. */

-	xLastWakeTime = xTaskGetTickCount();

-

-	/* Cycle for ever, delaying then checking all the other tasks are still

-	operating without error.  If an error is detected then the delay period

-	is decreased from mainNO_ERROR_FLASH_PERIOD to mainERROR_FLASH_PERIOD so

-	the Check LED flash rate will increase. */

-	for( ;; )

-	{

-		/* Delay until it is time to execute again.  The delay period is

-		shorter following an error. */

-		vTaskDelayUntil( &xLastWakeTime, xDelayPeriod );

-	

-		/* Check all the standard demo application tasks are executing without

-		error.  */

-		if( prvCheckOtherTasksAreStillRunning() != pdPASS )

-		{

-			/* An error has been detected in one of the tasks - flash faster. */

-			xDelayPeriod = mainERROR_FLASH_PERIOD;

-		}

-

-		vParTestToggleLED( mainCHECK_LED );

-	}

-}

-/*-----------------------------------------------------------*/

-

-static long prvCheckOtherTasksAreStillRunning( void )

-{

-long lReturn = ( long ) pdPASS;

-

-

-	/* Check all the demo tasks (other than the flash tasks) to ensure

-	that they are all still running, and that none of them have detected

-	an error. */

-

-	if( xArePollingQueuesStillRunning() != pdTRUE )

-	{

-		lReturn = ( long ) pdFAIL;

-	}

-

-	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )

-	{

-		lReturn = ( long ) pdFAIL;

-	}

-

-	if( xAreSemaphoreTasksStillRunning() != pdTRUE )

-	{

-		lReturn = ( long ) pdFAIL;

-	}

-

-	if( xAreIntegerMathsTaskStillRunning() != pdTRUE )

-	{

-		lReturn = ( long ) pdFAIL;

-	}

-

-	if( xAreMathsTaskStillRunning() != pdTRUE )

-	{

-		lReturn = ( long ) pdFAIL;

-	}

-

-	if( xAreBlockingQueuesStillRunning() != pdTRUE )

-	{

-		lReturn = ( long ) pdFAIL;

-	}

-

-	if( xIsCreateTaskStillRunning() != pdTRUE )

-	{

-		lReturn = ( long ) pdFAIL;

-	}

-

-	return lReturn;

-}

-

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/SAM7.mac b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/SAM7.mac
deleted file mode 100644
index 277ca1f..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/SAM7.mac
+++ /dev/null
@@ -1,194 +0,0 @@
-// ---------------------------------------------------------

-//		 Microcontroller Software Support  -  ROUSSET  -

-// ---------------------------------------------------------

-// The software is delivered "AS IS" without warranty or 

-// condition of any  kind, either express, implied or 

-// statutory. This includes without limitation any warranty 

-// or condition with respect to merchantability or fitness 

-// for any particular purpose, or against the infringements of

-// intellectual property rights of others.

-// ---------------------------------------------------------

-//  File: SAM7.mac

-//

-//  1.0 08/Mar/04 JPP    : Creation

-//  1.1 23/Mar/05 JPP    : Change Variable name

-//

-//  $Revision: 1.5 $

-//

-// ---------------------------------------------------------

-

-__var __mac_i;

-__var __mac_pt;

-

-execUserReset()

-{

-   AIC();

-//*  Watchdog Disable

-   Watchdog();

-}

-

-execUserPreload()

-{

-//*  Set the RAM memory at 0x0020 0000 for code AT 0 flash area 

-     CheckRemap();

-//*  Get the Chip ID (AT91C_DBGU_C1R & AT91C_DBGU_C2R

-    __mac_i =__readMemory32(0xFFFFF240,"Memory");

-    __message " ---------------------------------------- Chip ID   0x",__mac_i:%X;  

-    __mac_i =__readMemory32(0xFFFFF244,"Memory");

-    __message " ---------------------------------------- Extention 0x",__mac_i:%X;  

-//* Get the chip status

-

-//* Init AIC

-   AIC();

-//*  Watchdog Disable

-   Watchdog();

-

-}

-

-

-//-----------------------------------------------------------------------------

-// Watchdog

-//-------------------------------

-// Normally, the Watchdog is enable at the reset for load it's preferable to

-// Disable.

-//-----------------------------------------------------------------------------

-Watchdog()

-{

-//* Watchdog Disable

-//      AT91C_BASE_WDTC->WDTC_WDMR= AT91C_WDTC_WDDIS;

-   __writeMemory32(0x00008000,0xFFFFFD44,"Memory");

-   __message "------------------------------- Watchdog Disable ----------------------------------------";  

-}

-

-

-//-----------------------------------------------------------------------------

-// Check Remap

-//-------------

-//-----------------------------------------------------------------------------

-CheckRemap()

-{

-//* Read the value at 0x0

-    __mac_i =__readMemory32(0x00000000,"Memory");

-    __mac_i =__mac_i+1;

-    __writeMemory32(__mac_i,0x00,"Memory");

-    __mac_pt =__readMemory32(0x00000000,"Memory");

-    

- if (__mac_i == __mac_pt)  

- {

-   __message "------------------------------- The Remap is done ----------------------------------------";  

-//*   Toggel RESET The remap

-    __writeMemory32(0x00000001,0xFFFFFF00,"Memory");

-   

- } else {  

-   __message "------------------------------- The Remap is NOT -----------------------------------------";  

- }

-

-}

-

-

-execUserSetup()

-{

- ini();

-     __message "-------------------------------Set PC ----------------------------------------";  

-     __writeMemory32(0x00000000,0xB4,"Register");

-}

-

-//-----------------------------------------------------------------------------

-// Reset the Interrupt Controller

-//-------------------------------

-// Normally, the code is executed only if a reset has been actually performed.

-// So, the AIC initialization resumes at setting up the default vectors.

-//-----------------------------------------------------------------------------

-AIC()

-{

-// Mask All interrupt pAic->AIC_IDCR = 0xFFFFFFFF;

-    __writeMemory32(0xffffffff,0xFFFFF124,"Memory");

-    __writeMemory32(0xffffffff,0xFFFFF128,"Memory");

-// disable peripheral clock  Peripheral Clock Disable Register

-    __writeMemory32(0xffffffff,0xFFFFFC14,"Memory");

-

-// #define AT91C_TC0_SR    ((AT91_REG *) 	0xFFFA0020) // (TC0) Status Register

-// #define AT91C_TC1_SR    ((AT91_REG *) 	0xFFFA0060) // (TC1) Status Register

-// #define AT91C_TC2_SR    ((AT91_REG *) 	0xFFFA00A0) // (TC2) Status Register

-    __readMemory32(0xFFFA0020,"Memory");

-    __readMemory32(0xFFFA0060,"Memory");

-    __readMemory32(0xFFFA00A0,"Memory");

-

-    for (__mac_i=0;__mac_i < 8; __mac_i++)

-    {

-      // AT91C_BASE_AIC->AIC_EOICR

-      __mac_pt  =  __readMemory32(0xFFFFF130,"Memory");

-    

-    }

-   __message "------------------------------- AIC 2 INIT ---------------------------------------------";  

-}

-

-ini()

-{

-__writeMemory32(0x0,0x00,"Register");

-__writeMemory32(0x0,0x04,"Register");

-__writeMemory32(0x0,0x08,"Register");

-__writeMemory32(0x0,0x0C,"Register");

-__writeMemory32(0x0,0x10,"Register");

-__writeMemory32(0x0,0x14,"Register");

-__writeMemory32(0x0,0x18,"Register");

-__writeMemory32(0x0,0x1C,"Register");

-__writeMemory32(0x0,0x20,"Register");

-__writeMemory32(0x0,0x24,"Register");

-__writeMemory32(0x0,0x28,"Register");

-__writeMemory32(0x0,0x2C,"Register");

-__writeMemory32(0x0,0x30,"Register");

-__writeMemory32(0x0,0x34,"Register");

-__writeMemory32(0x0,0x38,"Register");

-

-// Set CPSR

-__writeMemory32(0x0D3,0x98,"Register");

-

-

-}

-

-RG()

-{

-

-__mac_i =__readMemory32(0x00,"Register");   __message "R00 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x04,"Register");   __message "R01 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x08,"Register");   __message "R02 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x0C,"Register");   __message "R03 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x10,"Register");   __message "R04 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x14,"Register");   __message "R05 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x18,"Register");   __message "R06 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x1C,"Register");   __message "R07 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x20,"Register");   __message "R08 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x24,"Register");   __message "R09 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x28,"Register");   __message "R10 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x2C,"Register");   __message "R11 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x30,"Register");   __message "R12 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x34,"Register");   __message "R13 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x38,"Register");   __message "R14 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x3C,"Register");   __message "R13 SVC 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x40,"Register");   __message "R14 SVC 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x44,"Register");   __message "R13 ABT 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x48,"Register");   __message "R14 ABT 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x4C,"Register");   __message "R13 UND 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x50,"Register");   __message "R14 UND 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x54,"Register");   __message "R13 IRQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x58,"Register");   __message "R14 IRQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x5C,"Register");   __message "R08 FIQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x60,"Register");   __message "R09 FIQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x64,"Register");   __message "R10 FIQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x68,"Register");   __message "R11 FIQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x6C,"Register");   __message "R12 FIQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x70,"Register");   __message "R13 FIQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x74,"Register");   __message "R14 FIQ0x",__mac_i:%X; 

-__mac_i =__readMemory32(0x98,"Register");   __message "CPSR     ",__mac_i:%X; 

-__mac_i =__readMemory32(0x94,"Register");   __message "SPSR     ",__mac_i:%X; 

-__mac_i =__readMemory32(0x9C,"Register");   __message "SPSR ABT ",__mac_i:%X; 

-__mac_i =__readMemory32(0xA0,"Register");   __message "SPSR ABT ",__mac_i:%X; 

-__mac_i =__readMemory32(0xA4,"Register");   __message "SPSR UND ",__mac_i:%X; 

-__mac_i =__readMemory32(0xA8,"Register");   __message "SPSR IRQ ",__mac_i:%X; 

-__mac_i =__readMemory32(0xAC,"Register");   __message "SPSR FIQ ",__mac_i:%X; 

-

-__mac_i =__readMemory32(0xB4,"Register");   __message "PC 0x",__mac_i:%X;  

-

-}

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/SAM7_RAM.mac b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/SAM7_RAM.mac
deleted file mode 100644
index 63228c3..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/SAM7_RAM.mac
+++ /dev/null
@@ -1,227 +0,0 @@
-// ---------------------------------------------------------

-//   ATMEL Microcontroller Software Support  -  ROUSSET  -

-// ---------------------------------------------------------

-// The software is delivered "AS IS" without warranty or 

-// condition of any  kind, either express, implied or 

-// statutory. This includes without limitation any warranty 

-// or condition with respect to merchantability or fitness 

-// for any particular purpose, or against the infringements of

-// intellectual property rights of others.

-// ---------------------------------------------------------

-//  File: SAM7_RAM.mac

-//

-//  1.0 08/Mar/05 JPP    : Creation

-//  1.1 23/Mar/05 JPP    : Change Variable name

-//

-//  $Revision: 1.6 $

-//

-// ---------------------------------------------------------

-

-__var __mac_i;

-__var __mac_pt;

-__var __mac_mem;

-execUserReset()

-{

-     CheckNoRemap();

-     ini();

-     AIC();

-     __message "-------------------------------Set PC Reset ----------------------------------";  

-     __writeMemory32(0x00000000,0xB4,"Register");

-}

-

-execUserPreload()

-{

-//*  __message "-------------------------------Set CPSR  ----------------------------------";  

-     __writeMemory32(0xD3,0x98,"Register"); 

-    __writeMemory32(0xffffffff,0xFFFFFC14,"Memory");

-     PllSetting();

- //* Init AIC

-     AIC();

-

-//*  Set the RAM memory at 0x0020 0000 for code AT 0 flash area 

-     CheckNoRemap();

-//*  Get the Chip ID (AT91C_DBGU_C1R & AT91C_DBGU_C2R

-    __mac_i=__readMemory32(0xFFFFF240,"Memory");

-    __message " ---------------------------------------- Chip ID   0x",__mac_i:%X;  

-    __mac_i=__readMemory32(0xFFFFF244,"Memory");

-    __message " ---------------------------------------- Extention 0x",__mac_i:%X;  

-    __mac_i=__readMemory32(0xFFFFFF6C,"Memory");

-    __message " ---------------------------------------- Flash Version 0x",__mac_i:%X;  

-

-//*  Watchdog Disable

-    Watchdog();

-//*    RG();

-}

-//-----------------------------------------------------------------------------

-// PllSetting

-//-------------------------------

-// Set PLL

-//-----------------------------------------------------------------------------

-PllSetting()

-{

-// -1- Enabling the Main Oscillator:

-//*#define AT91C_PMC_MOR   ((AT91_REG *) 	0xFFFFFC20) // (PMC) Main Oscillator Register

-//*#define AT91C_PMC_PLLR  ((AT91_REG *) 	0xFFFFFC2C) // (PMC) PLL Register

-//*#define AT91C_PMC_MCKR  ((AT91_REG *) 	0xFFFFFC30) // (PMC) Master Clock Register

-

-//*pPMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x06 <<8) |    //0x0000 0600

-//                          AT91C_CKGR_MOSCEN ));          //0x0000 0001 

-__writeMemory32(0x00000601,0xFFFFFC20,"Memory");

-

-// -2- Wait

-// -3- Setting PLL and divider:

-// - div by 5 Fin = 3,6864 =(18,432 / 5)

-// - Mul 25+1: Fout =	95,8464 =(3,6864 *26)

-// for 96 MHz the erroe is 0.16%

-// Field out NOT USED = 0

-// PLLCOUNT pll startup time esrtimate at : 0.844 ms

-// PLLCOUNT 28 = 0.000844 /(1/32768)

-//       pPMC->PMC_PLLR = ((AT91C_CKGR_DIV & 0x05) |       //0x0000 0005

-//                         (AT91C_CKGR_PLLCOUNT & (28<<8)) //0x0000 1C00

-//                         (AT91C_CKGR_MUL & (25<<16)));   //0x0019 0000 

-__writeMemory32(0x00191C05,0xFFFFFC2C,"Memory");

-// -2- Wait

-// -5- Selection of Master Clock and Processor Clock

-// select the PLL clock divided by 2

-//	    pPMC->PMC_MCKR = AT91C_PMC_CSS_PLL_CLK |     //0x0000 0003

-//                           AT91C_PMC_PRES_CLK_2 ;      //0x0000 0004

-__writeMemory32(0x00000007,0xFFFFFC30,"Memory");        

-       

-

-   __message "------------------------------- PLL  Enable ----------------------------------------";  

-}

-

-//-----------------------------------------------------------------------------

-// Watchdog

-//-------------------------------

-// Normally, the Watchdog is enable at the reset for load it's preferable to

-// Disable.

-//-----------------------------------------------------------------------------

-Watchdog()

-{

-//* Watchdog Disable

-//      AT91C_BASE_WDTC->WDTC_WDMR= AT91C_WDTC_WDDIS;

-   __writeMemory32(0x00008000,0xFFFFFD44,"Memory");

-   __message "------------------------------- Watchdog Disable ----------------------------------------";  

-}

-

-CheckNoRemap()

-{

-//* Read the value at 0x0

-    __mac_i =__readMemory32(0x00000000,"Memory");

-    __mac_mem = __mac_i;

-    __mac_i=__mac_i+1;

-    __writeMemory32(__mac_i,0x00,"Memory");

-    __mac_pt=__readMemory32(0x00000000,"Memory");

-    

- if (__mac_i == __mac_pt)  

- {

-   __message "------------------------------- The Remap is done ----------------------------------------";  

-   __writeMemory32( __mac_mem,0x00000000,"Memory");

-  

- } else {  

-   __message "------------------------------- The Remap is NOT -----------------------------------------";  

-//*   Toggel RESET The remap

-    __writeMemory32(0x00000001,0xFFFFFF00,"Memory");

- }

-

-}

-

-//-----------------------------------------------------------------------------

-// Reset the Interrupt Controller

-//-------------------------------

-// Normally, the code is executed only if a reset has been actually performed.

-// So, the AIC initialization resumes at setting up the default vectors.

-//-----------------------------------------------------------------------------

-AIC()

-{

-// Mask All interrupt pAic->AIC_IDCR = 0xFFFFFFFF;

-    __writeMemory32(0xffffffff,0xFFFFF124,"Memory");

-    __writeMemory32(0xffffffff,0xFFFFF128,"Memory");

-// disable peripheral clock  Peripheral Clock Disable Register

-    __writeMemory32(0xffffffff,0xFFFFFC14,"Memory");

-

-// #define AT91C_TC0_SR    ((AT91_REG *) 	0xFFFA0020) // (TC0) Status Register

-// #define AT91C_TC1_SR    ((AT91_REG *) 	0xFFFA0060) // (TC1) Status Register

-// #define AT91C_TC2_SR    ((AT91_REG *) 	0xFFFA00A0) // (TC2) Status Register

-    __readMemory32(0xFFFA0020,"Memory");

-    __readMemory32(0xFFFA0060,"Memory");

-    __readMemory32(0xFFFA00A0,"Memory");

-    for (__mac_i=0;__mac_i < 8; __mac_i++)

-    {

-      // AT91C_BASE_AIC->AIC_EOICR

-      __mac_pt  =  __readMemory32(0xFFFFF130,"Memory");

-    

-    }

-   __message "------------------------------- AIC 2 INIT ---------------------------------------------";  

-}

-

-ini()

-{

-__writeMemory32(0x0,0x00,"Register");

-__writeMemory32(0x0,0x04,"Register");

-__writeMemory32(0x0,0x08,"Register");

-__writeMemory32(0x0,0x0C,"Register");

-__writeMemory32(0x0,0x10,"Register");

-__writeMemory32(0x0,0x14,"Register");

-__writeMemory32(0x0,0x18,"Register");

-__writeMemory32(0x0,0x1C,"Register");

-__writeMemory32(0x0,0x20,"Register");

-__writeMemory32(0x0,0x24,"Register");

-__writeMemory32(0x0,0x28,"Register");

-__writeMemory32(0x0,0x2C,"Register");

-__writeMemory32(0x0,0x30,"Register");

-__writeMemory32(0x0,0x34,"Register");

-__writeMemory32(0x0,0x38,"Register");

-

-// Set CPSR

-__writeMemory32(0x0D3,0x98,"Register");

-

-

-}

-

-RG()

-{

-

-__mac_i =__readMemory32(0x00,"Register");   __message "R00 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x04,"Register");   __message "R01 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x08,"Register");   __message "R02 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x0C,"Register");   __message "R03 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x10,"Register");   __message "R04 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x14,"Register");   __message "R05 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x18,"Register");   __message "R06 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x1C,"Register");   __message "R07 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x20,"Register");   __message "R08 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x24,"Register");   __message "R09 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x28,"Register");   __message "R10 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x2C,"Register");   __message "R11 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x30,"Register");   __message "R12 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x34,"Register");   __message "R13 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x38,"Register");   __message "R14 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x3C,"Register");   __message "R13 SVC 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x40,"Register");   __message "R14 SVC 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x44,"Register");   __message "R13 ABT 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x48,"Register");   __message "R14 ABT 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x4C,"Register");   __message "R13 UND 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x50,"Register");   __message "R14 UND 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x54,"Register");   __message "R13 IRQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x58,"Register");   __message "R14 IRQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x5C,"Register");   __message "R08 FIQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x60,"Register");   __message "R09 FIQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x64,"Register");   __message "R10 FIQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x68,"Register");   __message "R11 FIQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x6C,"Register");   __message "R12 FIQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x70,"Register");   __message "R13 FIQ 0x",__mac_i:%X;  

-__mac_i =__readMemory32(0x74,"Register");   __message "R14 FIQ0x",__mac_i:%X; 

-__mac_i =__readMemory32(0x98,"Register");   __message "CPSR     ",__mac_i:%X; 

-__mac_i =__readMemory32(0x94,"Register");   __message "SPSR     ",__mac_i:%X; 

-__mac_i =__readMemory32(0x9C,"Register");   __message "SPSR ABT ",__mac_i:%X; 

-__mac_i =__readMemory32(0xA0,"Register");   __message "SPSR ABT ",__mac_i:%X; 

-__mac_i =__readMemory32(0xA4,"Register");   __message "SPSR UND ",__mac_i:%X; 

-__mac_i =__readMemory32(0xA8,"Register");   __message "SPSR IRQ ",__mac_i:%X; 

-__mac_i =__readMemory32(0xAC,"Register");   __message "SPSR FIQ ",__mac_i:%X; 

-

-__mac_i =__readMemory32(0xB4,"Register");   __message "PC 0x",__mac_i:%X;  

-

-}

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/at91SAM7X256_FLASH.icf b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/at91SAM7X256_FLASH.icf
deleted file mode 100644
index c9591f6..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/at91SAM7X256_FLASH.icf
+++ /dev/null
@@ -1,43 +0,0 @@
-/*###ICF### Section handled by ICF editor, don't touch! ****/

-/*-Editor annotation file-*/

-/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */

-/*-Specials-*/

-define symbol __ICFEDIT_intvec_start__ = 0x00100000;

-/*-Memory Regions-*/

-define symbol __ICFEDIT_region_ROM_start__ = 0x00100040;

-define symbol __ICFEDIT_region_ROM_end__   = 0x0013FFFF;

-define symbol __ICFEDIT_region_RAM_start__  = 0x00200000;

-define symbol __ICFEDIT_region_RAM_end__    = 0x0020FFFF;

-/*-Sizes-*/

-define symbol __ICFEDIT_size_cstack__   = 0x400;

-define symbol __ICFEDIT_size_svcstack__ = 0x100;

-define symbol __ICFEDIT_size_irqstack__ = 0x100;

-define symbol __ICFEDIT_size_fiqstack__ = 0x0;

-define symbol __ICFEDIT_size_undstack__ = 0x0;

-define symbol __ICFEDIT_size_abtstack__ = 0x0;

-define symbol __ICFEDIT_size_heap__     = 0x0;

-/**** End of ICF editor section. ###ICF###*/

-

-

-define memory mem with size = 4G;

-define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];

-define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];

-

-define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   { };

-define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };

-define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };

-define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };

-define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };

-define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };

-define block HEAP      with alignment = 8, size = __ICFEDIT_size_heap__     { };

-

-initialize by copy { readwrite };

-do not initialize  { section .noinit };

-

-place at address mem:__ICFEDIT_intvec_start__    { readonly section .intvec };

-

-place in ROM_region   { readonly };

-place in RAM_region   { readwrite,

-                        block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,

-                        block UND_STACK, block ABT_STACK, block HEAP };

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/at91sam7x-ek-flash.mac b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/at91sam7x-ek-flash.mac
deleted file mode 100644
index 5d0997b..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/resource/at91sam7x-ek-flash.mac
+++ /dev/null
@@ -1,73 +0,0 @@
-//  ----------------------------------------------------------------------------

-//          ATMEL Microcontroller Software Support  -  ROUSSET  -

-//  ----------------------------------------------------------------------------

-//  DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR

-//  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

-//  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE

-//  DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,

-//  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

-//  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,

-//  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF

-//  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

-//  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,

-//  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-//  ----------------------------------------------------------------------------

-//  File Name           : SAM7_FLASH.mac

-//  Object              : Generic Macro File for IAR

-//  1.0 17/Aug/05 FBr   : Creation

-//  ----------------------------------------------------------------------------

-

-/*********************************************************************

-*

-*       _InitRSTC()

-*

-* Function description

-*   Initializes the RSTC (Reset controller).

-*   This makes sense since the default is to not allow user resets, which makes it impossible to

-*   apply a second RESET via J-Link

-*/

-_InitRSTC() {

-    __writeMemory32(0xA5000001, 0xFFFFFD08,"Memory");    // Allow user reset

-}

-

-/*********************************************************************

-*

-*       _InitPLL()

-* Function description

-*   Initializes the PMC.

-*   1. Enable the Main Oscillator

-*   2. Configure PLL to 96MHz

-*   3. Switch Master Clock (MCK) on PLL/2 = 48MHz

-*/

-_InitPLL() {

-

-    __message "Enable Main Oscillator";

-    __writeMemory32(0x00000601,0xFFFFFc20,"Memory");    // MOSC

-    while( !(__readMemory32(0xFFFFFc68,"Memory") & 0x1)  );

-

-    __message "Set PLL to 96MHz";

-    __writeMemory32(0x10191c05,0xFFFFFc2c,"Memory");    // LOCK

-    while( !(__readMemory32(0xFFFFFc68,"Memory") & 0x4)  );

-

-    __message "Set Master Clock to 48MHz";

-    __writeMemory32(0x00000004,0xFFFFFc30,"Memory");    // MCKRDY

-    while( !(__readMemory32(0xFFFFFc68,"Memory") & 0x8)  );

-    __writeMemory32(0x00000007,0xFFFFFc30,"Memory");    // MCKRDY

-    while( !(__readMemory32(0xFFFFFc68,"Memory") & 0x8)  );

-

-    // Set 1 WS for Flash accesses on each EFC 

-    __writeMemory32(0x00480100,0xFFFFFF60,"Memory");

-    __writeMemory32(0x00480100,0xFFFFFF70,"Memory");

-}

-

-/*********************************************************************

-*

-*       execUserReset() : JTAG set initially to Full Speed

-*/

-execUserReset() {

-    __message "execUserReset()";

-    __hwReset(0);                       // Hardware Reset: CPU is automatically halted after the reset (JTAG is already configured to 32kHz)

-    _InitPLL();                         // Allow to debug at JTAG Full Speed

-    _InitRSTC();                        // Enable User Reset to allow execUserReset() execution

-}

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewd b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewd
deleted file mode 100644
index 98c02c3..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewd
+++ /dev/null
@@ -1,1379 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>

-

-<project>

-  <fileVersion>2</fileVersion>

-  <configuration>

-    <name>Flash Debug</name>

-    <toolchain>

-      <name>ARM</name>

-    </toolchain>

-    <debug>1</debug>

-    <settings>

-      <name>C-SPY</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>21</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>CInput</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CEndian</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CProcessor</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OCVariant</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>MacOverride</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>MacFile</name>

-          <state>$PROJ_DIR$\resource\at91sam7x-ek-flash.mac</state>

-        </option>

-        <option>

-          <name>MemOverride</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>MemFile</name>

-          <state>$TOOLKIT_DIR$\CONFIG\debugger\Atmel\ioAT91SAM7X256.ddf</state>

-        </option>

-        <option>

-          <name>RunToEnable</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>RunToName</name>

-          <state>main</state>

-        </option>

-        <option>

-          <name>CExtraOptionsCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CExtraOptions</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CFpuProcessor</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OCDDFArgumentProducer</name>

-          <state></state>

-        </option>

-        <option>

-          <name>OCDownloadSuppressDownload</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCDownloadVerifyAll</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OCProductVersion</name>

-          <state>4.10B</state>

-        </option>

-        <option>

-          <name>OCDynDriverList</name>

-          <state>JLINK_ID</state>

-        </option>

-        <option>

-          <name>OCLastSavedByProductVersion</name>

-          <state>5.40.2.51615</state>

-        </option>

-        <option>

-          <name>OCDownloadAttachToProgram</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>UseFlashLoader</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CLowLevel</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OCBE8Slave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>MacFile2</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CDevice</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>FlashLoadersV3</name>

-          <state>$TOOLKIT_DIR$\config\flashloader\Atmel\AT91SAM7X256-EK\at91sam7x256-flash.board</state>

-        </option>

-        <option>

-          <name>OCImagesSuppressCheck1</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCImagesPath1</name>

-          <state></state>

-        </option>

-        <option>

-          <name>OCImagesSuppressCheck2</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCImagesPath2</name>

-          <state></state>

-        </option>

-        <option>

-          <name>OCImagesSuppressCheck3</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCImagesPath3</name>

-          <state></state>

-        </option>

-        <option>

-          <name>OverrideDefFlashBoard</name>

-          <state>0</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>ARMSIM_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>1</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>OCSimDriverInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OCSimEnablePSP</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCSimPspOverrideConfig</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCSimPspConfigFile</name>

-          <state></state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>ANGEL_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>0</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>CCAngelHeartbeat</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CAngelCommunication</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CAngelCommBaud</name>

-          <version>0</version>

-          <state>3</state>

-        </option>

-        <option>

-          <name>CAngelCommPort</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>ANGELTCPIP</name>

-          <state>aaa.bbb.ccc.ddd</state>

-        </option>

-        <option>

-          <name>DoAngelLogfile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>AngelLogFile</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>GDBSERVER_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>0</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>TCPIP</name>

-          <state>aaa.bbb.ccc.ddd</state>

-        </option>

-        <option>

-          <name>DoLogfile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>LogFile</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>CCJTagBreakpointRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJTagDoUpdateBreakpoints</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJTagUpdateBreakpoints</name>

-          <state>main</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>IARROM_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>0</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>CRomLogFileCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CRomLogFileEditB</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>CRomCommunication</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CRomCommPort</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CRomCommBaud</name>

-          <version>0</version>

-          <state>7</state>

-        </option>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>JLINK_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>10</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>JLinkSpeed</name>

-          <state>30</state>

-        </option>

-        <option>

-          <name>CCJLinkDoLogfile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkLogFile</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>CCJLinkHWResetDelay</name>

-          <state></state>

-        </option>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>JLinkInitialSpeed</name>

-          <state>32</state>

-        </option>

-        <option>

-          <name>CCDoJlinkMultiTarget</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCScanChainNonARMDevices</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkMultiTarget</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkIRLength</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkCommRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkTCPIP</name>

-          <state>aaa.bbb.ccc.ddd</state>

-        </option>

-        <option>

-          <name>CCJLinkSpeedRadioV2</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCUSBDevice</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchReset</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchUndef</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchSWI</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchData</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchPrefetch</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchIRQ</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchFIQ</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkBreakpointRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkDoUpdateBreakpoints</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkUpdateBreakpoints</name>

-          <state>main</state>

-        </option>

-        <option>

-          <name>CCJLinkInterfaceRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCJLinkAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCJLinkResetList</name>

-          <version>0</version>

-          <state>5</state>

-        </option>

-        <option>

-          <name>CCJLinkInterfaceCmdLine</name>

-          <state>0</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>LMIFTDI_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>2</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>LmiftdiSpeed</name>

-          <state>500</state>

-        </option>

-        <option>

-          <name>CCLmiftdiDoLogfile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCLmiftdiLogFile</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>CCLmiFtdiInterfaceRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCLmiFtdiInterfaceCmdLine</name>

-          <state>0</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>MACRAIGOR_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>3</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>jtag</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>EmuSpeed</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>TCPIP</name>

-          <state>aaa.bbb.ccc.ddd</state>

-        </option>

-        <option>

-          <name>DoLogfile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>LogFile</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>DoEmuMultiTarget</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>EmuMultiTarget</name>

-          <state>0@ARM7TDMI</state>

-        </option>

-        <option>

-          <name>EmuHWReset</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CEmuCommBaud</name>

-          <version>0</version>

-          <state>4</state>

-        </option>

-        <option>

-          <name>CEmuCommPort</name>

-          <version>0</version>

-          <state>4</state>

-        </option>

-        <option>

-          <name>jtago</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>UnusedAddr</name>

-          <state>0x00800000</state>

-        </option>

-        <option>

-          <name>CCMacraigorHWResetDelay</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CCJTagBreakpointRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJTagDoUpdateBreakpoints</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJTagUpdateBreakpoints</name>

-          <state>main</state>

-        </option>

-        <option>

-          <name>CCMacraigorInterfaceRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCMacraigorInterfaceCmdLine</name>

-          <state>0</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>RDI_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>1</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>CRDIDriverDll</name>

-          <state>Browse to your RDI driver</state>

-        </option>

-        <option>

-          <name>CRDILogFileCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CRDILogFileEdit</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>CCRDIHWReset</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchReset</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchUndef</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchSWI</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchData</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchPrefetch</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchIRQ</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchFIQ</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDIUseETM</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>STLINK_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>0</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>THIRDPARTY_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>0</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>CThirdPartyDriverDll</name>

-          <state>Browse to your third-party driver</state>

-        </option>

-        <option>

-          <name>CThirdPartyLogFileCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CThirdPartyLogFileEditB</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-      </data>

-    </settings>

-    <debuggerPlugins>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin</file>

-        <loadFlag>1</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>

-        <loadFlag>1</loadFlag>

-      </plugin>

-    </debuggerPlugins>

-  </configuration>

-  <configuration>

-    <name>Flash Release</name>

-    <toolchain>

-      <name>ARM</name>

-    </toolchain>

-    <debug>0</debug>

-    <settings>

-      <name>C-SPY</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>21</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>CInput</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CEndian</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CProcessor</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OCVariant</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>MacOverride</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>MacFile</name>

-          <state>$PROJ_DIR$\resource\at91sam7x-ek-flash.mac</state>

-        </option>

-        <option>

-          <name>MemOverride</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>MemFile</name>

-          <state>$TOOLKIT_DIR$\CONFIG\debugger\Atmel\ioAT91SAM7X256.ddf</state>

-        </option>

-        <option>

-          <name>RunToEnable</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>RunToName</name>

-          <state>main</state>

-        </option>

-        <option>

-          <name>CExtraOptionsCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CExtraOptions</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CFpuProcessor</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OCDDFArgumentProducer</name>

-          <state></state>

-        </option>

-        <option>

-          <name>OCDownloadSuppressDownload</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCDownloadVerifyAll</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OCProductVersion</name>

-          <state>4.10B</state>

-        </option>

-        <option>

-          <name>OCDynDriverList</name>

-          <state>JLINK_ID</state>

-        </option>

-        <option>

-          <name>OCLastSavedByProductVersion</name>

-          <state>5.40.2.51615</state>

-        </option>

-        <option>

-          <name>OCDownloadAttachToProgram</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>UseFlashLoader</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CLowLevel</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OCBE8Slave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>MacFile2</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CDevice</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>FlashLoadersV3</name>

-          <state>$TOOLKIT_DIR$\config\flashloader\Atmel\AT91SAM7X256-EK\at91sam7x256-flash.board</state>

-        </option>

-        <option>

-          <name>OCImagesSuppressCheck1</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCImagesPath1</name>

-          <state></state>

-        </option>

-        <option>

-          <name>OCImagesSuppressCheck2</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCImagesPath2</name>

-          <state></state>

-        </option>

-        <option>

-          <name>OCImagesSuppressCheck3</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCImagesPath3</name>

-          <state></state>

-        </option>

-        <option>

-          <name>OverrideDefFlashBoard</name>

-          <state>0</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>ARMSIM_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>1</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>OCSimDriverInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OCSimEnablePSP</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCSimPspOverrideConfig</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCSimPspConfigFile</name>

-          <state></state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>ANGEL_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>0</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>CCAngelHeartbeat</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CAngelCommunication</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CAngelCommBaud</name>

-          <version>0</version>

-          <state>3</state>

-        </option>

-        <option>

-          <name>CAngelCommPort</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>ANGELTCPIP</name>

-          <state>aaa.bbb.ccc.ddd</state>

-        </option>

-        <option>

-          <name>DoAngelLogfile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>AngelLogFile</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>GDBSERVER_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>0</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>TCPIP</name>

-          <state>aaa.bbb.ccc.ddd</state>

-        </option>

-        <option>

-          <name>DoLogfile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>LogFile</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>CCJTagBreakpointRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJTagDoUpdateBreakpoints</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJTagUpdateBreakpoints</name>

-          <state>main</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>IARROM_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>0</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>CRomLogFileCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CRomLogFileEditB</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>CRomCommunication</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CRomCommPort</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CRomCommBaud</name>

-          <version>0</version>

-          <state>7</state>

-        </option>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>JLINK_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>10</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>JLinkSpeed</name>

-          <state>30</state>

-        </option>

-        <option>

-          <name>CCJLinkDoLogfile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkLogFile</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>CCJLinkHWResetDelay</name>

-          <state></state>

-        </option>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>JLinkInitialSpeed</name>

-          <state>32</state>

-        </option>

-        <option>

-          <name>CCDoJlinkMultiTarget</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCScanChainNonARMDevices</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkMultiTarget</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkIRLength</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkCommRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkTCPIP</name>

-          <state>aaa.bbb.ccc.ddd</state>

-        </option>

-        <option>

-          <name>CCJLinkSpeedRadioV2</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCUSBDevice</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchReset</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchUndef</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchSWI</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchData</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchPrefetch</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchIRQ</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchFIQ</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkBreakpointRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkDoUpdateBreakpoints</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJLinkUpdateBreakpoints</name>

-          <state>main</state>

-        </option>

-        <option>

-          <name>CCJLinkInterfaceRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCJLinkAttachSlave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCJLinkResetList</name>

-          <version>0</version>

-          <state>5</state>

-        </option>

-        <option>

-          <name>CCJLinkInterfaceCmdLine</name>

-          <state>0</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>LMIFTDI_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>2</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>LmiftdiSpeed</name>

-          <state>500</state>

-        </option>

-        <option>

-          <name>CCLmiftdiDoLogfile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCLmiftdiLogFile</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>CCLmiFtdiInterfaceRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCLmiFtdiInterfaceCmdLine</name>

-          <state>0</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>MACRAIGOR_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>3</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>jtag</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>EmuSpeed</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>TCPIP</name>

-          <state>aaa.bbb.ccc.ddd</state>

-        </option>

-        <option>

-          <name>DoLogfile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>LogFile</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>DoEmuMultiTarget</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>EmuMultiTarget</name>

-          <state>0@ARM7TDMI</state>

-        </option>

-        <option>

-          <name>EmuHWReset</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CEmuCommBaud</name>

-          <version>0</version>

-          <state>4</state>

-        </option>

-        <option>

-          <name>CEmuCommPort</name>

-          <version>0</version>

-          <state>4</state>

-        </option>

-        <option>

-          <name>jtago</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>UnusedAddr</name>

-          <state>0x00800000</state>

-        </option>

-        <option>

-          <name>CCMacraigorHWResetDelay</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CCJTagBreakpointRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJTagDoUpdateBreakpoints</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCJTagUpdateBreakpoints</name>

-          <state>main</state>

-        </option>

-        <option>

-          <name>CCMacraigorInterfaceRadio</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCMacraigorInterfaceCmdLine</name>

-          <state>0</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>RDI_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>1</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>CRDIDriverDll</name>

-          <state>Browse to your RDI driver</state>

-        </option>

-        <option>

-          <name>CRDILogFileCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CRDILogFileEdit</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>CCRDIHWReset</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchReset</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchUndef</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchSWI</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchData</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchPrefetch</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchIRQ</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDICatchFIQ</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCRDIUseETM</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>STLINK_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>0</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>THIRDPARTY_ID</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>0</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>CThirdPartyDriverDll</name>

-          <state>Browse to your third-party driver</state>

-        </option>

-        <option>

-          <name>CThirdPartyLogFileCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CThirdPartyLogFileEditB</name>

-          <state>$TOOLKIT_DIR$\cspycomm.log</state>

-        </option>

-        <option>

-          <name>OCDriverInfo</name>

-          <state>1</state>

-        </option>

-      </data>

-    </settings>

-    <debuggerPlugins>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>

-        <loadFlag>1</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>

-        <loadFlag>0</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin</file>

-        <loadFlag>1</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin</file>

-        <loadFlag>1</loadFlag>

-      </plugin>

-      <plugin>

-        <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>

-        <loadFlag>1</loadFlag>

-      </plugin>

-    </debuggerPlugins>

-  </configuration>

-</project>

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewp b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewp
deleted file mode 100644
index 5a62fd6..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.ewp
+++ /dev/null
@@ -1,1696 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>

-

-<project>

-  <fileVersion>2</fileVersion>

-  <configuration>

-    <name>Flash Debug</name>

-    <toolchain>

-      <name>ARM</name>

-    </toolchain>

-    <debug>1</debug>

-    <settings>

-      <name>General</name>

-      <archiveVersion>3</archiveVersion>

-      <data>

-        <version>17</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>ExePath</name>

-          <state>Flash_Debug\Exe</state>

-        </option>

-        <option>

-          <name>ObjPath</name>

-          <state>Flash_Debug\Obj</state>

-        </option>

-        <option>

-          <name>ListPath</name>

-          <state>Flash_Debug\List</state>

-        </option>

-        <option>

-          <name>Variant</name>

-          <version>11</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>GEndianMode</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>Input variant</name>

-          <version>1</version>

-          <state>3</state>

-        </option>

-        <option>

-          <name>Input description</name>

-          <state>No specifier n, no float nor long long, no scan set, no assignment suppressing.</state>

-        </option>

-        <option>

-          <name>Output variant</name>

-          <version>0</version>

-          <state>2</state>

-        </option>

-        <option>

-          <name>Output description</name>

-          <state>No specifier a, A, no specifier n, no float nor long long.</state>

-        </option>

-        <option>

-          <name>GOutputBinary</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>FPU</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OGCoreOrChip</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>GRuntimeLibSelect</name>

-          <version>0</version>

-          <state>1</state>

-        </option>

-        <option>

-          <name>GRuntimeLibSelectSlave</name>

-          <version>0</version>

-          <state>1</state>

-        </option>

-        <option>

-          <name>RTDescription</name>

-          <state>Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.</state>

-        </option>

-        <option>

-          <name>RTConfigPath</name>

-          <state>$TOOLKIT_DIR$\INC\DLib_Config_Normal.h</state>

-        </option>

-        <option>

-          <name>OGProductVersion</name>

-          <state>4.11A</state>

-        </option>

-        <option>

-          <name>OGLastSavedByProductVersion</name>

-          <state>5.11.0.50615</state>

-        </option>

-        <option>

-          <name>GeneralEnableMisra</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>GeneralMisraVerbose</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OGChipSelectEditMenu</name>

-          <state>AT91SAM7X256	Atmel AT91SAM7X256</state>

-        </option>

-        <option>

-          <name>GenLowLevelInterface</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>GEndianModeBE</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OGBufferedTerminalOutput</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>GenStdoutInterface</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>GeneralMisraRules98</name>

-          <version>0</version>

-          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>

-        </option>

-        <option>

-          <name>GeneralMisraVer</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>GeneralMisraRules04</name>

-          <version>0</version>

-          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>ICCARM</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>21</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>CCDefines</name>

-          <state>SAM7_IAR</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>0</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>pe815, pe191, pa082, pe167, pa050</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>CCObjPrefix</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCAllowList</name>

-          <version>1</version>

-          <state>0000000</state>

-        </option>

-        <option>

-          <name>CCDebugInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IEndianMode</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IProcessor</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IExtraOptionsCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IExtraOptions</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CCLangConformance</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCSignedPlainChar</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCRequirePrototypes</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCMultibyteSupport</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCDiagWarnAreErr</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCCompilerRuntimeInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IFpuProcessor</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OutputFile</name>

-          <state>$FILE_BNAME$.o</state>

-        </option>

-        <option>

-          <name>CCLangSelect</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCLibConfigHeader</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>PreInclude</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CompilerMisraOverride</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCIncludePath2</name>

-          <state>$PROJ_DIR$\..\..\source\portable\iar\AtmelSAM7S64</state>

-          <state>$PROJ_DIR$\..\common\include</state>

-          <state>$PROJ_DIR$\..\..\source\include</state>

-          <state>$PROJ_DIR$\SrcIAR</state>

-          <state>$PROJ_DIR$</state>

-          <state>$PROJ_DIR$\uip</state>

-          <state>$PROJ_DIR$\emac</state>

-        </option>

-        <option>

-          <name>CCStdIncCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCStdIncludePath</name>

-          <state>$TOOLKIT_DIR$\INC\</state>

-        </option>

-        <option>

-          <name>CCCodeSection</name>

-          <state>.text</state>

-        </option>

-        <option>

-          <name>IInterwork2</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IProcessorMode2</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCOptLevel</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCOptStrategy</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCOptLevelSlave</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CompilerMisraRules98</name>

-          <version>0</version>

-          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>

-        </option>

-        <option>

-          <name>CompilerMisraRules04</name>

-          <version>0</version>

-          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>AARM</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>7</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>AObjPrefix</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>AEndian</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>ACaseSensitivity</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>MacroChars</name>

-          <version>0</version>

-          <state>0</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>ADebug</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>AltRegisterNames</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>ADefines</name>

-          <state></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>AProcessor</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>AFpuProcessor</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>AOutputFile</name>

-          <state>$FILE_BNAME$.o</state>

-        </option>

-        <option>

-          <name>AMultibyteSupport</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>ALimitErrorsCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>ALimitErrorsEdit</name>

-          <state>100</state>

-        </option>

-        <option>

-          <name>AIgnoreStdInclude</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>AStdIncludes</name>

-          <state>$TOOLKIT_DIR$\INC\</state>

-        </option>

-        <option>

-          <name>AUserIncludes</name>

-          <state>$PROJ_DIR$\srciar\</state>

-          <state>$PROJ_DIR$\..\..\include\</state>

-          <state>$PROJ_DIR$\..\common\include</state>

-          <state>$PROJ_DIR$\..\..\Source\include</state>

-          <state>$PROJ_DIR$\..\..\Source\portable\IAR\AtmelSAM7S64</state>

-        </option>

-        <option>

-          <name>AExtraOptionsCheckV2</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>AExtraOptionsV2</name>

-          <state></state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>OBJCOPY</name>

-      <archiveVersion>0</archiveVersion>

-      <data>

-        <version>1</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>OOCOutputFormat</name>

-          <version>2</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCOutputOverride</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OOCOutputFile</name>

-          <state>rtosdemo.srec</state>

-        </option>

-        <option>

-          <name>OOCCommandLineProducer</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OOCObjCopyEnable</name>

-          <state>0</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>CUSTOM</name>

-      <archiveVersion>3</archiveVersion>

-      <data>

-        <extensions></extensions>

-        <cmdline></cmdline>

-      </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>ILINK</name>

-      <archiveVersion>0</archiveVersion>

-      <data>

-        <version>8</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>IlinkLibIOConfig</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>XLinkMisraHandler</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkInputFileSlave</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkOutputFile</name>

-          <state>rtosdemo.out</state>

-        </option>

-        <option>

-          <name>IlinkDebugInfoEnable</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IlinkKeepSymbols</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkRawBinaryFile</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkRawBinarySymbol</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkRawBinarySegment</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkRawBinaryAlign</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkDefines</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkConfigDefines</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkMapFile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkLogFile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkLogInitialization</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkLogModule</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkLogSection</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkLogVeneer</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkIcfOverride</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IlinkIcfFile</name>

-          <state>$PROJ_DIR$\resource\at91SAM7X256_FLASH.icf</state>

-        </option>

-        <option>

-          <name>IlinkIcfFileSlave</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkEnableRemarks</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkSuppressDiags</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkTreatAsRem</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkTreatAsWarn</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkTreatAsErr</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkWarningsAreErrors</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkUseExtraOptions</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkExtraOptions</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkLowLevelInterfaceSlave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IlinkAutoLibEnable</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IlinkAdditionalLibs</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkOverrideProgramEntryLabel</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkProgramEntryLabelSelect</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkProgramEntryLabel</name>

-          <state>__iar_program_start</state>

-        </option>

-        <option>

-          <name>DoFill</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>FillerByte</name>

-          <state>0xFF</state>

-        </option>

-        <option>

-          <name>FillerStart</name>

-          <state>0x0</state>

-        </option>

-        <option>

-          <name>FillerEnd</name>

-          <state>0x0</state>

-        </option>

-        <option>

-          <name>CrcSize</name>

-          <version>0</version>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CrcAlign</name>

-          <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>CrcBitOrder</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CrcInitialValue</name>

-          <state>0x0</state>

-        </option>

-        <option>

-          <name>DoCrc</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkBE8Slave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IlinkBufferedTerminalOutput</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IlinkStdoutInterfaceSlave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CrcFullSize</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkIElfToolPostProcess</name>

-          <state>0</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>IARCHIVE</name>

-      <archiveVersion>0</archiveVersion>

-      <data>

-        <version>0</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>1</debug>

-        <option>

-          <name>IarchiveInputs</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IarchiveOverride</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IarchiveOutput</name>

-          <state>###Unitialized###</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>BILINK</name>

-      <archiveVersion>0</archiveVersion>

-      <data/>

-    </settings>

-  </configuration>

-  <configuration>

-    <name>Flash Release</name>

-    <toolchain>

-      <name>ARM</name>

-    </toolchain>

-    <debug>0</debug>

-    <settings>

-      <name>General</name>

-      <archiveVersion>3</archiveVersion>

-      <data>

-        <version>17</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>ExePath</name>

-          <state>Flash Release\Exe</state>

-        </option>

-        <option>

-          <name>ObjPath</name>

-          <state>Flash Release\Obj</state>

-        </option>

-        <option>

-          <name>ListPath</name>

-          <state>Flash Release\List</state>

-        </option>

-        <option>

-          <name>Variant</name>

-          <version>11</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>GEndianMode</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>Input variant</name>

-          <version>1</version>

-          <state>3</state>

-        </option>

-        <option>

-          <name>Input description</name>

-          <state>No specifier n, no float nor long long, no scan set, no assignment suppressing.</state>

-        </option>

-        <option>

-          <name>Output variant</name>

-          <version>0</version>

-          <state>2</state>

-        </option>

-        <option>

-          <name>Output description</name>

-          <state>No specifier a, A, no specifier n, no float nor long long.</state>

-        </option>

-        <option>

-          <name>GOutputBinary</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>FPU</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OGCoreOrChip</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>GRuntimeLibSelect</name>

-          <version>0</version>

-          <state>1</state>

-        </option>

-        <option>

-          <name>GRuntimeLibSelectSlave</name>

-          <version>0</version>

-          <state>1</state>

-        </option>

-        <option>

-          <name>RTDescription</name>

-          <state>Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.</state>

-        </option>

-        <option>

-          <name>RTConfigPath</name>

-          <state>$TOOLKIT_DIR$\INC\DLib_Config_Normal.h</state>

-        </option>

-        <option>

-          <name>OGProductVersion</name>

-          <state>4.11A</state>

-        </option>

-        <option>

-          <name>OGLastSavedByProductVersion</name>

-          <state>5.11.0.50615</state>

-        </option>

-        <option>

-          <name>GeneralEnableMisra</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>GeneralMisraVerbose</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OGChipSelectEditMenu</name>

-          <state>AT91SAM7X256	Atmel AT91SAM7X256</state>

-        </option>

-        <option>

-          <name>GenLowLevelInterface</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>GEndianModeBE</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OGBufferedTerminalOutput</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>GenStdoutInterface</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>GeneralMisraRules98</name>

-          <version>0</version>

-          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>

-        </option>

-        <option>

-          <name>GeneralMisraVer</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>GeneralMisraRules04</name>

-          <version>0</version>

-          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>ICCARM</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>21</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>CCDefines</name>

-          <state>SAM7_IAR</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>0</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>pe815, pe191, pa082, pe167, pa050</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>CCObjPrefix</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCAllowList</name>

-          <version>1</version>

-          <state>0111101</state>

-        </option>

-        <option>

-          <name>CCDebugInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IEndianMode</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IProcessor</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IExtraOptionsCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IExtraOptions</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CCLangConformance</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCSignedPlainChar</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCRequirePrototypes</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCMultibyteSupport</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCDiagWarnAreErr</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCCompilerRuntimeInfo</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IFpuProcessor</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OutputFile</name>

-          <state>$FILE_BNAME$.o</state>

-        </option>

-        <option>

-          <name>CCLangSelect</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCLibConfigHeader</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>PreInclude</name>

-          <state></state>

-        </option>

-        <option>

-          <name>CompilerMisraOverride</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCIncludePath2</name>

-          <state>$PROJ_DIR$\..\..\source\portable\iar\AtmelSAM7S64</state>

-          <state>$PROJ_DIR$\..\common\include</state>

-          <state>$PROJ_DIR$\..\..\source\include</state>

-          <state>$PROJ_DIR$\SrcIAR</state>

-          <state>$PROJ_DIR$</state>

-          <state>$PROJ_DIR$\uip</state>

-          <state>$PROJ_DIR$\emac</state>

-        </option>

-        <option>

-          <name>CCStdIncCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CCStdIncludePath</name>

-          <state>$TOOLKIT_DIR$\INC\</state>

-        </option>

-        <option>

-          <name>CCCodeSection</name>

-          <state>.text</state>

-        </option>

-        <option>

-          <name>IInterwork2</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IProcessorMode2</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CCOptLevel</name>

-          <state>3</state>

-        </option>

-        <option>

-          <name>CCOptStrategy</name>

-          <version>0</version>

-          <state>2</state>

-        </option>

-        <option>

-          <name>CCOptLevelSlave</name>

-          <state>3</state>

-        </option>

-        <option>

-          <name>CompilerMisraRules98</name>

-          <version>0</version>

-          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>

-        </option>

-        <option>

-          <name>CompilerMisraRules04</name>

-          <version>0</version>

-          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>AARM</name>

-      <archiveVersion>2</archiveVersion>

-      <data>

-        <version>7</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>AObjPrefix</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>AEndian</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>ACaseSensitivity</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>MacroChars</name>

-          <version>0</version>

-          <state>0</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>ADebug</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>AltRegisterNames</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>ADefines</name>

-          <state></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>AProcessor</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>AFpuProcessor</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>AOutputFile</name>

-          <state>$FILE_BNAME$.o</state>

-        </option>

-        <option>

-          <name>AMultibyteSupport</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>ALimitErrorsCheck</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>ALimitErrorsEdit</name>

-          <state>100</state>

-        </option>

-        <option>

-          <name>AIgnoreStdInclude</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>AStdIncludes</name>

-          <state>$TOOLKIT_DIR$\INC\</state>

-        </option>

-        <option>

-          <name>AUserIncludes</name>

-          <state>$PROJ_DIR$\srciar\</state>

-          <state>$PROJ_DIR$\..\..\include\</state>

-          <state>$PROJ_DIR$\..\common\include</state>

-          <state>$PROJ_DIR$\..\..\Source\include</state>

-          <state>$PROJ_DIR$\..\..\Source\portable\IAR\AtmelSAM7S64</state>

-        </option>

-        <option>

-          <name>AExtraOptionsCheckV2</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>AExtraOptionsV2</name>

-          <state></state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>OBJCOPY</name>

-      <archiveVersion>0</archiveVersion>

-      <data>

-        <version>1</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>OOCOutputFormat</name>

-          <version>2</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OCOutputOverride</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>OOCOutputFile</name>

-          <state></state>

-        </option>

-        <option>

-          <name>OOCCommandLineProducer</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>OOCObjCopyEnable</name>

-          <state>0</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>CUSTOM</name>

-      <archiveVersion>3</archiveVersion>

-      <data>

-        <extensions></extensions>

-        <cmdline></cmdline>

-      </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>ILINK</name>

-      <archiveVersion>0</archiveVersion>

-      <data>

-        <version>8</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>IlinkLibIOConfig</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>XLinkMisraHandler</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkInputFileSlave</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkOutputFile</name>

-          <state>rtosdemo.out</state>

-        </option>

-        <option>

-          <name>IlinkDebugInfoEnable</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IlinkKeepSymbols</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkRawBinaryFile</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkRawBinarySymbol</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkRawBinarySegment</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkRawBinaryAlign</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkDefines</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkConfigDefines</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkMapFile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkLogFile</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkLogInitialization</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkLogModule</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkLogSection</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkLogVeneer</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkIcfOverride</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IlinkIcfFile</name>

-          <state>$PROJ_DIR$\resource\at91SAM7X256_FLASH.icf</state>

-        </option>

-        <option>

-          <name>IlinkIcfFileSlave</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkEnableRemarks</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkSuppressDiags</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkTreatAsRem</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkTreatAsWarn</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkTreatAsErr</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkWarningsAreErrors</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkUseExtraOptions</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkExtraOptions</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkLowLevelInterfaceSlave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IlinkAutoLibEnable</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IlinkAdditionalLibs</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IlinkOverrideProgramEntryLabel</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkProgramEntryLabelSelect</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkProgramEntryLabel</name>

-          <state>__iar_program_start</state>

-        </option>

-        <option>

-          <name>DoFill</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>FillerByte</name>

-          <state>0xFF</state>

-        </option>

-        <option>

-          <name>FillerStart</name>

-          <state>0x0</state>

-        </option>

-        <option>

-          <name>FillerEnd</name>

-          <state>0x0</state>

-        </option>

-        <option>

-          <name>CrcSize</name>

-          <version>0</version>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CrcAlign</name>

-          <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>CrcBitOrder</name>

-          <version>0</version>

-          <state>0</state>

-        </option>

-        <option>

-          <name>CrcInitialValue</name>

-          <state>0x0</state>

-        </option>

-        <option>

-          <name>DoCrc</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkBE8Slave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IlinkBufferedTerminalOutput</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>IlinkStdoutInterfaceSlave</name>

-          <state>1</state>

-        </option>

-        <option>

-          <name>CrcFullSize</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IlinkIElfToolPostProcess</name>

-          <state>0</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>IARCHIVE</name>

-      <archiveVersion>0</archiveVersion>

-      <data>

-        <version>0</version>

-        <wantNonLocal>1</wantNonLocal>

-        <debug>0</debug>

-        <option>

-          <name>IarchiveInputs</name>

-          <state></state>

-        </option>

-        <option>

-          <name>IarchiveOverride</name>

-          <state>0</state>

-        </option>

-        <option>

-          <name>IarchiveOutput</name>

-          <state>###Unitialized###</state>

-        </option>

-      </data>

-    </settings>

-    <settings>

-      <name>BILINK</name>

-      <archiveVersion>0</archiveVersion>

-      <data/>

-    </settings>

-  </configuration>

-  <group>

-    <name>Demo Source</name>

-    <file>

-      <name>$PROJ_DIR$\..\Common\Minimal\BlockQ.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\..\Common\Minimal\death.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\..\Common\Minimal\dynamic.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\EMAC\EMAClISR.s79</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\..\Common\Minimal\flash.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\..\Common\Minimal\flop.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\..\..\Source\portable\MemMang\heap_2.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\..\Common\Minimal\integer.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\main.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\ParTest\ParTest.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\..\Common\Minimal\PollQ.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\EMAC\SAM7_EMAC.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\..\Common\Minimal\semtest.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\uIP_Task.c</name>

-    </file>

-  </group>

-  <group>

-    <name>FreeRTOS Source</name>

-    <file>

-      <name>$PROJ_DIR$\..\..\Source\list.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\..\..\Source\portable\IAR\AtmelSAM7S64\port.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\..\..\Source\portable\IAR\AtmelSAM7S64\portasm.s79</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\..\..\Source\queue.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\..\..\Source\tasks.c</name>

-    </file>

-  </group>

-  <group>

-    <name>uIP Source</name>

-    <group>

-      <name>http</name>

-      <file>

-        <name>$PROJ_DIR$\uip\cgi.c</name>

-      </file>

-      <file>

-        <name>$PROJ_DIR$\uip\fs.c</name>

-      </file>

-      <file>

-        <name>$PROJ_DIR$\uip\httpd.c</name>

-      </file>

-    </group>

-    <file>

-      <name>$PROJ_DIR$\uip\uip.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\uip\uip_arch.c</name>

-    </file>

-    <file>

-      <name>$PROJ_DIR$\uip\uip_arp.c</name>

-    </file>

-  </group>

-  <file>

-    <name>$PROJ_DIR$\SrcIAR\Cstartup.s</name>

-  </file>

-  <file>

-    <name>$PROJ_DIR$\SrcIAR\Cstartup_SAM7.c</name>

-  </file>

-</project>

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.eww b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.eww
deleted file mode 100644
index 2294aac..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/rtosdemo.eww
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>

-

-<workspace>

-  <project>

-    <path>$WS_DIR$\rtosdemo.ewp</path>

-  </project>

-  <batchBuild/>

-</workspace>

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/Basic.dbgdt b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/Basic.dbgdt
deleted file mode 100644
index 5085f2c..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/Basic.dbgdt
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>

-

-<Project>

-  <Desktop>

-    <Static>

-      <Workspace>

-        <ColumnWidths>

-          

-          

-          

-        <Column0>189</Column0><Column1>27</Column1><Column2>27</Column2></ColumnWidths>

-      </Workspace>

-      <Disassembly>

-        

-        

-        

-      <PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><MixedMode>1</MixedMode><CodeCovEnabled>0</CodeCovEnabled><CodeCovShow>0</CodeCovShow></Disassembly>

-      <Debug-Log/>

-      <Build/>

-    <Register><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></Register><QWatch><Column0>188</Column0><Column1>171</Column1><Column2>100</Column2><Column3>100</Column3></QWatch><Memory><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory><Watch><Format><struct_types/><watch_formats/></Format></Watch></Static>

-    <Windows>

-      <Wnd0>

-        <Tabs>

-          <Tab>

-            <Identity>TabID-23416-30482</Identity>

-            <TabName>Workspace</TabName>

-            <Factory>Workspace</Factory>

-            <Session>

-              

-            <NodeDict><ExpandedNode>rtosdemo</ExpandedNode></NodeDict></Session>

-          </Tab>

-        </Tabs>

-        

-      <SelectedTab>0</SelectedTab></Wnd0>

-      

-      <Wnd2>

-        <Tabs>

-          <Tab>

-            <Identity>TabID-12145-30489</Identity>

-            <TabName>Debug Log</TabName>

-            <Factory>Debug-Log</Factory>

-            <Session/>

-          </Tab>

-          <Tab>

-            <Identity>TabID-22894-30492</Identity>

-            <TabName>Build</TabName>

-            <Factory>Build</Factory>

-            <Session/>

-          </Tab>

-        </Tabs>

-        

-      <SelectedTab>1</SelectedTab></Wnd2>

-    <Wnd4><Tabs><Tab><Identity>TabID-18780-12821</Identity><TabName>Memory</TabName><Factory>Memory</Factory><Session><SelectionAnchor>2097764</SelectionAnchor><SelectionEnd>2097764</SelectionEnd><UnitsPerGroup>1</UnitsPerGroup><EndianMode>0</EndianMode><DataCovEnabled>0</DataCovEnabled><DataCovShown>0</DataCovShown></Session></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd4><Wnd5><Tabs><Tab><Identity>TabID-23506-14575</Identity><TabName>Watch</TabName><Factory>Watch</Factory><Session><Expressions><Expression><Expression>pxCurrentTCB</Expression></Expression><Expression><Expression>ulCriticalNesting</Expression></Expression></Expressions><TabId>0</TabId><Column0>176</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></Session></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd5><Wnd1><Tabs><Tab><Identity>TabID-4859-22480</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd1><Wnd3><Tabs><Tab><Identity>TabID-154-22568</Identity><TabName>Register</TabName><Factory>Register</Factory><Session><REG1>0</REG1><REG2>0</REG2><Group>0</Group><States>1</States><State0>CPSR</State0></Session></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3></Windows>

-    <Editor>

-      

-      

-      

-      

-    <Pane><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\main.c</Filename><XPos>0</XPos><YPos>10</YPos><SelStart>378</SelStart><SelEnd>378</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\source\include\task.h</Filename><XPos>0</XPos><YPos>778</YPos><SelStart>24283</SelStart><SelEnd>24283</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\tasks.c</Filename><XPos>0</XPos><YPos>939</YPos><SelStart>30511</SelStart><SelEnd>30511</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\SrcIAR\Cstartup.s79</Filename><XPos>0</XPos><YPos>48</YPos><SelStart>2226</SelStart><SelEnd>2226</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\Common\Minimal\flash.c</Filename><XPos>0</XPos><YPos>98</YPos><SelStart>4025</SelStart><SelEnd>4025</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\portasm.s79</Filename><XPos>0</XPos><YPos>41</YPos><SelStart>1057</SelStart><SelEnd>1079</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\srciar\lib_AT91SAM7S64.h</Filename><XPos>0</XPos><YPos>2778</YPos><SelStart>108450</SelStart><SelEnd>108450</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\port.c</Filename><XPos>0</XPos><YPos>136</YPos><SelStart>5326</SelStart><SelEnd>5326</SelEnd></Tab><ActiveTab>7</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\ParTest\ParTest.c</Filename><XPos>0</XPos><YPos>36</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\portmacro.h</Filename><XPos>0</XPos><YPos>67</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>

-    <Positions>

-      

-      

-      

-      

-      

-    <Top><Row0><Sizes><Toolbar-0084f8a0><key>IarIdePM1</key></Toolbar-0084f8a0></Sizes></Row0><Row1><Sizes><Toolbar-031ef990><key>DebuggerGui1</key></Toolbar-031ef990></Sizes></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>715</Bottom><Right>263</Right><x>-2</x><y>-2</y><xscreen>153</xscreen><yscreen>153</yscreen><sizeHorzCX>95625</sizeHorzCX><sizeHorzCY>136729</sizeHorzCY><sizeVertCX>165625</sizeVertCX><sizeVertCY>640750</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>715</Bottom><Right>647</Right><x>-2</x><y>-2</y><xscreen>190</xscreen><yscreen>190</yscreen><sizeHorzCX>118750</sizeHorzCX><sizeHorzCY>169794</sizeHorzCY><sizeVertCX>405625</sizeVertCX><sizeVertCY>640750</sizeVertCY></Rect></Wnd1></Sizes></Row0><Row1><Sizes><Wnd3><Rect><Top>-2</Top><Left>645</Left><Bottom>715</Bottom><Right>1025</Right><x>645</x><y>-2</y><xscreen>190</xscreen><yscreen>190</yscreen><sizeHorzCX>118750</sizeHorzCX><sizeHorzCY>169794</sizeHorzCY><sizeVertCX>237500</sizeVertCX><sizeVertCY>640750</sizeVertCY></Rect></Wnd3></Sizes></Row1></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>151</Bottom><Right>1602</Right><x>-2</x><y>-2</y><xscreen>1604</xscreen><yscreen>153</yscreen><sizeHorzCX>1002500</sizeHorzCX><sizeHorzCY>136729</sizeHorzCY><sizeVertCX>95625</sizeVertCX><sizeVertCY>136729</sizeVertCY></Rect></Wnd2></Sizes></Row0><Row1><Sizes><Wnd4><Rect><Top>149</Top><Left>-2</Left><Bottom>333</Bottom><Right>669</Right><x>-2</x><y>149</y><xscreen>671</xscreen><yscreen>184</yscreen><sizeHorzCX>419375</sizeHorzCX><sizeHorzCY>164432</sizeHorzCY><sizeVertCX>114375</sizeVertCX><sizeVertCY>163538</sizeVertCY></Rect></Wnd4><Wnd5><Rect><Top>149</Top><Left>667</Left><Bottom>333</Bottom><Right>1602</Right><x>667</x><y>149</y><xscreen>935</xscreen><yscreen>184</yscreen><sizeHorzCX>584375</sizeHorzCX><sizeHorzCY>164432</sizeHorzCY><sizeVertCX>115000</sizeVertCX><sizeVertCY>598748</sizeVertCY></Rect></Wnd5></Sizes></Row1></Bot

-tom><Float><Sizes/></Float></Positions>

-  </Desktop>

-</Project>

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/Basic.dni b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/Basic.dni
deleted file mode 100644
index 9b68f65..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/Basic.dni
+++ /dev/null
@@ -1,23 +0,0 @@
-[DisAssemblyWindow]

-NumStates=_ 1

-State 1=_ 1

-[JLinkDriver]

-WatchVectorCatch=_ 0

-WatchCond=_ 0

-Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0

-Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0

-[Log file]

-LoggingEnabled=_ 0

-LogFile=_ ""

-Category=_ 0

-[TermIOLog]

-LoggingEnabled=_ 0

-LogFile=_ ""

-[Disassemble mode]

-mode=0

-[Breakpoints]

-Bp0=_ "Code" "{E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\port.c}.141.1@1" 1 0 0 0 "" 0 ""

-Count=1

-[Low Level]

-Pipeline mode=0

-Initialized=0

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/BasicSAM7.wsdt b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/BasicSAM7.wsdt
deleted file mode 100644
index 2ce5c4b..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/BasicSAM7.wsdt
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>

-

-<Workspace>

-  <ConfigDictionary>

-    

-  <CurrentConfigs><Project>rtosdemo/Flash Debug</Project></CurrentConfigs></ConfigDictionary>

-  <Desktop>

-    <Static>

-      <Workspace>

-        <ColumnWidths>

-          

-          

-          

-        <Column0>232</Column0><Column1>27</Column1><Column2>27</Column2></ColumnWidths>

-      </Workspace>

-      <Build/>

-      <TerminalIO/>

-      <Profiling/>

-      <Watch>

-        <Format>

-          <struct_types/>

-          <watch_formats/>

-        </Format>

-      </Watch>

-      <Debug-Log/>

-      <Disassembly>

-        

-        

-        

-      <MixedMode>1</MixedMode><CodeCovEnabled>0</CodeCovEnabled><CodeCovShow>0</CodeCovShow></Disassembly>

-    <CodeCoveragePlugin/><Memory><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory></Static>

-    <Windows>

-      

-      

-    <Wnd6>

-        <Tabs>

-          <Tab>

-            <Identity>TabID-29690-30365</Identity>

-            <TabName>Workspace</TabName>

-            <Factory>Workspace</Factory>

-            <Session>

-              

-            <NodeDict><ExpandedNode>rtosdemo</ExpandedNode></NodeDict></Session>

-          </Tab>

-        </Tabs>

-        

-      <SelectedTab>0</SelectedTab></Wnd6><Wnd7>

-        <Tabs>

-          <Tab>

-            <Identity>TabID-27076-30414</Identity>

-            <TabName>Build</TabName>

-            <Factory>Build</Factory>

-            <Session/>

-          </Tab>

-          <Tab>

-            <Identity>TabID-12668-30479</Identity>

-            <TabName>Debug Log</TabName>

-            <Factory>Debug-Log</Factory>

-            <Session/>

-          </Tab>

-        </Tabs>

-        

-      <SelectedTab>1</SelectedTab></Wnd7></Windows>

-    <Editor>

-      

-      

-      

-      

-    <Pane><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\source\include\task.h</Filename><XPos>0</XPos><YPos>778</YPos><SelStart>24283</SelStart><SelEnd>24283</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\portasm.s79</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>2583</SelStart><SelEnd>2583</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\SrcIAR\Cstartup.s79</Filename><XPos>0</XPos><YPos>30</YPos><SelStart>2226</SelStart><SelEnd>2226</SelEnd></Tab><ActiveTab>3</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\srciar\lib_AT91SAM7S64.h</Filename><XPos>0</XPos><YPos>2371</YPos><SelStart>92638</SelStart><SelEnd>92638</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\Common\Minimal\flash.c</Filename><XPos>0</XPos><YPos>98</YPos><SelStart>4025</SelStart><SelEnd>4025</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\port.c</Filename><XPos>0</XPos><YPos>177</YPos><SelStart>7662</SelStart><SelEnd>7662</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\ParTest\ParTest.c</Filename><XPos>0</XPos><YPos>36</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\portmacro.h</Filename><XPos>0</XPos><YPos>21</YPos><SelStart>2110</SelStart><SelEnd>2110</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\SrcIAR\Cstartup_SAM7.c</Filename><XPos>0</XPos><YPos>29</YPos><SelStart>3116</SelStart><SelEnd>3116</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\MemMang\heap_2.c</Filename><XPos>0</XPos><YPos>170</YPos><SelStart>7352</SelStart><SelEnd>7352</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\tasks.c</Filename><XPos>0</XPos><YPos>1270</YPos><SelStart>40884</SelStart><SelEnd>40884</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>

-    <Positions>

-      

-      

-      

-      

-      

-    <Top><Row0><Sizes><Toolbar-0084f7c0><key>IarIdePM1</key></Toolbar-0084f7c0></Sizes></Row0></Top><Left><Row0><Sizes><Wnd6><Rect><Top>-2</Top><Left>-2</Left><Bottom>866</Bottom><Right>306</Right><x>-2</x><y>-2</y><xscreen>48</xscreen><yscreen>48</yscreen><sizeHorzCX>30000</sizeHorzCX><sizeHorzCY>42895</sizeHorzCY><sizeVertCX>192500</sizeVertCX><sizeVertCY>775692</sizeVertCY></Rect></Wnd6></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd7><Rect><Top>-2</Top><Left>-2</Left><Bottom>206</Bottom><Right>1602</Right><x>-2</x><y>-2</y><xscreen>1604</xscreen><yscreen>208</yscreen><sizeHorzCX>1002500</sizeHorzCX><sizeHorzCY>185880</sizeHorzCY><sizeVertCX>30000</sizeVertCX><sizeVertCY>42895</sizeVertCY></Rect></Wnd7></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>

-  </Desktop>

-</Workspace>

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dbgdt b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dbgdt
deleted file mode 100644
index 12f11d4..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dbgdt
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>

-

-<Project>

-  <Desktop>

-    <Static>

-      <Workspace>

-        <ColumnWidths>

-          

-          

-          

-        <Column0>240</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>

-      </Workspace>

-      <Disassembly>

-        

-        

-        

-      <PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><CodeCovEnabled>0</CodeCovEnabled><MixedMode>1</MixedMode><CodeCovShow>0</CodeCovShow><InstrProfShow>0</InstrProfShow></Disassembly>

-      <Debug-Log><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window></Windows></PreferedWindows><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1622</ColumnWidth1></Debug-Log>

-      <Build><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Debug-Log</Factory></Window></Windows></PreferedWindows></Build>

-      <Register>

-        <PreferedWindows>

-          

-          

-          

-          

-        <Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows>

-      </Register>

-    <QWatch><Column0>161</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></QWatch><Memory><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory><Breakpoints/><Watch><Format><struct_types/><watch_formats><Fmt><Key>{W}Watch-0:TxBuffIndex</Key><Value>4</Value></Fmt></watch_formats></Format><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><Column0>185</Column0><Column1>316</Column1><Column2>100</Column2><Column3>195</Column3></Watch><QuickWatch><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><Column0>140</Column0><Column1>104</Column1><Column2>100</Column2><Column3>100</Column3></QuickWatch><Find-in-Files><ColumnWidth0>482</ColumnWidth0><ColumnWidth1>68</ColumnWidth1><ColumnWidth2>826</ColumnWidth2></Find-in-Files></Static>

-    <Windows>

-      

-      

-      

-    <Wnd0>

-        <Tabs>

-          <Tab>

-            <Identity>TabID-22256-14845</Identity>

-            <TabName>Workspace</TabName>

-            <Factory>Workspace</Factory>

-            <Session>

-              

-            <NodeDict><ExpandedNode>rtosdemo</ExpandedNode><ExpandedNode>rtosdemo/Demo Source</ExpandedNode><ExpandedNode>rtosdemo/Demo Source/EMAClISR.s79</ExpandedNode><ExpandedNode>rtosdemo/FreeRTOS Source</ExpandedNode><ExpandedNode>rtosdemo/FreeRTOS Source/portasm.s79</ExpandedNode><ExpandedNode>rtosdemo/USBSample.c</ExpandedNode><ExpandedNode>rtosdemo/uIP Source</ExpandedNode><ExpandedNode>rtosdemo/uIP Source/Atmel Code</ExpandedNode><ExpandedNode>rtosdemo/uIP Source/fs.c</ExpandedNode></NodeDict></Session>

-          </Tab>

-        </Tabs>

-        

-      <SelectedTab>0</SelectedTab></Wnd0><Wnd3><Tabs><Tab><Identity>TabID-25021-10902</Identity><TabName>Breakpoints</TabName><Factory>Breakpoints</Factory><Session/></Tab><Tab><Identity>TabID-2772-9628</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs><SelectedTab>1</SelectedTab></Wnd3><Wnd4><Tabs><Tab><Identity>TabID-29748-16361</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd4></Windows>

-    <Editor>

-      

-      

-      

-      

-    <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy\Demo\uIP_Demo_IAR_ARM7\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\temp\rc\1\FreeRTOS\Demo\uIP_Demo_IAR_ARM7\SrcIAR\Cstartup.s</Filename><XPos>0</XPos><YPos>217</YPos><SelStart>8773</SelStart><SelEnd>8773</SelEnd></Tab><ActiveTab>1</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>

-    <Positions>

-      

-      

-      

-      

-      

-    <Top><Row0><Sizes><Toolbar-00abb198><key>iaridepm.enu1</key></Toolbar-00abb198><Toolbar-0558c218><key>debuggergui.enu1</key></Toolbar-0558c218></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>598</Bottom><Right>330</Right><x>-2</x><y>-2</y><xscreen>0</xscreen><yscreen>0</yscreen><sizeHorzCX>0</sizeHorzCX><sizeHorzCY>0</sizeHorzCY><sizeVertCX>197619</sizeVertCX><sizeVertCY>610998</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>167</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>169</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>172098</sizeHorzCY><sizeVertCX>0</sizeVertCX><sizeVertCY>0</sizeVertCY></Rect></Wnd3></Sizes></Row0><Row1><Sizes><Wnd4><Rect><Top>165</Top><Left>-2</Left><Bottom>340</Bottom><Right>1682</Right><x>-2</x><y>165</y><xscreen>1684</xscreen><yscreen>175</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>178208</sizeHorzCY><sizeVertCX>124405</sizeVertCX><sizeVertCY>178208</sizeVertCY></Rect></Wnd4></Sizes></Row1></Bottom><Float><Sizes/></Float></Positions>

-  </Desktop>

-</Project>

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dni b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dni
deleted file mode 100644
index 62e8f98..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.dni
+++ /dev/null
@@ -1,47 +0,0 @@
-[DisAssemblyWindow]

-NumStates=_ 1

-State 1=_ 1

-[JLinkDriver]

-WatchVectorCatch=_ 0

-WatchCond=_ 0

-Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0

-Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0

-[Low Level]

-Pipeline mode=1

-Initialized=0

-[CodeCoverage]

-Enabled=_ 0

-[Profiling]

-Enabled=0

-[StackPlugin]

-Enabled=1

-OverflowWarningsEnabled=1

-WarningThreshold=90

-SpWarningsEnabled=1

-WarnHow=0

-UseTrigger=1

-TriggerName=main

-LimitSize=0

-ByteLimit=50

-[TraceHelper]

-Enabled=0

-ShowSource=1

-[DebugChecksum]

-Checksum=447895738

-[InstructionProfiling]

-Enabled=_ 0

-[Log file]

-LoggingEnabled=_ 0

-LogFile=_ ""

-Category=_ 0

-[TermIOLog]

-LoggingEnabled=_ 0

-LogFile=_ ""

-[DriverProfiling]

-Enabled=0

-Source=2

-Graph=0

-[Disassemble mode]

-mode=0

-[Breakpoints]

-Count=0

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.wsdt b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.wsdt
deleted file mode 100644
index f779891..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/settings/rtosdemo.wsdt
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>

-

-<Workspace>

-  <ConfigDictionary>

-    

-  <CurrentConfigs><Project>rtosdemo/Flash Debug</Project></CurrentConfigs></ConfigDictionary>

-  <Desktop>

-    <Static>

-      <Workspace>

-        <ColumnWidths>

-          

-          

-          

-        <Column0>288</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>

-      </Workspace>

-      <Build><ColumnWidth0>18</ColumnWidth0><ColumnWidth1>1155</ColumnWidth1><ColumnWidth2>308</ColumnWidth2><ColumnWidth3>77</ColumnWidth3></Build>

-      <Debug-Log><ColumnWidth0>22</ColumnWidth0><ColumnWidth1>1620</ColumnWidth1></Debug-Log>

-      <TerminalIO/>

-      <CodeCoveragePlugin/>

-      <Profiling/>

-      <Watch>

-        <Format>

-          <struct_types/>

-          <watch_formats/>

-        </Format>

-      </Watch>

-    <Disassembly><CodeCovEnabled>0</CodeCovEnabled><MixedMode>1</MixedMode><CodeCovShow>0</CodeCovShow><InstrProfShow>0</InstrProfShow></Disassembly><Memory><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory><Breakpoints/><Find-in-Files><ColumnWidth0>552</ColumnWidth0><ColumnWidth1>78</ColumnWidth1><ColumnWidth2>946</ColumnWidth2></Find-in-Files></Static>

-    <Windows>

-      

-      

-    <Wnd1>

-        <Tabs>

-          <Tab>

-            <Identity>TabID-17425-14382</Identity>

-            <TabName>Workspace</TabName>

-            <Factory>Workspace</Factory>

-            <Session>

-              

-            <NodeDict><ExpandedNode>rtosdemo</ExpandedNode></NodeDict></Session>

-          </Tab>

-        </Tabs>

-        

-      <SelectedTab>0</SelectedTab></Wnd1><Wnd3>

-        <Tabs>

-          <Tab>

-            <Identity>TabID-4084-16269</Identity>

-            <TabName>Build</TabName>

-            <Factory>Build</Factory>

-            <Session/>

-          </Tab>

-          

-        <Tab><Identity>TabID-23097-10324</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab><Tab><Identity>TabID-27351-12303</Identity><TabName>Breakpoints</TabName><Factory>Breakpoints</Factory><Session/></Tab><Tab><Identity>TabID-28796-16277</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs>

-        

-      <SelectedTab>0</SelectedTab></Wnd3></Windows>

-    <Editor>

-      

-      

-      

-      

-    <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\temp\rc\1\FreeRTOS\Demo\uIP_Demo_IAR_ARM7\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>

-    <Positions>

-      

-      

-      

-      

-      

-    <Top><Row0><Sizes><Toolbar-00abb198><key>iaridepm.enu1</key></Toolbar-00abb198></Sizes></Row0></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>774</Bottom><Right>362</Right><x>-2</x><y>-2</y><xscreen>0</xscreen><yscreen>0</yscreen><sizeHorzCX>0</sizeHorzCX><sizeHorzCY>0</sizeHorzCY><sizeVertCX>216667</sizeVertCX><sizeVertCY>790224</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>164</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>166</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>169043</sizeHorzCY><sizeVertCX>0</sizeVertCX><sizeVertCY>0</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>

-  </Desktop>

-</Workspace>

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uIP_Task.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uIP_Task.c
deleted file mode 100644
index ddb648e..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uIP_Task.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/*

- * Modified from an original work that is Copyright (c) 2001-2003, Adam Dunkels.

- * All rights reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in the

- *    documentation and/or other materials provided with the distribution.

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: main.c,v 1.10.2.4 2003/10/21 21:27:51 adam Exp $

- *

- */

-

-/* Standard includes. */

-#include <stdlib.h>

-#include <stdio.h>

-

-/* Scheduler includes. */

-#include "FreeRTOS.h"

-#include "semphr.h"

-#include "task.h"

-

-/* Demo app includes. */

-#include "SAM7_EMAC.h"

-

-/* uIP includes. */

-#undef HTONS

-#include "uip.h"

-#include "uip_arp.h"

-#include "tapdev.h"

-#include "httpd.h"

-

-/* The start of the uIP buffer, which will contain the frame headers. */

-#define pucUIP_Buffer ( ( struct uip_eth_hdr * ) &uip_buf[ 0 ] )

-

-/* uIP update frequencies. */

-#define RT_CLOCK_SECOND		( configTICK_RATE_HZ  )

-#define uipARP_FREQUENCY	( 20 )

-#define uipMAX_BLOCK_TIME	( RT_CLOCK_SECOND / 4 )

-

-/*-----------------------------------------------------------*/

-

-void vuIP_TASK( void *pvParameters )

-{

-/* The semaphore used by the EMAC ISR to indicate that an Rx frame is ready

-for processing. */

-SemaphoreHandle_t xSemaphore = NULL;

-portBASE_TYPE xARPTimer;

-unsigned portBASE_TYPE uxPriority;

-static volatile TickType_t xStartTime, xCurrentTime;

-

-	/* Initialize the uIP TCP/IP stack. */

-	uip_init();

-	uip_arp_init();

-	

-	/* Initialize the HTTP server. */

-	httpd_init();

-

-	/* Initialise the local timers. */

-	xStartTime = xTaskGetTickCount();

-	xARPTimer = 0;

-

-	/* Initialise the EMAC.  A semaphore will be returned when this is

-	successful. This routine contains code that polls status bits.  If the

-	Ethernet cable is not plugged in then this can take a considerable time.

-	To prevent this starving lower priority tasks of processing time we

-	lower our priority prior to the call, then raise it back again once the

-	initialisation is complete. */

-	uxPriority = uxTaskPriorityGet( NULL );

-	vTaskPrioritySet( NULL, tskIDLE_PRIORITY );

-	while( xSemaphore == NULL )

-	{

-		xSemaphore = xEMACInit();

-	}

-	vTaskPrioritySet( NULL, uxPriority );

-

-	for( ;; )

-	{

-		/* Let the network device driver read an entire IP packet

-		into the uip_buf. If it returns > 0, there is a packet in the

-		uip_buf buffer. */

-		uip_len = ulEMACPoll();

-

-		/* Was a packet placed in the uIP buffer? */

-		if( uip_len > 0 )

-		{

-			/* A packet is present in the uIP buffer. We call the

-			appropriate ARP functions depending on what kind of packet we

-			have received. If the packet is an IP packet, we should call

-			uip_input() as well. */

-			if( pucUIP_Buffer->type == htons( UIP_ETHTYPE_IP ) )

-			{

-				uip_arp_ipin();

-				uip_input();

-

-				/* If the above function invocation resulted in data that

-				should be sent out on the network, the global variable

-				uip_len is set to a value > 0. */

-				if( uip_len > 0 )

-				{

-					uip_arp_out();

-					lEMACSend();

-				}

-			}

-			else if( pucUIP_Buffer->type == htons( UIP_ETHTYPE_ARP ) )

-			{

-				uip_arp_arpin();

-

-				/* If the above function invocation resulted in data that

-				should be sent out on the network, the global variable

-				uip_len is set to a value > 0. */	

-				if( uip_len > 0 )

-				{	

-					lEMACSend();

-				}

-			}

-		}

-		else

-		{

-			/* The poll function returned 0, so no packet was

-			received. Instead we check if it is time that we do the

-			periodic processing. */

-			xCurrentTime = xTaskGetTickCount();

-

-			if( ( xCurrentTime - xStartTime ) >= RT_CLOCK_SECOND )

-			{

-				portBASE_TYPE i;

-

-				/* Reset the timer. */

-				xStartTime = xCurrentTime;

-

-				/* Periodic check of all connections. */

-				for( i = 0; i < UIP_CONNS; i++ )

-				{

-					uip_periodic( i );

-

-					/* If the above function invocation resulted in data that

-					should be sent out on the network, the global variable

-					uip_len is set to a value > 0. */					

-					if( uip_len > 0 )

-					{

-						uip_arp_out();

-						lEMACSend();

-					}

-				}

-

-				#if UIP_UDP

-					for( i = 0; i < UIP_UDP_CONNS; i++ )

-					{

-						uip_udp_periodic( i );

-

-						/* If the above function invocation resulted in data that

-						should be sent out on the network, the global variable

-						uip_len is set to a value > 0. */

-						if( uip_len > 0 )

-						{

-							uip_arp_out();

-							tapdev_send();

-						}

-					}

-				#endif /* UIP_UDP */

-

-				/* Periodically call the ARP timer function. */

-				if( ++xARPTimer == uipARP_FREQUENCY )

-				{	

-					uip_arp_timer();

-					xARPTimer = 0;

-				}

-			}

-			else

-			{				

-				/* We did not receive a packet, and there was no periodic

-				processing to perform.  Block for a fixed period.  If a packet

-				is received during this period we will be woken by the ISR

-				giving us the Semaphore. */

-				xSemaphoreTake( xSemaphore, uipMAX_BLOCK_TIME );

-			}

-		}

-	}

-}

-/*-----------------------------------------------------------------------------------*/

-

-

-

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uIP_Task.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uIP_Task.h
deleted file mode 100644
index aae424b..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uIP_Task.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef UIP_TASK_H

-#define UIP_TASK_H

-

-/* The task that handles all uIP data. */

-void vuIP_TASK( void *pvParameters );

-

-#endif

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/Makefile b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/Makefile
deleted file mode 100644
index 61d3a06..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/Makefile
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright (c) 2001, Adam Dunkels.

-# All rights reserved. 

-#

-# Redistribution and use in source and binary forms, with or without 

-# modification, are permitted provided that the following conditions 

-# are met: 

-# 1. Redistributions of source code must retain the above copyright 

-#    notice, this list of conditions and the following disclaimer. 

-# 2. Redistributions in binary form must reproduce the above copyright 

-#    notice, this list of conditions and the following disclaimer in the 

-#    documentation and/or other materials provided with the distribution. 

-# 3. All advertising materials mentioning features or use of this software

-#    must display the following acknowledgement:

-#      This product includes software developed by Adam Dunkels.

-# 4. The name of the author may not be used to endorse or promote

-#    products derived from this software without specific prior

-#    written permission.  

-#

-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

-# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

-#

-# This file is part of the uIP TCP/IP stack.

-#

-# $Id: Makefile,v 1.8.2.2 2003/10/04 22:54:17 adam Exp $

-#

-

-CC=gcc

-CFLAGS=-Wall -g -I../uip -I. -I../apps/httpd -I../apps/resolv -I../apps/webclient -I../apps/smtp  -I../apps/telnet -fpack-struct

-

-%.o:

-	$(CC) $(CFLAGS) -c $(<:.o=.c)

-

-

-uip: uip.o uip_arch.o tapdev.o httpd.o main.o fs.o uip_arp.o cgi.o 

-

-tapdev.o: tapdev.c uipopt.h

-main.o: main.c ../uip/uip.h uipopt.h ../apps/httpd/httpd.h \

- tapdev.h

-uip_arch.o: uip_arch.c ../uip/uip_arch.h ../uip/uip.h uipopt.h \

- ../apps/httpd/httpd.h 

-uip.o: ../uip/uip.c ../uip/uip.h uipopt.h ../apps/httpd/httpd.h 

-

-uip_arp.o: ../uip/uip_arp.c ../uip/uip_arp.h ../uip/uip.h uipopt.h \

- ../apps/httpd/httpd.h

-	$(CC) -o uip_arp.o $(CFLAGS) -fpack-struct -c ../uip/uip_arp.c

-

-

-cgi.o: ../apps/httpd/cgi.c ../uip/uip.h uipopt.h ../apps/smtp/smtp.h \

- ../apps/httpd/cgi.h ../apps/httpd/httpd.h ../apps/httpd/fs.h

-fs.o: ../apps/httpd/fs.c ../uip/uip.h uipopt.h ../apps/smtp/smtp.h \

- ../apps/httpd/httpd.h ../apps/httpd/fs.h ../apps/httpd/fsdata.h \

- ../apps/httpd/fsdata.c

-fsdata.o: ../apps/httpd/fsdata.c

-httpd.o: ../apps/httpd/httpd.c ../uip/uip.h uipopt.h \

- ../apps/smtp/smtp.h ../apps/httpd/httpd.h ../apps/httpd/fs.h \

- ../apps/httpd/fsdata.h ../apps/httpd/cgi.h

-

-clean:

-	rm -f *.o *~ *core uip

-

-

-

-

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/cgi.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/cgi.c
deleted file mode 100644
index 748cc1b..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/cgi.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/**

- * \addtogroup httpd

- * @{

- */

-

-/**

- * \file

- * HTTP server script language C functions file.

- * \author Adam Dunkels <adam@dunkels.com>

- *

- * This file contains functions that are called by the web server

- * scripts. The functions takes one argument, and the return value is

- * interpreted as follows. A zero means that the function did not

- * complete and should be invoked for the next packet as well. A

- * non-zero value indicates that the function has completed and that

- * the web server should move along to the next script line.

- *

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in the

- *    documentation and/or other materials provided with the distribution.

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: cgi.c,v 1.23.2.4 2003/10/07 13:22:27 adam Exp $

- *

- */

-

-#include "uip.h"

-#include "cgi.h"

-#include "httpd.h"

-#include "fs.h"

-

-#include <stdio.h>

-#include <string.h>

-

-static u8_t print_stats(u8_t next);

-static u8_t file_stats(u8_t next);

-static u8_t tcp_stats(u8_t next);

-static u8_t rtos_stats(u8_t next);

-

-cgifunction cgitab[] = {

-  print_stats,   /* CGI function "a" */

-  file_stats,    /* CGI function "b" */

-  tcp_stats,      /* CGI function "c" */

-  rtos_stats	/* CGI function "d" */

-};

-

-static const char closed[] =   /*  "CLOSED",*/

-{0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0};

-static const char syn_rcvd[] = /*  "SYN-RCVD",*/

-{0x53, 0x59, 0x4e, 0x2d, 0x52, 0x43, 0x56,

- 0x44,  0};

-static const char syn_sent[] = /*  "SYN-SENT",*/

-{0x53, 0x59, 0x4e, 0x2d, 0x53, 0x45, 0x4e,

- 0x54,  0};

-static const char established[] = /*  "ESTABLISHED",*/

-{0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48,

- 0x45, 0x44, 0};

-static const char fin_wait_1[] = /*  "FIN-WAIT-1",*/

-{0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49,

- 0x54, 0x2d, 0x31, 0};

-static const char fin_wait_2[] = /*  "FIN-WAIT-2",*/

-{0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49,

- 0x54, 0x2d, 0x32, 0};

-static const char closing[] = /*  "CLOSING",*/

-{0x43, 0x4c, 0x4f, 0x53, 0x49,

- 0x4e, 0x47, 0};

-static const char time_wait[] = /*  "TIME-WAIT,"*/

-{0x54, 0x49, 0x4d, 0x45, 0x2d, 0x57, 0x41,

- 0x49, 0x54, 0};

-static const char last_ack[] = /*  "LAST-ACK"*/

-{0x4c, 0x41, 0x53, 0x54, 0x2d, 0x41, 0x43,

- 0x4b, 0};

-

-static const char *states[] = {

-  closed,

-  syn_rcvd,

-  syn_sent,

-  established,

-  fin_wait_1,

-  fin_wait_2,

-  closing,

-  time_wait,

-  last_ack};

-

-

-/*-----------------------------------------------------------------------------------*/

-/* print_stats:

- *

- * Prints out a part of the uIP statistics. The statistics data is

- * written into the uip_appdata buffer. It overwrites any incoming

- * packet.

- */

-static u8_t

-print_stats(u8_t next)

-{

-#if UIP_STATISTICS

-  u16_t i, j;

-  u8_t *buf;

-  u16_t *databytes;

-

-  if(next) {

-    /* If our last data has been acknowledged, we move on the next

-       chunk of statistics. */

-    hs->count = hs->count + 4;

-    if(hs->count >= sizeof(struct uip_stats)/sizeof(u16_t)) {

-      /* We have printed out all statistics, so we return 1 to

-	 indicate that we are done. */

-      return 1;

-    }

-  }

-

-  /* Write part of the statistics into the uip_appdata buffer. */

-  databytes = (u16_t *)&uip_stat + hs->count;

-  buf       = (u8_t *)uip_appdata;

-

-  j = 4 + 1;

-  i = hs->count;

-  while (i < sizeof(struct uip_stats)/sizeof(u16_t) && --j > 0) {

-    sprintf((char *)buf, "%5u\r\n", *databytes);

-    ++databytes;

-    buf += 6;

-    ++i;

-  }

-

-  /* Send the data. */

-  uip_send(uip_appdata, buf - uip_appdata);

-

-  return 0;

-#else

-  return 1;

-#endif /* UIP_STATISTICS */

-}

-/*-----------------------------------------------------------------------------------*/

-static u8_t

-file_stats(u8_t next)

-{

-  /* We use sprintf() to print the number of file accesses to a

-     particular file (given as an argument to the function in the

-     script). We then use uip_send() to actually send the data. */

-  if(next) {

-    return 1;

-  }

-  uip_send(uip_appdata, sprintf((char *)uip_appdata, "%5u", fs_count(&hs->script[4])));

-  return 0;

-}

-/*-----------------------------------------------------------------------------------*/

-static u8_t

-tcp_stats(u8_t next)

-{

-  struct uip_conn *conn;

-

-  if(next) {

-    /* If the previously sent data has been acknowledged, we move

-       forward one connection. */

-    if(++hs->count == UIP_CONNS) {

-      /* If all connections has been printed out, we are done and

-	 return 1. */

-      return 1;

-    }

-  }

-

-  conn = &uip_conns[hs->count];

-  if((conn->tcpstateflags & TS_MASK) == CLOSED) {

-    uip_send(uip_appdata, sprintf((char *)uip_appdata,

-				  "<tr align=\"center\"><td>-</td><td>-</td><td>%u</td><td>%u</td><td>%c %c</td></tr>\r\n",

-				  conn->nrtx,

-				  conn->timer,

-				  (uip_outstanding(conn))? '*':' ',

-    				  (uip_stopped(conn))? '!':' '));

-  } else {

-    uip_send(uip_appdata, sprintf((char *)uip_appdata,

-				  "<tr align=\"center\"><td>%u.%u.%u.%u:%u</td><td>%s</td><td>%u</td><td>%u</td><td>%c %c</td></tr>\r\n",

-				  htons(conn->ripaddr[0]) >> 8,

-				  htons(conn->ripaddr[0]) & 0xff,

-				  htons(conn->ripaddr[1]) >> 8,

-				  htons(conn->ripaddr[1]) & 0xff,

-				  htons(conn->rport),

-				  states[conn->tcpstateflags & TS_MASK],

-				  conn->nrtx,

-				  conn->timer,

-				  (uip_outstanding(conn))? '*':' ',

-    				  (uip_stopped(conn))? '!':' '));

-  }

-  return 0;

-}

-/*-----------------------------------------------------------------------------------*/

-

-static u8_t

-rtos_stats(u8_t next)

-{

-static char cTraceBuffer[ 1024 ];

-extern void ( vTaskList )( char * );

-

-	vTaskList( cTraceBuffer );

-	uip_send( ( void * ) cTraceBuffer, strlen( cTraceBuffer ) );

-

-	return 1;

-}

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/cgi.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/cgi.h
deleted file mode 100644
index d85389b..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/cgi.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/**

- * \addtogroup httpd

- * @{

- */

-

-/**

- * \file

- * HTTP script language header file.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: cgi.h,v 1.3.2.4 2003/10/07 13:22:27 adam Exp $

- *

- */

-

-#ifndef __CGI_H__

-#define __CGI_H__

-

-typedef u8_t (* cgifunction)(u8_t next);

-

-/**

- * A table containing pointers to C functions that can be called from

- * a web server script.

- */

-extern cgifunction cgitab[];

-

-#endif /* __CGI_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/crt0.asm b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/crt0.asm
deleted file mode 100644
index ef91f42..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/crt0.asm
+++ /dev/null
@@ -1,66 +0,0 @@
-// Rowley C Compiler, runtime support.

-//

-// Copyright (c) 2001, 2002, 2003 Rowley Associates Limited.

-//

-// This file may be distributed under the terms of the License Agreement

-// provided with this software.

-//

-// THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE

-// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

-

-; Create sections

-        .data

-        .bss

-

-; Go to code section.

-        .code

-

-; Executed upon reset

-__reset proc

-

-; Turn off watchdog.  You can enable it in main() if required.

-        mov.w   #0x5a80, &0x120

-

-; Set up stack.

-        mov.w   #RAM_Start_Address+RAM_Size, sp

-

-; Copy from initialised data section to data section.

-        mov.w   #SFB(IDATA0), r15

-        mov.w   #data_init_begin, r14

-        mov.w   #data_init_end-data_init_begin, r13

-        call    #_memcpy

-

-; Zero the bss.  Ensure the stack is not allocated in the bss!

-        mov.w   #SFB(UDATA0), r15

-        mov.w   #0, r14

-        mov.w   #SFE(UDATA0)-SFB(UDATA0), r13

-        call    #_memset

-

-; Call user entry point void main(void).

-        call    #_main

-

-; If main() returns, kick off again.

-        jmp     __reset

-        endproc

-

-; Heap data structures; removed by the linker if the heap isn't used.

-        .break   

-        .data

-        align   WORD

-___heap_start__::

-        DW      0

-        DW      heap_size

-        DS      heap_size-4    

-

-; Reset vector

-        .vectors

-        .keep

-        org     0x1e

-        dw      __reset

-

-; Initialise the IDATA0 section by duplicating the contents into the

-; CONST section and copying them on startup.

-        .const

-data_init_begin:

-        .init  "IDATA0"

-data_init_end:

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs.c
deleted file mode 100644
index a66eb8d..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/**

- * \addtogroup httpd

- * @{

- */

-

-/**

- * \file

- * HTTP server read-only file system code.

- * \author Adam Dunkels <adam@dunkels.com>

- *

- * A simple read-only filesystem.

- */

-

-/*

- * Copyright (c) 2001, Swedish Institute of Computer Science.

- * All rights reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in the

- *    documentation and/or other materials provided with the distribution.

- * 3. Neither the name of the Institute nor the names of its contributors

- *    may be used to endorse or promote products derived from this software

- *    without specific prior written permission.

- *

- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND

- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE

- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS

- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)

- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT

- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY

- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

- * SUCH DAMAGE.

- *

- * This file is part of the lwIP TCP/IP stack.

- *

- * Author: Adam Dunkels <adam@sics.se>

- *

- * $Id: fs.c,v 1.7.2.3 2003/10/07 13:22:27 adam Exp $

- */

-

-#include "uip.h"

-#include "httpd.h"

-#include "fs.h"

-#include "fsdata.h"

-

-#define NULL (void *)0

-#include "fsdata.c"

-

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-static u16_t count[FS_NUMFILES];

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-

-/*-----------------------------------------------------------------------------------*/

-static u8_t

-fs_strcmp(const char *str1, const char *str2)

-{

-  u8_t i;

-  i = 0;

- loop:

-

-  if(str2[i] == 0 ||

-     str1[i] == '\r' ||

-     str1[i] == '\n') {

-    return 0;

-  }

-

-  if(str1[i] != str2[i]) {

-    return 1;

-  }

-

-

-  ++i;

-  goto loop;

-}

-/*-----------------------------------------------------------------------------------*/

-int

-fs_open(const char *name, struct fs_file *file)

-{

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-  u16_t i = 0;

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-  struct fsdata_file_noconst *f;

-

-  for(f = (struct fsdata_file_noconst *)FS_ROOT;

-      f != NULL;

-      f = (struct fsdata_file_noconst *)f->next) {

-

-    if(fs_strcmp(name, f->name) == 0) {

-      file->data = f->data;

-      file->len = f->len;

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-      ++count[i];

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-

-      return 1;

-    }

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-    ++i;

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-

-  }

-  return 0;

-}

-/*-----------------------------------------------------------------------------------*/

-void

-fs_init(void)

-{

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-  u16_t i;

-  for(i = 0; i < FS_NUMFILES; i++) {

-    count[i] = 0;

-  }

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-}

-/*-----------------------------------------------------------------------------------*/

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-u16_t fs_count

-(char *name)

-{

-  struct fsdata_file_noconst *f;

-  u16_t i;

-

-  i = 0;

-  for(f = (struct fsdata_file_noconst *)FS_ROOT;

-      f != NULL;

-      f = (struct fsdata_file_noconst *)f->next) {

-

-    if(fs_strcmp(name, f->name) == 0) {

-      return count[i];

-    }

-    ++i;

-  }

-  return 0;

-}

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-/*-----------------------------------------------------------------------------------*/

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs.h
deleted file mode 100644
index 65551ba..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/**

- * \addtogroup httpd

- * @{

- */

-

-/**

- * \file

- * HTTP server read-only file system header file.

- * \author Adam Dunkels <adam@dunkels.com>

- */

- 

-/*

- * Copyright (c) 2001, Swedish Institute of Computer Science.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. Neither the name of the Institute nor the names of its contributors 

- *    may be used to endorse or promote products derived from this software 

- *    without specific prior written permission. 

- *

- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 

- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 

- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 

- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 

- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 

- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 

- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 

- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 

- * SUCH DAMAGE. 

- *

- * This file is part of the lwIP TCP/IP stack.

- * 

- * Author: Adam Dunkels <adam@sics.se>

- *

- * $Id: fs.h,v 1.6.2.3 2003/10/07 13:22:27 adam Exp $

- */

-#ifndef __FS_H__

-#define __FS_H__

-

-#include "uip.h"

-

-/**

- * An open file in the read-only file system.

- */

-struct fs_file {

-  char *data;  /**< The actual file data. */

-  int len;     /**< The length of the file data. */

-};

-

-/**

- * Open a file in the read-only file system.

- *

- * \param name The name of the file.

- *

- * \param file The file pointer, which must be allocated by caller and

- * will be filled in by the function.

- */

-int fs_open(const char *name, struct fs_file *file);

-

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1  

-u16_t fs_count(char *name);

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-

-/**

- * Initialize the read-only file system.

- */

-void fs_init(void);

-

-#endif /* __FS_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/404.html b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/404.html
deleted file mode 100644
index 8d6beec..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/404.html
+++ /dev/null
@@ -1 +0,0 @@
-<html><body bgcolor="white"><center><h1>404 - file not found</h1></center></body></html>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/files b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/files
deleted file mode 100644
index 58c45f3..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/files
+++ /dev/null
@@ -1,26 +0,0 @@
-# This script shows the access statistics for different files on the

-# web server.

-#

-# First, we include the HTML header.

-i /files_header.html

-# Print out the name of the file, and call the function that prints

-# the access statistics of that file.

-t <tr><td><a href="/index.html">/index.html</a></td><td>

-c b /index.html

-t </td></tr> <tr><td><a href="/control.html">/control.html</a></td><td>

-c b /control.html

-t </td></tr> <tr><td><a href="/img/logo.png">/img/logo.png</a></td><td>

-c b /img/logo.png

-t </td></tr> <tr><td><a href="/404.html">/404.html</a></td><td>

-c b /404.html

-t </td></tr> <tr><td><a href="/cgi/files">/cgi/files</a></td><td>

-c b /cgi/files

-t </td></tr> <tr><td><a href="/cgi/stats">/cgi/stats</a></td><td>

-c b /cgi/stats

-t </td></tr> <tr><td><a href="/cgi/tcp">/cgi/tcp</a></td><td>

-c b /cgi/tcp

-t </td></tr>

-# Include the HTML footer.

-i /files_footer.plain

-# End of script.

-.
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/rtos b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/rtos
deleted file mode 100644
index 7772ea4..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/rtos
+++ /dev/null
@@ -1,6 +0,0 @@
-t <html><head><title>uIP Open Source Embedded TCP/IP Stack On FreeRTOS Kernel</title></head><body BGCOLOR="#CCCCFF"><font face="arial"><small><b><a href="http://www.freertos.org" target="_top">FreeRTOS Homepage</a></b></small><p><H1>AT91SAM7X Embedded WEB Server Demo<br><small>Using uIP and the FreeRTOS real time kernel</small></h1><p>These pages are being served by an Atmel AT91SAM7X256 microcontroller, using Adam Dunkels open source uIP TCP/IP stack.<p>The uIP stack is executing from a single task under control of the FreeRTOS real time kernel.  The table below shows the statistics for all the tasks in the demo applicaiton.<p><pre>Task          State  Priority  Stack	#<br>************************************************<br>
-c d
-t </pre></font></body></html>
-.
-
-
diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/stats b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/stats
deleted file mode 100644
index 2c71c90..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/stats
+++ /dev/null
@@ -1,4 +0,0 @@
-i /stats_header.html

-c a

-i /stats_footer.plain

-.

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/tcp b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/tcp
deleted file mode 100644
index 14efd37..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/cgi/tcp
+++ /dev/null
@@ -1,4 +0,0 @@
-i /tcp_header.html

-c c

-i /tcp_footer.plain

-.
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/control.html b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/control.html
deleted file mode 100644
index 0d9352c..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/control.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<html>

-<head>

-<title>AT91SAM7X Embedded WEB Server using uIP and FreeRTOS</title>

-</head>

-<body bgcolor="#ccccff">

-<font face="arial">

-<img src="/img/logo.png" align="right">

-<a href="/cgi/rtos" target="main">Tasks</a> |

-<a href="/cgi/tcp" target="main">Connections</a> |

-<a href="/cgi/files" target="main">Files</a> |

-<a href="/cgi/stats" target="main">Statistics</a><br>

-<br>

-</font>

-</body>

-</html>

-

-

-

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/files_footer.plain b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/files_footer.plain
deleted file mode 100644
index 0b6dceb..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/files_footer.plain
+++ /dev/null
@@ -1,3 +0,0 @@
-</td></tr></table>

-</body>

-</html>

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/files_header.html b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/files_header.html
deleted file mode 100644
index 20cf1c9..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/files_header.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<html>

-<body bgcolor="#CCCCFF">

-<center>

-<table width="600" border="0">

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/img/logo.png b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/img/logo.png
deleted file mode 100644
index ef572dd..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/img/logo.png
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/index.html b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/index.html
deleted file mode 100644
index 626ff37..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<html>

-<head>

-</head>

-

-<frameset cols="*" rows="120,*" frameborder="no"> 

-  <frame src="control.html">

-  <frame src="/cgi/rtos" name="main">

-</frameset>

-

-<noframes>

-<body>

-Your browser must support frames

-</body>

-</noframes>

-</html>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_footer.plain b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_footer.plain
deleted file mode 100644
index 0b6dceb..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_footer.plain
+++ /dev/null
@@ -1,3 +0,0 @@
-</td></tr></table>

-</body>

-</html>

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_header.html b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_header.html
deleted file mode 100644
index e819c34..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/stats_header.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>

-<body bgcolor="#ccccff">

-<center>

-<table width="600" border="0">

-<tr><td>

-<pre>

-IP           Packets dropped

-             Packets received

-             Packets sent

-IP errors    IP version/header length

-             IP length, high byte

-             IP length, low byte

-             IP fragments

-             Header checksum

-             Wrong protocol

-ICMP	     Packets dropped

-             Packets received

-             Packets sent

-             Type errors

-TCP          Packets dropped

-             Packets received

-             Packets sent

-             Checksum errors

-             Data packets without ACKs

-             Resets

-             Retransmissions

-	     No connection avaliable

-	     Connection attempts to closed ports

-</pre>	     

-</td><td><pre>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_footer.plain b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_footer.plain
deleted file mode 100644
index 442c17a..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_footer.plain
+++ /dev/null
@@ -1,5 +0,0 @@
-

-</td></tr></table>

-</center>

-</body>

-</html>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_header.html b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_header.html
deleted file mode 100644
index 47bdf30..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fs/tcp_header.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<html>

-<body bgcolor="#ccccff">

-<center>

-<table width="600" border="0">

-<tr><th>Remote</th><th>State</th><th>Retransmissions</th><th>Timer</th><th>Flags</th></tr>

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fsdata.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fsdata.c
deleted file mode 100644
index 7679960..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fsdata.c
+++ /dev/null
@@ -1,968 +0,0 @@
-static const char data_404_html[] = {

-	/* /404.html */

-	0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x34, 

-	0x30, 0x34, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, 

-	0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0xd, 0xa, 0x53, 

-	0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 

-	0x2f, 0x30, 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 

-	0x3a, 0x2f, 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 

-	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 

-	0x75, 0x69, 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 

-	0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 

-	0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 

-	0xd, 0xa, 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 

-	0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 

-	0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 

-	0x22, 0x3e, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 

-	0x3c, 0x68, 0x31, 0x3e, 0x34, 0x30, 0x34, 0x20, 0x2d, 0x20, 

-	0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 

-	0x6f, 0x75, 0x6e, 0x64, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x3c, 

-	0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0x3c, 0x2f, 

-	0x62, 0x6f, 0x64, 0x79, 0x3e, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 

-	0x6c, 0x3e, };

-

-static const char data_control_html[] = {

-	/* /control.html */

-	0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 

-	0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 

-	0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, 

-	0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0x3c, 0x74, 

-	0x69, 0x74, 0x6c, 0x65, 0x3e, 0x41, 0x54, 0x39, 0x31, 0x53, 

-	0x41, 0x4d, 0x37, 0x58, 0x20, 0x45, 0x6d, 0x62, 0x65, 0x64, 

-	0x64, 0x65, 0x64, 0x20, 0x57, 0x45, 0x42, 0x20, 0x53, 0x65, 

-	0x72, 0x76, 0x65, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 

-	0x20, 0x75, 0x49, 0x50, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x46, 

-	0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, 0x53, 0x3c, 0x2f, 0x74, 

-	0x69, 0x74, 0x6c, 0x65, 0x3e, 0xd, 0xa, 0x3c, 0x2f, 0x68, 

-	0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0x3c, 0x62, 0x6f, 0x64, 

-	0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3d, 

-	0x22, 0x23, 0x63, 0x63, 0x63, 0x63, 0x66, 0x66, 0x22, 0x3e, 

-	0xd, 0xa, 0x3c, 0x66, 0x6f, 0x6e, 0x74, 0x20, 0x66, 0x61, 

-	0x63, 0x65, 0x3d, 0x22, 0x61, 0x72, 0x69, 0x61, 0x6c, 0x22, 

-	0x3e, 0xd, 0xa, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x73, 0x72, 

-	0x63, 0x3d, 0x22, 0x2f, 0x69, 0x6d, 0x67, 0x2f, 0x6c, 0x6f, 

-	0x67, 0x6f, 0x2e, 0x70, 0x6e, 0x67, 0x22, 0x20, 0x61, 0x6c, 

-	0x69, 0x67, 0x6e, 0x3d, 0x22, 0x72, 0x69, 0x67, 0x68, 0x74, 

-	0x22, 0x3e, 0xd, 0xa, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 

-	0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x72, 0x74, 

-	0x6f, 0x73, 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 

-	0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3e, 0x54, 0x61, 

-	0x73, 0x6b, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x7c, 0xd, 

-	0xa, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x22, 0x20, 

-	0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x6d, 0x61, 

-	0x69, 0x6e, 0x22, 0x3e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 

-	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 

-	0x7c, 0xd, 0xa, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 

-	0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 

-	0x65, 0x73, 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 

-	0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3e, 0x46, 0x69, 

-	0x6c, 0x65, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x7c, 0xd, 

-	0xa, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 

-	0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 

-	0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3e, 0x53, 0x74, 0x61, 0x74, 

-	0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 

-	0x3c, 0x62, 0x72, 0x3e, 0xd, 0xa, 0x3c, 0x62, 0x72, 0x3e, 

-	0xd, 0xa, 0x3c, 0x2f, 0x66, 0x6f, 0x6e, 0x74, 0x3e, 0xd, 

-	0xa, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xd, 0xa, 

-	0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, 0xd, 

-	0xa, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, };

-

-static const char data_files_footer_plain[] = {

-	/* /files_footer.plain */

-	0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,

-	0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 

-	0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xd, 0xa, 

-	0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xd, 0xa, 0x3c, 

-	0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, };

-

-static const char data_files_header_html[] = {

-	/* /files_header.html */

-	0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 

-	0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 

-	0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, 

-	0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 

-	0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x23, 0x43, 0x43, 0x43, 0x43, 

-	0x46, 0x46, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x63, 0x65, 0x6e, 

-	0x74, 0x65, 0x72, 0x3e, 0xd, 0xa, 0x3c, 0x74, 0x61, 0x62, 

-	0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 

-	0x36, 0x30, 0x30, 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 

-	0x72, 0x3d, 0x22, 0x30, 0x22, 0x3e, 0xd, 0xa, };

-

-static const char data_stats_footer_plain[] = {

-	/* /stats_footer.plain */

-	0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,

-	0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 

-	0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xd, 0xa, 

-	0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xd, 0xa, 0x3c, 

-	0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, };

-

-static const char data_stats_header_html[] = {

-	/* /stats_header.html */

-	0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 

-	0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 

-	0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, 

-	0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 

-	0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x23, 0x63, 0x63, 0x63, 0x63, 

-	0x66, 0x66, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x63, 0x65, 0x6e, 

-	0x74, 0x65, 0x72, 0x3e, 0xd, 0xa, 0x3c, 0x74, 0x61, 0x62, 

-	0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 

-	0x36, 0x30, 0x30, 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 

-	0x72, 0x3d, 0x22, 0x30, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x74, 

-	0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xd, 0xa, 0x3c, 0x70, 

-	0x72, 0x65, 0x3e, 0xd, 0xa, 0x49, 0x50, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 

-	0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, 0x72, 0x6f, 0x70, 

-	0x70, 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 

-	0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, 0x65, 

-	0x69, 0x76, 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 

-	0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, 

-	0x74, 0xd, 0xa, 0x49, 0x50, 0x20, 0x65, 0x72, 0x72, 0x6f, 

-	0x72, 0x73, 0x20, 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, 0x76, 

-	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x68, 0x65, 0x61, 

-	0x64, 0x65, 0x72, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 

-	0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, 0x6c, 0x65, 

-	0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x68, 0x69, 0x67, 0x68, 

-	0x20, 0x62, 0x79, 0x74, 0x65, 0xd, 0xa, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x49, 0x50, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 

-	0x20, 0x6c, 0x6f, 0x77, 0x20, 0x62, 0x79, 0x74, 0x65, 0xd, 

-	0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, 0x66, 0x72, 0x61, 

-	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0xd, 0xa, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x63, 0x68, 

-	0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0xd, 0xa, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 

-	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0xd, 0xa, 0x49, 0x43, 0x4d, 

-	0x50, 0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, 

-	0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x70, 

-	0x65, 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, 

-	0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 

-	0x76, 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 

-	0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, 0x74, 

-	0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, 

-	0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0xd, 0xa, 0x54, 0x43, 

-	0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, 

-	0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, 

-	0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0xd, 0xa, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 

-	0x73, 0x65, 0x6e, 0x74, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 

-	0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x65, 0x72, 

-	0x72, 0x6f, 0x72, 0x73, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 

-	0x61, 0x74, 0x61, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 

-	0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 

-	0x41, 0x43, 0x4b, 0x73, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 

-	0x65, 0x73, 0x65, 0x74, 0x73, 0xd, 0xa, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x52, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 

-	0x73, 0x69, 0x6f, 0x6e, 0x73, 0xd, 0xa, 0x9, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 

-	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x76, 0x61, 

-	0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0xd, 0xa, 0x9, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 

-	0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6d, 

-	0x70, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x6f, 

-	0x73, 0x65, 0x64, 0x20, 0x70, 0x6f, 0x72, 0x74, 0x73, 0xd, 

-	0xa, 0x3c, 0x2f, 0x70, 0x72, 0x65, 0x3e, 0x9, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0xd, 0xa, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 

-	0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x70, 0x72, 0x65, 0x3e, };

-

-static const char data_tcp_footer_plain[] = {

-	/* /tcp_footer.plain */

-	0x2f, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,

-	0xd, 0xa, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 

-	0x72, 0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 

-	0xd, 0xa, 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 

-	0x3e, 0xd, 0xa, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 

-	0xd, 0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, };

-

-static const char data_tcp_header_html[] = {

-	/* /tcp_header.html */

-	0x2f, 0x74, 0x63, 0x70, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 

-	0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 

-	0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, 

-	0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 

-	0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x23, 0x63, 0x63, 0x63, 0x63, 

-	0x66, 0x66, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x63, 0x65, 0x6e, 

-	0x74, 0x65, 0x72, 0x3e, 0xd, 0xa, 0x3c, 0x74, 0x61, 0x62, 

-	0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 

-	0x36, 0x30, 0x30, 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 

-	0x72, 0x3d, 0x22, 0x30, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x74, 

-	0x72, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x52, 0x65, 0x6d, 0x6f, 

-	0x74, 0x65, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 

-	0x3e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3c, 0x2f, 0x74, 0x68, 

-	0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x52, 0x65, 0x74, 0x72, 0x61, 

-	0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 

-	0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x54, 

-	0x69, 0x6d, 0x65, 0x72, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 

-	0x74, 0x68, 0x3e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x3c, 0x2f, 

-	0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0xd, 0xa, 

-	0xd, 0xa, };

-

-static const char data_img_logo_png[] = {

-	/* /img/logo.png */

-	0x2f, 0x69, 0x6d, 0x67, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x6e, 0x67, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x69, 

-	0x6d, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x6e, 0x67, 0xd, 0xa, 

-	0xd, 0xa, 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 

-	00, 00, 00, 0xd, 0x49, 0x48, 0x44, 0x52, 00, 00, 

-	00, 0xec, 00, 00, 00, 0x5c, 0x8, 0x3, 00, 00, 

-	00, 0x5a, 0xc7, 0xa9, 0x53, 00, 00, 0x3, 00, 0x50, 

-	0x4c, 0x54, 0x45, 00, 00, 00, 0x3, 0x3, 0x3, 0x4, 

-	0x4, 0x4, 0x6, 0x6, 0x6, 0x8, 0x8, 0x8, 0xa, 0xa, 

-	0xa, 0xc, 0xc, 0xc, 0xe, 0xe, 0xe, 0x10, 0x10, 0x10, 

-	0x12, 0x12, 0x12, 0x14, 0x14, 0x14, 0x16, 0x16, 0x16, 0x18, 

-	0x18, 0x18, 0x1a, 0x1a, 0x1a, 0x1c, 0x1c, 0x1c, 0x21, 0x21, 

-	0x21, 0x25, 0x25, 0x25, 0x28, 0x28, 0x28, 0x2c, 0x2c, 0x2c, 

-	0x2e, 0x2e, 0x2e, 0x30, 0x30, 0x30, 0x32, 0x32, 0x32, 0x34, 

-	0x34, 0x34, 0x36, 0x36, 0x36, 0x38, 0x38, 0x38, 0x3a, 0x3a, 

-	0x3a, 0x3e, 0x3e, 0x3e, 0x40, 0x40, 0x40, 0x43, 0x43, 0x43, 

-	0x45, 0x45, 0x45, 0x46, 0x46, 0x46, 0x4a, 0x4a, 0x4a, 0x4d, 

-	0x4d, 0x4d, 0x50, 0x50, 0x50, 0x52, 0x52, 0x52, 0x55, 0x55, 

-	0x55, 0x58, 0x58, 0x58, 0x5c, 0x5c, 0x5c, 0x60, 0x60, 0x60, 

-	0x62, 0x62, 0x62, 0x66, 0x66, 0x66, 0x69, 0x69, 0x69, 0x6b, 

-	0x6b, 0x6b, 0x6e, 0x6e, 0x6e, 0x71, 0x71, 0x71, 0x73, 0x73, 

-	0x73, 0x74, 0x74, 0x74, 0x77, 0x77, 0x77, 0x78, 0x78, 0x78, 

-	0x7a, 0x7a, 0x7a, 0x7c, 0x7c, 0x7c, 0x7e, 0x7e, 0x7e, 00, 

-	0xd9, 00, 0x4, 0xd8, 0x4, 0x6, 0xda, 0x6, 0x8, 0xda, 

-	0x8, 0xc, 0xda, 0xc, 0x15, 0xdc, 0x15, 0x18, 0xdc, 0x18, 

-	0x1a, 0xdc, 0x1a, 0x1d, 0xdd, 0x1d, 0x20, 0xde, 0x20, 0x22, 

-	0xde, 0x22, 0x24, 0xde, 0x24, 0x28, 0xde, 0x28, 0x2d, 0xe0, 

-	0x2d, 0x2f, 0xe0, 0x2f, 0x3b, 0xe2, 0x3b, 0x3d, 0xe2, 0x3d, 

-	0x41, 0xe2, 0x41, 0x45, 0xe2, 0x45, 0x49, 0xe3, 0x49, 0x49, 

-	0xe4, 0x49, 0x4b, 0xe4, 0x4b, 0x4d, 0xe5, 0x4d, 0x51, 0xe5, 

-	0x51, 0x56, 0xe6, 0x56, 0x58, 0xe6, 0x58, 0x60, 0xe6, 0x60, 

-	0x64, 0xe8, 0x64, 0x69, 0xe9, 0x69, 0x6a, 0xe9, 0x6a, 0x6c, 

-	0xe9, 0x6c, 0x6e, 0xe9, 0x6e, 0x6f, 0xea, 0x6f, 0x66, 0xff, 

-	0x66, 0x68, 0xff, 0x68, 0x6a, 0xff, 0x6a, 0x6c, 0xff, 0x6c, 

-	0x6e, 0xff, 0x6e, 0x73, 0xea, 0x73, 0x78, 0xeb, 0x78, 0x7a, 

-	0xea, 0x7a, 0x70, 0xff, 0x70, 0x72, 0xff, 0x72, 0x74, 0xff, 

-	0x74, 0x76, 0xff, 0x76, 0x78, 0xff, 0x78, 0x7a, 0xff, 0x7a, 

-	0x7c, 0xff, 0x7c, 0x7e, 0xff, 0x7e, 0x80, 0x80, 0x80, 0x83, 

-	0x83, 0x83, 0x86, 0x86, 0x86, 0x89, 0x89, 0x89, 0x8b, 0x8b, 

-	0x8b, 0x8e, 0x8e, 0x8e, 0x90, 0x90, 0x90, 0x93, 0x93, 0x93, 

-	0x96, 0x96, 0x96, 0x99, 0x99, 0x99, 0x9a, 0x9a, 0x9a, 0x9e, 

-	0x9e, 0x9e, 0xa0, 0xa0, 0xa0, 0xa5, 0xa5, 0xa5, 0xa6, 0xa6, 

-	0xa6, 0xa9, 0xa9, 0xa9, 0xab, 0xab, 0xab, 0xac, 0xac, 0xac, 

-	0xae, 0xae, 0xae, 0xb1, 0xb1, 0xb1, 0xb5, 0xb5, 0xb5, 0xb8, 

-	0xb8, 0xb8, 0xba, 0xba, 0xba, 0xbc, 0xbc, 0xbc, 0xbe, 0xbe, 

-	0xbe, 0x81, 0xeb, 0x81, 0x80, 0xec, 0x80, 0x85, 0xec, 0x85, 

-	0x88, 0xed, 0x88, 0x88, 0xee, 0x88, 0x8d, 0xee, 0x8d, 0x80, 

-	0xff, 0x80, 0x82, 0xff, 0x82, 0x84, 0xff, 0x84, 0x86, 0xff, 

-	0x86, 0x88, 0xff, 0x88, 0x8a, 0xff, 0x8a, 0x8c, 0xff, 0x8c, 

-	0x8e, 0xff, 0x8e, 0x97, 0xf0, 0x97, 0x90, 0xff, 0x90, 0x92, 

-	0xff, 0x92, 0x94, 0xff, 0x94, 0x96, 0xff, 0x96, 0x9c, 0xf0, 

-	0x9c, 0x98, 0xff, 0x98, 0x9a, 0xff, 0x9a, 0x9c, 0xff, 0x9c, 

-	0x9e, 0xff, 0x9e, 0xa2, 0xf1, 0xa2, 0xa2, 0xf2, 0xa2, 0xa4, 

-	0xf1, 0xa4, 0xa6, 0xf1, 0xa6, 0xa6, 0xf2, 0xa6, 0xa0, 0xff, 

-	0xa0, 0xa2, 0xff, 0xa2, 0xa4, 0xff, 0xa4, 0xa6, 0xff, 0xa6, 

-	0xa8, 0xf2, 0xa8, 0xac, 0xf3, 0xac, 0xae, 0xf3, 0xae, 0xa8, 

-	0xff, 0xa8, 0xaa, 0xff, 0xaa, 0xac, 0xff, 0xac, 0xae, 0xff, 

-	0xae, 0xb3, 0xf4, 0xb3, 0xb4, 0xf4, 0xb4, 0xb6, 0xf4, 0xb6, 

-	0xb0, 0xff, 0xb0, 0xb2, 0xff, 0xb2, 0xb4, 0xff, 0xb4, 0xb6, 

-	0xff, 0xb6, 0xbb, 0xf5, 0xbb, 0xb8, 0xff, 0xb8, 0xba, 0xff, 

-	0xba, 0xbc, 0xff, 0xbc, 0xbe, 0xff, 0xbe, 0xc0, 0xc0, 0xc0, 

-	0xc3, 0xc3, 0xc3, 0xc4, 0xc4, 0xc4, 0xc6, 0xc6, 0xc6, 0xc8, 

-	0xc8, 0xc8, 0xca, 0xca, 0xca, 0xcc, 0xcc, 0xcc, 0xcf, 0xcf, 

-	0xcf, 0xd0, 0xd0, 0xd0, 0xd2, 0xd2, 0xd2, 0xd4, 0xd4, 0xd4, 

-	0xd6, 0xd6, 0xd6, 0xd8, 0xd8, 0xd8, 0xda, 0xda, 0xda, 0xdc, 

-	0xdc, 0xdc, 0xdf, 0xdf, 0xdf, 0xc0, 0xff, 0xc0, 0xc2, 0xff, 

-	0xc2, 0xc4, 0xff, 0xc4, 0xc6, 0xff, 0xc6, 0xc8, 0xff, 0xc8, 

-	0xca, 0xff, 0xca, 0xcc, 0xf8, 0xcc, 0xce, 0xf8, 0xce, 0xcc, 

-	0xff, 0xcc, 0xce, 0xff, 0xce, 0xd0, 0xf8, 0xd0, 0xd0, 0xff, 

-	0xd0, 0xd2, 0xff, 0xd2, 0xd6, 0xf9, 0xd6, 0xd4, 0xff, 0xd4, 

-	0xd6, 0xff, 0xd6, 0xd9, 0xf9, 0xd9, 0xd8, 0xff, 0xd8, 0xda, 

-	0xff, 0xda, 0xdc, 0xfa, 0xdc, 0xdc, 0xff, 0xdc, 0xde, 0xff, 

-	0xde, 0xe0, 0xe0, 0xe0, 0xe2, 0xe2, 0xe2, 0xe4, 0xe4, 0xe4, 

-	0xe6, 0xe6, 0xe6, 0xe8, 0xe8, 0xe8, 0xea, 0xea, 0xea, 0xec, 

-	0xec, 0xec, 0xee, 0xee, 0xee, 0xe1, 0xfa, 0xe1, 0xe3, 0xfb, 

-	0xe3, 0xe0, 0xff, 0xe0, 0xe2, 0xff, 0xe2, 0xe5, 0xfb, 0xe5, 

-	0xe4, 0xff, 0xe4, 0xe6, 0xff, 0xe6, 0xe8, 0xfc, 0xe8, 0xe8, 

-	0xff, 0xe8, 0xea, 0xfc, 0xea, 0xea, 0xff, 0xea, 0xec, 0xff, 

-	0xec, 0xee, 0xfd, 0xee, 0xee, 0xff, 0xee, 0xf0, 0xf0, 0xf0, 

-	0xf2, 0xf2, 0xf2, 0xf4, 0xf4, 0xf4, 0xf6, 0xf6, 0xf6, 0xf1, 

-	0xfd, 0xf1, 0xf0, 0xff, 0xf0, 0xf3, 0xfd, 0xf3, 0xf2, 0xff, 

-	0xf2, 0xf5, 0xfd, 0xf5, 0xf4, 0xfe, 0xf4, 0xf6, 0xfe, 0xf6, 

-	0xf8, 0xf8, 0xf8, 0xfa, 0xfa, 0xfa, 0xf8, 0xfe, 0xf8, 0xfa, 

-	0xfe, 0xfa, 0xff, 00, 00, 0xfc, 0xfe, 0xfc, 0xfe, 0xfe, 

-	0xfe, 0xd7, 0xd6, 0xbe, 0x1c, 00, 00, 00, 0xfe, 0x74, 

-	0x52, 0x4e, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 

-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 00, 0xd8, 0xd9, 0xc, 

-	0x71, 00, 00, 0xc, 0xc6, 0x49, 0x44, 0x41, 0x54, 0x78, 

-	0xda, 0xed, 0x9c, 0xf, 0x50, 0x14, 0xd7, 0x19, 0xc0, 0xdf, 

-	0xc2, 0x21, 0x2c, 0x77, 0x27, 0xa0, 0x1, 0x3d, 0x15, 0x10, 

-	0x4, 0x39, 0x23, 0xe3, 0x14, 0x1, 0xeb, 0x1f, 0xc0, 0x51, 

-	0x87, 0x88, 0x81, 0x91, 0x92, 0xa8, 0x41, 0x32, 0x49, 0xac, 

-	0xb6, 0x8e, 0xa5, 0xa6, 0x8e, 0x1d, 0x3b, 0x6d, 0x9c, 0xce, 

-	0x64, 0x3a, 0xda, 0xd8, 0x4e, 0xda, 0x4e, 0x67, 0x9c, 0x74, 

-	0x92, 0x36, 0xa, 0xb6, 0x62, 0xac, 0xa6, 0x15, 0xdb, 0x10, 

-	0xe8, 0x58, 0xb4, 0xa, 0x6, 0x14, 0x73, 0x54, 0x73, 0x53, 

-	0x8e, 0x62, 0x4c, 0xf8, 0x93, 0x9c, 0x60, 0x10, 0xc9, 0x82, 

-	0x87, 0x1c, 0xb0, 0x7d, 0xbb, 0xcb, 0xdd, 0xbd, 0xb7, 0xfb, 

-	0xde, 0xde, 0xae, 0x98, 0x94, 0x23, 0x99, 0xdf, 0xcc, 0xed, 

-	0xbd, 0xdd, 0xf7, 0xde, 0xed, 0xb7, 0xef, 0xbd, 0xef, 0x7d, 

-	0xdf, 0xf7, 0xde, 0x1e, 0x33, 0xa, 00, 0xb8, 0x76, 0xf0, 

-	0x36, 0xfc, 0x9c, 0xd2, 0xa4, 0x1c, 0x83, 0x1f, 0x50, 0xd8, 

-	0x53, 0x7f, 0xfc, 0x6c, 0x82, 0x35, 0x5, 0x2, 0xec, 0xd6, 

-	0x9d, 0x50, 0xd8, 0x3f, 0xbd, 0x36, 0xe1, 0x8a, 0x2, 0x83, 

-	0xef, 0x3f, 0xc7, 0x8c, 0xe6, 0x72, 0x13, 0xae, 0x26, 0x30, 

-	0x30, 0x9f, 0x33, 0xbc, 0x20, 0xc9, 0x6a, 0x88, 0xc, 0x9e, 

-	0x50, 0x4d, 0x93, 0x92, 0xa0, 0x69, 0xd2, 0x71, 0xb0, 0x4f, 

-	0xd0, 0x4c, 0xdc, 0x29, 0x26, 0x53, 0x48, 0xb1, 0x31, 0xd9, 

-	0x39, 0x33, 0x1e, 0xb2, 0xc6, 0x49, 0x4c, 0x58, 0x8c, 0x74, 

-	0xfc, 0xe0, 0x17, 0x1f, 0xbb, 0xe1, 0x61, 0xba, 0x24, 0x6c, 

-	0xfc, 0x6b, 0xe3, 0xa7, 0xa7, 0x28, 0x1d, 0x3f, 0xf8, 0x54, 

-	0x38, 0x4, 0x9, 0x1f, 0x21, 0xeb, 0xa6, 0xb6, 0xac, 0x20, 

-	0x6e, 0xad, 0x41, 0x38, 0x88, 0xc2, 0x1a, 0xd8, 0x9, 0x54, 

-	0x14, 0x10, 0x44, 0x84, 0x8, 0x9f, 0xa2, 0xb0, 0x5f, 0x15, 

-	0xbe, 0x16, 0x76, 0xaa, 0x22, 0xe, 0x5c, 0x1a, 0xfd, 0x63, 

-	0x7d, 0x1f, 0xa7, 0x47, 0x68, 0xab, 0xe8, 0x91, 0xe2, 0xe2, 

-	0x84, 0x89, 0x11, 0x12, 0x6c, 0xd6, 0xaa, 0x4e, 0xc4, 0x22, 

-	0xfd, 0xc2, 0xcd, 0xd2, 0xcb, 0xd0, 0x85, 0xed, 0x7b, 0xef, 

-	0x82, 0xcb, 0xdd, 0x78, 0xaf, 0x7c, 0xad, 0xef, 0x94, 0xb3, 

-	0x8b, 0x92, 0xd7, 0xc, 0x40, 0xbc, 0xfc, 0x17, 0xa8, 0x99, 

-	0x51, 0x82, 0xe7, 0x29, 0xe6, 0x81, 0x9e, 0xae, 0xd1, 0xa1, 

-	0xee, 0xdb, 0x3, 00, 0xb4, 0xa6, 00, 0x60, 0x9a, 0x61, 

-	0xb2, 0x4, 0x5b, 0x2c, 0xea, 0x95, 0xb8, 0xda, 0xb9, 0xa1, 

-	0xbe, 0xde, 0xde, 0x11, 0xa9, 0x88, 0x61, 0xa6, 0x79, 0x56, 

-	0x18, 0x30, 0x2b, 0xee, 0x7, 0x42, 0x13, 0xd6, 0xfd, 0xaf, 

-	0xd3, 0x67, 0x7a, 0xe1, 0x91, 0x75, 0xf7, 0xd7, 0xd7, 00, 

-	0xb0, 0x1b, 0xd6, 0x2, 0x5c, 0x17, 0x2a, 0x29, 0xb9, 0xcd, 

-	0xc9, 0x20, 0xce, 0x14, 0x15, 0x6d, 0x45, 0xcf, 0x5d, 0xae, 

-	0x1a, 0xa4, 0xe4, 0x46, 0x30, 0x6e, 0xc7, 0x85, 0x75, 0xd9, 

-	0x9d, 0x1d, 0xef, 0x7b, 0xca, 0xd9, 0xc6, 0xf3, 0x2c, 0x89, 

-	0x9d, 0x95, 0x42, 0x9f, 0x1b, 0x6d, 0x5d, 0x3, 0xb5, 0x5e, 

-	0x8b, 0x77, 0xbc, 0x8, 0x60, 0xd2, 0xe2, 0x62, 0x93, 0x14, 

-	0xcf, 0x88, 0x26, 0x6c, 0xed, 0x4e, 0x6f, 0xc3, 0x54, 0xbd, 

-	0xe, 0x40, 0xe8, 0x21, 0x51, 0x77, 0xd3, 0xe0, 0x6c, 0xf0, 

-	0x67, 0xe0, 0xf, 0x58, 0x97, 0xaa, 0xe5, 0xf2, 0x8b, 0xeb, 

-	0xda, 0xcd, 0x4b, 0xca, 0x27, 0x34, 0xd8, 0xd0, 0x60, 0x5c, 

-	0xb2, 0x60, 0x39, 0x51, 0x5c, 0x97, 0xbd, 0xad, 0xc3, 0x23, 

-	0x20, 0xa, 0x6f, 0xb3, 0x19, 0x4b, 0xb5, 0xa, 0x7b, 0xd1, 

-	0x27, 0x6b, 0xc4, 0x74, 0xd6, 0x5, 0xde, 0x2d, 0x4d, 0x24, 

-	0x67, 0x44, 0x80, 0x3f, 0xb0, 0xf4, 0x7a, 0xfe, 0x4, 0xcc, 

-	0x13, 0xdb, 0x75, 0x82, 0xa8, 0x22, 0x83, 0xd, 0x37, 0x3e, 

-	0xcc, 0xc8, 0x50, 0x76, 0x4c, 0x47, 0x43, 0x3d, 0xd5, 0x8d, 

-	0x9, 0x9a, 0xa7, 0x38, 0x45, 0x16, 0xd6, 0xfd, 0x77, 0x64, 

-	0xc0, 0xad, 0x3f, 0xfd, 0x11, 0xe8, 0x6e, 0xf7, 0x2f, 0x2c, 

-	0xc4, 0xc6, 0xf4, 0x3e, 0xeb, 0x67, 0x80, 0xd1, 0xa9, 0x2b, 

-	0x1f, 0xe0, 0xa9, 0x17, 0xa1, 0xb8, 0x37, 0x15, 0xf, 0xb2, 

-	0xa9, 0xb6, 0x99, 0x5e, 0x82, 00, 0x59, 0xd8, 0xf6, 0xa, 

-	0xf8, 0x31, 0xa7, 0x78, 0xec, 0xd, 0x17, 0x3c, 0xc6, 0x42, 

-	0xdf, 0xa1, 0x1f, 0x8e, 0x7e, 0x2d, 0xf0, 0x57, 0x5b, 0xe, 

-	0x3e, 0x9c, 0xb4, 0xae, 0x2a, 0x3f, 0x63, 0x7c, 0xb0, 0xa6, 

-	0xf7, 0x79, 0x5c, 0x5a, 0xdb, 0xef, 0xd4, 0x4a, 0x24, 0x47, 

-	0x2a, 0x4e, 0x91, 0xe7, 0xd9, 0x4f, 0xee, 00, 0x90, 0x50, 

-	0x76, 0x68, 0xbd, 0xf8, 0x28, 0xe2, 0xb3, 0x1, 0x18, 0xa3, 

-	0x55, 0xa9, 0x80, 0xfb, 0xa9, 0xe6, 0xac, 0x28, 0xae, 0x33, 

-	0xa7, 0xfd, 0xe9, 0x33, 0xfe, 0xea, 0x4b, 0x3d, 0x68, 0xda, 

-	0x79, 0x58, 0xbd, 0x84, 0xb2, 0xd7, 0x93, 0x85, 0x1d, 0x83, 

-	0xc2, 0x45, 0xe4, 0x8e, 0xeb, 0xa4, 0xae, 0xf7, 0x28, 0xb5, 

-	0x91, 0xe1, 0xca, 0x74, 0x65, 0x97, 0x70, 0x9d, 0x39, 0xab, 

-	0xa1, 0x43, 0x72, 0x2f, 0x9, 0x3d, 0x6d, 0x9c, 0x9e, 0xfd, 

-	0x1a, 0xb4, 0x3d, 0xe, 0x59, 0x58, 0xe1, 0x87, 0x19, 0x4f, 

-	0x62, 0x78, 0x58, 0x4b, 0x45, 0x3e, 0x2e, 0xe9, 0xcb, 0x2e, 

-	0x62, 0xaf, 0x54, 0xca, 0xea, 0xbd, 0x1, 0x1f, 0x1c, 0x9c, 

-	0x18, 0x3c, 0x10, 0x95, 0x19, 0x52, 0x86, 0x30, 0x40, 0xc9, 

-	0x63, 0x56, 0x28, 0xe3, 0x16, 0xcd, 0x11, 0x48, 0x19, 0xc, 

-	0x3d, 0x1a, 0x94, 0x71, 0xc, 0x63, 0x50, 0x32, 0x30, 0x8c, 

-	0x80, 0xb6, 0xb1, 0xfb, 0xb2, 0xfb, 0xbc, 0xdf, 0x24, 0xfa, 

-	0xc8, 0x7a, 0x70, 0xfe, 0x4a, 0x76, 0xc2, 0x98, 0x62, 00, 

-	0x33, 0x7b, 0xc1, 0x48, 0xab, 0xac, 0xf2, 0xc6, 0x3a, 0x38, 

-	0xa6, 0x44, 0x5c, 0xa7, 0x95, 0x25, 0x80, 0x50, 0x6, 0xc0, 

-	0x7b, 0xa2, 0x68, 0x3a, 0xb2, 0xb0, 0x42, 0x7b, 0x3b, 0xf, 

-	0xee, 0x17, 0xbe, 0xba, 0xcf, 0x9f, 0x85, 0xd6, 0xcc, 0x9c, 

-	0xb9, 0x8a, 0x3c, 0xb9, 0x6b, 00, 0xb0, 0x38, 0x41, 0xbf, 

-	0xfd, 0xf6, 0x50, 0x13, 0x56, 0x37, 0x5f, 0x2f, 0x5, 0x4, 

-	0xd2, 0x85, 0xe8, 0x80, 0xc4, 0x28, 0x9a, 0x83, 0x59, 0xee, 

-	0xfb, 0x1e, 0x69, 0x14, 0xf, 0x7f, 0xc1, 0x6f, 0xce, 0xb8, 

-	0x78, 0x61, 0xae, 0x38, 0xe2, 0x5c, 0xf6, 0x2b, 0x5e, 0x13, 

-	0x43, 0xaa, 0xbb, 0xdc, 0x63, 0x5e, 0xd8, 0xb1, 0x22, 0x4c, 

-	0xe6, 0x42, 0xdf, 0x44, 0xec, 0x6a, 0xb7, 0x77, 0x3e, 0x68, 

-	0x26, 0x84, 0x99, 0xc8, 0xc2, 0xce, 0x85, 0x4f, 0xa8, 0xf7, 

-	0xe8, 0x79, 0xde, 0xd, 0xdc, 0x3f, 0x1a, 0x6e, 0x87, 0x27, 

-	0x36, 0xce, 0x56, 0xe4, 0x31, 0x9, 0x5a, 0xd7, 0x2, 0x2c, 

-	0x56, 0xe0, 0x9c, 0x8f, 0x2b, 0xd2, 0x7, 0xe2, 0x67, 0x26, 

-	0xd2, 0xbe, 0x8e, 0x26, 0xe4, 0x72, 0xda, 0x5e, 0x79, 0x55, 

-	0x8e, 0x3a, 0x2c, 0x69, 0xde, 0x90, 0x33, 0x7e, 0xe3, 0x6c, 

-	0x66, 0x66, 0x5d, 0x39, 0x36, 0x93, 0xe, 0xfc, 0xb3, 0x44, 

-	0xfa, 0x52, 0x8f, 0x9e, 0x65, 0xf2, 0xd0, 0x69, 0x89, 0xb5, 

-	0xc2, 0x7b, 0x4a, 0x8a, 0xc7, 0xea, 0x14, 0x21, 0xb, 0x1b, 

-	0x5d, 0x72, 0x18, 0x80, 0xbe, 0x3e, 0xf8, 0x6d, 0xa4, 0x55, 

-	0x48, 0x9b, 0x9e, 0x50, 0x73, 0x7, 0x2c, 0x9b, 0x66, 0x1d, 

-	0xd5, 0xad, 0x2c, 0x50, 0xaa, 0xb1, 0x56, 0x32, 0x6f, 0xf3, 

-	0x74, 0x55, 0x81, 0xec, 0xb0, 0xd7, 0x51, 0x69, 0xf9, 0x8e, 

-	0x1e, 0x49, 0xac, 0x1b, 0x68, 0x91, 0xb4, 0x3c, 0xf9, 0x14, 

-	0x6c, 0xd9, 0x24, 0x3b, 0x21, 0x40, 0x56, 0x50, 0x11, 0xdf, 

-	0x9a, 0x83, 0xa5, 0x13, 0x1e, 0x27, 0x66, 0xf3, 0x92, 0xbd, 

-	0x18, 0x4d, 0xb5, 0xa9, 0x67, 0x56, 0xe0, 0xc0, 0x6e, 0xdc, 

-	0xb8, 0x1, 0x95, 0x15, 0x80, 0xcc, 0x5d, 0x98, 0xa6, 0x6a, 

-	0x25, 0xe9, 0x3f, 0x83, 0xb6, 0xb9, 0x9d, 0xe2, 0xcf, 0x66, 

-	0x6d, 0x35, 0x21, 0xa9, 0x84, 0xdf, 0xfa, 0xb3, 0x9f, 0xe6, 

-	0x13, 0x54, 0xa7, 0x66, 0x1a, 0xee, 0xa3, 0xa9, 0x94, 0x1c, 

-	0xd9, 0xe5, 0xcc, 0x3c, 0x34, 0x35, 0xd8, 0x29, 0x1d, 0xb1, 

-	0x32, 0x1a, 0xa1, 0x8, 0x1b, 0xb2, 0x7f, 0x67, 0xb4, 0x37, 

-	0xcb, 0x82, 0x3f, 0x40, 0x5d, 0xa4, 0x4e, 0x2a, 0x9a, 0x48, 

-	0xf6, 0x97, 0x5b, 0x46, 0x37, 0xda, 0x8b, 0x99, 0x55, 0xa, 

-	0xeb, 0x3a, 0x1f, 0x7b, 0x92, 0x76, 0x92, 0xe1, 0xaf, 0xd, 

-	0x5a, 0xa4, 0x22, 0xea, 0xd0, 0xa9, 0x5d, 0xd0, 0x4b, 0x85, 

-	0xcc, 0xdc, 0xf7, 0xf, 0xc4, 0xa5, 0xa5, 0x60, 0x47, 0xbe, 

-	0x33, 0x68, 0xa7, 0xd0, 0x80, 0x13, 0xeb, 0xf6, 0x26, 0xbc, 

-	0x13, 0xb, 0xc4, 0x20, 0xea, 0x1b, 0x80, 0x1, 0x87, 0xb2, 

-	0x8a, 0xa6, 0xb7, 0x95, 0xe7, 0x8, 0x50, 0x9d, 0xf7, 0x90, 

-	0xd5, 0x2b, 0x7f, 0x2e, 0x68, 0x28, 0x66, 0x86, 0x96, 0x50, 

-	0x45, 0x27, 0xda, 0x38, 0x2b, 0x35, 0x14, 0x40, 0xb8, 0x8c, 

-	0xd9, 0xa2, 0x69, 0x84, 0x1c, 0xc5, 0xd, 0x48, 0x82, 0x97, 

-	0x94, 0x3d, 0x6, 0x7f, 0x7a, 0xb8, 0x48, 0x43, 0x48, 0x43, 

-	0x25, 0x2c, 0x13, 0x12, 0x15, 0xe5, 0xbf, 0xbc, 0x84, 0x13, 

-	0x6d, 0xd9, 0x70, 0x9d, 0x4e, 0x6d, 0x27, 0xaa, 0xc9, 0x99, 

-	0x2d, 0x84, 0x1c, 0x91, 0xc, 0xfa, 0x2c, 0xef, 0xb9, 0x4, 

-	0xb9, 0x32, 0xaf, 0xa2, 0x39, 0xf8, 0xca, 0x73, 0xf9, 0xab, 

-	0x22, 0xfd, 0xc9, 0x2b, 0x76, 0xe3, 0x11, 0xc4, 0xe4, 0xc4, 

-	0xe9, 0x17, 0x1a, 0xd7, 0x2f, 0xce, 0xa, 0x74, 0x76, 0x48, 

-	0xd7, 0x52, 0x84, 0xa, 0xc9, 0x1f, 0x66, 0xb1, 0x7e, 0x3c, 

-	0x7a, 0x4f, 0xf8, 0x5c, 0x2d, 0xcb, 0x33, 0x78, 0x6a, 0xcf, 

-	0xee, 0x3a, 0x87, 0x93, 0x2a, 0x89, 0x80, 0xd8, 0xb2, 0x6e, 

-	0xd2, 0x2, 0xad, 0xfb, 0xd6, 0x71, 0x37, 0x18, 0x4, 0x7b, 

-	0x92, 0x28, 0x25, 0x87, 0xa5, 0x7a, 0xb9, 0xd1, 0xfe, 0x3b, 

-	0x97, 0x51, 0x9d, 0x61, 0xde, 0x41, 0x29, 0x40, 0x1, 0xbf, 

-	0xbd, 0x70, 0x62, 0x9e, 0xc, 0xb4, 0x1f, 0xb7, 0x74, 0x9, 

-	0x13, 0x4d, 0x2a, 0xd6, 0xda, 0x22, 0xdc, 0x61, 0x60, 0x5e, 

-	0x97, 0x6c, 0x9e, 0x41, 0x8d, 0x1f, 0x50, 0xbb, 0x71, 0xeb, 

-	0x1b, 0x55, 0x5d, 0xf0, 0x3e, 0xd8, 0x82, 0xe8, 0xf7, 0xcf, 

-	0x3, 0xb0, 0x23, 0x41, 0x91, 0xe1, 0xe3, 0x33, 0xe2, 0xe1, 

-	0x41, 0x77, 0x2b, 0x66, 0x50, 0x18, 0x77, 0xe9, 0x5c, 0x5e, 

-	0xf0, 0x4, 0x12, 0x25, 0x96, 0x10, 0xf3, 0x48, 0x46, 0xe5, 

-	0x38, 0x3, 0x4e, 0xe1, 0x93, 0xcd, 0xab, 0x26, 0x55, 0x56, 

-	0x9, 0x8c, 0x39, 0x49, 0xca, 0xe8, 0x93, 0x4, 0x4d, 0xd8, 

-	0xb, 0xbb, 0x3a, 0x87, 0xc6, 0xbf, 0x56, 0x1e, 0x7, 0x80, 

-	0x39, 0xa0, 0xc8, 0x81, 0x8d, 0x19, 0x2f, 0xc6, 0x7c, 0xbd, 

-	0x5e, 0xc0, 0x28, 0x16, 0x17, 0x50, 0x7a, 0xdc, 0x2, 0xd8, 

-	0xcd, 0xf3, 0x92, 0x17, 0x96, 0x4f, 0x89, 0xc8, 0xc, 0x56, 

-	0x33, 0xcb, 0x63, 0x57, 0x11, 0xc5, 0xa5, 0x8, 0x7b, 0xb3, 

-	0xf4, 0x43, 0x8f, 0x8e, 0x8c, 0x98, 0x36, 0xe8, 0x6, 0xdd, 

-	0x7d, 0x9a, 0x94, 0x15, 0xb3, 0x3c, 0x23, 0x43, 0x4b, 0x3e, 

-	0x94, 0x2e, 0x6c, 0xe6, 0xa1, 0xd, 0x1a, 0x25, 0x31, 0x85, 

-	0x15, 0x14, 0x17, 0x98, 0x6f, 0x68, 0xec, 0x5c, 0xb0, 0x91, 

-	0x70, 0x81, 0x32, 0xcf, 0x1e, 0x6b, 0xf7, 0xcd, 0x7, 0xeb, 

-	0x67, 0x1, 0xf0, 0x2e, 0x16, 0x23, 0xa0, 0xc0, 0xac, 0xd8, 

-	0x5d, 0x9c, 0xad, 0x7b, 0x8d, 0xcc, 0x89, 0xcd, 0x3c, 0x58, 

-	0x87, 0x55, 0x27, 0xb7, 0x90, 0x6a, 0xb6, 0xf1, 0xd, 0x15, 

-	0x65, 0x4, 0x55, 0x45, 0x6e, 0xd9, 0x5b, 0x27, 0x60, 0x1f, 

-	0x36, 0x25, 0x7c, 0xb3, 0x42, 0x28, 0x91, 00, 0xef, 0xff, 

-	0xce, 0x27, 0x42, 0xe0, 0x58, 0x9d, 0xa5, 0x4f, 0x28, 0x23, 

-	0xde, 0x5f, 0x24, 0x6c, 0x91, 0xe9, 0x2c, 0x35, 0xb6, 0xc8, 

-	0xd7, 0xc, 0xee, 0x50, 0x3c, 0x77, 0x72, 0xcb, 0x76, 0x42, 

-	0x3, 0x34, 0xba, 0xb4, 0xf2, 0x29, 0xf1, 0x51, 0x44, 0x43, 

-	0x8b, 0xc8, 0x8d, 0x69, 0x11, 0x32, 0xcd, 0x17, 0xef, 0xfa, 

-	0xcf, 0xf4, 0x28, 0x61, 0x37, 0x1e, 0xcc, 0xa1, 0x37, 0x6e, 

-	0x9d, 0xa4, 0x40, 0x51, 0x28, 0x31, 0x28, 0xa8, 0x34, 0x66, 

-	0x1f, 0x48, 0x18, 0xaf, 0x49, 0x63, 0xb8, 0x92, 0x6f, 0xac, 

-	0x44, 0xdd, 0x56, 0xad, 0xcc, 0xc3, 0x6e, 0x41, 0xc3, 0x43, 

-	0x45, 0xb0, 0xec, 0xfe, 0xd9, 0x32, 0x9a, 0xb8, 0x7c, 0x2d, 

-	0xee, 0x25, 0x43, 0xe8, 0x31, 0x28, 0x83, 0x67, 0xd, 0xe0, 

-	0xb6, 0x56, 0x5f, 0x95, 0xb7, 0xd5, 0x12, 0xec, 0x56, 0x7f, 

-	0xcc, 0x5b, 0x84, 0xa6, 0x30, 0x9f, 0x5c, 0x3, 0xd6, 0x7d, 

-	0xe5, 0x5b, 0x8c, 0x46, 0xa2, 0xc0, 0xdc, 0x75, 0xf9, 0x19, 

-	0x7a, 0xc, 0xca, 0xdb, 0x9e, 0xc7, 0xa1, 0xc9, 0xa1, 0x71, 

-	0x65, 0xd3, 0xf6, 0x38, 0xb6, 0xdc, 0xf3, 0x10, 0x90, 0x5b, 

-	0x16, 0x5b, 0x23, 0x33, 0x42, 0x85, 0x89, 0xc0, 0x6e, 0xda, 

-	0xe4, 0xac, 0xe9, 0x26, 0x85, 0x9d, 0x9a, 0xe5, 0xc1, 0x30, 

-	0x95, 0x55, 0x3c, 0xc9, 0xd9, 0xe1, 0x6f, 0xfd, 0xd, 0x9a, 

-	0x8c, 0x51, 0xe3, 0x9b, 0x6c, 0x10, 0xcc, 0x82, 0x5b, 0x37, 

-	0x3a, 0x82, 0xc7, 0xe4, 0xcf, 0x66, 0xea, 0xe, 0x91, 0x4b, 

-	0xbe, 0x95, 0x7, 0xf2, 0x40, 0x10, 0x22, 0x43, 0x5e, 0x82, 

-	0xc2, 0xe4, 0x97, 0x2d, 0xdf, 0x6, 0xce, 0xcb, 0x30, 0xec, 

-	0x24, 0x93, 0x97, 0x6b, 0xd3, 0x24, 0xec, 0x1c, 0x33, 0x7, 

-	0xda, 0x4b, 0xb, 0xdc, 0x23, 0x60, 0xe4, 0xaf, 0x8d, 0xff, 

-	0x81, 0x27, 0x8a, 0x94, 0x96, 0x4d, 0xa1, 0x38, 0x93, 0x39, 

-	0x67, 0x61, 0x73, 0x3b, 0x27, 0x9a, 0x72, 0xba, 0x60, 0xf1, 

-	0xc8, 0x98, 0x68, 0xe5, 0xcb, 0x70, 0x61, 0xc6, 0xd2, 0x22, 

-	0xe5, 0x22, 0xe, 0x10, 0xc2, 0x30, 0x8e, 0xb8, 0x4f, 0xc9, 

-	0x86, 0x8e, 0x17, 0x72, 0xff, 0x9c, 0xfd, 0xc, 0xfc, 0xf8, 

-	0xe8, 0xf0, 0x11, 0x17, 0x70, 0xbf, 0x69, 0x87, 0xf3, 0x60, 

-	0x48, 0xc, 0xcd, 0xa6, 0xb0, 0x14, 0x17, 0x62, 0x4d, 0x53, 

-	0xaf, 0x6a, 0x89, 0x13, 0x89, 0xc4, 0x7d, 0x73, 0x52, 0x16, 

-	0x6c, 0x86, 0x9, 0x23, 0x5b, 0x59, 0xc0, 0x5a, 0x52, 0xb0, 

-	0x1, 0x1f, 0xbc, 0x77, 0x65, 0xd6, 0x1, 0x25, 0x6, 0xf5, 

-	0xf4, 0x74, 0xe1, 0xe0, 0x8d, 0x85, 0xc6, 0x3f, 0x47, 0xcc, 

-	0x26, 0xc0, 0xe6, 0x66, 0xa1, 0xc9, 0x46, 0xd1, 0x25, 0xd1, 

-	0x45, 0x12, 0x6a, 0xfc, 0xf3, 0x24, 0xd, 0x85, 0x3f, 00, 

-	0x23, 0xd5, 0x6e, 0xb1, 0x16, 0x63, 0x11, 0x1c, 0x30, 0x24, 

-	0xd3, 00, 0x14, 0xcd, 0xb3, 0xac, 0x4, 0xbd, 0x10, 0xfd, 

-	0x1b, 0x15, 0x93, 0x82, 0x5d, 0xb1, 0xc, 0x49, 0xf1, 0xfa, 

-	0x67, 0x9f, 0x24, 0xec, 0x1e, 0x6e, 0x10, 0x6c, 0xb5, 0x5a, 

-	0x34, 0xc1, 0xe0, 0x83, 0x1c, 0x83, 0xcd, 0xc3, 0x2c, 0xb0, 

-	0x16, 0xd1, 0x65, 0xf0, 0x41, 0x11, 0x36, 0x6a, 0xdf, 0x76, 

-	0x5f, 0x70, 0x25, 0x7a, 0xbb, 0x32, 0x54, 0x82, 0x60, 0xc5, 

-	0x22, 0x91, 0x67, 0x75, 0xf7, 0x63, 0xb, 0x16, 0xb3, 0xba, 

-	0x5f, 0xa5, 0xc8, 0xe0, 0x68, 0x46, 0x53, 0x69, 0xab, 0x54, 

-	0xea, 0x8a, 0x94, 0x47, 0xeb, 0x30, 0x68, 0x73, 0x4a, 0xe2, 

-	0x2f, 0xf7, 0x24, 0x4a, 0xca, 0x8b, 0xfd, 0xc6, 0xc9, 0x9f, 

-	0xa8, 0x47, 0x66, 0x96, 0xa2, 0xa1, 0x9, 0x4e, 0x7f, 0x3f, 

-	0x8e, 0x43, 0x47, 0x1a, 0x5f, 0xaf, 0x98, 0xab, 0xf1, 0x75, 

-	0xa0, 0x50, 0x35, 0x15, 0xc8, 0xce, 0x44, 0x53, 0x69, 0x32, 

-	0x55, 0x46, 0x9d, 0x7a, 0xa2, 0xe, 0xfc, 0xb0, 0xa7, 0xad, 

-	0x1e, 0xc6, 0xda, 0x63, 0x67, 0xfa, 0xb, 0x42, 0x59, 0xb1, 

-	0x8, 0xdb, 0x49, 0x45, 0xc0, 0xdf, 0x1f, 0x45, 0xe7, 0x50, 

-	0xb3, 0x65, 0xa0, 0x5a, 0xb6, 0xf7, 0xe3, 0x4, 0xd6, 0xb0, 

-	0xc6, 0x5, 0x6a, 0x55, 0xb9, 0x3a, 0xd4, 0xae, 0x92, 0x85, 

-	0xbd, 0xb8, 0x26, 0x24, 0x92, 0x7d, 0xea, 0xe5, 0x94, 0x2, 

-	0xb5, 0xa2, 0x3e, 0xe2, 0x8c, 0xc8, 0xdd, 0x36, 0xe8, 0x16, 

-	0x96, 0x5d, 0x82, 0x5, 0xd4, 0x1a, 0x23, 0x8b, 0x51, 0x69, 

-	0x4f, 0xe0, 0x8b, 0x99, 0x8b, 0x3d, 0xbe, 0x9b, 0xcd, 0x41, 

-	0x88, 0xb1, 0xdd, 0xc3, 0x4c, 0x44, 0x79, 0xcc, 0x82, 0xdc, 

-	0x8d, 0x47, 0x81, 0xfb, 0x4e, 0xc7, 0x3, 0xcd, 0x3b, 0xa0, 

-	0x72, 0xb1, 0x5, 0x1, 0xfd, 0x2a, 0xa, 0x8f, 0xf9, 0xf3, 

-	0x35, 0x47, 0x7c, 0x8a, 0xa5, 0x47, 0x26, 0x2b, 0xb3, 0xd0, 

-	0xf3, 0xad, 0xab, 0x72, 0x5b, 0x99, 0xa3, 0x7, 0xd7, 0x10, 

-	0xce, 0x63, 0x58, 0x8, 0x5a, 0x6e, 0x9, 0xd1, 0xcd, 0x45, 

-	0xc0, 0xbb, 0x55, 0x77, 0xc8, 0x20, 0xe0, 0x76, 0x41, 0xad, 

-	0xee, 0x15, 0x4b, 0xb6, 0x10, 0xdb, 0x73, 0xc4, 0x5f, 0x6a, 

-	0x2e, 0x5c, 0x18, 0x11, 0x6c, 0x6, 0xf7, 0xfa, 0xb9, 0x8b, 

-	0x32, 0x3b, 0x21, 0xd3, 0xeb, 0x94, 0xff, 0x17, 0xf0, 0xd5, 

-	0xd5, 0xc6, 0x9c, 0xd4, 0xe0, 0xf0, 0x8, 0x31, 0xbe, 0x1, 

-	0x83, 0x61, 0x1c, 0xb6, 0x2c, 0x4, 0x4c, 0xf2, 0x75, 0xc, 

-	0x8a, 0x5, 0x5, 0x37, 0xc8, 0x80, 0xb, 0xed, 0x9a, 0xc3, 

-	0x6, 0x19, 0x37, 0x90, 0x7e, 0xdc, 0x4a, 0x32, 0x82, 0xd4, 

-	0x29, 0x92, 0xd9, 0x3e, 0xdc, 0x71, 0x26, 0xcd, 0x30, 0x47, 

-	0x1e, 0xde, 0x82, 0x18, 0x7d, 0x3, 0x4b, 0x8c, 0xe6, 0xc, 

-	0x56, 0x57, 0xc3, 0x2d, 0x49, 0x70, 0x9f, 0x17, 0x18, 0xee, 

-	0x56, 0x98, 0x8b, 0x59, 0xf2, 0x98, 0x2e, 0x59, 0xd8, 0x18, 

-	0xeb, 0xf5, 0x31, 0xf0, 0xe9, 0x91, 0x43, 0xc4, 0x8b, 0x4, 

-	0x32, 0xca, 0x91, 0xc4, 0xfd, 0x2a, 0xd2, 0xa, 0x9a, 0x2a, 

-	0x6c, 0x41, 0x8b, 0xcc, 0xd, 0xe7, 0x89, 0x8b, 0x1c, 0x4c, 

-	0xbe, 0xcf, 0xd1, 0xf0, 0x66, 0x20, 0x67, 0x5, 0x92, 0xf1, 

-	0x8e, 0x41, 0x1e, 0xb3, 0x51, 0x7f, 0x5e, 0x10, 0x4, 0xb8, 

-	0x8a, 0x3d, 0x1f, 0x91, 0xab, 0x51, 0xc0, 0xa2, 0x6e, 0x1a, 

-	0x7f, 0x53, 0x63, 0x29, 0x4, 0x6b, 0xa1, 0xa6, 0x78, 0x4c, 

-	0x9e, 0x8e, 0xc7, 0xc8, 0x64, 0x29, 0x86, 0x13, 0x65, 0x1f, 

-	0xd4, 0xe8, 0xe6, 0xb7, 0x3a, 0x47, 0xba, 0xca, 0xde, 0xf1, 

-	0x5c, 0x5e, 0xf3, 0x63, 0x65, 0x2c, 0x15, 0x65, 0x35, 0xba, 

-	0xb4, 0xde, 0xe6, 0xd0, 0xef, 0xe8, 0xe5, 0x82, 0x33, 0xfe, 

-	0xdd, 0xe6, 0xd, 0xf9, 0x7e, 0xb3, 0x78, 0x61, 0x96, 0xe3, 

-	0xa6, 0xa3, 00, 0x59, 0xd8, 0xae, 0xa2, 0xbe, 0x21, 0x68, 

-	0xff, 0xf, 0xc0, 0xd, 0x6, 0x12, 0x9f, 0x6f, 0x55, 0x17, 

-	0x36, 0x35, 0x1c, 0xb9, 0xd5, 0x81, 0x6, 0xfd, 0xc2, 0xb2, 

-	0xb9, 0x51, 0x58, 0xa8, 0x9d, 00, 0xb3, 0x39, 0x1f, 0x51, 

-	0x6, 0xfe, 0xc, 0xb5, 0xcc, 0x62, 0xa5, 0xf1, 0x21, 0x9, 

-	0x2b, 0x77, 0x99, 0xf9, 0xfe, 0x6e, 0x3f, 0x75, 0xc9, 0x60, 

-	0x53, 0x90, 0x3b, 0xe5, 0x7b, 0xf5, 0xab, 0x28, 0xc0, 0x66, 

-	0x47, 0x1b, 0x54, 0x3d, 0x34, 0xf3, 0x36, 0x6c, 0x3f, 0x1f, 

-	0xe6, 0xe2, 0x2a, 0x59, 0xf1, 0x2c, 0x21, 0xf8, 0xa7, 0xba, 

-	0xdf, 0x58, 0x7, 0xeb, 0xd0, 0x66, 0x69, 0xb1, 0xeb, 0x9e, 

-	0x7d, 0x20, 0xd6, 0x78, 0xd9, 0xde, 0xc, 0x14, 0x26, 0x7b, 

-	0x8b, 0x8e, 0xd0, 0x25, 0xb3, 0x2f, 0x95, 0xf4, 0xb8, 0x1f, 

-	0x95, 0xb0, 0x98, 0x74, 0xdc, 0x95, 0x87, 0x11, 0x56, 0x8, 

-	0xb0, 0x9c, 0x38, 0x27, 0xdf, 0x68, 0x24, 0xc0, 0x84, 0xa7, 

-	0x3f, 0x2d, 0xef, 0x94, 0x36, 0x86, 0x16, 0x8, 0x64, 0xc2, 

-	0x8b, 0xa4, 0xbd, 0x36, 0xa, 0x28, 0xc2, 0xb2, 0x26, 0xdc, 

-	0xd, 0xe, 0x17, 0x77, 0xcb, 0x98, 0x50, 0xef, 0x4a, 0xe6, 

-	0xce, 0x2f, 0x6b, 0x41, 0x53, 0xe3, 0xbb, 0x3c, 0x3c, 0x44, 

-	0xa0, 0xd6, 0x73, 0x28, 0x5e, 0x10, 0xa3, 0xa4, 0xa4, 0xe9, 

-	0x62, 0xb, 0x40, 0xb6, 0x56, 0x31, 0x20, 0x3c, 0x28, 0x39, 

-	0x89, 0xa0, 0x84, 0x4b, 0x8a, 0xec, 0x57, 0xa0, 0xd1, 0xc, 

-	0xb5, 0xa, 0xba, 0xeb, 0x28, 0x3c, 0x8, 0xa4, 0xae, 0xa6, 

-	0x2e, 0x99, 0x4a, 0x2f, 0x31, 0xe5, 0xbf, 0x2c, 0xa5, 0xfa, 

-	0xff, 0xd, 0x47, 0x6f, 0x42, 0x2, 0x70, 0xd7, 0xcb, 0x76, 

-	0xb5, 0x4d, 0xcb, 0x12, 0xac, 0x29, 0x17, 0xea, 0xd1, 0xc8, 

-	0x56, 0x43, 0x7b, 0xb0, 0x71, 0x2f, 0x5f, 0x2a, 0xc5, 0x1c, 

-	0x4b, 0x7f, 0x91, 0x9b, 0x9e, 0xd6, 0xeb, 0x9e, 0x75, 0x26, 

-	0x10, 0x36, 0x3b, 0x71, 0x11, 0x5d, 0x1, 0xb8, 0xb8, 0xd6, 

-	0xce, 0x6e, 0xdf, 0xf, 0x7, 0xc7, 0x26, 0x52, 0xe2, 0xf4, 

-	0xc7, 0x8e, 0xa, 0xa, 0xd, 0x6f, 0xd9, 0xab, 0xa5, 0x9f, 

-	0x3, 0xf0, 0xfc, 0x2b, 0x21, 0x21, 0xe4, 0x4d, 0x14, 0xac, 

-	0x8a, 0xde, 0x51, 0x1f, 0x51, 0xba, 0x22, 0x53, 0x31, 0x31, 

-	0xaa, 0xfe, 0x33, 0x2, 0xcb, 0xea, 0x5a, 0x83, 0xc0, 0x85, 

-	0x1d, 0xbe, 0xb, 0x23, 0x89, 0x43, 0xf7, 0xff, 0x1f, 0xef, 

-	0x40, 0x7c, 0x19, 0x90, 0x2d, 0xa8, 0xbe, 0xbd, 0xe9, 0xe9, 

-	0x2f, 0x5e, 0xd0, 0x55, 0x51, 0x20, 0x40, 0x56, 0x50, 0x7d, 

-	0xa7, 0x9c, 0xe0, 0x96, 0xd9, 0xef, 0x86, 0xa0, 0x40, 0xe3, 

-	0xab, 0xfe, 0xc6, 0x56, 0xf5, 0x97, 0xbc, 0x18, 0xf7, 0xe5, 

-	0x81, 0x77, 0x63, 0x76, 0x3a, 0x54, 0x50, 0x1d, 0x59, 0x2f, 

-	0xf0, 0x70, 0xb3, 0xdc, 0xf0, 0x5d, 0xf8, 0x3e, 0x8f, 0x87, 

-	0x69, 0xd9, 0x70, 0xea, 0x71, 0xdf, 0xd2, 0xea, 0x5, 0x4d, 

-	0x12, 0x82, 0x93, 0x70, 0x8b, 0x1e, 0x17, 0x76, 0xbe, 0xe0, 

-	0x68, 0x8d, 0xc0, 0xad, 0xce, 0xd0, 0x33, 0x76, 0xbd, 0x79, 

-	0xd4, 0x77, 0x21, 0xa6, 0x16, 0x46, 0x8e, 0xbb, 0x7e, 0x8d, 

-	0xba, 0xad, 0x1, 0x80, 0xf9, 0x7b, 0x7, 0xb1, 0x34, 0x2e, 

-	0x6c, 0xe2, 0x5a, 0x87, 0xb0, 0xe8, 0x2f, 0x6d, 0xe9, 0x10, 

-	0x5e, 0x14, 0xf0, 0x30, 0x7a, 0x5b, 0x8, 0x93, 0x5f, 0xd3, 

-	0xf8, 0xe, 0xc8, 0x64, 0x1, 0x95, 0x40, 0x40, 0x36, 0x66, 

-	0x9f, 0xc4, 0x97, 0x3, 0xa7, 0x18, 0x32, 0x61, 0xf3, 0x4a, 

-	0xa2, 0x1f, 0x95, 0x6b, 0x30, 0x9, 0x91, 0x6b, 0xe3, 0x57, 

-	0x8f, 0x2c, 0x4a, 0x8c, 0xa7, 0x2c, 0x93, 0x5, 0x3c, 0x8a, 

-	0x76, 0x2c, 0x28, 0xb8, 0xd5, 0x59, 0x53, 0xd5, 0xce, 0x81, 

-	0xb0, 0xb9, 0xe2, 0x4a, 0x9e, 0x44, 0x56, 0x1c, 0xfc, 0x98, 

-	0x81, 0x6f, 0xfc, 0x9d, 0xfc, 0xac, 0xcc, 0xc5, 0xd3, 0x84, 

-	0x4e, 0x9b, 0x98, 0xb8, 0xfa, 0xbb, 0xd9, 0x1c, 0x8, 0xdd, 

-	0xfc, 0x8a, 0xec, 0x42, 0xc4, 0x1, 0xe5, 0x3e, 0xb7, 0x80, 

-	0xe2, 0xeb, 0xd7, 0xc0, 0x1, 0x13, 0x1, 0xc6, 0x4c, 0x6a, 

-	0x4b, 0x83, 0x81, 0x9, 0x59, 0xd8, 0x84, 0x77, 0xdc, 0x20, 

-	0x4, 0x5b, 0xfd, 0x9b, 0x12, 0x50, 0x26, 0x1a, 0x4d, 0x6f, 

-	0xcb, 0x6, 0x1c, 0x5f, 0x2d, 0xaf, 0x67, 0xa, 0xfe, 0x33, 

-	0x12, 0x81, 0x50, 0xb1, 0x51, 0x83, 0xc4, 0xc9, 0xf4, 0xfd, 

-	0xf, 0x26, 0x50, 0x51, 0x40, 0x20, 0x9, 0x2b, 0xbe, 0x6b, 

-	0xf0, 0xd9, 0xc3, 0xbf, 0x18, 0x14, 0x8, 0xf4, 0x9c, 0x94, 

-	0xde, 0xd8, 0x30, 0x14, 0x9, 0xbb, 0xc7, 0x46, 0xde, 0xe, 

-	0x5d, 0xec, 0xc2, 0x2, 0xbf, 0x13, 0xc1, 0xf5, 0xe8, 0xfe, 

-	00, 0x4f, 0xdf, 0x26, 0x55, 0x1a, 0x76, 0x69, 0x81, 0x3e, 

-	0x84, 0x19, 0xcd, 0x16, 0xb7, 0x76, 0x99, 0xc3, 0x87, 0xbd, 

-	0xb1, 0xda, 0x89, 0x32, 0xe2, 0x7b, 0x71, 0x76, 0x52, 0xf1, 

-	0x8c, 0x1, 0x24, 0x8a, 0x2f, 0x8d, 0x72, 0x53, 0xff, 0x6f, 

-	0xeb, 0x1e, 0xdb, 0x1b, 0x4, 0x5e, 0x9c, 0xf2, 0xff, 0x7c, 

-	0x25, 0x11, 0xfc, 0x1d, 0xe1, 0x4f, 0x26, 0xaf, 0xbd, 0xea, 

-	0x67, 0xf9, 0x6f, 0x2a, 0x60, 0x7e, 0x32, 0x3b, 0x43, 0x10, 

-	0x16, 0x80, 0xdf, 0xbf, 0xa5, 0x7f, 0x2f, 0xe9, 0x17, 0xcd, 

-	0xf4, 0x47, 0x15, 0x44, 0x8, 0xda, 0xc8, 0x7e, 0x36, 0x50, 

-	0x28, 0x6e, 0x21, 0xfe, 0x1f, 0xd2, 0xa8, 0xa2, 0x91, 0xdc, 

-	0x83, 0x90, 0x3, 00, 00, 00, 00, 0x49, 0x45, 0x4e, 

-	0x44, 0xae, 0x42, 0x60, 0x82, };

-

-static const char data_cgi_files[] = {

-	/* /cgi/files */

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0,

-	0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x73, 0x63, 0x72, 

-	0x69, 0x70, 0x74, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, 

-	0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 

-	0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 

-	0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x69, 0x66, 0x66, 

-	0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 

-	0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0xd, 0xa, 

-	0x23, 0x20, 0x77, 0x65, 0x62, 0x20, 0x73, 0x65, 0x72, 0x76, 

-	0x65, 0x72, 0x2e, 0xd, 0xa, 0x23, 0xd, 0xa, 0x23, 0x20, 

-	0x46, 0x69, 0x72, 0x73, 0x74, 0x2c, 0x20, 0x77, 0x65, 0x20, 

-	0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 

-	0x65, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x68, 0x65, 0x61, 

-	0x64, 0x65, 0x72, 0x2e, 0xd, 0xa, 0x69, 0x20, 0x2f, 0x66, 

-	0x69, 0x6c, 0x65, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 

-	0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 0x23, 0x20, 

-	0x50, 0x72, 0x69, 0x6e, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 

-	0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 

-	0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 

-	0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x61, 0x6c, 0x6c, 

-	0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 

-	0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 

-	0x72, 0x69, 0x6e, 0x74, 0x73, 0xd, 0xa, 0x23, 0x20, 0x74, 

-	0x68, 0x65, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 

-	0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 

-	0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x66, 

-	0x69, 0x6c, 0x65, 0x2e, 0xd, 0xa, 0x74, 0x20, 0x3c, 0x74, 

-	0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 

-	0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x69, 0x6e, 0x64, 0x65, 

-	0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x2f, 0x69, 

-	0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3c, 

-	0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 

-	0x64, 0x3e, 0xd, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x69, 

-	0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xd, 

-	0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 

-	0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 

-	0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 

-	0x22, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 

-	0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x2f, 0x63, 0x6f, 0x6e, 

-	0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3c, 

-	0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 

-	0x64, 0x3e, 0xd, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x63, 

-	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 

-	0x6c, 0xd, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 

-	0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 

-	0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 

-	0x66, 0x3d, 0x22, 0x2f, 0x69, 0x6d, 0x67, 0x2f, 0x6c, 0x6f, 

-	0x67, 0x6f, 0x2e, 0x70, 0x6e, 0x67, 0x22, 0x3e, 0x2f, 0x69, 

-	0x6d, 0x67, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x6e, 

-	0x67, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 

-	0x3c, 0x74, 0x64, 0x3e, 0xd, 0xa, 0x63, 0x20, 0x62, 0x20, 

-	0x2f, 0x69, 0x6d, 0x67, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 

-	0x70, 0x6e, 0x67, 0xd, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 

-	0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, 

-	0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 

-	0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x34, 0x30, 0x34, 0x2e, 

-	0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x2f, 0x34, 0x30, 0x34, 

-	0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 

-	0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xd, 0xa, 

-	0x63, 0x20, 0x62, 0x20, 0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 

-	0x74, 0x6d, 0x6c, 0xd, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 

-	0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, 

-	0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 

-	0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 

-	0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x3e, 0x2f, 0x63, 0x67, 

-	0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x3c, 0x2f, 0x61, 

-	0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 

-	0xd, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x63, 0x67, 0x69, 

-	0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0xd, 0xa, 0x74, 0x20, 

-	0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 

-	0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 

-	0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 

-	0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0x3e, 

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 

-	0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 

-	0x74, 0x64, 0x3e, 0xd, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 

-	0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0xd, 

-	0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 

-	0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 

-	0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 

-	0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x22, 

-	0x3e, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x3c, 

-	0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 

-	0x64, 0x3e, 0xd, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x63, 

-	0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0xd, 0xa, 0x74, 0x20, 

-	0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 

-	0xd, 0xa, 0x23, 0x20, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 

-	0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x48, 0x54, 0x4d, 0x4c, 

-	0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0xd, 0xa, 

-	0x69, 0x20, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x66, 

-	0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 

-	0x6e, 0xd, 0xa, 0x23, 0x20, 0x45, 0x6e, 0x64, 0x20, 0x6f, 

-	0x66, 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0xd, 

-	0xa, 0x2e, };

-

-static const char data_cgi_stats[] = {

-	/* /cgi/stats */

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0,

-	0x69, 0x20, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x68, 

-	0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 

-	0xd, 0xa, 0x63, 0x20, 0x61, 0xd, 0xa, 0x69, 0x20, 0x2f, 

-	0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 

-	0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0xd, 0xa, 

-	0x2e, 0xd, 0xa, };

-

-static const char data_cgi_tcp[] = {

-	/* /cgi/tcp */

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0,

-	0x69, 0x20, 0x2f, 0x74, 0x63, 0x70, 0x5f, 0x68, 0x65, 0x61, 

-	0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 

-	0x63, 0x20, 0x63, 0xd, 0xa, 0x69, 0x20, 0x2f, 0x74, 0x63, 

-	0x70, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 

-	0x6c, 0x61, 0x69, 0x6e, 0xd, 0xa, 0x2e, };

-

-static const char data_cgi_rtos[] = {

-	/* /cgi/rtos */

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x72, 0x74, 0x6f, 0x73, 0,

-	0x74, 0x20, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x3c, 0x68, 

-	0x65, 0x61, 0x64, 0x3e, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, 

-	0x3e, 0x75, 0x49, 0x50, 0x20, 0x4f, 0x70, 0x65, 0x6e, 0x20, 

-	0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x45, 0x6d, 0x62, 

-	0x65, 0x64, 0x64, 0x65, 0x64, 0x20, 0x54, 0x43, 0x50, 0x2f, 

-	0x49, 0x50, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x20, 0x4f, 

-	0x6e, 0x20, 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, 0x53, 

-	0x20, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x3c, 0x2f, 0x74, 

-	0x69, 0x74, 0x6c, 0x65, 0x3e, 0x3c, 0x2f, 0x68, 0x65, 0x61, 

-	0x64, 0x3e, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x42, 0x47, 

-	0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x3d, 0x22, 0x23, 0x43, 0x43, 

-	0x43, 0x43, 0x46, 0x46, 0x22, 0x3e, 0x3c, 0x66, 0x6f, 0x6e, 

-	0x74, 0x20, 0x66, 0x61, 0x63, 0x65, 0x3d, 0x22, 0x61, 0x72, 

-	0x69, 0x61, 0x6c, 0x22, 0x3e, 0x3c, 0x73, 0x6d, 0x61, 0x6c, 

-	0x6c, 0x3e, 0x3c, 0x62, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 

-	0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x77, 0x77, 0x77, 0x2e, 0x66, 0x72, 0x65, 0x65, 0x72, 

-	0x74, 0x6f, 0x73, 0x2e, 0x6f, 0x72, 0x67, 0x22, 0x20, 0x74, 

-	0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x74, 0x6f, 

-	0x70, 0x22, 0x3e, 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, 

-	0x53, 0x20, 0x48, 0x6f, 0x6d, 0x65, 0x70, 0x61, 0x67, 0x65, 

-	0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x62, 0x3e, 0x3c, 0x2f, 

-	0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x3c, 0x70, 0x3e, 0x3c, 

-	0x48, 0x31, 0x3e, 0x41, 0x54, 0x39, 0x31, 0x53, 0x41, 0x4d, 

-	0x37, 0x58, 0x20, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 

-	0x64, 0x20, 0x57, 0x45, 0x42, 0x20, 0x53, 0x65, 0x72, 0x76, 

-	0x65, 0x72, 0x20, 0x44, 0x65, 0x6d, 0x6f, 0x3c, 0x62, 0x72, 

-	0x3e, 0x3c, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x55, 0x73, 

-	0x69, 0x6e, 0x67, 0x20, 0x75, 0x49, 0x50, 0x20, 0x61, 0x6e, 

-	0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x72, 0x65, 0x65, 

-	0x52, 0x54, 0x4f, 0x53, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x20, 

-	0x74, 0x69, 0x6d, 0x65, 0x20, 0x6b, 0x65, 0x72, 0x6e, 0x65, 

-	0x6c, 0x3c, 0x2f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x3c, 

-	0x2f, 0x68, 0x31, 0x3e, 0x3c, 0x70, 0x3e, 0x54, 0x68, 0x65, 

-	0x73, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 0x20, 0x61, 

-	0x72, 0x65, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x73, 

-	0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x61, 

-	0x6e, 0x20, 0x41, 0x74, 0x6d, 0x65, 0x6c, 0x20, 0x41, 0x54, 

-	0x39, 0x31, 0x53, 0x41, 0x4d, 0x37, 0x58, 0x32, 0x35, 0x36, 

-	0x20, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x63, 0x6f, 0x6e, 0x74, 

-	0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 

-	0x69, 0x6e, 0x67, 0x20, 0x41, 0x64, 0x61, 0x6d, 0x20, 0x44, 

-	0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x20, 0x6f, 0x70, 0x65, 

-	0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x75, 

-	0x49, 0x50, 0x20, 0x54, 0x43, 0x50, 0x2f, 0x49, 0x50, 0x20, 

-	0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x3c, 0x70, 0x3e, 0x54, 

-	0x68, 0x65, 0x20, 0x75, 0x49, 0x50, 0x20, 0x73, 0x74, 0x61, 

-	0x63, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x65, 0x78, 0x65, 0x63, 

-	0x75, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x72, 0x6f, 0x6d, 

-	0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 

-	0x74, 0x61, 0x73, 0x6b, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 

-	0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x6f, 

-	0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x72, 0x65, 0x65, 

-	0x52, 0x54, 0x4f, 0x53, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x20, 

-	0x74, 0x69, 0x6d, 0x65, 0x20, 0x6b, 0x65, 0x72, 0x6e, 0x65, 

-	0x6c, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, 0x61, 

-	0x62, 0x6c, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 

-	0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 

-	0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 

-	0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 

-	0x68, 0x65, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x69, 

-	0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x6d, 0x6f, 

-	0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x69, 0x74, 

-	0x6f, 0x6e, 0x2e, 0x3c, 0x70, 0x3e, 0x3c, 0x70, 0x72, 0x65, 

-	0x3e, 0x54, 0x61, 0x73, 0x6b, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 

-	0x20, 0x20, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 

-	0x20, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x9, 0x23, 0x3c, 

-	0x62, 0x72, 0x3e, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 

-	0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 

-	0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 

-	0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 

-	0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 

-	0x2a, 0x3c, 0x62, 0x72, 0x3e, 0xa, 0x63, 0x20, 0x64, 0xa, 

-	0x74, 0x20, 0x3c, 0x2f, 0x70, 0x72, 0x65, 0x3e, 0x3c, 0x2f, 

-	0x66, 0x6f, 0x6e, 0x74, 0x3e, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 

-	0x79, 0x3e, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 

-	0x2e, 0xa, 0xa, 0xa, };

-

-static const char data_index_html[] = {

-	/* /index.html */

-	0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 

-	0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 

-	0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, 

-	0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0x3c, 0x2f, 

-	0x68, 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0xd, 0xa, 0x3c, 

-	0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x74, 0x20, 0x63, 

-	0x6f, 0x6c, 0x73, 0x3d, 0x22, 0x2a, 0x22, 0x20, 0x72, 0x6f, 

-	0x77, 0x73, 0x3d, 0x22, 0x31, 0x32, 0x30, 0x2c, 0x2a, 0x22, 

-	0x20, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x62, 0x6f, 0x72, 0x64, 

-	0x65, 0x72, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x3e, 0x20, 0xd, 

-	0xa, 0x20, 0x20, 0x3c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x20, 

-	0x73, 0x72, 0x63, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x72, 

-	0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0xd, 

-	0xa, 0x20, 0x20, 0x3c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x20, 

-	0x73, 0x72, 0x63, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 

-	0x72, 0x74, 0x6f, 0x73, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 

-	0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3e, 0xd, 0xa, 

-	0x3c, 0x2f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x74, 

-	0x3e, 0xd, 0xa, 0xd, 0xa, 0x3c, 0x6e, 0x6f, 0x66, 0x72, 

-	0x61, 0x6d, 0x65, 0x73, 0x3e, 0xd, 0xa, 0x3c, 0x62, 0x6f, 

-	0x64, 0x79, 0x3e, 0xd, 0xa, 0x59, 0x6f, 0x75, 0x72, 0x20, 

-	0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x20, 0x6d, 0x75, 

-	0x73, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 

-	0x20, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0xd, 0xa, 0x3c, 

-	0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xd, 0xa, 0x3c, 0x2f, 

-	0x6e, 0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x3e, 0xd, 

-	0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, };

-

-const struct fsdata_file file_404_html[] = {{NULL, data_404_html, data_404_html + 10, sizeof(data_404_html) - 10}};

-

-const struct fsdata_file file_control_html[] = {{file_404_html, data_control_html, data_control_html + 14, sizeof(data_control_html) - 14}};

-

-const struct fsdata_file file_files_footer_plain[] = {{file_control_html, data_files_footer_plain, data_files_footer_plain + 20, sizeof(data_files_footer_plain) - 20}};

-

-const struct fsdata_file file_files_header_html[] = {{file_files_footer_plain, data_files_header_html, data_files_header_html + 19, sizeof(data_files_header_html) - 19}};

-

-const struct fsdata_file file_stats_footer_plain[] = {{file_files_header_html, data_stats_footer_plain, data_stats_footer_plain + 20, sizeof(data_stats_footer_plain) - 20}};

-

-const struct fsdata_file file_stats_header_html[] = {{file_stats_footer_plain, data_stats_header_html, data_stats_header_html + 19, sizeof(data_stats_header_html) - 19}};

-

-const struct fsdata_file file_tcp_footer_plain[] = {{file_stats_header_html, data_tcp_footer_plain, data_tcp_footer_plain + 18, sizeof(data_tcp_footer_plain) - 18}};

-

-const struct fsdata_file file_tcp_header_html[] = {{file_tcp_footer_plain, data_tcp_header_html, data_tcp_header_html + 17, sizeof(data_tcp_header_html) - 17}};

-

-const struct fsdata_file file_img_logo_png[] = {{file_tcp_header_html, data_img_logo_png, data_img_logo_png + 14, sizeof(data_img_logo_png) - 14}};

-

-const struct fsdata_file file_cgi_files[] = {{file_img_logo_png, data_cgi_files, data_cgi_files + 11, sizeof(data_cgi_files) - 11}};

-

-const struct fsdata_file file_cgi_stats[] = {{file_cgi_files, data_cgi_stats, data_cgi_stats + 11, sizeof(data_cgi_stats) - 11}};

-

-const struct fsdata_file file_cgi_tcp[] = {{file_cgi_stats, data_cgi_tcp, data_cgi_tcp + 9, sizeof(data_cgi_tcp) - 9}};

-

-const struct fsdata_file file_cgi_rtos[] = {{file_cgi_tcp, data_cgi_rtos, data_cgi_rtos + 10, sizeof(data_cgi_rtos) - 10}};

-

-const struct fsdata_file file_index_html[] = {{file_cgi_rtos, data_index_html, data_index_html + 12, sizeof(data_index_html) - 12}};

-

-#define FS_ROOT file_index_html

-

-#define FS_NUMFILES 14

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fsdata.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fsdata.h
deleted file mode 100644
index 94086c4..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/fsdata.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*

- * Copyright (c) 2001, Swedish Institute of Computer Science.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. Neither the name of the Institute nor the names of its contributors 

- *    may be used to endorse or promote products derived from this software 

- *    without specific prior written permission. 

- *

- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 

- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 

- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 

- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 

- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 

- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 

- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 

- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 

- * SUCH DAMAGE. 

- *

- * This file is part of the lwIP TCP/IP stack.

- * 

- * Author: Adam Dunkels <adam@sics.se>

- *

- * $Id: fsdata.h,v 1.4.2.1 2003/10/04 22:54:06 adam Exp $

- */

-#ifndef __FSDATA_H__

-#define __FSDATA_H__

-

-#include "uipopt.h"

-

-struct fsdata_file {

-  const struct fsdata_file *next;

-  const char *name;

-  const char *data;

-  const int len;

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-  u16_t count;

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-};

-

-struct fsdata_file_noconst {

-  struct fsdata_file *next;

-  char *name;

-  char *data;

-  int len;

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-  u16_t count;

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-};

-

-#endif /* __FSDATA_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.c
deleted file mode 100644
index 108fa26..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.c
+++ /dev/null
@@ -1,372 +0,0 @@
-/**

- * \addtogroup exampleapps

- * @{

- */

-

-/**

- * \defgroup httpd Web server

- * @{

- *

- * The uIP web server is a very simplistic implementation of an HTTP

- * server. It can serve web pages and files from a read-only ROM

- * filesystem, and provides a very small scripting language.

- *

- * The script language is very simple and works as follows. Each

- * script line starts with a command character, either "i", "t", "c",

- * "#" or ".".  The "i" command tells the script interpreter to

- * "include" a file from the virtual file system and output it to the

- * web browser. The "t" command should be followed by a line of text

- * that is to be output to the browser. The "c" command is used to

- * call one of the C functions from the httpd-cgi.c file. A line that

- * starts with a "#" is ignored (i.e., the "#" denotes a comment), and

- * the "." denotes the last script line.

- *

- * The script that produces the file statistics page looks somewhat

- * like this:

- *

- \code

-i /header.html

-t <h1>File statistics</h1><br><table width="100%">

-t <tr><td><a href="/index.html">/index.html</a></td><td>

-c a /index.html

-t </td></tr> <tr><td><a href="/cgi/files">/cgi/files</a></td><td>

-c a /cgi/files

-t </td></tr> <tr><td><a href="/cgi/tcp">/cgi/tcp</a></td><td>

-c a /cgi/tcp

-t </td></tr> <tr><td><a href="/404.html">/404.html</a></td><td>

-c a /404.html

-t </td></tr></table>

-i /footer.plain

-.

- \endcode

- *

- */

-

-

-/**

- * \file

- * HTTP server.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in the

- *    documentation and/or other materials provided with the distribution.

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: httpd.c,v 1.28.2.6 2003/10/07 13:22:27 adam Exp $

- *

- */

-

-

-#include "uip.h"

-#include "httpd.h"

-#include "fs.h"

-#include "fsdata.h"

-#include "cgi.h"

-

-#define NULL (void *)0

-

-/* The HTTP server states: */

-#define HTTP_NOGET        0

-#define HTTP_FILE         1

-#define HTTP_TEXT         2

-#define HTTP_FUNC         3

-#define HTTP_END          4

-

-#ifdef DEBUG

-#include <stdio.h>

-#define PRINT(x)

-#define PRINTLN(x)

-#else /* DEBUG */

-#define PRINT(x)

-#define PRINTLN(x)

-#endif /* DEBUG */

-

-struct httpd_state *hs;

-

-extern const struct fsdata_file file_index_html;

-extern const struct fsdata_file file_404_html;

-

-static void next_scriptline(void);

-static void next_scriptstate(void);

-

-#define ISO_G        0x47

-#define ISO_E        0x45

-#define ISO_T        0x54

-#define ISO_slash    0x2f

-#define ISO_c        0x63

-#define ISO_g        0x67

-#define ISO_i        0x69

-#define ISO_space    0x20

-#define ISO_nl       0x0a

-#define ISO_cr       0x0d

-#define ISO_a        0x61

-#define ISO_t        0x74

-#define ISO_hash     0x23

-#define ISO_period   0x2e

-

-#define httpPORT	80

-

-/*-----------------------------------------------------------------------------------*/

-/**

- * Initialize the web server.

- *

- * Starts to listen for incoming connection requests on TCP port 80.

- */

-/*-----------------------------------------------------------------------------------*/

-void

-httpd_init(void)

-{

-  fs_init();

-

-  /* Listen to port 80. */

-  uip_listen(HTONS(httpPORT));

-}

-/*-----------------------------------------------------------------------------------*/

-void

-httpd_appcall(void)

-{

-  struct fs_file fsfile;

-

-  u8_t i;

-

-  switch(uip_conn->lport) {

-    /* This is the web server: */

-  case HTONS(httpPORT):

-    /* Pick out the application state from the uip_conn structure. */

-    hs = (struct httpd_state *)(uip_conn->appstate);

-

-    /* We use the uip_ test functions to deduce why we were

-       called. If uip_connected() is non-zero, we were called

-       because a remote host has connected to us. If

-       uip_newdata() is non-zero, we were called because the

-       remote host has sent us new data, and if uip_acked() is

-       non-zero, the remote host has acknowledged the data we

-       previously sent to it. */

-    if(uip_connected()) {

-      /* Since we have just been connected with the remote host, we

-         reset the state for this connection. The ->count variable

-         contains the amount of data that is yet to be sent to the

-         remote host, and the ->state is set to HTTP_NOGET to signal

-         that we haven't received any HTTP GET request for this

-         connection yet. */

-

-      hs->state = HTTP_NOGET;

-      hs->count = 0;

-      return;

-

-    } else if(uip_poll()) {

-      /* If we are polled ten times, we abort the connection. This is

-         because we don't want connections lingering indefinately in

-         the system. */

-      if(hs->count++ >= 10) {

-	uip_abort();

-      }

-      return;

-    } else if(uip_newdata() && hs->state == HTTP_NOGET) {

-      /* This is the first data we receive, and it should contain a

-	 GET. */

-

-      /* Check for GET. */

-      if(uip_appdata[0] != ISO_G ||

-	 uip_appdata[1] != ISO_E ||

-	 uip_appdata[2] != ISO_T ||

-	 uip_appdata[3] != ISO_space) {

-	/* If it isn't a GET, we abort the connection. */

-	uip_abort();

-	return;

-      }

-	

-      /* Find the file we are looking for. */

-      for(i = 4; i < 40; ++i) {

-	if(uip_appdata[i] == ISO_space ||

-	   uip_appdata[i] == ISO_cr ||

-	   uip_appdata[i] == ISO_nl) {

-	  uip_appdata[i] = 0;

-	  break;

-	}

-      }

-

-      PRINT("request for file ");

-      PRINTLN(&uip_appdata[4]);

-

-      /* Check for a request for "/". */

-      if(uip_appdata[4] == ISO_slash &&

-	 uip_appdata[5] == 0) {

-	fs_open(file_index_html.name, &fsfile);

-      } else {

-	if(!fs_open((const char *)&uip_appdata[4], &fsfile)) {

-	  PRINTLN("couldn't open file");

-	  fs_open(file_404_html.name, &fsfile);

-	}

-      }

-

-

-      if(uip_appdata[4] == ISO_slash &&

-	 uip_appdata[5] == ISO_c &&

-	 uip_appdata[6] == ISO_g &&

-	 uip_appdata[7] == ISO_i &&

-	 uip_appdata[8] == ISO_slash) {

-	/* If the request is for a file that starts with "/cgi/", we

-           prepare for invoking a script. */	

-	hs->script = fsfile.data;

-	next_scriptstate();

-      } else {

-	hs->script = NULL;

-	/* The web server is now no longer in the HTTP_NOGET state, but

-	   in the HTTP_FILE state since is has now got the GET from

-	   the client and will start transmitting the file. */

-	hs->state = HTTP_FILE;

-

-	/* Point the file pointers in the connection state to point to

-	   the first byte of the file. */

-	hs->dataptr = fsfile.data;

-	hs->count = fsfile.len;	

-      }

-    }

-

-

-    if(hs->state != HTTP_FUNC) {

-      /* Check if the client (remote end) has acknowledged any data that

-	 we've previously sent. If so, we move the file pointer further

-	 into the file and send back more data. If we are out of data to

-	 send, we close the connection. */

-      if(uip_acked()) {

-	if(hs->count >= uip_conn->len) {

-	  hs->count -= uip_conn->len;

-	  hs->dataptr += uip_conn->len;

-	} else {

-	  hs->count = 0;

-	}

-	

-	if(hs->count == 0) {

-	  if(hs->script != NULL) {

-	    next_scriptline();

-	    next_scriptstate();

-	  } else {

-	    uip_close();

-	  }

-	}

-      }

-    } else {

-      /* Call the CGI function. */

-      if(cgitab[hs->script[2] - ISO_a](uip_acked())) {

-	/* If the function returns non-zero, we jump to the next line

-           in the script. */

-	next_scriptline();

-	next_scriptstate();

-      }

-    }

-

-    if(hs->state != HTTP_FUNC && !uip_poll()) {

-      /* Send a piece of data, but not more than the MSS of the

-	 connection. */

-      uip_send(( void * ) hs->dataptr, hs->count);

-    }

-

-    /* Finally, return to uIP. Our outgoing packet will soon be on its

-       way... */

-    return;

-

-  default:

-    /* Should never happen. */

-    uip_abort();

-    break;

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-/* next_scriptline():

- *

- * Reads the script until it finds a newline. */

-static void

-next_scriptline(void)

-{

-  /* Loop until we find a newline character. */

-  do {

-    ++(hs->script);

-  } while(hs->script[0] != ISO_nl);

-

-  /* Eat up the newline as well. */

-  ++(hs->script);

-}

-/*-----------------------------------------------------------------------------------*/

-/* next_sciptstate:

- *

- * Reads one line of script and decides what to do next.

- */

-static void

-next_scriptstate(void)

-{

-  struct fs_file fsfile;

-  long i;

-

- again:

-  switch(hs->script[0]) {

-  case ISO_t:

-    /* Send a text string. */

-    hs->state = HTTP_TEXT;

-    hs->dataptr = &hs->script[2];

-

-    /* Calculate length of string. */

-    for(i = 0; hs->dataptr[i] != ISO_nl; ++i);

-    hs->count = i;

-    break;

-  case ISO_c:

-    /* Call a function. */

-    hs->state = HTTP_FUNC;

-    hs->dataptr = NULL;

-    hs->count = 0;

-    cgitab[hs->script[2] - ISO_a](0);

-    break;

-  case ISO_i:

-    /* Include a file. */

-    hs->state = HTTP_FILE;

-    if(!fs_open(&hs->script[2], &fsfile)) {

-      uip_abort();

-    }

-    hs->dataptr = fsfile.data;

-    hs->count = fsfile.len;

-    break;

-  case ISO_hash:

-    /* Comment line. */

-    next_scriptline();

-    goto again;

-  case ISO_period:

-    /* End of script. */

-    hs->state = HTTP_END;

-    uip_close();

-    break;

-  default:

-    uip_abort();

-    break;

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-/** @} */

-/** @} */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.c_ b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.c_
deleted file mode 100644
index fda2408..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.c_
+++ /dev/null
@@ -1,380 +0,0 @@
-/*$T httpd.c GC 1.138 07/23/05 13:10:49 */

-

-/*

- * \addtogroup exampleapps @{ £

- * \defgroup httpd Web server @{ The uIP web server is a very simplistic

- * implementation of an HTTP server. It can serve web pages and files from a

- * read-only ROM filesystem, and provides a very small scripting language. The

- * script language is very simple and works as follows. Each script line starts

- * with a command character, either "i", "t", "c", "#" or ".". The "i" command

- * tells the script interpreter to "include" a file from the virtual file system

- * and output it to the web browser. The "t" command should be followed by a line

- * of text that is to be output to the browser. The "c" command is used to call

- * one of the C functions from the httpd-cgi.c file. A line that starts with a "#"

- * is ignored (i.e., the "#" denotes a comment), and the "." denotes the last

- * script line. The script that produces the file statistics page looks somewhat

- * like this: \code i /header.html t <h1>File statistics</h1><br><table

- * width="100%"> t <tr><td><a href="/index.html">/index.html</a></td><td> c a

- * /index.html t </td></tr> <tr><td><a href="/cgi/files">/cgi/files</a></td><td> c

- * a /cgi/files t </td></tr> <tr><td><a href="/cgi/tcp">/cgi/tcp</a></td><td> c a

- * /cgi/tcp t </td></tr> <tr><td><a href="/404.html">/404.html</a></td><td> c a

- * /404.html t </td></tr></table> i /footer.plain . \endcode £

- * \file HTTP server. \author Adam Dunkels <adam@dunkels.com> £

- * Copyright (c) 2001, Adam Dunkels. All rights reserved. Redistribution and use

- * in source and binary forms, with or without modification, are permitted

- * provided that the following conditions are met: 1. Redistributions of source

- * code must retain the above copyright notice, this list of conditions and the

- * following disclaimer. 2. Redistributions in binary form must reproduce the

- * above copyright notice, this list of conditions and the following disclaimer in

- * the documentation and/or other materials provided with the distribution. 3. The

- * name of the author may not be used to endorse or promote products derived from

- * this software without specific prior written permission. THIS SOFTWARE IS

- * PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,

- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND

- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR

- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR

- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)

- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT

- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- * This file is part of the uIP TCP/IP stack. $Id: httpd.c,v 1.28.2.6 2003/10/07

- * 13:22:27 adam Exp $

- */

-#include "uip.h"

-#include "httpd.h"

-#include "fs.h"

-#include "fsdata.h"

-#include "cgi.h"

-

-#define NULL    ( void * ) 0

-

-/* The HTTP server states: */

-#define HTTP_NOGET  0

-#define HTTP_FILE   1

-#define HTTP_TEXT   2

-#define HTTP_FUNC   3

-#define HTTP_END    4

-

-#ifdef DEBUG

-#include <stdio.h>

-#define PRINT( x )

-#define PRINTLN( x )

-#else /* DEBUG */

-#define PRINT( x )

-#define PRINTLN( x )

-#endif /* DEBUG */

-

-struct httpd_state              *hs;

-

-extern const struct fsdata_file file_index_html;

-extern const struct fsdata_file file_404_html;

-

-static void                     next_scriptline( void );

-static void                     next_scriptstate( void );

-

-#define ISO_G       0x47

-#define ISO_E       0x45

-#define ISO_T       0x54

-#define ISO_slash   0x2f

-#define ISO_c       0x63

-#define ISO_g       0x67

-#define ISO_i       0x69

-#define ISO_space   0x20

-#define ISO_nl      0x0a

-#define ISO_cr      0x0d

-#define ISO_a       0x61

-#define ISO_t       0x74

-#define ISO_hash    0x23

-#define ISO_period  0x2e

-

-#define httpPORT    80

-

-/*

- =======================================================================================================================

-    Initialize the web server. Starts to listen for incoming connection requests on TCP port 80.

- =======================================================================================================================

- */

-void httpd_init( void )

-{

-    fs_init();

-

-    /* Listen to port 80. */

-    uip_listen( HTONS( httpPORT ) );

-}

-

-/*

- =======================================================================================================================

- =======================================================================================================================

- */

-void httpd_appcall( void )

-{

-    /*~~~~~~~~~~~~~~~~~~~*/

-    struct fs_file  fsfile;

-    u8_t            i;

-    /*~~~~~~~~~~~~~~~~~~~*/

-

-    switch( uip_conn->lport )

-    {

-    /* This is the web server: */

-    case HTONS( httpPORT ):

-        /* Pick out the application state from the uip_conn structure. */

-        hs = ( struct httpd_state * ) ( uip_conn->appstate );

-

-        /*

-         * We use the uip_ test functions to deduce why we were called. If uip_connected()

-         * is non-zero, we were called because a remote host has connected to us. If

-         * uip_newdata() is non-zero, we were called because the remote host has sent us

-         * new data, and if uip_acked() is non-zero, the remote host has acknowledged the

-         * data we previously sent to it.

-         */

-        if( uip_connected() )

-        {

-            /*

-             * Since we have just been connected with the remote host, we reset the state for

-             * this connection. The ->count variable contains the amount of data that is yet

-             * to be sent to the remote host, and the ->state is set to HTTP_NOGET to signal

-             * that we haven't received any HTTP GET request for this connection yet.

-             */

-            hs->state = HTTP_NOGET;

-            hs->count = 0;

-            return;

-        }

-        else if( uip_poll() )

-        {

-            /*

-             * If we are polled ten times, we abort the connection. This is because we don't

-             * want connections lingering indefinately in the system.

-             */

-            if( hs->count++ >= 10 )

-            {

-                uip_abort();

-            }

-

-            return;

-        }

-        else if( uip_newdata() && hs->state == HTTP_NOGET )

-        {

-            /*

-             * This is the first data we receive, and it should contain a GET. £

-             * Check for GET.

-             */

-            if

-            (

-                uip_appdata[0] != ISO_G

-            ||  uip_appdata[1] != ISO_E

-            ||  uip_appdata[2] != ISO_T

-            ||  uip_appdata[3] != ISO_space

-            )

-            {

-                /* If it isn't a GET, we abort the connection. */

-                uip_abort();

-                return;

-            }

-

-            /* Find the file we are looking for. */

-            for( i = 4; i < 40; ++i )

-            {

-                if( uip_appdata[i] == ISO_space || uip_appdata[i] == ISO_cr || uip_appdata[i] == ISO_nl )

-                {

-                    uip_appdata[i] = 0;

-                    break;

-                }

-            }

-

-            PRINT( "request for file " );

-            PRINTLN( &uip_appdata[4] );

-

-            /* Check for a request for "/". */

-            if( uip_appdata[4] == ISO_slash && uip_appdata[5] == 0 )

-            {

-                fs_open( file_index_html.name, &fsfile );

-            }

-            else

-            {

-                if( !fs_open( ( const char * ) &uip_appdata[4], &fsfile ) )

-                {

-                    PRINTLN( "couldn't open file" );

-                    fs_open( file_404_html.name, &fsfile );

-                }

-            }

-

-            if

-            (

-                uip_appdata[4] == ISO_slash

-            &&  uip_appdata[5] == ISO_c

-            &&  uip_appdata[6] == ISO_g

-            &&  uip_appdata[7] == ISO_i

-            &&  uip_appdata[8] == ISO_slash

-            )

-            {

-                /*

-                 * If the request is for a file that starts with "/cgi/", we prepare for invoking

-                 * a script.

-                 */

-                hs->script = fsfile.data;

-                next_scriptstate();

-            }

-            else

-            {

-                hs->script = NULL;

-

-                /*

-                 * The web server is now no longer in the HTTP_NOGET state, but in the HTTP_FILE

-                 * state since is has now got the GET from the client and will start transmitting

-                 * the file.

-                 */

-                hs->state = HTTP_FILE;

-

-                /*

-                 * Point the file pointers in the connection state to point to the first byte of

-                 * the file.

-                 */

-                hs->dataptr = fsfile.data;

-                hs->count = fsfile.len;

-            }

-        }

-

-        if( hs->state != HTTP_FUNC )

-        {

-            /*

-             * Check if the client (remote end) has acknowledged any data that we've

-             * previously sent. If so, we move the file pointer further into the file and send

-             * back more data. If we are out of data to send, we close the connection.

-             */

-            if( uip_acked() )

-            {

-                if( hs->count >= uip_conn->len )

-                {

-                    hs->count -= uip_conn->len;

-                    hs->dataptr += uip_conn->len;

-                }

-                else

-                {

-                    hs->count = 0;

-                }

-

-                if( hs->count == 0 )

-                {

-                    if( hs->script != NULL )

-                    {

-                        next_scriptline();

-                        next_scriptstate();

-                    }

-                    else

-                    {

-                        uip_close();

-                    }

-                }

-            }

-        }

-        else

-        {

-            /* Call the CGI function. */

-            if( cgitab[hs->script[2] - ISO_a](uip_acked()) )

-            {

-                /* If the function returns non-zero, we jump to the next line in the script. */

-                next_scriptline();

-                next_scriptstate();

-            }

-        }

-

-        if( hs->state != HTTP_FUNC && !uip_poll() )

-        {

-            /* Send a piece of data, but not more than the MSS of the connection. */

-            uip_send( ( void * ) hs->dataptr, hs->count );

-        }

-

-        /* Finally, return to uIP. Our outgoing packet will soon be on its way... */

-        return;

-

-    default:

-        /* Should never happen. */

-        uip_abort();

-        break;

-    }

-}

-

-/*

- =======================================================================================================================

-    next_scriptline(): Reads the script until it finds a newline.

- =======================================================================================================================

- */

-static void next_scriptline( void )

-{

-    /* Loop until we find a newline character. */

-    do

-    {

-        ++( hs->script );

-    } while( hs->script[0] != ISO_nl );

-

-    /* Eat up the newline as well. */

-    ++( hs->script );

-}

-

-/*

- =======================================================================================================================

-    next_sciptstate: Reads one line of script and decides what to do next.

- =======================================================================================================================

- */

-static void next_scriptstate( void )

-{

-    /*~~~~~~~~~~~~~~~~~~~*/

-    struct fs_file  fsfile;

-    u8_t            i;

-    /*~~~~~~~~~~~~~~~~~~~*/

-

-again:

-    switch( hs->script[0] )

-    {

-    case ISO_t:

-        /* Send a text string. */

-        hs->state = HTTP_TEXT;

-        hs->dataptr = &hs->script[2];

-

-        /* Calculate length of string. */

-        for( i = 0; hs->dataptr[i] != ISO_nl; ++i );

-        hs->count = i;

-        break;

-

-    case ISO_c:

-        /* Call a function. */

-        hs->state = HTTP_FUNC;

-        hs->dataptr = NULL;

-        hs->count = 0;

-        cgitab[hs->script[2] - ISO_a]( 0 );

-        break;

-

-    case ISO_i:

-        /* Include a file. */

-        hs->state = HTTP_FILE;

-        if( !fs_open( &hs->script[2], &fsfile ) )

-        {

-            uip_abort();

-        }

-

-        hs->dataptr = fsfile.data;

-        hs->count = fsfile.len;

-        break;

-

-    case ISO_hash:

-        /* Comment line. */

-        next_scriptline();

-        goto again;

-

-    case ISO_period:

-        /* End of script. */

-        hs->state = HTTP_END;

-        uip_close();

-        break;

-

-    default:

-        uip_abort();

-        break;

-    }

-}

-

-/*

- * @} £

- * @}

- */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.h
deleted file mode 100644
index 34d6bb3..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/httpd.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/**

- * \addtogroup httpd

- * @{

- */

-

-/**

- * \file

- * HTTP server header file.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: httpd.h,v 1.4.2.3 2003/10/06 22:56:44 adam Exp $

- *

- */

-

-#ifndef __HTTPD_H__

-#define __HTTPD_H__

-

-void httpd_init(void);

-void httpd_appcall(void);

-

-/* UIP_APPCALL: the name of the application function. This function

-   must return void and take no arguments (i.e., C type "void

-   appfunc(void)"). */

-#ifndef UIP_APPCALL

-#define UIP_APPCALL     httpd_appcall

-#endif

-

-struct httpd_state {

-  u8_t state; 

-  u16_t count;

-  char *dataptr;

-  char *script;

-};

-

-

-/* UIP_APPSTATE_SIZE: The size of the application-specific state

-   stored in the uip_conn structure. */

-#ifndef UIP_APPSTATE_SIZE

-#define UIP_APPSTATE_SIZE (sizeof(struct httpd_state))

-#endif

-

-#define FS_STATISTICS 1

-

-extern struct httpd_state *hs;

-

-#endif /* __HTTPD_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/main_led b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/main_led
deleted file mode 100644
index 8fe01ea..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/main_led
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright (c) 2001-2004 Rowley Associates Limited.

-//

-// This file may be distributed under the terms of the License Agreement

-// provided with this software.

-//

-// THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE

-// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

-//

-////////////////////////////////////////////////////////////////////////////////

-//

-//                      Olimex LPC-P1  LED Example

-//

-// Description

-// -----------

-// This example demonstrates writing to the programmable peripheral interface.

-//

-////////////////////////////////////////////////////////////////////////////////

-

-#include <targets/LPC210x.h>

-

-#define LED_RED (1<<8)

-#define LED_GREEN (1<<10)

-#define LED_YELLOW (1<<11)

-

-#define LED1 LED_YELLOW

-

-static void

-ledInit()

-{

-  IODIR |= LED1;

-  IOSET = LED1;

-}

-

-static void

-ledOn(void)

-{

-  IOCLR = LED1;

-}

-

-static void

-ledOff(void)

-{

-  IOSET = LED1;

-}

-

-void

-delay(int d)

-{     

-  for(; d; --d);

-}

- 

-int

-main(void)

-{

-  MAMCR = 2;

-  ledInit();

-  while (1)

-    {

-      ledOn();

-      delay(100000);

-      ledOff();

-      delay(100000);

-    }

-  return 0;

-}

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/makefsdata b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/makefsdata
deleted file mode 100644
index f5f75f1..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/makefsdata
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/usr/bin/perl

-

-open(OUTPUT, "> fsdata.c");

-

-chdir("fs");

-open(FILES, "find . -type f |");

-

-while($file = <FILES>) {

-

-    # Do not include files in CVS directories nor backup files.

-    if($file =~ /(CVS|~)/) {

-    	next;

-    }

-    

-    chop($file);

-    

-    open(HEADER, "> /tmp/header") || die $!;

-    if($file =~ /404.html/) {

-      print(HEADER "HTTP/1.0 404 File not found\r\n");

-    } else {

-      print(HEADER "HTTP/1.0 200 OK\r\n");

-    }

-    print(HEADER "Server: uIP/0.9 (http://dunkels.com/adam/uip/)\r\n");

-    if($file =~ /\.html$/) {

-	print(HEADER "Content-type: text/html\r\n");

-    } elsif($file =~ /\.gif$/) {

-	print(HEADER "Content-type: image/gif\r\n");

-    } elsif($file =~ /\.png$/) {

-	print(HEADER "Content-type: image/png\r\n");

-    } elsif($file =~ /\.jpg$/) {

-	print(HEADER "Content-type: image/jpeg\r\n");

-    } else {

-	print(HEADER "Content-type: text/plain\r\n");

-    }

-    print(HEADER "\r\n");

-    close(HEADER);

-

-    unless($file =~ /\.plain$/ || $file =~ /cgi/) {

-	system("cat /tmp/header $file > /tmp/file");

-    } else {

-	system("cp $file /tmp/file");

-    }

-    

-    open(FILE, "/tmp/file");

-    unlink("/tmp/file");

-    unlink("/tmp/header");

-

-    $file =~ s/\.//;

-    $fvar = $file;

-    $fvar =~ s-/-_-g;

-    $fvar =~ s-\.-_-g;

-    print(OUTPUT "static const char data".$fvar."[] = {\n");

-    print(OUTPUT "\t/* $file */\n\t");

-    for($j = 0; $j < length($file); $j++) {

-	printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1)));

-    }

-    printf(OUTPUT "0,\n");

-    

-    

-    $i = 0;        

-    while(read(FILE, $data, 1)) {

-        if($i == 0) {

-            print(OUTPUT "\t");

-        }

-        printf(OUTPUT "%#02x, ", unpack("C", $data));

-        $i++;

-        if($i == 10) {

-            print(OUTPUT "\n");

-            $i = 0;

-        }

-    }

-    print(OUTPUT "};\n\n");

-    close(FILE);

-    push(@fvars, $fvar);

-    push(@files, $file);

-}

-

-for($i = 0; $i < @fvars; $i++) {

-    $file = $files[$i];

-    $fvar = $fvars[$i];

-

-    if($i == 0) {

-        $prevfile = "NULL";

-    } else {

-        $prevfile = "file" . $fvars[$i - 1];

-    }

-    print(OUTPUT "const struct fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, ");

-    print(OUTPUT "data$fvar + ". (length($file) + 1) .", ");

-    print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n");

-}

-

-print(OUTPUT "#define FS_ROOT file$fvars[$i - 1]\n\n");

-print(OUTPUT "#define FS_NUMFILES $i");

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/memb.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/memb.c
deleted file mode 100644
index 56e6634..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/memb.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/**

- * \addtogroup exampleapps

- * @{

- */

-

-/**

- * \file

- * Memory block allocation routines.

- * \author Adam Dunkels <adam@sics.se>

- *

- * The memory block allocation routines provide a simple yet powerful

- * set of functions for managing a set of memory blocks of fixed

- * size. A set of memory blocks is statically declared with the

- * MEMB() macro. Memory blocks are allocated from the declared

- * memory by the memb_alloc() function, and are deallocated with the

- * memb_free() function.

- *

- * \note Because of namespace clashes only one MEMB() can be

- * declared per C module, and the name scope of a MEMB() memory

- * block is local to each C module.

- *

- * The following example shows how to declare and use a memory block

- * called "cmem" which has 8 chunks of memory with each memory chunk

- * being 20 bytes large.

- *

- \code

- MEMB(cmem, 20, 8);

-

- int main(int argc, char *argv[]) {

-    char *ptr;

-    

-    memb_init(&cmem);

-

-    ptr = memb_alloc(&cmem);

-

-    if(ptr != NULL) {

-       do_something(ptr);

-    } else {

-       printf("Could not allocate memory.\n");

-    }

-

-    if(memb_free(ptr) == 0) {

-       printf("Deallocation succeeded.\n");

-    }

- }

- \endcode

- * 

- */

-

-#include <string.h>

-

-#include "memb.h"

-

-/*------------------------------------------------------------------------------*/

-/**

- * Initialize a memory block that was declared with MEMB().

- *

- * \param m A memory block previosly declared with MEMB().

- */

-/*------------------------------------------------------------------------------*/

-void

-memb_init(struct memb_blocks *m)

-{

-  memset(m->mem, (m->size + 1) * m->num, 0);

-}

-/*------------------------------------------------------------------------------*/

-/**

- * Allocate a memory block from a block of memory declared with MEMB().

- *

- * \param m A memory block previosly declared with MEMB().

- */

-/*------------------------------------------------------------------------------*/

-char *

-memb_alloc(struct memb_blocks *m)

-{

-  int i;

-  char *ptr;

-

-  ptr = m->mem;

-  for(i = 0; i < m->num; ++i) {

-    if(*ptr == 0) {

-      /* If this block was unused, we increase the reference count to

-	 indicate that it now is used and return a pointer to the

-	 first byte following the reference counter. */

-      ++*ptr;

-      return ptr + 1;

-    }

-    ptr += m->size + 1;

-  }

-

-  /* No free block was found, so we return NULL to indicate failure to

-     allocate block. */

-  return NULL;

-}

-/*------------------------------------------------------------------------------*/

-/**

- * Deallocate a memory block from a memory block previously declared

- * with MEMB().

- *

- * \param m m A memory block previosly declared with MEMB().

- *

- * \param ptr A pointer to the memory block that is to be deallocated.

- *

- * \return The new reference count for the memory block (should be 0

- * if successfully deallocated) or -1 if the pointer "ptr" did not

- * point to a legal memory block.

- */

-/*------------------------------------------------------------------------------*/

-char

-memb_free(struct memb_blocks *m, char *ptr)

-{

-  int i;

-  char *ptr2;

-

-  /* Walk through the list of blocks and try to find the block to

-     which the pointer "ptr" points to. */

-  ptr2 = m->mem;

-  for(i = 0; i < m->num; ++i) {

-    

-    if(ptr2 == ptr - 1) {

-      /* We've found to block to which "ptr" points so we decrease the

-	 reference count and return the new value of it. */      

-      return --*ptr2;

-    }

-    ptr2 += m->size + 1;

-  }

-  return -1;

-}

-/*------------------------------------------------------------------------------*/

-/**

- * Increase the reference count for a memory chunk.

- *

- * \note No sanity checks are currently made.

- *

- * \param m m A memory block previosly declared with MEMB().

- *

- * \param ptr A pointer to the memory chunk for which the reference

- * count should be increased.

- *

- * \return The new reference count.

- */

-/*------------------------------------------------------------------------------*/

-char

-memb_ref(struct memb_blocks *m, char *ptr)

-{

-  return ++*(ptr - 1);

-}

-/*------------------------------------------------------------------------------*/

-

-

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/memb.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/memb.h
deleted file mode 100644
index 505846f..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/memb.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/**

- * \addtogroup exampleapps

- * @{

- */

-

-/**

- * \file

- * Memory block allocation routines.

- * \author Adam Dunkels <adam@sics.se>

- *

- */

-

-#ifndef __MEMB_H__

-#define __MEMB_H__

-

-/**

- * Declare a memory block.

- *

- * \param name The name of the memory block (later used with

- * memb_init(), memb_alloc() and memb_free()).

- *

- * \param size The size of each memory chunk, in bytes.

- *

- * \param num The total number of memory chunks in the block.

- *

- */

-#define MEMB(name, size, num) \

-        static char memb_mem[(size + 1) * num]; \

-        static struct memb_blocks name = {size, num, memb_mem}

-

-struct memb_blocks {

-  unsigned short size;

-  unsigned short num;

-  char *mem;

-};

-

-void  memb_init(struct memb_blocks *m);

-char *memb_alloc(struct memb_blocks *m);

-char  memb_ref(struct memb_blocks *m, char *ptr);

-char  memb_free(struct memb_blocks *m, char *ptr);

-

-

-#endif /* __MEMB_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/setarp.bat b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/setarp.bat
deleted file mode 100644
index 7f5babb..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/setarp.bat
+++ /dev/null
@@ -1 +0,0 @@
-arp -s 172.25.218.210 00-bd-3b-33-05-72

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/slipdev.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/slipdev.c
deleted file mode 100644
index fc968c8..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/slipdev.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/**

- * \addtogroup uip

- * @{

- */

-

-/**

- * \defgroup slip Serial Line IP (SLIP) protocol

- * @{

- *

- * The SLIP protocol is a very simple way to transmit IP packets over

- * a serial line. It does not provide any framing or error control,

- * and is therefore not very widely used today.

- *

- * This SLIP implementation requires two functions for accessing the

- * serial device: slipdev_char_poll() and slipdev_char_put(). These

- * must be implemented specifically for the system on which the SLIP

- * protocol is to be run.

- */

-

-/**

- * \file

- * SLIP protocol implementation

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: slipdev.c,v 1.1.2.3 2003/10/07 13:23:01 adam Exp $

- *

- */

-

-/*

- * This is a generic implementation of the SLIP protocol over an RS232

- * (serial) device. 

- *

- * Huge thanks to Ullrich von Bassewitz <uz@cc65.org> of cc65 fame for

- * and endless supply of bugfixes, insightsful comments and

- * suggestions, and improvements to this code!

- */

-

-#include "uip.h"

-

-#define SLIP_END     0300

-#define SLIP_ESC     0333

-#define SLIP_ESC_END 0334

-#define SLIP_ESC_ESC 0335

-

-static u8_t slip_buf[UIP_BUFSIZE];

-

-static u16_t len, tmplen;

-static u8_t lastc;

-

-/*-----------------------------------------------------------------------------------*/

-/**

- * Send the packet in the uip_buf and uip_appdata buffers using the

- * SLIP protocol.

- *

- * The first 40 bytes of the packet (the IP and TCP headers) are read

- * from the uip_buf buffer, and the following bytes (the application

- * data) are read from the uip_appdata buffer.

- *

- */

-/*-----------------------------------------------------------------------------------*/

-void

-slipdev_send(void)

-{

-  u16_t i;

-  u8_t *ptr;

-  u8_t c;

-

-  slipdev_char_put(SLIP_END);

-

-  ptr = uip_buf;

-  for(i = 0; i < uip_len; ++i) {

-    if(i == 40) {

-      ptr = (u8_t *)uip_appdata;

-    }

-    c = *ptr++;

-    switch(c) {

-    case SLIP_END:

-      slipdev_char_put(SLIP_ESC);

-      slipdev_char_put(SLIP_ESC_END);

-      break;

-    case SLIP_ESC:

-      slipdev_char_put(SLIP_ESC);

-      slipdev_char_put(SLIP_ESC_ESC);

-      break;

-    default:

-      slipdev_char_put(c);

-      break;

-    }

-  }

-  slipdev_char_put(SLIP_END);

-}

-/*-----------------------------------------------------------------------------------*/

-/** 

- * Poll the SLIP device for an available packet.

- *

- * This function will poll the SLIP device to see if a packet is

- * available. It uses a buffer in which all avaliable bytes from the

- * RS232 interface are read into. When a full packet has been read

- * into the buffer, the packet is copied into the uip_buf buffer and

- * the length of the packet is returned.

- *

- * \return The length of the packet placed in the uip_buf buffer, or

- * zero if no packet is available.

- */

-/*-----------------------------------------------------------------------------------*/

-u16_t

-slipdev_poll(void)

-{

-  u8_t c;

-  

-  while(slipdev_char_poll(c)) {

-    switch(c) {

-    case SLIP_ESC:

-      lastc = c;

-      break;

-      

-    case SLIP_END:

-      lastc = c;

-      /* End marker found, we copy our input buffer to the uip_buf

-	 buffer and return the size of the packet we copied. */

-      memcpy(uip_buf, slip_buf, len);

-      tmplen = len;

-      len = 0;

-      return tmplen;

-      

-    default:     

-      if(lastc == SLIP_ESC) {

-	lastc = c;

-	/* Previous read byte was an escape byte, so this byte will be

-	   interpreted differently from others. */

-	switch(c) {

-	case SLIP_ESC_END:

-	  c = SLIP_END;

-	  break;

-	case SLIP_ESC_ESC:

-	  c = SLIP_ESC;

-	  break;

-	}

-      } else {

-	lastc = c;

-      }

-      

-      slip_buf[len] = c;

-      ++len;

-      

-      if(len > UIP_BUFSIZE) {

-	len = 0;

-      }

-    

-      break;

-    }

-  }

-  return 0;

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Initialize the SLIP module.

- *

- * This function does not initialize the underlying RS232 device, but

- * only the SLIP part.

- */ 

-/*-----------------------------------------------------------------------------------*/

-void

-slipdev_init(void)

-{

-  lastc = len = 0;

-}

-/*-----------------------------------------------------------------------------------*/

-

-/** @} */

-/** @} */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/slipdev.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/slipdev.h
deleted file mode 100644
index 3fbfe2d..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/slipdev.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/**

- * \addtogroup slip

- * @{

- */

-

-/**

- * \file

- * SLIP header file.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: slipdev.h,v 1.1.2.3 2003/10/06 22:42:51 adam Exp $

- *

- */

-

-#ifndef __SLIPDEV_H__

-#define __SLIPDEV_H__

-

-#include "uip.h"

-

-/**

- * Put a character on the serial device.

- *

- * This function is used by the SLIP implementation to put a character

- * on the serial device. It must be implemented specifically for the

- * system on which the SLIP implementation is to be run.

- *

- * \param c The character to be put on the serial device.

- */

-void slipdev_char_put(u8_t c);

-

-/**

- * Poll the serial device for a character.

- *

- * This function is used by the SLIP implementation to poll the serial

- * device for a character. It must be implemented specifically for the

- * system on which the SLIP implementation is to be run.

- *

- * The function should return immediately regardless if a character is

- * available or not. If a character is available it should be placed

- * at the memory location pointed to by the pointer supplied by the

- * arguement c.

- *

- * \param c A pointer to a byte that is filled in by the function with

- * the received character, if available.

- *

- * \retval 0 If no character is available.

- * \retval Non-zero If a character is available.

- */

-u8_t slipdev_char_poll(u8_t *c);

-

-void slipdev_init(void);

-void slipdev_send(void);

-u16_t slipdev_poll(void);

-

-#endif /* __SLIPDEV_H__ */

-

-/** @} */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/tapdev.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/tapdev.c
deleted file mode 100644
index 0d23fc4..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/tapdev.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/*

- * Copyright (c) 2001, Swedish Institute of Computer Science.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- *

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- *

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- *

- * 3. Neither the name of the Institute nor the names of its contributors 

- *    may be used to endorse or promote products derived from this software 

- *    without specific prior written permission. 

- *

- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 

- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 

- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 

- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 

- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 

- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 

- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 

- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 

- * SUCH DAMAGE. 

- *

- * Author: Adam Dunkels <adam@sics.se>

- *

- * $Id: tapdev.c,v 1.7.2.1 2003/10/07 13:23:19 adam Exp $

- */

-

-

-#include <fcntl.h>

-#include <stdlib.h>

-#include <stdio.h>

-#include <unistd.h>

-#include <string.h>

-#include <sys/ioctl.h>

-#include <sys/socket.h>

-#include <sys/types.h>

-#include <sys/time.h>

-#include <sys/uio.h>

-#include <sys/socket.h>

-

-#ifdef linux

-#include <sys/ioctl.h>

-#include <linux/if.h>

-#include <linux/if_tun.h>

-#define DEVTAP "/dev/net/tun"

-#else  /* linux */

-#define DEVTAP "/dev/tap0"

-#endif /* linux */

-

-#include "uip.h"

-

-static int fd;

-

-static unsigned long lasttime;

-static struct timezone tz;

-

-/*-----------------------------------------------------------------------------------*/

-void

-tapdev_init(void)

-{

-  char buf[1024];

-  

-  fd = open(DEVTAP, O_RDWR);

-  if(fd == -1) {

-    perror("tapdev: tapdev_init: open");

-    exit(1);

-  }

-

-#ifdef linux

-  {

-    struct ifreq ifr;

-    memset(&ifr, 0, sizeof(ifr));

-    ifr.ifr_flags = IFF_TAP|IFF_NO_PI;

-    if (ioctl(fd, TUNSETIFF, (void *) &ifr) < 0) {

-      perror(buf);

-      exit(1);

-    }

-  }

-#endif /* Linux */

-

-  snprintf(buf, sizeof(buf), "ifconfig tap0 inet %d.%d.%d.%d",

-	   UIP_DRIPADDR0, UIP_DRIPADDR1, UIP_DRIPADDR2, UIP_DRIPADDR3);

-  system(buf);

-

-  lasttime = 0;

-}

-/*-----------------------------------------------------------------------------------*/

-unsigned int

-tapdev_read(void)

-{

-  fd_set fdset;

-  struct timeval tv, now;

-  int ret;

-  

-  if(lasttime >= 500000) {

-    lasttime = 0;

-    return 0;

-  }

-  

-  tv.tv_sec = 0;

-  tv.tv_usec = 500000 - lasttime;

-

-

-  FD_ZERO(&fdset);

-  FD_SET(fd, &fdset);

-

-  gettimeofday(&now, &tz);  

-  ret = select(fd + 1, &fdset, NULL, NULL, &tv);

-  if(ret == 0) {

-    lasttime = 0;    

-    return 0;

-  } 

-  ret = read(fd, uip_buf, UIP_BUFSIZE);  

-  if(ret == -1) {

-    perror("tap_dev: tapdev_read: read");

-  }

-  gettimeofday(&tv, &tz);

-  lasttime += (tv.tv_sec - now.tv_sec) * 1000000 + (tv.tv_usec - now.tv_usec);

-

-  return ret;

-}

-/*-----------------------------------------------------------------------------------*/

-void

-tapdev_send(void)

-{

-  int ret;

-  struct iovec iov[2];

-  

-#ifdef linux

-  {

-    char tmpbuf[UIP_BUFSIZE];

-    int i;

-

-    for(i = 0; i < 40 + UIP_LLH_LEN; i++) {

-      tmpbuf[i] = uip_buf[i];

-    }

-    

-    for(; i < uip_len; i++) {

-      tmpbuf[i] = uip_appdata[i - 40 - UIP_LLH_LEN];

-    }

-    

-    ret = write(fd, tmpbuf, uip_len);

-  }  

-#else 

-

-  if(uip_len < 40 + UIP_LLH_LEN) {

-    ret = write(fd, uip_buf, uip_len + UIP_LLH_LEN);

-  } else {

-    iov[0].iov_base = uip_buf;

-    iov[0].iov_len = 40 + UIP_LLH_LEN;

-    iov[1].iov_base = (char *)uip_appdata;

-    iov[1].iov_len = uip_len - (40 + UIP_LLH_LEN);  

-    

-    ret = writev(fd, iov, 2);

-  }

-#endif

-  if(ret == -1) {

-    perror("tap_dev: tapdev_send: writev");

-    exit(1);

-  }

-}  

-/*-----------------------------------------------------------------------------------*/

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/tapdev.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/tapdev.h
deleted file mode 100644
index 66f1a4a..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/tapdev.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: tapdev.h,v 1.1.2.1 2003/10/04 22:54:17 adam Exp $

- *

- */

-

-#ifndef __TAPDEV_H__

-#define __TAPDEV_H__

-

-void tapdev_init(void);

-unsigned int tapdev_read(void);

-void tapdev_send(void);

-

-#endif /* __TAPDEV_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd-shell.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd-shell.c
deleted file mode 100644
index 7dff714..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd-shell.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/**

- * \addtogroup telnetd

- * @{

- */

-

-/**

- * \file

- * An example telnet server shell

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2003, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the Contiki desktop OS.

- *

- * $Id: telnetd-shell.c,v 1.1.2.1 2003/10/06 22:56:22 adam Exp $

- *

- */

-

-#include "uip.h"

-#include "telnetd.h"

-#include <string.h>

-

-struct ptentry {

-  char c;

-  void (* pfunc)(struct telnetd_state *s, char *str);

-};

-

-/*-----------------------------------------------------------------------------------*/

-static void

-parse(struct telnetd_state *s, register char *str, struct ptentry *t)

-{

-  register struct ptentry *p;

-  char *sstr;

-

-  sstr = str;

-  

-  /* Loop over the parse table entries in t in order to find one that

-     matches the first character in str. */

-  for(p = t; p->c != 0; ++p) {

-    if(*str == p->c) {

-      /* Skip rest of the characters up to the first space. */

-      while(*str != ' ') {

-	++str;

-      }

-

-      /* Skip all spaces.*/

-      while(*str == ' ') {

-	++str;

-      }

-

-      /* Call parse table entry function and return. */

-      p->pfunc(s, str);

-      return;

-    }

-  }

-

-  /* Did not find matching entry in parse table. We just call the

-     default handler supplied by the caller and return. */

-  p->pfunc(s, str);

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-exitt(struct telnetd_state *s, char *str)

-{

-  telnetd_close(s);

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-inttostr(register char *str, unsigned int i)

-{

-  str[0] = '0' + i / 100;

-  if(str[0] == '0') {

-    str[0] = ' ';

-  }

-  str[1] = '0' + (i / 10) % 10;

-  if(str[1] == '0') {

-    str[1] = ' ';

-  }

-  str[2] = '0' + i % 10;

-  str[3] = ' ';

-  str[4] = 0;

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-stats(struct telnetd_state *s, char *strr)

-{

-  char str[10];

-

-  inttostr(str, uip_stat.ip.recv);

-  telnetd_output(s, "IP packets received ", str);

-  inttostr(str, uip_stat.ip.sent);

-  telnetd_output(s, "IP packets sent ", str);

-  inttostr(str, uip_stat.ip.drop);

-  telnetd_output(s, "IP packets dropped ", str);

-

-  inttostr(str, uip_stat.icmp.recv);

-  telnetd_output(s, "ICMP packets received ", str);

-  inttostr(str, uip_stat.icmp.sent);

-  telnetd_output(s, "ICMP packets sent ", str);

-  inttostr(str, uip_stat.icmp.drop);

-  telnetd_output(s, "ICMP packets dropped ", str);

-

-  inttostr(str, uip_stat.tcp.recv);

-  telnetd_output(s, "TCP packets received ", str);

-  inttostr(str, uip_stat.tcp.sent);

-  telnetd_output(s, "TCP packets sent ", str);

-  inttostr(str, uip_stat.tcp.drop);

-  telnetd_output(s, "TCP packets dropped ", str);

-  inttostr(str, uip_stat.tcp.rexmit);

-  telnetd_output(s, "TCP packets retransmitted ", str);

-  inttostr(str, uip_stat.tcp.synrst);

-  telnetd_output(s, "TCP connection attempts ", str);

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-help(struct telnetd_state *s, char *str)

-{

-  telnetd_output(s, "Available commands:", "");

-  telnetd_output(s, "stats - show uIP statistics", "");

-  telnetd_output(s, "exit  - exit shell", "");  

-  telnetd_output(s, "?     - show this help", "");        

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-none(struct telnetd_state *s, char *str)

-{

-  if(strlen(str) > 0) {

-    telnetd_output(s, "Unknown command", "");

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-static struct ptentry configparsetab[] =

-  {{'s', stats},

-   {'e', exitt},

-   {'?', help},

-

-   /* Default action */

-   {0, none}};

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_connected(struct telnetd_state *s)

-{

-  telnetd_output(s, "uIP command shell", "");

-  telnetd_output(s, "Type '?' for help", "");  

-  telnetd_prompt(s, "uIP-0.9> "); 

-}

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_input(struct telnetd_state *s, char *cmd)

-{

-  parse(s, cmd, configparsetab);

-  telnetd_prompt(s, "uIP-0.9> "); 

-}

-/*-----------------------------------------------------------------------------------*/

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd.c
deleted file mode 100644
index dba5222..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd.c
+++ /dev/null
@@ -1,392 +0,0 @@
-/**

- * \addtogroup exampleapps

- * @{

- */

-

-/**

- * \defgroup telnetd Telnet server

- * @{

- *

- * The uIP telnet server provides a command based interface to uIP. It

- * allows using the "telnet" application to access uIP, and implements

- * the required telnet option negotiation.

- *

- * The code is structured in a way which makes it possible to add

- * commands without having to rewrite the main telnet code. The main

- * telnet code calls two callback functions, telnetd_connected() and

- * telnetd_input(), when a telnet connection has been established and

- * when a line of text arrives on a telnet connection. These two

- * functions can be implemented in a way which suits the particular

- * application or environment in which the uIP system is intended to

- * be run.

- *

- * The uIP distribution contains an example telnet shell

- * implementation that provides a basic set of commands.

- */

-

-/**

- * \file

- * Implementation of the Telnet server.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2003, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: telnetd.c,v 1.1.2.2 2003/10/07 13:47:50 adam Exp $

- *

- */

-

-#include "uip.h"

-#include "memb.h"

-#include "telnetd.h"

-#include <string.h>

-

-#define ISO_nl       0x0a

-#define ISO_cr       0x0d

-

-MEMB(linemem, TELNETD_LINELEN, TELNETD_NUMLINES);

-

-static u8_t i;

-

-#define STATE_NORMAL 0

-#define STATE_IAC    1

-#define STATE_WILL   2

-#define STATE_WONT   3

-#define STATE_DO     4  

-#define STATE_DONT   5

-#define STATE_CLOSE  6

-

-#define TELNET_IAC   255

-#define TELNET_WILL  251

-#define TELNET_WONT  252

-#define TELNET_DO    253

-#define TELNET_DONT  254

-/*-----------------------------------------------------------------------------------*/

-static char *

-alloc_line(void)

-{  

-  return memb_alloc(&linemem);

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-dealloc_line(char *line)

-{

-  memb_free(&linemem, line);

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-sendline(struct telnetd_state *s, char *line)

-{

-  static unsigned int i;

-  for(i = 0; i < TELNETD_NUMLINES; ++i) {

-    if(s->lines[i] == NULL) {

-      s->lines[i] = line;

-      break;

-    }

-  }

-  if(i == TELNETD_NUMLINES) {

-    dealloc_line(line);

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Close a telnet session.

- *

- * This function can be called from a telnet command in order to close

- * the connection.

- *

- * \param s The connection which is to be closed.

- *

- */

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_close(struct telnetd_state *s)

-{

-  s->state = STATE_CLOSE;

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Print a prompt on a telnet connection.

- *

- * This function can be called by the telnet command shell in order to

- * print out a command prompt.

- *

- * \param s A telnet connection.

- *

- * \param str The command prompt.

- *

- */

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_prompt(struct telnetd_state *s, char *str)

-{

-  char *line;

-  line = alloc_line();

-  if(line != NULL) {

-    strncpy(line, str, TELNETD_LINELEN);

-    sendline(s, line);

-  }         

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Print out a string on a telnet connection.

- *

- * This function can be called from a telnet command parser in order

- * to print out a string of text on the connection. The two strings

- * given as arguments to the function will be concatenated, a carrige

- * return and a new line character will be added, and the line is

- * sent.

- *

- * \param s The telnet connection.

- *

- * \param str1 The first string.

- *

- * \param str2 The second string.

- *

- */

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_output(struct telnetd_state *s, char *str1, char *str2)

-{

-  static unsigned len;

-  char *line;

-  

-  line = alloc_line();

-  if(line != NULL) {

-    len = strlen(str1);

-    strncpy(line, str1, TELNETD_LINELEN);

-    if(len < TELNETD_LINELEN) {

-      strncpy(line + len, str2, TELNETD_LINELEN - len);

-    }

-    len = strlen(line);

-    if(len < TELNETD_LINELEN - 2) {

-      line[len] = ISO_cr;

-      line[len+1] = ISO_nl;

-      line[len+2] = 0;

-    }

-    sendline(s, line);

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Initialize the telnet server.

- *

- * This function will perform the necessary initializations and start

- * listening on TCP port 23.

- */

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_init(void)

-{

-  memb_init(&linemem);

-  uip_listen(HTONS(23));

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-acked(struct telnetd_state *s)     

-{

-  dealloc_line(s->lines[0]);

-  for(i = 1; i < TELNETD_NUMLINES; ++i) {

-    s->lines[i - 1] = s->lines[i];

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-senddata(struct telnetd_state *s)    

-{

-  if(s->lines[0] != NULL) {

-    uip_send(s->lines[0], strlen(s->lines[0]));

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-getchar(struct telnetd_state *s, u8_t c)

-{

-  if(c == ISO_cr) {

-    return;

-  }

-  

-  s->buf[(int)s->bufptr] = c;  

-  if(s->buf[(int)s->bufptr] == ISO_nl ||

-     s->bufptr == sizeof(s->buf) - 1) {    

-    if(s->bufptr > 0) {

-      s->buf[(int)s->bufptr] = 0;

-    }

-    telnetd_input(s, s->buf);

-    s->bufptr = 0;

-  } else {

-    ++s->bufptr;

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-sendopt(struct telnetd_state *s, u8_t option, u8_t value)

-{

-  char *line;

-  line = alloc_line();

-  if(line != NULL) {

-    line[0] = TELNET_IAC;

-    line[1] = option;

-    line[2] = value;

-    line[3] = 0;

-    sendline(s, line);

-  }       

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-newdata(struct telnetd_state *s)

-{

-  u16_t len;

-  u8_t c;

-    

-  

-  len = uip_datalen();

-  

-  while(len > 0 && s->bufptr < sizeof(s->buf)) {

-    c = *uip_appdata;

-    ++uip_appdata;

-    --len;

-    switch(s->state) {

-    case STATE_IAC:

-      if(c == TELNET_IAC) {

-	getchar(s, c);

-	s->state = STATE_NORMAL;

-      } else {

-	switch(c) {

-	case TELNET_WILL:

-	  s->state = STATE_WILL;

-	  break;

-	case TELNET_WONT:

-	  s->state = STATE_WONT;

-	  break;

-	case TELNET_DO:

-	  s->state = STATE_DO;

-	  break;

-	case TELNET_DONT:

-	  s->state = STATE_DONT;

-	  break;

-	default:

-	  s->state = STATE_NORMAL;

-	  break;

-	}

-      }

-      break;

-    case STATE_WILL:

-      /* Reply with a DONT */

-      sendopt(s, TELNET_DONT, c);

-      s->state = STATE_NORMAL;

-      break;

-      

-    case STATE_WONT:

-      /* Reply with a DONT */

-      sendopt(s, TELNET_DONT, c);

-      s->state = STATE_NORMAL;

-      break;

-    case STATE_DO:

-      /* Reply with a WONT */

-      sendopt(s, TELNET_WONT, c);

-      s->state = STATE_NORMAL;

-      break;

-    case STATE_DONT:

-      /* Reply with a WONT */

-      sendopt(s, TELNET_WONT, c);

-      s->state = STATE_NORMAL;

-      break;

-    case STATE_NORMAL:

-      if(c == TELNET_IAC) {

-	s->state = STATE_IAC;

-      } else {

-	getchar(s, c);

-      }      

-      break;

-    } 

-

-    

-  }  

-  

-}

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_app(void)

-{

-  struct telnetd_state *s;

-

-  s = (struct telnetd_state *)uip_conn->appstate;

-  

-  if(uip_connected()) {

-

-    for(i = 0; i < TELNETD_NUMLINES; ++i) {

-      s->lines[i] = NULL;

-    }

-    s->bufptr = 0;

-    s->state = STATE_NORMAL;

-

-    telnetd_connected(s);

-    senddata(s);

-    return;

-  }

-

-  if(s->state == STATE_CLOSE) {

-    s->state = STATE_NORMAL;

-    uip_close();

-    return;

-  }

-  

-  if(uip_closed()) {

-    telnetd_output(s, "Connection closed", "");

-  }

-

-  

-  if(uip_aborted()) {

-    telnetd_output(s, "Connection reset", "");

-  }

-  

-  if(uip_timedout()) {

-    telnetd_output(s, "Connection timed out", "");

-  }

-  

-  if(uip_acked()) {

-    acked(s);

-  }

-  

-  if(uip_newdata()) {

-    newdata(s);

-  }

-  

-  if(uip_rexmit() ||

-     uip_newdata() ||

-     uip_acked()) {

-    senddata(s);

-  } else if(uip_poll()) {    

-    senddata(s);

-  }

-}

-/*-----------------------------------------------------------------------------------*/

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd.h
deleted file mode 100644
index 254e44f..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/telnetd.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/**

- * \addtogroup telnetd

- * @{

- */

-

-/**

- * \file

- * Header file for the telnet server.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2002, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: telnetd.h,v 1.1.2.2 2003/10/07 13:22:27 adam Exp $

- *

- */

-#ifndef __TELNETD_H__

-#define __TELNETD_H__

-

-#include "uip.h"

-

-/**

- * The maximum length of a telnet line.

- *

- * \hideinitializer

- */

-#define TELNETD_LINELEN 36

-

-/**

- * The number of output lines being buffered for all telnet

- * connections.

- *

- * \hideinitializer

- */

-#define TELNETD_NUMLINES 2

-

-/**

- * A telnet connection structure.

- */

-struct telnetd_state {

-  char *lines[TELNETD_NUMLINES];

-  char buf[TELNETD_LINELEN];

-  char bufptr;

-  u8_t state;

-};

-

-

-/**

- * Callback function that is called when a telnet connection has been

- * established.

- *

- * \param s The telnet connection. 

- */

-void telnetd_connected(struct telnetd_state *s);

-

-/**

- * Callback function that is called when a line of text has arrived on

- * a telnet connection.

- *

- * \param s The telnet connection.

- *

- * \param cmd The line of text.

- */

-void telnetd_input(struct telnetd_state *s, char *cmd);

-

-

-void telnetd_close(struct telnetd_state *s);

-void telnetd_output(struct telnetd_state *s, char *s1, char *s2);

-void telnetd_prompt(struct telnetd_state *s, char *str);

-

-void telnetd_app(void);

-

-#ifndef UIP_APPCALL

-#define UIP_APPCALL     telnetd_app

-#endif

-

-#ifndef UIP_APPSTATE_SIZE

-#define UIP_APPSTATE_SIZE (sizeof(struct telnetd_state))

-#endif

-

-void telnetd_init(void);

-

-

-#endif /* __TELNET_H__ */

-

-/** @} */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip.c
deleted file mode 100644
index 37f64fa..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip.c
+++ /dev/null
@@ -1,1514 +0,0 @@
-/**

- * \addtogroup uip

- * @{

- */

-

-/**

- * \file

- * The uIP TCP/IP stack code.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001-2003, Adam Dunkels.

- * All rights reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in the

- *    documentation and/or other materials provided with the distribution.

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uip.c,v 1.62.2.10 2003/10/07 13:23:01 adam Exp $

- *

- */

-

-/*

-This is a small implementation of the IP and TCP protocols (as well as

-some basic ICMP stuff). The implementation couples the IP, TCP and the

-application layers very tightly. To keep the size of the compiled code

-down, this code also features heavy usage of the goto statement.

-

-The principle is that we have a small buffer, called the uip_buf, in

-which the device driver puts an incoming packet. The TCP/IP stack

-parses the headers in the packet, and calls upon the application. If

-the remote host has sent data to the application, this data is present

-in the uip_buf and the application read the data from there. It is up

-to the application to put this data into a byte stream if needed. The

-application will not be fed with data that is out of sequence.

-

-If the application whishes to send data to the peer, it should put its

-data into the uip_buf, 40 bytes from the start of the buffer. The

-TCP/IP stack will calculate the checksums, and fill in the necessary

-header fields and finally send the packet back to the peer.

-*/

-

-#include "uip.h"

-#include "uipopt.h"

-#include "uip_arch.h"

-

-/*-----------------------------------------------------------------------------------*/

-/* Variable definitions. */

-

-

-/* The IP address of this host. If it is defined to be fixed (by setting UIP_FIXEDADDR to 1 in uipopt.h), the address is set here. Otherwise, the address */

-#if UIP_FIXEDADDR > 0

-const u16_t uip_hostaddr[2] =

-  {HTONS((UIP_IPADDR0 << 8) | UIP_IPADDR1),

-   HTONS((UIP_IPADDR2 << 8) | UIP_IPADDR3)};

-const u16_t uip_arp_draddr[2] =

-  {HTONS((UIP_DRIPADDR0 << 8) | UIP_DRIPADDR1),

-   HTONS((UIP_DRIPADDR2 << 8) | UIP_DRIPADDR3)};

-const u16_t uip_arp_netmask[2] =

-  {HTONS((UIP_NETMASK0 << 8) | UIP_NETMASK1),

-   HTONS((UIP_NETMASK2 << 8) | UIP_NETMASK3)};

-#else

-u16_t uip_hostaddr[2];

-u16_t uip_arp_draddr[2], uip_arp_netmask[2];

-#endif /* UIP_FIXEDADDR */

-

-u8_t uip_buf[UIP_BUFSIZE+2];   /* The packet buffer that contains

-				incoming packets. */

-volatile u8_t *uip_appdata;  /* The uip_appdata pointer points to

-				application data. */

-volatile u8_t *uip_sappdata;  /* The uip_appdata pointer points to the

-				 application data which is to be sent. */

-#if UIP_URGDATA > 0

-volatile u8_t *uip_urgdata;  /* The uip_urgdata pointer points to

-				urgent data (out-of-band data), if

-				present. */

-volatile u8_t uip_urglen, uip_surglen;

-#endif /* UIP_URGDATA > 0 */

-

-volatile u16_t uip_len, uip_slen;

-                             /* The uip_len is either 8 or 16 bits,

-				depending on the maximum packet

-				size. */

-

-volatile u8_t uip_flags;     /* The uip_flags variable is used for

-				communication between the TCP/IP stack

-				and the application program. */

-struct uip_conn *uip_conn;   /* uip_conn always points to the current

-				connection. */

-

-struct uip_conn uip_conns[UIP_CONNS];

-                             /* The uip_conns array holds all TCP

-				connections. */

-u16_t uip_listenports[UIP_LISTENPORTS];

-                             /* The uip_listenports list all currently

-				listning ports. */

-#if UIP_UDP

-struct uip_udp_conn *uip_udp_conn;

-struct uip_udp_conn uip_udp_conns[UIP_UDP_CONNS];

-#endif /* UIP_UDP */

-

-

-static u16_t ipid;           /* Ths ipid variable is an increasing

-				number that is used for the IP ID

-				field. */

-

-static u8_t iss[4];          /* The iss variable is used for the TCP

-				initial sequence number. */

-

-#if UIP_ACTIVE_OPEN

-static u16_t lastport;       /* Keeps track of the last port used for

-				a new connection. */

-#endif /* UIP_ACTIVE_OPEN */

-

-/* Temporary variables. */

-volatile u8_t uip_acc32[4];

-static u8_t c, opt;

-static u16_t tmp16;

-

-/* Structures and definitions. */

-#define TCP_FIN 0x01

-#define TCP_SYN 0x02

-#define TCP_RST 0x04

-#define TCP_PSH 0x08

-#define TCP_ACK 0x10

-#define TCP_URG 0x20

-#define TCP_CTL 0x3f

-

-#define ICMP_ECHO_REPLY 0

-#define ICMP_ECHO       8

-

-/* Macros. */

-#define BUF ((uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN])

-#define FBUF ((uip_tcpip_hdr *)&uip_reassbuf[0])

-#define ICMPBUF ((uip_icmpip_hdr *)&uip_buf[UIP_LLH_LEN])

-#define UDPBUF ((uip_udpip_hdr *)&uip_buf[UIP_LLH_LEN])

-

-#if UIP_STATISTICS == 1

-struct uip_stats uip_stat;

-#define UIP_STAT(s) s

-#else

-#define UIP_STAT(s)

-#endif /* UIP_STATISTICS == 1 */

-

-#if UIP_LOGGING == 1

-#include <stdio.h>

-void uip_log(char *msg);

-#define UIP_LOG(m) uip_log(m)

-#else

-#define UIP_LOG(m)

-#endif /* UIP_LOGGING == 1 */

-

-/*-----------------------------------------------------------------------------------*/

-void

-uip_init(void)

-{

-  for(c = 0; c < UIP_LISTENPORTS; ++c) {

-    uip_listenports[c] = 0;

-  }

-  for(c = 0; c < UIP_CONNS; ++c) {

-    uip_conns[c].tcpstateflags = CLOSED;

-  }

-#if UIP_ACTIVE_OPEN

-  lastport = 1024;

-#endif /* UIP_ACTIVE_OPEN */

-

-#if UIP_UDP

-  for(c = 0; c < UIP_UDP_CONNS; ++c) {

-    uip_udp_conns[c].lport = 0;

-  }

-#endif /* UIP_UDP */

-

-

-  /* IPv4 initialization. */

-#if UIP_FIXEDADDR == 0

-  uip_hostaddr[0] = uip_hostaddr[1] = 0;

-#endif /* UIP_FIXEDADDR */

-

-}

-/*-----------------------------------------------------------------------------------*/

-#if UIP_ACTIVE_OPEN

-struct uip_conn *

-uip_connect(u16_t *ripaddr, u16_t rport)

-{

-  register struct uip_conn *conn, *cconn;

-

-  /* Find an unused local port. */

- again:

-  ++lastport;

-

-  if(lastport >= 32000) {

-    lastport = 4096;

-  }

-

-  /* Check if this port is already in use, and if so try to find

-     another one. */

-  for(c = 0; c < UIP_CONNS; ++c) {

-    conn = &uip_conns[c];

-    if(conn->tcpstateflags != CLOSED &&

-       conn->lport == htons(lastport)) {

-      goto again;

-    }

-  }

-

-

-  conn = 0;

-  for(c = 0; c < UIP_CONNS; ++c) {

-    cconn = &uip_conns[c];

-    if(cconn->tcpstateflags == CLOSED) {

-      conn = cconn;

-      break;

-    }

-    if(cconn->tcpstateflags == TIME_WAIT) {

-      if(conn == 0 ||

-	 cconn->timer > uip_conn->timer) {

-	conn = cconn;

-      }

-    }

-  }

-

-  if(conn == 0) {

-    return 0;

-  }

-

-  conn->tcpstateflags = SYN_SENT;

-

-  conn->snd_nxt[0] = iss[0];

-  conn->snd_nxt[1] = iss[1];

-  conn->snd_nxt[2] = iss[2];

-  conn->snd_nxt[3] = iss[3];

-

-  conn->initialmss = conn->mss = UIP_TCP_MSS;

-

-  conn->len = 1;   /* TCP length of the SYN is one. */

-  conn->nrtx = 0;

-  conn->timer = 1; /* Send the SYN next time around. */

-  conn->rto = UIP_RTO;

-  conn->sa = 0;

-  conn->sv = 16;

-  conn->lport = htons(lastport);

-  conn->rport = rport;

-  conn->ripaddr[0] = ripaddr[0];

-  conn->ripaddr[1] = ripaddr[1];

-

-  return conn;

-}

-#endif /* UIP_ACTIVE_OPEN */

-/*-----------------------------------------------------------------------------------*/

-#if UIP_UDP

-struct uip_udp_conn *

-uip_udp_new(u16_t *ripaddr, u16_t rport)

-{

-  register struct uip_udp_conn *conn;

-

-  /* Find an unused local port. */

- again:

-  ++lastport;

-

-  if(lastport >= 32000) {

-    lastport = 4096;

-  }

-

-  for(c = 0; c < UIP_UDP_CONNS; ++c) {

-    if(uip_udp_conns[c].lport == lastport) {

-      goto again;

-    }

-  }

-

-

-  conn = 0;

-  for(c = 0; c < UIP_UDP_CONNS; ++c) {

-    if(uip_udp_conns[c].lport == 0) {

-      conn = &uip_udp_conns[c];

-      break;

-    }

-  }

-

-  if(conn == 0) {

-    return 0;

-  }

-

-  conn->lport = HTONS(lastport);

-  conn->rport = HTONS(rport);

-  conn->ripaddr[0] = ripaddr[0];

-  conn->ripaddr[1] = ripaddr[1];

-

-  return conn;

-}

-#endif /* UIP_UDP */

-/*-----------------------------------------------------------------------------------*/

-void

-uip_unlisten(u16_t port)

-{

-  for(c = 0; c < UIP_LISTENPORTS; ++c) {

-    if(uip_listenports[c] == port) {

-      uip_listenports[c] = 0;

-      return;

-    }

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-void

-uip_listen(u16_t port)

-{

-  for(c = 0; c < UIP_LISTENPORTS; ++c) {

-    if(uip_listenports[c] == 0) {

-      uip_listenports[c] = port;

-      return;

-    }

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-/* XXX: IP fragment reassembly: not well-tested. */

-

-#if UIP_REASSEMBLY

-#define UIP_REASS_BUFSIZE (UIP_BUFSIZE - UIP_LLH_LEN)

-static u8_t uip_reassbuf[UIP_REASS_BUFSIZE];

-static u8_t uip_reassbitmap[UIP_REASS_BUFSIZE / (8 * 8)];

-static const u8_t bitmap_bits[8] = {0xff, 0x7f, 0x3f, 0x1f,

-				    0x0f, 0x07, 0x03, 0x01};

-static u16_t uip_reasslen;

-static u8_t uip_reassflags;

-#define UIP_REASS_FLAG_LASTFRAG 0x01

-static u8_t uip_reasstmr;

-

-#define IP_HLEN 20

-#define IP_MF   0x20

-

-static u8_t

-uip_reass(void)

-{

-  u16_t offset, len;

-  u16_t i;

-

-  /* If ip_reasstmr is zero, no packet is present in the buffer, so we

-     write the IP header of the fragment into the reassembly

-     buffer. The timer is updated with the maximum age. */

-  if(uip_reasstmr == 0) {

-    memcpy(uip_reassbuf, &BUF->vhl, IP_HLEN);

-    uip_reasstmr = UIP_REASS_MAXAGE;

-    uip_reassflags = 0;

-    /* Clear the bitmap. */

-    memset(uip_reassbitmap, sizeof(uip_reassbitmap), 0);

-  }

-

-  /* Check if the incoming fragment matches the one currently present

-     in the reasembly buffer. If so, we proceed with copying the

-     fragment into the buffer. */

-  if(BUF->srcipaddr[0] == FBUF->srcipaddr[0] &&

-     BUF->srcipaddr[1] == FBUF->srcipaddr[1] &&

-     BUF->destipaddr[0] == FBUF->destipaddr[0] &&

-     BUF->destipaddr[1] == FBUF->destipaddr[1] &&

-     BUF->ipid[0] == FBUF->ipid[0] &&

-     BUF->ipid[1] == FBUF->ipid[1]) {

-

-    len = (BUF->len[0] << 8) + BUF->len[1] - (BUF->vhl & 0x0f) * 4;

-    offset = (((BUF->ipoffset[0] & 0x3f) << 8) + BUF->ipoffset[1]) * 8;

-

-    /* If the offset or the offset + fragment length overflows the

-       reassembly buffer, we discard the entire packet. */

-    if(offset > UIP_REASS_BUFSIZE ||

-       offset + len > UIP_REASS_BUFSIZE) {

-      uip_reasstmr = 0;

-      goto nullreturn;

-    }

-

-    /* Copy the fragment into the reassembly buffer, at the right

-       offset. */

-    memcpy(&uip_reassbuf[IP_HLEN + offset],

-	   (char *)BUF + (int)((BUF->vhl & 0x0f) * 4),

-	   len);

-

-    /* Update the bitmap. */

-    if(offset / (8 * 8) == (offset + len) / (8 * 8)) {

-      /* If the two endpoints are in the same byte, we only update

-	 that byte. */

-	

-      uip_reassbitmap[offset / (8 * 8)] |=

-	     bitmap_bits[(offset / 8 ) & 7] &

-	     ~bitmap_bits[((offset + len) / 8 ) & 7];

-    } else {

-      /* If the two endpoints are in different bytes, we update the

-	 bytes in the endpoints and fill the stuff inbetween with

-	 0xff. */

-      uip_reassbitmap[offset / (8 * 8)] |=

-	bitmap_bits[(offset / 8 ) & 7];

-      for(i = 1 + offset / (8 * 8); i < (offset + len) / (8 * 8); ++i) {

-	uip_reassbitmap[i] = 0xff;

-      }

-      uip_reassbitmap[(offset + len) / (8 * 8)] |=

-	~bitmap_bits[((offset + len) / 8 ) & 7];

-    }

-

-    /* If this fragment has the More Fragments flag set to zero, we

-       know that this is the last fragment, so we can calculate the

-       size of the entire packet. We also set the

-       IP_REASS_FLAG_LASTFRAG flag to indicate that we have received

-       the final fragment. */

-

-    if((BUF->ipoffset[0] & IP_MF) == 0) {

-      uip_reassflags |= UIP_REASS_FLAG_LASTFRAG;

-      uip_reasslen = offset + len;

-    }

-

-    /* Finally, we check if we have a full packet in the buffer. We do

-       this by checking if we have the last fragment and if all bits

-       in the bitmap are set. */

-    if(uip_reassflags & UIP_REASS_FLAG_LASTFRAG) {

-      /* Check all bytes up to and including all but the last byte in

-	 the bitmap. */

-      for(i = 0; i < uip_reasslen / (8 * 8) - 1; ++i) {

-	if(uip_reassbitmap[i] != 0xff) {

-	  goto nullreturn;

-	}

-      }

-      /* Check the last byte in the bitmap. It should contain just the

-	 right amount of bits. */

-      if(uip_reassbitmap[uip_reasslen / (8 * 8)] !=

-	 (u8_t)~bitmap_bits[uip_reasslen / 8 & 7]) {

-	goto nullreturn;

-      }

-

-      /* If we have come this far, we have a full packet in the

-	 buffer, so we allocate a pbuf and copy the packet into it. We

-	 also reset the timer. */

-      uip_reasstmr = 0;

-      memcpy(BUF, FBUF, uip_reasslen);

-

-      /* Pretend to be a "normal" (i.e., not fragmented) IP packet

-	 from now on. */

-      BUF->ipoffset[0] = BUF->ipoffset[1] = 0;

-      BUF->len[0] = uip_reasslen >> 8;

-      BUF->len[1] = uip_reasslen & 0xff;

-      BUF->ipchksum = 0;

-      BUF->ipchksum = ~(uip_ipchksum());

-

-      return uip_reasslen;

-    }

-  }

-

- nullreturn:

-  return 0;

-}

-#endif /* UIP_REASSEMBL */

-/*-----------------------------------------------------------------------------------*/

-static void

-uip_add_rcv_nxt(u16_t n)

-{

-  uip_add32(uip_conn->rcv_nxt, n);

-  uip_conn->rcv_nxt[0] = uip_acc32[0];

-  uip_conn->rcv_nxt[1] = uip_acc32[1];

-  uip_conn->rcv_nxt[2] = uip_acc32[2];

-  uip_conn->rcv_nxt[3] = uip_acc32[3];

-}

-/*-----------------------------------------------------------------------------------*/

-void

-uip_process(u8_t flag)

-{

-  register struct uip_conn *uip_connr = uip_conn;

-

-  uip_appdata = &uip_buf[40 + UIP_LLH_LEN];

-

-

-  /* Check if we were invoked because of the perodic timer fireing. */

-  if(flag == UIP_TIMER) {

-#if UIP_REASSEMBLY

-    if(uip_reasstmr != 0) {

-      --uip_reasstmr;

-    }

-#endif /* UIP_REASSEMBLY */

-    /* Increase the initial sequence number. */

-    if(++iss[3] == 0) {

-      if(++iss[2] == 0) {

-	if(++iss[1] == 0) {

-	  ++iss[0];

-	}

-      }

-    }

-    uip_len = 0;

-    if(uip_connr->tcpstateflags == TIME_WAIT ||

-       uip_connr->tcpstateflags == FIN_WAIT_2) {

-      ++(uip_connr->timer);

-      if(uip_connr->timer == UIP_TIME_WAIT_TIMEOUT) {

-	uip_connr->tcpstateflags = CLOSED;

-      }

-    } else if(uip_connr->tcpstateflags != CLOSED) {

-      /* If the connection has outstanding data, we increase the

-	 connection's timer and see if it has reached the RTO value

-	 in which case we retransmit. */

-      if(uip_outstanding(uip_connr)) {

-	if(uip_connr->timer-- == 0) {

-	  if(uip_connr->nrtx == UIP_MAXRTX ||

-	     ((uip_connr->tcpstateflags == SYN_SENT ||

-	       uip_connr->tcpstateflags == SYN_RCVD) &&

-	      uip_connr->nrtx == UIP_MAXSYNRTX)) {

-	    uip_connr->tcpstateflags = CLOSED;

-

-	    /* We call UIP_APPCALL() with uip_flags set to

-	       UIP_TIMEDOUT to inform the application that the

-	       connection has timed out. */

-	    uip_flags = UIP_TIMEDOUT;

-	    UIP_APPCALL();

-

-	    /* We also send a reset packet to the remote host. */

-	    BUF->flags = TCP_RST | TCP_ACK;

-	    goto tcp_send_nodata;

-	  }

-

-	  /* Exponential backoff. */

-	  uip_connr->timer = UIP_RTO << (uip_connr->nrtx > 4?

-					 4:

-					 uip_connr->nrtx);

-	  ++(uip_connr->nrtx);

-	

-	  /* Ok, so we need to retransmit. We do this differently

-	     depending on which state we are in. In ESTABLISHED, we

-	     call upon the application so that it may prepare the

-	     data for the retransmit. In SYN_RCVD, we resend the

-	     SYNACK that we sent earlier and in LAST_ACK we have to

-	     retransmit our FINACK. */

-	  UIP_STAT(++uip_stat.tcp.rexmit);

-	  switch(uip_connr->tcpstateflags & TS_MASK) {

-	  case SYN_RCVD:

-	    /* In the SYN_RCVD state, we should retransmit our

-               SYNACK. */

-	    goto tcp_send_synack;

-	

-#if UIP_ACTIVE_OPEN

-	  case SYN_SENT:

-	    /* In the SYN_SENT state, we retransmit out SYN. */

-	    BUF->flags = 0;

-	    goto tcp_send_syn;

-#endif /* UIP_ACTIVE_OPEN */

-	

-	  case ESTABLISHED:

-	    /* In the ESTABLISHED state, we call upon the application

-               to do the actual retransmit after which we jump into

-               the code for sending out the packet (the apprexmit

-               label). */

-	    uip_len = 0;

-	    uip_slen = 0;

-	    uip_flags = UIP_REXMIT;

-	    UIP_APPCALL();

-	    goto apprexmit;

-	

-	  case FIN_WAIT_1:

-	  case CLOSING:

-	  case LAST_ACK:

-	    /* In all these states we should retransmit a FINACK. */

-	    goto tcp_send_finack;

-	

-	  }

-	}

-      } else if((uip_connr->tcpstateflags & TS_MASK) == ESTABLISHED) {

-	/* If there was no need for a retransmission, we poll the

-           application for new data. */

-	uip_len = 0;

-	uip_slen = 0;

-	uip_flags = UIP_POLL;

-	UIP_APPCALL();

-	goto appsend;

-      }

-    }

-    goto drop;

-  }

-#if UIP_UDP

-  if(flag == UIP_UDP_TIMER) {

-    if(uip_udp_conn->lport != 0) {

-      uip_appdata = &uip_buf[UIP_LLH_LEN + 28];

-      uip_len = uip_slen = 0;

-      uip_flags = UIP_POLL;

-      UIP_UDP_APPCALL();

-      goto udp_send;

-    } else {

-      goto drop;

-    }

-  }

-#endif

-

-  /* This is where the input processing starts. */

-  UIP_STAT(++uip_stat.ip.recv);

-

-

-  /* Start of IPv4 input header processing code. */

-

-  /* Check validity of the IP header. */

-  if(BUF->vhl != 0x45)  { /* IP version and header length. */

-    UIP_STAT(++uip_stat.ip.drop);

-    UIP_STAT(++uip_stat.ip.vhlerr);

-    UIP_LOG("ip: invalid version or header length.");

-    goto drop;

-  }

-

-  /* Check the size of the packet. If the size reported to us in

-     uip_len doesn't match the size reported in the IP header, there

-     has been a transmission error and we drop the packet. */

-

-  if(BUF->len[0] != (uip_len >> 8)) { /* IP length, high byte. */

-    uip_len = (uip_len & 0xff) | (BUF->len[0] << 8);

-  }

-  if(BUF->len[1] != (uip_len & 0xff)) { /* IP length, low byte. */

-    uip_len = (uip_len & 0xff00) | BUF->len[1];

-  }

-

-  /* Check the fragment flag. */

-  if((BUF->ipoffset[0] & 0x3f) != 0 ||

-     BUF->ipoffset[1] != 0) {

-#if UIP_REASSEMBLY

-    uip_len = uip_reass();

-    if(uip_len == 0) {

-      goto drop;

-    }

-#else

-    UIP_STAT(++uip_stat.ip.drop);

-    UIP_STAT(++uip_stat.ip.fragerr);

-    UIP_LOG("ip: fragment dropped.");

-    goto drop;

-#endif /* UIP_REASSEMBLY */

-  }

-

-  /* If we are configured to use ping IP address configuration and

-     hasn't been assigned an IP address yet, we accept all ICMP

-     packets. */

-#if UIP_PINGADDRCONF

-  if((uip_hostaddr[0] | uip_hostaddr[1]) == 0) {

-    if(BUF->proto == UIP_PROTO_ICMP) {

-      UIP_LOG("ip: possible ping config packet received.");

-      goto icmp_input;

-    } else {

-      UIP_LOG("ip: packet dropped since no address assigned.");

-      goto drop;

-    }

-  }

-#endif /* UIP_PINGADDRCONF */

-

-  /* Check if the packet is destined for our IP address. */

-  if(BUF->destipaddr[0] != uip_hostaddr[0]) {

-    UIP_STAT(++uip_stat.ip.drop);

-    UIP_LOG("ip: packet not for us.");

-    goto drop;

-  }

-  if(BUF->destipaddr[1] != uip_hostaddr[1]) {

-    UIP_STAT(++uip_stat.ip.drop);

-    UIP_LOG("ip: packet not for us.");

-    goto drop;

-  }

-

-#if 0

-  // IP checksum is wrong through Netgear DSL router

-  if (uip_ipchksum() != 0xffff) { /* Compute and check the IP header

-				    checksum. */

-    UIP_STAT(++uip_stat.ip.drop);

-    UIP_STAT(++uip_stat.ip.chkerr);

-    UIP_LOG("ip: bad checksum.");

-    goto drop;

-  }

-#endif

-

-  if(BUF->proto == UIP_PROTO_TCP)  /* Check for TCP packet. If so, jump

-                                     to the tcp_input label. */

-    goto tcp_input;

-

-#if UIP_UDP

-  if(BUF->proto == UIP_PROTO_UDP)

-    goto udp_input;

-#endif /* UIP_UDP */

-

-  if(BUF->proto != UIP_PROTO_ICMP) { /* We only allow ICMP packets from

-					here. */

-    UIP_STAT(++uip_stat.ip.drop);

-    UIP_STAT(++uip_stat.ip.protoerr);

-    UIP_LOG("ip: neither tcp nor icmp.");

-    goto drop;

-  }

-

-#if UIP_PINGADDRCONF

- icmp_input:

-#endif

-  UIP_STAT(++uip_stat.icmp.recv);

-

-  /* ICMP echo (i.e., ping) processing. This is simple, we only change

-     the ICMP type from ECHO to ECHO_REPLY and adjust the ICMP

-     checksum before we return the packet. */

-  if(ICMPBUF->type != ICMP_ECHO) {

-    UIP_STAT(++uip_stat.icmp.drop);

-    UIP_STAT(++uip_stat.icmp.typeerr);

-    UIP_LOG("icmp: not icmp echo.");

-    goto drop;

-  }

-

-  /* If we are configured to use ping IP address assignment, we use

-     the destination IP address of this ping packet and assign it to

-     ourself. */

-#if UIP_PINGADDRCONF

-  if((uip_hostaddr[0] | uip_hostaddr[1]) == 0) {

-    uip_hostaddr[0] = BUF->destipaddr[0];

-    uip_hostaddr[1] = BUF->destipaddr[1];

-  }

-#endif /* UIP_PINGADDRCONF */

-

-  ICMPBUF->type = ICMP_ECHO_REPLY;

-

-  if(ICMPBUF->icmpchksum >= HTONS(0xffff - (ICMP_ECHO << 8))) {

-    ICMPBUF->icmpchksum += HTONS(ICMP_ECHO << 8) + 1;

-  } else {

-    ICMPBUF->icmpchksum += HTONS(ICMP_ECHO << 8);

-  }

-

-  /* Swap IP addresses. */

-  tmp16 = BUF->destipaddr[0];

-  BUF->destipaddr[0] = BUF->srcipaddr[0];

-  BUF->srcipaddr[0] = tmp16;

-  tmp16 = BUF->destipaddr[1];

-  BUF->destipaddr[1] = BUF->srcipaddr[1];

-  BUF->srcipaddr[1] = tmp16;

-

-  UIP_STAT(++uip_stat.icmp.sent);

-  goto send;

-

-  /* End of IPv4 input header processing code. */

-

-

-#if UIP_UDP

-  /* UDP input processing. */

- udp_input:

-  /* UDP processing is really just a hack. We don't do anything to the

-     UDP/IP headers, but let the UDP application do all the hard

-     work. If the application sets uip_slen, it has a packet to

-     send. */

-#if UIP_UDP_CHECKSUMS

-  if(uip_udpchksum() != 0xffff) {

-    UIP_STAT(++uip_stat.udp.drop);

-    UIP_STAT(++uip_stat.udp.chkerr);

-    UIP_LOG("udp: bad checksum.");

-    goto drop;

-  }

-#endif /* UIP_UDP_CHECKSUMS */

-

-  /* Demultiplex this UDP packet between the UDP "connections". */

-  for(uip_udp_conn = &uip_udp_conns[0];

-      uip_udp_conn < &uip_udp_conns[UIP_UDP_CONNS];

-      ++uip_udp_conn) {

-    if(uip_udp_conn->lport != 0 &&

-       UDPBUF->destport == uip_udp_conn->lport &&

-       (uip_udp_conn->rport == 0 ||

-        UDPBUF->srcport == uip_udp_conn->rport) &&

-       BUF->srcipaddr[0] == uip_udp_conn->ripaddr[0] &&

-       BUF->srcipaddr[1] == uip_udp_conn->ripaddr[1]) {

-      goto udp_found;

-    }

-  }

-  goto drop;

-

- udp_found:

-  uip_len = uip_len - 28;

-  uip_appdata = &uip_buf[UIP_LLH_LEN + 28];

-  uip_flags = UIP_NEWDATA;

-  uip_slen = 0;

-  UIP_UDP_APPCALL();

- udp_send:

-  if(uip_slen == 0) {

-    goto drop;

-  }

-  uip_len = uip_slen + 28;

-

-  BUF->len[0] = (uip_len >> 8);

-  BUF->len[1] = (uip_len & 0xff);

-

-  BUF->proto = UIP_PROTO_UDP;

-

-  UDPBUF->udplen = HTONS(uip_slen + 8);

-  UDPBUF->udpchksum = 0;

-#if UIP_UDP_CHECKSUMS

-  /* Calculate UDP checksum. */

-  UDPBUF->udpchksum = ~(uip_udpchksum());

-  if(UDPBUF->udpchksum == 0) {

-    UDPBUF->udpchksum = 0xffff;

-  }

-#endif /* UIP_UDP_CHECKSUMS */

-

-  BUF->srcport  = uip_udp_conn->lport;

-  BUF->destport = uip_udp_conn->rport;

-

-  BUF->srcipaddr[0] = uip_hostaddr[0];

-  BUF->srcipaddr[1] = uip_hostaddr[1];

-  BUF->destipaddr[0] = uip_udp_conn->ripaddr[0];

-  BUF->destipaddr[1] = uip_udp_conn->ripaddr[1];

-

-  uip_appdata = &uip_buf[UIP_LLH_LEN + 40];

-  goto ip_send_nolen;

-#endif /* UIP_UDP */

-

-  /* TCP input processing. */

- tcp_input:

-  UIP_STAT(++uip_stat.tcp.recv);

-

-  /* Start of TCP input header processing code. */

-

-#if 1  // FIXME

-  if(uip_tcpchksum() != 0xffff) {   /* Compute and check the TCP

-				       checksum. */

-    UIP_STAT(++uip_stat.tcp.drop);

-    UIP_STAT(++uip_stat.tcp.chkerr);

-    UIP_LOG("tcp: bad checksum.");

-    goto drop;

-  }

-#endif

-

-  /* Demultiplex this segment. */

-  /* First check any active connections. */

-  for(uip_connr = &uip_conns[0]; uip_connr < &uip_conns[UIP_CONNS]; ++uip_connr) {

-    if(uip_connr->tcpstateflags != CLOSED &&

-       BUF->destport == uip_connr->lport &&

-       BUF->srcport == uip_connr->rport &&

-       BUF->srcipaddr[0] == uip_connr->ripaddr[0] &&

-       BUF->srcipaddr[1] == uip_connr->ripaddr[1]) {

-      goto found;

-    }

-  }

-

-  /* If we didn't find and active connection that expected the packet,

-     either this packet is an old duplicate, or this is a SYN packet

-     destined for a connection in LISTEN. If the SYN flag isn't set,

-     it is an old packet and we send a RST. */

-  if((BUF->flags & TCP_CTL) != TCP_SYN)

-    goto reset;

-

-  tmp16 = BUF->destport;

-  /* Next, check listening connections. */

-  for(c = 0; c < UIP_LISTENPORTS; ++c) {

-    if(tmp16 == uip_listenports[c])

-      goto found_listen;

-  }

-

-  /* No matching connection found, so we send a RST packet. */

-  UIP_STAT(++uip_stat.tcp.synrst);

- reset:

-

-  /* We do not send resets in response to resets. */

-  if(BUF->flags & TCP_RST)

-    goto drop;

-

-  UIP_STAT(++uip_stat.tcp.rst);

-

-  BUF->flags = TCP_RST | TCP_ACK;

-  uip_len = 40;

-  BUF->tcpoffset = 5 << 4;

-

-  /* Flip the seqno and ackno fields in the TCP header. */

-  c = BUF->seqno[3];

-  BUF->seqno[3] = BUF->ackno[3];

-  BUF->ackno[3] = c;

-

-  c = BUF->seqno[2];

-  BUF->seqno[2] = BUF->ackno[2];

-  BUF->ackno[2] = c;

-

-  c = BUF->seqno[1];

-  BUF->seqno[1] = BUF->ackno[1];

-  BUF->ackno[1] = c;

-

-  c = BUF->seqno[0];

-  BUF->seqno[0] = BUF->ackno[0];

-  BUF->ackno[0] = c;

-

-  /* We also have to increase the sequence number we are

-     acknowledging. If the least significant byte overflowed, we need

-     to propagate the carry to the other bytes as well. */

-  if(++BUF->ackno[3] == 0) {

-    if(++BUF->ackno[2] == 0) {

-      if(++BUF->ackno[1] == 0) {

-	++BUF->ackno[0];

-      }

-    }

-  }

-

-  /* Swap port numbers. */

-  tmp16 = BUF->srcport;

-  BUF->srcport = BUF->destport;

-  BUF->destport = tmp16;

-

-  /* Swap IP addresses. */

-  tmp16 = BUF->destipaddr[0];

-  BUF->destipaddr[0] = BUF->srcipaddr[0];

-  BUF->srcipaddr[0] = tmp16;

-  tmp16 = BUF->destipaddr[1];

-  BUF->destipaddr[1] = BUF->srcipaddr[1];

-  BUF->srcipaddr[1] = tmp16;

-

-

-  /* And send out the RST packet! */

-  goto tcp_send_noconn;

-

-  /* This label will be jumped to if we matched the incoming packet

-     with a connection in LISTEN. In that case, we should create a new

-     connection and send a SYNACK in return. */

- found_listen:

-  /* First we check if there are any connections avaliable. Unused

-     connections are kept in the same table as used connections, but

-     unused ones have the tcpstate set to CLOSED. Also, connections in

-     TIME_WAIT are kept track of and we'll use the oldest one if no

-     CLOSED connections are found. Thanks to Eddie C. Dost for a very

-     nice algorithm for the TIME_WAIT search. */

-  uip_connr = 0;

-  for(c = 0; c < UIP_CONNS; ++c) {

-    if(uip_conns[c].tcpstateflags == CLOSED) {

-      uip_connr = &uip_conns[c];

-      break;

-    }

-    if(uip_conns[c].tcpstateflags == TIME_WAIT) {

-      if(uip_connr == 0 ||

-	 uip_conns[c].timer > uip_connr->timer) {

-	uip_connr = &uip_conns[c];

-      }

-    }

-  }

-

-  if(uip_connr == 0) {

-    /* All connections are used already, we drop packet and hope that

-       the remote end will retransmit the packet at a time when we

-       have more spare connections. */

-    UIP_STAT(++uip_stat.tcp.syndrop);

-    UIP_LOG("tcp: found no unused connections.");

-    goto drop;

-  }

-  uip_conn = uip_connr;

-

-  /* Fill in the necessary fields for the new connection. */

-  uip_connr->rto = uip_connr->timer = UIP_RTO;

-  uip_connr->sa = 0;

-  uip_connr->sv = 4;

-  uip_connr->nrtx = 0;

-  uip_connr->lport = BUF->destport;

-  uip_connr->rport = BUF->srcport;

-  uip_connr->ripaddr[0] = BUF->srcipaddr[0];

-  uip_connr->ripaddr[1] = BUF->srcipaddr[1];

-  uip_connr->tcpstateflags = SYN_RCVD;

-

-  uip_connr->snd_nxt[0] = iss[0];

-  uip_connr->snd_nxt[1] = iss[1];

-  uip_connr->snd_nxt[2] = iss[2];

-  uip_connr->snd_nxt[3] = iss[3];

-  uip_connr->len = 1;

-

-  /* rcv_nxt should be the seqno from the incoming packet + 1. */

-  uip_connr->rcv_nxt[3] = BUF->seqno[3];

-  uip_connr->rcv_nxt[2] = BUF->seqno[2];

-  uip_connr->rcv_nxt[1] = BUF->seqno[1];

-  uip_connr->rcv_nxt[0] = BUF->seqno[0];

-  uip_add_rcv_nxt(1);

-

-  /* Parse the TCP MSS option, if present. */

-  if((BUF->tcpoffset & 0xf0) > 0x50) {

-    for(c = 0; c < ((BUF->tcpoffset >> 4) - 5) << 2 ;) {

-      opt = uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + c];

-      if(opt == 0x00) {

-	/* End of options. */	

-	break;

-      } else if(opt == 0x01) {

-	++c;

-	/* NOP option. */

-      } else if(opt == 0x02 &&

-		uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0x04) {

-	/* An MSS option with the right option length. */	

-	tmp16 = ((u16_t)uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 2 + c] << 8) |

-	  (u16_t)uip_buf[40 + UIP_LLH_LEN + 3 + c];

-	uip_connr->initialmss = uip_connr->mss =

-	  tmp16 > UIP_TCP_MSS? UIP_TCP_MSS: tmp16;

-	

-	/* And we are done processing options. */

-	break;

-      } else {

-	/* All other options have a length field, so that we easily

-	   can skip past them. */

-	if(uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0) {

-	  /* If the length field is zero, the options are malformed

-	     and we don't process them further. */

-	  break;

-	}

-	c += uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c];

-      }

-    }

-  }

-

-  /* Our response will be a SYNACK. */

-#if UIP_ACTIVE_OPEN

- tcp_send_synack:

-  BUF->flags = TCP_ACK;

-

- tcp_send_syn:

-  BUF->flags |= TCP_SYN;

-#else /* UIP_ACTIVE_OPEN */

- tcp_send_synack:

-  BUF->flags = TCP_SYN | TCP_ACK;

-#endif /* UIP_ACTIVE_OPEN */

-

-  /* We send out the TCP Maximum Segment Size option with our

-     SYNACK. */

-  BUF->optdata[0] = 2;

-  BUF->optdata[1] = 4;

-  BUF->optdata[2] = (UIP_TCP_MSS) / 256;

-  BUF->optdata[3] = (UIP_TCP_MSS) & 255;

-  uip_len = 44;

-  BUF->tcpoffset = 6 << 4;

-  goto tcp_send;

-

-  /* This label will be jumped to if we found an active connection. */

- found:

-  uip_conn = uip_connr;

-  uip_flags = 0;

-

-  /* We do a very naive form of TCP reset processing; we just accept

-     any RST and kill our connection. We should in fact check if the

-     sequence number of this reset is wihtin our advertised window

-     before we accept the reset. */

-  if(BUF->flags & TCP_RST) {

-    uip_connr->tcpstateflags = CLOSED;

-    UIP_LOG("tcp: got reset, aborting connection.");

-    uip_flags = UIP_ABORT;

-    UIP_APPCALL();

-    goto drop;

-  }

-  /* Calculated the length of the data, if the application has sent

-     any data to us. */

-  c = (BUF->tcpoffset >> 4) << 2;

-  /* uip_len will contain the length of the actual TCP data. This is

-     calculated by subtracing the length of the TCP header (in

-     c) and the length of the IP header (20 bytes). */

-  uip_len = uip_len - c - 20;

-

-  /* First, check if the sequence number of the incoming packet is

-     what we're expecting next. If not, we send out an ACK with the

-     correct numbers in. */

-  if(uip_len > 0 &&

-     (BUF->seqno[0] != uip_connr->rcv_nxt[0] ||

-      BUF->seqno[1] != uip_connr->rcv_nxt[1] ||

-      BUF->seqno[2] != uip_connr->rcv_nxt[2] ||

-      BUF->seqno[3] != uip_connr->rcv_nxt[3])) {

-    goto tcp_send_ack;

-  }

-

-  /* Next, check if the incoming segment acknowledges any outstanding

-     data. If so, we update the sequence number, reset the length of

-     the outstanding data, calculate RTT estimations, and reset the

-     retransmission timer. */

-  if((BUF->flags & TCP_ACK) && uip_outstanding(uip_connr)) {

-    uip_add32(uip_connr->snd_nxt, uip_connr->len);

-    if(BUF->ackno[0] == uip_acc32[0] &&

-       BUF->ackno[1] == uip_acc32[1] &&

-       BUF->ackno[2] == uip_acc32[2] &&

-       BUF->ackno[3] == uip_acc32[3]) {

-      /* Update sequence number. */

-      uip_connr->snd_nxt[0] = uip_acc32[0];

-      uip_connr->snd_nxt[1] = uip_acc32[1];

-      uip_connr->snd_nxt[2] = uip_acc32[2];

-      uip_connr->snd_nxt[3] = uip_acc32[3];

-	

-

-      /* Do RTT estimation, unless we have done retransmissions. */

-      if(uip_connr->nrtx == 0) {

-	signed char m;

-	m = uip_connr->rto - uip_connr->timer;

-	/* This is taken directly from VJs original code in his paper */

-	m = m - (uip_connr->sa >> 3);

-	uip_connr->sa += m;

-	if(m < 0) {

-	  m = -m;

-	}

-	m = m - (uip_connr->sv >> 2);

-	uip_connr->sv += m;

-	uip_connr->rto = (uip_connr->sa >> 3) + uip_connr->sv;

-

-      }

-      /* Set the acknowledged flag. */

-      uip_flags = UIP_ACKDATA;

-      /* Reset the retransmission timer. */

-      uip_connr->timer = uip_connr->rto;

-    }

-

-  }

-

-  /* Do different things depending on in what state the connection is. */

-  switch(uip_connr->tcpstateflags & TS_MASK) {

-    /* CLOSED and LISTEN are not handled here. CLOSE_WAIT is not

-	implemented, since we force the application to close when the

-	peer sends a FIN (hence the application goes directly from

-	ESTABLISHED to LAST_ACK). */

-  case SYN_RCVD:

-    /* In SYN_RCVD we have sent out a SYNACK in response to a SYN, and

-       we are waiting for an ACK that acknowledges the data we sent

-       out the last time. Therefore, we want to have the UIP_ACKDATA

-       flag set. If so, we enter the ESTABLISHED state. */

-    if(uip_flags & UIP_ACKDATA) {

-      uip_connr->tcpstateflags = ESTABLISHED;

-      uip_flags = UIP_CONNECTED;

-      uip_connr->len = 0;

-      if(uip_len > 0) {

-        uip_flags |= UIP_NEWDATA;

-        uip_add_rcv_nxt(uip_len);

-      }

-      uip_slen = 0;

-      UIP_APPCALL();

-      goto appsend;

-    }

-    goto drop;

-#if UIP_ACTIVE_OPEN

-  case SYN_SENT:

-    /* In SYN_SENT, we wait for a SYNACK that is sent in response to

-       our SYN. The rcv_nxt is set to sequence number in the SYNACK

-       plus one, and we send an ACK. We move into the ESTABLISHED

-       state. */

-    if((uip_flags & UIP_ACKDATA) &&

-       BUF->flags == (TCP_SYN | TCP_ACK)) {

-

-      /* Parse the TCP MSS option, if present. */

-      if((BUF->tcpoffset & 0xf0) > 0x50) {

-	for(c = 0; c < ((BUF->tcpoffset >> 4) - 5) << 2 ;) {

-	  opt = uip_buf[40 + UIP_LLH_LEN + c];

-	  if(opt == 0x00) {

-	    /* End of options. */	

-	    break;

-	  } else if(opt == 0x01) {

-	    ++c;

-	    /* NOP option. */

-	  } else if(opt == 0x02 &&

-		    uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0x04) {

-	    /* An MSS option with the right option length. */

-	    tmp16 = (uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 2 + c] << 8) |

-	      uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 3 + c];

-	    uip_connr->initialmss =

-	      uip_connr->mss = tmp16 > UIP_TCP_MSS? UIP_TCP_MSS: tmp16;

-

-	    /* And we are done processing options. */

-	    break;

-	  } else {

-	    /* All other options have a length field, so that we easily

-	       can skip past them. */

-	    if(uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0) {

-	      /* If the length field is zero, the options are malformed

-		 and we don't process them further. */

-	      break;

-	    }

-	    c += uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c];

-	  }

-	}

-      }

-      uip_connr->tcpstateflags = ESTABLISHED;

-      uip_connr->rcv_nxt[0] = BUF->seqno[0];

-      uip_connr->rcv_nxt[1] = BUF->seqno[1];

-      uip_connr->rcv_nxt[2] = BUF->seqno[2];

-      uip_connr->rcv_nxt[3] = BUF->seqno[3];

-      uip_add_rcv_nxt(1);

-      uip_flags = UIP_CONNECTED | UIP_NEWDATA;

-      uip_connr->len = 0;

-      uip_len = 0;

-      uip_slen = 0;

-      UIP_APPCALL();

-      goto appsend;

-    }

-    goto reset;

-#endif /* UIP_ACTIVE_OPEN */

-

-  case ESTABLISHED:

-    /* In the ESTABLISHED state, we call upon the application to feed

-    data into the uip_buf. If the UIP_ACKDATA flag is set, the

-    application should put new data into the buffer, otherwise we are

-    retransmitting an old segment, and the application should put that

-    data into the buffer.

-

-    If the incoming packet is a FIN, we should close the connection on

-    this side as well, and we send out a FIN and enter the LAST_ACK

-    state. We require that there is no outstanding data; otherwise the

-    sequence numbers will be screwed up. */

-

-    if(BUF->flags & TCP_FIN) {

-      if(uip_outstanding(uip_connr)) {

-	goto drop;

-      }

-      uip_add_rcv_nxt(1 + uip_len);

-      uip_flags = UIP_CLOSE;

-      if(uip_len > 0) {

-	uip_flags |= UIP_NEWDATA;

-      }

-      UIP_APPCALL();

-      uip_connr->len = 1;

-      uip_connr->tcpstateflags = LAST_ACK;

-      uip_connr->nrtx = 0;

-    tcp_send_finack:

-      BUF->flags = TCP_FIN | TCP_ACK;

-      goto tcp_send_nodata;

-    }

-

-    /* Check the URG flag. If this is set, the segment carries urgent

-       data that we must pass to the application. */

-    if(BUF->flags & TCP_URG) {

-#if UIP_URGDATA > 0

-      uip_urglen = (BUF->urgp[0] << 8) | BUF->urgp[1];

-      if(uip_urglen > uip_len) {

-	/* There is more urgent data in the next segment to come. */

-	uip_urglen = uip_len;

-      }

-      uip_add_rcv_nxt(uip_urglen);

-      uip_len -= uip_urglen;

-      uip_urgdata = uip_appdata;

-      uip_appdata += uip_urglen;

-    } else {

-      uip_urglen = 0;

-#endif /* UIP_URGDATA > 0 */

-      uip_appdata += (BUF->urgp[0] << 8) | BUF->urgp[1];

-      uip_len -= (BUF->urgp[0] << 8) | BUF->urgp[1];

-    }

-

-

-    /* If uip_len > 0 we have TCP data in the packet, and we flag this

-       by setting the UIP_NEWDATA flag and update the sequence number

-       we acknowledge. If the application has stopped the dataflow

-       using uip_stop(), we must not accept any data packets from the

-       remote host. */

-    if(uip_len > 0 && !(uip_connr->tcpstateflags & UIP_STOPPED)) {

-      uip_flags |= UIP_NEWDATA;

-      uip_add_rcv_nxt(uip_len);

-    }

-

-    /* Check if the available buffer space advertised by the other end

-       is smaller than the initial MSS for this connection. If so, we

-       set the current MSS to the window size to ensure that the

-       application does not send more data than the other end can

-       handle.

-

-       If the remote host advertises a zero window, we set the MSS to

-       the initial MSS so that the application will send an entire MSS

-       of data. This data will not be acknowledged by the receiver,

-       and the application will retransmit it. This is called the

-       "persistent timer" and uses the retransmission mechanim.

-    */

-    tmp16 = ((u16_t)BUF->wnd[0] << 8) + (u16_t)BUF->wnd[1];

-    if(tmp16 > uip_connr->initialmss ||

-       tmp16 == 0) {

-      tmp16 = uip_connr->initialmss;

-    }

-    uip_connr->mss = tmp16;

-

-    /* If this packet constitutes an ACK for outstanding data (flagged

-       by the UIP_ACKDATA flag, we should call the application since it

-       might want to send more data. If the incoming packet had data

-       from the peer (as flagged by the UIP_NEWDATA flag), the

-       application must also be notified.

-

-       When the application is called, the global variable uip_len

-       contains the length of the incoming data. The application can

-       access the incoming data through the global pointer

-       uip_appdata, which usually points 40 bytes into the uip_buf

-       array.

-

-       If the application wishes to send any data, this data should be

-       put into the uip_appdata and the length of the data should be

-       put into uip_len. If the application don't have any data to

-       send, uip_len must be set to 0. */

-    if(uip_flags & (UIP_NEWDATA | UIP_ACKDATA)) {

-      uip_slen = 0;

-      UIP_APPCALL();

-

-    appsend:

-

-      if(uip_flags & UIP_ABORT) {

-	uip_slen = 0;

-	uip_connr->tcpstateflags = CLOSED;

-	BUF->flags = TCP_RST | TCP_ACK;

-	goto tcp_send_nodata;

-      }

-

-      if(uip_flags & UIP_CLOSE) {

-	uip_slen = 0;

-	uip_connr->len = 1;

-	uip_connr->tcpstateflags = FIN_WAIT_1;

-	uip_connr->nrtx = 0;

-	BUF->flags = TCP_FIN | TCP_ACK;

-	goto tcp_send_nodata;	

-      }

-

-      /* If uip_slen > 0, the application has data to be sent. */

-      if(uip_slen > 0) {

-

-	/* If the connection has acknowledged data, the contents of

-	   the ->len variable should be discarded. */

-	if((uip_flags & UIP_ACKDATA) != 0) {

-	  uip_connr->len = 0;

-	}

-

-	/* If the ->len variable is non-zero the connection has

-	   already data in transit and cannot send anymore right

-	   now. */

-	if(uip_connr->len == 0) {

-

-	  /* The application cannot send more than what is allowed by

-	     the mss (the minumum of the MSS and the available

-	     window). */

-	  if(uip_slen > uip_connr->mss) {

-	    uip_slen = uip_connr->mss;

-	  }

-

-	  /* Remember how much data we send out now so that we know

-	     when everything has been acknowledged. */

-	  uip_connr->len = uip_slen;

-	} else {

-

-	  /* If the application already had unacknowledged data, we

-	     make sure that the application does not send (i.e.,

-	     retransmit) out more than it previously sent out. */

-	  uip_slen = uip_connr->len;

-	}

-      } else {

-	uip_connr->len = 0;

-      }

-      uip_connr->nrtx = 0;

-    apprexmit:

-      uip_appdata = uip_sappdata;

-

-      /* If the application has data to be sent, or if the incoming

-         packet had new data in it, we must send out a packet. */

-      if(uip_slen > 0 && uip_connr->len > 0) {

-	/* Add the length of the IP and TCP headers. */

-	uip_len = uip_connr->len + UIP_TCPIP_HLEN;

-	/* We always set the ACK flag in response packets. */

-	BUF->flags = TCP_ACK | TCP_PSH;

-	/* Send the packet. */

-	goto tcp_send_noopts;

-      }

-      /* If there is no data to send, just send out a pure ACK if

-	 there is newdata. */

-      if(uip_flags & UIP_NEWDATA) {

-	uip_len = UIP_TCPIP_HLEN;

-	BUF->flags = TCP_ACK;

-	goto tcp_send_noopts;

-      }

-    }

-    goto drop;

-  case LAST_ACK:

-    /* We can close this connection if the peer has acknowledged our

-       FIN. This is indicated by the UIP_ACKDATA flag. */

-    if(uip_flags & UIP_ACKDATA) {

-      uip_connr->tcpstateflags = CLOSED;

-      uip_flags = UIP_CLOSE;

-      UIP_APPCALL();

-    }

-    break;

-

-  case FIN_WAIT_1:

-    /* The application has closed the connection, but the remote host

-       hasn't closed its end yet. Thus we do nothing but wait for a

-       FIN from the other side. */

-    if(uip_len > 0) {

-      uip_add_rcv_nxt(uip_len);

-    }

-    if(BUF->flags & TCP_FIN) {

-      if(uip_flags & UIP_ACKDATA) {

-	uip_connr->tcpstateflags = TIME_WAIT;

-	uip_connr->timer = 0;

-	uip_connr->len = 0;

-      } else {

-	uip_connr->tcpstateflags = CLOSING;

-      }

-      uip_add_rcv_nxt(1);

-      uip_flags = UIP_CLOSE;

-      UIP_APPCALL();

-      goto tcp_send_ack;

-    } else if(uip_flags & UIP_ACKDATA) {

-      uip_connr->tcpstateflags = FIN_WAIT_2;

-      uip_connr->len = 0;

-      goto drop;

-    }

-    if(uip_len > 0) {

-      goto tcp_send_ack;

-    }

-    goto drop;

-

-  case FIN_WAIT_2:

-    if(uip_len > 0) {

-      uip_add_rcv_nxt(uip_len);

-    }

-    if(BUF->flags & TCP_FIN) {

-      uip_connr->tcpstateflags = TIME_WAIT;

-      uip_connr->timer = 0;

-      uip_add_rcv_nxt(1);

-      uip_flags = UIP_CLOSE;

-      UIP_APPCALL();

-      goto tcp_send_ack;

-    }

-    if(uip_len > 0) {

-      goto tcp_send_ack;

-    }

-    goto drop;

-

-  case TIME_WAIT:

-    goto tcp_send_ack;

-

-  case CLOSING:

-    if(uip_flags & UIP_ACKDATA) {

-      uip_connr->tcpstateflags = TIME_WAIT;

-      uip_connr->timer = 0;

-    }

-  }

-  goto drop;

-

-

-  /* We jump here when we are ready to send the packet, and just want

-     to set the appropriate TCP sequence numbers in the TCP header. */

- tcp_send_ack:

-  BUF->flags = TCP_ACK;

- tcp_send_nodata:

-  uip_len = 40;

- tcp_send_noopts:

-  BUF->tcpoffset = 5 << 4;

- tcp_send:

-  /* We're done with the input processing. We are now ready to send a

-     reply. Our job is to fill in all the fields of the TCP and IP

-     headers before calculating the checksum and finally send the

-     packet. */

-  BUF->ackno[0] = uip_connr->rcv_nxt[0];

-  BUF->ackno[1] = uip_connr->rcv_nxt[1];

-  BUF->ackno[2] = uip_connr->rcv_nxt[2];

-  BUF->ackno[3] = uip_connr->rcv_nxt[3];

-

-  BUF->seqno[0] = uip_connr->snd_nxt[0];

-  BUF->seqno[1] = uip_connr->snd_nxt[1];

-  BUF->seqno[2] = uip_connr->snd_nxt[2];

-  BUF->seqno[3] = uip_connr->snd_nxt[3];

-

-  BUF->proto = UIP_PROTO_TCP;

-

-  BUF->srcport  = uip_connr->lport;

-  BUF->destport = uip_connr->rport;

-

-  BUF->srcipaddr[0] = uip_hostaddr[0];

-  BUF->srcipaddr[1] = uip_hostaddr[1];

-  BUF->destipaddr[0] = uip_connr->ripaddr[0];

-  BUF->destipaddr[1] = uip_connr->ripaddr[1];

-

-

-  if(uip_connr->tcpstateflags & UIP_STOPPED) {

-    /* If the connection has issued uip_stop(), we advertise a zero

-       window so that the remote host will stop sending data. */

-    BUF->wnd[0] = BUF->wnd[1] = 0;

-  } else {

-    BUF->wnd[0] = ((UIP_RECEIVE_WINDOW) >> 8);

-    BUF->wnd[1] = ((UIP_RECEIVE_WINDOW) & 0xff);

-  }

-

- tcp_send_noconn:

-

-  BUF->len[0] = (uip_len >> 8);

-  BUF->len[1] = (uip_len & 0xff);

-

-  /* Calculate TCP checksum. */

-  BUF->tcpchksum = 0;

-  BUF->tcpchksum = ~(uip_tcpchksum());

-

-

-#if UIP_UDP

- ip_send_nolen:

-#endif

-

-  BUF->vhl = 0x45;

-  BUF->tos = 0;

-  BUF->ipoffset[0] = BUF->ipoffset[1] = 0;

-  BUF->ttl  = UIP_TTL;

-  ++ipid;

-  BUF->ipid[0] = ipid >> 8;

-  BUF->ipid[1] = ipid & 0xff;

-

-  /* Calculate IP checksum. */

-  BUF->ipchksum = 0;

-  BUF->ipchksum = ~(uip_ipchksum());

-

-  UIP_STAT(++uip_stat.tcp.sent);

- send:

-  UIP_STAT(++uip_stat.ip.sent);

-  /* Return and let the caller do the actual transmission. */

-  return;

- drop:

-  uip_len = 0;

-  return;

-}

-/*-----------------------------------------------------------------------------------*/

-u16_t

-htons(u16_t val)

-{

-  return HTONS(val);

-}

-/*-----------------------------------------------------------------------------------*/

-/** @} */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip.h
deleted file mode 100644
index 0ff1b2a..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip.h
+++ /dev/null
@@ -1,1060 +0,0 @@
-/**

- * \addtogroup uip

- * @{

- */

-

-/**

- * \file

- * Header file for the uIP TCP/IP stack.

- * \author Adam Dunkels <adam@dunkels.com>

- *

- * The uIP TCP/IP stack header file contains definitions for a number

- * of C macros that are used by uIP programs as well as internal uIP

- * structures, TCP/IP header structures and function declarations.

- *

- */

-

-

-/*

- * Copyright (c) 2001-2003, Adam Dunkels.

- * All rights reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in the

- *    documentation and/or other materials provided with the distribution.

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uip.h,v 1.36.2.7 2003/10/07 13:47:51 adam Exp $

- *

- */

-

-#ifndef __UIP_H__

-#define __UIP_H__

-

-#include "uipopt.h"

-

-/*-----------------------------------------------------------------------------------*/

-/* First, the functions that should be called from the

- * system. Initialization, the periodic timer and incoming packets are

- * handled by the following three functions.

- */

-

-/**

- * \defgroup uipconffunc uIP configuration functions

- * @{

- *

- * The uIP configuration functions are used for setting run-time

- * parameters in uIP such as IP addresses.

- */

-

-/**

- * Set the IP address of this host.

- *

- * The IP address is represented as a 4-byte array where the first

- * octet of the IP address is put in the first member of the 4-byte

- * array.

- *

- * \param addr A pointer to a 4-byte representation of the IP address.

- *

- * \hideinitializer

- */

-#define uip_sethostaddr(addr) do { uip_hostaddr[0] = addr[0]; \

-                              uip_hostaddr[1] = addr[1]; } while(0)

-

-/**

- * Get the IP address of this host.

- *

- * The IP address is represented as a 4-byte array where the first

- * octet of the IP address is put in the first member of the 4-byte

- * array.

- *

- * \param addr A pointer to a 4-byte array that will be filled in with

- * the currently configured IP address.

- *

- * \hideinitializer

- */

-#define uip_gethostaddr(addr) do { addr[0] = uip_hostaddr[0]; \

-                              addr[1] = uip_hostaddr[1]; } while(0)

-

-/** @} */

-

-/**

- * \defgroup uipinit uIP initialization functions

- * @{

- *

- * The uIP initialization functions are used for booting uIP.

- */

-

-/**

- * uIP initialization function.

- *

- * This function should be called at boot up to initilize the uIP

- * TCP/IP stack.

- */

-void uip_init(void);

-

-/** @} */

-

-/**

- * \defgroup uipdevfunc uIP device driver functions

- * @{

- *

- * These functions are used by a network device driver for interacting

- * with uIP.

- */

-

-/**

- * Process an incoming packet.

- *

- * This function should be called when the device driver has received

- * a packet from the network. The packet from the device driver must

- * be present in the uip_buf buffer, and the length of the packet

- * should be placed in the uip_len variable.

- *

- * When the function returns, there may be an outbound packet placed

- * in the uip_buf packet buffer. If so, the uip_len variable is set to

- * the length of the packet. If no packet is to be sent out, the

- * uip_len variable is set to 0.

- *

- * The usual way of calling the function is presented by the source

- * code below.

- \code

-  uip_len = devicedriver_poll();

-  if(uip_len > 0) {

-    uip_input();

-    if(uip_len > 0) {

-      devicedriver_send();

-    }

-  }

- \endcode

- *

- * \note If you are writing a uIP device driver that needs ARP

- * (Address Resolution Protocol), e.g., when running uIP over

- * Ethernet, you will need to call the uIP ARP code before calling

- * this function:

- \code

-  #define BUF ((struct uip_eth_hdr *)&uip_buf[0])

-  uip_len = ethernet_devicedrver_poll();

-  if(uip_len > 0) {

-    if(BUF->type == HTONS(UIP_ETHTYPE_IP)) {

-      uip_arp_ipin();

-      uip_input();

-      if(uip_len > 0) {

-        uip_arp_out();

-	ethernet_devicedriver_send();

-      }

-    } else if(BUF->type == HTONS(UIP_ETHTYPE_ARP)) {

-      uip_arp_arpin();

-      if(uip_len > 0) {

-	ethernet_devicedriver_send();

-      }

-    }

- \endcode

- *

- * \hideinitializer

- */

-#define uip_input()        uip_process(UIP_DATA)

-

-/**

- * Periodic processing for a connection identified by its number.

- *

- * This function does the necessary periodic processing (timers,

- * polling) for a uIP TCP conneciton, and should be called when the

- * periodic uIP timer goes off. It should be called for every

- * connection, regardless of whether they are open of closed.

- *

- * When the function returns, it may have an outbound packet waiting

- * for service in the uIP packet buffer, and if so the uip_len

- * variable is set to a value larger than zero. The device driver

- * should be called to send out the packet.

- *

- * The ususal way of calling the function is through a for() loop like

- * this:

- \code

-  for(i = 0; i < UIP_CONNS; ++i) {

-    uip_periodic(i);

-    if(uip_len > 0) {

-      devicedriver_send();

-    }

-  }

- \endcode

- *

- * \note If you are writing a uIP device driver that needs ARP

- * (Address Resolution Protocol), e.g., when running uIP over

- * Ethernet, you will need to call the uip_arp_out() function before

- * calling the device driver:

- \code

-  for(i = 0; i < UIP_CONNS; ++i) {

-    uip_periodic(i);

-    if(uip_len > 0) {

-      uip_arp_out();

-      ethernet_devicedriver_send();

-    }

-  }

- \endcode

- *

- * \param conn The number of the connection which is to be periodically polled.

- *

- * \hideinitializer

- */

-#define uip_periodic(conn) do { uip_conn = &uip_conns[conn]; \

-                                uip_process(UIP_TIMER); } while (0)

-

-/**

- * Periodic processing for a connection identified by a pointer to its structure.

- *

- * Same as uip_periodic() but takes a pointer to the actual uip_conn

- * struct instead of an integer as its argument. This function can be

- * used to force periodic processing of a specific connection.

- *

- * \param conn A pointer to the uip_conn struct for the connection to

- * be processed.

- *

- * \hideinitializer

- */

-#define uip_periodic_conn(conn) do { uip_conn = conn; \

-                                     uip_process(UIP_TIMER); } while (0)

-

-#if UIP_UDP

-/**

- * Periodic processing for a UDP connection identified by its number.

- *

- * This function is essentially the same as uip_prerioic(), but for

- * UDP connections. It is called in a similar fashion as the

- * uip_periodic() function:

- \code

-  for(i = 0; i < UIP_UDP_CONNS; i++) {

-    uip_udp_periodic(i);

-    if(uip_len > 0) {

-      devicedriver_send();

-    }

-  }

- \endcode

- *

- * \note As for the uip_periodic() function, special care has to be

- * taken when using uIP together with ARP and Ethernet:

- \code

-  for(i = 0; i < UIP_UDP_CONNS; i++) {

-    uip_udp_periodic(i);

-    if(uip_len > 0) {

-      uip_arp_out();

-      ethernet_devicedriver_send();

-    }

-  }

- \endcode

- *

- * \param conn The number of the UDP connection to be processed.

- *

- * \hideinitializer

- */

-#define uip_udp_periodic(conn) do { uip_udp_conn = &uip_udp_conns[conn]; \

-                                uip_process(UIP_UDP_TIMER); } while (0)

-

-/**

- * Periodic processing for a UDP connection identified by a pointer to

- * its structure.

- *

- * Same as uip_udp_periodic() but takes a pointer to the actual

- * uip_conn struct instead of an integer as its argument. This

- * function can be used to force periodic processing of a specific

- * connection.

- *

- * \param conn A pointer to the uip_udp_conn struct for the connection

- * to be processed.

- *

- * \hideinitializer

- */

-#define uip_udp_periodic_conn(conn) do { uip_udp_conn = conn; \

-                                         uip_process(UIP_UDP_TIMER); } while (0)

-

-

-#endif /* UIP_UDP */

-

-/**

- * The uIP packet buffer.

- *

- * The uip_buf array is used to hold incoming and outgoing

- * packets. The device driver should place incoming data into this

- * buffer. When sending data, the device driver should read the link

- * level headers and the TCP/IP headers from this buffer. The size of

- * the link level headers is configured by the UIP_LLH_LEN define.

- *

- * \note The application data need not be placed in this buffer, so

- * the device driver must read it from the place pointed to by the

- * uip_appdata pointer as illustrated by the following example:

- \code

- void

- devicedriver_send(void)

- {

-    hwsend(&uip_buf[0], UIP_LLH_LEN);

-    hwsend(&uip_buf[UIP_LLH_LEN], 40);

-    hwsend(uip_appdata, uip_len - 40 - UIP_LLH_LEN);

- }

- \endcode

- */

-extern u8_t uip_buf[UIP_BUFSIZE+2]; /*_RB_ __attribute__ ((aligned (4)));*/

-

-/** @} */

-

-/*-----------------------------------------------------------------------------------*/

-/* Functions that are used by the uIP application program. Opening and

- * closing connections, sending and receiving data, etc. is all

- * handled by the functions below.

-*/

-/**

- * \defgroup uipappfunc uIP application functions

- * @{

- *

- * Functions used by an application running of top of uIP.

- */

-

-/**

- * Start listening to the specified port.

- *

- * \note Since this function expects the port number in network byte

- * order, a conversion using HTONS() or htons() is necessary.

- *

- \code

- uip_listen(HTONS(80));

- \endcode

- *

- * \param port A 16-bit port number in network byte order.

- */

-void uip_listen(u16_t port);

-

-/**

- * Stop listening to the specified port.

- *

- * \note Since this function expects the port number in network byte

- * order, a conversion using HTONS() or htons() is necessary.

- *

- \code

- uip_unlisten(HTONS(80));

- \endcode

- *

- * \param port A 16-bit port number in network byte order.

- */

-void uip_unlisten(u16_t port);

-

-/**

- * Connect to a remote host using TCP.

- *

- * This function is used to start a new connection to the specified

- * port on the specied host. It allocates a new connection identifier,

- * sets the connection to the SYN_SENT state and sets the

- * retransmission timer to 0. This will cause a TCP SYN segment to be

- * sent out the next time this connection is periodically processed,

- * which usually is done within 0.5 seconds after the call to

- * uip_connect().

- *

- * \note This function is avaliable only if support for active open

- * has been configured by defining UIP_ACTIVE_OPEN to 1 in uipopt.h.

- *

- * \note Since this function requires the port number to be in network

- * byte order, a convertion using HTONS() or htons() is necessary.

- *

- \code

- u16_t ipaddr[2];

-

- uip_ipaddr(ipaddr, 192,168,1,2);

- uip_connect(ipaddr, HTONS(80));

- \endcode

- *

- * \param ripaddr A pointer to a 4-byte array representing the IP

- * address of the remote hot.

- *

- * \param port A 16-bit port number in network byte order.

- *

- * \return A pointer to the uIP connection identifier for the new connection,

- * or NULL if no connection could be allocated.

- *

- */

-struct uip_conn *uip_connect(u16_t *ripaddr, u16_t port);

-

-

-

-/**

- * \internal

- *

- * Check if a connection has outstanding (i.e., unacknowledged) data.

- *

- * \param conn A pointer to the uip_conn structure for the connection.

- *

- * \hideinitializer

- */

-#define uip_outstanding(conn) ((conn)->len)

-

-/**

- * Send data on the current connection.

- *

- * This function is used to send out a single segment of TCP

- * data. Only applications that have been invoked by uIP for event

- * processing can send data.

- *

- * The amount of data that actually is sent out after a call to this

- * funcion is determined by the maximum amount of data TCP allows. uIP

- * will automatically crop the data so that only the appropriate

- * amount of data is sent. The function uip_mss() can be used to query

- * uIP for the amount of data that actually will be sent.

- *

- * \note This function does not guarantee that the sent data will

- * arrive at the destination. If the data is lost in the network, the

- * application will be invoked with the uip_rexmit() event being

- * set. The application will then have to resend the data using this

- * function.

- *

- * \param data A pointer to the data which is to be sent.

- *

- * \param len The maximum amount of data bytes to be sent.

- *

- * \hideinitializer

- */

-#define uip_send(data, len) do { uip_sappdata = (data); uip_slen = (len);} while(0)

-

-/**

- * The length of any incoming data that is currently avaliable (if avaliable)

- * in the uip_appdata buffer.

- *

- * The test function uip_data() must first be used to check if there

- * is any data available at all.

- *

- * \hideinitializer

- */

-#define uip_datalen()       uip_len

-

-/**

- * The length of any out-of-band data (urgent data) that has arrived

- * on the connection.

- *

- * \note The configuration parameter UIP_URGDATA must be set for this

- * function to be enabled.

- *

- * \hideinitializer

- */

-#define uip_urgdatalen()    uip_urglen

-

-/**

- * Close the current connection.

- *

- * This function will close the current connection in a nice way.

- *

- * \hideinitializer

- */

-#define uip_close()         (uip_flags = UIP_CLOSE)

-

-/**

- * Abort the current connection.

- *

- * This function will abort (reset) the current connection, and is

- * usually used when an error has occured that prevents using the

- * uip_close() function.

- *

- * \hideinitializer

- */

-#define uip_abort()         (uip_flags = UIP_ABORT)

-

-/**

- * Tell the sending host to stop sending data.

- *

- * This function will close our receiver's window so that we stop

- * receiving data for the current connection.

- *

- * \hideinitializer

- */

-#define uip_stop()          (uip_conn->tcpstateflags |= UIP_STOPPED)

-

-/**

- * Find out if the current connection has been previously stopped with

- * uip_stop().

- *

- * \hideinitializer

- */

-#define uip_stopped(conn)   ((conn)->tcpstateflags & UIP_STOPPED)

-

-/**

- * Restart the current connection, if is has previously been stopped

- * with uip_stop().

- *

- * This function will open the receiver's window again so that we

- * start receiving data for the current connection.

- *

- * \hideinitializer

- */

-#define uip_restart()         do { uip_flags |= UIP_NEWDATA; \

-                                   uip_conn->tcpstateflags &= ~UIP_STOPPED; \

-                              } while(0)

-

-

-/* uIP tests that can be made to determine in what state the current

-   connection is, and what the application function should do. */

-

-/**

- * Is new incoming data available?

- *

- * Will reduce to non-zero if there is new data for the application

- * present at the uip_appdata pointer. The size of the data is

- * avaliable through the uip_len variable.

- *

- * \hideinitializer

- */

-#define uip_newdata()   (uip_flags & UIP_NEWDATA)

-

-/**

- * Has previously sent data been acknowledged?

- *

- * Will reduce to non-zero if the previously sent data has been

- * acknowledged by the remote host. This means that the application

- * can send new data.

- *

- * \hideinitializer

- */

-#define uip_acked()   (uip_flags & UIP_ACKDATA)

-

-/**

- * Has the connection just been connected?

- *

- * Reduces to non-zero if the current connection has been connected to

- * a remote host. This will happen both if the connection has been

- * actively opened (with uip_connect()) or passively opened (with

- * uip_listen()).

- *

- * \hideinitializer

- */

-#define uip_connected() (uip_flags & UIP_CONNECTED)

-

-/**

- * Has the connection been closed by the other end?

- *

- * Is non-zero if the connection has been closed by the remote

- * host. The application may then do the necessary clean-ups.

- *

- * \hideinitializer

- */

-#define uip_closed()    (uip_flags & UIP_CLOSE)

-

-/**

- * Has the connection been aborted by the other end?

- *

- * Non-zero if the current connection has been aborted (reset) by the

- * remote host.

- *

- * \hideinitializer

- */

-#define uip_aborted()    (uip_flags & UIP_ABORT)

-

-/**

- * Has the connection timed out?

- *

- * Non-zero if the current connection has been aborted due to too many

- * retransmissions.

- *

- * \hideinitializer

- */

-#define uip_timedout()    (uip_flags & UIP_TIMEDOUT)

-

-/**

- * Do we need to retransmit previously data?

- *

- * Reduces to non-zero if the previously sent data has been lost in

- * the network, and the application should retransmit it. The

- * application should send the exact same data as it did the last

- * time, using the uip_send() function.

- *

- * \hideinitializer

- */

-#define uip_rexmit()     (uip_flags & UIP_REXMIT)

-

-/**

- * Is the connection being polled by uIP?

- *

- * Is non-zero if the reason the application is invoked is that the

- * current connection has been idle for a while and should be

- * polled.

- *

- * The polling event can be used for sending data without having to

- * wait for the remote host to send data.

- *

- * \hideinitializer

- */

-#define uip_poll()       (uip_flags & UIP_POLL)

-

-/**

- * Get the initial maxium segment size (MSS) of the current

- * connection.

- *

- * \hideinitializer

- */

-#define uip_initialmss()             (uip_conn->initialmss)

-

-/**

- * Get the current maxium segment size that can be sent on the current

- * connection.

- *

- * The current maxiumum segment size that can be sent on the

- * connection is computed from the receiver's window and the MSS of

- * the connection (which also is available by calling

- * uip_initialmss()).

- *

- * \hideinitializer

- */

-#define uip_mss()             (uip_conn->mss)

-

-/**

- * Set up a new UDP connection.

- *

- * \param ripaddr A pointer to a 4-byte structure representing the IP

- * address of the remote host.

- *

- * \param rport The remote port number in network byte order.

- *

- * \return The uip_udp_conn structure for the new connection or NULL

- * if no connection could be allocated.

- */

-struct uip_udp_conn *uip_udp_new(u16_t *ripaddr, u16_t rport);

-

-/**

- * Removed a UDP connection.

- *

- * \param conn A pointer to the uip_udp_conn structure for the connection.

- *

- * \hideinitializer

- */

-#define uip_udp_remove(conn) (conn)->lport = 0

-

-/**

- * Send a UDP datagram of length len on the current connection.

- *

- * This function can only be called in response to a UDP event (poll

- * or newdata). The data must be present in the uip_buf buffer, at the

- * place pointed to by the uip_appdata pointer.

- *

- * \param len The length of the data in the uip_buf buffer.

- *

- * \hideinitializer

- */

-#define uip_udp_send(len) uip_slen = (len)

-

-/** @} */

-

-/* uIP convenience and converting functions. */

-

-/**

- * \defgroup uipconvfunc uIP conversion functions

- * @{

- *

- * These functions can be used for converting between different data

- * formats used by uIP.

- */

-

-/**

- * Pack an IP address into a 4-byte array which is used by uIP to

- * represent IP addresses.

- *

- * Example:

- \code

- u16_t ipaddr[2];

-

- uip_ipaddr(&ipaddr, 192,168,1,2);

- \endcode

- *

- * \param addr A pointer to a 4-byte array that will be filled in with

- * the IP addres.

- * \param addr0 The first octet of the IP address.

- * \param addr1 The second octet of the IP address.

- * \param addr2 The third octet of the IP address.

- * \param addr3 The forth octet of the IP address.

- *

- * \hideinitializer

- */

-#define uip_ipaddr(addr, addr0,addr1,addr2,addr3) do { \

-                     (addr)[0] = HTONS(((addr0) << 8) | (addr1)); \

-                     (addr)[1] = HTONS(((addr2) << 8) | (addr3)); \

-                  } while(0)

-

-/**

- * Convert 16-bit quantity from host byte order to network byte order.

- *

- * This macro is primarily used for converting constants from host

- * byte order to network byte order. For converting variables to

- * network byte order, use the htons() function instead.

- *

- * \hideinitializer

- */

-#ifndef HTONS

-#   if BYTE_ORDER == BIG_ENDIAN

-#      define HTONS(n) (n)

-#   else /* BYTE_ORDER == BIG_ENDIAN */

-#      define HTONS(n) ((((u16_t)((n) & 0xff)) << 8) | (((n) & 0xff00) >> 8))

-#   endif /* BYTE_ORDER == BIG_ENDIAN */

-#endif /* HTONS */

-

-/**

- * Convert 16-bit quantity from host byte order to network byte order.

- *

- * This function is primarily used for converting variables from host

- * byte order to network byte order. For converting constants to

- * network byte order, use the HTONS() macro instead.

- */

-#ifndef htons

-u16_t htons(u16_t val);

-#endif /* htons */

-

-/** @} */

-

-/**

- * Pointer to the application data in the packet buffer.

- *

- * This pointer points to the application data when the application is

- * called. If the application wishes to send data, the application may

- * use this space to write the data into before calling uip_send().

- */

-extern volatile u8_t *uip_appdata;

-extern volatile u8_t *uip_sappdata;

-

-#if UIP_URGDATA > 0

-/* u8_t *uip_urgdata:

- *

- * This pointer points to any urgent data that has been received. Only

- * present if compiled with support for urgent data (UIP_URGDATA).

- */

-extern volatile u8_t *uip_urgdata;

-#endif /* UIP_URGDATA > 0 */

-

-

-/* u[8|16]_t uip_len:

- *

- * When the application is called, uip_len contains the length of any

- * new data that has been received from the remote host. The

- * application should set this variable to the size of any data that

- * the application wishes to send. When the network device driver

- * output function is called, uip_len should contain the length of the

- * outgoing packet.

- */

-extern volatile u16_t uip_len, uip_slen;

-

-#if UIP_URGDATA > 0

-extern volatile u8_t uip_urglen, uip_surglen;

-#endif /* UIP_URGDATA > 0 */

-

-

-/**

- * Representation of a uIP TCP connection.

- *

- * The uip_conn structure is used for identifying a connection. All

- * but one field in the structure are to be considered read-only by an

- * application. The only exception is the appstate field whos purpose

- * is to let the application store application-specific state (e.g.,

- * file pointers) for the connection. The size of this field is

- * configured in the "uipopt.h" header file.

- */

-struct uip_conn {

-  u16_t ripaddr[2];   /**< The IP address of the remote host. */

-

-  u16_t lport;        /**< The local TCP port, in network byte order. */

-  u16_t rport;        /**< The local remote TCP port, in network byte

-			 order. */

-

-  u8_t rcv_nxt[4];    /**< The sequence number that we expect to

-			 receive next. */

-  u8_t snd_nxt[4];    /**< The sequence number that was last sent by

-                         us. */

-  u16_t len;          /**< Length of the data that was previously sent. */

-  u16_t mss;          /**< Current maximum segment size for the

-			 connection. */

-  u16_t initialmss;   /**< Initial maximum segment size for the

-			 connection. */

-  u8_t sa;            /**< Retransmission time-out calculation state

-			 variable. */

-  u8_t sv;            /**< Retransmission time-out calculation state

-			 variable. */

-  u8_t rto;           /**< Retransmission time-out. */

-  u8_t tcpstateflags; /**< TCP state and flags. */

-  u8_t timer;         /**< The retransmission timer. */

-  u8_t nrtx;          /**< The number of retransmissions for the last

-			 segment sent. */

-

-  /** The application state. */

-  u8_t appstate[UIP_APPSTATE_SIZE];

-};

-

-

-/* Pointer to the current connection. */

-extern struct uip_conn *uip_conn;

-/* The array containing all uIP connections. */

-extern struct uip_conn uip_conns[UIP_CONNS];

-/**

- * \addtogroup uiparch

- * @{

- */

-

-/**

- * 4-byte array used for the 32-bit sequence number calculations.

- */

-extern volatile u8_t uip_acc32[4];

-

-/** @} */

-

-

-#if UIP_UDP

-/**

- * Representation of a uIP UDP connection.

- */

-struct uip_udp_conn {

-  u16_t ripaddr[2];   /**< The IP address of the remote peer. */

-  u16_t lport;        /**< The local port number in network byte order. */

-  u16_t rport;        /**< The remote port number in network byte order. */

-};

-

-extern struct uip_udp_conn *uip_udp_conn;

-extern struct uip_udp_conn uip_udp_conns[UIP_UDP_CONNS];

-#endif /* UIP_UDP */

-

-/**

- * The structure holding the TCP/IP statistics that are gathered if

- * UIP_STATISTICS is set to 1.

- *

- */

-struct uip_stats {

-  struct {

-    uip_stats_t drop;     /**< Number of dropped packets at the IP

-			     layer. */

-    uip_stats_t recv;     /**< Number of received packets at the IP

-			     layer. */

-    uip_stats_t sent;     /**< Number of sent packets at the IP

-			     layer. */

-    uip_stats_t vhlerr;   /**< Number of packets dropped due to wrong

-			     IP version or header length. */

-    uip_stats_t hblenerr; /**< Number of packets dropped due to wrong

-			     IP length, high byte. */

-    uip_stats_t lblenerr; /**< Number of packets dropped due to wrong

-			     IP length, low byte. */

-    uip_stats_t fragerr;  /**< Number of packets dropped since they

-			     were IP fragments. */

-    uip_stats_t chkerr;   /**< Number of packets dropped due to IP

-			     checksum errors. */

-    uip_stats_t protoerr; /**< Number of packets dropped since they

-			     were neither ICMP, UDP nor TCP. */

-  } ip;                   /**< IP statistics. */

-  struct {

-    uip_stats_t drop;     /**< Number of dropped ICMP packets. */

-    uip_stats_t recv;     /**< Number of received ICMP packets. */

-    uip_stats_t sent;     /**< Number of sent ICMP packets. */

-    uip_stats_t typeerr;  /**< Number of ICMP packets with a wrong

-			     type. */

-  } icmp;                 /**< ICMP statistics. */

-  struct {

-    uip_stats_t drop;     /**< Number of dropped TCP segments. */

-    uip_stats_t recv;     /**< Number of recived TCP segments. */

-    uip_stats_t sent;     /**< Number of sent TCP segments. */

-    uip_stats_t chkerr;   /**< Number of TCP segments with a bad

-			     checksum. */

-    uip_stats_t ackerr;   /**< Number of TCP segments with a bad ACK

-			     number. */

-    uip_stats_t rst;      /**< Number of recevied TCP RST (reset) segments. */

-    uip_stats_t rexmit;   /**< Number of retransmitted TCP segments. */

-    uip_stats_t syndrop;  /**< Number of dropped SYNs due to too few

-			     connections was avaliable. */

-    uip_stats_t synrst;   /**< Number of SYNs for closed ports,

-			     triggering a RST. */

-  } tcp;                  /**< TCP statistics. */

-};

-

-/**

- * The uIP TCP/IP statistics.

- *

- * This is the variable in which the uIP TCP/IP statistics are gathered.

- */

-extern struct uip_stats uip_stat;

-

-

-/*-----------------------------------------------------------------------------------*/

-/* All the stuff below this point is internal to uIP and should not be

- * used directly by an application or by a device driver.

- */

-/*-----------------------------------------------------------------------------------*/

-/* u8_t uip_flags:

- *

- * When the application is called, uip_flags will contain the flags

- * that are defined in this file. Please read below for more

- * infomation.

- */

-extern volatile u8_t uip_flags;

-

-/* The following flags may be set in the global variable uip_flags

-   before calling the application callback. The UIP_ACKDATA and

-   UIP_NEWDATA flags may both be set at the same time, whereas the

-   others are mutualy exclusive. Note that these flags should *NOT* be

-   accessed directly, but through the uIP functions/macros. */

-

-#define UIP_ACKDATA   1     /* Signifies that the outstanding data was

-			       acked and the application should send

-			       out new data instead of retransmitting

-			       the last data. */

-#define UIP_NEWDATA   2     /* Flags the fact that the peer has sent

-			       us new data. */

-#define UIP_REXMIT    4     /* Tells the application to retransmit the

-			       data that was last sent. */

-#define UIP_POLL      8     /* Used for polling the application, to

-			       check if the application has data that

-			       it wants to send. */

-#define UIP_CLOSE     16    /* The remote host has closed the

-			       connection, thus the connection has

-			       gone away. Or the application signals

-			       that it wants to close the

-			       connection. */

-#define UIP_ABORT     32    /* The remote host has aborted the

-			       connection, thus the connection has

-			       gone away. Or the application signals

-			       that it wants to abort the

-			       connection. */

-#define UIP_CONNECTED 64    /* We have got a connection from a remote

-                               host and have set up a new connection

-                               for it, or an active connection has

-                               been successfully established. */

-

-#define UIP_TIMEDOUT  128   /* The connection has been aborted due to

-			       too many retransmissions. */

-

-

-/* uip_process(flag):

- *

- * The actual uIP function which does all the work.

- */

-void uip_process(u8_t flag);

-

-/* The following flags are passed as an argument to the uip_process()

-   function. They are used to distinguish between the two cases where

-   uip_process() is called. It can be called either because we have

-   incoming data that should be processed, or because the periodic

-   timer has fired. */

-

-#define UIP_DATA    1     /* Tells uIP that there is incoming data in

-                             the uip_buf buffer. The length of the

-                             data is stored in the global variable

-                             uip_len. */

-#define UIP_TIMER   2     /* Tells uIP that the periodic timer has

-                             fired. */

-#if UIP_UDP

-#define UIP_UDP_TIMER 3

-#endif /* UIP_UDP */

-

-/* The TCP states used in the uip_conn->tcpstateflags. */

-#define CLOSED      0

-#define SYN_RCVD    1

-#define SYN_SENT    2

-#define ESTABLISHED 3

-#define FIN_WAIT_1  4

-#define FIN_WAIT_2  5

-#define CLOSING     6

-#define TIME_WAIT   7

-#define LAST_ACK    8

-#define TS_MASK     15

-

-#define UIP_STOPPED      16

-

-#define UIP_TCPIP_HLEN 40

-

-/* The TCP and IP headers. */

-typedef struct {

-  /* IP header. */

-  u8_t vhl,

-    tos,

-    len[2],

-    ipid[2],

-    ipoffset[2],

-    ttl,

-    proto;

-  u16_t ipchksum;

-  u16_t srcipaddr[2],

-    destipaddr[2];

-

-  /* TCP header. */

-  u16_t srcport,

-    destport;

-  u8_t seqno[4],

-    ackno[4],

-    tcpoffset,

-    flags,

-    wnd[2];

-  u16_t tcpchksum;

-  u8_t urgp[2];

-  u8_t optdata[4];

-} uip_tcpip_hdr;

-

-/* The ICMP and IP headers. */

-typedef struct {

-  /* IP header. */

-  u8_t vhl,

-    tos,

-    len[2],

-    ipid[2],

-    ipoffset[2],

-    ttl,

-    proto;

-  u16_t ipchksum;

-  u16_t srcipaddr[2],

-    destipaddr[2];

-  /* ICMP (echo) header. */

-  u8_t type, icode;

-  u16_t icmpchksum;

-  u16_t id, seqno;

-} uip_icmpip_hdr;

-

-

-/* The UDP and IP headers. */

-typedef struct {

-  /* IP header. */

-  u8_t vhl,

-    tos,

-    len[2],

-    ipid[2],

-    ipoffset[2],

-    ttl,

-    proto;

-  u16_t ipchksum;

-  u16_t srcipaddr[2],

-    destipaddr[2];

-

-  /* UDP header. */

-  u16_t srcport,

-    destport;

-  u16_t udplen;

-  u16_t udpchksum;

-} uip_udpip_hdr;

-

-#define UIP_PROTO_ICMP  1

-#define UIP_PROTO_TCP   6

-#define UIP_PROTO_UDP   17

-

-#if UIP_FIXEDADDR

-extern const u16_t uip_hostaddr[2];

-#else /* UIP_FIXEDADDR */

-extern u16_t uip_hostaddr[2];

-#endif /* UIP_FIXEDADDR */

-

-#endif /* __UIP_H__ */

-

-

-/** @} */

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.c
deleted file mode 100644
index 9dad18c..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in the

- *    documentation and/or other materials provided with the distribution.

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uip_arch.c,v 1.2.2.1 2003/10/04 22:54:17 adam Exp $

- *

- */

-

-

-#include "uip.h"

-#include "uip_arch.h"

-

-#define BUF ((uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN])

-#define IP_PROTO_TCP    6

-

-/*-----------------------------------------------------------------------------------*/

-void

-uip_add32(u8_t *op32, u16_t op16)

-{

-

-  uip_acc32[3] = op32[3] + (op16 & 0xff);

-  uip_acc32[2] = op32[2] + (op16 >> 8);

-  uip_acc32[1] = op32[1];

-  uip_acc32[0] = op32[0];

-

-  if(uip_acc32[2] < (op16 >> 8)) {

-    ++uip_acc32[1];

-    if(uip_acc32[1] == 0) {

-      ++uip_acc32[0];

-    }

-  }

-

-

-  if(uip_acc32[3] < (op16 & 0xff)) {

-    ++uip_acc32[2];

-    if(uip_acc32[2] == 0) {

-      ++uip_acc32[1];

-      if(uip_acc32[1] == 0) {

-	++uip_acc32[0];

-      }

-    }

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-u16_t

-uip_chksum(u16_t *sdata, u16_t len)

-{

-  u16_t acc;

-

-  for (acc = 0; len > 1; len -= 2) {

-    u16_t u = ((unsigned char *)sdata)[0] + (((unsigned char *)sdata)[1] << 8);

-    if ((acc += u) < u) {

-      /* Overflow, so we add the carry to acc (i.e., increase by

-         one). */

-      ++acc;

-    }

-    ++sdata;

-  }

-

-  /* add up any odd byte */

-  if(len == 1) {

-    acc += htons(((u16_t)(*(u8_t *)sdata)) << 8);

-    if(acc < htons(((u16_t)(*(u8_t *)sdata)) << 8)) {

-      ++acc;

-    }

-  }

-

-  return acc;

-}

-/*-----------------------------------------------------------------------------------*/

-u16_t

-uip_ipchksum(void)

-{

-  return uip_chksum((u16_t *)&uip_buf[UIP_LLH_LEN], 20);

-}

-/*-----------------------------------------------------------------------------------*/

-u16_t

-uip_tcpchksum(void)

-{

-  u16_t hsum, sum;

-

-

-  /* Compute the checksum of the TCP header. */

-  hsum = uip_chksum((u16_t *)&uip_buf[20 + UIP_LLH_LEN], 20);

-

-  /* Compute the checksum of the data in the TCP packet and add it to

-     the TCP header checksum. */

-  sum = uip_chksum((u16_t *)uip_appdata,

-		   (u16_t)(((((u16_t)(BUF->len[0]) << 8) + BUF->len[1]) - 40)));

-

-  if((sum += hsum) < hsum) {

-    ++sum;

-  }

-

-  if((sum += BUF->srcipaddr[0]) < BUF->srcipaddr[0]) {

-    ++sum;

-  }

-  if((sum += BUF->srcipaddr[1]) < BUF->srcipaddr[1]) {

-    ++sum;

-  }

-  if((sum += BUF->destipaddr[0]) < BUF->destipaddr[0]) {

-    ++sum;

-  }

-  if((sum += BUF->destipaddr[1]) < BUF->destipaddr[1]) {

-    ++sum;

-  }

-  if((sum += (u16_t)htons((u16_t)IP_PROTO_TCP)) < (u16_t)htons((u16_t)IP_PROTO_TCP)) {

-    ++sum;

-  }

-

-  hsum = (u16_t)htons((((u16_t)(BUF->len[0]) << 8) + BUF->len[1]) - 20);

-

-  if((sum += hsum) < hsum) {

-    ++sum;

-  }

-

-  return sum;

-}

-/*-----------------------------------------------------------------------------------*/

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.h
deleted file mode 100644
index b2d133f..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arch.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/**

- * \defgroup uiparch Architecture specific uIP functions

- * @{

- *

- * The functions in the architecture specific module implement the IP

- * check sum and 32-bit additions.

- *

- * The IP checksum calculation is the most computationally expensive

- * operation in the TCP/IP stack and it therefore pays off to

- * implement this in efficient assembler. The purpose of the uip-arch

- * module is to let the checksum functions to be implemented in

- * architecture specific assembler.

- *

- */

-

-/**

- * \file

- * Declarations of architecture specific functions.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uip_arch.h,v 1.1.2.2 2003/10/06 15:10:22 adam Exp $

- *

- */

-

-#ifndef __UIP_ARCH_H__

-#define __UIP_ARCH_H__

-

-#include "uip.h"

-

-/**

- * Carry out a 32-bit addition.

- *

- * Because not all architectures for which uIP is intended has native

- * 32-bit arithmetic, uIP uses an external C function for doing the

- * required 32-bit additions in the TCP protocol processing. This

- * function should add the two arguments and place the result in the

- * global variable uip_acc32.

- *

- * \note The 32-bit integer pointed to by the op32 parameter and the

- * result in the uip_acc32 variable are in network byte order (big

- * endian).

- *

- * \param op32 A pointer to a 4-byte array representing a 32-bit

- * integer in network byte order (big endian).

- *

- * \param op16 A 16-bit integer in host byte order.

- */

-void uip_add32(u8_t *op32, u16_t op16);

-

-/**

- * Calculate the Internet checksum over a buffer.

- *

- * The Internet checksum is the one's complement of the one's

- * complement sum of all 16-bit words in the buffer.

- *

- * See RFC1071.

- *

- * \note This function is not called in the current version of uIP,

- * but future versions might make use of it.

- *

- * \param buf A pointer to the buffer over which the checksum is to be

- * computed.

- *

- * \param len The length of the buffer over which the checksum is to

- * be computed.

- *

- * \return The Internet checksum of the buffer.

- */

-u16_t uip_chksum(u16_t *buf, u16_t len);

-

-/**

- * Calculate the IP header checksum of the packet header in uip_buf.

- *

- * The IP header checksum is the Internet checksum of the 20 bytes of

- * the IP header.

- *

- * \return The IP header checksum of the IP header in the uip_buf

- * buffer.

- */

-u16_t uip_ipchksum(void);

-

-/**

- * Calculate the TCP checksum of the packet in uip_buf and uip_appdata.

- *

- * The TCP checksum is the Internet checksum of data contents of the

- * TCP segment, and a pseudo-header as defined in RFC793.

- *

- * \note The uip_appdata pointer that points to the packet data may

- * point anywhere in memory, so it is not possible to simply calculate

- * the Internet checksum of the contents of the uip_buf buffer.

- *

- * \return The TCP checksum of the TCP segment in uip_buf and pointed

- * to by uip_appdata.

- */

-u16_t uip_tcpchksum(void);

-

-/** @} */

-

-#endif /* __UIP_ARCH_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.c b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.c
deleted file mode 100644
index db8d72d..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.c
+++ /dev/null
@@ -1,429 +0,0 @@
-/**

- * \addtogroup uip

- * @{

- */

-

-/**

- * \defgroup uiparp uIP Address Resolution Protocol

- * @{

- *

- * The Address Resolution Protocol ARP is used for mapping between IP

- * addresses and link level addresses such as the Ethernet MAC

- * addresses. ARP uses broadcast queries to ask for the link level

- * address of a known IP address and the host which is configured with

- * the IP address for which the query was meant, will respond with its

- * link level address.

- *

- * \note This ARP implementation only supports Ethernet.

- */

-

-/**

- * \file

- * Implementation of the ARP Address Resolution Protocol.

- * \author Adam Dunkels <adam@dunkels.com>

- *

- */

-

-/*

- * Copyright (c) 2001-2003, Adam Dunkels.

- * All rights reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in the

- *    documentation and/or other materials provided with the distribution.

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uip_arp.c,v 1.7.2.3 2003/10/06 22:42:30 adam Exp $

- *

- */

-

-

-#include "uip_arp.h"

-

-#include <string.h>

-

-struct arp_hdr {

-  struct uip_eth_hdr ethhdr;

-  u16_t hwtype;

-  u16_t protocol;

-  u8_t hwlen;

-  u8_t protolen;

-  u16_t opcode;

-  struct uip_eth_addr shwaddr;

-  u16_t sipaddr[2];

-  struct uip_eth_addr dhwaddr;

-  u16_t dipaddr[2];

-};

-

-struct ethip_hdr {

-  struct uip_eth_hdr ethhdr;

-  /* IP header. */

-  u8_t vhl,

-    tos,

-    len[2],

-    ipid[2],

-    ipoffset[2],

-    ttl,

-    proto;

-  u16_t ipchksum;

-  u16_t srcipaddr[2],

-    destipaddr[2];

-};

-

-#define ARP_REQUEST 1

-#define ARP_REPLY   2

-

-#define ARP_HWTYPE_ETH 1

-

-struct arp_entry {

-  u16_t ipaddr[2];

-  struct uip_eth_addr ethaddr;

-  u8_t time;

-};

-

-struct uip_eth_addr uip_ethaddr = {{UIP_ETHADDR0,

-				    UIP_ETHADDR1,

-				    UIP_ETHADDR2,

-				    UIP_ETHADDR3,

-				    UIP_ETHADDR4,

-				    UIP_ETHADDR5}};

-

-static struct arp_entry arp_table[UIP_ARPTAB_SIZE];

-static u16_t ipaddr[2];

-static u8_t i, c;

-

-static u8_t arptime;

-static u8_t tmpage;

-

-#define BUF   ((struct arp_hdr *)&uip_buf[0])

-#define IPBUF ((struct ethip_hdr *)&uip_buf[0])

-/*-----------------------------------------------------------------------------------*/

-/**

- * Initialize the ARP module.

- *

- */

-/*-----------------------------------------------------------------------------------*/

-void

-uip_arp_init(void)

-{

-  for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {

-    memset(arp_table[i].ipaddr, 0, 4);

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Periodic ARP processing function.

- *

- * This function performs periodic timer processing in the ARP module

- * and should be called at regular intervals. The recommended interval

- * is 10 seconds between the calls.

- *

- */

-/*-----------------------------------------------------------------------------------*/

-void

-uip_arp_timer(void)

-{

-  struct arp_entry *tabptr;

-

-  ++arptime;

-  for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {

-    tabptr = &arp_table[i];

-    if((tabptr->ipaddr[0] | tabptr->ipaddr[1]) != 0 &&

-       arptime - tabptr->time >= UIP_ARP_MAXAGE) {

-      memset(tabptr->ipaddr, 0, 4);

-    }

-  }

-

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-uip_arp_update(u16_t *ipaddr, struct uip_eth_addr *ethaddr)

-{

-  register struct arp_entry *tabptr;

-  /* Walk through the ARP mapping table and try to find an entry to

-     update. If none is found, the IP -> MAC address mapping is

-     inserted in the ARP table. */

-  for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {

-

-    tabptr = &arp_table[i];

-    /* Only check those entries that are actually in use. */

-    if(tabptr->ipaddr[0] != 0 &&

-       tabptr->ipaddr[1] != 0) {

-

-      /* Check if the source IP address of the incoming packet matches

-         the IP address in this ARP table entry. */

-      if(ipaddr[0] == tabptr->ipaddr[0] &&

-	 ipaddr[1] == tabptr->ipaddr[1]) {

-	

-	/* An old entry found, update this and return. */

-	memcpy(tabptr->ethaddr.addr, ethaddr->addr, 6);

-	tabptr->time = arptime;

-

-	return;

-      }

-    }

-  }

-

-  /* If we get here, no existing ARP table entry was found, so we

-     create one. */

-

-  /* First, we try to find an unused entry in the ARP table. */

-  for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {

-    tabptr = &arp_table[i];

-    if(tabptr->ipaddr[0] == 0 &&

-       tabptr->ipaddr[1] == 0) {

-      break;

-    }

-  }

-

-  /* If no unused entry is found, we try to find the oldest entry and

-     throw it away. */

-  if(i == UIP_ARPTAB_SIZE) {

-    tmpage = 0;

-    c = 0;

-    for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {

-      tabptr = &arp_table[i];

-      if(arptime - tabptr->time > tmpage) {

-	tmpage = arptime - tabptr->time;

-	c = i;

-      }

-    }

-    i = c;

-  }

-

-  /* Now, i is the ARP table entry which we will fill with the new

-     information. */

-  memcpy(tabptr->ipaddr, ipaddr, 4);

-  memcpy(tabptr->ethaddr.addr, ethaddr->addr, 6);

-  tabptr->time = arptime;

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * ARP processing for incoming IP packets

- *

- * This function should be called by the device driver when an IP

- * packet has been received. The function will check if the address is

- * in the ARP cache, and if so the ARP cache entry will be

- * refreshed. If no ARP cache entry was found, a new one is created.

- *

- * This function expects an IP packet with a prepended Ethernet header

- * in the uip_buf[] buffer, and the length of the packet in the global

- * variable uip_len.

- */

-/*-----------------------------------------------------------------------------------*/

-void

-uip_arp_ipin(void)

-{

-  uip_len -= sizeof(struct uip_eth_hdr);

-	

-  /* Only insert/update an entry if the source IP address of the

-     incoming IP packet comes from a host on the local network. */

-  if((IPBUF->srcipaddr[0] & uip_arp_netmask[0]) !=

-     (uip_hostaddr[0] & uip_arp_netmask[0])) {

-    return;

-  }

-  if((IPBUF->srcipaddr[1] & uip_arp_netmask[1]) !=

-     (uip_hostaddr[1] & uip_arp_netmask[1])) {

-    return;

-  }

-  uip_arp_update(IPBUF->srcipaddr, &(IPBUF->ethhdr.src));

-

-  return;

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * ARP processing for incoming ARP packets.

- *

- * This function should be called by the device driver when an ARP

- * packet has been received. The function will act differently

- * depending on the ARP packet type: if it is a reply for a request

- * that we previously sent out, the ARP cache will be filled in with

- * the values from the ARP reply. If the incoming ARP packet is an ARP

- * request for our IP address, an ARP reply packet is created and put

- * into the uip_buf[] buffer.

- *

- * When the function returns, the value of the global variable uip_len

- * indicates whether the device driver should send out a packet or

- * not. If uip_len is zero, no packet should be sent. If uip_len is

- * non-zero, it contains the length of the outbound packet that is

- * present in the uip_buf[] buffer.

- *

- * This function expects an ARP packet with a prepended Ethernet

- * header in the uip_buf[] buffer, and the length of the packet in the

- * global variable uip_len.

- */

-/*-----------------------------------------------------------------------------------*/

-typedef struct arp_hdr aht;

-

-void

-uip_arp_arpin(void)

-{

-  int ul;

-

-  if(uip_len < sizeof(struct arp_hdr)) {

-    uip_len = 0;

-    return;

-  }

-

-  uip_len = 0;

-

-  switch(BUF->opcode) {

-  case HTONS(ARP_REQUEST):

-    /* ARP request. If it asked for our address, we send out a

-       reply. */

-    if(BUF->dipaddr[0] == uip_hostaddr[0] &&

-       BUF->dipaddr[1] == uip_hostaddr[1]) {

-      /* The reply opcode is 2. */

-      BUF->opcode = HTONS(2);

-

-      memcpy(BUF->dhwaddr.addr, BUF->shwaddr.addr, 6);

-      memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);

-      memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);

-      memcpy(BUF->ethhdr.dest.addr, BUF->dhwaddr.addr, 6);

-

-      BUF->dipaddr[0] = BUF->sipaddr[0];

-      BUF->dipaddr[1] = BUF->sipaddr[1];

-      BUF->sipaddr[0] = uip_hostaddr[0];

-      BUF->sipaddr[1] = uip_hostaddr[1];

-

-      ul = BUF->hwlen;

-      BUF->ethhdr.type = HTONS(UIP_ETHTYPE_ARP);

-      uip_len = sizeof(struct arp_hdr);

-    }

-    break;

-  case HTONS(ARP_REPLY):

-    /* ARP reply. We insert or update the ARP table if it was meant

-       for us. */

-    if(BUF->dipaddr[0] == uip_hostaddr[0] &&

-       BUF->dipaddr[1] == uip_hostaddr[1]) {

-

-      uip_arp_update(BUF->sipaddr, &BUF->shwaddr);

-    }

-    break;

-  }

-

-  ( void ) ul;

-

-  return;

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Prepend Ethernet header to an outbound IP packet and see if we need

- * to send out an ARP request.

- *

- * This function should be called before sending out an IP packet. The

- * function checks the destination IP address of the IP packet to see

- * what Ethernet MAC address that should be used as a destination MAC

- * address on the Ethernet.

- *

- * If the destination IP address is in the local network (determined

- * by logical ANDing of netmask and our IP address), the function

- * checks the ARP cache to see if an entry for the destination IP

- * address is found. If so, an Ethernet header is prepended and the

- * function returns. If no ARP cache entry is found for the

- * destination IP address, the packet in the uip_buf[] is replaced by

- * an ARP request packet for the IP address. The IP packet is dropped

- * and it is assumed that they higher level protocols (e.g., TCP)

- * eventually will retransmit the dropped packet.

- *

- * If the destination IP address is not on the local network, the IP

- * address of the default router is used instead.

- *

- * When the function returns, a packet is present in the uip_buf[]

- * buffer, and the length of the packet is in the global variable

- * uip_len.

- */

-/*-----------------------------------------------------------------------------------*/

-void

-uip_arp_out(void)

-{

-  struct arp_entry *tabptr;

-  /* Find the destination IP address in the ARP table and construct

-     the Ethernet header. If the destination IP addres isn't on the

-     local network, we use the default router's IP address instead.

-

-     If not ARP table entry is found, we overwrite the original IP

-     packet with an ARP request for the IP address. */

-

-  /* Check if the destination address is on the local network. */

-  if((IPBUF->destipaddr[0] & uip_arp_netmask[0]) !=

-     (uip_hostaddr[0] & uip_arp_netmask[0]) ||

-     (IPBUF->destipaddr[1] & uip_arp_netmask[1]) !=

-     (uip_hostaddr[1] & uip_arp_netmask[1])) {

-    /* Destination address was not on the local network, so we need to

-       use the default router's IP address instead of the destination

-       address when determining the MAC address. */

-    ipaddr[0] = uip_arp_draddr[0];

-    ipaddr[1] = uip_arp_draddr[1];

-  } else {

-    /* Else, we use the destination IP address. */

-    ipaddr[0] = IPBUF->destipaddr[0];

-    ipaddr[1] = IPBUF->destipaddr[1];

-  }

-

-  for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {

-    tabptr = &arp_table[i];

-    if(ipaddr[0] == tabptr->ipaddr[0] &&

-       ipaddr[1] == tabptr->ipaddr[1])

-      break;

-  }

-

-  if(i == UIP_ARPTAB_SIZE) {

-    /* The destination address was not in our ARP table, so we

-       overwrite the IP packet with an ARP request. */

-

-    memset(BUF->ethhdr.dest.addr, 0xff, 6);

-    memset(BUF->dhwaddr.addr, 0x00, 6);

-    memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);

-    memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);

-

-    BUF->dipaddr[0] = ipaddr[0];

-    BUF->dipaddr[1] = ipaddr[1];

-    BUF->sipaddr[0] = uip_hostaddr[0];

-    BUF->sipaddr[1] = uip_hostaddr[1];

-    BUF->opcode = HTONS(ARP_REQUEST); /* ARP request. */

-    BUF->hwtype = HTONS(ARP_HWTYPE_ETH);

-    BUF->protocol = HTONS(UIP_ETHTYPE_IP);

-    BUF->hwlen = 6;

-    BUF->protolen = 4;

-    BUF->ethhdr.type = HTONS(UIP_ETHTYPE_ARP);

-

-    uip_appdata = &uip_buf[40 + UIP_LLH_LEN];

-

-    uip_len = sizeof(struct arp_hdr);

-    return;

-  }

-

-  /* Build an ethernet header. */

-  memcpy(IPBUF->ethhdr.dest.addr, tabptr->ethaddr.addr, 6);

-  memcpy(IPBUF->ethhdr.src.addr, uip_ethaddr.addr, 6);

-

-  IPBUF->ethhdr.type = HTONS(UIP_ETHTYPE_IP);

-

-  uip_len += sizeof(struct uip_eth_hdr);

-}

-/*-----------------------------------------------------------------------------------*/

-

-/** @} */

-/** @} */

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.h
deleted file mode 100644
index fadad57..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uip_arp.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/**

- * \addtogroup uip

- * @{

- */

-

-/**

- * \addtogroup uiparp

- * @{

- */

-

-/**

- * \file

- * Macros and definitions for the ARP module.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-

-/*

- * Copyright (c) 2001-2003, Adam Dunkels.

- * All rights reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in the

- *    documentation and/or other materials provided with the distribution.

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uip_arp.h,v 1.3.2.2 2003/10/06 15:10:22 adam Exp $

- *

- */

-

-#ifndef __UIP_ARP_H__

-#define __UIP_ARP_H__

-

-#include "uip.h"

-

-

-/**

- * Representation of a 48-bit Ethernet address.

- */

-struct uip_eth_addr {

-  u8_t addr[6];

-} /*_RB_ __attribute__ ((packed, aligned (1))) */;

-

-extern struct uip_eth_addr uip_ethaddr;

-

-/**

- * The Ethernet header.

- */

-struct uip_eth_hdr {

-  struct uip_eth_addr dest;

-  struct uip_eth_addr src;

-  u16_t type;

-} /*_RB_ __attribute__ ((packed)) */;

-

-#define UIP_ETHTYPE_ARP 0x0806

-#define UIP_ETHTYPE_IP  0x0800

-#define UIP_ETHTYPE_IP6 0x86dd

-

-

-/* The uip_arp_init() function must be called before any of the other

-   ARP functions. */

-void uip_arp_init(void);

-

-/* The uip_arp_ipin() function should be called whenever an IP packet

-   arrives from the Ethernet. This function refreshes the ARP table or

-   inserts a new mapping if none exists. The function assumes that an

-   IP packet with an Ethernet header is present in the uip_buf buffer

-   and that the length of the packet is in the uip_len variable. */

-void uip_arp_ipin(void);

-

-/* The uip_arp_arpin() should be called when an ARP packet is received

-   by the Ethernet driver. This function also assumes that the

-   Ethernet frame is present in the uip_buf buffer. When the

-   uip_arp_arpin() function returns, the contents of the uip_buf

-   buffer should be sent out on the Ethernet if the uip_len variable

-   is > 0. */

-void uip_arp_arpin(void);

-

-/* The uip_arp_out() function should be called when an IP packet

-   should be sent out on the Ethernet. This function creates an

-   Ethernet header before the IP header in the uip_buf buffer. The

-   Ethernet header will have the correct Ethernet MAC destination

-   address filled in if an ARP table entry for the destination IP

-   address (or the IP address of the default router) is present. If no

-   such table entry is found, the IP packet is overwritten with an ARP

-   request and we rely on TCP to retransmit the packet that was

-   overwritten. In any case, the uip_len variable holds the length of

-   the Ethernet frame that should be transmitted. */

-void uip_arp_out(void);

-

-/* The uip_arp_timer() function should be called every ten seconds. It

-   is responsible for flushing old entries in the ARP table. */

-void uip_arp_timer(void);

-

-/** @} */

-

-/**

- * \addtogroup uipconffunc

- * @{

- */

-

-/**

- * Set the default router's IP address.

- *

- * \param addr A pointer to a 4-byte array containing the IP address

- * of the default router.

- *

- * \hideinitializer

- */

-#define uip_setdraddr(addr) do { uip_arp_draddr[0] = addr[0]; \

-                                 uip_arp_draddr[1] = addr[1]; } while(0)

-

-/**

- * Set the netmask.

- *

- * \param addr A pointer to a 4-byte array containing the IP address

- * of the netmask.

- *

- * \hideinitializer

- */

-#define uip_setnetmask(addr) do { uip_arp_netmask[0] = addr[0]; \

-                                  uip_arp_netmask[1] = addr[1]; } while(0)

-

-

-/**

- * Get the default router's IP address.

- *

- * \param addr A pointer to a 4-byte array that will be filled in with

- * the IP address of the default router.

- *

- * \hideinitializer

- */

-#define uip_getdraddr(addr) do { addr[0] = uip_arp_draddr[0]; \

-                                 addr[1] = uip_arp_draddr[1]; } while(0)

-

-/**

- * Get the netmask.

- *

- * \param addr A pointer to a 4-byte array that will be filled in with

- * the value of the netmask.

- *

- * \hideinitializer

- */

-#define uip_getnetmask(addr) do { addr[0] = uip_arp_netmask[0]; \

-                                  addr[1] = uip_arp_netmask[1]; } while(0)

-

-

-/**

- * Specifiy the Ethernet MAC address.

- *

- * The ARP code needs to know the MAC address of the Ethernet card in

- * order to be able to respond to ARP queries and to generate working

- * Ethernet headers.

- *

- * \note This macro only specifies the Ethernet MAC address to the ARP

- * code. It cannot be used to change the MAC address of the Ethernet

- * card.

- *

- * \param eaddr A pointer to a struct uip_eth_addr containing the

- * Ethernet MAC address of the Ethernet card.

- *

- * \hideinitializer

- */

-#define uip_setethaddr(eaddr) do {uip_ethaddr.addr[0] = eaddr.addr[0]; \

-                              uip_ethaddr.addr[1] = eaddr.addr[1];\

-                              uip_ethaddr.addr[2] = eaddr.addr[2];\

-                              uip_ethaddr.addr[3] = eaddr.addr[3];\

-                              uip_ethaddr.addr[4] = eaddr.addr[4];\

-                              uip_ethaddr.addr[5] = eaddr.addr[5];} while(0)

-

-/** @} */

-

-/**

- * \internal Internal variables that are set using the macros

- * uip_setdraddr and uip_setnetmask.

- */

-extern u16_t uip_arp_draddr[2], uip_arp_netmask[2];

-#endif /* __UIP_ARP_H__ */

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uipopt.h b/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uipopt.h
deleted file mode 100644
index 18a578b..0000000
--- a/FreeRTOS/Demo/uIP_Demo_IAR_ARM7/uip/uipopt.h
+++ /dev/null
@@ -1,560 +0,0 @@
-/**

- * \defgroup uipopt Configuration options for uIP

- * @{

- *

- * uIP is configured using the per-project configuration file

- * "uipopt.h". This file contains all compile-time options for uIP and

- * should be tweaked to match each specific project. The uIP

- * distribution contains a documented example "uipopt.h" that can be

- * copied and modified for each project.

- */

-

-/**

- * \file

- * Configuration options for uIP.

- * \author Adam Dunkels <adam@dunkels.com>

- *

- * This file is used for tweaking various configuration options for

- * uIP. You should make a copy of this file into one of your project's

- * directories instead of editing this example "uipopt.h" file that

- * comes with the uIP distribution.

- */

-

-/*

- * Copyright (c) 2001-2003, Adam Dunkels.

- * All rights reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in the

- *    documentation and/or other materials provided with the distribution.

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uipopt.h,v 1.16.2.5 2003/10/07 13:22:51 adam Exp $

- *

- */

-

-#ifndef __UIPOPT_H__

-#define __UIPOPT_H__

-

-/*------------------------------------------------------------------------------*/

-/**

- * \defgroup uipopttypedef uIP type definitions

- * @{

- */

-

-/**

- * The 8-bit unsigned data type.

- *

- * This may have to be tweaked for your particular compiler. "unsigned

- * char" works for most compilers.

- */

-typedef unsigned char u8_t;

-

-/**

- * The 16-bit unsigned data type.

- *

- * This may have to be tweaked for your particular compiler. "unsigned

- * short" works for most compilers.

- */

-typedef unsigned short u16_t;

-

-/**

- * The statistics data type.

- *

- * This datatype determines how high the statistics counters are able

- * to count.

- */

-typedef unsigned short uip_stats_t;

-

-/** @} */

-

-/*------------------------------------------------------------------------------*/

-

-/**

- * \defgroup uipoptstaticconf Static configuration options

- * @{

- *

- * These configuration options can be used for setting the IP address

- * settings statically, but only if UIP_FIXEDADDR is set to 1. The

- * configuration options for a specific node includes IP address,

- * netmask and default router as well as the Ethernet address. The

- * netmask, default router and Ethernet address are appliciable only

- * if uIP should be run over Ethernet.

- *

- * All of these should be changed to suit your project.

-*/

-

-/**

- * Determines if uIP should use a fixed IP address or not.

- *

- * If uIP should use a fixed IP address, the settings are set in the

- * uipopt.h file. If not, the macros uip_sethostaddr(),

- * uip_setdraddr() and uip_setnetmask() should be used instead.

- *

- * \hideinitializer

- */

-#define UIP_FIXEDADDR    1

-

-/**

- * Ping IP address asignment.

- *

- * uIP uses a "ping" packets for setting its own IP address if this

- * option is set. If so, uIP will start with an empty IP address and

- * the destination IP address of the first incoming "ping" (ICMP echo)

- * packet will be used for setting the hosts IP address.

- *

- * \note This works only if UIP_FIXEDADDR is 0.

- *

- * \hideinitializer

- */

-#define UIP_PINGADDRCONF 0

-

-

-#define UIP_IPADDR0     172U  /**< The first octet of the IP address of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_IPADDR1     25U /**< The second octet of the IP address of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_IPADDR2     218U   /**< The third octet of the IP address of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_IPADDR3     11U  /**< The fourth octet of the IP address of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-

-#define UIP_NETMASK0    255 /**< The first octet of the netmask of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_NETMASK1    255 /**< The second octet of the netmask of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_NETMASK2    0 /**< The third octet of the netmask of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_NETMASK3    0   /**< The fourth octet of the netmask of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-

-#define UIP_DRIPADDR0   172 /**< The first octet of the IP address of

-			       the default router, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_DRIPADDR1   25 /**< The second octet of the IP address of

-			       the default router, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_DRIPADDR2   218   /**< The third octet of the IP address of

-			       the default router, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_DRIPADDR3   3   /**< The fourth octet of the IP address of

-			       the default router, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-

-

-

-/**

- * Specifies if the uIP ARP module should be compiled with a fixed

- * Ethernet MAC address or not.

- *

- * If this configuration option is 0, the macro uip_setethaddr() can

- * be used to specify the Ethernet address at run-time.

- *

- * \hideinitializer

- */

-#define UIP_FIXEDETHADDR 0

-

-#define UIP_ETHADDR0    0x00  /**< The first octet of the Ethernet

-				 address if UIP_FIXEDETHADDR is

-				 1. \hideinitializer */

-#define UIP_ETHADDR1    0xbd  /**< The second octet of the Ethernet

-				 address if UIP_FIXEDETHADDR is

-				 1. \hideinitializer */

-#define UIP_ETHADDR2    0x3b  /**< The third octet of the Ethernet

-				 address if UIP_FIXEDETHADDR is

-				 1. \hideinitializer */

-#define UIP_ETHADDR3    0x33  /**< The fourth octet of the Ethernet

-				 address if UIP_FIXEDETHADDR is

-				 1. \hideinitializer */

-#define UIP_ETHADDR4    0x06  /**< The fifth octet of the Ethernet

-				 address if UIP_FIXEDETHADDR is

-				 1. \hideinitializer */

-#define UIP_ETHADDR5    0x65  /**< The sixth octet of the Ethernet

-				 address if UIP_FIXEDETHADDR is

-				 1. \hideinitializer */

-

-/** @} */

-/*------------------------------------------------------------------------------*/

-/**

- * \defgroup uipoptip IP configuration options

- * @{

- *

- */

-/**

- * The IP TTL (time to live) of IP packets sent by uIP.

- *

- * This should normally not be changed.

- */

-#define UIP_TTL         255

-

-/**

- * Turn on support for IP packet reassembly.

- *

- * uIP supports reassembly of fragmented IP packets. This features

- * requires an additonal amount of RAM to hold the reassembly buffer

- * and the reassembly code size is approximately 700 bytes.  The

- * reassembly buffer is of the same size as the uip_buf buffer

- * (configured by UIP_BUFSIZE).

- *

- * \note IP packet reassembly is not heavily tested.

- *

- * \hideinitializer

- */

-#define UIP_REASSEMBLY 0

-

-/**

- * The maximum time an IP fragment should wait in the reassembly

- * buffer before it is dropped.

- *

- */

-#define UIP_REASS_MAXAGE 40

-

-/** @} */

-

-/*------------------------------------------------------------------------------*/

-/**

- * \defgroup uipoptudp UDP configuration options

- * @{

- *

- * \note The UDP support in uIP is still not entirely complete; there

- * is no support for sending or receiving broadcast or multicast

- * packets, but it works well enough to support a number of vital

- * applications such as DNS queries, though

- */

-

-/**

- * Toggles wether UDP support should be compiled in or not.

- *

- * \hideinitializer

- */

-#define UIP_UDP           0

-

-/**

- * Toggles if UDP checksums should be used or not.

- *

- * \note Support for UDP checksums is currently not included in uIP,

- * so this option has no function.

- *

- * \hideinitializer

- */

-#define UIP_UDP_CHECKSUMS 0

-

-/**

- * The maximum amount of concurrent UDP connections.

- *

- * \hideinitializer

- */

-#define UIP_UDP_CONNS    2

-

-/**

- * The name of the function that should be called when UDP datagrams arrive.

- *

- * \hideinitializer

- */

-#define UIP_UDP_APPCALL  udp_appcall

-

-/** @} */

-/*------------------------------------------------------------------------------*/

-/**

- * \defgroup uipopttcp TCP configuration options

- * @{

- */

-

-/**

- * Determines if support for opening connections from uIP should be

- * compiled in.

- *

- * If the applications that are running on top of uIP for this project

- * do not need to open outgoing TCP connections, this configration

- * option can be turned off to reduce the code size of uIP.

- *

- * \hideinitializer

- */

-#define UIP_ACTIVE_OPEN 0

-

-/**

- * The maximum number of simultaneously open TCP connections.

- *

- * Since the TCP connections are statically allocated, turning this

- * configuration knob down results in less RAM used. Each TCP

- * connection requires approximatly 30 bytes of memory.

- *

- * \hideinitializer

- */

-#define UIP_CONNS       25

-

-/**

- * The maximum number of simultaneously listening TCP ports.

- *

- * Each listening TCP port requires 2 bytes of memory.

- *

- * \hideinitializer

- */

-#define UIP_LISTENPORTS 10

-

-/**

- * The size of the advertised receiver's window.

- *

- * Should be set low (i.e., to the size of the uip_buf buffer) is the

- * application is slow to process incoming data, or high (32768 bytes)

- * if the application processes data quickly.

- *

- * \hideinitializer

- */

-#define UIP_RECEIVE_WINDOW   32768

-

-/**

- * Determines if support for TCP urgent data notification should be

- * compiled in.

- *

- * Urgent data (out-of-band data) is a rarely used TCP feature that

- * very seldom would be required.

- *

- * \hideinitializer

- */

-#define UIP_URGDATA      1

-

-/**

- * The initial retransmission timeout counted in timer pulses.

- *

- * This should not be changed.

- */

-#define UIP_RTO         3

-

-/**

- * The maximum number of times a segment should be retransmitted

- * before the connection should be aborted.

- *

- * This should not be changed.

- */

-#define UIP_MAXRTX      8

-

-/**

- * The maximum number of times a SYN segment should be retransmitted

- * before a connection request should be deemed to have been

- * unsuccessful.

- *

- * This should not need to be changed.

- */

-#define UIP_MAXSYNRTX      3

-

-/**

- * The TCP maximum segment size.

- *

- * This is should not be to set to more than UIP_BUFSIZE - UIP_LLH_LEN - 40.

- */

-#define UIP_TCP_MSS     (UIP_BUFSIZE - UIP_LLH_LEN - 40)

-

-/**

- * How long a connection should stay in the TIME_WAIT state.

- *

- * This configiration option has no real implication, and it should be

- * left untouched.

- */

-#define UIP_TIME_WAIT_TIMEOUT 120

-

-

-/** @} */

-/*------------------------------------------------------------------------------*/

-/**

- * \defgroup uipoptarp ARP configuration options

- * @{

- */

-

-/**

- * The size of the ARP table.

- *

- * This option should be set to a larger value if this uIP node will

- * have many connections from the local network.

- *

- * \hideinitializer

- */

-#define UIP_ARPTAB_SIZE 8

-

-/**

- * The maxium age of ARP table entries measured in 10ths of seconds.

- *

- * An UIP_ARP_MAXAGE of 120 corresponds to 20 minutes (BSD

- * default).

- */

-#define UIP_ARP_MAXAGE 120

-

-/** @} */

-

-/*------------------------------------------------------------------------------*/

-

-/**

- * \defgroup uipoptgeneral General configuration options

- * @{

- */

-

-/**

- * The size of the uIP packet buffer.

- *

- * The uIP packet buffer should not be smaller than 60 bytes, and does

- * not need to be larger than 1500 bytes. Lower size results in lower

- * TCP throughput, larger size results in higher TCP throughput.

- *

- * \hideinitializer

- */

-#define UIP_BUFSIZE     1480

-

-

-/**

- * Determines if statistics support should be compiled in.

- *

- * The statistics is useful for debugging and to show the user.

- *

- * \hideinitializer

- */

-#define UIP_STATISTICS  1

-

-/**

- * Determines if logging of certain events should be compiled in.

- *

- * This is useful mostly for debugging. The function uip_log()

- * must be implemented to suit the architecture of the project, if

- * logging is turned on.

- *

- * \hideinitializer

- */

-#define UIP_LOGGING 0

-

-/**

- * Print out a uIP log message.

- *

- * This function must be implemented by the module that uses uIP, and

- * is called by uIP whenever a log message is generated.

- */

-void uip_log(char *msg);

-

-/**

- * The link level header length.

- *

- * This is the offset into the uip_buf where the IP header can be

- * found. For Ethernet, this should be set to 14. For SLIP, this

- * should be set to 0.

- *

- * \hideinitializer

- */

-#define UIP_LLH_LEN     14

-

-

-/** @} */

-/*------------------------------------------------------------------------------*/

-/**

- * \defgroup uipoptcpu CPU architecture configuration

- * @{

- *

- * The CPU architecture configuration is where the endianess of the

- * CPU on which uIP is to be run is specified. Most CPUs today are

- * little endian, and the most notable exception are the Motorolas

- * which are big endian. The BYTE_ORDER macro should be changed to

- * reflect the CPU architecture on which uIP is to be run.

- */

-#ifndef LITTLE_ENDIAN

-#define LITTLE_ENDIAN  3412

-#endif /* LITTLE_ENDIAN */

-#ifndef BIG_ENDIAN

-#define BIG_ENDIAN     1234

-#endif /* BIGE_ENDIAN */

-

-/**

- * The byte order of the CPU architecture on which uIP is to be run.

- *

- * This option can be either BIG_ENDIAN (Motorola byte order) or

- * LITTLE_ENDIAN (Intel byte order).

- *

- * \hideinitializer

- */

-#ifndef BYTE_ORDER

-#define BYTE_ORDER     LITTLE_ENDIAN

-#endif /* BYTE_ORDER */

-

-/** @} */

-/*------------------------------------------------------------------------------*/

-

-/**

- * \defgroup uipoptapp Appication specific configurations

- * @{

- *

- * An uIP application is implemented using a single application

- * function that is called by uIP whenever a TCP/IP event occurs. The

- * name of this function must be registered with uIP at compile time

- * using the UIP_APPCALL definition.

- *

- * uIP applications can store the application state within the

- * uip_conn structure by specifying the size of the application

- * structure with the UIP_APPSTATE_SIZE macro.

- *

- * The file containing the definitions must be included in the

- * uipopt.h file.

- *

- * The following example illustrates how this can look.

- \code

-

-void httpd_appcall(void);

-#define UIP_APPCALL     httpd_appcall

-

-struct httpd_state {

-  u8_t state;

-  u16_t count;

-  char *dataptr;

-  char *script;

-};

-#define UIP_APPSTATE_SIZE (sizeof(struct httpd_state))

- \endcode

- */

-

-/**

- * \var #define UIP_APPCALL

- *

- * The name of the application function that uIP should call in

- * response to TCP/IP events.

- *

- */

-

-/**

- * \var #define UIP_APPSTATE_SIZE

- *

- * The size of the application state that is to be stored in the

- * uip_conn structure.

- */

-/** @} */

-

-/* Include the header file for the application program that should be

-   used. If you don't use the example web server, you should change

-   this. */

-#include "httpd.h"

-

-

-#endif /* __UIPOPT_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/FreeRTOSConfig.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/FreeRTOSConfig.h
deleted file mode 100644
index 13c0232..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/FreeRTOSConfig.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-#ifndef FREERTOS_CONFIG_H

-#define FREERTOS_CONFIG_H

-

-#include <lpc210x.h>

-#define vPortYieldProcessor swi_handler

-

-

-/*-----------------------------------------------------------

- * Application specific definitions.

- *

- * These definitions should be adjusted for your particular hardware and

- * application requirements.

- *

- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE

- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. 

- *

- * See http://www.freertos.org/a00110.html.

- *----------------------------------------------------------*/

-

-#define configUSE_PREEMPTION		1

-#define configUSE_IDLE_HOOK			0

-#define configUSE_TICK_HOOK			0

-#define configCPU_CLOCK_HZ			( ( unsigned long ) 58982400 )	/* =14.7456MHz xtal multiplied by 4 using the PLL. */

-#define configTICK_RATE_HZ			( ( TickType_t ) 1000 )

-#define configMAX_PRIORITIES		( 5 )

-#define configMINIMAL_STACK_SIZE	( ( unsigned short ) 128 )

-#define configTOTAL_HEAP_SIZE		( ( size_t ) ( 10 * 1024 ) )

-#define configMAX_TASK_NAME_LEN		( 16 )

-#define configUSE_TRACE_FACILITY	1

-#define configUSE_16_BIT_TICKS		0

-#define configIDLE_SHOULD_YIELD		1

-

-/* Co-routine definitions. */

-#define configUSE_CO_ROUTINES 		0

-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )

-

-/* Set the following definitions to 1 to include the API function, or zero

-to exclude the API function. */

-

-#define INCLUDE_vTaskPrioritySet		1

-#define INCLUDE_uxTaskPriorityGet		1

-#define INCLUDE_vTaskDelete				1

-#define INCLUDE_vTaskCleanUpResources	0

-#define INCLUDE_vTaskSuspend			1

-#define INCLUDE_vTaskDelayUntil			1

-#define INCLUDE_vTaskDelay				1

-

-

-#endif /* FREERTOS_CONFIG_H */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/Philips_LPC210X_Startup.s b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/Philips_LPC210X_Startup.s
deleted file mode 100644
index 47debb7..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/Philips_LPC210X_Startup.s
+++ /dev/null
@@ -1,213 +0,0 @@
-/*****************************************************************************

- * Copyright (c) 2001, 2002 Rowley Associates Limited.                       *

- *                                                                           *

- * This file may be distributed under the terms of the License Agreement     *

- * provided with this software.                                              *

- *                                                                           *

- * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE   *

- * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. *

- *****************************************************************************/

-

-/*****************************************************************************

- *                           Preprocessor Definitions

- *                           ------------------------

- *

- * VECTORED_IRQ_INTERRUPTS

- *

- *   Enable vectored IRQ interrupts. If defined, the PC register will be loaded

- *   with the contents of the VICVectAddr register on an IRQ exception.

- *

- * USE_PLL

- *

- *   If defined, connect PLL as processor clock source. If undefined, the 

- *   oscillator clock will be used.

- *

- * PLLCFG_VAL

- *

- *   Override the default PLL configuration (multiplier = 5, divider = 2)

- *   by defining PLLCFG_VAL.

- *

- * USE_MAM

- *

- *   If defined then the memory accelerator module (MAM) will be enabled.

- *

- * MAMCR_VAL & MAMTIM_VAL

- * 

- *   Override the default MAM configuration (fully enabled, 3 fetch cycles)

- *   by defining MAMCR_VAL and MAMTIM_VAL.

- *

- * VPBDIV_VAL

- *

- *   If defined then this value will be used to configure the VPB divider.

- *

- * SRAM_EXCEPTIONS

- *

- *   If defined, enable copying and re-mapping of interrupt vectors from User 

- *   FLASH to SRAM. If undefined, interrupt vectors will be mapped in User 

- *   FLASH.

- *

- *****************************************************************************/

-

-#ifndef PLLCFG_VAL

-#define PLLCFG_VAL 0x24 

-#endif

-

-#ifndef MAMCR_VAL

-#define MAMCR_VAL 2

-#endif

-

-#ifndef MAMTIM_VAL

-#define MAMTIM_VAL 3

-#endif

-

-#define MAMCR_OFFS   0x000

-#define MAMTIM_OFFS  0x004

-

-#define PLLCON_OFFS  0x080

-#define PLLCFG_OFFS  0x084

-#define PLLSTAT_OFFS 0x088

-#define PLLFEED_OFFS 0x08C

-

-#define VPBDIV_OFFS  0x100

-

-  .section .vectors, "ax"

-  .code 32

-  .align 0

-

-/*****************************************************************************

- * Exception Vectors                                                         *

- *****************************************************************************/

-_vectors:

-  ldr pc, [pc, #reset_handler_address - . - 8]  /* reset */

-  ldr pc, [pc, #undef_handler_address - . - 8]  /* undefined instruction */

-  ldr pc, [pc, #swi_handler_address - . - 8]    /* swi handler */

-  ldr pc, [pc, #pabort_handler_address - . - 8] /* abort prefetch */

-  ldr pc, [pc, #dabort_handler_address - . - 8] /* abort data */

-#ifdef VECTORED_IRQ_INTERRUPTS

-  .word 0xB9205F84                              /* boot loader checksum */

-  ldr pc, [pc, #-0xFF0]                         /* irq handler */

-#else

-  .word 0xB8A06F60                              /* boot loader checksum */

-  ldr pc, [pc, #irq_handler_address - . - 8]    /* irq handler */

-#endif

-  ldr pc, [pc, #fiq_handler_address - . - 8]    /* fiq handler */

-

-reset_handler_address:

-  .word reset_handler

-undef_handler_address:

-  .word undef_handler

-swi_handler_address:

-  .word swi_handler

-pabort_handler_address:

-  .word pabort_handler

-dabort_handler_address:

-  .word dabort_handler

-irq_handler_address:

-  .word irq_handler

-fiq_handler_address:

-  .word fiq_handler

-

-  .section .init, "ax"

-  .code 32

-  .align 0

-

-/******************************************************************************

- *                                                                            *

- * Default exception handlers                                                 *

- *                                                                            *

- ******************************************************************************/

-

-reset_handler:

-#if defined(USE_PLL) || defined(USE_MAM) || defined(VPBDIV_VAL)

-  ldr r0, =0xE01FC000

-#endif

-#if defined(USE_PLL)

-  /* Configure PLL Multiplier/Divider */

-  ldr r1, =PLLCFG_VAL

-  str r1, [r0, #PLLCFG_OFFS]

-  /* Enable PLL */

-  mov r1, #0x1

-  str r1, [r0, #PLLCON_OFFS]

-  mov r1, #0xAA

-  str r1, [r0, #PLLFEED_OFFS]

-  mov r1, #0x55

-  str r1, [r0, #PLLFEED_OFFS]

-  /* Wait for PLL to lock */

-pll_lock_loop:

-  ldr r1, [r0, #PLLSTAT_OFFS]

-  tst r1, #0x400

-  beq pll_lock_loop

-  /* PLL Locked, connect PLL as clock source */

-  mov r1, #0x3

-  str r1, [r0, #PLLCON_OFFS]

-  mov r1, #0xAA

-  str r1, [r0, #PLLFEED_OFFS]

-  mov r1, #0x55

-  str r1, [r0, #PLLFEED_OFFS]

-#endif

-

-#if defined(USE_MAM)

-  mov r1, #0

-  str r1, [r0, #MAMCR_OFFS]

-  ldr r1, =MAMTIM_VAL

-  str r1, [r0, #MAMTIM_OFFS]

-  ldr r1, =MAMCR_VAL

-  str r1, [r0, #MAMCR_OFFS]

-#endif

-

-#if defined(VPBDIV_VAL)

-  ldr r1, =VPBDIV_VAL

-  str r1, [r0, #VPBDIV_OFFS]

-#endif

-

-#if defined(SRAM_EXCEPTIONS)

-  /* Copy exception vectors into SRAM */

-  mov r8, #0x40000000

-  ldr r9, =_vectors

-  ldmia r9!, {r0-r7}

-  stmia r8!, {r0-r7}

-  ldmia r9!, {r0-r6}

-  stmia r8!, {r0-r6}

-

-  /* Re-map interrupt vectors from SRAM */

-  ldr r0, MEMMAP

-  mov r1, #2 /* User RAM Mode. Interrupt vectors are re-mapped from SRAM */

-  str r1, [r0]

-#endif /* SRAM_EXCEPTIONS */

-  

-  b _start

-

-#ifdef SRAM_EXCEPTIONS

-MEMMAP:

-  .word 0xE01FC040

-#endif

-

-/******************************************************************************

- *                                                                            *

- * Default exception handlers                                                 *

- * These are declared weak symbols so they can be redefined in user code.     * 

- *                                                                            *

- ******************************************************************************/

-

-undef_handler:

-  b undef_handler

-  

-swi_handler:

-  b swi_handler

-  

-pabort_handler:

-  b pabort_handler

-  

-dabort_handler:

-  b dabort_handler

-  

-irq_handler:

-  b irq_handler

-  

-fiq_handler:

-  b fiq_handler

-

-  .weak undef_handler, swi_handler, pabort_handler, dabort_handler, irq_handler, fiq_handler

-                                                    

-

-                  

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/ReadMe.txt b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/ReadMe.txt
new file mode 100644
index 0000000..add5642
--- /dev/null
+++ b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/ReadMe.txt
@@ -0,0 +1,5 @@
+If you need the demo that used to be in this directory then download FreeRTOS V8.2.3

+from http://sourceforge.net/projects/freertos/files/FreeRTOS/

+

+FreeRTOS now uses its own TCP/IP stack: http://www.FreeRTOS.org/TCP

+

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/flash_placement.xml b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/flash_placement.xml
deleted file mode 100644
index 449adf2..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/flash_placement.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE Linker_Placement_File>

-<Root name="Flash Section Placement" >

-  <MemorySegment name="External SRAM;SRAM;SDRAM;DRAM" >

-    <ProgramSection alignment="4" load="No" name=".data_run" />

-    <ProgramSection alignment="4" load="No" inputsections="*(.bss .bss.* .gnu.linkonce.b.*) *(COMMON)" name=".bss" />

-    <ProgramSection alignment="4" size="0x0" load="No" name=".heap" />

-    <ProgramSection alignment="4" size="0x0" load="No" name=".stack" />

-    <ProgramSection alignment="4" size="0x200" load="No" name=".stack_irq" />

-    <ProgramSection alignment="4" size="0x0" load="No" name=".stack_fiq" />

-    <ProgramSection alignment="4" size="0x200" load="No" name=".stack_svc" />

-    <ProgramSection alignment="4" size="0x0" load="No" name=".stack_abt" />

-    <ProgramSection alignment="4" size="0x0" load="No" name=".stack_und" />

-  </MemorySegment>

-  <MemorySegment name="Internal SRAM;SRAM;SDRAM;DRAM" >

-    <ProgramSection size="0x3C" load="No" name=".vectors_ram" />

-    <ProgramSection alignment="4" load="No" name=".fast_run" />

-  </MemorySegment>

-  <MemorySegment name="FLASH" >

-    <ProgramSection load="Yes" inputsections="*(.vectors .vectors.*)" name=".vectors" />

-    <ProgramSection alignment="4" load="Yes" inputsections="*(.init .init.*)" name=".init" />

-    <ProgramSection alignment="4" load="No" name=".text_load" />

-    <ProgramSection alignment="4" load="Yes" inputsections="*(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.*)" name=".text" />

-    <ProgramSection alignment="4" load="Yes" inputsections="KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors))" name=".dtors" />

-    <ProgramSection alignment="4" load="Yes" inputsections="KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors))" name=".ctors" />

-    <ProgramSection alignment="4" load="Yes" inputsections="*(.rodata .rodata.* .gnu.linkonce.r.*)" name=".rodata" />

-    <ProgramSection alignment="4" load="Yes" runin=".fast_run" inputsections="*(.fast .fast.*)" name=".fast" />

-    <ProgramSection alignment="4" load="Yes" runin=".data_run" inputsections="*(.data .data.* .gnu.linkonce.d.*)" name=".data" />

-  </MemorySegment>

-</Root>

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/lpc210x.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/lpc210x.h
deleted file mode 100644
index 3f1e304..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/lpc210x.h
+++ /dev/null
@@ -1,321 +0,0 @@
-#ifndef lpc210x_h

-#define lpc210x_h

-/*******************************************************************************

-lpc210x.h - Register defs for Philips LPC210X: LPC2104, LPC2105 and LPC2106

-

-           

-THE SOFTWARE IS DELIVERED "AS IS" WITHOUT WARRANTY OR CONDITION OF ANY KIND, 

-EITHER EXPRESS, IMPLIED OR STATUTORY. THIS INCLUDES WITHOUT LIMITATION ANY 

-WARRANTY OR CONDITION WITH RESPECT TO MERCHANTABILITY OR FITNESS FOR ANY 

-PARTICULAR PURPOSE, OR AGAINST THE INFRINGEMENTS OF INTELLECTUAL PROPERTY RIGHTS 

-OF OTHERS.

-           

-This file may be freely used for commercial and non-commercial applications, 

-including being redistributed with any tools.

-

-If you find a problem with the file, please report it so that it can be fixed.

-

-Created by Sten Larsson (sten_larsson at yahoo com)

-

-Edited by Richard Barry.

-*******************************************************************************/

-

-#define REG8  (volatile unsigned char*)

-#define REG16 (volatile unsigned short*)

-#define REG32 (volatile unsigned int*)

-

-

-/*##############################################################################

-## MISC

-##############################################################################*/

-

-        /* Constants for data to put in IRQ/FIQ Exception Vectors */

-#define VECTDATA_IRQ  0xE51FFFF0  /* LDR PC,[PC,#-0xFF0] */

-#define VECTDATA_FIQ  /* __TODO */

-

-

-/*##############################################################################

-## VECTORED INTERRUPT CONTROLLER

-##############################################################################*/

-

-#define VICIRQStatus    (*(REG32 (0xFFFFF000)))

-#define VICFIQStatus    (*(REG32 (0xFFFFF004)))

-#define VICRawIntr      (*(REG32 (0xFFFFF008)))

-#define VICIntSelect    (*(REG32 (0xFFFFF00C)))

-#define VICIntEnable    (*(REG32 (0xFFFFF010)))

-#define VICIntEnClear   (*(REG32 (0xFFFFF014)))

-#define VICSoftInt      (*(REG32 (0xFFFFF018)))

-#define VICSoftIntClear (*(REG32 (0xFFFFF01C)))

-#define VICProtection   (*(REG32 (0xFFFFF020)))

-#define VICVectAddr     (*(REG32 (0xFFFFF030)))

-#define VICDefVectAddr  (*(REG32 (0xFFFFF034)))

-

-#define VICVectAddr0    (*(REG32 (0xFFFFF100)))

-#define VICVectAddr1    (*(REG32 (0xFFFFF104)))

-#define VICVectAddr2    (*(REG32 (0xFFFFF108)))

-#define VICVectAddr3    (*(REG32 (0xFFFFF10C)))

-#define VICVectAddr4    (*(REG32 (0xFFFFF110)))

-#define VICVectAddr5    (*(REG32 (0xFFFFF114)))

-#define VICVectAddr6    (*(REG32 (0xFFFFF118)))

-#define VICVectAddr7    (*(REG32 (0xFFFFF11C)))

-#define VICVectAddr8    (*(REG32 (0xFFFFF120)))

-#define VICVectAddr9    (*(REG32 (0xFFFFF124)))

-#define VICVectAddr10   (*(REG32 (0xFFFFF128)))

-#define VICVectAddr11   (*(REG32 (0xFFFFF12C)))

-#define VICVectAddr12   (*(REG32 (0xFFFFF130)))

-#define VICVectAddr13   (*(REG32 (0xFFFFF134)))

-#define VICVectAddr14   (*(REG32 (0xFFFFF138)))

-#define VICVectAddr15   (*(REG32 (0xFFFFF13C)))

-

-#define VICVectCntl0    (*(REG32 (0xFFFFF200)))

-#define VICVectCntl1    (*(REG32 (0xFFFFF204)))

-#define VICVectCntl2    (*(REG32 (0xFFFFF208)))

-#define VICVectCntl3    (*(REG32 (0xFFFFF20C)))

-#define VICVectCntl4    (*(REG32 (0xFFFFF210)))

-#define VICVectCntl5    (*(REG32 (0xFFFFF214)))

-#define VICVectCntl6    (*(REG32 (0xFFFFF218)))

-#define VICVectCntl7    (*(REG32 (0xFFFFF21C)))

-#define VICVectCntl8    (*(REG32 (0xFFFFF220)))

-#define VICVectCntl9    (*(REG32 (0xFFFFF224)))

-#define VICVectCntl10   (*(REG32 (0xFFFFF228)))

-#define VICVectCntl11   (*(REG32 (0xFFFFF22C)))

-#define VICVectCntl12   (*(REG32 (0xFFFFF230)))

-#define VICVectCntl13   (*(REG32 (0xFFFFF234)))

-#define VICVectCntl14   (*(REG32 (0xFFFFF238)))

-#define VICVectCntl15   (*(REG32 (0xFFFFF23C)))

-

-#define VICITCR         (*(REG32 (0xFFFFF300)))

-#define VICITIP1        (*(REG32 (0xFFFFF304)))

-#define VICITIP2        (*(REG32 (0xFFFFF308)))

-#define VICITOP1        (*(REG32 (0xFFFFF30C)))

-#define VICITOP2        (*(REG32 (0xFFFFF310)))

-#define VICPeriphID0    (*(REG32 (0xFFFFFFE0)))

-#define VICPeriphID1    (*(REG32 (0xFFFFFFE4)))

-#define VICPeriphID2    (*(REG32 (0xFFFFFFE8)))

-#define VICPeriphID3    (*(REG32 (0xFFFFFFEC)))

-

-#define VICIntEnClr     VICIntEnClear

-#define VICSoftIntClr   VICSoftIntClear

-

-

-/*##############################################################################

-## PCB - Pin Connect Block

-##############################################################################*/

-

-#define PCB_PINSEL0     (*(REG32 (0xE002C000)))

-#define PCB_PINSEL1     (*(REG32 (0xE002C004)))

-

-

-/*##############################################################################

-## GPIO - General Purpose I/O

-##############################################################################*/

-

-#define GPIO_IOPIN      (*(REG32 (0xE0028000))) /* ALTERNATE NAME GPIO = GPIO0 */

-#define GPIO_IOSET      (*(REG32 (0xE0028004)))

-#define GPIO_IODIR      (*(REG32 (0xE0028008)))

-#define GPIO_IOCLR      (*(REG32 (0xE002800C)))

-

-#define GPIO0_IOPIN     (*(REG32 (0xE0028000))) /* ALTERNATE NAME GPIO = GPIO0 */

-#define GPIO0_IOSET     (*(REG32 (0xE0028004)))

-#define GPIO0_IODIR     (*(REG32 (0xE0028008)))

-#define GPIO0_IOCLR     (*(REG32 (0xE002800C)))

-

-

-/*##############################################################################

-## UART0 / UART1

-##############################################################################*/

-

-/* ---- UART 0 --------------------------------------------- */

-#define UART0_RBR       (*(REG32 (0xE000C000)))

-#define UART0_THR       (*(REG32 (0xE000C000)))

-#define UART0_IER       (*(REG32 (0xE000C004)))

-#define UART0_IIR       (*(REG32 (0xE000C008)))

-#define UART0_FCR       (*(REG32 (0xE000C008)))

-#define UART0_LCR       (*(REG32 (0xE000C00C)))

-#define UART0_LSR       (*(REG32 (0xE000C014)))

-#define UART0_SCR       (*(REG32 (0xE000C01C)))

-#define UART0_DLL       (*(REG32 (0xE000C000)))

-#define UART0_DLM       (*(REG32 (0xE000C004)))

-

-/* ---- UART 1 --------------------------------------------- */

-#define UART1_RBR       (*(REG32 (0xE0010000)))

-#define UART1_THR       (*(REG32 (0xE0010000)))

-#define UART1_IER       (*(REG32 (0xE0010004)))

-#define UART1_IIR       (*(REG32 (0xE0010008)))

-#define UART1_FCR       (*(REG32 (0xE0010008)))

-#define UART1_LCR       (*(REG32 (0xE001000C)))

-#define UART1_LSR       (*(REG32 (0xE0010014)))

-#define UART1_SCR       (*(REG32 (0xE001001C)))

-#define UART1_DLL       (*(REG32 (0xE0010000)))

-#define UART1_DLM       (*(REG32 (0xE0010004)))

-#define UART1_MCR       (*(REG32 (0xE0010010)))

-#define UART1_MSR       (*(REG32 (0xE0010018)))

-

-

-/*##############################################################################

-## I2C

-##############################################################################*/

-

-#define I2C_I2CONSET    (*(REG32 (0xE001C000)))

-#define I2C_I2STAT      (*(REG32 (0xE001C004)))

-#define I2C_I2DAT       (*(REG32 (0xE001C008)))

-#define I2C_I2ADR       (*(REG32 (0xE001C00C)))

-#define I2C_I2SCLH      (*(REG32 (0xE001C010)))

-#define I2C_I2SCLL      (*(REG32 (0xE001C014)))

-#define I2C_I2CONCLR    (*(REG32 (0xE001C018)))

-

-

-/*##############################################################################

-## SPI - Serial Peripheral Interface

-##############################################################################*/

-

-#define SPI_SPCR        (*(REG32 (0xE0020000)))

-#define SPI_SPSR        (*(REG32 (0xE0020004)))

-#define SPI_SPDR        (*(REG32 (0xE0020008)))

-#define SPI_SPCCR       (*(REG32 (0xE002000C)))

-#define SPI_SPTCR       (*(REG32 (0xE0020010)))

-#define SPI_SPTSR       (*(REG32 (0xE0020014)))

-#define SPI_SPTOR       (*(REG32 (0xE0020018)))

-#define SPI_SPINT       (*(REG32 (0xE002001C)))

-

-

-/*##############################################################################

-## Timer 0 and Timer 1

-##############################################################################*/

-

-/* ---- Timer 0 -------------------------------------------- */

-#define T0_IR           (*(REG32 (0xE0004000)))

-#define T0_TCR          (*(REG32 (0xE0004004)))

-#define T0_TC           (*(REG32 (0xE0004008)))

-#define T0_PR           (*(REG32 (0xE000400C)))

-#define T0_PC           (*(REG32 (0xE0004010)))

-#define T0_MCR          (*(REG32 (0xE0004014)))

-#define T0_MR0          (*(REG32 (0xE0004018)))

-#define T0_MR1          (*(REG32 (0xE000401C)))

-#define T0_MR2          (*(REG32 (0xE0004020)))

-#define T0_MR3          (*(REG32 (0xE0004024)))

-#define T0_CCR          (*(REG32 (0xE0004028)))

-#define T0_CR0          (*(REG32 (0xE000402C)))

-#define T0_CR1          (*(REG32 (0xE0004030)))

-#define T0_CR2          (*(REG32 (0xE0004034)))

-#define T0_CR3          (*(REG32 (0xE0004038)))

-#define T0_EMR          (*(REG32 (0xE000403C)))

-

-/* ---- Timer 1 -------------------------------------------- */

-#define T1_IR           (*(REG32 (0xE0008000)))

-#define T1_TCR          (*(REG32 (0xE0008004)))

-#define T1_TC           (*(REG32 (0xE0008008)))

-#define T1_PR           (*(REG32 (0xE000800C)))

-#define T1_PC           (*(REG32 (0xE0008010)))

-#define T1_MCR          (*(REG32 (0xE0008014)))

-#define T1_MR0          (*(REG32 (0xE0008018)))

-#define T1_MR1          (*(REG32 (0xE000801C)))

-#define T1_MR2          (*(REG32 (0xE0008020)))

-#define T1_MR3          (*(REG32 (0xE0008024)))

-#define T1_CCR          (*(REG32 (0xE0008028)))

-#define T1_CR0          (*(REG32 (0xE000802C)))

-#define T1_CR1          (*(REG32 (0xE0008030)))

-#define T1_CR2          (*(REG32 (0xE0008034)))

-#define T1_CR3          (*(REG32 (0xE0008038)))

-#define T1_EMR          (*(REG32 (0xE000803C)))

-

-

-/*##############################################################################

-## PWM

-##############################################################################*/

-

-#define PWM_IR          (*(REG32 (0xE0014000)))

-#define PWM_TCR         (*(REG32 (0xE0014004)))

-#define PWM_TC          (*(REG32 (0xE0014008)))

-#define PWM_PR          (*(REG32 (0xE001400C)))

-#define PWM_PC          (*(REG32 (0xE0014010)))

-#define PWM_MCR         (*(REG32 (0xE0014014)))

-#define PWM_MR0         (*(REG32 (0xE0014018)))

-#define PWM_MR1         (*(REG32 (0xE001401C)))

-#define PWM_MR2         (*(REG32 (0xE0014020)))

-#define PWM_MR3         (*(REG32 (0xE0014024)))

-#define PWM_MR4         (*(REG32 (0xE0014040)))

-#define PWM_MR5         (*(REG32 (0xE0014044)))

-#define PWM_MR6         (*(REG32 (0xE0014048)))

-#define PWM_EMR         (*(REG32 (0xE001403C)))

-#define PWM_PCR         (*(REG32 (0xE001404C)))

-#define PWM_LER         (*(REG32 (0xE0014050)))

-#define PWM_CCR         (*(REG32 (0xE0014028)))

-#define PWM_CR0         (*(REG32 (0xE001402C)))

-#define PWM_CR1         (*(REG32 (0xE0014030)))

-#define PWM_CR2         (*(REG32 (0xE0014034)))

-#define PWM_CR3         (*(REG32 (0xE0014038)))

-

-/*##############################################################################

-## RTC

-##############################################################################*/

-

-/* ---- RTC: Miscellaneous Register Group ------------------ */

-#define RTC_ILR         (*(REG32 (0xE0024000)))

-#define RTC_CTC         (*(REG32 (0xE0024004)))

-#define RTC_CCR         (*(REG32 (0xE0024008)))  

-#define RTC_CIIR        (*(REG32 (0xE002400C)))

-#define RTC_AMR         (*(REG32 (0xE0024010)))

-#define RTC_CTIME0      (*(REG32 (0xE0024014)))

-#define RTC_CTIME1      (*(REG32 (0xE0024018)))

-#define RTC_CTIME2      (*(REG32 (0xE002401C)))

-

-/* ---- RTC: Timer Control Group --------------------------- */

-#define RTC_SEC         (*(REG32 (0xE0024020)))

-#define RTC_MIN         (*(REG32 (0xE0024024)))

-#define RTC_HOUR        (*(REG32 (0xE0024028)))

-#define RTC_DOM         (*(REG32 (0xE002402C)))

-#define RTC_DOW         (*(REG32 (0xE0024030)))

-#define RTC_DOY         (*(REG32 (0xE0024034)))

-#define RTC_MONTH       (*(REG32 (0xE0024038)))

-#define RTC_YEAR        (*(REG32 (0xE002403C)))

-

-/* ---- RTC: Alarm Control Group --------------------------- */

-#define RTC_ALSEC       (*(REG32 (0xE0024060)))

-#define RTC_ALMIN       (*(REG32 (0xE0024064)))

-#define RTC_ALHOUR      (*(REG32 (0xE0024068)))

-#define RTC_ALDOM       (*(REG32 (0xE002406C)))

-#define RTC_ALDOW       (*(REG32 (0xE0024070)))

-#define RTC_ALDOY       (*(REG32 (0xE0024074)))

-#define RTC_ALMON       (*(REG32 (0xE0024078)))

-#define RTC_ALYEAR      (*(REG32 (0xE002407C)))

-

-/* ---- RTC: Reference Clock Divider Group ----------------- */

-#define RTC_PREINT      (*(REG32 (0xE0024080)))

-#define RTC_PREFRAC     (*(REG32 (0xE0024084)))

-

-

-/*##############################################################################

-## WD - Watchdog

-##############################################################################*/

-

-#define WD_WDMOD        (*(REG32 (0xE0000000)))

-#define WD_WDTC         (*(REG32 (0xE0000004)))

-#define WD_WDFEED       (*(REG32 (0xE0000008)))

-#define WD_WDTV         (*(REG32 (0xE000000C)))

-

-

-/*##############################################################################

-## System Control Block

-##############################################################################*/

-

-#define SCB_EXTINT      (*(REG32 (0xE01FC140)))

-#define SCB_EXTWAKE     (*(REG32 (0xE01FC144)))

-#define SCB_MEMMAP      (*(REG32 (0xE01FC040)))

-#define SCB_PLLCON      (*(REG32 (0xE01FC080)))

-#define SCB_PLLCFG      (*(REG32 (0xE01FC084)))

-#define SCB_PLLSTAT     (*(REG32 (0xE01FC088)))

-#define SCB_PLLFEED     (*(REG32 (0xE01FC08C)))

-#define SCB_PCON        (*(REG32 (0xE01FC0C0)))

-#define SCB_PCONP       (*(REG32 (0xE01FC0C4)))

-#define SCB_VPBDIV      (*(REG32 (0xE01FC100)))

-

-/*##############################################################################

-## Memory Accelerator Module (MAM)

-##############################################################################*/

-

-#define MAM_TIM			(*(REG32 (0xE01FC004)))

-#define MAM_CR			(*(REG32 (0xE01FC000)))

-

-#endif /* lpc210x_h */

-

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/main.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/main.c
deleted file mode 100644
index 62e3a77..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/main.c
+++ /dev/null
@@ -1,321 +0,0 @@
-/*

-    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.

-    All rights reserved

-

-    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

-

-    This file is part of the FreeRTOS distribution.

-

-    FreeRTOS is free software; you can redistribute it and/or modify it under

-    the terms of the GNU General Public License (version 2) as published by the

-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

-

-    ***************************************************************************

-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<

-    >>!   distribute a combined work that includes FreeRTOS without being   !<<

-    >>!   obliged to provide the source code for proprietary components     !<<

-    >>!   outside of the FreeRTOS kernel.                                   !<<

-    ***************************************************************************

-

-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following

-    link: http://www.freertos.org/a00114.html

-

-    ***************************************************************************

-     *                                                                       *

-     *    FreeRTOS provides completely free yet professionally developed,    *

-     *    robust, strictly quality controlled, supported, and cross          *

-     *    platform software that is more than just the market leader, it     *

-     *    is the industry's de facto standard.                               *

-     *                                                                       *

-     *    Help yourself get started quickly while simultaneously helping     *

-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *

-     *    tutorial book, reference manual, or both:                          *

-     *    http://www.FreeRTOS.org/Documentation                              *

-     *                                                                       *

-    ***************************************************************************

-

-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading

-    the FAQ page "My application does not run, what could be wrong?".  Have you

-    defined configASSERT()?

-

-    http://www.FreeRTOS.org/support - In return for receiving this top quality

-    embedded software for free we request you assist our global community by

-    participating in the support forum.

-

-    http://www.FreeRTOS.org/training - Investing in training allows your team to

-    be as productive as possible as early as possible.  Now you can receive

-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers

-    Ltd, and the world's leading authority on the world's leading RTOS.

-

-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS

-    compatible FAT file system, and our tiny thread aware UDP/IP stack.

-

-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.

-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

-

-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High

-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS

-    licenses offer ticketed support, indemnification and commercial middleware.

-

-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

-    engineered and independently SIL3 certified version for use in safety and

-    mission critical applications that require provable dependability.

-

-    1 tab == 4 spaces!

-*/

-

-/* 

-	NOTE : Tasks run in system mode and the scheduler runs in Supervisor mode.

-	The processor MUST be in supervisor mode when vTaskStartScheduler is 

-	called.  The demo applications included in the FreeRTOS.org download switch

-	to supervisor mode prior to main being called.  If you are not using one of

-	these demo application projects then ensure Supervisor mode is used.

-*/

-

-

-/*

- * Creates all the application tasks, then starts the scheduler.  

- * 

- * A task is created called "uIP".  This executes the uIP stack and small

- * WEB server sample.  All the other tasks are from the set of standard

- * demo tasks.  The WEB documentation provides more details of the standard

- * demo application tasks.

- *

- * Main.c also creates a task called "Check".  This only executes every three 

- * seconds but has the highest priority so is guaranteed to get processor time.  

- * Its main function is to check that all the other tasks are still operational.

- * Each standard demo task maintains a unique count that is incremented each 

- * time the task successfully completes its function.  Should any error occur 

- * within such a task the count is permanently halted.  The check task inspects

- * the count of each task to ensure it has changed since the last time the 

- * check task executed.  If all the count variables have changed all the tasks 

- * are still executing error free, and the check task toggles the yellow LED.  

- * Should any task contain an error at any time the LED toggle rate will change 

- * from 3 seconds to 500ms.

- *

- */

-

-

-/* Standard includes. */

-#include <stdlib.h>

-#include <string.h>

-

-/* Scheduler includes. */

-#include "FreeRTOS.h"

-#include "task.h"

-

-/* Demo application includes. */

-#include "PollQ.h"

-#include "dynamic.h"

-#include "semtest.h"

-

-/*-----------------------------------------------------------*/

-

-/* Constants to setup the PLL. */

-#define mainPLL_MUL_4		( ( unsigned char ) 0x0003 )

-#define mainPLL_DIV_1		( ( unsigned char ) 0x0000 )

-#define mainPLL_ENABLE		( ( unsigned char ) 0x0001 )

-#define mainPLL_CONNECT		( ( unsigned char ) 0x0003 )

-#define mainPLL_FEED_BYTE1	( ( unsigned char ) 0xaa )

-#define mainPLL_FEED_BYTE2	( ( unsigned char ) 0x55 )

-#define mainPLL_LOCK		( ( unsigned long ) 0x0400 )

-

-/* Constants to setup the MAM. */

-#define mainMAM_TIM_3		( ( unsigned char ) 0x03 )

-#define mainMAM_MODE_FULL	( ( unsigned char ) 0x02 )

-

-/* Constants to setup the peripheral bus. */

-#define mainBUS_CLK_FULL	( ( unsigned char ) 0x01 )

-

-/* Priorities/stacks for the demo application tasks. */

-#define mainQUEUE_POLL_PRIORITY		( tskIDLE_PRIORITY + 2 )

-#define mainCHECK_TASK_PRIORITY		( tskIDLE_PRIORITY + 4 )

-#define mainSEM_TEST_PRIORITY		( tskIDLE_PRIORITY + 1 )

-#define mainUIP_PRIORITY			( tskIDLE_PRIORITY + 3 )

-#define mainUIP_TASK_STACK_SIZE		( 150 )

-

-/* The rate at which the on board LED will toggle when there is/is not an 

-error. */

-#define mainNO_ERROR_FLASH_PERIOD	( ( TickType_t ) 3000 / portTICK_PERIOD_MS  )

-#define mainERROR_FLASH_PERIOD		( ( TickType_t ) 500 / portTICK_PERIOD_MS  )

-#define mainON_BOARD_LED_BIT		( ( unsigned long ) 0x80 )

-#define mainYELLOW_LED				( 1 << 11 )

-

-/*-----------------------------------------------------------*/

-

-/*

- * This is the uIP task which is defined within the uip.c file.  This has not

- * been placed into a header file in order to minimise the changes to the uip

- * code.

- */

-extern void ( vuIP_TASK ) ( void *pvParameters );

-

-/*

- * The Yellow LED is under the control of the Check task.  All the other LED's

- * are under the control of the uIP task. 

- */

-void prvToggleOnBoardLED( void );

-

-/*

- * Checks that all the demo application tasks are still executing without error

- * - as described at the top of the file.

- */

-static long prvCheckOtherTasksAreStillRunning( void );

-

-/*

- * The task that executes at the highest priority and calls 

- * prvCheckOtherTasksAreStillRunning().  See the description at the top

- * of the file.

- */

-static void vErrorChecks( void *pvParameters );

-

-/*

- * Configure the processor for use with the Olimex demo board.  This includes

- * setup for the I/O, system clock, and access timings.

- */

-static void prvSetupHardware( void );

-

-/*-----------------------------------------------------------*/

-

-/*

- * Starts all the other tasks, then starts the scheduler. 

- */

-int main( void )

-{

-	/* Configure the processor. */

-	prvSetupHardware();

-

-	/* Start the task that handles the TCP/IP functionality. */

-    xTaskCreate( vuIP_TASK, "uIP", mainUIP_TASK_STACK_SIZE, NULL, mainUIP_PRIORITY, NULL );

-	

-	/* Start the demo/test application tasks.  These are created in addition 

-	to the TCP/IP task for demonstration and test purposes. */

-	vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );

-	vStartDynamicPriorityTasks();

-	vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );

-

-	/* Start the check task - which is defined in this file. */	

-    xTaskCreate( vErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );

-

-	/* Now all the tasks have been started - start the scheduler.

-

-	NOTE : Tasks run in system mode and the scheduler runs in Supervisor mode.

-	The processor MUST be in supervisor mode when vTaskStartScheduler is 

-	called.  The demo applications included in the FreeRTOS.org download switch

-	to supervisor mode prior to main being called.  If you are not using one of

-	these demo application projects then ensure Supervisor mode is used here. */

-	vTaskStartScheduler();

-

-	/* Should never reach here! */

-	return 0;

-}

-/*-----------------------------------------------------------*/

-

-static void vErrorChecks( void *pvParameters )

-{

-TickType_t xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;

-

-	/* Cycle for ever, delaying then checking all the other tasks are still

-	operating without error.  If an error is detected then the delay period

-	is decreased from mainNO_ERROR_FLASH_PERIOD to mainERROR_FLASH_PERIOD so

-	the on board LED flash rate will increase. */

-	for( ;; )

-	{

-		/* Delay until it is time to execute again. */

-		vTaskDelay( xDelayPeriod );

-	

-		/* Check all the standard demo application tasks are executing without 

-		error.  */

-		if( prvCheckOtherTasksAreStillRunning() != pdPASS )

-		{

-			/* An error has been detected in one of the tasks - flash faster. */

-			xDelayPeriod = mainERROR_FLASH_PERIOD;

-		}

-

-		prvToggleOnBoardLED();

-	}

-}

-/*-----------------------------------------------------------*/

-

-static void prvSetupHardware( void )

-{

-	#ifdef RUN_FROM_RAM

-		/* Remap the interrupt vectors to RAM if we are are running from RAM. */

-		SCB_MEMMAP = 2;

-	#endif

-

-	/* Setup the PLL to multiply the XTAL input by 4. */

-	SCB_PLLCFG = ( mainPLL_MUL_4 | mainPLL_DIV_1 );

-

-	/* Activate the PLL by turning it on then feeding the correct sequence of

-	bytes. */

-	SCB_PLLCON = mainPLL_ENABLE;

-	SCB_PLLFEED = mainPLL_FEED_BYTE1;

-	SCB_PLLFEED = mainPLL_FEED_BYTE2;

-

-	/* Wait for the PLL to lock... */

-	while( !( SCB_PLLSTAT & mainPLL_LOCK ) );

-

-	/* ...before connecting it using the feed sequence again. */

-	SCB_PLLCON = mainPLL_CONNECT;

-	SCB_PLLFEED = mainPLL_FEED_BYTE1;

-	SCB_PLLFEED = mainPLL_FEED_BYTE2;

-

-	/* Setup and turn on the MAM.  Three cycle access is used due to the fast

-	PLL used.  It is possible faster overall performance could be obtained by

-	tuning the MAM and PLL settings. */

-	MAM_TIM = mainMAM_TIM_3;

-	MAM_CR = mainMAM_MODE_FULL;

-

-	/* Setup the peripheral bus to be the same as the PLL output. */

-	SCB_VPBDIV = mainBUS_CLK_FULL;

-}

-/*-----------------------------------------------------------*/

-

-void prvToggleOnBoardLED( void )

-{

-unsigned long ulState;

-

-	ulState = GPIO0_IOPIN;

-	if( ulState & mainYELLOW_LED )

-	{

-		GPIO_IOCLR = mainYELLOW_LED;

-	}

-	else

-	{

-		GPIO_IOSET = mainYELLOW_LED;

-	}	

-}

-/*-----------------------------------------------------------*/

-

-static long prvCheckOtherTasksAreStillRunning( void )

-{

-long lReturn = ( long ) pdPASS;

-

-	/* Check all the demo tasks (other than the flash tasks) to ensure

-	that they are all still running, and that none of them have detected

-	an error. */

-

-	if( xArePollingQueuesStillRunning() != pdTRUE )

-	{

-		lReturn = ( long ) pdFAIL;

-	}

-

-	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )

-	{

-		lReturn = ( long ) pdFAIL;

-	}

-

-	if( xAreSemaphoreTasksStillRunning() != pdTRUE )

-	{

-		lReturn = ( long ) pdFAIL;

-	}

-

-	return lReturn;

-}

-

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzp b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzp
deleted file mode 100644
index e5d235e..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzp
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE CrossStudio_Project_File>
-<solution version="1" Name="rtosdemo" >
-  <project Name="rtosdemo" >
-    <configuration arm_target_loader_parameter="14745600" Target="LPC2124" property_groups_file_path="$(StudioDir)/targets/Philips_LPC210X/propertyGroups.xml" oscillator_frequency="14.7456MHz" linker_memory_map_file="$(StudioDir)/targets/Philips_LPC210X/Philips_LPC2124_MemoryMap.xml" gcc_entry_point="_start" c_preprocessor_definitions="THUMB_INTERWORK;SUPERVISOR_START;VECTORED_IRQ_INTERRUPTS;GCC_ARM7" c_user_include_directories="../../Source/include;../../Demo/uIP_Demo_Rowley_ARM7;../../Demo/Common/Include;uip;." project_directory="" link_include_startup_code="No" project_type="Executable" c_additional_options="" Name="Common" />
-    <configuration target_reset_script="SRAMReset()" Name="RAM" />
-    <configuration arm_target_flash_loader_file_path="$(StudioDir)/targets/Philips_LPC210X/Release/Loader.exe" target_reset_script="FLASHReset()" Name="Flash" />
-    <folder Name="uIP Source" >
-      <configuration filter="c;cpp;cxx;cc;h;s;asm;inc" Name="Common" />
-      <file file_name="uip/cgi.c" Name="cgi.c" />
-      <file file_name="uip/cs8900a.c" Name="cs8900a.c" />
-      <file file_name="uip/fs.c" Name="fs.c" />
-      <file file_name="uip/httpd.c" Name="httpd.c" />
-      <file file_name="uip/uip.c" Name="uip.c" />
-      <file file_name="uip/uip_arch.c" Name="uip_arch.c" />
-      <file file_name="uip/uip_arp.c" Name="uip_arp.c" />
-      <file file_name="uip/uIP_Task.c" Name="uIP_Task.c" >
-        <configuration c_preprocessor_definitions="GCC_ARM7" Name="Common" />
-      </file>
-    </folder>
-    <folder Name="System Files" >
-      <configuration filter="" Name="Common" />
-      <file file_name="$(StudioDir)/source/crt0.s" Name="crt0.s" />
-      <file file_name="$(StudioDir)/targets/Philips_LPC210X/Philips_LPC210X_Target.js" Name="Philips_LPC210X_Target.js" >
-        <configuration Name="Common" file_type="Reset Script" />
-      </file>
-      <file file_name="flash_placement.xml" Name="flash_placement.xml" />
-      <file file_name="Philips_LPC210X_Startup.s" Name="Philips_LPC210X_Startup.s" />
-    </folder>
-    <folder Name="FreeRTOS Source" >
-      <configuration filter="" Name="Common" />
-      <file file_name="../../Source/tasks.c" Name="tasks.c" />
-      <file file_name="../../Source/queue.c" Name="queue.c" />
-      <file file_name="../../Source/list.c" Name="list.c" />
-      <file file_name="../../Source/portable/MemMang/heap_2.c" Name="heap_2.c" />
-      <file file_name="../../Source/portable/GCC/ARM7_LPC2000/port.c" Name="port.c" />
-      <file file_name="../../Source/portable/GCC/ARM7_LPC2000/portISR.c" Name="portISR.c" >
-        <configuration arm_instruction_set="ARM" Name="THUMB Flash Debug" />
-      </file>
-    </folder>
-    <folder Name="Demo App Source" >
-      <configuration filter="" Name="Common" />
-      <file file_name="../Common/Minimal/dynamic.c" Name="dynamic.c" />
-      <file file_name="../Common/Minimal/semtest.c" Name="semtest.c" />
-      <file file_name="main.c" Name="main.c" />
-      <file file_name="../Common/Minimal/PollQ.c" Name="PollQ.c" />
-    </folder>
-    <configuration c_preprocessor_definitions="" c_user_include_directories="" Name="Debug" />
-    <configuration arm_target_loader_parameter="14745600" oscillator_frequency="14.7456MHz" Name="THUMB Flash Debug" linker_output_format="hex" />
-  </project>
-  <configuration inherited_configurations="THUMB;Flash;Debug" Name="THUMB Flash Debug" />
-  <configuration arm_library_instruction_set="THUMB" c_preprocessor_definitions="__THUMB" arm_instruction_set="THUMB" hidden="Yes" Name="THUMB" />
-  <configuration c_preprocessor_definitions="__FLASH_BUILD" hidden="Yes" Name="Flash" />
-  <configuration c_preprocessor_definitions="DEBUG" link_include_startup_code="No" gcc_optimization_level="None" build_debug_information="Yes" Name="Debug" />
-  <configuration c_preprocessor_definitions="NDEBUG" link_include_startup_code="No" gcc_optimization_level="Level 1" build_debug_information="No" Name="Release" />
-  <configuration c_preprocessor_definitions="" c_additional_options="-fomit-frame-pointer" Name="Common" />
-</solution>
diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzs b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzs
deleted file mode 100644
index 768dbc3..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzs
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE CrossStudio_for_ARM_Session_File>
-<session>
- <Bookmarks/>
- <Breakpoints/>
- <ExecutionCountWindow/>
- <Memory1>
-  <MemoryWindow autoEvaluate="0" addressText="" numColumns="8" sizeText="128" dataSize="1" radix="16" addressSpace="" />
- </Memory1>
- <Memory2>
-  <MemoryWindow autoEvaluate="0" addressText="0xE01FC040" numColumns="8" sizeText="4" dataSize="4" radix="16" addressSpace="" />
- </Memory2>
- <Memory3>
-  <MemoryWindow autoEvaluate="0" addressText="0xE01FC080" numColumns="8" sizeText="12" dataSize="4" radix="16" addressSpace="" />
- </Memory3>
- <Memory4>
-  <MemoryWindow autoEvaluate="0" addressText="" numColumns="8" sizeText="" dataSize="1" radix="16" addressSpace="" />
- </Memory4>
- <Project>
-  <ProjectSessionItem path="rtosdemo" name="unnamed" />
- </Project>
- <Register1>
-  <RegisterWindow openNodes="" binaryNodes="" unsignedNodes="" visibleGroups="CPU - Current Mode" decimalNodes="" octalNodes="" asciiNodes="" />
- </Register1>
- <Register2>
-  <RegisterWindow openNodes="" binaryNodes="" unsignedNodes="" visibleGroups="" decimalNodes="" octalNodes="" asciiNodes="" />
- </Register2>
- <Register3>
-  <RegisterWindow openNodes="" binaryNodes="" unsignedNodes="" visibleGroups="" decimalNodes="" octalNodes="" asciiNodes="" />
- </Register3>
- <Register4>
-  <RegisterWindow openNodes="" binaryNodes="" unsignedNodes="" visibleGroups="" decimalNodes="" octalNodes="" asciiNodes="" />
- </Register4>
- <TargetWindow programAction="" uploadFileType="" programLoadAddress="" programSize="" uploadFileName="" uploadMemoryInterface="" programFileName="" uploadStartAddress="" programFileType="" uploadSize="" programMemoryInterface="" />
- <TraceWindow>
-  <Trace enabled="Yes" />
- </TraceWindow>
- <Watch1>
-  <Watches active="1" update="Never" />
- </Watch1>
- <Watch2>
-  <Watches active="0" update="Never" />
- </Watch2>
- <Watch3>
-  <Watches active="0" update="Never" />
- </Watch3>
- <Watch4>
-  <Watches active="0" update="Never" />
- </Watch4>
- <Files/>
- <ARMCrossStudioWindow activeProject="rtosdemo" autoConnectTarget="/USB CrossConnect for ARM" debugSearchFileMap="" fileDialogInitialDirectory="C:\E\Dev\_FreeRTOS\Demo\uIP_Demo_Rowley_ARM7" fileDialogDefaultFilter="*" autoConnectCapabilities="0" debugSearchPath="" buildConfiguration="THUMB Flash Debug" />
-</session>
diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/Makefile b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/Makefile
deleted file mode 100644
index 61d3a06..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/Makefile
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright (c) 2001, Adam Dunkels.

-# All rights reserved. 

-#

-# Redistribution and use in source and binary forms, with or without 

-# modification, are permitted provided that the following conditions 

-# are met: 

-# 1. Redistributions of source code must retain the above copyright 

-#    notice, this list of conditions and the following disclaimer. 

-# 2. Redistributions in binary form must reproduce the above copyright 

-#    notice, this list of conditions and the following disclaimer in the 

-#    documentation and/or other materials provided with the distribution. 

-# 3. All advertising materials mentioning features or use of this software

-#    must display the following acknowledgement:

-#      This product includes software developed by Adam Dunkels.

-# 4. The name of the author may not be used to endorse or promote

-#    products derived from this software without specific prior

-#    written permission.  

-#

-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

-# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

-#

-# This file is part of the uIP TCP/IP stack.

-#

-# $Id: Makefile,v 1.8.2.2 2003/10/04 22:54:17 adam Exp $

-#

-

-CC=gcc

-CFLAGS=-Wall -g -I../uip -I. -I../apps/httpd -I../apps/resolv -I../apps/webclient -I../apps/smtp  -I../apps/telnet -fpack-struct

-

-%.o:

-	$(CC) $(CFLAGS) -c $(<:.o=.c)

-

-

-uip: uip.o uip_arch.o tapdev.o httpd.o main.o fs.o uip_arp.o cgi.o 

-

-tapdev.o: tapdev.c uipopt.h

-main.o: main.c ../uip/uip.h uipopt.h ../apps/httpd/httpd.h \

- tapdev.h

-uip_arch.o: uip_arch.c ../uip/uip_arch.h ../uip/uip.h uipopt.h \

- ../apps/httpd/httpd.h 

-uip.o: ../uip/uip.c ../uip/uip.h uipopt.h ../apps/httpd/httpd.h 

-

-uip_arp.o: ../uip/uip_arp.c ../uip/uip_arp.h ../uip/uip.h uipopt.h \

- ../apps/httpd/httpd.h

-	$(CC) -o uip_arp.o $(CFLAGS) -fpack-struct -c ../uip/uip_arp.c

-

-

-cgi.o: ../apps/httpd/cgi.c ../uip/uip.h uipopt.h ../apps/smtp/smtp.h \

- ../apps/httpd/cgi.h ../apps/httpd/httpd.h ../apps/httpd/fs.h

-fs.o: ../apps/httpd/fs.c ../uip/uip.h uipopt.h ../apps/smtp/smtp.h \

- ../apps/httpd/httpd.h ../apps/httpd/fs.h ../apps/httpd/fsdata.h \

- ../apps/httpd/fsdata.c

-fsdata.o: ../apps/httpd/fsdata.c

-httpd.o: ../apps/httpd/httpd.c ../uip/uip.h uipopt.h \

- ../apps/smtp/smtp.h ../apps/httpd/httpd.h ../apps/httpd/fs.h \

- ../apps/httpd/fsdata.h ../apps/httpd/cgi.h

-

-clean:

-	rm -f *.o *~ *core uip

-

-

-

-

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cgi.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cgi.c
deleted file mode 100644
index 06574a1..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cgi.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/**

- * \addtogroup httpd

- * @{

- */

-

-/**

- * \file

- * HTTP server script language C functions file.

- * \author Adam Dunkels <adam@dunkels.com>

- *

- * This file contains functions that are called by the web server

- * scripts. The functions takes one argument, and the return value is

- * interpreted as follows. A zero means that the function did not

- * complete and should be invoked for the next packet as well. A

- * non-zero value indicates that the function has completed and that

- * the web server should move along to the next script line.

- *

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: cgi.c,v 1.23.2.4 2003/10/07 13:22:27 adam Exp $

- *

- */

-

-#include "uip.h"

-#include "cgi.h"

-#include "httpd.h"

-#include "fs.h"

-

-#include <stdio.h>

-#include <string.h>

-

-static u8_t print_stats(u8_t next);

-static u8_t file_stats(u8_t next);

-static u8_t tcp_stats(u8_t next);

-

-cgifunction cgitab[] = {

-  print_stats,   /* CGI function "a" */

-  file_stats,    /* CGI function "b" */

-  tcp_stats      /* CGI function "c" */

-};

-

-static const char closed[] =   /*  "CLOSED",*/

-{0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0};

-static const char syn_rcvd[] = /*  "SYN-RCVD",*/

-{0x53, 0x59, 0x4e, 0x2d, 0x52, 0x43, 0x56, 

- 0x44,  0};

-static const char syn_sent[] = /*  "SYN-SENT",*/

-{0x53, 0x59, 0x4e, 0x2d, 0x53, 0x45, 0x4e, 

- 0x54,  0};

-static const char established[] = /*  "ESTABLISHED",*/

-{0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48, 

- 0x45, 0x44, 0};

-static const char fin_wait_1[] = /*  "FIN-WAIT-1",*/

-{0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49, 

- 0x54, 0x2d, 0x31, 0};

-static const char fin_wait_2[] = /*  "FIN-WAIT-2",*/

-{0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49, 

- 0x54, 0x2d, 0x32, 0};

-static const char closing[] = /*  "CLOSING",*/

-{0x43, 0x4c, 0x4f, 0x53, 0x49, 

- 0x4e, 0x47, 0};

-static const char time_wait[] = /*  "TIME-WAIT,"*/

-{0x54, 0x49, 0x4d, 0x45, 0x2d, 0x57, 0x41, 

- 0x49, 0x54, 0};

-static const char last_ack[] = /*  "LAST-ACK"*/

-{0x4c, 0x41, 0x53, 0x54, 0x2d, 0x41, 0x43, 

- 0x4b, 0};

-

-static const char *states[] = {

-  closed,

-  syn_rcvd,

-  syn_sent,

-  established,

-  fin_wait_1,

-  fin_wait_2,

-  closing,

-  time_wait,

-  last_ack};

-  

-

-/*-----------------------------------------------------------------------------------*/

-/* print_stats:

- *

- * Prints out a part of the uIP statistics. The statistics data is

- * written into the uip_appdata buffer. It overwrites any incoming

- * packet.

- */

-static u8_t

-print_stats(u8_t next)

-{

-#if UIP_STATISTICS

-  u16_t i, j;

-  u8_t *buf;

-  u16_t *databytes;

-  

-  if(next) {

-    /* If our last data has been acknowledged, we move on the next

-       chunk of statistics. */

-    hs->count = hs->count + 4;

-    if(hs->count >= sizeof(struct uip_stats)/sizeof(u16_t)) {

-      /* We have printed out all statistics, so we return 1 to

-	 indicate that we are done. */

-      return 1;

-    }

-  }

-

-  /* Write part of the statistics into the uip_appdata buffer. */

-  databytes = (u16_t *)&uip_stat + hs->count;

-  buf       = (u8_t *)uip_appdata;

-

-  j = 4 + 1;

-  i = hs->count;

-  while (i < sizeof(struct uip_stats)/sizeof(u16_t) && --j > 0) {

-    sprintf((char *)buf, "%5u\r\n", *databytes);

-    ++databytes;

-    buf += 6;

-    ++i;

-  }

-

-  /* Send the data. */

-  uip_send(uip_appdata, buf - uip_appdata);

-  

-  return 0;

-#else

-  return 1;

-#endif /* UIP_STATISTICS */

-}

-/*-----------------------------------------------------------------------------------*/

-static u8_t

-file_stats(u8_t next)

-{

-  /* We use sprintf() to print the number of file accesses to a

-     particular file (given as an argument to the function in the

-     script). We then use uip_send() to actually send the data. */

-  if(next) {

-    return 1;

-  }

-  uip_send(uip_appdata, sprintf((char *)uip_appdata, "%5u", fs_count(&hs->script[4])));  

-  return 0;

-}

-/*-----------------------------------------------------------------------------------*/

-static u8_t

-tcp_stats(u8_t next)

-{

-  struct uip_conn *conn;  

-

-  if(next) {

-    /* If the previously sent data has been acknowledged, we move

-       forward one connection. */

-    if(++hs->count == UIP_CONNS) {

-      /* If all connections has been printed out, we are done and

-	 return 1. */

-      return 1;

-    }

-  }

-  

-  conn = &uip_conns[hs->count];

-  if((conn->tcpstateflags & TS_MASK) == CLOSED) {

-    uip_send(uip_appdata, sprintf((char *)uip_appdata,

-				  "<tr align=\"center\"><td>-</td><td>-</td><td>%u</td><td>%u</td><td>%c %c</td></tr>\r\n",

-				  conn->nrtx,

-				  conn->timer,

-				  (uip_outstanding(conn))? '*':' ',

-    				  (uip_stopped(conn))? '!':' '));

-  } else {

-    uip_send(uip_appdata, sprintf((char *)uip_appdata,

-				  "<tr align=\"center\"><td>%u.%u.%u.%u:%u</td><td>%s</td><td>%u</td><td>%u</td><td>%c %c</td></tr>\r\n",

-				  htons(conn->ripaddr[0]) >> 8,

-				  htons(conn->ripaddr[0]) & 0xff,

-				  htons(conn->ripaddr[1]) >> 8,

-				  htons(conn->ripaddr[1]) & 0xff,

-				  htons(conn->rport),

-				  states[conn->tcpstateflags & TS_MASK],

-				  conn->nrtx,

-				  conn->timer,

-				  (uip_outstanding(conn))? '*':' ',

-    				  (uip_stopped(conn))? '!':' '));

-  }

-  return 0;

-}

-/*-----------------------------------------------------------------------------------*/

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cgi.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cgi.h
deleted file mode 100644
index d85389b..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cgi.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/**

- * \addtogroup httpd

- * @{

- */

-

-/**

- * \file

- * HTTP script language header file.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: cgi.h,v 1.3.2.4 2003/10/07 13:22:27 adam Exp $

- *

- */

-

-#ifndef __CGI_H__

-#define __CGI_H__

-

-typedef u8_t (* cgifunction)(u8_t next);

-

-/**

- * A table containing pointers to C functions that can be called from

- * a web server script.

- */

-extern cgifunction cgitab[];

-

-#endif /* __CGI_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/crt0.asm b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/crt0.asm
deleted file mode 100644
index ef91f42..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/crt0.asm
+++ /dev/null
@@ -1,66 +0,0 @@
-// Rowley C Compiler, runtime support.

-//

-// Copyright (c) 2001, 2002, 2003 Rowley Associates Limited.

-//

-// This file may be distributed under the terms of the License Agreement

-// provided with this software.

-//

-// THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE

-// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

-

-; Create sections

-        .data

-        .bss

-

-; Go to code section.

-        .code

-

-; Executed upon reset

-__reset proc

-

-; Turn off watchdog.  You can enable it in main() if required.

-        mov.w   #0x5a80, &0x120

-

-; Set up stack.

-        mov.w   #RAM_Start_Address+RAM_Size, sp

-

-; Copy from initialised data section to data section.

-        mov.w   #SFB(IDATA0), r15

-        mov.w   #data_init_begin, r14

-        mov.w   #data_init_end-data_init_begin, r13

-        call    #_memcpy

-

-; Zero the bss.  Ensure the stack is not allocated in the bss!

-        mov.w   #SFB(UDATA0), r15

-        mov.w   #0, r14

-        mov.w   #SFE(UDATA0)-SFB(UDATA0), r13

-        call    #_memset

-

-; Call user entry point void main(void).

-        call    #_main

-

-; If main() returns, kick off again.

-        jmp     __reset

-        endproc

-

-; Heap data structures; removed by the linker if the heap isn't used.

-        .break   

-        .data

-        align   WORD

-___heap_start__::

-        DW      0

-        DW      heap_size

-        DS      heap_size-4    

-

-; Reset vector

-        .vectors

-        .keep

-        org     0x1e

-        dw      __reset

-

-; Initialise the IDATA0 section by duplicating the contents into the

-; CONST section and copying them on startup.

-        .const

-data_init_begin:

-        .init  "IDATA0"

-data_init_end:

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.c
deleted file mode 100644
index 6d06fd6..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.c
+++ /dev/null
@@ -1,546 +0,0 @@
-// cs8900a.c: device driver for the CS8900a chip in 8-bit mode.

-

-#include <LPC210x.h>

-

-#include "cs8900a.h"

-#include "uip.h"

-#include "uip_arp.h"

-

-#define IOR                  (1<<12)          // CS8900's ISA-bus interface pins

-#define IOW                  (1<<13)

-

-// definitions for Crystal CS8900 ethernet-controller

-// based on linux-header by Russel Nelson

-

-#define PP_ChipID            0x0000          // offset 0h -> Corp-ID

-

-											 // offset 2h -> Model/Product Number

-#define LED_RED (1<<8)

-#define LED_GREEN (1<<10)

-#define LED_YELLOW (1<<11)

-

-#define PP_ISAIOB            0x0020          // IO base address

-#define PP_CS8900_ISAINT     0x0022          // ISA interrupt select

-#define PP_CS8900_ISADMA     0x0024          // ISA Rec DMA channel

-#define PP_ISASOF            0x0026          // ISA DMA offset

-#define PP_DmaFrameCnt       0x0028          // ISA DMA Frame count

-#define PP_DmaByteCnt        0x002A          // ISA DMA Byte count

-#define PP_CS8900_ISAMemB    0x002C          // Memory base

-#define PP_ISABootBase       0x0030          // Boot Prom base

-#define PP_ISABootMask       0x0034          // Boot Prom Mask

-

-// EEPROM data and command registers

-#define PP_EECMD             0x0040          // NVR Interface Command register

-#define PP_EEData            0x0042          // NVR Interface Data Register

-

-// Configuration and control registers

-#define PP_RxCFG             0x0102          // Rx Bus config

-#define PP_RxCTL             0x0104          // Receive Control Register

-#define PP_TxCFG             0x0106          // Transmit Config Register

-#define PP_TxCMD             0x0108          // Transmit Command Register

-#define PP_BufCFG            0x010A          // Bus configuration Register

-#define PP_LineCTL           0x0112          // Line Config Register

-#define PP_SelfCTL           0x0114          // Self Command Register

-#define PP_BusCTL            0x0116          // ISA bus control Register

-#define PP_TestCTL           0x0118          // Test Register

-

-// Status and Event Registers

-#define PP_ISQ               0x0120          // Interrupt Status

-#define PP_RxEvent           0x0124          // Rx Event Register

-#define PP_TxEvent           0x0128          // Tx Event Register

-#define PP_BufEvent          0x012C          // Bus Event Register

-#define PP_RxMiss            0x0130          // Receive Miss Count

-#define PP_TxCol             0x0132          // Transmit Collision Count

-#define PP_LineST            0x0134          // Line State Register

-#define PP_SelfST            0x0136          // Self State register

-#define PP_BusST             0x0138          // Bus Status

-#define PP_TDR               0x013C          // Time Domain Reflectometry

-

-// Initiate Transmit Registers

-#define PP_TxCommand         0x0144          // Tx Command

-#define PP_TxLength          0x0146          // Tx Length

-

-// Adress Filter Registers

-#define PP_LAF               0x0150          // Hash Table

-#define PP_IA                0x0158          // Physical Address Register

-

-// Frame Location

-#define PP_RxStatus          0x0400          // Receive start of frame

-#define PP_RxLength          0x0402          // Receive Length of frame

-#define PP_RxFrame           0x0404          // Receive frame pointer

-#define PP_TxFrame           0x0A00          // Transmit frame pointer

-

-// Primary I/O Base Address. If no I/O base is supplied by the user, then this

-// can be used as the default I/O base to access the PacketPage Area.

-#define DEFAULTIOBASE        0x0300

-

-// PP_RxCFG - Receive  Configuration and Interrupt Mask bit definition - Read/write

-#define SKIP_1               0x0040

-#define RX_STREAM_ENBL       0x0080

-#define RX_OK_ENBL           0x0100

-#define RX_DMA_ONLY          0x0200

-#define AUTO_RX_DMA          0x0400

-#define BUFFER_CRC           0x0800

-#define RX_CRC_ERROR_ENBL    0x1000

-#define RX_RUNT_ENBL         0x2000

-#define RX_EXTRA_DATA_ENBL   0x4000

-

-// PP_RxCTL - Receive Control bit definition - Read/write

-#define RX_IA_HASH_ACCEPT    0x0040

-#define RX_PROM_ACCEPT       0x0080

-#define RX_OK_ACCEPT         0x0100

-#define RX_MULTCAST_ACCEPT   0x0200

-#define RX_IA_ACCEPT         0x0400

-#define RX_BROADCAST_ACCEPT  0x0800

-#define RX_BAD_CRC_ACCEPT    0x1000

-#define RX_RUNT_ACCEPT       0x2000

-#define RX_EXTRA_DATA_ACCEPT 0x4000

-

-// PP_TxCFG - Transmit Configuration Interrupt Mask bit definition - Read/write

-#define TX_LOST_CRS_ENBL     0x0040

-#define TX_SQE_ERROR_ENBL    0x0080

-#define TX_OK_ENBL           0x0100

-#define TX_LATE_COL_ENBL     0x0200

-#define TX_JBR_ENBL          0x0400

-#define TX_ANY_COL_ENBL      0x0800

-#define TX_16_COL_ENBL       0x8000

-

-// PP_TxCMD - Transmit Command bit definition - Read-only and

-// PP_TxCommand - Write-only

-#define TX_START_5_BYTES     0x0000

-#define TX_START_381_BYTES   0x0040

-#define TX_START_1021_BYTES  0x0080

-#define TX_START_ALL_BYTES   0x00C0

-#define TX_FORCE             0x0100

-#define TX_ONE_COL           0x0200

-#define TX_NO_CRC            0x1000

-#define TX_RUNT              0x2000

-

-// PP_BufCFG - Buffer Configuration Interrupt Mask bit definition - Read/write

-#define GENERATE_SW_INTERRUPT      0x0040

-#define RX_DMA_ENBL                0x0080

-#define READY_FOR_TX_ENBL          0x0100

-#define TX_UNDERRUN_ENBL           0x0200

-#define RX_MISS_ENBL               0x0400

-#define RX_128_BYTE_ENBL           0x0800

-#define TX_COL_COUNT_OVRFLOW_ENBL  0x1000

-#define RX_MISS_COUNT_OVRFLOW_ENBL 0x2000

-#define RX_DEST_MATCH_ENBL         0x8000

-

-// PP_LineCTL - Line Control bit definition - Read/write

-#define SERIAL_RX_ON         0x0040

-#define SERIAL_TX_ON         0x0080

-#define AUI_ONLY             0x0100

-#define AUTO_AUI_10BASET     0x0200

-#define MODIFIED_BACKOFF     0x0800

-#define NO_AUTO_POLARITY     0x1000

-#define TWO_PART_DEFDIS      0x2000

-#define LOW_RX_SQUELCH       0x4000

-

-// PP_SelfCTL - Software Self Control bit definition - Read/write

-#define POWER_ON_RESET       0x0040

-#define SW_STOP              0x0100

-#define SLEEP_ON             0x0200

-#define AUTO_WAKEUP          0x0400

-#define HCB0_ENBL            0x1000

-#define HCB1_ENBL            0x2000

-#define HCB0                 0x4000

-#define HCB1                 0x8000

-

-// PP_BusCTL - ISA Bus Control bit definition - Read/write

-#define RESET_RX_DMA         0x0040

-#define MEMORY_ON            0x0400

-#define DMA_BURST_MODE       0x0800

-#define IO_CHANNEL_READY_ON  0x1000

-#define RX_DMA_SIZE_64K      0x2000

-#define ENABLE_IRQ           0x8000

-

-// PP_TestCTL - Test Control bit definition - Read/write

-#define LINK_OFF             0x0080

-#define ENDEC_LOOPBACK       0x0200

-#define AUI_LOOPBACK         0x0400

-#define BACKOFF_OFF          0x0800

-#define FDX_8900             0x4000

-

-// PP_RxEvent - Receive Event Bit definition - Read-only

-#define RX_IA_HASHED         0x0040

-#define RX_DRIBBLE           0x0080

-#define RX_OK                0x0100

-#define RX_HASHED            0x0200

-#define RX_IA                0x0400

-#define RX_BROADCAST         0x0800

-#define RX_CRC_ERROR         0x1000

-#define RX_RUNT              0x2000

-#define RX_EXTRA_DATA        0x4000

-#define HASH_INDEX_MASK      0xFC00          // Hash-Table Index Mask (6 Bit)

-

-// PP_TxEvent - Transmit Event Bit definition - Read-only

-#define TX_LOST_CRS          0x0040

-#define TX_SQE_ERROR         0x0080

-#define TX_OK                0x0100

-#define TX_LATE_COL          0x0200

-#define TX_JBR               0x0400

-#define TX_16_COL            0x8000

-#define TX_COL_COUNT_MASK    0x7800

-

-// PP_BufEvent - Buffer Event Bit definition - Read-only

-#define SW_INTERRUPT         0x0040

-#define RX_DMA               0x0080

-#define READY_FOR_TX         0x0100

-#define TX_UNDERRUN          0x0200

-#define RX_MISS              0x0400

-#define RX_128_BYTE          0x0800

-#define TX_COL_OVRFLW        0x1000

-#define RX_MISS_OVRFLW       0x2000

-#define RX_DEST_MATCH        0x8000

-

-// PP_LineST - Ethernet Line Status bit definition - Read-only

-#define LINK_OK              0x0080

-#define AUI_ON               0x0100

-#define TENBASET_ON          0x0200

-#define POLARITY_OK          0x1000

-#define CRS_OK               0x4000

-

-// PP_SelfST - Chip Software Status bit definition

-#define ACTIVE_33V           0x0040

-#define INIT_DONE            0x0080

-#define SI_BUSY              0x0100

-#define EEPROM_PRESENT       0x0200

-#define EEPROM_OK            0x0400

-#define EL_PRESENT           0x0800

-#define EE_SIZE_64           0x1000

-

-// PP_BusST - ISA Bus Status bit definition

-#define TX_BID_ERROR         0x0080

-#define READY_FOR_TX_NOW     0x0100

-

-// The following block defines the ISQ event types

-#define ISQ_RX_EVENT         0x0004

-#define ISQ_TX_EVENT         0x0008

-#define ISQ_BUFFER_EVENT     0x000C

-#define ISQ_RX_MISS_EVENT    0x0010

-#define ISQ_TX_COL_EVENT     0x0012

-

-#define ISQ_EVENT_MASK       0x003F          // ISQ mask to find out type of event

-

-// Ports for I/O-Mode

-#define RX_FRAME_PORT        0x0000

-#define TX_FRAME_PORT        0x0000

-#define TX_CMD_PORT          0x0004

-#define TX_LEN_PORT          0x0006

-#define ISQ_PORT             0x0008

-#define ADD_PORT             0x000A

-#define DATA_PORT            0x000C

-

-#define AUTOINCREMENT        0x8000          // Bit mask to set Bit-15 for autoincrement

-

-// EEProm Commands

-#define EEPROM_WRITE_EN      0x00F0

-#define EEPROM_WRITE_DIS     0x0000

-#define EEPROM_WRITE_CMD     0x0100

-#define EEPROM_READ_CMD      0x0200

-

-// Receive Header of each packet in receive area of memory for DMA-Mode

-#define RBUF_EVENT_LOW       0x0000          // Low byte of RxEvent

-#define RBUF_EVENT_HIGH      0x0001          // High byte of RxEvent

-#define RBUF_LEN_LOW         0x0002          // Length of received data - low byte

-#define RBUF_LEN_HI          0x0003          // Length of received data - high byte

-#define RBUF_HEAD_LEN        0x0004          // Length of this header

-

-// typedefs

-typedef struct {                             // struct to store CS8900's

-  unsigned int Addr;                         // init-sequence

-  unsigned int Data;

-} TInitSeq;

-

-unsigned short ticks;

-

-static void skip_frame(void);

-

-const TInitSeq InitSeq[] =

-{

-  PP_IA,       UIP_ETHADDR0 + (UIP_ETHADDR1 << 8),     // set our MAC as Individual Address

-  PP_IA + 2,   UIP_ETHADDR2 + (UIP_ETHADDR3 << 8),

-  PP_IA + 4,   UIP_ETHADDR4 + (UIP_ETHADDR5 << 8),

-  PP_LineCTL,  SERIAL_RX_ON | SERIAL_TX_ON,           // configure the Physical Interface

-  PP_RxCTL,    RX_OK_ACCEPT | RX_IA_ACCEPT | RX_BROADCAST_ACCEPT

-};

-

-// Writes a word in little-endian byte order to a specified port-address

-void

-cs8900a_write(unsigned addr, unsigned int data)

-{

-  GPIO_IODIR |= 0xff << 16;                           // Data port to output

-

-  GPIO_IOCLR = 0xf << 4;                              // Put address on bus

-  GPIO_IOSET = addr << 4;

-

-  GPIO_IOCLR = 0xff << 16;                            // Write low order byte to data bus

-  GPIO_IOSET = data << 16;

-

-  __asm volatile ( "NOP" );

-  GPIO_IOCLR = IOW;                                   // Toggle IOW-signal

-  __asm volatile ( "NOP" );

-  GPIO_IOSET = IOW;

-  __asm volatile ( "NOP" );

-

-  GPIO_IOCLR = 0xf << 4;

-  GPIO_IOSET = ((addr | 1) << 4);                     // And put next address on bus

-

-  GPIO_IOCLR = 0xff << 16;                            // Write high order byte to data bus

-  GPIO_IOSET = data >> 8 << 16;

-

-  __asm volatile ( "NOP" );

-  GPIO_IOCLR = IOW;                                   // Toggle IOW-signal

-  __asm volatile ( "NOP" );

-  GPIO_IOSET = IOW;

-  __asm volatile ( "NOP" );

-}

-

-// Reads a word in little-endian byte order from a specified port-address

-unsigned

-cs8900a_read(unsigned addr)

-{

-  unsigned int value;

-

-  GPIO_IODIR &= ~(0xff << 16);                        // Data port to input

-

-  GPIO_IOCLR = 0xf << 4;                              // Put address on bus

-  GPIO_IOSET = addr << 4;

-

-  __asm volatile ( "NOP" );

-  GPIO_IOCLR = IOR;                                   // IOR-signal low

-  __asm volatile ( "NOP" );

-  value = (GPIO_IOPIN >> 16) & 0xff;                  // get low order byte from data bus

-  GPIO_IOSET = IOR;

-

-  GPIO_IOSET = 1 << 4;                                // IOR high and put next address on bus

-

-  __asm volatile ( "NOP" );

-  GPIO_IOCLR = IOR;                                   // IOR-signal low

-  __asm volatile ( "NOP" );

-  value |= ((GPIO_IOPIN >> 8) & 0xff00);              // get high order byte from data bus

-  GPIO_IOSET = IOR;                                   // IOR-signal low

-

-  return value;

-}

-

-// Reads a word in little-endian byte order from a specified port-address

-unsigned

-cs8900a_read_addr_high_first(unsigned addr)

-{

-  unsigned int value;

-

-  GPIO_IODIR &= ~(0xff << 16);                        // Data port to input

-

-  GPIO_IOCLR = 0xf << 4;                              // Put address on bus

-  GPIO_IOSET = (addr+1) << 4;

-

-  __asm volatile ( "NOP" );

-  GPIO_IOCLR = IOR;                                   // IOR-signal low

-  __asm volatile ( "NOP" );

-  value = ((GPIO_IOPIN >> 8) & 0xff00);               // get high order byte from data bus

-  GPIO_IOSET = IOR;                                   // IOR-signal high

-

-  GPIO_IOCLR = 1 << 4;                                // Put low address on bus

-

-  __asm volatile ( "NOP" );

-  GPIO_IOCLR = IOR;                                   // IOR-signal low

-  __asm volatile ( "NOP" );

-  value |= (GPIO_IOPIN >> 16) & 0xff;                 // get low order byte from data bus

-  GPIO_IOSET = IOR;

-

-  return value;

-}

-

-void

-cs8900a_init(void)

-{

-  int i;

-

-  // Reset outputs, control lines high

-  GPIO_IOSET = IOR | IOW;

-

-  // No LEDs on.

-  GPIO_IOSET = LED_RED | LED_YELLOW | LED_GREEN;

-

-  // Port 3 as output (all pins but RS232)

-  GPIO_IODIR = ~0U; // everything to output.

-

-  // Reset outputs

-  GPIO_IOCLR = 0xff << 16;  // clear data outputs

-

-  // Reset the CS8900A

-  cs8900a_write(ADD_PORT, PP_SelfCTL);

-  cs8900a_write(DATA_PORT, POWER_ON_RESET);

-

-  // Wait until chip-reset is done

-  cs8900a_write(ADD_PORT, PP_SelfST);

-  while ((cs8900a_read(DATA_PORT) & INIT_DONE) == 0)

-    ;

-

-  // Configure the CS8900A

-  for (i = 0; i < sizeof InitSeq / sizeof (TInitSeq); ++i)

-    {

-      cs8900a_write(ADD_PORT, InitSeq[i].Addr);

-      cs8900a_write(DATA_PORT, InitSeq[i].Data);

-    }

-}

-

-void

-cs8900a_send(void)

-{

-  unsigned u;

-

-  GPIO_IOCLR = LED_RED;  // Light RED LED when frame starting

-

-  // Transmit command

-  cs8900a_write(TX_CMD_PORT, TX_START_ALL_BYTES);

-  cs8900a_write(TX_LEN_PORT, uip_len);

-

-  // Maximum number of retries

-  u = 8;

-  for (;;)

-    {

-      // Check for avaliable buffer space

-      cs8900a_write(ADD_PORT, PP_BusST);

-      if (cs8900a_read(DATA_PORT) & READY_FOR_TX_NOW)

-        break;

-      if (u -- == 0)

-        {

-          GPIO_IOSET = LED_RED;  // Extinguish RED LED on end of frame

-          return;

-        }

-

-      // No space avaliable, skip a received frame and try again

-      skip_frame();

-    }

-

-  GPIO_IODIR |= 0xff << 16;                           // Data port to output

-

-  // Send 40+14=54 bytes of header

-  for (u = 0; u < 54; u += 2)

-    {

-      GPIO_IOCLR = 0xf << 4;                              // Put address on bus

-      GPIO_IOSET = TX_FRAME_PORT << 4;

-

-      GPIO_IOCLR = 0xff << 16;                            // Write low order byte to data bus

-      GPIO_IOSET = uip_buf[u] << 16;                      // write low order byte to data bus

-

-      __asm volatile ( "NOP" );

-      GPIO_IOCLR = IOW;                                   // Toggle IOW-signal

-      __asm volatile ( "NOP" );

-      GPIO_IOSET = IOW;

-

-      GPIO_IOCLR = 0xf << 4;                              // Put address on bus

-      GPIO_IOSET = (TX_FRAME_PORT | 1) << 4;              // and put next address on bus

-

-      GPIO_IOCLR = 0xff << 16;                            // Write low order byte to data bus

-      GPIO_IOSET = uip_buf[u+1] << 16;                    // write low order byte to data bus

-

-      __asm volatile ( "NOP" );

-	  GPIO_IOCLR = IOW;                                   // Toggle IOW-signal

-      __asm volatile ( "NOP" );

-      GPIO_IOSET = IOW;

-    }

-

-  if (uip_len <= 54)

-    {

-      GPIO_IOSET = LED_RED;  // Extinguish RED LED on end of frame

-      return;

-    }

-

-  // Send remainder of packet, the application data

-  uip_len -= 54;

-  for (u = 0; u < uip_len; u += 2)

-    {

-

-      GPIO_IOCLR = 0xf << 4;                          // Put address on bus

-      GPIO_IOSET = TX_FRAME_PORT << 4;

-

-      GPIO_IOCLR = 0xff << 16;                        // Write low order byte to data bus

-      GPIO_IOSET = uip_appdata[u] << 16;              // write low order byte to data bus

-

-      __asm volatile ( "NOP" );

-	  GPIO_IOCLR = IOW;                               // Toggle IOW-signal

-      __asm volatile ( "NOP" );

-      GPIO_IOSET = IOW;

-

-      GPIO_IOCLR = 0xf << 4;                          // Put address on bus

-      GPIO_IOSET = (TX_FRAME_PORT | 1) << 4;          // and put next address on bus

-

-      GPIO_IOCLR = 0xff << 16;                        // Write low order byte to data bus

-      GPIO_IOSET = uip_appdata[u+1] << 16;            // write low order byte to data bus

-

-      __asm volatile ( "NOP" );

-	  GPIO_IOCLR = IOW;                               // Toggle IOW-signal

-      __asm volatile ( "NOP" );

-      GPIO_IOSET = IOW;

-    }

-

-  GPIO_IOSET = LED_RED;  // Extinguish RED LED on end of frame

-}

-

-static void

-skip_frame(void)

-{

-  // No space avaliable, skip a received frame and try again

-  cs8900a_write(ADD_PORT, PP_RxCFG);

-  cs8900a_write(DATA_PORT, cs8900a_read(DATA_PORT) | SKIP_1);

-}

-

-u8_t

-cs8900a_poll(void)

-{

-  u16_t len, u;

-

-  // Check receiver event register to see if there are any valid frames avaliable

-  cs8900a_write(ADD_PORT, PP_RxEvent);

-  if ((cs8900a_read(DATA_PORT) & 0xd00) == 0)

-    return 0;

-

-  GPIO_IOCLR = LED_GREEN;  // Light GREED LED when frame coming in.

-

-  // Read receiver status and discard it.

-  cs8900a_read_addr_high_first(RX_FRAME_PORT);

-

-  // Read frame length

-  len = cs8900a_read_addr_high_first(RX_FRAME_PORT);

-

-  // If the frame is too big to handle, throw it away

-  if (len > UIP_BUFSIZE)

-    {

-      skip_frame();

-      return 0;

-    }

-

-  // Data port to input

-  GPIO_IODIR &= ~(0xff << 16);

-

-  GPIO_IOCLR = 0xf << 4;                          // put address on bus

-  GPIO_IOSET = RX_FRAME_PORT << 4;

-

-  // Read bytes into uip_buf

-  u = 0;

-  while (u < len)

-    {

-      GPIO_IOCLR = 1 << 4;                            // put address on bus

-

-      GPIO_IOCLR = IOR;                               // IOR-signal low

-      uip_buf[u] = GPIO_IOPIN >> 16;                // get high order byte from data bus

-      __asm volatile ( "NOP" );

-      GPIO_IOSET = IOR;                               // IOR-signal high

-

-      GPIO_IOSET = 1 << 4;                            // put address on bus

-

-      GPIO_IOCLR = IOR;                               // IOR-signal low

-      __asm volatile ( "NOP" );

-      uip_buf[u+1] = GPIO_IOPIN >> 16;                  // get high order byte from data bus

-      GPIO_IOSET = IOR;                               // IOR-signal high

-      u += 2;

-    }

-

-  GPIO_IOSET = LED_GREEN;  // Extinguish GREED LED when frame finished.

-  return len;

-}

-

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.h
deleted file mode 100644
index 2d4b56f..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/cs8900a.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __CS8900A_H__

-#define __CS8900A_H__

-

-#include "uip_arch.h"

-

-void cs8900a_init(void);

-void cs8900a_send(void);

-u8_t cs8900a_poll(void);

-

-#endif /* __CS8900A_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs.c
deleted file mode 100644
index 7e15200..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/**

- * \addtogroup httpd

- * @{

- */

-

-/**

- * \file

- * HTTP server read-only file system code.

- * \author Adam Dunkels <adam@dunkels.com>

- *

- * A simple read-only filesystem. 

- */

- 

-/*

- * Copyright (c) 2001, Swedish Institute of Computer Science.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. Neither the name of the Institute nor the names of its contributors 

- *    may be used to endorse or promote products derived from this software 

- *    without specific prior written permission. 

- *

- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 

- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 

- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 

- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 

- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 

- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 

- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 

- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 

- * SUCH DAMAGE. 

- *

- * This file is part of the lwIP TCP/IP stack.

- * 

- * Author: Adam Dunkels <adam@sics.se>

- *

- * $Id: fs.c,v 1.7.2.3 2003/10/07 13:22:27 adam Exp $

- */

-

-#include "uip.h"

-#include "httpd.h"

-#include "fs.h"

-#include "fsdata.h"

-

-#define NULL (void *)0

-#include "fsdata.c"

-

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-static u16_t count[FS_NUMFILES];

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-

-/*-----------------------------------------------------------------------------------*/

-static u8_t

-fs_strcmp(const char *str1, const char *str2)

-{

-  u8_t i;

-  i = 0;

- loop:

-

-  if(str2[i] == 0 ||

-     str1[i] == '\r' || 

-     str1[i] == '\n') {

-    return 0;

-  }

-

-  if(str1[i] != str2[i]) {

-    return 1;

-  }

-

-

-  ++i;

-  goto loop;

-}

-/*-----------------------------------------------------------------------------------*/

-int

-fs_open(const char *name, struct fs_file *file)

-{

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-  u16_t i = 0;

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-  struct fsdata_file_noconst *f;

-

-  for(f = (struct fsdata_file_noconst *)FS_ROOT;

-      f != NULL;

-      f = (struct fsdata_file_noconst *)f->next) {

-

-    if(fs_strcmp(name, f->name) == 0) {

-      file->data = f->data;

-      file->len = f->len;

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-      ++count[i];

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-      return 1;

-    }

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-    ++i;

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-

-  }

-  return 0;

-}

-/*-----------------------------------------------------------------------------------*/

-void

-fs_init(void)

-{

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-  u16_t i;

-  for(i = 0; i < FS_NUMFILES; i++) {

-    count[i] = 0;

-  }

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-}

-/*-----------------------------------------------------------------------------------*/

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1  

-u16_t fs_count

-(char *name)

-{

-  struct fsdata_file_noconst *f;

-  u16_t i;

-

-  i = 0;

-  for(f = (struct fsdata_file_noconst *)FS_ROOT;

-      f != NULL;

-      f = (struct fsdata_file_noconst *)f->next) {

-

-    if(fs_strcmp(name, f->name) == 0) {

-      return count[i];

-    }

-    ++i;

-  }

-  return 0;

-}

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-/*-----------------------------------------------------------------------------------*/

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs.h
deleted file mode 100644
index 65551ba..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/**

- * \addtogroup httpd

- * @{

- */

-

-/**

- * \file

- * HTTP server read-only file system header file.

- * \author Adam Dunkels <adam@dunkels.com>

- */

- 

-/*

- * Copyright (c) 2001, Swedish Institute of Computer Science.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. Neither the name of the Institute nor the names of its contributors 

- *    may be used to endorse or promote products derived from this software 

- *    without specific prior written permission. 

- *

- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 

- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 

- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 

- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 

- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 

- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 

- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 

- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 

- * SUCH DAMAGE. 

- *

- * This file is part of the lwIP TCP/IP stack.

- * 

- * Author: Adam Dunkels <adam@sics.se>

- *

- * $Id: fs.h,v 1.6.2.3 2003/10/07 13:22:27 adam Exp $

- */

-#ifndef __FS_H__

-#define __FS_H__

-

-#include "uip.h"

-

-/**

- * An open file in the read-only file system.

- */

-struct fs_file {

-  char *data;  /**< The actual file data. */

-  int len;     /**< The length of the file data. */

-};

-

-/**

- * Open a file in the read-only file system.

- *

- * \param name The name of the file.

- *

- * \param file The file pointer, which must be allocated by caller and

- * will be filled in by the function.

- */

-int fs_open(const char *name, struct fs_file *file);

-

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1  

-u16_t fs_count(char *name);

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-

-/**

- * Initialize the read-only file system.

- */

-void fs_init(void);

-

-#endif /* __FS_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/404.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/404.html
deleted file mode 100644
index 8d6beec..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/404.html
+++ /dev/null
@@ -1 +0,0 @@
-<html><body bgcolor="white"><center><h1>404 - file not found</h1></center></body></html>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/about.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/about.html
deleted file mode 100644
index 4c88689..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/about.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<html>

-<body bgcolor="white">

-<center>

-<table width="600" border="0"><tr><td>

-<h2>Welcome</h2>

-<p align="justify">

-These web pages are served by the small web server running on top of

-the <a href="http://dunkels.com/adam/uip/" target="_top">uIP TCP/IP

-stack</a>.

-</p>

-<p align="justify">

-Click on the links above to see some status information about the web

-server and the TCP/IP stack.

-</p>

-</td></tr></table>

-</center>

-</body>

-</html>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/files b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/files
deleted file mode 100644
index 64e0b50..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/files
+++ /dev/null
@@ -1,28 +0,0 @@
-# This script shows the access statistics for different files on the

-# web server.

-#

-# First, we include the HTML header.

-i /files_header.html

-# Print out the name of the file, and call the function that prints

-# the access statistics of that file.

-t <tr><td><a href="/index.html">/index.html</a></td><td>

-c b /index.html

-t </td></tr> <tr><td><a href="/about.html">/about.html</a></td><td>

-c b /about.html

-t </td></tr> <tr><td><a href="/control.html">/control.html</a></td><td>

-c b /control.html

-t </td></tr> <tr><td><a href="/img/bg.png">/img/bg.png</a></td><td>

-c b /img/bg.png

-t </td></tr> <tr><td><a href="/404.html">/404.html</a></td><td>

-c b /404.html

-t </td></tr> <tr><td><a href="/cgi/files">/cgi/files</a></td><td>

-c b /cgi/files

-t </td></tr> <tr><td><a href="/cgi/stats">/cgi/stats</a></td><td>

-c b /cgi/stats

-t </td></tr> <tr><td><a href="/cgi/tcp">/cgi/tcp</a></td><td>

-c b /cgi/tcp

-t </td></tr>

-# Include the HTML footer.

-i /files_footer.plain

-# End of script.

-.
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/stats b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/stats
deleted file mode 100644
index 2c71c90..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/stats
+++ /dev/null
@@ -1,4 +0,0 @@
-i /stats_header.html

-c a

-i /stats_footer.plain

-.

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/tcp b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/tcp
deleted file mode 100644
index 14efd37..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/cgi/tcp
+++ /dev/null
@@ -1,4 +0,0 @@
-i /tcp_header.html

-c c

-i /tcp_footer.plain

-.
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/control.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/control.html
deleted file mode 100644
index ce28dbe..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/control.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<html>

-<body bgcolor="white">

-<center>

-<table width="797" height="94" border="0" cellpadding="0"

-	cellspacing="0" background="/img/bg.png"><tr><td align="center">

-<h1>uIP web server test pages</h1>

-[ <a href="about.html" target="main">About</a> |

-<a href="/cgi/tcp" target="main">Connections</a> |

-<a href="/cgi/files" target="main">Files</a> |

-<a href="/cgi/stats" target="main">Statistics</a> ]

-</td></tr></table>

-</center>

-</body>

-</html>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_footer.plain b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_footer.plain
deleted file mode 100644
index 0b6dceb..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_footer.plain
+++ /dev/null
@@ -1,3 +0,0 @@
-</td></tr></table>

-</body>

-</html>

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_header.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_header.html
deleted file mode 100644
index 25d8650..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/files_header.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<html>

-<body bgcolor="white">

-<center>

-<table width="600" border="0">

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/img/bg.png b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/img/bg.png
deleted file mode 100644
index 18533b3..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/img/bg.png
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/index.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/index.html
deleted file mode 100644
index 3429ef3..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<html>

-<head><title>uIP web server test page</title></head>

-

-<frameset cols="*" rows="120,*" frameborder="no"> 

-  <frame src="control.html">

-  <frame src="about.html" name="main">

-</frameset>

-

-<noframes>

-<body>

-Your browser must support frames

-</body>

-</noframes>

-</html>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_footer.plain b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_footer.plain
deleted file mode 100644
index 0b6dceb..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_footer.plain
+++ /dev/null
@@ -1,3 +0,0 @@
-</td></tr></table>

-</body>

-</html>

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_header.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_header.html
deleted file mode 100644
index 4efaddf..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/stats_header.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>

-<body bgcolor="white">

-<center>

-<table width="600" border="0">

-<tr><td>

-<pre>

-IP           Packets dropped

-             Packets received

-             Packets sent

-IP errors    IP version/header length

-             IP length, high byte

-             IP length, low byte

-             IP fragments

-             Header checksum

-             Wrong protocol

-ICMP	     Packets dropped

-             Packets received

-             Packets sent

-             Type errors

-TCP          Packets dropped

-             Packets received

-             Packets sent

-             Checksum errors

-             Data packets without ACKs

-             Resets

-             Retransmissions

-	     No connection avaliable

-	     Connection attempts to closed ports

-</pre>	     

-</td><td><pre>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_footer.plain b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_footer.plain
deleted file mode 100644
index 442c17a..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_footer.plain
+++ /dev/null
@@ -1,5 +0,0 @@
-

-</td></tr></table>

-</center>

-</body>

-</html>
\ No newline at end of file
diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_header.html b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_header.html
deleted file mode 100644
index 1a50571..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fs/tcp_header.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<html>

-<body bgcolor="white">

-<center>

-<table width="600" border="0">

-<tr><th>Remote</th><th>State</th><th>Retransmissions</th><th>Timer</th><th>Flags</th></tr>

-

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.c
deleted file mode 100644
index ff855e7..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.c
+++ /dev/null
@@ -1,619 +0,0 @@
-static const char data_cgi_files[] = {

-	/* /cgi/files */

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0,

-	0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x73, 0x63, 0x72, 

-	0x69, 0x70, 0x74, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, 

-	0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 

-	0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 

-	0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x69, 0x66, 0x66, 

-	0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 

-	0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0xa, 0x23, 

-	0x20, 0x77, 0x65, 0x62, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 

-	0x72, 0x2e, 0xa, 0x23, 0xa, 0x23, 0x20, 0x46, 0x69, 0x72, 

-	0x73, 0x74, 0x2c, 0x20, 0x77, 0x65, 0x20, 0x69, 0x6e, 0x63, 

-	0x6c, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x48, 

-	0x54, 0x4d, 0x4c, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 

-	0x2e, 0xa, 0x69, 0x20, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 

-	0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 

-	0x6d, 0x6c, 0xa, 0x23, 0x20, 0x50, 0x72, 0x69, 0x6e, 0x74, 

-	0x20, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 

-	0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 

-	0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 

-	0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 

-	0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 

-	0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, 

-	0xa, 0x23, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x63, 

-	0x65, 0x73, 0x73, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 

-	0x74, 0x69, 0x63, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 

-	0x61, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0xa, 0x74, 

-	0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 

-	0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x69, 

-	0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 

-	0x3e, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 

-	0x6d, 0x6c, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 

-	0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 0x62, 0x20, 

-	0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 

-	0x6c, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 

-	0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 

-	0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 

-	0x3d, 0x22, 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, 0x68, 

-	0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x2f, 0x61, 0x62, 0x6f, 0x75, 

-	0x74, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3c, 0x2f, 0x61, 0x3e, 

-	0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xa, 

-	0x63, 0x20, 0x62, 0x20, 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 

-	0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, 0x3c, 0x2f, 

-	0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 

-	0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 

-	0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x6f, 0x6e, 

-	0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 

-	0x3e, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 

-	0x68, 0x74, 0x6d, 0x6c, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 

-	0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 

-	0x62, 0x20, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 

-	0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, 0x3c, 0x2f, 

-	0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 

-	0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 

-	0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x69, 0x6d, 0x67, 

-	0x2f, 0x62, 0x67, 0x2e, 0x70, 0x6e, 0x67, 0x22, 0x3e, 0x2f, 

-	0x69, 0x6d, 0x67, 0x2f, 0x62, 0x67, 0x2e, 0x70, 0x6e, 0x67, 

-	0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 

-	0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x69, 

-	0x6d, 0x67, 0x2f, 0x62, 0x67, 0x2e, 0x70, 0x6e, 0x67, 0xa, 

-	0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 

-	0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 

-	0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 

-	0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 

-	0x3e, 0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 

-	0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 

-	0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x34, 

-	0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, 

-	0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 

-	0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 

-	0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 

-	0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x3e, 

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 

-	0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 

-	0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x63, 

-	0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0xa, 0x74, 

-	0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 

-	0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 

-	0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 

-	0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 

-	0x3e, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 

-	0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 

-	0x3c, 0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 

-	0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0xa, 

-	0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 

-	0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 

-	0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x22, 0x3e, 

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x3c, 0x2f, 

-	0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 

-	0x3e, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x63, 0x67, 0x69, 

-	0x2f, 0x74, 0x63, 0x70, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 

-	0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0xa, 0x23, 0x20, 

-	0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 

-	0x65, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x66, 0x6f, 0x6f, 

-	0x74, 0x65, 0x72, 0x2e, 0xa, 0x69, 0x20, 0x2f, 0x66, 0x69, 

-	0x6c, 0x65, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 

-	0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0xa, 0x23, 0x20, 0x45, 

-	0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x72, 0x69, 

-	0x70, 0x74, 0x2e, 0xa, 0x2e, };

-

-static const char data_cgi_stats[] = {

-	/* /cgi/stats */

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0,

-	0x69, 0x20, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x68, 

-	0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 

-	0xa, 0x63, 0x20, 0x61, 0xa, 0x69, 0x20, 0x2f, 0x73, 0x74, 

-	0x61, 0x74, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 

-	0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0xa, 0x2e, 0xa, };

-

-static const char data_cgi_tcp[] = {

-	/* /cgi/tcp */

-	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0,

-	0x69, 0x20, 0x2f, 0x74, 0x63, 0x70, 0x5f, 0x68, 0x65, 0x61, 

-	0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0x63, 

-	0x20, 0x63, 0xa, 0x69, 0x20, 0x2f, 0x74, 0x63, 0x70, 0x5f, 

-	0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 

-	0x69, 0x6e, 0xa, 0x2e, };

-

-static const char data_img_bg_png[] = {

-	/* /img/bg.png */

-	0x2f, 0x69, 0x6d, 0x67, 0x2f, 0x62, 0x67, 0x2e, 0x70, 0x6e, 0x67, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x69, 

-	0x6d, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x6e, 0x67, 0xd, 0xa, 

-	0xd, 0xa, 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 

-	00, 00, 00, 0xd, 0x49, 0x48, 0x44, 0x52, 00, 00, 

-	0x3, 0x1d, 00, 00, 00, 0x5e, 0x8, 0x6, 00, 00, 

-	00, 0x46, 0xbd, 0x79, 0xcc, 00, 00, 00, 0x6, 0x62, 

-	0x4b, 0x47, 0x44, 00, 0xff, 00, 0xff, 00, 0xff, 0xa0, 

-	0xbd, 0xa7, 0x93, 00, 00, 00, 0x9, 0x70, 0x48, 0x59, 

-	0x73, 00, 00, 0xb, 0x12, 00, 00, 0xb, 0x12, 0x1, 

-	0xd2, 0xdd, 0x7e, 0xfc, 00, 00, 00, 0x7, 0x74, 0x49, 

-	0x4d, 0x45, 0x7, 0xd3, 0xa, 0x5, 0x12, 0x22, 0x33, 0x22, 

-	0xd0, 0x7c, 0x9a, 00, 00, 00, 0x1d, 0x74, 0x45, 0x58, 

-	0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 00, 0x43, 

-	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 

-	0x68, 0x20, 0x54, 0x68, 0x65, 0x20, 0x47, 0x49, 0x4d, 0x50, 

-	0xef, 0x64, 0x25, 0x6e, 00, 00, 0x3, 0xa0, 0x49, 0x44, 

-	0x41, 0x54, 0x78, 0xda, 0xed, 0xdd, 0xc1, 0x76, 0x9a, 0x40, 

-	0x18, 0x80, 0x51, 0x27, 0xc7, 0x5, 0x6c, 0xd1, 0x65, 0x1a, 

-	0xec, 0xe9, 0xfb, 0xbf, 0x45, 0x9e, 0x23, 0xd5, 0xb4, 0x4b, 

-	0x71, 0x19, 0xdd, 0x4d, 0x97, 0x36, 0x8a, 0x6, 0x1c, 0x82, 

-	0x20, 0xf7, 0xee, 0x92, 0xa8, 0x3f, 0xc, 0x68, 0xfa, 0xa1, 

-	0x3d, 0x9, 0x6f, 0xaf, 0x1f, 0x71, 0x76, 0x26, 0xcc, 0x6e, 

-	0x15, 0x9e, 0xce, 0xbf, 0x17, 0xe3, 0x71, 0x44, 0xb8, 0xfd, 

-	0xa1, 0x93, 0xd5, 0x6d, 0x5b, 0x7f, 0xc3, 0x13, 0xef, 0x1e, 

-	0x86, 0xb3, 0x2d, 0x5d, 0x6d, 0xdb, 0xf2, 0x57, 0x96, 0x34, 

-	0x77, 0xfb, 0xfb, 0x90, 0x74, 0xff, 0xe5, 0xcf, 0xb4, 0xf9, 

-	0xbb, 0x4d, 0xda, 0xfc, 0xa2, 0xcc, 0x92, 0xd6, 0xb4, 0x5a, 

-	0x5f, 0x99, 0xdf, 0xe0, 0x5c, 0x5f, 0xae, 0xb2, 0xd9, 0x20, 

-	0x85, 0x6f, 0x5c, 0xff, 0x70, 0x7c, 0x2d, 0x5a, 0x94, 0xf9, 

-	0xf0, 0x76, 0xfd, 0x69, 0x36, 0x39, 0x53, 0xdc, 0xe7, 0x41, 

-	0xfc, 0x1e, 0x18, 0xe1, 0xef, 0x41, 0xc6, 0xf1, 0x7c, 0xa9, 

-	0x3d, 0x4f, 0xe3, 0x83, 0x1f, 0xfc, 0xb1, 0x1e, 0x17, 0xcb, 

-	0x4, 00, 00, 0x68, 0x33, 00, 00, 00, 0xd1, 0x1, 

-	00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74, 00, 00, 

-	00, 0x88, 0xe, 00, 00, 0x40, 0x74, 00, 00, 00, 

-	0xa2, 0x3, 00, 00, 0x40, 0x74, 00, 00, 00, 0xa2, 

-	0x3, 00, 00, 0x40, 0x74, 00, 00, 00, 0xa2, 0x3, 

-	00, 00, 0x10, 0x1d, 00, 0x1d, 0xa, 0x96, 00, 00, 

-	0x44, 0x7, 00, 00, 0x40, 0x4b, 0xe1, 0xed, 0xf5, 0x23, 

-	0xd6, 0x7c, 0xfb, 0xf6, 0x7, 0xac, 0xc9, 0x98, 0x18, 0x8f, 

-	0x23, 0xc2, 0x1d, 0xaf, 0x64, 0x86, 0x7b, 0x26, 0x56, 0xe2, 

-	0x7e, 0x77, 0xba, 0x6e, 0x1d, 0x1f, 0x83, 0xa4, 0x6d, 0xb, 

-	0xfd, 0x6e, 0x6b, 0x97, 0x6b, 0x1a, 0xee, 0x7c, 0x55, 0x7e, 

-	0xb1, 0xca, 0x92, 0x9e, 0xb, 0xdb, 0xf5, 0x21, 0x69, 0xfe, 

-	0x32, 0x61, 0xfe, 0x18, 0x8f, 0xf7, 0xc3, 0xbf, 0x46, 0xd9, 

-	0xe7, 0xe1, 0xaf, 0xd5, 0xd8, 0xdf, 0x9, 0xf4, 0x4e, 0xe6, 

-	0x24, 0x9e, 0x2f, 0xb5, 0xe7, 0x69, 0x7c, 0xf0, 0x83, 0x3f, 

-	0xd6, 0xe3, 0x62, 0x99, 00, 00, 00, 0x6d, 0x6, 00, 

-	00, 0x20, 0x3a, 00, 00, 00, 0xd1, 0x1, 00, 00, 

-	0x88, 0xe, 00, 00, 00, 0xd1, 0x1, 00, 00, 0x88, 

-	0xe, 00, 00, 0x40, 0x74, 00, 00, 00, 0x88, 0xe, 

-	00, 00, 0x40, 0x74, 00, 00, 00, 0x88, 0xe, 0x98, 

-	0xaa, 0xe0, 0x59, 0xf, 00, 0x88, 0xe, 00, 0x86, 0x53, 

-	0xa9, 0x96, 00, 00, 0xd1, 0x1, 00, 00, 0x88, 0xe, 

-	00, 00, 0x40, 0x74, 00, 00, 00, 0x7c, 0x93, 0xb9, 

-	0x25, 0x80, 0xfb, 0x28, 0xca, 0xec, 0xe2, 0xcf, 0x42, 0x83, 

-	0xcf, 0xd1, 0x57, 0xeb, 0xc3, 0xe5, 0x1f, 0x36, 0xb8, 0x9c, 

-	0xb0, 0x5c, 0x65, 0x49, 0xdb, 0xbf, 0xbd, 0x30, 0x3f, 0x34, 

-	0xfc, 0x3f, 00, 0x8b, 0x32, 0x6d, 0xfe, 0x6e, 0x73, 0x68, 

-	0x7f, 0xa7, 0x10, 0xff, 0x9b, 0x9f, 0x27, 0xcd, 0xaf, 0xde, 

-	0xf7, 0xed, 0x46, 0x9f, 0x1c, 0x93, 0xe2, 0x39, 0xf7, 0x24, 

-	00, 0x60, 0x32, 0xbc, 0xd3, 0x1, 00, 00, 0x88, 0xe, 

-	00, 00, 0x40, 0x74, 00, 00, 00, 0x88, 0xe, 00, 

-	00, 0x40, 0x74, 00, 00, 00, 0x8f, 0x1f, 0x1d, 0xdd, 

-	0xfe, 0xf9, 0xd9, 0x18, 0xa3, 0x55, 0x6, 00, 00, 0xd1, 

-	0xc1, 0x64, 0x84, 0x8e, 0x1f, 0x2e, 0x58, 0x52, 00, 00, 

-	0x44, 0x7, 00, 00, 0x20, 0x3a, 00, 00, 00, 0xd1, 

-	0x1, 00, 00, 0x20, 0x3a, 00, 00, 00, 0xd1, 0x1, 

-	00, 00, 0x88, 0xe, 00, 00, 00, 0xd1, 0x1, 00, 

-	00, 0x88, 0xe, 00, 00, 0x80, 0xb9, 0x25, 0x80, 0xfb, 

-	0xd8, 0x6d, 0xe, 0x77, 0x9d, 0xbf, 0x5d, 0xa7, 0xcd, 0x5f, 

-	0xae, 0xb2, 0xa4, 0xfb, 0x57, 0x35, 0xfb, 0xdf, 0xe6, 0x8f, 

-	0x4d, 0x16, 0x65, 0xbb, 0xf9, 0xa7, 0x8f, 0x5d, 0x6d, 0xf6, 

-	0xe7, 0x37, 0x88, 0xf1, 0xca, 0x3, 0x7c, 0xfe, 0x72, 0xf1, 

-	0x92, 0x3b, 0x89, 0x1, 0xa0, 0x21, 0xef, 0x74, 00, 00, 

-	00, 0xa2, 0x3, 00, 00, 0x10, 0x1d, 00, 00, 00, 

-	0xa2, 0x63, 0xac, 0xda, 0x7c, 0xce, 0x1d, 00, 00, 0x44, 

-	0x7, 0xe0, 0x59, 0xd, 00, 0xf8, 0xe7, 0x9, 00, 00, 

-	0x80, 0xe8, 00, 00, 00, 0x44, 0x7, 00, 00, 0x80, 

-	0xe8, 00, 00, 00, 0x44, 0x7, 00, 00, 0x20, 0x3a, 

-	00, 00, 00, 0x44, 0x7, 00, 00, 0x20, 0x3a, 00, 

-	00, 00, 0xd1, 0x1, 00, 00, 0x20, 0x3a, 00, 00, 

-	0x80, 0x81, 0x98, 0x5b, 0x2, 0xe0, 0x16, 0xdb, 0xf5, 0xa1, 

-	0xf6, 0xfb, 0x21, 0xf4, 0x33, 0x7f, 0xb7, 0x39, 0xb4, 0xbb, 

-	0x43, 0x88, 0x9f, 0xbe, 0x5c, 0x94, 0x79, 0xd2, 0xfc, 0xea, 

-	0x7d, 0xdf, 0x6e, 0xfc, 0xc9, 0x25, 0x9e, 0xe2, 0xb9, 0xbf, 

-	0xf9, 0x75, 0xc7, 0xa4, 0xf8, 0x91, 0x3b, 0x89, 0x1, 0xe8, 

-	0x8d, 0x77, 0x3a, 00, 00, 00, 0xd1, 0x1, 0x43, 0xd3, 

-	0xd7, 0xd5, 0x7c, 0xeb, 0x2, 00, 0x88, 0xe, 00, 0xbe, 

-	0x8e, 0x31, 0xaf, 0xb4, 00, 0x88, 0xe, 00, 00, 00, 

-	0xd1, 0x1, 00, 00, 0x88, 0xe, 00, 00, 00, 0xd1, 

-	0x1, 00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74, 00, 

-	00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74, 00, 00, 

-	00, 0xa2, 0x3, 00, 00, 0x60, 0x34, 0xd1, 0x11, 0x82, 

-	0x5, 0x7, 00, 00, 0xd1, 0x1, 0x43, 0x21, 0x52, 0x1, 

-	00, 0x44, 0x7, 00, 00, 0xc0, 0x57, 0xe6, 0x96, 00, 

-	0x18, 0xa3, 0xa2, 0xcc, 0x5a, 0xdd, 0xfe, 0xf4, 0xe3, 0x9d, 

-	0xd5, 0x66, 0x7f, 0x7e, 0x83, 0x18, 0xaf, 0x3c, 0x40, 0xb7, 

-	0xdb, 0xbf, 0xfb, 0xbb, 0x4f, 0xba, 0xff, 0xe2, 0x25, 0x4f, 

-	0x9b, 0xff, 0xa7, 0xe1, 0xfc, 0xb, 0xfb, 0x5d, 0x3c, 0xe7, 

-	0xdf, 0xbe, 0xff, 0xe1, 0xca, 0x65, 0xb1, 0x3e, 0xe6, 0x5f, 

-	0x3d, 0xff, 0x12, 0xe7, 0x3, 0x4c, 0x8d, 0x77, 0x3a, 00, 

-	00, 00, 0xd1, 0x1, 00, 00, 0x88, 0xe, 00, 00, 

-	00, 0xd1, 0x1, 00, 00, 0x88, 0xe, 00, 00, 0x40, 

-	0x74, 00, 00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74, 

-	00, 00, 00, 0xa2, 0x3, 00, 00, 0x40, 0x74, 0x34, 

-	0x13, 0xe4, 0x15, 00, 00, 0x88, 0xe, 00, 00, 0x40, 

-	0x74, 00, 00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74, 

-	00, 00, 00, 0x13, 0xf1, 0xf, 0x24, 0xa1, 0x5c, 0xab, 

-	0x41, 0xd8, 0x92, 0xa4, 00, 00, 00, 00, 0x49, 0x45, 

-	0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, };

-

-static const char data_about_html[] = {

-	/* /about.html */

-	0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 

-	0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 

-	0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x3c, 

-	0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 

-	0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, 

-	0x3e, 0xa, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 

-	0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 

-	0x64, 0x74, 0x68, 0x3d, 0x22, 0x36, 0x30, 0x30, 0x22, 0x20, 

-	0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, 

-	0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xa, 

-	0x3c, 0x68, 0x32, 0x3e, 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 

-	0x65, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0xa, 0x3c, 0x70, 0x20, 

-	0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x6a, 0x75, 0x73, 

-	0x74, 0x69, 0x66, 0x79, 0x22, 0x3e, 0xa, 0x54, 0x68, 0x65, 

-	0x73, 0x65, 0x20, 0x77, 0x65, 0x62, 0x20, 0x70, 0x61, 0x67, 

-	0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x65, 0x72, 

-	0x76, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 

-	0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x77, 0x65, 0x62, 

-	0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x72, 0x75, 

-	0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x20, 0x74, 

-	0x6f, 0x70, 0x20, 0x6f, 0x66, 0xa, 0x74, 0x68, 0x65, 0x20, 

-	0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 

-	0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x75, 0x6e, 0x6b, 

-	0x65, 0x6c, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x64, 

-	0x61, 0x6d, 0x2f, 0x75, 0x69, 0x70, 0x2f, 0x22, 0x20, 0x74, 

-	0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x74, 0x6f, 

-	0x70, 0x22, 0x3e, 0x75, 0x49, 0x50, 0x20, 0x54, 0x43, 0x50, 

-	0x2f, 0x49, 0x50, 0xa, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x3c, 

-	0x2f, 0x61, 0x3e, 0x2e, 0xa, 0x3c, 0x2f, 0x70, 0x3e, 0xa, 

-	0x3c, 0x70, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 

-	0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x22, 0x3e, 0xa, 

-	0x43, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x6f, 0x6e, 0x20, 0x74, 

-	0x68, 0x65, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x61, 

-	0x62, 0x6f, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 

-	0x65, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, 0x61, 

-	0x74, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 

-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 

-	0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x65, 0x62, 0xa, 

-	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 

-	0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x43, 0x50, 0x2f, 0x49, 

-	0x50, 0x20, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0xa, 0x3c, 

-	0x2f, 0x70, 0x3e, 0xa, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 

-	0x2f, 0x74, 0x72, 0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 

-	0x65, 0x3e, 0xa, 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 

-	0x72, 0x3e, 0xa, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 

-	0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, };

-

-static const char data_control_html[] = {

-	/* /control.html */

-	0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 

-	0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 

-	0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x3c, 

-	0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 

-	0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, 

-	0x3e, 0xa, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 

-	0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 

-	0x64, 0x74, 0x68, 0x3d, 0x22, 0x37, 0x39, 0x37, 0x22, 0x20, 

-	0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, 0x39, 0x34, 

-	0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 

-	0x30, 0x22, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, 0x64, 

-	0x64, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x30, 0x22, 0xa, 0x9, 

-	0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 

-	0x67, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x62, 0x61, 0x63, 0x6b, 

-	0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3d, 0x22, 0x2f, 0x69, 

-	0x6d, 0x67, 0x2f, 0x62, 0x67, 0x2e, 0x70, 0x6e, 0x67, 0x22, 

-	0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x61, 

-	0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, 0x65, 0x6e, 0x74, 

-	0x65, 0x72, 0x22, 0x3e, 0xa, 0x3c, 0x68, 0x31, 0x3e, 0x75, 

-	0x49, 0x50, 0x20, 0x77, 0x65, 0x62, 0x20, 0x73, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x70, 

-	0x61, 0x67, 0x65, 0x73, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0xa, 

-	0x5b, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 

-	0x22, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, 0x68, 0x74, 0x6d, 

-	0x6c, 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 

-	0x22, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3e, 0x41, 0x62, 0x6f, 

-	0x75, 0x74, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x7c, 0xa, 0x3c, 

-	0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 

-	0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x22, 0x20, 0x74, 0x61, 

-	0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 

-	0x22, 0x3e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 

-	0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x7c, 0xa, 

-	0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 

-	0x63, 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 

-	0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x6d, 

-	0x61, 0x69, 0x6e, 0x22, 0x3e, 0x46, 0x69, 0x6c, 0x65, 0x73, 

-	0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x7c, 0xa, 0x3c, 0x61, 0x20, 

-	0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 

-	0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0x20, 0x74, 0x61, 

-	0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 

-	0x22, 0x3e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 

-	0x63, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x5d, 0xa, 0x3c, 

-	0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x3c, 

-	0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xa, 0x3c, 0x2f, 

-	0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xa, 0x3c, 0x2f, 

-	0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x68, 0x74, 

-	0x6d, 0x6c, 0x3e, };

-

-static const char data_404_html[] = {

-	/* /404.html */

-	0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x34, 

-	0x30, 0x34, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, 

-	0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0xd, 0xa, 0x53, 

-	0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 

-	0x2f, 0x30, 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 

-	0x3a, 0x2f, 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 

-	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 

-	0x75, 0x69, 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 

-	0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 

-	0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 

-	0xd, 0xa, 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 

-	0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 

-	0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 

-	0x22, 0x3e, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 

-	0x3c, 0x68, 0x31, 0x3e, 0x34, 0x30, 0x34, 0x20, 0x2d, 0x20, 

-	0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 

-	0x6f, 0x75, 0x6e, 0x64, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x3c, 

-	0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0x3c, 0x2f, 

-	0x62, 0x6f, 0x64, 0x79, 0x3e, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 

-	0x6c, 0x3e, };

-

-static const char data_files_footer_plain[] = {

-	/* /files_footer.plain */

-	0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,

-	0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 

-	0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xa, 0x3c, 

-	0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x68, 

-	0x74, 0x6d, 0x6c, 0x3e, 0xa, };

-

-static const char data_files_header_html[] = {

-	/* /files_header.html */

-	0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 

-	0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 

-	0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x3c, 

-	0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 

-	0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, 

-	0x3e, 0xa, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 

-	0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 

-	0x64, 0x74, 0x68, 0x3d, 0x22, 0x36, 0x30, 0x30, 0x22, 0x20, 

-	0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, 

-	0x3e, 0xa, };

-

-static const char data_index_html[] = {

-	/* /index.html */

-	0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 

-	0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 

-	0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x3c, 

-	0x68, 0x65, 0x61, 0x64, 0x3e, 0x3c, 0x74, 0x69, 0x74, 0x6c, 

-	0x65, 0x3e, 0x75, 0x49, 0x50, 0x20, 0x77, 0x65, 0x62, 0x20, 

-	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x74, 0x65, 0x73, 

-	0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x74, 0x69, 

-	0x74, 0x6c, 0x65, 0x3e, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 

-	0x3e, 0xa, 0xa, 0x3c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 

-	0x65, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x73, 0x3d, 0x22, 0x2a, 

-	0x22, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3d, 0x22, 0x31, 0x32, 

-	0x30, 0x2c, 0x2a, 0x22, 0x20, 0x66, 0x72, 0x61, 0x6d, 0x65, 

-	0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x6e, 0x6f, 

-	0x22, 0x3e, 0x20, 0xa, 0x20, 0x20, 0x3c, 0x66, 0x72, 0x61, 

-	0x6d, 0x65, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x63, 0x6f, 

-	0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 

-	0x22, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x66, 0x72, 0x61, 0x6d, 

-	0x65, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x61, 0x62, 0x6f, 

-	0x75, 0x74, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x20, 0x6e, 

-	0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x22, 

-	0x3e, 0xa, 0x3c, 0x2f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 

-	0x65, 0x74, 0x3e, 0xa, 0xa, 0x3c, 0x6e, 0x6f, 0x66, 0x72, 

-	0x61, 0x6d, 0x65, 0x73, 0x3e, 0xa, 0x3c, 0x62, 0x6f, 0x64, 

-	0x79, 0x3e, 0xa, 0x59, 0x6f, 0x75, 0x72, 0x20, 0x62, 0x72, 

-	0x6f, 0x77, 0x73, 0x65, 0x72, 0x20, 0x6d, 0x75, 0x73, 0x74, 

-	0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 

-	0x72, 0x61, 0x6d, 0x65, 0x73, 0xa, 0x3c, 0x2f, 0x62, 0x6f, 

-	0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x6e, 0x6f, 0x66, 0x72, 

-	0x61, 0x6d, 0x65, 0x73, 0x3e, 0xa, 0x3c, 0x2f, 0x68, 0x74, 

-	0x6d, 0x6c, 0x3e, };

-

-static const char data_stats_footer_plain[] = {

-	/* /stats_footer.plain */

-	0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,

-	0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 

-	0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xa, 0x3c, 

-	0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x68, 

-	0x74, 0x6d, 0x6c, 0x3e, 0xa, };

-

-static const char data_stats_header_html[] = {

-	/* /stats_header.html */

-	0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 

-	0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 

-	0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x3c, 

-	0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 

-	0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, 

-	0x3e, 0xa, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 

-	0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 

-	0x64, 0x74, 0x68, 0x3d, 0x22, 0x36, 0x30, 0x30, 0x22, 0x20, 

-	0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, 

-	0x3e, 0xa, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 

-	0xa, 0x3c, 0x70, 0x72, 0x65, 0x3e, 0xa, 0x49, 0x50, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, 0x72, 

-	0x6f, 0x70, 0x70, 0x65, 0x64, 0xa, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 

-	0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, 

-	0x65, 0x69, 0x76, 0x65, 0x64, 0xa, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 

-	0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, 

-	0x74, 0xa, 0x49, 0x50, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 

-	0x73, 0x20, 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, 0x76, 0x65, 

-	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x68, 0x65, 0x61, 0x64, 

-	0x65, 0x72, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0xa, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x49, 0x50, 0x20, 0x6c, 0x65, 0x6e, 0x67, 

-	0x74, 0x68, 0x2c, 0x20, 0x68, 0x69, 0x67, 0x68, 0x20, 0x62, 

-	0x79, 0x74, 0x65, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, 

-	0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x6c, 0x6f, 

-	0x77, 0x20, 0x62, 0x79, 0x74, 0x65, 0xa, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x49, 0x50, 0x20, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 

-	0x74, 0x73, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x48, 0x65, 0x61, 0x64, 

-	0x65, 0x72, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 

-	0x6d, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x72, 0x6f, 0x6e, 0x67, 

-	0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0xa, 

-	0x49, 0x43, 0x4d, 0x50, 0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, 0x72, 

-	0x6f, 0x70, 0x70, 0x65, 0x64, 0xa, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 

-	0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, 

-	0x65, 0x69, 0x76, 0x65, 0x64, 0xa, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 

-	0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, 

-	0x74, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, 

-	0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0xa, 0x54, 0x43, 0x50, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, 0x72, 

-	0x6f, 0x70, 0x70, 0x65, 0x64, 0xa, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 

-	0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, 

-	0x65, 0x69, 0x76, 0x65, 0x64, 0xa, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 

-	0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, 

-	0x74, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x68, 0x65, 0x63, 0x6b, 

-	0x73, 0x75, 0x6d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 

-	0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x20, 0x44, 0x61, 0x74, 0x61, 0x20, 0x70, 

-	0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 

-	0x68, 0x6f, 0x75, 0x74, 0x20, 0x41, 0x43, 0x4b, 0x73, 0xa, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x52, 0x65, 0x73, 0x65, 0x74, 0x73, 0xa, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0x52, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x73, 

-	0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0xa, 0x9, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x63, 0x6f, 

-	0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 

-	0x76, 0x61, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0xa, 0x9, 

-	0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 

-	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x74, 0x74, 0x65, 

-	0x6d, 0x70, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 

-	0x6f, 0x73, 0x65, 0x64, 0x20, 0x70, 0x6f, 0x72, 0x74, 0x73, 

-	0xa, 0x3c, 0x2f, 0x70, 0x72, 0x65, 0x3e, 0x9, 0x20, 0x20, 

-	0x20, 0x20, 0x20, 0xa, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 

-	0x74, 0x64, 0x3e, 0x3c, 0x70, 0x72, 0x65, 0x3e, };

-

-static const char data_tcp_footer_plain[] = {

-	/* /tcp_footer.plain */

-	0x2f, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,

-	0xa, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 

-	0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xa, 

-	0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xa, 

-	0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 

-	0x68, 0x74, 0x6d, 0x6c, 0x3e, };

-

-static const char data_tcp_header_html[] = {

-	/* /tcp_header.html */

-	0x2f, 0x74, 0x63, 0x70, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,

-	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 

-	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 

-	0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, 

-	0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 

-	0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 

-	0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 

-	0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, 

-	0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 

-	0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 

-	0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x3c, 

-	0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 

-	0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, 

-	0x3e, 0xa, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 

-	0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 

-	0x64, 0x74, 0x68, 0x3d, 0x22, 0x36, 0x30, 0x30, 0x22, 0x20, 

-	0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, 

-	0x3e, 0xa, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 

-	0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x3c, 0x2f, 0x74, 0x68, 

-	0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x53, 0x74, 0x61, 0x74, 0x65, 

-	0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x52, 

-	0x65, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 

-	0x69, 0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 

-	0x74, 0x68, 0x3e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x3c, 0x2f, 

-	0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x46, 0x6c, 0x61, 

-	0x67, 0x73, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x74, 

-	0x72, 0x3e, 0xa, 0xa, };

-

-const struct fsdata_file file_cgi_files[] = {{NULL, data_cgi_files, data_cgi_files + 11, sizeof(data_cgi_files) - 11}};

-

-const struct fsdata_file file_cgi_stats[] = {{file_cgi_files, data_cgi_stats, data_cgi_stats + 11, sizeof(data_cgi_stats) - 11}};

-

-const struct fsdata_file file_cgi_tcp[] = {{file_cgi_stats, data_cgi_tcp, data_cgi_tcp + 9, sizeof(data_cgi_tcp) - 9}};

-

-const struct fsdata_file file_img_bg_png[] = {{file_cgi_tcp, data_img_bg_png, data_img_bg_png + 12, sizeof(data_img_bg_png) - 12}};

-

-const struct fsdata_file file_about_html[] = {{file_img_bg_png, data_about_html, data_about_html + 12, sizeof(data_about_html) - 12}};

-

-const struct fsdata_file file_control_html[] = {{file_about_html, data_control_html, data_control_html + 14, sizeof(data_control_html) - 14}};

-

-const struct fsdata_file file_404_html[] = {{file_control_html, data_404_html, data_404_html + 10, sizeof(data_404_html) - 10}};

-

-const struct fsdata_file file_files_footer_plain[] = {{file_404_html, data_files_footer_plain, data_files_footer_plain + 20, sizeof(data_files_footer_plain) - 20}};

-

-const struct fsdata_file file_files_header_html[] = {{file_files_footer_plain, data_files_header_html, data_files_header_html + 19, sizeof(data_files_header_html) - 19}};

-

-const struct fsdata_file file_index_html[] = {{file_files_header_html, data_index_html, data_index_html + 12, sizeof(data_index_html) - 12}};

-

-const struct fsdata_file file_stats_footer_plain[] = {{file_index_html, data_stats_footer_plain, data_stats_footer_plain + 20, sizeof(data_stats_footer_plain) - 20}};

-

-const struct fsdata_file file_stats_header_html[] = {{file_stats_footer_plain, data_stats_header_html, data_stats_header_html + 19, sizeof(data_stats_header_html) - 19}};

-

-const struct fsdata_file file_tcp_footer_plain[] = {{file_stats_header_html, data_tcp_footer_plain, data_tcp_footer_plain + 18, sizeof(data_tcp_footer_plain) - 18}};

-

-const struct fsdata_file file_tcp_header_html[] = {{file_tcp_footer_plain, data_tcp_header_html, data_tcp_header_html + 17, sizeof(data_tcp_header_html) - 17}};

-

-#define FS_ROOT file_tcp_header_html

-

-#define FS_NUMFILES 14

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.h
deleted file mode 100644
index 94086c4..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/fsdata.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*

- * Copyright (c) 2001, Swedish Institute of Computer Science.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. Neither the name of the Institute nor the names of its contributors 

- *    may be used to endorse or promote products derived from this software 

- *    without specific prior written permission. 

- *

- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 

- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 

- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 

- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 

- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 

- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 

- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 

- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 

- * SUCH DAMAGE. 

- *

- * This file is part of the lwIP TCP/IP stack.

- * 

- * Author: Adam Dunkels <adam@sics.se>

- *

- * $Id: fsdata.h,v 1.4.2.1 2003/10/04 22:54:06 adam Exp $

- */

-#ifndef __FSDATA_H__

-#define __FSDATA_H__

-

-#include "uipopt.h"

-

-struct fsdata_file {

-  const struct fsdata_file *next;

-  const char *name;

-  const char *data;

-  const int len;

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-  u16_t count;

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-};

-

-struct fsdata_file_noconst {

-  struct fsdata_file *next;

-  char *name;

-  char *data;

-  int len;

-#ifdef FS_STATISTICS

-#if FS_STATISTICS == 1

-  u16_t count;

-#endif /* FS_STATISTICS */

-#endif /* FS_STATISTICS */

-};

-

-#endif /* __FSDATA_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/httpd.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/httpd.c
deleted file mode 100644
index 9d2c6e5..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/httpd.c
+++ /dev/null
@@ -1,373 +0,0 @@
-/**

- * \addtogroup exampleapps

- * @{

- */

-

-/**

- * \defgroup httpd Web server

- * @{

- *

- * The uIP web server is a very simplistic implementation of an HTTP

- * server. It can serve web pages and files from a read-only ROM

- * filesystem, and provides a very small scripting language.

- *

- * The script language is very simple and works as follows. Each

- * script line starts with a command character, either "i", "t", "c",

- * "#" or ".".  The "i" command tells the script interpreter to

- * "include" a file from the virtual file system and output it to the

- * web browser. The "t" command should be followed by a line of text

- * that is to be output to the browser. The "c" command is used to

- * call one of the C functions from the httpd-cgi.c file. A line that

- * starts with a "#" is ignored (i.e., the "#" denotes a comment), and

- * the "." denotes the last script line.

- *

- * The script that produces the file statistics page looks somewhat

- * like this:

- *

- \code

-i /header.html

-t <h1>File statistics</h1><br><table width="100%">

-t <tr><td><a href="/index.html">/index.html</a></td><td>

-c a /index.html

-t </td></tr> <tr><td><a href="/cgi/files">/cgi/files</a></td><td>

-c a /cgi/files

-t </td></tr> <tr><td><a href="/cgi/tcp">/cgi/tcp</a></td><td>

-c a /cgi/tcp

-t </td></tr> <tr><td><a href="/404.html">/404.html</a></td><td>

-c a /404.html

-t </td></tr></table>

-i /footer.plain

-.

- \endcode

- *

- */

-

-

-/**

- * \file

- * HTTP server.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: httpd.c,v 1.28.2.6 2003/10/07 13:22:27 adam Exp $

- *

- */

-

-

-#include "uip.h"

-#include "httpd.h"

-#include "fs.h"

-#include "fsdata.h"

-#include "cgi.h"

-

-#define NULL (void *)0

-

-/* The HTTP server states: */

-#define HTTP_NOGET        0

-#define HTTP_FILE         1

-#define HTTP_TEXT         2

-#define HTTP_FUNC         3

-#define HTTP_END          4

-

-#ifdef DEBUG

-#include <stdio.h>

-#define PRINT(x) 

-#define PRINTLN(x)

-#else /* DEBUG */

-#define PRINT(x)

-#define PRINTLN(x)

-#endif /* DEBUG */

-

-struct httpd_state *hs;

-

-extern const struct fsdata_file file_index_html;

-extern const struct fsdata_file file_404_html;

-

-static void next_scriptline(void);

-static void next_scriptstate(void);

-

-#define ISO_G        0x47

-#define ISO_E        0x45

-#define ISO_T        0x54

-#define ISO_slash    0x2f    

-#define ISO_c        0x63

-#define ISO_g        0x67

-#define ISO_i        0x69

-#define ISO_space    0x20

-#define ISO_nl       0x0a

-#define ISO_cr       0x0d

-#define ISO_a        0x61

-#define ISO_t        0x74

-#define ISO_hash     0x23

-#define ISO_period   0x2e

-

-#define httpPORT	80

-

-/*-----------------------------------------------------------------------------------*/

-/**

- * Initialize the web server.

- *

- * Starts to listen for incoming connection requests on TCP port 80.

- */

-/*-----------------------------------------------------------------------------------*/

-void

-httpd_init(void)

-{

-  fs_init();

-  

-  /* Listen to port 80. */

-  uip_listen(HTONS(httpPORT));

-}

-/*-----------------------------------------------------------------------------------*/

-void

-httpd_appcall(void)

-{

-  struct fs_file fsfile;  

-

-  u8_t i;

-

-  switch(uip_conn->lport) {

-    /* This is the web server: */

-  case HTONS(httpPORT):

-    /* Pick out the application state from the uip_conn structure. */

-    hs = (struct httpd_state *)(uip_conn->appstate);

-

-    /* We use the uip_ test functions to deduce why we were

-       called. If uip_connected() is non-zero, we were called

-       because a remote host has connected to us. If

-       uip_newdata() is non-zero, we were called because the

-       remote host has sent us new data, and if uip_acked() is

-       non-zero, the remote host has acknowledged the data we

-       previously sent to it. */

-    if(uip_connected()) {

-      /* Since we have just been connected with the remote host, we

-         reset the state for this connection. The ->count variable

-         contains the amount of data that is yet to be sent to the

-         remote host, and the ->state is set to HTTP_NOGET to signal

-         that we haven't received any HTTP GET request for this

-         connection yet. */

-

-      hs->state = HTTP_NOGET;

-      hs->count = 0;

-      return;

-

-    } else if(uip_poll()) {

-      /* If we are polled ten times, we abort the connection. This is

-         because we don't want connections lingering indefinately in

-         the system. */

-      if(hs->count++ >= 10) {

-	uip_abort();

-      }

-      return;

-    } else if(uip_newdata() && hs->state == HTTP_NOGET) {

-      /* This is the first data we receive, and it should contain a

-	 GET. */

-

-      /* Check for GET. */

-      if(uip_appdata[0] != ISO_G ||

-	 uip_appdata[1] != ISO_E ||

-	 uip_appdata[2] != ISO_T ||

-	 uip_appdata[3] != ISO_space) {

-	/* If it isn't a GET, we abort the connection. */

-	uip_abort();

-	return;

-      }

-	       

-      /* Find the file we are looking for. */

-      for(i = 4; i < 40; ++i) {

-	if(uip_appdata[i] == ISO_space ||

-	   uip_appdata[i] == ISO_cr ||

-	   uip_appdata[i] == ISO_nl) {

-	  uip_appdata[i] = 0;

-	  break;

-	}

-      }

-

-      PRINT("request for file ");

-      PRINTLN(&uip_appdata[4]);

-      

-      /* Check for a request for "/". */

-      if(uip_appdata[4] == ISO_slash &&

-	 uip_appdata[5] == 0) {

-	fs_open(file_index_html.name, &fsfile);    

-      } else {

-	if(!fs_open((const char *)&uip_appdata[4], &fsfile)) {

-	  PRINTLN("couldn't open file");

-	  fs_open(file_404_html.name, &fsfile);

-	}

-      } 

-

-

-      if(uip_appdata[4] == ISO_slash &&

-	 uip_appdata[5] == ISO_c &&

-	 uip_appdata[6] == ISO_g &&

-	 uip_appdata[7] == ISO_i &&

-	 uip_appdata[8] == ISO_slash) {

-	/* If the request is for a file that starts with "/cgi/", we

-           prepare for invoking a script. */	

-	hs->script = fsfile.data;

-	next_scriptstate();

-      } else {

-	hs->script = NULL;

-	/* The web server is now no longer in the HTTP_NOGET state, but

-	   in the HTTP_FILE state since is has now got the GET from

-	   the client and will start transmitting the file. */

-	hs->state = HTTP_FILE;

-

-	/* Point the file pointers in the connection state to point to

-	   the first byte of the file. */

-	hs->dataptr = fsfile.data;

-	hs->count = fsfile.len;	

-      }     

-    }

-

-    

-    if(hs->state != HTTP_FUNC) {

-      /* Check if the client (remote end) has acknowledged any data that

-	 we've previously sent. If so, we move the file pointer further

-	 into the file and send back more data. If we are out of data to

-	 send, we close the connection. */

-      if(uip_acked()) {

-	if(hs->count >= uip_conn->len) {

-	  hs->count -= uip_conn->len;

-	  hs->dataptr += uip_conn->len;

-	} else {

-	  hs->count = 0;

-	}

-	

-	if(hs->count == 0) {

-	  if(hs->script != NULL) {

-	    next_scriptline();

-	    next_scriptstate();

-	  } else {

-	    uip_close();

-	  }

-	}

-      }         

-    } else {

-      /* Call the CGI function. */

-      if(cgitab[hs->script[2] - ISO_a](uip_acked())) {

-	/* If the function returns non-zero, we jump to the next line

-           in the script. */

-	next_scriptline();

-	next_scriptstate();

-      }

-    }

-

-    if(hs->state != HTTP_FUNC && !uip_poll()) {

-      /* Send a piece of data, but not more than the MSS of the

-	 connection. */

-      uip_send(hs->dataptr, hs->count);

-    }

-

-    /* Finally, return to uIP. Our outgoing packet will soon be on its

-       way... */

-    return;

-

-  default:

-    /* Should never happen. */

-    uip_abort();

-    break;

-  }  

-}

-/*-----------------------------------------------------------------------------------*/

-/* next_scriptline():

- *

- * Reads the script until it finds a newline. */

-static void

-next_scriptline(void)

-{

-  /* Loop until we find a newline character. */

-  do {

-    ++(hs->script);

-  } while(hs->script[0] != ISO_nl);

-

-  /* Eat up the newline as well. */

-  ++(hs->script);

-}

-/*-----------------------------------------------------------------------------------*/

-/* next_sciptstate:

- *

- * Reads one line of script and decides what to do next.

- */

-static void

-next_scriptstate(void)

-{

-  struct fs_file fsfile;

-  u8_t i;

-

- again:

-  switch(hs->script[0]) {

-  case ISO_t:

-    /* Send a text string. */

-    hs->state = HTTP_TEXT;

-    hs->dataptr = &hs->script[2];

-

-    /* Calculate length of string. */

-    for(i = 0; hs->dataptr[i] != ISO_nl; ++i);

-    hs->count = i;    

-    break;

-  case ISO_c:

-    /* Call a function. */

-    hs->state = HTTP_FUNC;

-    hs->dataptr = NULL;

-    hs->count = 0;

-    cgitab[hs->script[2] - ISO_a](0);

-    break;

-  case ISO_i:   

-    /* Include a file. */

-    hs->state = HTTP_FILE;

-    if(!fs_open(&hs->script[2], &fsfile)) {

-      uip_abort();

-    }

-    hs->dataptr = fsfile.data;

-    hs->count = fsfile.len;

-    break;

-  case ISO_hash:

-    /* Comment line. */

-    next_scriptline();

-    goto again;

-    break;

-  case ISO_period:

-    /* End of script. */

-    hs->state = HTTP_END;

-    uip_close();

-    break;

-  default:

-    uip_abort();

-    break;

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-/** @} */

-/** @} */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/httpd.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/httpd.h
deleted file mode 100644
index 34d6bb3..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/httpd.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/**

- * \addtogroup httpd

- * @{

- */

-

-/**

- * \file

- * HTTP server header file.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: httpd.h,v 1.4.2.3 2003/10/06 22:56:44 adam Exp $

- *

- */

-

-#ifndef __HTTPD_H__

-#define __HTTPD_H__

-

-void httpd_init(void);

-void httpd_appcall(void);

-

-/* UIP_APPCALL: the name of the application function. This function

-   must return void and take no arguments (i.e., C type "void

-   appfunc(void)"). */

-#ifndef UIP_APPCALL

-#define UIP_APPCALL     httpd_appcall

-#endif

-

-struct httpd_state {

-  u8_t state; 

-  u16_t count;

-  char *dataptr;

-  char *script;

-};

-

-

-/* UIP_APPSTATE_SIZE: The size of the application-specific state

-   stored in the uip_conn structure. */

-#ifndef UIP_APPSTATE_SIZE

-#define UIP_APPSTATE_SIZE (sizeof(struct httpd_state))

-#endif

-

-#define FS_STATISTICS 1

-

-extern struct httpd_state *hs;

-

-#endif /* __HTTPD_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/main_led b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/main_led
deleted file mode 100644
index 8fe01ea..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/main_led
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright (c) 2001-2004 Rowley Associates Limited.

-//

-// This file may be distributed under the terms of the License Agreement

-// provided with this software.

-//

-// THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE

-// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

-//

-////////////////////////////////////////////////////////////////////////////////

-//

-//                      Olimex LPC-P1  LED Example

-//

-// Description

-// -----------

-// This example demonstrates writing to the programmable peripheral interface.

-//

-////////////////////////////////////////////////////////////////////////////////

-

-#include <targets/LPC210x.h>

-

-#define LED_RED (1<<8)

-#define LED_GREEN (1<<10)

-#define LED_YELLOW (1<<11)

-

-#define LED1 LED_YELLOW

-

-static void

-ledInit()

-{

-  IODIR |= LED1;

-  IOSET = LED1;

-}

-

-static void

-ledOn(void)

-{

-  IOCLR = LED1;

-}

-

-static void

-ledOff(void)

-{

-  IOSET = LED1;

-}

-

-void

-delay(int d)

-{     

-  for(; d; --d);

-}

- 

-int

-main(void)

-{

-  MAMCR = 2;

-  ledInit();

-  while (1)

-    {

-      ledOn();

-      delay(100000);

-      ledOff();

-      delay(100000);

-    }

-  return 0;

-}

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/makefsdata b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/makefsdata
deleted file mode 100644
index f5f75f1..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/makefsdata
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/usr/bin/perl

-

-open(OUTPUT, "> fsdata.c");

-

-chdir("fs");

-open(FILES, "find . -type f |");

-

-while($file = <FILES>) {

-

-    # Do not include files in CVS directories nor backup files.

-    if($file =~ /(CVS|~)/) {

-    	next;

-    }

-    

-    chop($file);

-    

-    open(HEADER, "> /tmp/header") || die $!;

-    if($file =~ /404.html/) {

-      print(HEADER "HTTP/1.0 404 File not found\r\n");

-    } else {

-      print(HEADER "HTTP/1.0 200 OK\r\n");

-    }

-    print(HEADER "Server: uIP/0.9 (http://dunkels.com/adam/uip/)\r\n");

-    if($file =~ /\.html$/) {

-	print(HEADER "Content-type: text/html\r\n");

-    } elsif($file =~ /\.gif$/) {

-	print(HEADER "Content-type: image/gif\r\n");

-    } elsif($file =~ /\.png$/) {

-	print(HEADER "Content-type: image/png\r\n");

-    } elsif($file =~ /\.jpg$/) {

-	print(HEADER "Content-type: image/jpeg\r\n");

-    } else {

-	print(HEADER "Content-type: text/plain\r\n");

-    }

-    print(HEADER "\r\n");

-    close(HEADER);

-

-    unless($file =~ /\.plain$/ || $file =~ /cgi/) {

-	system("cat /tmp/header $file > /tmp/file");

-    } else {

-	system("cp $file /tmp/file");

-    }

-    

-    open(FILE, "/tmp/file");

-    unlink("/tmp/file");

-    unlink("/tmp/header");

-

-    $file =~ s/\.//;

-    $fvar = $file;

-    $fvar =~ s-/-_-g;

-    $fvar =~ s-\.-_-g;

-    print(OUTPUT "static const char data".$fvar."[] = {\n");

-    print(OUTPUT "\t/* $file */\n\t");

-    for($j = 0; $j < length($file); $j++) {

-	printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1)));

-    }

-    printf(OUTPUT "0,\n");

-    

-    

-    $i = 0;        

-    while(read(FILE, $data, 1)) {

-        if($i == 0) {

-            print(OUTPUT "\t");

-        }

-        printf(OUTPUT "%#02x, ", unpack("C", $data));

-        $i++;

-        if($i == 10) {

-            print(OUTPUT "\n");

-            $i = 0;

-        }

-    }

-    print(OUTPUT "};\n\n");

-    close(FILE);

-    push(@fvars, $fvar);

-    push(@files, $file);

-}

-

-for($i = 0; $i < @fvars; $i++) {

-    $file = $files[$i];

-    $fvar = $fvars[$i];

-

-    if($i == 0) {

-        $prevfile = "NULL";

-    } else {

-        $prevfile = "file" . $fvars[$i - 1];

-    }

-    print(OUTPUT "const struct fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, ");

-    print(OUTPUT "data$fvar + ". (length($file) + 1) .", ");

-    print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n");

-}

-

-print(OUTPUT "#define FS_ROOT file$fvars[$i - 1]\n\n");

-print(OUTPUT "#define FS_NUMFILES $i");

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/memb.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/memb.c
deleted file mode 100644
index 56e6634..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/memb.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/**

- * \addtogroup exampleapps

- * @{

- */

-

-/**

- * \file

- * Memory block allocation routines.

- * \author Adam Dunkels <adam@sics.se>

- *

- * The memory block allocation routines provide a simple yet powerful

- * set of functions for managing a set of memory blocks of fixed

- * size. A set of memory blocks is statically declared with the

- * MEMB() macro. Memory blocks are allocated from the declared

- * memory by the memb_alloc() function, and are deallocated with the

- * memb_free() function.

- *

- * \note Because of namespace clashes only one MEMB() can be

- * declared per C module, and the name scope of a MEMB() memory

- * block is local to each C module.

- *

- * The following example shows how to declare and use a memory block

- * called "cmem" which has 8 chunks of memory with each memory chunk

- * being 20 bytes large.

- *

- \code

- MEMB(cmem, 20, 8);

-

- int main(int argc, char *argv[]) {

-    char *ptr;

-    

-    memb_init(&cmem);

-

-    ptr = memb_alloc(&cmem);

-

-    if(ptr != NULL) {

-       do_something(ptr);

-    } else {

-       printf("Could not allocate memory.\n");

-    }

-

-    if(memb_free(ptr) == 0) {

-       printf("Deallocation succeeded.\n");

-    }

- }

- \endcode

- * 

- */

-

-#include <string.h>

-

-#include "memb.h"

-

-/*------------------------------------------------------------------------------*/

-/**

- * Initialize a memory block that was declared with MEMB().

- *

- * \param m A memory block previosly declared with MEMB().

- */

-/*------------------------------------------------------------------------------*/

-void

-memb_init(struct memb_blocks *m)

-{

-  memset(m->mem, (m->size + 1) * m->num, 0);

-}

-/*------------------------------------------------------------------------------*/

-/**

- * Allocate a memory block from a block of memory declared with MEMB().

- *

- * \param m A memory block previosly declared with MEMB().

- */

-/*------------------------------------------------------------------------------*/

-char *

-memb_alloc(struct memb_blocks *m)

-{

-  int i;

-  char *ptr;

-

-  ptr = m->mem;

-  for(i = 0; i < m->num; ++i) {

-    if(*ptr == 0) {

-      /* If this block was unused, we increase the reference count to

-	 indicate that it now is used and return a pointer to the

-	 first byte following the reference counter. */

-      ++*ptr;

-      return ptr + 1;

-    }

-    ptr += m->size + 1;

-  }

-

-  /* No free block was found, so we return NULL to indicate failure to

-     allocate block. */

-  return NULL;

-}

-/*------------------------------------------------------------------------------*/

-/**

- * Deallocate a memory block from a memory block previously declared

- * with MEMB().

- *

- * \param m m A memory block previosly declared with MEMB().

- *

- * \param ptr A pointer to the memory block that is to be deallocated.

- *

- * \return The new reference count for the memory block (should be 0

- * if successfully deallocated) or -1 if the pointer "ptr" did not

- * point to a legal memory block.

- */

-/*------------------------------------------------------------------------------*/

-char

-memb_free(struct memb_blocks *m, char *ptr)

-{

-  int i;

-  char *ptr2;

-

-  /* Walk through the list of blocks and try to find the block to

-     which the pointer "ptr" points to. */

-  ptr2 = m->mem;

-  for(i = 0; i < m->num; ++i) {

-    

-    if(ptr2 == ptr - 1) {

-      /* We've found to block to which "ptr" points so we decrease the

-	 reference count and return the new value of it. */      

-      return --*ptr2;

-    }

-    ptr2 += m->size + 1;

-  }

-  return -1;

-}

-/*------------------------------------------------------------------------------*/

-/**

- * Increase the reference count for a memory chunk.

- *

- * \note No sanity checks are currently made.

- *

- * \param m m A memory block previosly declared with MEMB().

- *

- * \param ptr A pointer to the memory chunk for which the reference

- * count should be increased.

- *

- * \return The new reference count.

- */

-/*------------------------------------------------------------------------------*/

-char

-memb_ref(struct memb_blocks *m, char *ptr)

-{

-  return ++*(ptr - 1);

-}

-/*------------------------------------------------------------------------------*/

-

-

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/memb.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/memb.h
deleted file mode 100644
index 505846f..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/memb.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/**

- * \addtogroup exampleapps

- * @{

- */

-

-/**

- * \file

- * Memory block allocation routines.

- * \author Adam Dunkels <adam@sics.se>

- *

- */

-

-#ifndef __MEMB_H__

-#define __MEMB_H__

-

-/**

- * Declare a memory block.

- *

- * \param name The name of the memory block (later used with

- * memb_init(), memb_alloc() and memb_free()).

- *

- * \param size The size of each memory chunk, in bytes.

- *

- * \param num The total number of memory chunks in the block.

- *

- */

-#define MEMB(name, size, num) \

-        static char memb_mem[(size + 1) * num]; \

-        static struct memb_blocks name = {size, num, memb_mem}

-

-struct memb_blocks {

-  unsigned short size;

-  unsigned short num;

-  char *mem;

-};

-

-void  memb_init(struct memb_blocks *m);

-char *memb_alloc(struct memb_blocks *m);

-char  memb_ref(struct memb_blocks *m, char *ptr);

-char  memb_free(struct memb_blocks *m, char *ptr);

-

-

-#endif /* __MEMB_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.c
deleted file mode 100644
index fc968c8..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/**

- * \addtogroup uip

- * @{

- */

-

-/**

- * \defgroup slip Serial Line IP (SLIP) protocol

- * @{

- *

- * The SLIP protocol is a very simple way to transmit IP packets over

- * a serial line. It does not provide any framing or error control,

- * and is therefore not very widely used today.

- *

- * This SLIP implementation requires two functions for accessing the

- * serial device: slipdev_char_poll() and slipdev_char_put(). These

- * must be implemented specifically for the system on which the SLIP

- * protocol is to be run.

- */

-

-/**

- * \file

- * SLIP protocol implementation

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: slipdev.c,v 1.1.2.3 2003/10/07 13:23:01 adam Exp $

- *

- */

-

-/*

- * This is a generic implementation of the SLIP protocol over an RS232

- * (serial) device. 

- *

- * Huge thanks to Ullrich von Bassewitz <uz@cc65.org> of cc65 fame for

- * and endless supply of bugfixes, insightsful comments and

- * suggestions, and improvements to this code!

- */

-

-#include "uip.h"

-

-#define SLIP_END     0300

-#define SLIP_ESC     0333

-#define SLIP_ESC_END 0334

-#define SLIP_ESC_ESC 0335

-

-static u8_t slip_buf[UIP_BUFSIZE];

-

-static u16_t len, tmplen;

-static u8_t lastc;

-

-/*-----------------------------------------------------------------------------------*/

-/**

- * Send the packet in the uip_buf and uip_appdata buffers using the

- * SLIP protocol.

- *

- * The first 40 bytes of the packet (the IP and TCP headers) are read

- * from the uip_buf buffer, and the following bytes (the application

- * data) are read from the uip_appdata buffer.

- *

- */

-/*-----------------------------------------------------------------------------------*/

-void

-slipdev_send(void)

-{

-  u16_t i;

-  u8_t *ptr;

-  u8_t c;

-

-  slipdev_char_put(SLIP_END);

-

-  ptr = uip_buf;

-  for(i = 0; i < uip_len; ++i) {

-    if(i == 40) {

-      ptr = (u8_t *)uip_appdata;

-    }

-    c = *ptr++;

-    switch(c) {

-    case SLIP_END:

-      slipdev_char_put(SLIP_ESC);

-      slipdev_char_put(SLIP_ESC_END);

-      break;

-    case SLIP_ESC:

-      slipdev_char_put(SLIP_ESC);

-      slipdev_char_put(SLIP_ESC_ESC);

-      break;

-    default:

-      slipdev_char_put(c);

-      break;

-    }

-  }

-  slipdev_char_put(SLIP_END);

-}

-/*-----------------------------------------------------------------------------------*/

-/** 

- * Poll the SLIP device for an available packet.

- *

- * This function will poll the SLIP device to see if a packet is

- * available. It uses a buffer in which all avaliable bytes from the

- * RS232 interface are read into. When a full packet has been read

- * into the buffer, the packet is copied into the uip_buf buffer and

- * the length of the packet is returned.

- *

- * \return The length of the packet placed in the uip_buf buffer, or

- * zero if no packet is available.

- */

-/*-----------------------------------------------------------------------------------*/

-u16_t

-slipdev_poll(void)

-{

-  u8_t c;

-  

-  while(slipdev_char_poll(c)) {

-    switch(c) {

-    case SLIP_ESC:

-      lastc = c;

-      break;

-      

-    case SLIP_END:

-      lastc = c;

-      /* End marker found, we copy our input buffer to the uip_buf

-	 buffer and return the size of the packet we copied. */

-      memcpy(uip_buf, slip_buf, len);

-      tmplen = len;

-      len = 0;

-      return tmplen;

-      

-    default:     

-      if(lastc == SLIP_ESC) {

-	lastc = c;

-	/* Previous read byte was an escape byte, so this byte will be

-	   interpreted differently from others. */

-	switch(c) {

-	case SLIP_ESC_END:

-	  c = SLIP_END;

-	  break;

-	case SLIP_ESC_ESC:

-	  c = SLIP_ESC;

-	  break;

-	}

-      } else {

-	lastc = c;

-      }

-      

-      slip_buf[len] = c;

-      ++len;

-      

-      if(len > UIP_BUFSIZE) {

-	len = 0;

-      }

-    

-      break;

-    }

-  }

-  return 0;

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Initialize the SLIP module.

- *

- * This function does not initialize the underlying RS232 device, but

- * only the SLIP part.

- */ 

-/*-----------------------------------------------------------------------------------*/

-void

-slipdev_init(void)

-{

-  lastc = len = 0;

-}

-/*-----------------------------------------------------------------------------------*/

-

-/** @} */

-/** @} */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.h
deleted file mode 100644
index 3fbfe2d..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/slipdev.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/**

- * \addtogroup slip

- * @{

- */

-

-/**

- * \file

- * SLIP header file.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: slipdev.h,v 1.1.2.3 2003/10/06 22:42:51 adam Exp $

- *

- */

-

-#ifndef __SLIPDEV_H__

-#define __SLIPDEV_H__

-

-#include "uip.h"

-

-/**

- * Put a character on the serial device.

- *

- * This function is used by the SLIP implementation to put a character

- * on the serial device. It must be implemented specifically for the

- * system on which the SLIP implementation is to be run.

- *

- * \param c The character to be put on the serial device.

- */

-void slipdev_char_put(u8_t c);

-

-/**

- * Poll the serial device for a character.

- *

- * This function is used by the SLIP implementation to poll the serial

- * device for a character. It must be implemented specifically for the

- * system on which the SLIP implementation is to be run.

- *

- * The function should return immediately regardless if a character is

- * available or not. If a character is available it should be placed

- * at the memory location pointed to by the pointer supplied by the

- * arguement c.

- *

- * \param c A pointer to a byte that is filled in by the function with

- * the received character, if available.

- *

- * \retval 0 If no character is available.

- * \retval Non-zero If a character is available.

- */

-u8_t slipdev_char_poll(u8_t *c);

-

-void slipdev_init(void);

-void slipdev_send(void);

-u16_t slipdev_poll(void);

-

-#endif /* __SLIPDEV_H__ */

-

-/** @} */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.c
deleted file mode 100644
index 0d23fc4..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/*

- * Copyright (c) 2001, Swedish Institute of Computer Science.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- *

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- *

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- *

- * 3. Neither the name of the Institute nor the names of its contributors 

- *    may be used to endorse or promote products derived from this software 

- *    without specific prior written permission. 

- *

- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 

- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 

- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 

- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 

- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 

- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 

- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 

- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 

- * SUCH DAMAGE. 

- *

- * Author: Adam Dunkels <adam@sics.se>

- *

- * $Id: tapdev.c,v 1.7.2.1 2003/10/07 13:23:19 adam Exp $

- */

-

-

-#include <fcntl.h>

-#include <stdlib.h>

-#include <stdio.h>

-#include <unistd.h>

-#include <string.h>

-#include <sys/ioctl.h>

-#include <sys/socket.h>

-#include <sys/types.h>

-#include <sys/time.h>

-#include <sys/uio.h>

-#include <sys/socket.h>

-

-#ifdef linux

-#include <sys/ioctl.h>

-#include <linux/if.h>

-#include <linux/if_tun.h>

-#define DEVTAP "/dev/net/tun"

-#else  /* linux */

-#define DEVTAP "/dev/tap0"

-#endif /* linux */

-

-#include "uip.h"

-

-static int fd;

-

-static unsigned long lasttime;

-static struct timezone tz;

-

-/*-----------------------------------------------------------------------------------*/

-void

-tapdev_init(void)

-{

-  char buf[1024];

-  

-  fd = open(DEVTAP, O_RDWR);

-  if(fd == -1) {

-    perror("tapdev: tapdev_init: open");

-    exit(1);

-  }

-

-#ifdef linux

-  {

-    struct ifreq ifr;

-    memset(&ifr, 0, sizeof(ifr));

-    ifr.ifr_flags = IFF_TAP|IFF_NO_PI;

-    if (ioctl(fd, TUNSETIFF, (void *) &ifr) < 0) {

-      perror(buf);

-      exit(1);

-    }

-  }

-#endif /* Linux */

-

-  snprintf(buf, sizeof(buf), "ifconfig tap0 inet %d.%d.%d.%d",

-	   UIP_DRIPADDR0, UIP_DRIPADDR1, UIP_DRIPADDR2, UIP_DRIPADDR3);

-  system(buf);

-

-  lasttime = 0;

-}

-/*-----------------------------------------------------------------------------------*/

-unsigned int

-tapdev_read(void)

-{

-  fd_set fdset;

-  struct timeval tv, now;

-  int ret;

-  

-  if(lasttime >= 500000) {

-    lasttime = 0;

-    return 0;

-  }

-  

-  tv.tv_sec = 0;

-  tv.tv_usec = 500000 - lasttime;

-

-

-  FD_ZERO(&fdset);

-  FD_SET(fd, &fdset);

-

-  gettimeofday(&now, &tz);  

-  ret = select(fd + 1, &fdset, NULL, NULL, &tv);

-  if(ret == 0) {

-    lasttime = 0;    

-    return 0;

-  } 

-  ret = read(fd, uip_buf, UIP_BUFSIZE);  

-  if(ret == -1) {

-    perror("tap_dev: tapdev_read: read");

-  }

-  gettimeofday(&tv, &tz);

-  lasttime += (tv.tv_sec - now.tv_sec) * 1000000 + (tv.tv_usec - now.tv_usec);

-

-  return ret;

-}

-/*-----------------------------------------------------------------------------------*/

-void

-tapdev_send(void)

-{

-  int ret;

-  struct iovec iov[2];

-  

-#ifdef linux

-  {

-    char tmpbuf[UIP_BUFSIZE];

-    int i;

-

-    for(i = 0; i < 40 + UIP_LLH_LEN; i++) {

-      tmpbuf[i] = uip_buf[i];

-    }

-    

-    for(; i < uip_len; i++) {

-      tmpbuf[i] = uip_appdata[i - 40 - UIP_LLH_LEN];

-    }

-    

-    ret = write(fd, tmpbuf, uip_len);

-  }  

-#else 

-

-  if(uip_len < 40 + UIP_LLH_LEN) {

-    ret = write(fd, uip_buf, uip_len + UIP_LLH_LEN);

-  } else {

-    iov[0].iov_base = uip_buf;

-    iov[0].iov_len = 40 + UIP_LLH_LEN;

-    iov[1].iov_base = (char *)uip_appdata;

-    iov[1].iov_len = uip_len - (40 + UIP_LLH_LEN);  

-    

-    ret = writev(fd, iov, 2);

-  }

-#endif

-  if(ret == -1) {

-    perror("tap_dev: tapdev_send: writev");

-    exit(1);

-  }

-}  

-/*-----------------------------------------------------------------------------------*/

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.h
deleted file mode 100644
index 66f1a4a..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/tapdev.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: tapdev.h,v 1.1.2.1 2003/10/04 22:54:17 adam Exp $

- *

- */

-

-#ifndef __TAPDEV_H__

-#define __TAPDEV_H__

-

-void tapdev_init(void);

-unsigned int tapdev_read(void);

-void tapdev_send(void);

-

-#endif /* __TAPDEV_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd-shell.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd-shell.c
deleted file mode 100644
index 7dff714..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd-shell.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/**

- * \addtogroup telnetd

- * @{

- */

-

-/**

- * \file

- * An example telnet server shell

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2003, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the Contiki desktop OS.

- *

- * $Id: telnetd-shell.c,v 1.1.2.1 2003/10/06 22:56:22 adam Exp $

- *

- */

-

-#include "uip.h"

-#include "telnetd.h"

-#include <string.h>

-

-struct ptentry {

-  char c;

-  void (* pfunc)(struct telnetd_state *s, char *str);

-};

-

-/*-----------------------------------------------------------------------------------*/

-static void

-parse(struct telnetd_state *s, register char *str, struct ptentry *t)

-{

-  register struct ptentry *p;

-  char *sstr;

-

-  sstr = str;

-  

-  /* Loop over the parse table entries in t in order to find one that

-     matches the first character in str. */

-  for(p = t; p->c != 0; ++p) {

-    if(*str == p->c) {

-      /* Skip rest of the characters up to the first space. */

-      while(*str != ' ') {

-	++str;

-      }

-

-      /* Skip all spaces.*/

-      while(*str == ' ') {

-	++str;

-      }

-

-      /* Call parse table entry function and return. */

-      p->pfunc(s, str);

-      return;

-    }

-  }

-

-  /* Did not find matching entry in parse table. We just call the

-     default handler supplied by the caller and return. */

-  p->pfunc(s, str);

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-exitt(struct telnetd_state *s, char *str)

-{

-  telnetd_close(s);

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-inttostr(register char *str, unsigned int i)

-{

-  str[0] = '0' + i / 100;

-  if(str[0] == '0') {

-    str[0] = ' ';

-  }

-  str[1] = '0' + (i / 10) % 10;

-  if(str[1] == '0') {

-    str[1] = ' ';

-  }

-  str[2] = '0' + i % 10;

-  str[3] = ' ';

-  str[4] = 0;

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-stats(struct telnetd_state *s, char *strr)

-{

-  char str[10];

-

-  inttostr(str, uip_stat.ip.recv);

-  telnetd_output(s, "IP packets received ", str);

-  inttostr(str, uip_stat.ip.sent);

-  telnetd_output(s, "IP packets sent ", str);

-  inttostr(str, uip_stat.ip.drop);

-  telnetd_output(s, "IP packets dropped ", str);

-

-  inttostr(str, uip_stat.icmp.recv);

-  telnetd_output(s, "ICMP packets received ", str);

-  inttostr(str, uip_stat.icmp.sent);

-  telnetd_output(s, "ICMP packets sent ", str);

-  inttostr(str, uip_stat.icmp.drop);

-  telnetd_output(s, "ICMP packets dropped ", str);

-

-  inttostr(str, uip_stat.tcp.recv);

-  telnetd_output(s, "TCP packets received ", str);

-  inttostr(str, uip_stat.tcp.sent);

-  telnetd_output(s, "TCP packets sent ", str);

-  inttostr(str, uip_stat.tcp.drop);

-  telnetd_output(s, "TCP packets dropped ", str);

-  inttostr(str, uip_stat.tcp.rexmit);

-  telnetd_output(s, "TCP packets retransmitted ", str);

-  inttostr(str, uip_stat.tcp.synrst);

-  telnetd_output(s, "TCP connection attempts ", str);

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-help(struct telnetd_state *s, char *str)

-{

-  telnetd_output(s, "Available commands:", "");

-  telnetd_output(s, "stats - show uIP statistics", "");

-  telnetd_output(s, "exit  - exit shell", "");  

-  telnetd_output(s, "?     - show this help", "");        

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-none(struct telnetd_state *s, char *str)

-{

-  if(strlen(str) > 0) {

-    telnetd_output(s, "Unknown command", "");

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-static struct ptentry configparsetab[] =

-  {{'s', stats},

-   {'e', exitt},

-   {'?', help},

-

-   /* Default action */

-   {0, none}};

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_connected(struct telnetd_state *s)

-{

-  telnetd_output(s, "uIP command shell", "");

-  telnetd_output(s, "Type '?' for help", "");  

-  telnetd_prompt(s, "uIP-0.9> "); 

-}

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_input(struct telnetd_state *s, char *cmd)

-{

-  parse(s, cmd, configparsetab);

-  telnetd_prompt(s, "uIP-0.9> "); 

-}

-/*-----------------------------------------------------------------------------------*/

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.c
deleted file mode 100644
index dba5222..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.c
+++ /dev/null
@@ -1,392 +0,0 @@
-/**

- * \addtogroup exampleapps

- * @{

- */

-

-/**

- * \defgroup telnetd Telnet server

- * @{

- *

- * The uIP telnet server provides a command based interface to uIP. It

- * allows using the "telnet" application to access uIP, and implements

- * the required telnet option negotiation.

- *

- * The code is structured in a way which makes it possible to add

- * commands without having to rewrite the main telnet code. The main

- * telnet code calls two callback functions, telnetd_connected() and

- * telnetd_input(), when a telnet connection has been established and

- * when a line of text arrives on a telnet connection. These two

- * functions can be implemented in a way which suits the particular

- * application or environment in which the uIP system is intended to

- * be run.

- *

- * The uIP distribution contains an example telnet shell

- * implementation that provides a basic set of commands.

- */

-

-/**

- * \file

- * Implementation of the Telnet server.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2003, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: telnetd.c,v 1.1.2.2 2003/10/07 13:47:50 adam Exp $

- *

- */

-

-#include "uip.h"

-#include "memb.h"

-#include "telnetd.h"

-#include <string.h>

-

-#define ISO_nl       0x0a

-#define ISO_cr       0x0d

-

-MEMB(linemem, TELNETD_LINELEN, TELNETD_NUMLINES);

-

-static u8_t i;

-

-#define STATE_NORMAL 0

-#define STATE_IAC    1

-#define STATE_WILL   2

-#define STATE_WONT   3

-#define STATE_DO     4  

-#define STATE_DONT   5

-#define STATE_CLOSE  6

-

-#define TELNET_IAC   255

-#define TELNET_WILL  251

-#define TELNET_WONT  252

-#define TELNET_DO    253

-#define TELNET_DONT  254

-/*-----------------------------------------------------------------------------------*/

-static char *

-alloc_line(void)

-{  

-  return memb_alloc(&linemem);

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-dealloc_line(char *line)

-{

-  memb_free(&linemem, line);

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-sendline(struct telnetd_state *s, char *line)

-{

-  static unsigned int i;

-  for(i = 0; i < TELNETD_NUMLINES; ++i) {

-    if(s->lines[i] == NULL) {

-      s->lines[i] = line;

-      break;

-    }

-  }

-  if(i == TELNETD_NUMLINES) {

-    dealloc_line(line);

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Close a telnet session.

- *

- * This function can be called from a telnet command in order to close

- * the connection.

- *

- * \param s The connection which is to be closed.

- *

- */

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_close(struct telnetd_state *s)

-{

-  s->state = STATE_CLOSE;

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Print a prompt on a telnet connection.

- *

- * This function can be called by the telnet command shell in order to

- * print out a command prompt.

- *

- * \param s A telnet connection.

- *

- * \param str The command prompt.

- *

- */

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_prompt(struct telnetd_state *s, char *str)

-{

-  char *line;

-  line = alloc_line();

-  if(line != NULL) {

-    strncpy(line, str, TELNETD_LINELEN);

-    sendline(s, line);

-  }         

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Print out a string on a telnet connection.

- *

- * This function can be called from a telnet command parser in order

- * to print out a string of text on the connection. The two strings

- * given as arguments to the function will be concatenated, a carrige

- * return and a new line character will be added, and the line is

- * sent.

- *

- * \param s The telnet connection.

- *

- * \param str1 The first string.

- *

- * \param str2 The second string.

- *

- */

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_output(struct telnetd_state *s, char *str1, char *str2)

-{

-  static unsigned len;

-  char *line;

-  

-  line = alloc_line();

-  if(line != NULL) {

-    len = strlen(str1);

-    strncpy(line, str1, TELNETD_LINELEN);

-    if(len < TELNETD_LINELEN) {

-      strncpy(line + len, str2, TELNETD_LINELEN - len);

-    }

-    len = strlen(line);

-    if(len < TELNETD_LINELEN - 2) {

-      line[len] = ISO_cr;

-      line[len+1] = ISO_nl;

-      line[len+2] = 0;

-    }

-    sendline(s, line);

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Initialize the telnet server.

- *

- * This function will perform the necessary initializations and start

- * listening on TCP port 23.

- */

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_init(void)

-{

-  memb_init(&linemem);

-  uip_listen(HTONS(23));

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-acked(struct telnetd_state *s)     

-{

-  dealloc_line(s->lines[0]);

-  for(i = 1; i < TELNETD_NUMLINES; ++i) {

-    s->lines[i - 1] = s->lines[i];

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-senddata(struct telnetd_state *s)    

-{

-  if(s->lines[0] != NULL) {

-    uip_send(s->lines[0], strlen(s->lines[0]));

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-getchar(struct telnetd_state *s, u8_t c)

-{

-  if(c == ISO_cr) {

-    return;

-  }

-  

-  s->buf[(int)s->bufptr] = c;  

-  if(s->buf[(int)s->bufptr] == ISO_nl ||

-     s->bufptr == sizeof(s->buf) - 1) {    

-    if(s->bufptr > 0) {

-      s->buf[(int)s->bufptr] = 0;

-    }

-    telnetd_input(s, s->buf);

-    s->bufptr = 0;

-  } else {

-    ++s->bufptr;

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-sendopt(struct telnetd_state *s, u8_t option, u8_t value)

-{

-  char *line;

-  line = alloc_line();

-  if(line != NULL) {

-    line[0] = TELNET_IAC;

-    line[1] = option;

-    line[2] = value;

-    line[3] = 0;

-    sendline(s, line);

-  }       

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-newdata(struct telnetd_state *s)

-{

-  u16_t len;

-  u8_t c;

-    

-  

-  len = uip_datalen();

-  

-  while(len > 0 && s->bufptr < sizeof(s->buf)) {

-    c = *uip_appdata;

-    ++uip_appdata;

-    --len;

-    switch(s->state) {

-    case STATE_IAC:

-      if(c == TELNET_IAC) {

-	getchar(s, c);

-	s->state = STATE_NORMAL;

-      } else {

-	switch(c) {

-	case TELNET_WILL:

-	  s->state = STATE_WILL;

-	  break;

-	case TELNET_WONT:

-	  s->state = STATE_WONT;

-	  break;

-	case TELNET_DO:

-	  s->state = STATE_DO;

-	  break;

-	case TELNET_DONT:

-	  s->state = STATE_DONT;

-	  break;

-	default:

-	  s->state = STATE_NORMAL;

-	  break;

-	}

-      }

-      break;

-    case STATE_WILL:

-      /* Reply with a DONT */

-      sendopt(s, TELNET_DONT, c);

-      s->state = STATE_NORMAL;

-      break;

-      

-    case STATE_WONT:

-      /* Reply with a DONT */

-      sendopt(s, TELNET_DONT, c);

-      s->state = STATE_NORMAL;

-      break;

-    case STATE_DO:

-      /* Reply with a WONT */

-      sendopt(s, TELNET_WONT, c);

-      s->state = STATE_NORMAL;

-      break;

-    case STATE_DONT:

-      /* Reply with a WONT */

-      sendopt(s, TELNET_WONT, c);

-      s->state = STATE_NORMAL;

-      break;

-    case STATE_NORMAL:

-      if(c == TELNET_IAC) {

-	s->state = STATE_IAC;

-      } else {

-	getchar(s, c);

-      }      

-      break;

-    } 

-

-    

-  }  

-  

-}

-/*-----------------------------------------------------------------------------------*/

-void

-telnetd_app(void)

-{

-  struct telnetd_state *s;

-

-  s = (struct telnetd_state *)uip_conn->appstate;

-  

-  if(uip_connected()) {

-

-    for(i = 0; i < TELNETD_NUMLINES; ++i) {

-      s->lines[i] = NULL;

-    }

-    s->bufptr = 0;

-    s->state = STATE_NORMAL;

-

-    telnetd_connected(s);

-    senddata(s);

-    return;

-  }

-

-  if(s->state == STATE_CLOSE) {

-    s->state = STATE_NORMAL;

-    uip_close();

-    return;

-  }

-  

-  if(uip_closed()) {

-    telnetd_output(s, "Connection closed", "");

-  }

-

-  

-  if(uip_aborted()) {

-    telnetd_output(s, "Connection reset", "");

-  }

-  

-  if(uip_timedout()) {

-    telnetd_output(s, "Connection timed out", "");

-  }

-  

-  if(uip_acked()) {

-    acked(s);

-  }

-  

-  if(uip_newdata()) {

-    newdata(s);

-  }

-  

-  if(uip_rexmit() ||

-     uip_newdata() ||

-     uip_acked()) {

-    senddata(s);

-  } else if(uip_poll()) {    

-    senddata(s);

-  }

-}

-/*-----------------------------------------------------------------------------------*/

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.h
deleted file mode 100644
index 254e44f..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/telnetd.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/**

- * \addtogroup telnetd

- * @{

- */

-

-/**

- * \file

- * Header file for the telnet server.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2002, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: telnetd.h,v 1.1.2.2 2003/10/07 13:22:27 adam Exp $

- *

- */

-#ifndef __TELNETD_H__

-#define __TELNETD_H__

-

-#include "uip.h"

-

-/**

- * The maximum length of a telnet line.

- *

- * \hideinitializer

- */

-#define TELNETD_LINELEN 36

-

-/**

- * The number of output lines being buffered for all telnet

- * connections.

- *

- * \hideinitializer

- */

-#define TELNETD_NUMLINES 2

-

-/**

- * A telnet connection structure.

- */

-struct telnetd_state {

-  char *lines[TELNETD_NUMLINES];

-  char buf[TELNETD_LINELEN];

-  char bufptr;

-  u8_t state;

-};

-

-

-/**

- * Callback function that is called when a telnet connection has been

- * established.

- *

- * \param s The telnet connection. 

- */

-void telnetd_connected(struct telnetd_state *s);

-

-/**

- * Callback function that is called when a line of text has arrived on

- * a telnet connection.

- *

- * \param s The telnet connection.

- *

- * \param cmd The line of text.

- */

-void telnetd_input(struct telnetd_state *s, char *cmd);

-

-

-void telnetd_close(struct telnetd_state *s);

-void telnetd_output(struct telnetd_state *s, char *s1, char *s2);

-void telnetd_prompt(struct telnetd_state *s, char *str);

-

-void telnetd_app(void);

-

-#ifndef UIP_APPCALL

-#define UIP_APPCALL     telnetd_app

-#endif

-

-#ifndef UIP_APPSTATE_SIZE

-#define UIP_APPSTATE_SIZE (sizeof(struct telnetd_state))

-#endif

-

-void telnetd_init(void);

-

-

-#endif /* __TELNET_H__ */

-

-/** @} */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uIP_Task.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uIP_Task.c
deleted file mode 100644
index fe79b51..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uIP_Task.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/*

- * Copyright (c) 2001-2003, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: main.c,v 1.10.2.4 2003/10/21 21:27:51 adam Exp $

- *

- */

-

-

-#include <stdlib.h>   /* For system(). */

-#include <stdio.h>    /* For printf(). */

-

-#include "FreeRTOS.h"

-#include "task.h"

-

-#undef HTONS

-

-#include "cs8900a.h"

-#include "uip.h"

-#include "uip_arp.h"

-#include "tapdev.h"

-#include "httpd.h"

-

-static const struct uip_eth_addr ethaddr = {{0x00,0x00,0xe2,0x58,0xb6,0x6b}};

-

-#define BUF ((struct uip_eth_hdr *)&uip_buf[0])

-#define uipSHORT_DELAY		( ( TickType_t ) 2 / portTICK_PERIOD_MS )

-

-#ifndef NULL

-#define NULL (void *)0

-#endif /* NULL */

-

-static volatile TickType_t start, current;

-

-#define RT_CLOCK_SECOND ( configTICK_RATE_HZ / 2 )

-

-/*-----------------------------------------------------------------------------------*/

-/**

- * \internal

- * A real-time clock.

- *

- * This example main() function uses polling of a real-time clock in

- * order to know when the periodic processing should be

- * performed. This is implemented using this function - rt_ticks(). In

- * this example unix implementation, it simply calls the unix function

- * gettimeofday() which returns the current wall clock time.

- *

- * For a micro-controller, a simple way to implement this function is

- * by having a counter that is incremented by a timer interrupt and

- * read by this function.

- * 

- * The macro RT_CLOCK_SECOND should be defined as the approximate

- * number of ticks that are elapsed during one second. 

- */

-#define rt_ticks xTaskGetTickCount

-

-/*-----------------------------------------------------------------------------------*/

-void vuIP_TASK( void *pvParameters )

-{

-u8_t i, arptimer;

-u16_t addr[2];

-int z = 3;

-

-	/* Initialize the uIP TCP/IP stack. */

-	uip_init();

-	uip_arp_init();

-

-	/* Initialize the device driver. */ 

-	cs8900a_init();

-

-	/* Initialize the HTTP server. */

-	httpd_init();

-

-	start = rt_ticks();

-	arptimer = 0;

-  

-	while(1) 

-	{

-		/* Let the network device driver read an entire IP packet

-		into the uip_buf. If it returns > 0, there is a packet in the

-		uip_buf buffer. */

-		uip_len = cs8900a_poll();

-

-		if(uip_len > 0) 

-		{

-			/* A packet is present in the packet buffer. We call the

-			appropriate ARP functions depending on what kind of packet we

-			have received. If the packet is an IP packet, we should call

-			uip_input() as well. */

-			if(BUF->type == htons(UIP_ETHTYPE_IP)) 

-			{

-				uip_arp_ipin();

-				uip_input();

-				/* If the above function invocation resulted in data that

-				should be sent out on the network, the global variable

-				uip_len is set to a value > 0. */

-				if(uip_len > 0) 

-				{

-					uip_arp_out();

-					cs8900a_send();

-				}

-			} 

-			else if(BUF->type == htons(UIP_ETHTYPE_ARP)) 

-			{

-				uip_arp_arpin();

-				/* If the above function invocation resulted in data that

-				should be sent out on the network, the global variable

-				uip_len is set to a value > 0. */	

-				if(uip_len > 0) 

-				{	

-					cs8900a_send();

-				}

-			}

-		} 

-		else 

-		{

-			/* The poll function returned 0, so no packet was

-			received. Instead we check if there is time that we do the

-			periodic processing. */

-			current = rt_ticks();

-

-			if((u16_t)(current - start) >= (u16_t)RT_CLOCK_SECOND / 2) 

-			{

-				start = current;

-

-				for(i = 0; i < UIP_CONNS; i++) 

-				{

-					uip_periodic(i);

-

-					/* If the above function invocation resulted in data that

-					should be sent out on the network, the global variable

-					uip_len is set to a value > 0. */

-					

-					if(uip_len > 0) 

-					{

-						uip_arp_out();

-						cs8900a_send();

-					}

-				}

-

-				#if UIP_UDP

-					for(i = 0; i < UIP_UDP_CONNS; i++) 

-					{

-						uip_udp_periodic(i);

-

-						/* If the above function invocation resulted in data that

-						should be sent out on the network, the global variable

-						uip_len is set to a value > 0. */

-

-						if(uip_len > 0) 

-						{

-							uip_arp_out();

-							tapdev_send();

-						}

-					}

-				#endif /* UIP_UDP */

-

-				/* Call the ARP timer function every 10 seconds. */

-				if(++arptimer == 20) 

-				{	

-					uip_arp_timer();

-					arptimer = 0;

-				}

-			}

-			else

-			{

-				vTaskDelay( uipSHORT_DELAY );

-		}   }

-	}

-}

-/*-----------------------------------------------------------------------------------*/

-

-

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip.c
deleted file mode 100644
index 3ef7e8d..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip.c
+++ /dev/null
@@ -1,1509 +0,0 @@
-/**

- * \addtogroup uip

- * @{

- */

-

-/**

- * \file

- * The uIP TCP/IP stack code.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001-2003, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uip.c,v 1.62.2.10 2003/10/07 13:23:01 adam Exp $

- *

- */

-

-/*

-This is a small implementation of the IP and TCP protocols (as well as

-some basic ICMP stuff). The implementation couples the IP, TCP and the

-application layers very tightly. To keep the size of the compiled code

-down, this code also features heavy usage of the goto statement.

-

-The principle is that we have a small buffer, called the uip_buf, in

-which the device driver puts an incoming packet. The TCP/IP stack

-parses the headers in the packet, and calls upon the application. If

-the remote host has sent data to the application, this data is present

-in the uip_buf and the application read the data from there. It is up

-to the application to put this data into a byte stream if needed. The

-application will not be fed with data that is out of sequence.

-

-If the application whishes to send data to the peer, it should put its

-data into the uip_buf, 40 bytes from the start of the buffer. The

-TCP/IP stack will calculate the checksums, and fill in the necessary

-header fields and finally send the packet back to the peer.

-*/

-

-#include "uip.h"

-#include "uipopt.h"

-#include "uip_arch.h"

-

-/*-----------------------------------------------------------------------------------*/

-/* Variable definitions. */

-

-

-/* The IP address of this host. If it is defined to be fixed (by setting UIP_FIXEDADDR to 1 in uipopt.h), the address is set here. Otherwise, the address */

-#if UIP_FIXEDADDR > 0

-const u16_t uip_hostaddr[2] =

-  {HTONS((UIP_IPADDR0 << 8) | UIP_IPADDR1),

-   HTONS((UIP_IPADDR2 << 8) | UIP_IPADDR3)};

-const u16_t uip_arp_draddr[2] =

-  {HTONS((UIP_DRIPADDR0 << 8) | UIP_DRIPADDR1),

-   HTONS((UIP_DRIPADDR2 << 8) | UIP_DRIPADDR3)};

-const u16_t uip_arp_netmask[2] =

-  {HTONS((UIP_NETMASK0 << 8) | UIP_NETMASK1),

-   HTONS((UIP_NETMASK2 << 8) | UIP_NETMASK3)};

-#else

-u16_t uip_hostaddr[2];       

-u16_t uip_arp_draddr[2], uip_arp_netmask[2];

-#endif /* UIP_FIXEDADDR */

-

-u8_t uip_buf[UIP_BUFSIZE+2];   /* The packet buffer that contains

-				incoming packets. */

-volatile u8_t *uip_appdata;  /* The uip_appdata pointer points to

-				application data. */

-volatile u8_t *uip_sappdata;  /* The uip_appdata pointer points to the

-				 application data which is to be sent. */

-#if UIP_URGDATA > 0

-volatile u8_t *uip_urgdata;  /* The uip_urgdata pointer points to

-				urgent data (out-of-band data), if

-				present. */

-volatile u8_t uip_urglen, uip_surglen;

-#endif /* UIP_URGDATA > 0 */

-

-volatile u16_t uip_len, uip_slen;

-                             /* The uip_len is either 8 or 16 bits,

-				depending on the maximum packet

-				size. */

-

-volatile u8_t uip_flags;     /* The uip_flags variable is used for

-				communication between the TCP/IP stack

-				and the application program. */

-struct uip_conn *uip_conn;   /* uip_conn always points to the current

-				connection. */

-

-struct uip_conn uip_conns[UIP_CONNS];

-                             /* The uip_conns array holds all TCP

-				connections. */

-u16_t uip_listenports[UIP_LISTENPORTS];

-                             /* The uip_listenports list all currently

-				listning ports. */

-#if UIP_UDP

-struct uip_udp_conn *uip_udp_conn;

-struct uip_udp_conn uip_udp_conns[UIP_UDP_CONNS];

-#endif /* UIP_UDP */

-

-

-static u16_t ipid;           /* Ths ipid variable is an increasing

-				number that is used for the IP ID

-				field. */

-

-static u8_t iss[4];          /* The iss variable is used for the TCP

-				initial sequence number. */

-

-#if UIP_ACTIVE_OPEN

-static u16_t lastport;       /* Keeps track of the last port used for

-				a new connection. */

-#endif /* UIP_ACTIVE_OPEN */

-

-/* Temporary variables. */

-volatile u8_t uip_acc32[4];

-static u8_t c, opt;

-static u16_t tmp16;

-

-/* Structures and definitions. */

-#define TCP_FIN 0x01

-#define TCP_SYN 0x02

-#define TCP_RST 0x04

-#define TCP_PSH 0x08

-#define TCP_ACK 0x10

-#define TCP_URG 0x20

-#define TCP_CTL 0x3f

-

-#define ICMP_ECHO_REPLY 0

-#define ICMP_ECHO       8     

-

-/* Macros. */

-#define BUF ((uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN])

-#define FBUF ((uip_tcpip_hdr *)&uip_reassbuf[0])

-#define ICMPBUF ((uip_icmpip_hdr *)&uip_buf[UIP_LLH_LEN])

-#define UDPBUF ((uip_udpip_hdr *)&uip_buf[UIP_LLH_LEN])

-

-#if UIP_STATISTICS == 1

-struct uip_stats uip_stat;

-#define UIP_STAT(s) s

-#else

-#define UIP_STAT(s)

-#endif /* UIP_STATISTICS == 1 */

-

-#if UIP_LOGGING == 1

-#include <stdio.h>

-void uip_log(char *msg);

-#define UIP_LOG(m) uip_log(m)

-#else

-#define UIP_LOG(m)

-#endif /* UIP_LOGGING == 1 */

-

-/*-----------------------------------------------------------------------------------*/

-void

-uip_init(void)

-{

-  for(c = 0; c < UIP_LISTENPORTS; ++c) {

-    uip_listenports[c] = 0;

-  }

-  for(c = 0; c < UIP_CONNS; ++c) {

-    uip_conns[c].tcpstateflags = CLOSED;

-  }

-#if UIP_ACTIVE_OPEN

-  lastport = 1024;

-#endif /* UIP_ACTIVE_OPEN */

-

-#if UIP_UDP

-  for(c = 0; c < UIP_UDP_CONNS; ++c) {

-    uip_udp_conns[c].lport = 0;

-  }

-#endif /* UIP_UDP */

-  

-

-  /* IPv4 initialization. */

-#if UIP_FIXEDADDR == 0

-  uip_hostaddr[0] = uip_hostaddr[1] = 0;

-#endif /* UIP_FIXEDADDR */

-

-}

-/*-----------------------------------------------------------------------------------*/

-#if UIP_ACTIVE_OPEN

-struct uip_conn *

-uip_connect(u16_t *ripaddr, u16_t rport)

-{

-  register struct uip_conn *conn, *cconn;

-  

-  /* Find an unused local port. */

- again:

-  ++lastport;

-

-  if(lastport >= 32000) {

-    lastport = 4096;

-  }

-

-  /* Check if this port is already in use, and if so try to find

-     another one. */

-  for(c = 0; c < UIP_CONNS; ++c) {

-    conn = &uip_conns[c];

-    if(conn->tcpstateflags != CLOSED &&

-       conn->lport == htons(lastport)) {

-      goto again;

-    }

-  }

-

-

-  conn = 0;

-  for(c = 0; c < UIP_CONNS; ++c) {

-    cconn = &uip_conns[c]; 

-    if(cconn->tcpstateflags == CLOSED) {

-      conn = cconn;

-      break;

-    }

-    if(cconn->tcpstateflags == TIME_WAIT) {

-      if(conn == 0 ||

-	 cconn->timer > uip_conn->timer) {

-	conn = cconn;

-      }

-    }

-  }

-

-  if(conn == 0) {

-    return 0;

-  }

-  

-  conn->tcpstateflags = SYN_SENT;

-

-  conn->snd_nxt[0] = iss[0];

-  conn->snd_nxt[1] = iss[1];

-  conn->snd_nxt[2] = iss[2];

-  conn->snd_nxt[3] = iss[3];

-

-  conn->initialmss = conn->mss = UIP_TCP_MSS;

-  

-  conn->len = 1;   /* TCP length of the SYN is one. */

-  conn->nrtx = 0;

-  conn->timer = 1; /* Send the SYN next time around. */

-  conn->rto = UIP_RTO;

-  conn->sa = 0;

-  conn->sv = 16;

-  conn->lport = htons(lastport);

-  conn->rport = rport;

-  conn->ripaddr[0] = ripaddr[0];

-  conn->ripaddr[1] = ripaddr[1];

-  

-  return conn;

-}

-#endif /* UIP_ACTIVE_OPEN */

-/*-----------------------------------------------------------------------------------*/

-#if UIP_UDP

-struct uip_udp_conn *

-uip_udp_new(u16_t *ripaddr, u16_t rport)

-{

-  register struct uip_udp_conn *conn;

-  

-  /* Find an unused local port. */

- again:

-  ++lastport;

-

-  if(lastport >= 32000) {

-    lastport = 4096;

-  }

-  

-  for(c = 0; c < UIP_UDP_CONNS; ++c) {

-    if(uip_udp_conns[c].lport == lastport) {

-      goto again;

-    }

-  }

-

-

-  conn = 0;

-  for(c = 0; c < UIP_UDP_CONNS; ++c) {

-    if(uip_udp_conns[c].lport == 0) {

-      conn = &uip_udp_conns[c]; 

-      break;

-    }

-  }

-

-  if(conn == 0) {

-    return 0;

-  }

-  

-  conn->lport = HTONS(lastport);

-  conn->rport = HTONS(rport);

-  conn->ripaddr[0] = ripaddr[0];

-  conn->ripaddr[1] = ripaddr[1];

-  

-  return conn;

-}

-#endif /* UIP_UDP */

-/*-----------------------------------------------------------------------------------*/

-void

-uip_unlisten(u16_t port)

-{

-  for(c = 0; c < UIP_LISTENPORTS; ++c) {

-    if(uip_listenports[c] == port) {

-      uip_listenports[c] = 0;

-      return;

-    }

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-void

-uip_listen(u16_t port)

-{

-  for(c = 0; c < UIP_LISTENPORTS; ++c) {

-    if(uip_listenports[c] == 0) {

-      uip_listenports[c] = port;

-      return;

-    }

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-/* XXX: IP fragment reassembly: not well-tested. */

-

-#if UIP_REASSEMBLY

-#define UIP_REASS_BUFSIZE (UIP_BUFSIZE - UIP_LLH_LEN)

-static u8_t uip_reassbuf[UIP_REASS_BUFSIZE];

-static u8_t uip_reassbitmap[UIP_REASS_BUFSIZE / (8 * 8)];

-static const u8_t bitmap_bits[8] = {0xff, 0x7f, 0x3f, 0x1f,

-				    0x0f, 0x07, 0x03, 0x01};

-static u16_t uip_reasslen;

-static u8_t uip_reassflags;

-#define UIP_REASS_FLAG_LASTFRAG 0x01

-static u8_t uip_reasstmr;

-

-#define IP_HLEN 20

-#define IP_MF   0x20

-

-static u8_t

-uip_reass(void)

-{

-  u16_t offset, len;

-  u16_t i;

-

-  /* If ip_reasstmr is zero, no packet is present in the buffer, so we

-     write the IP header of the fragment into the reassembly

-     buffer. The timer is updated with the maximum age. */

-  if(uip_reasstmr == 0) {

-    memcpy(uip_reassbuf, &BUF->vhl, IP_HLEN);

-    uip_reasstmr = UIP_REASS_MAXAGE;

-    uip_reassflags = 0;

-    /* Clear the bitmap. */

-    memset(uip_reassbitmap, sizeof(uip_reassbitmap), 0);

-  }

-

-  /* Check if the incoming fragment matches the one currently present

-     in the reasembly buffer. If so, we proceed with copying the

-     fragment into the buffer. */

-  if(BUF->srcipaddr[0] == FBUF->srcipaddr[0] &&

-     BUF->srcipaddr[1] == FBUF->srcipaddr[1] &&

-     BUF->destipaddr[0] == FBUF->destipaddr[0] &&

-     BUF->destipaddr[1] == FBUF->destipaddr[1] &&

-     BUF->ipid[0] == FBUF->ipid[0] &&

-     BUF->ipid[1] == FBUF->ipid[1]) {

-

-    len = (BUF->len[0] << 8) + BUF->len[1] - (BUF->vhl & 0x0f) * 4;

-    offset = (((BUF->ipoffset[0] & 0x3f) << 8) + BUF->ipoffset[1]) * 8;

-

-    /* If the offset or the offset + fragment length overflows the

-       reassembly buffer, we discard the entire packet. */

-    if(offset > UIP_REASS_BUFSIZE ||

-       offset + len > UIP_REASS_BUFSIZE) {

-      uip_reasstmr = 0;

-      goto nullreturn;

-    }

-

-    /* Copy the fragment into the reassembly buffer, at the right

-       offset. */

-    memcpy(&uip_reassbuf[IP_HLEN + offset],

-	   (char *)BUF + (int)((BUF->vhl & 0x0f) * 4),

-	   len);

-      

-    /* Update the bitmap. */

-    if(offset / (8 * 8) == (offset + len) / (8 * 8)) {

-      /* If the two endpoints are in the same byte, we only update

-	 that byte. */

-	     

-      uip_reassbitmap[offset / (8 * 8)] |=

-	     bitmap_bits[(offset / 8 ) & 7] &

-	     ~bitmap_bits[((offset + len) / 8 ) & 7];

-    } else {

-      /* If the two endpoints are in different bytes, we update the

-	 bytes in the endpoints and fill the stuff inbetween with

-	 0xff. */

-      uip_reassbitmap[offset / (8 * 8)] |=

-	bitmap_bits[(offset / 8 ) & 7];

-      for(i = 1 + offset / (8 * 8); i < (offset + len) / (8 * 8); ++i) {

-	uip_reassbitmap[i] = 0xff;

-      }      

-      uip_reassbitmap[(offset + len) / (8 * 8)] |=

-	~bitmap_bits[((offset + len) / 8 ) & 7];

-    }

-    

-    /* If this fragment has the More Fragments flag set to zero, we

-       know that this is the last fragment, so we can calculate the

-       size of the entire packet. We also set the

-       IP_REASS_FLAG_LASTFRAG flag to indicate that we have received

-       the final fragment. */

-

-    if((BUF->ipoffset[0] & IP_MF) == 0) {

-      uip_reassflags |= UIP_REASS_FLAG_LASTFRAG;

-      uip_reasslen = offset + len;

-    }

-    

-    /* Finally, we check if we have a full packet in the buffer. We do

-       this by checking if we have the last fragment and if all bits

-       in the bitmap are set. */

-    if(uip_reassflags & UIP_REASS_FLAG_LASTFRAG) {

-      /* Check all bytes up to and including all but the last byte in

-	 the bitmap. */

-      for(i = 0; i < uip_reasslen / (8 * 8) - 1; ++i) {

-	if(uip_reassbitmap[i] != 0xff) {

-	  goto nullreturn;

-	}

-      }

-      /* Check the last byte in the bitmap. It should contain just the

-	 right amount of bits. */

-      if(uip_reassbitmap[uip_reasslen / (8 * 8)] !=

-	 (u8_t)~bitmap_bits[uip_reasslen / 8 & 7]) {

-	goto nullreturn;

-      }

-

-      /* If we have come this far, we have a full packet in the

-	 buffer, so we allocate a pbuf and copy the packet into it. We

-	 also reset the timer. */

-      uip_reasstmr = 0;

-      memcpy(BUF, FBUF, uip_reasslen);

-

-      /* Pretend to be a "normal" (i.e., not fragmented) IP packet

-	 from now on. */

-      BUF->ipoffset[0] = BUF->ipoffset[1] = 0;

-      BUF->len[0] = uip_reasslen >> 8;

-      BUF->len[1] = uip_reasslen & 0xff;

-      BUF->ipchksum = 0;

-      BUF->ipchksum = ~(uip_ipchksum());

-

-      return uip_reasslen;

-    }

-  }

-

- nullreturn:

-  return 0;

-}

-#endif /* UIP_REASSEMBL */

-/*-----------------------------------------------------------------------------------*/

-static void

-uip_add_rcv_nxt(u16_t n)

-{

-  uip_add32(uip_conn->rcv_nxt, n);

-  uip_conn->rcv_nxt[0] = uip_acc32[0];

-  uip_conn->rcv_nxt[1] = uip_acc32[1];

-  uip_conn->rcv_nxt[2] = uip_acc32[2];

-  uip_conn->rcv_nxt[3] = uip_acc32[3];

-}

-/*-----------------------------------------------------------------------------------*/

-void

-uip_process(u8_t flag)

-{

-  register struct uip_conn *uip_connr = uip_conn;

-  

-  uip_appdata = &uip_buf[40 + UIP_LLH_LEN];

-

-  

-  /* Check if we were invoked because of the perodic timer fireing. */

-  if(flag == UIP_TIMER) {

-#if UIP_REASSEMBLY

-    if(uip_reasstmr != 0) {

-      --uip_reasstmr;

-    }

-#endif /* UIP_REASSEMBLY */

-    /* Increase the initial sequence number. */

-    if(++iss[3] == 0) {

-      if(++iss[2] == 0) {

-	if(++iss[1] == 0) {

-	  ++iss[0];

-	}

-      }

-    }    

-    uip_len = 0;

-    if(uip_connr->tcpstateflags == TIME_WAIT ||

-       uip_connr->tcpstateflags == FIN_WAIT_2) {

-      ++(uip_connr->timer);

-      if(uip_connr->timer == UIP_TIME_WAIT_TIMEOUT) {

-	uip_connr->tcpstateflags = CLOSED;

-      }

-    } else if(uip_connr->tcpstateflags != CLOSED) {

-      /* If the connection has outstanding data, we increase the

-	 connection's timer and see if it has reached the RTO value

-	 in which case we retransmit. */

-      if(uip_outstanding(uip_connr)) {

-	if(uip_connr->timer-- == 0) {

-	  if(uip_connr->nrtx == UIP_MAXRTX ||

-	     ((uip_connr->tcpstateflags == SYN_SENT ||

-	       uip_connr->tcpstateflags == SYN_RCVD) &&

-	      uip_connr->nrtx == UIP_MAXSYNRTX)) {

-	    uip_connr->tcpstateflags = CLOSED;

-

-	    /* We call UIP_APPCALL() with uip_flags set to

-	       UIP_TIMEDOUT to inform the application that the

-	       connection has timed out. */

-	    uip_flags = UIP_TIMEDOUT;

-	    UIP_APPCALL();

-

-	    /* We also send a reset packet to the remote host. */

-	    BUF->flags = TCP_RST | TCP_ACK;

-	    goto tcp_send_nodata;

-	  }

-

-	  /* Exponential backoff. */

-	  uip_connr->timer = UIP_RTO << (uip_connr->nrtx > 4?

-					 4:

-					 uip_connr->nrtx);

-	  ++(uip_connr->nrtx);

-	  

-	  /* Ok, so we need to retransmit. We do this differently

-	     depending on which state we are in. In ESTABLISHED, we

-	     call upon the application so that it may prepare the

-	     data for the retransmit. In SYN_RCVD, we resend the

-	     SYNACK that we sent earlier and in LAST_ACK we have to

-	     retransmit our FINACK. */

-	  UIP_STAT(++uip_stat.tcp.rexmit);

-	  switch(uip_connr->tcpstateflags & TS_MASK) {

-	  case SYN_RCVD:

-	    /* In the SYN_RCVD state, we should retransmit our

-               SYNACK. */

-	    goto tcp_send_synack;

-	    

-#if UIP_ACTIVE_OPEN

-	  case SYN_SENT:

-	    /* In the SYN_SENT state, we retransmit out SYN. */

-	    BUF->flags = 0;

-	    goto tcp_send_syn;

-#endif /* UIP_ACTIVE_OPEN */

-	    

-	  case ESTABLISHED:

-	    /* In the ESTABLISHED state, we call upon the application

-               to do the actual retransmit after which we jump into

-               the code for sending out the packet (the apprexmit

-               label). */

-	    uip_len = 0;

-	    uip_slen = 0;

-	    uip_flags = UIP_REXMIT;

-	    UIP_APPCALL();

-	    goto apprexmit;

-	    

-	  case FIN_WAIT_1:

-	  case CLOSING:

-	  case LAST_ACK:

-	    /* In all these states we should retransmit a FINACK. */

-	    goto tcp_send_finack;

-	    

-	  }

-	}

-      } else if((uip_connr->tcpstateflags & TS_MASK) == ESTABLISHED) {

-	/* If there was no need for a retransmission, we poll the

-           application for new data. */

-	uip_len = 0;

-	uip_slen = 0;

-	uip_flags = UIP_POLL;

-	UIP_APPCALL();

-	goto appsend;

-      }

-    }

-    goto drop;

-  }

-#if UIP_UDP 

-  if(flag == UIP_UDP_TIMER) {

-    if(uip_udp_conn->lport != 0) {

-      uip_appdata = &uip_buf[UIP_LLH_LEN + 28];

-      uip_len = uip_slen = 0;

-      uip_flags = UIP_POLL;

-      UIP_UDP_APPCALL();

-      goto udp_send;

-    } else {

-      goto drop;

-    }

-  }

-#endif

-

-  /* This is where the input processing starts. */

-  UIP_STAT(++uip_stat.ip.recv);

-

-

-  /* Start of IPv4 input header processing code. */

-  

-  /* Check validity of the IP header. */  

-  if(BUF->vhl != 0x45)  { /* IP version and header length. */

-    UIP_STAT(++uip_stat.ip.drop);

-    UIP_STAT(++uip_stat.ip.vhlerr);

-    UIP_LOG("ip: invalid version or header length.");

-    goto drop;

-  }

-  

-  /* Check the size of the packet. If the size reported to us in

-     uip_len doesn't match the size reported in the IP header, there

-     has been a transmission error and we drop the packet. */

-  

-  if(BUF->len[0] != (uip_len >> 8)) { /* IP length, high byte. */

-    uip_len = (uip_len & 0xff) | (BUF->len[0] << 8);

-  }

-  if(BUF->len[1] != (uip_len & 0xff)) { /* IP length, low byte. */

-    uip_len = (uip_len & 0xff00) | BUF->len[1];

-  }

-

-  /* Check the fragment flag. */

-  if((BUF->ipoffset[0] & 0x3f) != 0 ||

-     BUF->ipoffset[1] != 0) { 

-#if UIP_REASSEMBLY

-    uip_len = uip_reass();

-    if(uip_len == 0) {

-      goto drop;

-    }

-#else

-    UIP_STAT(++uip_stat.ip.drop);

-    UIP_STAT(++uip_stat.ip.fragerr);

-    UIP_LOG("ip: fragment dropped.");    

-    goto drop;

-#endif /* UIP_REASSEMBLY */

-  }

-

-  /* If we are configured to use ping IP address configuration and

-     hasn't been assigned an IP address yet, we accept all ICMP

-     packets. */

-#if UIP_PINGADDRCONF

-  if((uip_hostaddr[0] | uip_hostaddr[1]) == 0) {

-    if(BUF->proto == UIP_PROTO_ICMP) {

-      UIP_LOG("ip: possible ping config packet received.");

-      goto icmp_input;

-    } else {

-      UIP_LOG("ip: packet dropped since no address assigned.");

-      goto drop;

-    }

-  }

-#endif /* UIP_PINGADDRCONF */

-  

-  /* Check if the packet is destined for our IP address. */  

-  if(BUF->destipaddr[0] != uip_hostaddr[0]) {

-    UIP_STAT(++uip_stat.ip.drop);

-    UIP_LOG("ip: packet not for us.");        

-    goto drop;

-  }

-  if(BUF->destipaddr[1] != uip_hostaddr[1]) {

-    UIP_STAT(++uip_stat.ip.drop);

-    UIP_LOG("ip: packet not for us.");        

-    goto drop;

-  }

-

-#if 0

-  // IP checksum is wrong through Netgear DSL router

-  if (uip_ipchksum() != 0xffff) { /* Compute and check the IP header

-				    checksum. */

-    UIP_STAT(++uip_stat.ip.drop);

-    UIP_STAT(++uip_stat.ip.chkerr);

-    UIP_LOG("ip: bad checksum.");    

-    goto drop;

-  }

-#endif

-

-  if(BUF->proto == UIP_PROTO_TCP)  /* Check for TCP packet. If so, jump

-                                     to the tcp_input label. */

-    goto tcp_input;

-

-#if UIP_UDP

-  if(BUF->proto == UIP_PROTO_UDP)

-    goto udp_input;

-#endif /* UIP_UDP */

-

-  if(BUF->proto != UIP_PROTO_ICMP) { /* We only allow ICMP packets from

-					here. */

-    UIP_STAT(++uip_stat.ip.drop);

-    UIP_STAT(++uip_stat.ip.protoerr);

-    UIP_LOG("ip: neither tcp nor icmp.");        

-    goto drop;

-  }

-  

- icmp_input:

-  UIP_STAT(++uip_stat.icmp.recv);

-  

-  /* ICMP echo (i.e., ping) processing. This is simple, we only change

-     the ICMP type from ECHO to ECHO_REPLY and adjust the ICMP

-     checksum before we return the packet. */

-  if(ICMPBUF->type != ICMP_ECHO) {

-    UIP_STAT(++uip_stat.icmp.drop);

-    UIP_STAT(++uip_stat.icmp.typeerr);

-    UIP_LOG("icmp: not icmp echo.");

-    goto drop;

-  }

-

-  /* If we are configured to use ping IP address assignment, we use

-     the destination IP address of this ping packet and assign it to

-     ourself. */

-#if UIP_PINGADDRCONF

-  if((uip_hostaddr[0] | uip_hostaddr[1]) == 0) {

-    uip_hostaddr[0] = BUF->destipaddr[0];

-    uip_hostaddr[1] = BUF->destipaddr[1];

-  }

-#endif /* UIP_PINGADDRCONF */  

-  

-  ICMPBUF->type = ICMP_ECHO_REPLY;

-  

-  if(ICMPBUF->icmpchksum >= HTONS(0xffff - (ICMP_ECHO << 8))) {

-    ICMPBUF->icmpchksum += HTONS(ICMP_ECHO << 8) + 1;

-  } else {

-    ICMPBUF->icmpchksum += HTONS(ICMP_ECHO << 8);

-  }

-  

-  /* Swap IP addresses. */

-  tmp16 = BUF->destipaddr[0];

-  BUF->destipaddr[0] = BUF->srcipaddr[0];

-  BUF->srcipaddr[0] = tmp16;

-  tmp16 = BUF->destipaddr[1];

-  BUF->destipaddr[1] = BUF->srcipaddr[1];

-  BUF->srcipaddr[1] = tmp16;

-

-  UIP_STAT(++uip_stat.icmp.sent);

-  goto send;

-

-  /* End of IPv4 input header processing code. */

-  

-

-#if UIP_UDP

-  /* UDP input processing. */

- udp_input:

-  /* UDP processing is really just a hack. We don't do anything to the

-     UDP/IP headers, but let the UDP application do all the hard

-     work. If the application sets uip_slen, it has a packet to

-     send. */

-#if UIP_UDP_CHECKSUMS

-  if(uip_udpchksum() != 0xffff) { 

-    UIP_STAT(++uip_stat.udp.drop);

-    UIP_STAT(++uip_stat.udp.chkerr);

-    UIP_LOG("udp: bad checksum.");    

-    goto drop;

-  }  

-#endif /* UIP_UDP_CHECKSUMS */

-

-  /* Demultiplex this UDP packet between the UDP "connections". */

-  for(uip_udp_conn = &uip_udp_conns[0];

-      uip_udp_conn < &uip_udp_conns[UIP_UDP_CONNS];

-      ++uip_udp_conn) {

-    if(uip_udp_conn->lport != 0 &&

-       UDPBUF->destport == uip_udp_conn->lport &&

-       (uip_udp_conn->rport == 0 ||

-        UDPBUF->srcport == uip_udp_conn->rport) &&

-       BUF->srcipaddr[0] == uip_udp_conn->ripaddr[0] &&

-       BUF->srcipaddr[1] == uip_udp_conn->ripaddr[1]) {

-      goto udp_found; 

-    }

-  }

-  goto drop;

-  

- udp_found:

-  uip_len = uip_len - 28;

-  uip_appdata = &uip_buf[UIP_LLH_LEN + 28];

-  uip_flags = UIP_NEWDATA;

-  uip_slen = 0;

-  UIP_UDP_APPCALL();

- udp_send:

-  if(uip_slen == 0) {

-    goto drop;      

-  }

-  uip_len = uip_slen + 28;

-

-  BUF->len[0] = (uip_len >> 8);

-  BUF->len[1] = (uip_len & 0xff);

-  

-  BUF->proto = UIP_PROTO_UDP;

-

-  UDPBUF->udplen = HTONS(uip_slen + 8);

-  UDPBUF->udpchksum = 0;

-#if UIP_UDP_CHECKSUMS 

-  /* Calculate UDP checksum. */

-  UDPBUF->udpchksum = ~(uip_udpchksum());

-  if(UDPBUF->udpchksum == 0) {

-    UDPBUF->udpchksum = 0xffff;

-  }

-#endif /* UIP_UDP_CHECKSUMS */

-

-  BUF->srcport  = uip_udp_conn->lport;

-  BUF->destport = uip_udp_conn->rport;

-

-  BUF->srcipaddr[0] = uip_hostaddr[0];

-  BUF->srcipaddr[1] = uip_hostaddr[1];

-  BUF->destipaddr[0] = uip_udp_conn->ripaddr[0];

-  BUF->destipaddr[1] = uip_udp_conn->ripaddr[1];

- 

-  uip_appdata = &uip_buf[UIP_LLH_LEN + 40];

-  goto ip_send_nolen;

-#endif /* UIP_UDP */

-  

-  /* TCP input processing. */  

- tcp_input:

-  UIP_STAT(++uip_stat.tcp.recv);

-

-  /* Start of TCP input header processing code. */

-  

-#if 1  // FIXME

-  if(uip_tcpchksum() != 0xffff) {   /* Compute and check the TCP

-				       checksum. */

-    UIP_STAT(++uip_stat.tcp.drop);

-    UIP_STAT(++uip_stat.tcp.chkerr);

-    UIP_LOG("tcp: bad checksum.");    

-    goto drop;

-  }

-#endif

-  

-  /* Demultiplex this segment. */

-  /* First check any active connections. */

-  for(uip_connr = &uip_conns[0]; uip_connr < &uip_conns[UIP_CONNS]; ++uip_connr) {

-    if(uip_connr->tcpstateflags != CLOSED &&

-       BUF->destport == uip_connr->lport &&

-       BUF->srcport == uip_connr->rport &&

-       BUF->srcipaddr[0] == uip_connr->ripaddr[0] &&

-       BUF->srcipaddr[1] == uip_connr->ripaddr[1]) {

-      goto found;    

-    }

-  }

-

-  /* If we didn't find and active connection that expected the packet,

-     either this packet is an old duplicate, or this is a SYN packet

-     destined for a connection in LISTEN. If the SYN flag isn't set,

-     it is an old packet and we send a RST. */

-  if((BUF->flags & TCP_CTL) != TCP_SYN)

-    goto reset;

-  

-  tmp16 = BUF->destport;

-  /* Next, check listening connections. */  

-  for(c = 0; c < UIP_LISTENPORTS; ++c) {

-    if(tmp16 == uip_listenports[c])

-      goto found_listen;

-  }

-  

-  /* No matching connection found, so we send a RST packet. */

-  UIP_STAT(++uip_stat.tcp.synrst);

- reset:

-

-  /* We do not send resets in response to resets. */

-  if(BUF->flags & TCP_RST) 

-    goto drop;

-

-  UIP_STAT(++uip_stat.tcp.rst);

-  

-  BUF->flags = TCP_RST | TCP_ACK;

-  uip_len = 40;

-  BUF->tcpoffset = 5 << 4;

-

-  /* Flip the seqno and ackno fields in the TCP header. */

-  c = BUF->seqno[3];

-  BUF->seqno[3] = BUF->ackno[3];  

-  BUF->ackno[3] = c;

-  

-  c = BUF->seqno[2];

-  BUF->seqno[2] = BUF->ackno[2];  

-  BUF->ackno[2] = c;

-  

-  c = BUF->seqno[1];

-  BUF->seqno[1] = BUF->ackno[1];

-  BUF->ackno[1] = c;

-  

-  c = BUF->seqno[0];

-  BUF->seqno[0] = BUF->ackno[0];  

-  BUF->ackno[0] = c;

-

-  /* We also have to increase the sequence number we are

-     acknowledging. If the least significant byte overflowed, we need

-     to propagate the carry to the other bytes as well. */

-  if(++BUF->ackno[3] == 0) {

-    if(++BUF->ackno[2] == 0) {

-      if(++BUF->ackno[1] == 0) {

-	++BUF->ackno[0];

-      }

-    }

-  }

- 

-  /* Swap port numbers. */

-  tmp16 = BUF->srcport;

-  BUF->srcport = BUF->destport;

-  BUF->destport = tmp16;

-  

-  /* Swap IP addresses. */

-  tmp16 = BUF->destipaddr[0];

-  BUF->destipaddr[0] = BUF->srcipaddr[0];

-  BUF->srcipaddr[0] = tmp16;

-  tmp16 = BUF->destipaddr[1];

-  BUF->destipaddr[1] = BUF->srcipaddr[1];

-  BUF->srcipaddr[1] = tmp16;

-

-  

-  /* And send out the RST packet! */

-  goto tcp_send_noconn;

-

-  /* This label will be jumped to if we matched the incoming packet

-     with a connection in LISTEN. In that case, we should create a new

-     connection and send a SYNACK in return. */

- found_listen:

-  /* First we check if there are any connections avaliable. Unused

-     connections are kept in the same table as used connections, but

-     unused ones have the tcpstate set to CLOSED. Also, connections in

-     TIME_WAIT are kept track of and we'll use the oldest one if no

-     CLOSED connections are found. Thanks to Eddie C. Dost for a very

-     nice algorithm for the TIME_WAIT search. */

-  uip_connr = 0;

-  for(c = 0; c < UIP_CONNS; ++c) {

-    if(uip_conns[c].tcpstateflags == CLOSED) {

-      uip_connr = &uip_conns[c];

-      break;

-    }

-    if(uip_conns[c].tcpstateflags == TIME_WAIT) {

-      if(uip_connr == 0 ||

-	 uip_conns[c].timer > uip_connr->timer) {

-	uip_connr = &uip_conns[c];

-      }

-    }

-  }

-

-  if(uip_connr == 0) {

-    /* All connections are used already, we drop packet and hope that

-       the remote end will retransmit the packet at a time when we

-       have more spare connections. */

-    UIP_STAT(++uip_stat.tcp.syndrop);

-    UIP_LOG("tcp: found no unused connections.");

-    goto drop;

-  }

-  uip_conn = uip_connr;

-  

-  /* Fill in the necessary fields for the new connection. */

-  uip_connr->rto = uip_connr->timer = UIP_RTO;

-  uip_connr->sa = 0;

-  uip_connr->sv = 4;  

-  uip_connr->nrtx = 0;

-  uip_connr->lport = BUF->destport;

-  uip_connr->rport = BUF->srcport;

-  uip_connr->ripaddr[0] = BUF->srcipaddr[0];

-  uip_connr->ripaddr[1] = BUF->srcipaddr[1];

-  uip_connr->tcpstateflags = SYN_RCVD;

-

-  uip_connr->snd_nxt[0] = iss[0];

-  uip_connr->snd_nxt[1] = iss[1];

-  uip_connr->snd_nxt[2] = iss[2];

-  uip_connr->snd_nxt[3] = iss[3];

-  uip_connr->len = 1;

-

-  /* rcv_nxt should be the seqno from the incoming packet + 1. */

-  uip_connr->rcv_nxt[3] = BUF->seqno[3];

-  uip_connr->rcv_nxt[2] = BUF->seqno[2];

-  uip_connr->rcv_nxt[1] = BUF->seqno[1];

-  uip_connr->rcv_nxt[0] = BUF->seqno[0];

-  uip_add_rcv_nxt(1);

-

-  /* Parse the TCP MSS option, if present. */

-  if((BUF->tcpoffset & 0xf0) > 0x50) {

-    for(c = 0; c < ((BUF->tcpoffset >> 4) - 5) << 2 ;) {

-      opt = uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + c];

-      if(opt == 0x00) {

-	/* End of options. */	

-	break;

-      } else if(opt == 0x01) {

-	++c;

-	/* NOP option. */

-      } else if(opt == 0x02 &&

-		uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0x04) {

-	/* An MSS option with the right option length. */	

-	tmp16 = ((u16_t)uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 2 + c] << 8) |

-	  (u16_t)uip_buf[40 + UIP_LLH_LEN + 3 + c];

-	uip_connr->initialmss = uip_connr->mss =

-	  tmp16 > UIP_TCP_MSS? UIP_TCP_MSS: tmp16;

-	

-	/* And we are done processing options. */

-	break;

-      } else {

-	/* All other options have a length field, so that we easily

-	   can skip past them. */

-	if(uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0) {

-	  /* If the length field is zero, the options are malformed

-	     and we don't process them further. */

-	  break;

-	}

-	c += uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c];

-      }      

-    }

-  }

-  

-  /* Our response will be a SYNACK. */

-#if UIP_ACTIVE_OPEN

- tcp_send_synack:

-  BUF->flags = TCP_ACK;    

-  

- tcp_send_syn:

-  BUF->flags |= TCP_SYN;    

-#else /* UIP_ACTIVE_OPEN */

- tcp_send_synack:

-  BUF->flags = TCP_SYN | TCP_ACK;    

-#endif /* UIP_ACTIVE_OPEN */

-  

-  /* We send out the TCP Maximum Segment Size option with our

-     SYNACK. */

-  BUF->optdata[0] = 2;

-  BUF->optdata[1] = 4;

-  BUF->optdata[2] = (UIP_TCP_MSS) / 256;

-  BUF->optdata[3] = (UIP_TCP_MSS) & 255;

-  uip_len = 44;

-  BUF->tcpoffset = 6 << 4;

-  goto tcp_send;

-

-  /* This label will be jumped to if we found an active connection. */

- found:

-  uip_conn = uip_connr;

-  uip_flags = 0;

-

-  /* We do a very naive form of TCP reset processing; we just accept

-     any RST and kill our connection. We should in fact check if the

-     sequence number of this reset is wihtin our advertised window

-     before we accept the reset. */

-  if(BUF->flags & TCP_RST) {

-    uip_connr->tcpstateflags = CLOSED;

-    UIP_LOG("tcp: got reset, aborting connection.");

-    uip_flags = UIP_ABORT;

-    UIP_APPCALL();

-    goto drop;

-  }      

-  /* Calculated the length of the data, if the application has sent

-     any data to us. */

-  c = (BUF->tcpoffset >> 4) << 2;

-  /* uip_len will contain the length of the actual TCP data. This is

-     calculated by subtracing the length of the TCP header (in

-     c) and the length of the IP header (20 bytes). */

-  uip_len = uip_len - c - 20;

-

-  /* First, check if the sequence number of the incoming packet is

-     what we're expecting next. If not, we send out an ACK with the

-     correct numbers in. */

-  if(uip_len > 0 &&

-     (BUF->seqno[0] != uip_connr->rcv_nxt[0] ||

-      BUF->seqno[1] != uip_connr->rcv_nxt[1] ||

-      BUF->seqno[2] != uip_connr->rcv_nxt[2] ||

-      BUF->seqno[3] != uip_connr->rcv_nxt[3])) {

-    goto tcp_send_ack;

-  }

-

-  /* Next, check if the incoming segment acknowledges any outstanding

-     data. If so, we update the sequence number, reset the length of

-     the outstanding data, calculate RTT estimations, and reset the

-     retransmission timer. */

-  if((BUF->flags & TCP_ACK) && uip_outstanding(uip_connr)) {

-    uip_add32(uip_connr->snd_nxt, uip_connr->len);

-    if(BUF->ackno[0] == uip_acc32[0] &&

-       BUF->ackno[1] == uip_acc32[1] &&

-       BUF->ackno[2] == uip_acc32[2] &&

-       BUF->ackno[3] == uip_acc32[3]) {

-      /* Update sequence number. */

-      uip_connr->snd_nxt[0] = uip_acc32[0];

-      uip_connr->snd_nxt[1] = uip_acc32[1];

-      uip_connr->snd_nxt[2] = uip_acc32[2];

-      uip_connr->snd_nxt[3] = uip_acc32[3];

-	

-

-      /* Do RTT estimation, unless we have done retransmissions. */

-      if(uip_connr->nrtx == 0) {

-	signed char m;

-	m = uip_connr->rto - uip_connr->timer;

-	/* This is taken directly from VJs original code in his paper */

-	m = m - (uip_connr->sa >> 3);

-	uip_connr->sa += m;

-	if(m < 0) {

-	  m = -m;

-	}

-	m = m - (uip_connr->sv >> 2);

-	uip_connr->sv += m;

-	uip_connr->rto = (uip_connr->sa >> 3) + uip_connr->sv;

-

-      }

-      /* Set the acknowledged flag. */

-      uip_flags = UIP_ACKDATA;

-      /* Reset the retransmission timer. */

-      uip_connr->timer = uip_connr->rto;

-    }

-    

-  }

-

-  /* Do different things depending on in what state the connection is. */

-  switch(uip_connr->tcpstateflags & TS_MASK) {

-    /* CLOSED and LISTEN are not handled here. CLOSE_WAIT is not

-	implemented, since we force the application to close when the

-	peer sends a FIN (hence the application goes directly from

-	ESTABLISHED to LAST_ACK). */

-  case SYN_RCVD:

-    /* In SYN_RCVD we have sent out a SYNACK in response to a SYN, and

-       we are waiting for an ACK that acknowledges the data we sent

-       out the last time. Therefore, we want to have the UIP_ACKDATA

-       flag set. If so, we enter the ESTABLISHED state. */

-    if(uip_flags & UIP_ACKDATA) {

-      uip_connr->tcpstateflags = ESTABLISHED;

-      uip_flags = UIP_CONNECTED;

-      uip_connr->len = 0;

-      if(uip_len > 0) {

-        uip_flags |= UIP_NEWDATA;

-        uip_add_rcv_nxt(uip_len);

-      }

-      uip_slen = 0;

-      UIP_APPCALL();

-      goto appsend;

-    }

-    goto drop;

-#if UIP_ACTIVE_OPEN

-  case SYN_SENT:

-    /* In SYN_SENT, we wait for a SYNACK that is sent in response to

-       our SYN. The rcv_nxt is set to sequence number in the SYNACK

-       plus one, and we send an ACK. We move into the ESTABLISHED

-       state. */

-    if((uip_flags & UIP_ACKDATA) &&

-       BUF->flags == (TCP_SYN | TCP_ACK)) {

-

-      /* Parse the TCP MSS option, if present. */

-      if((BUF->tcpoffset & 0xf0) > 0x50) {

-	for(c = 0; c < ((BUF->tcpoffset >> 4) - 5) << 2 ;) {

-	  opt = uip_buf[40 + UIP_LLH_LEN + c];

-	  if(opt == 0x00) {

-	    /* End of options. */	

-	    break;

-	  } else if(opt == 0x01) {

-	    ++c;

-	    /* NOP option. */

-	  } else if(opt == 0x02 &&

-		    uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0x04) {

-	    /* An MSS option with the right option length. */

-	    tmp16 = (uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 2 + c] << 8) |

-	      uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 3 + c];

-	    uip_connr->initialmss =

-	      uip_connr->mss = tmp16 > UIP_TCP_MSS? UIP_TCP_MSS: tmp16;

-

-	    /* And we are done processing options. */

-	    break;

-	  } else {

-	    /* All other options have a length field, so that we easily

-	       can skip past them. */

-	    if(uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0) {

-	      /* If the length field is zero, the options are malformed

-		 and we don't process them further. */

-	      break;

-	    }

-	    c += uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c];

-	  }      

-	}

-      }

-      uip_connr->tcpstateflags = ESTABLISHED;      

-      uip_connr->rcv_nxt[0] = BUF->seqno[0];

-      uip_connr->rcv_nxt[1] = BUF->seqno[1];

-      uip_connr->rcv_nxt[2] = BUF->seqno[2];

-      uip_connr->rcv_nxt[3] = BUF->seqno[3];

-      uip_add_rcv_nxt(1);

-      uip_flags = UIP_CONNECTED | UIP_NEWDATA;

-      uip_connr->len = 0;

-      uip_len = 0;

-      uip_slen = 0;

-      UIP_APPCALL();

-      goto appsend;

-    }

-    goto reset;

-#endif /* UIP_ACTIVE_OPEN */

-    

-  case ESTABLISHED:

-    /* In the ESTABLISHED state, we call upon the application to feed

-    data into the uip_buf. If the UIP_ACKDATA flag is set, the

-    application should put new data into the buffer, otherwise we are

-    retransmitting an old segment, and the application should put that

-    data into the buffer.

-

-    If the incoming packet is a FIN, we should close the connection on

-    this side as well, and we send out a FIN and enter the LAST_ACK

-    state. We require that there is no outstanding data; otherwise the

-    sequence numbers will be screwed up. */

-

-    if(BUF->flags & TCP_FIN) {

-      if(uip_outstanding(uip_connr)) {

-	goto drop;

-      }

-      uip_add_rcv_nxt(1 + uip_len);      

-      uip_flags = UIP_CLOSE;

-      if(uip_len > 0) {

-	uip_flags |= UIP_NEWDATA;

-      }

-      UIP_APPCALL();

-      uip_connr->len = 1;

-      uip_connr->tcpstateflags = LAST_ACK;

-      uip_connr->nrtx = 0;

-    tcp_send_finack:

-      BUF->flags = TCP_FIN | TCP_ACK;      

-      goto tcp_send_nodata;

-    }

-

-    /* Check the URG flag. If this is set, the segment carries urgent

-       data that we must pass to the application. */

-    if(BUF->flags & TCP_URG) {

-#if UIP_URGDATA > 0

-      uip_urglen = (BUF->urgp[0] << 8) | BUF->urgp[1];

-      if(uip_urglen > uip_len) {

-	/* There is more urgent data in the next segment to come. */

-	uip_urglen = uip_len;

-      }

-      uip_add_rcv_nxt(uip_urglen);

-      uip_len -= uip_urglen;

-      uip_urgdata = uip_appdata;

-      uip_appdata += uip_urglen;

-    } else {

-      uip_urglen = 0;

-#endif /* UIP_URGDATA > 0 */

-      uip_appdata += (BUF->urgp[0] << 8) | BUF->urgp[1];

-      uip_len -= (BUF->urgp[0] << 8) | BUF->urgp[1];

-    }

-    

-    

-    /* If uip_len > 0 we have TCP data in the packet, and we flag this

-       by setting the UIP_NEWDATA flag and update the sequence number

-       we acknowledge. If the application has stopped the dataflow

-       using uip_stop(), we must not accept any data packets from the

-       remote host. */

-    if(uip_len > 0 && !(uip_connr->tcpstateflags & UIP_STOPPED)) {

-      uip_flags |= UIP_NEWDATA;

-      uip_add_rcv_nxt(uip_len);

-    }

-

-    /* Check if the available buffer space advertised by the other end

-       is smaller than the initial MSS for this connection. If so, we

-       set the current MSS to the window size to ensure that the

-       application does not send more data than the other end can

-       handle.

-

-       If the remote host advertises a zero window, we set the MSS to

-       the initial MSS so that the application will send an entire MSS

-       of data. This data will not be acknowledged by the receiver,

-       and the application will retransmit it. This is called the

-       "persistent timer" and uses the retransmission mechanim.

-    */

-    tmp16 = ((u16_t)BUF->wnd[0] << 8) + (u16_t)BUF->wnd[1];

-    if(tmp16 > uip_connr->initialmss ||

-       tmp16 == 0) {

-      tmp16 = uip_connr->initialmss;

-    }

-    uip_connr->mss = tmp16;

-

-    /* If this packet constitutes an ACK for outstanding data (flagged

-       by the UIP_ACKDATA flag, we should call the application since it

-       might want to send more data. If the incoming packet had data

-       from the peer (as flagged by the UIP_NEWDATA flag), the

-       application must also be notified.

-

-       When the application is called, the global variable uip_len

-       contains the length of the incoming data. The application can

-       access the incoming data through the global pointer

-       uip_appdata, which usually points 40 bytes into the uip_buf

-       array.

-

-       If the application wishes to send any data, this data should be

-       put into the uip_appdata and the length of the data should be

-       put into uip_len. If the application don't have any data to

-       send, uip_len must be set to 0. */

-    if(uip_flags & (UIP_NEWDATA | UIP_ACKDATA)) {

-      uip_slen = 0;

-      UIP_APPCALL();

-

-    appsend:

-      

-      if(uip_flags & UIP_ABORT) {

-	uip_slen = 0;

-	uip_connr->tcpstateflags = CLOSED;

-	BUF->flags = TCP_RST | TCP_ACK;

-	goto tcp_send_nodata;

-      }

-

-      if(uip_flags & UIP_CLOSE) {

-	uip_slen = 0;

-	uip_connr->len = 1;

-	uip_connr->tcpstateflags = FIN_WAIT_1;

-	uip_connr->nrtx = 0;

-	BUF->flags = TCP_FIN | TCP_ACK;

-	goto tcp_send_nodata;	

-      }

-

-      /* If uip_slen > 0, the application has data to be sent. */

-      if(uip_slen > 0) {

-

-	/* If the connection has acknowledged data, the contents of

-	   the ->len variable should be discarded. */ 

-	if((uip_flags & UIP_ACKDATA) != 0) {

-	  uip_connr->len = 0;

-	}

-

-	/* If the ->len variable is non-zero the connection has

-	   already data in transit and cannot send anymore right

-	   now. */

-	if(uip_connr->len == 0) {

-

-	  /* The application cannot send more than what is allowed by

-	     the mss (the minumum of the MSS and the available

-	     window). */

-	  if(uip_slen > uip_connr->mss) {

-	    uip_slen = uip_connr->mss;

-	  }

-

-	  /* Remember how much data we send out now so that we know

-	     when everything has been acknowledged. */

-	  uip_connr->len = uip_slen;

-	} else {

-

-	  /* If the application already had unacknowledged data, we

-	     make sure that the application does not send (i.e.,

-	     retransmit) out more than it previously sent out. */

-	  uip_slen = uip_connr->len;

-	}

-      } else {

-	uip_connr->len = 0;

-      }

-      uip_connr->nrtx = 0;

-    apprexmit:

-      uip_appdata = uip_sappdata;

-      

-      /* If the application has data to be sent, or if the incoming

-         packet had new data in it, we must send out a packet. */

-      if(uip_slen > 0 && uip_connr->len > 0) {

-	/* Add the length of the IP and TCP headers. */

-	uip_len = uip_connr->len + UIP_TCPIP_HLEN;

-	/* We always set the ACK flag in response packets. */

-	BUF->flags = TCP_ACK | TCP_PSH;

-	/* Send the packet. */

-	goto tcp_send_noopts;

-      }

-      /* If there is no data to send, just send out a pure ACK if

-	 there is newdata. */

-      if(uip_flags & UIP_NEWDATA) {

-	uip_len = UIP_TCPIP_HLEN;

-	BUF->flags = TCP_ACK;

-	goto tcp_send_noopts;

-      }

-    }

-    goto drop;

-  case LAST_ACK:

-    /* We can close this connection if the peer has acknowledged our

-       FIN. This is indicated by the UIP_ACKDATA flag. */     

-    if(uip_flags & UIP_ACKDATA) {

-      uip_connr->tcpstateflags = CLOSED;

-      uip_flags = UIP_CLOSE;

-      UIP_APPCALL();

-    }

-    break;

-    

-  case FIN_WAIT_1:

-    /* The application has closed the connection, but the remote host

-       hasn't closed its end yet. Thus we do nothing but wait for a

-       FIN from the other side. */

-    if(uip_len > 0) {

-      uip_add_rcv_nxt(uip_len);

-    }

-    if(BUF->flags & TCP_FIN) {

-      if(uip_flags & UIP_ACKDATA) {

-	uip_connr->tcpstateflags = TIME_WAIT;

-	uip_connr->timer = 0;

-	uip_connr->len = 0;

-      } else {

-	uip_connr->tcpstateflags = CLOSING;

-      }

-      uip_add_rcv_nxt(1);

-      uip_flags = UIP_CLOSE;

-      UIP_APPCALL();

-      goto tcp_send_ack;

-    } else if(uip_flags & UIP_ACKDATA) {

-      uip_connr->tcpstateflags = FIN_WAIT_2;

-      uip_connr->len = 0;

-      goto drop;

-    }

-    if(uip_len > 0) {

-      goto tcp_send_ack;

-    }

-    goto drop;

-      

-  case FIN_WAIT_2:

-    if(uip_len > 0) {

-      uip_add_rcv_nxt(uip_len);

-    }

-    if(BUF->flags & TCP_FIN) {

-      uip_connr->tcpstateflags = TIME_WAIT;

-      uip_connr->timer = 0;

-      uip_add_rcv_nxt(1);

-      uip_flags = UIP_CLOSE;

-      UIP_APPCALL();

-      goto tcp_send_ack;

-    }

-    if(uip_len > 0) {

-      goto tcp_send_ack;

-    }

-    goto drop;

-

-  case TIME_WAIT:

-    goto tcp_send_ack;

-    

-  case CLOSING:

-    if(uip_flags & UIP_ACKDATA) {

-      uip_connr->tcpstateflags = TIME_WAIT;

-      uip_connr->timer = 0;

-    }

-  }  

-  goto drop;

-  

-

-  /* We jump here when we are ready to send the packet, and just want

-     to set the appropriate TCP sequence numbers in the TCP header. */

- tcp_send_ack:

-  BUF->flags = TCP_ACK;

- tcp_send_nodata:

-  uip_len = 40;

- tcp_send_noopts:

-  BUF->tcpoffset = 5 << 4;

- tcp_send:

-  /* We're done with the input processing. We are now ready to send a

-     reply. Our job is to fill in all the fields of the TCP and IP

-     headers before calculating the checksum and finally send the

-     packet. */

-  BUF->ackno[0] = uip_connr->rcv_nxt[0];

-  BUF->ackno[1] = uip_connr->rcv_nxt[1];

-  BUF->ackno[2] = uip_connr->rcv_nxt[2];

-  BUF->ackno[3] = uip_connr->rcv_nxt[3];

-  

-  BUF->seqno[0] = uip_connr->snd_nxt[0];

-  BUF->seqno[1] = uip_connr->snd_nxt[1];

-  BUF->seqno[2] = uip_connr->snd_nxt[2];

-  BUF->seqno[3] = uip_connr->snd_nxt[3];

-

-  BUF->proto = UIP_PROTO_TCP;

-  

-  BUF->srcport  = uip_connr->lport;

-  BUF->destport = uip_connr->rport;

-

-  BUF->srcipaddr[0] = uip_hostaddr[0];

-  BUF->srcipaddr[1] = uip_hostaddr[1];

-  BUF->destipaddr[0] = uip_connr->ripaddr[0];

-  BUF->destipaddr[1] = uip_connr->ripaddr[1];

- 

-

-  if(uip_connr->tcpstateflags & UIP_STOPPED) {

-    /* If the connection has issued uip_stop(), we advertise a zero

-       window so that the remote host will stop sending data. */

-    BUF->wnd[0] = BUF->wnd[1] = 0;

-  } else {

-    BUF->wnd[0] = ((UIP_RECEIVE_WINDOW) >> 8);

-    BUF->wnd[1] = ((UIP_RECEIVE_WINDOW) & 0xff); 

-  }

-

- tcp_send_noconn:

-

-  BUF->len[0] = (uip_len >> 8);

-  BUF->len[1] = (uip_len & 0xff);

-

-  /* Calculate TCP checksum. */

-  BUF->tcpchksum = 0;

-  BUF->tcpchksum = ~(uip_tcpchksum());

-  

- ip_send_nolen:

-

-  BUF->vhl = 0x45;

-  BUF->tos = 0;

-  BUF->ipoffset[0] = BUF->ipoffset[1] = 0;

-  BUF->ttl  = UIP_TTL;

-  ++ipid;

-  BUF->ipid[0] = ipid >> 8;

-  BUF->ipid[1] = ipid & 0xff;

-  

-  /* Calculate IP checksum. */

-  BUF->ipchksum = 0;

-  BUF->ipchksum = ~(uip_ipchksum());

-

-  UIP_STAT(++uip_stat.tcp.sent);

- send:

-  UIP_STAT(++uip_stat.ip.sent);

-  /* Return and let the caller do the actual transmission. */

-  return;

- drop:

-  uip_len = 0;

-  return;

-}

-/*-----------------------------------------------------------------------------------*/

-u16_t

-htons(u16_t val)

-{

-  return HTONS(val);

-}

-/*-----------------------------------------------------------------------------------*/

-/** @} */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip.h
deleted file mode 100644
index f6367a2..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip.h
+++ /dev/null
@@ -1,1060 +0,0 @@
-/**

- * \addtogroup uip

- * @{

- */

-

-/**

- * \file

- * Header file for the uIP TCP/IP stack.

- * \author Adam Dunkels <adam@dunkels.com>

- *

- * The uIP TCP/IP stack header file contains definitions for a number

- * of C macros that are used by uIP programs as well as internal uIP

- * structures, TCP/IP header structures and function declarations.

- *

- */

-

-

-/*

- * Copyright (c) 2001-2003, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uip.h,v 1.36.2.7 2003/10/07 13:47:51 adam Exp $

- *

- */

-

-#ifndef __UIP_H__

-#define __UIP_H__

-

-#include "uipopt.h"

-

-/*-----------------------------------------------------------------------------------*/

-/* First, the functions that should be called from the

- * system. Initialization, the periodic timer and incoming packets are

- * handled by the following three functions.

- */

-

-/**

- * \defgroup uipconffunc uIP configuration functions

- * @{

- *

- * The uIP configuration functions are used for setting run-time

- * parameters in uIP such as IP addresses. 

- */

-

-/**

- * Set the IP address of this host.

- *

- * The IP address is represented as a 4-byte array where the first

- * octet of the IP address is put in the first member of the 4-byte

- * array.

- *

- * \param addr A pointer to a 4-byte representation of the IP address.

- *

- * \hideinitializer

- */

-#define uip_sethostaddr(addr) do { uip_hostaddr[0] = addr[0]; \

-                              uip_hostaddr[1] = addr[1]; } while(0)

-

-/**

- * Get the IP address of this host.

- *

- * The IP address is represented as a 4-byte array where the first

- * octet of the IP address is put in the first member of the 4-byte

- * array.

- *

- * \param addr A pointer to a 4-byte array that will be filled in with

- * the currently configured IP address.

- *

- * \hideinitializer

- */

-#define uip_gethostaddr(addr) do { addr[0] = uip_hostaddr[0]; \

-                              addr[1] = uip_hostaddr[1]; } while(0)

-

-/** @} */

-

-/**

- * \defgroup uipinit uIP initialization functions

- * @{

- *

- * The uIP initialization functions are used for booting uIP.

- */

-

-/**

- * uIP initialization function.

- *

- * This function should be called at boot up to initilize the uIP

- * TCP/IP stack.

- */

-void uip_init(void);

-

-/** @} */

-

-/**

- * \defgroup uipdevfunc uIP device driver functions

- * @{

- *

- * These functions are used by a network device driver for interacting

- * with uIP.

- */

-

-/**

- * Process an incoming packet.

- *

- * This function should be called when the device driver has received

- * a packet from the network. The packet from the device driver must

- * be present in the uip_buf buffer, and the length of the packet

- * should be placed in the uip_len variable.

- *

- * When the function returns, there may be an outbound packet placed

- * in the uip_buf packet buffer. If so, the uip_len variable is set to

- * the length of the packet. If no packet is to be sent out, the

- * uip_len variable is set to 0.

- *

- * The usual way of calling the function is presented by the source

- * code below.

- \code

-  uip_len = devicedriver_poll();

-  if(uip_len > 0) {

-    uip_input();

-    if(uip_len > 0) {

-      devicedriver_send();

-    }

-  }

- \endcode

- *

- * \note If you are writing a uIP device driver that needs ARP

- * (Address Resolution Protocol), e.g., when running uIP over

- * Ethernet, you will need to call the uIP ARP code before calling

- * this function:

- \code

-  #define BUF ((struct uip_eth_hdr *)&uip_buf[0])

-  uip_len = ethernet_devicedrver_poll();

-  if(uip_len > 0) {

-    if(BUF->type == HTONS(UIP_ETHTYPE_IP)) {

-      uip_arp_ipin();

-      uip_input();

-      if(uip_len > 0) {

-        uip_arp_out();

-	ethernet_devicedriver_send();

-      }

-    } else if(BUF->type == HTONS(UIP_ETHTYPE_ARP)) {

-      uip_arp_arpin();

-      if(uip_len > 0) {

-	ethernet_devicedriver_send();

-      }

-    }

- \endcode

- *

- * \hideinitializer

- */

-#define uip_input()        uip_process(UIP_DATA)

-

-/**

- * Periodic processing for a connection identified by its number.

- * 

- * This function does the necessary periodic processing (timers,

- * polling) for a uIP TCP conneciton, and should be called when the

- * periodic uIP timer goes off. It should be called for every

- * connection, regardless of whether they are open of closed.

- *

- * When the function returns, it may have an outbound packet waiting

- * for service in the uIP packet buffer, and if so the uip_len

- * variable is set to a value larger than zero. The device driver

- * should be called to send out the packet.

- *

- * The ususal way of calling the function is through a for() loop like

- * this:

- \code

-  for(i = 0; i < UIP_CONNS; ++i) {

-    uip_periodic(i);

-    if(uip_len > 0) {

-      devicedriver_send();

-    }

-  }

- \endcode

- *

- * \note If you are writing a uIP device driver that needs ARP

- * (Address Resolution Protocol), e.g., when running uIP over

- * Ethernet, you will need to call the uip_arp_out() function before

- * calling the device driver:

- \code

-  for(i = 0; i < UIP_CONNS; ++i) {

-    uip_periodic(i);

-    if(uip_len > 0) {

-      uip_arp_out();

-      ethernet_devicedriver_send();

-    }

-  }

- \endcode 

- *

- * \param conn The number of the connection which is to be periodically polled.

- *

- * \hideinitializer

- */

-#define uip_periodic(conn) do { uip_conn = &uip_conns[conn]; \

-                                uip_process(UIP_TIMER); } while (0)

-

-/**

- * Periodic processing for a connection identified by a pointer to its structure.

- *

- * Same as uip_periodic() but takes a pointer to the actual uip_conn

- * struct instead of an integer as its argument. This function can be

- * used to force periodic processing of a specific connection.

- *

- * \param conn A pointer to the uip_conn struct for the connection to

- * be processed.

- *

- * \hideinitializer

- */

-#define uip_periodic_conn(conn) do { uip_conn = conn; \

-                                     uip_process(UIP_TIMER); } while (0)

-

-#if UIP_UDP

-/**

- * Periodic processing for a UDP connection identified by its number.

- *

- * This function is essentially the same as uip_prerioic(), but for

- * UDP connections. It is called in a similar fashion as the

- * uip_periodic() function:

- \code

-  for(i = 0; i < UIP_UDP_CONNS; i++) {

-    uip_udp_periodic(i);

-    if(uip_len > 0) {

-      devicedriver_send();

-    }

-  }   

- \endcode

- *

- * \note As for the uip_periodic() function, special care has to be

- * taken when using uIP together with ARP and Ethernet:

- \code

-  for(i = 0; i < UIP_UDP_CONNS; i++) {

-    uip_udp_periodic(i);

-    if(uip_len > 0) {

-      uip_arp_out();

-      ethernet_devicedriver_send();

-    }

-  }   

- \endcode

- *

- * \param conn The number of the UDP connection to be processed.

- *

- * \hideinitializer

- */

-#define uip_udp_periodic(conn) do { uip_udp_conn = &uip_udp_conns[conn]; \

-                                uip_process(UIP_UDP_TIMER); } while (0)

-

-/**

- * Periodic processing for a UDP connection identified by a pointer to

- * its structure.

- *

- * Same as uip_udp_periodic() but takes a pointer to the actual

- * uip_conn struct instead of an integer as its argument. This

- * function can be used to force periodic processing of a specific

- * connection.

- *

- * \param conn A pointer to the uip_udp_conn struct for the connection

- * to be processed.

- *

- * \hideinitializer

- */

-#define uip_udp_periodic_conn(conn) do { uip_udp_conn = conn; \

-                                         uip_process(UIP_UDP_TIMER); } while (0)

-

-

-#endif /* UIP_UDP */

-

-/**

- * The uIP packet buffer.

- *

- * The uip_buf array is used to hold incoming and outgoing

- * packets. The device driver should place incoming data into this

- * buffer. When sending data, the device driver should read the link

- * level headers and the TCP/IP headers from this buffer. The size of

- * the link level headers is configured by the UIP_LLH_LEN define.

- *

- * \note The application data need not be placed in this buffer, so

- * the device driver must read it from the place pointed to by the

- * uip_appdata pointer as illustrated by the following example:

- \code

- void

- devicedriver_send(void)

- {

-    hwsend(&uip_buf[0], UIP_LLH_LEN);

-    hwsend(&uip_buf[UIP_LLH_LEN], 40);

-    hwsend(uip_appdata, uip_len - 40 - UIP_LLH_LEN);

- }

- \endcode

- */

-extern u8_t uip_buf[UIP_BUFSIZE+2] __attribute__ ((aligned (4)));

-

-/** @} */

-

-/*-----------------------------------------------------------------------------------*/

-/* Functions that are used by the uIP application program. Opening and

- * closing connections, sending and receiving data, etc. is all

- * handled by the functions below.

-*/

-/**

- * \defgroup uipappfunc uIP application functions

- * @{

- *

- * Functions used by an application running of top of uIP.

- */

-

-/**

- * Start listening to the specified port.

- *

- * \note Since this function expects the port number in network byte

- * order, a conversion using HTONS() or htons() is necessary.

- *

- \code

- uip_listen(HTONS(80)); 

- \endcode

- *

- * \param port A 16-bit port number in network byte order.

- */

-void uip_listen(u16_t port);

-

-/**

- * Stop listening to the specified port.

- *

- * \note Since this function expects the port number in network byte

- * order, a conversion using HTONS() or htons() is necessary.

- *

- \code

- uip_unlisten(HTONS(80)); 

- \endcode

- *

- * \param port A 16-bit port number in network byte order.

- */

-void uip_unlisten(u16_t port);

-

-/**

- * Connect to a remote host using TCP.

- *

- * This function is used to start a new connection to the specified

- * port on the specied host. It allocates a new connection identifier,

- * sets the connection to the SYN_SENT state and sets the

- * retransmission timer to 0. This will cause a TCP SYN segment to be

- * sent out the next time this connection is periodically processed,

- * which usually is done within 0.5 seconds after the call to

- * uip_connect().

- *

- * \note This function is avaliable only if support for active open

- * has been configured by defining UIP_ACTIVE_OPEN to 1 in uipopt.h.

- *

- * \note Since this function requires the port number to be in network

- * byte order, a convertion using HTONS() or htons() is necessary.

- *

- \code

- u16_t ipaddr[2];

-

- uip_ipaddr(ipaddr, 192,168,1,2);

- uip_connect(ipaddr, HTONS(80)); 

- \endcode

- * 

- * \param ripaddr A pointer to a 4-byte array representing the IP

- * address of the remote hot.

- *

- * \param port A 16-bit port number in network byte order.

- *

- * \return A pointer to the uIP connection identifier for the new connection,

- * or NULL if no connection could be allocated.   

- *

- */

-struct uip_conn *uip_connect(u16_t *ripaddr, u16_t port);

-

-

-

-/**

- * \internal

- *

- * Check if a connection has outstanding (i.e., unacknowledged) data.

- *

- * \param conn A pointer to the uip_conn structure for the connection.

- *

- * \hideinitializer

- */

-#define uip_outstanding(conn) ((conn)->len)

-

-/**

- * Send data on the current connection.

- *

- * This function is used to send out a single segment of TCP

- * data. Only applications that have been invoked by uIP for event

- * processing can send data. 

- *

- * The amount of data that actually is sent out after a call to this

- * funcion is determined by the maximum amount of data TCP allows. uIP

- * will automatically crop the data so that only the appropriate

- * amount of data is sent. The function uip_mss() can be used to query

- * uIP for the amount of data that actually will be sent.

- * 

- * \note This function does not guarantee that the sent data will

- * arrive at the destination. If the data is lost in the network, the

- * application will be invoked with the uip_rexmit() event being

- * set. The application will then have to resend the data using this

- * function.

- * 

- * \param data A pointer to the data which is to be sent.

- *

- * \param len The maximum amount of data bytes to be sent.

- *

- * \hideinitializer

- */

-#define uip_send(data, len) do { uip_sappdata = (data); uip_slen = (len);} while(0)   

-

-/**

- * The length of any incoming data that is currently avaliable (if avaliable)

- * in the uip_appdata buffer.

- *

- * The test function uip_data() must first be used to check if there

- * is any data available at all.

- *

- * \hideinitializer

- */

-#define uip_datalen()       uip_len

-

-/**

- * The length of any out-of-band data (urgent data) that has arrived

- * on the connection.

- *

- * \note The configuration parameter UIP_URGDATA must be set for this

- * function to be enabled.

- *

- * \hideinitializer

- */

-#define uip_urgdatalen()    uip_urglen

-

-/**

- * Close the current connection.

- *

- * This function will close the current connection in a nice way.

- *

- * \hideinitializer

- */

-#define uip_close()         (uip_flags = UIP_CLOSE)

-

-/**

- * Abort the current connection.

- *

- * This function will abort (reset) the current connection, and is

- * usually used when an error has occured that prevents using the

- * uip_close() function.

- *

- * \hideinitializer

- */

-#define uip_abort()         (uip_flags = UIP_ABORT)

-

-/**

- * Tell the sending host to stop sending data.

- *

- * This function will close our receiver's window so that we stop

- * receiving data for the current connection.

- *

- * \hideinitializer

- */

-#define uip_stop()          (uip_conn->tcpstateflags |= UIP_STOPPED)

-

-/**

- * Find out if the current connection has been previously stopped with

- * uip_stop().

- *

- * \hideinitializer

- */

-#define uip_stopped(conn)   ((conn)->tcpstateflags & UIP_STOPPED)

-

-/**

- * Restart the current connection, if is has previously been stopped

- * with uip_stop().

- *

- * This function will open the receiver's window again so that we

- * start receiving data for the current connection.

- *

- * \hideinitializer

- */

-#define uip_restart()         do { uip_flags |= UIP_NEWDATA; \

-                                   uip_conn->tcpstateflags &= ~UIP_STOPPED; \

-                              } while(0)

-

-

-/* uIP tests that can be made to determine in what state the current

-   connection is, and what the application function should do. */

-

-/**

- * Is new incoming data available?

- *

- * Will reduce to non-zero if there is new data for the application

- * present at the uip_appdata pointer. The size of the data is

- * avaliable through the uip_len variable.

- *

- * \hideinitializer

- */

-#define uip_newdata()   (uip_flags & UIP_NEWDATA)

-

-/**

- * Has previously sent data been acknowledged?

- *

- * Will reduce to non-zero if the previously sent data has been

- * acknowledged by the remote host. This means that the application

- * can send new data. 

- *

- * \hideinitializer

- */

-#define uip_acked()   (uip_flags & UIP_ACKDATA)

-

-/**

- * Has the connection just been connected?  

- *

- * Reduces to non-zero if the current connection has been connected to

- * a remote host. This will happen both if the connection has been

- * actively opened (with uip_connect()) or passively opened (with

- * uip_listen()).

- *

- * \hideinitializer

- */

-#define uip_connected() (uip_flags & UIP_CONNECTED)

-

-/**

- * Has the connection been closed by the other end?

- *

- * Is non-zero if the connection has been closed by the remote

- * host. The application may then do the necessary clean-ups.

- *

- * \hideinitializer

- */

-#define uip_closed()    (uip_flags & UIP_CLOSE)

-

-/**

- * Has the connection been aborted by the other end?

- *

- * Non-zero if the current connection has been aborted (reset) by the

- * remote host.

- *

- * \hideinitializer

- */

-#define uip_aborted()    (uip_flags & UIP_ABORT)

-

-/**

- * Has the connection timed out?

- *

- * Non-zero if the current connection has been aborted due to too many

- * retransmissions.

- *

- * \hideinitializer

- */

-#define uip_timedout()    (uip_flags & UIP_TIMEDOUT)

-

-/**

- * Do we need to retransmit previously data?

- *

- * Reduces to non-zero if the previously sent data has been lost in

- * the network, and the application should retransmit it. The

- * application should send the exact same data as it did the last

- * time, using the uip_send() function.

- *

- * \hideinitializer

- */

-#define uip_rexmit()     (uip_flags & UIP_REXMIT)

-

-/**

- * Is the connection being polled by uIP?

- *

- * Is non-zero if the reason the application is invoked is that the

- * current connection has been idle for a while and should be

- * polled.

- *

- * The polling event can be used for sending data without having to

- * wait for the remote host to send data.

- *

- * \hideinitializer

- */ 

-#define uip_poll()       (uip_flags & UIP_POLL)

-

-/**

- * Get the initial maxium segment size (MSS) of the current

- * connection.

- *

- * \hideinitializer

- */

-#define uip_initialmss()             (uip_conn->initialmss)

-

-/**

- * Get the current maxium segment size that can be sent on the current

- * connection.

- *

- * The current maxiumum segment size that can be sent on the

- * connection is computed from the receiver's window and the MSS of

- * the connection (which also is available by calling

- * uip_initialmss()).

- *

- * \hideinitializer

- */

-#define uip_mss()             (uip_conn->mss)

-

-/**

- * Set up a new UDP connection.

- *

- * \param ripaddr A pointer to a 4-byte structure representing the IP

- * address of the remote host.

- *

- * \param rport The remote port number in network byte order.

- *

- * \return The uip_udp_conn structure for the new connection or NULL

- * if no connection could be allocated.

- */

-struct uip_udp_conn *uip_udp_new(u16_t *ripaddr, u16_t rport);

-

-/**

- * Removed a UDP connection.

- *

- * \param conn A pointer to the uip_udp_conn structure for the connection.

- *

- * \hideinitializer

- */

-#define uip_udp_remove(conn) (conn)->lport = 0

-

-/**

- * Send a UDP datagram of length len on the current connection.

- *

- * This function can only be called in response to a UDP event (poll

- * or newdata). The data must be present in the uip_buf buffer, at the

- * place pointed to by the uip_appdata pointer.

- *

- * \param len The length of the data in the uip_buf buffer.

- *

- * \hideinitializer

- */

-#define uip_udp_send(len) uip_slen = (len)

-

-/** @} */

-

-/* uIP convenience and converting functions. */

-

-/**

- * \defgroup uipconvfunc uIP conversion functions

- * @{

- *

- * These functions can be used for converting between different data

- * formats used by uIP.

- */

- 

-/**

- * Pack an IP address into a 4-byte array which is used by uIP to

- * represent IP addresses.

- *

- * Example:

- \code

- u16_t ipaddr[2];

-

- uip_ipaddr(&ipaddr, 192,168,1,2); 

- \endcode

- *

- * \param addr A pointer to a 4-byte array that will be filled in with

- * the IP addres.

- * \param addr0 The first octet of the IP address.

- * \param addr1 The second octet of the IP address.

- * \param addr2 The third octet of the IP address.

- * \param addr3 The forth octet of the IP address. 

- *

- * \hideinitializer

- */

-#define uip_ipaddr(addr, addr0,addr1,addr2,addr3) do { \

-                     (addr)[0] = HTONS(((addr0) << 8) | (addr1)); \

-                     (addr)[1] = HTONS(((addr2) << 8) | (addr3)); \

-                  } while(0)

-

-/**

- * Convert 16-bit quantity from host byte order to network byte order.

- *

- * This macro is primarily used for converting constants from host

- * byte order to network byte order. For converting variables to

- * network byte order, use the htons() function instead.

- *

- * \hideinitializer

- */

-#ifndef HTONS

-#   if BYTE_ORDER == BIG_ENDIAN

-#      define HTONS(n) (n)

-#   else /* BYTE_ORDER == BIG_ENDIAN */

-#      define HTONS(n) ((((u16_t)((n) & 0xff)) << 8) | (((n) & 0xff00) >> 8))

-#   endif /* BYTE_ORDER == BIG_ENDIAN */

-#endif /* HTONS */

-

-/**

- * Convert 16-bit quantity from host byte order to network byte order.

- *

- * This function is primarily used for converting variables from host

- * byte order to network byte order. For converting constants to

- * network byte order, use the HTONS() macro instead.

- */

-#ifndef htons

-u16_t htons(u16_t val);

-#endif /* htons */

-

-/** @} */

-

-/**

- * Pointer to the application data in the packet buffer.

- *

- * This pointer points to the application data when the application is

- * called. If the application wishes to send data, the application may

- * use this space to write the data into before calling uip_send().

- */

-extern volatile u8_t *uip_appdata;

-extern volatile u8_t *uip_sappdata; 

-

-#if UIP_URGDATA > 0 

-/* u8_t *uip_urgdata:

- *

- * This pointer points to any urgent data that has been received. Only

- * present if compiled with support for urgent data (UIP_URGDATA).

- */

-extern volatile u8_t *uip_urgdata; 

-#endif /* UIP_URGDATA > 0 */

-

-

-/* u[8|16]_t uip_len:

- *

- * When the application is called, uip_len contains the length of any

- * new data that has been received from the remote host. The

- * application should set this variable to the size of any data that

- * the application wishes to send. When the network device driver

- * output function is called, uip_len should contain the length of the

- * outgoing packet.

- */

-extern volatile u16_t uip_len, uip_slen;

-

-#if UIP_URGDATA > 0 

-extern volatile u8_t uip_urglen, uip_surglen;

-#endif /* UIP_URGDATA > 0 */

-

-

-/**

- * Representation of a uIP TCP connection.

- *

- * The uip_conn structure is used for identifying a connection. All

- * but one field in the structure are to be considered read-only by an

- * application. The only exception is the appstate field whos purpose

- * is to let the application store application-specific state (e.g.,

- * file pointers) for the connection. The size of this field is

- * configured in the "uipopt.h" header file.

- */

-struct uip_conn {

-  u16_t ripaddr[2];   /**< The IP address of the remote host. */

-  

-  u16_t lport;        /**< The local TCP port, in network byte order. */

-  u16_t rport;        /**< The local remote TCP port, in network byte

-			 order. */  

-  

-  u8_t rcv_nxt[4];    /**< The sequence number that we expect to

-			 receive next. */

-  u8_t snd_nxt[4];    /**< The sequence number that was last sent by

-                         us. */

-  u16_t len;          /**< Length of the data that was previously sent. */

-  u16_t mss;          /**< Current maximum segment size for the

-			 connection. */

-  u16_t initialmss;   /**< Initial maximum segment size for the

-			 connection. */  

-  u8_t sa;            /**< Retransmission time-out calculation state

-			 variable. */

-  u8_t sv;            /**< Retransmission time-out calculation state

-			 variable. */

-  u8_t rto;           /**< Retransmission time-out. */

-  u8_t tcpstateflags; /**< TCP state and flags. */

-  u8_t timer;         /**< The retransmission timer. */

-  u8_t nrtx;          /**< The number of retransmissions for the last

-			 segment sent. */

-

-  /** The application state. */

-  u8_t appstate[UIP_APPSTATE_SIZE];  

-};

-

-

-/* Pointer to the current connection. */

-extern struct uip_conn *uip_conn;

-/* The array containing all uIP connections. */

-extern struct uip_conn uip_conns[UIP_CONNS];

-/**

- * \addtogroup uiparch

- * @{

- */

-

-/**

- * 4-byte array used for the 32-bit sequence number calculations.

- */

-extern volatile u8_t uip_acc32[4];

-

-/** @} */

-

-

-#if UIP_UDP

-/**

- * Representation of a uIP UDP connection.

- */

-struct uip_udp_conn {

-  u16_t ripaddr[2];   /**< The IP address of the remote peer. */

-  u16_t lport;        /**< The local port number in network byte order. */

-  u16_t rport;        /**< The remote port number in network byte order. */

-};

-

-extern struct uip_udp_conn *uip_udp_conn;

-extern struct uip_udp_conn uip_udp_conns[UIP_UDP_CONNS];

-#endif /* UIP_UDP */

-

-/**

- * The structure holding the TCP/IP statistics that are gathered if

- * UIP_STATISTICS is set to 1.

- *

- */

-struct uip_stats {

-  struct {

-    uip_stats_t drop;     /**< Number of dropped packets at the IP

-			     layer. */

-    uip_stats_t recv;     /**< Number of received packets at the IP

-			     layer. */

-    uip_stats_t sent;     /**< Number of sent packets at the IP

-			     layer. */

-    uip_stats_t vhlerr;   /**< Number of packets dropped due to wrong

-			     IP version or header length. */

-    uip_stats_t hblenerr; /**< Number of packets dropped due to wrong

-			     IP length, high byte. */

-    uip_stats_t lblenerr; /**< Number of packets dropped due to wrong

-			     IP length, low byte. */

-    uip_stats_t fragerr;  /**< Number of packets dropped since they

-			     were IP fragments. */

-    uip_stats_t chkerr;   /**< Number of packets dropped due to IP

-			     checksum errors. */

-    uip_stats_t protoerr; /**< Number of packets dropped since they

-			     were neither ICMP, UDP nor TCP. */

-  } ip;                   /**< IP statistics. */

-  struct {

-    uip_stats_t drop;     /**< Number of dropped ICMP packets. */

-    uip_stats_t recv;     /**< Number of received ICMP packets. */

-    uip_stats_t sent;     /**< Number of sent ICMP packets. */

-    uip_stats_t typeerr;  /**< Number of ICMP packets with a wrong

-			     type. */

-  } icmp;                 /**< ICMP statistics. */

-  struct {

-    uip_stats_t drop;     /**< Number of dropped TCP segments. */

-    uip_stats_t recv;     /**< Number of recived TCP segments. */

-    uip_stats_t sent;     /**< Number of sent TCP segments. */

-    uip_stats_t chkerr;   /**< Number of TCP segments with a bad

-			     checksum. */

-    uip_stats_t ackerr;   /**< Number of TCP segments with a bad ACK

-			     number. */

-    uip_stats_t rst;      /**< Number of recevied TCP RST (reset) segments. */

-    uip_stats_t rexmit;   /**< Number of retransmitted TCP segments. */

-    uip_stats_t syndrop;  /**< Number of dropped SYNs due to too few

-			     connections was avaliable. */

-    uip_stats_t synrst;   /**< Number of SYNs for closed ports,

-			     triggering a RST. */

-  } tcp;                  /**< TCP statistics. */

-};

-

-/**

- * The uIP TCP/IP statistics.

- *

- * This is the variable in which the uIP TCP/IP statistics are gathered.

- */

-extern struct uip_stats uip_stat;

-

-

-/*-----------------------------------------------------------------------------------*/

-/* All the stuff below this point is internal to uIP and should not be

- * used directly by an application or by a device driver.

- */

-/*-----------------------------------------------------------------------------------*/

-/* u8_t uip_flags:

- *

- * When the application is called, uip_flags will contain the flags

- * that are defined in this file. Please read below for more

- * infomation.

- */

-extern volatile u8_t uip_flags;

-

-/* The following flags may be set in the global variable uip_flags

-   before calling the application callback. The UIP_ACKDATA and

-   UIP_NEWDATA flags may both be set at the same time, whereas the

-   others are mutualy exclusive. Note that these flags should *NOT* be

-   accessed directly, but through the uIP functions/macros. */

-

-#define UIP_ACKDATA   1     /* Signifies that the outstanding data was

-			       acked and the application should send

-			       out new data instead of retransmitting

-			       the last data. */

-#define UIP_NEWDATA   2     /* Flags the fact that the peer has sent

-			       us new data. */

-#define UIP_REXMIT    4     /* Tells the application to retransmit the

-			       data that was last sent. */

-#define UIP_POLL      8     /* Used for polling the application, to

-			       check if the application has data that

-			       it wants to send. */

-#define UIP_CLOSE     16    /* The remote host has closed the

-			       connection, thus the connection has

-			       gone away. Or the application signals

-			       that it wants to close the

-			       connection. */

-#define UIP_ABORT     32    /* The remote host has aborted the

-			       connection, thus the connection has

-			       gone away. Or the application signals

-			       that it wants to abort the

-			       connection. */

-#define UIP_CONNECTED 64    /* We have got a connection from a remote

-                               host and have set up a new connection

-                               for it, or an active connection has

-                               been successfully established. */

-

-#define UIP_TIMEDOUT  128   /* The connection has been aborted due to

-			       too many retransmissions. */

-

-

-/* uip_process(flag):

- *

- * The actual uIP function which does all the work.

- */

-void uip_process(u8_t flag);

-

-/* The following flags are passed as an argument to the uip_process()

-   function. They are used to distinguish between the two cases where

-   uip_process() is called. It can be called either because we have

-   incoming data that should be processed, or because the periodic

-   timer has fired. */

-

-#define UIP_DATA    1     /* Tells uIP that there is incoming data in

-                             the uip_buf buffer. The length of the

-                             data is stored in the global variable

-                             uip_len. */

-#define UIP_TIMER   2     /* Tells uIP that the periodic timer has

-                             fired. */

-#if UIP_UDP

-#define UIP_UDP_TIMER 3

-#endif /* UIP_UDP */

-

-/* The TCP states used in the uip_conn->tcpstateflags. */

-#define CLOSED      0

-#define SYN_RCVD    1

-#define SYN_SENT    2

-#define ESTABLISHED 3

-#define FIN_WAIT_1  4

-#define FIN_WAIT_2  5

-#define CLOSING     6

-#define TIME_WAIT   7

-#define LAST_ACK    8

-#define TS_MASK     15

-  

-#define UIP_STOPPED      16

-

-#define UIP_TCPIP_HLEN 40

-

-/* The TCP and IP headers. */

-typedef struct {

-  /* IP header. */

-  u8_t vhl,

-    tos,          

-    len[2],       

-    ipid[2],        

-    ipoffset[2],  

-    ttl,          

-    proto;     

-  u16_t ipchksum;

-  u16_t srcipaddr[2], 

-    destipaddr[2];

-  

-  /* TCP header. */

-  u16_t srcport,

-    destport;

-  u8_t seqno[4],  

-    ackno[4],

-    tcpoffset,

-    flags,

-    wnd[2];     

-  u16_t tcpchksum;

-  u8_t urgp[2];

-  u8_t optdata[4];

-} uip_tcpip_hdr;

-

-/* The ICMP and IP headers. */

-typedef struct {

-  /* IP header. */

-  u8_t vhl,

-    tos,          

-    len[2],       

-    ipid[2],        

-    ipoffset[2],  

-    ttl,          

-    proto;     

-  u16_t ipchksum;

-  u16_t srcipaddr[2], 

-    destipaddr[2];

-  /* ICMP (echo) header. */

-  u8_t type, icode;

-  u16_t icmpchksum;

-  u16_t id, seqno;  

-} uip_icmpip_hdr;

-

-

-/* The UDP and IP headers. */

-typedef struct {

-  /* IP header. */

-  u8_t vhl,

-    tos,          

-    len[2],       

-    ipid[2],        

-    ipoffset[2],  

-    ttl,          

-    proto;     

-  u16_t ipchksum;

-  u16_t srcipaddr[2], 

-    destipaddr[2];

-  

-  /* UDP header. */

-  u16_t srcport,

-    destport;

-  u16_t udplen;

-  u16_t udpchksum;

-} uip_udpip_hdr;

-

-#define UIP_PROTO_ICMP  1

-#define UIP_PROTO_TCP   6

-#define UIP_PROTO_UDP   17

-

-#if UIP_FIXEDADDR

-extern const u16_t uip_hostaddr[2];

-#else /* UIP_FIXEDADDR */

-extern u16_t uip_hostaddr[2];

-#endif /* UIP_FIXEDADDR */

-

-#endif /* __UIP_H__ */

-

-

-/** @} */

-

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.c
deleted file mode 100644
index 4cd08c3..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uip_arch.c,v 1.2.2.1 2003/10/04 22:54:17 adam Exp $

- *

- */

-

-

-#include "uip.h"

-#include "uip_arch.h"

-#include <__cross_studio_io.h>

-

-#define BUF ((uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN])

-#define IP_PROTO_TCP    6

-

-/*-----------------------------------------------------------------------------------*/

-void

-uip_add32(u8_t *op32, u16_t op16)

-{

-  

-  uip_acc32[3] = op32[3] + (op16 & 0xff);

-  uip_acc32[2] = op32[2] + (op16 >> 8);

-  uip_acc32[1] = op32[1];

-  uip_acc32[0] = op32[0];

-  

-  if(uip_acc32[2] < (op16 >> 8)) {

-    ++uip_acc32[1];    

-    if(uip_acc32[1] == 0) {

-      ++uip_acc32[0];

-    }

-  }

-  

-  

-  if(uip_acc32[3] < (op16 & 0xff)) {

-    ++uip_acc32[2];  

-    if(uip_acc32[2] == 0) {

-      ++uip_acc32[1];    

-      if(uip_acc32[1] == 0) {

-	++uip_acc32[0];

-      }

-    }

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-u16_t

-uip_chksum(u16_t *sdata, u16_t len)

-{

-  u16_t acc;

-  

-  for (acc = 0; len > 1; len -= 2) {

-    u16_t u = ((unsigned char *)sdata)[0] + (((unsigned char *)sdata)[1] << 8);

-    if ((acc += u) < u) {

-      /* Overflow, so we add the carry to acc (i.e., increase by

-         one). */

-      ++acc;

-    }

-    ++sdata;

-  }

-

-  /* add up any odd byte */

-  if(len == 1) {

-    acc += htons(((u16_t)(*(u8_t *)sdata)) << 8);

-    if(acc < htons(((u16_t)(*(u8_t *)sdata)) << 8)) {

-      ++acc;

-    }

-  }

-

-  return acc;

-}

-/*-----------------------------------------------------------------------------------*/

-u16_t

-uip_ipchksum(void)

-{

-  return uip_chksum((u16_t *)&uip_buf[UIP_LLH_LEN], 20);

-}

-/*-----------------------------------------------------------------------------------*/

-u16_t

-uip_tcpchksum(void)

-{

-  u16_t hsum, sum;

-

-  

-  /* Compute the checksum of the TCP header. */

-  hsum = uip_chksum((u16_t *)&uip_buf[20 + UIP_LLH_LEN], 20);

-

-  /* Compute the checksum of the data in the TCP packet and add it to

-     the TCP header checksum. */

-  sum = uip_chksum((u16_t *)uip_appdata,

-		   (u16_t)(((((u16_t)(BUF->len[0]) << 8) + BUF->len[1]) - 40)));

-

-  if((sum += hsum) < hsum) {

-    ++sum;

-  }

-  

-  if((sum += BUF->srcipaddr[0]) < BUF->srcipaddr[0]) {

-    ++sum;

-  }

-  if((sum += BUF->srcipaddr[1]) < BUF->srcipaddr[1]) {

-    ++sum;

-  }

-  if((sum += BUF->destipaddr[0]) < BUF->destipaddr[0]) {

-    ++sum;

-  }

-  if((sum += BUF->destipaddr[1]) < BUF->destipaddr[1]) {

-    ++sum;

-  }

-  if((sum += (u16_t)htons((u16_t)IP_PROTO_TCP)) < (u16_t)htons((u16_t)IP_PROTO_TCP)) {

-    ++sum;

-  }

-

-  hsum = (u16_t)htons((((u16_t)(BUF->len[0]) << 8) + BUF->len[1]) - 20);

-  

-  if((sum += hsum) < hsum) {

-    ++sum;

-  }

-

-  return sum;

-}

-/*-----------------------------------------------------------------------------------*/

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.h
deleted file mode 100644
index b2d133f..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arch.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/**

- * \defgroup uiparch Architecture specific uIP functions

- * @{

- *

- * The functions in the architecture specific module implement the IP

- * check sum and 32-bit additions.

- *

- * The IP checksum calculation is the most computationally expensive

- * operation in the TCP/IP stack and it therefore pays off to

- * implement this in efficient assembler. The purpose of the uip-arch

- * module is to let the checksum functions to be implemented in

- * architecture specific assembler.

- *

- */

-

-/**

- * \file

- * Declarations of architecture specific functions.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-

-/*

- * Copyright (c) 2001, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uip_arch.h,v 1.1.2.2 2003/10/06 15:10:22 adam Exp $

- *

- */

-

-#ifndef __UIP_ARCH_H__

-#define __UIP_ARCH_H__

-

-#include "uip.h"

-

-/**

- * Carry out a 32-bit addition.

- *

- * Because not all architectures for which uIP is intended has native

- * 32-bit arithmetic, uIP uses an external C function for doing the

- * required 32-bit additions in the TCP protocol processing. This

- * function should add the two arguments and place the result in the

- * global variable uip_acc32.

- *

- * \note The 32-bit integer pointed to by the op32 parameter and the

- * result in the uip_acc32 variable are in network byte order (big

- * endian).

- *

- * \param op32 A pointer to a 4-byte array representing a 32-bit

- * integer in network byte order (big endian).

- *

- * \param op16 A 16-bit integer in host byte order.

- */

-void uip_add32(u8_t *op32, u16_t op16);

-

-/**

- * Calculate the Internet checksum over a buffer.

- *

- * The Internet checksum is the one's complement of the one's

- * complement sum of all 16-bit words in the buffer.

- *

- * See RFC1071.

- *

- * \note This function is not called in the current version of uIP,

- * but future versions might make use of it.

- *

- * \param buf A pointer to the buffer over which the checksum is to be

- * computed.

- *

- * \param len The length of the buffer over which the checksum is to

- * be computed.

- *

- * \return The Internet checksum of the buffer.

- */

-u16_t uip_chksum(u16_t *buf, u16_t len);

-

-/**

- * Calculate the IP header checksum of the packet header in uip_buf.

- *

- * The IP header checksum is the Internet checksum of the 20 bytes of

- * the IP header.

- *

- * \return The IP header checksum of the IP header in the uip_buf

- * buffer.

- */

-u16_t uip_ipchksum(void);

-

-/**

- * Calculate the TCP checksum of the packet in uip_buf and uip_appdata.

- *

- * The TCP checksum is the Internet checksum of data contents of the

- * TCP segment, and a pseudo-header as defined in RFC793.

- *

- * \note The uip_appdata pointer that points to the packet data may

- * point anywhere in memory, so it is not possible to simply calculate

- * the Internet checksum of the contents of the uip_buf buffer.

- *

- * \return The TCP checksum of the TCP segment in uip_buf and pointed

- * to by uip_appdata.

- */

-u16_t uip_tcpchksum(void);

-

-/** @} */

-

-#endif /* __UIP_ARCH_H__ */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.c b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.c
deleted file mode 100644
index f2804df..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.c
+++ /dev/null
@@ -1,427 +0,0 @@
-/**

- * \addtogroup uip

- * @{

- */

-

-/**

- * \defgroup uiparp uIP Address Resolution Protocol

- * @{

- * 

- * The Address Resolution Protocol ARP is used for mapping between IP

- * addresses and link level addresses such as the Ethernet MAC

- * addresses. ARP uses broadcast queries to ask for the link level

- * address of a known IP address and the host which is configured with

- * the IP address for which the query was meant, will respond with its

- * link level address.

- *

- * \note This ARP implementation only supports Ethernet.

- */

- 

-/**

- * \file

- * Implementation of the ARP Address Resolution Protocol.

- * \author Adam Dunkels <adam@dunkels.com>

- *

- */

-

-/*

- * Copyright (c) 2001-2003, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uip_arp.c,v 1.7.2.3 2003/10/06 22:42:30 adam Exp $

- *

- */

-

-

-#include "uip_arp.h"

-

-#include <string.h>

-

-struct arp_hdr {

-  struct uip_eth_hdr ethhdr;

-  u16_t hwtype;

-  u16_t protocol;

-  u8_t hwlen;

-  u8_t protolen;

-  u16_t opcode;

-  struct uip_eth_addr shwaddr;

-  u16_t sipaddr[2];

-  struct uip_eth_addr dhwaddr;

-  u16_t dipaddr[2]; 

-};

-

-struct ethip_hdr {

-  struct uip_eth_hdr ethhdr;

-  /* IP header. */

-  u8_t vhl,

-    tos,          

-    len[2],       

-    ipid[2],        

-    ipoffset[2],  

-    ttl,          

-    proto;     

-  u16_t ipchksum;

-  u16_t srcipaddr[2], 

-    destipaddr[2];

-};

-

-#define ARP_REQUEST 1

-#define ARP_REPLY   2

-

-#define ARP_HWTYPE_ETH 1

-

-struct arp_entry {

-  u16_t ipaddr[2];

-  struct uip_eth_addr ethaddr;

-  u8_t time;

-};

-

-struct uip_eth_addr uip_ethaddr = {{UIP_ETHADDR0,

-				    UIP_ETHADDR1,

-				    UIP_ETHADDR2,

-				    UIP_ETHADDR3,

-				    UIP_ETHADDR4,

-				    UIP_ETHADDR5}};

-

-static struct arp_entry arp_table[UIP_ARPTAB_SIZE];

-static u16_t ipaddr[2];

-static u8_t i, c;

-

-static u8_t arptime;

-static u8_t tmpage;

-

-#define BUF   ((struct arp_hdr *)&uip_buf[0])

-#define IPBUF ((struct ethip_hdr *)&uip_buf[0])

-/*-----------------------------------------------------------------------------------*/

-/**

- * Initialize the ARP module.

- *

- */

-/*-----------------------------------------------------------------------------------*/

-void

-uip_arp_init(void)

-{

-  for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {

-    memset(arp_table[i].ipaddr, 0, 4);

-  }

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Periodic ARP processing function.

- *

- * This function performs periodic timer processing in the ARP module

- * and should be called at regular intervals. The recommended interval

- * is 10 seconds between the calls.

- *

- */

-/*-----------------------------------------------------------------------------------*/

-void

-uip_arp_timer(void)

-{

-  struct arp_entry *tabptr;

-  

-  ++arptime;

-  for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {

-    tabptr = &arp_table[i];

-    if((tabptr->ipaddr[0] | tabptr->ipaddr[1]) != 0 &&

-       arptime - tabptr->time >= UIP_ARP_MAXAGE) {

-      memset(tabptr->ipaddr, 0, 4);

-    }

-  }

-

-}

-/*-----------------------------------------------------------------------------------*/

-static void

-uip_arp_update(u16_t *ipaddr, struct uip_eth_addr *ethaddr)

-{

-  register struct arp_entry *tabptr;

-  /* Walk through the ARP mapping table and try to find an entry to

-     update. If none is found, the IP -> MAC address mapping is

-     inserted in the ARP table. */

-  for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {

-

-    tabptr = &arp_table[i];

-    /* Only check those entries that are actually in use. */

-    if(tabptr->ipaddr[0] != 0 &&

-       tabptr->ipaddr[1] != 0) {

-

-      /* Check if the source IP address of the incoming packet matches

-         the IP address in this ARP table entry. */

-      if(ipaddr[0] == tabptr->ipaddr[0] &&

-	 ipaddr[1] == tabptr->ipaddr[1]) {

-	 

-	/* An old entry found, update this and return. */

-	memcpy(tabptr->ethaddr.addr, ethaddr->addr, 6);

-	tabptr->time = arptime;

-

-	return;

-      }

-    }

-  }

-

-  /* If we get here, no existing ARP table entry was found, so we

-     create one. */

-

-  /* First, we try to find an unused entry in the ARP table. */

-  for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {

-    tabptr = &arp_table[i];

-    if(tabptr->ipaddr[0] == 0 &&

-       tabptr->ipaddr[1] == 0) {

-      break;

-    }

-  }

-

-  /* If no unused entry is found, we try to find the oldest entry and

-     throw it away. */

-  if(i == UIP_ARPTAB_SIZE) {

-    tmpage = 0;

-    c = 0;

-    for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {

-      tabptr = &arp_table[i];

-      if(arptime - tabptr->time > tmpage) {

-	tmpage = arptime - tabptr->time;

-	c = i;

-      }

-    }

-    i = c;

-  }

-

-  /* Now, i is the ARP table entry which we will fill with the new

-     information. */

-  memcpy(tabptr->ipaddr, ipaddr, 4);

-  memcpy(tabptr->ethaddr.addr, ethaddr->addr, 6);

-  tabptr->time = arptime;

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * ARP processing for incoming IP packets

- *

- * This function should be called by the device driver when an IP

- * packet has been received. The function will check if the address is

- * in the ARP cache, and if so the ARP cache entry will be

- * refreshed. If no ARP cache entry was found, a new one is created.

- *

- * This function expects an IP packet with a prepended Ethernet header

- * in the uip_buf[] buffer, and the length of the packet in the global

- * variable uip_len.

- */

-/*-----------------------------------------------------------------------------------*/

-void

-uip_arp_ipin(void)

-{

-  uip_len -= sizeof(struct uip_eth_hdr);

-	

-  /* Only insert/update an entry if the source IP address of the

-     incoming IP packet comes from a host on the local network. */

-  if((IPBUF->srcipaddr[0] & uip_arp_netmask[0]) !=

-     (uip_hostaddr[0] & uip_arp_netmask[0])) {

-    return;

-  }

-  if((IPBUF->srcipaddr[1] & uip_arp_netmask[1]) !=

-     (uip_hostaddr[1] & uip_arp_netmask[1])) {

-    return;

-  }

-  uip_arp_update(IPBUF->srcipaddr, &(IPBUF->ethhdr.src));

-  

-  return;

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * ARP processing for incoming ARP packets.

- *

- * This function should be called by the device driver when an ARP

- * packet has been received. The function will act differently

- * depending on the ARP packet type: if it is a reply for a request

- * that we previously sent out, the ARP cache will be filled in with

- * the values from the ARP reply. If the incoming ARP packet is an ARP

- * request for our IP address, an ARP reply packet is created and put

- * into the uip_buf[] buffer.

- *

- * When the function returns, the value of the global variable uip_len

- * indicates whether the device driver should send out a packet or

- * not. If uip_len is zero, no packet should be sent. If uip_len is

- * non-zero, it contains the length of the outbound packet that is

- * present in the uip_buf[] buffer.

- *

- * This function expects an ARP packet with a prepended Ethernet

- * header in the uip_buf[] buffer, and the length of the packet in the

- * global variable uip_len.

- */

-/*-----------------------------------------------------------------------------------*/

-typedef struct arp_hdr aht;

-

-void

-uip_arp_arpin(void)

-{

-  int ul;

-

-  if(uip_len < sizeof(struct arp_hdr)) {

-    uip_len = 0;

-    return;

-  }

-

-  uip_len = 0;

-  

-  switch(BUF->opcode) {

-  case HTONS(ARP_REQUEST):

-    /* ARP request. If it asked for our address, we send out a

-       reply. */

-    if(BUF->dipaddr[0] == uip_hostaddr[0] &&

-       BUF->dipaddr[1] == uip_hostaddr[1]) {

-      /* The reply opcode is 2. */

-      BUF->opcode = HTONS(2);

-

-      memcpy(BUF->dhwaddr.addr, BUF->shwaddr.addr, 6);

-      memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);

-      memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);

-      memcpy(BUF->ethhdr.dest.addr, BUF->dhwaddr.addr, 6);

-      

-      BUF->dipaddr[0] = BUF->sipaddr[0];

-      BUF->dipaddr[1] = BUF->sipaddr[1];

-      BUF->sipaddr[0] = uip_hostaddr[0];

-      BUF->sipaddr[1] = uip_hostaddr[1];

-

-      ul = BUF->hwlen;

-      BUF->ethhdr.type = HTONS(UIP_ETHTYPE_ARP);      

-      uip_len = sizeof(struct arp_hdr);

-    }      

-    break;

-  case HTONS(ARP_REPLY):

-    /* ARP reply. We insert or update the ARP table if it was meant

-       for us. */

-    if(BUF->dipaddr[0] == uip_hostaddr[0] &&

-       BUF->dipaddr[1] == uip_hostaddr[1]) {

-

-      uip_arp_update(BUF->sipaddr, &BUF->shwaddr);

-    }

-    break;

-  }

-

-  return;

-}

-/*-----------------------------------------------------------------------------------*/

-/**

- * Prepend Ethernet header to an outbound IP packet and see if we need

- * to send out an ARP request.

- *

- * This function should be called before sending out an IP packet. The

- * function checks the destination IP address of the IP packet to see

- * what Ethernet MAC address that should be used as a destination MAC

- * address on the Ethernet.

- *

- * If the destination IP address is in the local network (determined

- * by logical ANDing of netmask and our IP address), the function

- * checks the ARP cache to see if an entry for the destination IP

- * address is found. If so, an Ethernet header is prepended and the

- * function returns. If no ARP cache entry is found for the

- * destination IP address, the packet in the uip_buf[] is replaced by

- * an ARP request packet for the IP address. The IP packet is dropped

- * and it is assumed that they higher level protocols (e.g., TCP)

- * eventually will retransmit the dropped packet.

- *

- * If the destination IP address is not on the local network, the IP

- * address of the default router is used instead.

- *

- * When the function returns, a packet is present in the uip_buf[]

- * buffer, and the length of the packet is in the global variable

- * uip_len.

- */

-/*-----------------------------------------------------------------------------------*/

-void

-uip_arp_out(void)

-{

-  struct arp_entry *tabptr;

-  /* Find the destination IP address in the ARP table and construct

-     the Ethernet header. If the destination IP addres isn't on the

-     local network, we use the default router's IP address instead.

-

-     If not ARP table entry is found, we overwrite the original IP

-     packet with an ARP request for the IP address. */

-

-  /* Check if the destination address is on the local network. */

-  if((IPBUF->destipaddr[0] & uip_arp_netmask[0]) !=

-     (uip_hostaddr[0] & uip_arp_netmask[0]) ||

-     (IPBUF->destipaddr[1] & uip_arp_netmask[1]) !=

-     (uip_hostaddr[1] & uip_arp_netmask[1])) {

-    /* Destination address was not on the local network, so we need to

-       use the default router's IP address instead of the destination

-       address when determining the MAC address. */

-    ipaddr[0] = uip_arp_draddr[0];

-    ipaddr[1] = uip_arp_draddr[1];

-  } else {

-    /* Else, we use the destination IP address. */

-    ipaddr[0] = IPBUF->destipaddr[0];

-    ipaddr[1] = IPBUF->destipaddr[1];

-  }

-      

-  for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {

-    tabptr = &arp_table[i];

-    if(ipaddr[0] == tabptr->ipaddr[0] &&

-       ipaddr[1] == tabptr->ipaddr[1])

-      break;

-  }

-

-  if(i == UIP_ARPTAB_SIZE) {

-    /* The destination address was not in our ARP table, so we

-       overwrite the IP packet with an ARP request. */

-

-    memset(BUF->ethhdr.dest.addr, 0xff, 6);

-    memset(BUF->dhwaddr.addr, 0x00, 6);

-    memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);

-    memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);

-    

-    BUF->dipaddr[0] = ipaddr[0];

-    BUF->dipaddr[1] = ipaddr[1];

-    BUF->sipaddr[0] = uip_hostaddr[0];

-    BUF->sipaddr[1] = uip_hostaddr[1];

-    BUF->opcode = HTONS(ARP_REQUEST); /* ARP request. */

-    BUF->hwtype = HTONS(ARP_HWTYPE_ETH);

-    BUF->protocol = HTONS(UIP_ETHTYPE_IP);

-    BUF->hwlen = 6;

-    BUF->protolen = 4;

-    BUF->ethhdr.type = HTONS(UIP_ETHTYPE_ARP);

-

-    uip_appdata = &uip_buf[40 + UIP_LLH_LEN];

-    

-    uip_len = sizeof(struct arp_hdr);

-    return;

-  }

-

-  /* Build an ethernet header. */

-  memcpy(IPBUF->ethhdr.dest.addr, tabptr->ethaddr.addr, 6);

-  memcpy(IPBUF->ethhdr.src.addr, uip_ethaddr.addr, 6);

-  

-  IPBUF->ethhdr.type = HTONS(UIP_ETHTYPE_IP);

-

-  uip_len += sizeof(struct uip_eth_hdr);

-}

-/*-----------------------------------------------------------------------------------*/

-

-/** @} */

-/** @} */

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.h
deleted file mode 100644
index bf90498..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uip_arp.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/**

- * \addtogroup uip

- * @{

- */

-

-/**

- * \addtogroup uiparp 

- * @{

- */

- 

-/**

- * \file

- * Macros and definitions for the ARP module.

- * \author Adam Dunkels <adam@dunkels.com>

- */

-  

-

-/*

- * Copyright (c) 2001-2003, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uip_arp.h,v 1.3.2.2 2003/10/06 15:10:22 adam Exp $

- *

- */

-

-#ifndef __UIP_ARP_H__

-#define __UIP_ARP_H__

-

-#include "uip.h"

-

-

-/**

- * Representation of a 48-bit Ethernet address.

- */

-struct uip_eth_addr {

-  u8_t addr[6];

-} __attribute__ ((packed, aligned (1)));

-

-extern struct uip_eth_addr uip_ethaddr;

-

-/**

- * The Ethernet header. 

- */

-struct uip_eth_hdr {

-  struct uip_eth_addr dest;

-  struct uip_eth_addr src;

-  u16_t type;

-} __attribute__ ((packed));

-

-#define UIP_ETHTYPE_ARP 0x0806

-#define UIP_ETHTYPE_IP  0x0800

-#define UIP_ETHTYPE_IP6 0x86dd 

-

-

-/* The uip_arp_init() function must be called before any of the other

-   ARP functions. */

-void uip_arp_init(void);

-

-/* The uip_arp_ipin() function should be called whenever an IP packet

-   arrives from the Ethernet. This function refreshes the ARP table or

-   inserts a new mapping if none exists. The function assumes that an

-   IP packet with an Ethernet header is present in the uip_buf buffer

-   and that the length of the packet is in the uip_len variable. */

-void uip_arp_ipin(void);

-

-/* The uip_arp_arpin() should be called when an ARP packet is received

-   by the Ethernet driver. This function also assumes that the

-   Ethernet frame is present in the uip_buf buffer. When the

-   uip_arp_arpin() function returns, the contents of the uip_buf

-   buffer should be sent out on the Ethernet if the uip_len variable

-   is > 0. */

-void uip_arp_arpin(void);

-

-/* The uip_arp_out() function should be called when an IP packet

-   should be sent out on the Ethernet. This function creates an

-   Ethernet header before the IP header in the uip_buf buffer. The

-   Ethernet header will have the correct Ethernet MAC destination

-   address filled in if an ARP table entry for the destination IP

-   address (or the IP address of the default router) is present. If no

-   such table entry is found, the IP packet is overwritten with an ARP

-   request and we rely on TCP to retransmit the packet that was

-   overwritten. In any case, the uip_len variable holds the length of

-   the Ethernet frame that should be transmitted. */

-void uip_arp_out(void);

-

-/* The uip_arp_timer() function should be called every ten seconds. It

-   is responsible for flushing old entries in the ARP table. */

-void uip_arp_timer(void);

-

-/** @} */

-

-/**

- * \addtogroup uipconffunc

- * @{

- */

-

-/**

- * Set the default router's IP address.

- *

- * \param addr A pointer to a 4-byte array containing the IP address

- * of the default router.

- *

- * \hideinitializer

- */

-#define uip_setdraddr(addr) do { uip_arp_draddr[0] = addr[0]; \

-                                 uip_arp_draddr[1] = addr[1]; } while(0)

-

-/**

- * Set the netmask.

- *

- * \param addr A pointer to a 4-byte array containing the IP address

- * of the netmask.

- *

- * \hideinitializer

- */

-#define uip_setnetmask(addr) do { uip_arp_netmask[0] = addr[0]; \

-                                  uip_arp_netmask[1] = addr[1]; } while(0)

-

-

-/**

- * Get the default router's IP address.

- *

- * \param addr A pointer to a 4-byte array that will be filled in with

- * the IP address of the default router.

- *

- * \hideinitializer

- */

-#define uip_getdraddr(addr) do { addr[0] = uip_arp_draddr[0]; \

-                                 addr[1] = uip_arp_draddr[1]; } while(0)

-

-/**

- * Get the netmask.

- *

- * \param addr A pointer to a 4-byte array that will be filled in with

- * the value of the netmask.

- *

- * \hideinitializer

- */

-#define uip_getnetmask(addr) do { addr[0] = uip_arp_netmask[0]; \

-                                  addr[1] = uip_arp_netmask[1]; } while(0)

-

-

-/**

- * Specifiy the Ethernet MAC address.

- *

- * The ARP code needs to know the MAC address of the Ethernet card in

- * order to be able to respond to ARP queries and to generate working

- * Ethernet headers.

- *

- * \note This macro only specifies the Ethernet MAC address to the ARP

- * code. It cannot be used to change the MAC address of the Ethernet

- * card.

- *

- * \param eaddr A pointer to a struct uip_eth_addr containing the

- * Ethernet MAC address of the Ethernet card.

- *

- * \hideinitializer

- */

-#define uip_setethaddr(eaddr) do {uip_ethaddr.addr[0] = eaddr.addr[0]; \

-                              uip_ethaddr.addr[1] = eaddr.addr[1];\

-                              uip_ethaddr.addr[2] = eaddr.addr[2];\

-                              uip_ethaddr.addr[3] = eaddr.addr[3];\

-                              uip_ethaddr.addr[4] = eaddr.addr[4];\

-                              uip_ethaddr.addr[5] = eaddr.addr[5];} while(0)

-

-/** @} */

-

-/**

- * \internal Internal variables that are set using the macros

- * uip_setdraddr and uip_setnetmask.

- */

-extern u16_t uip_arp_draddr[2], uip_arp_netmask[2];

-#endif /* __UIP_ARP_H__ */

-

-

diff --git a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uipopt.h b/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uipopt.h
deleted file mode 100644
index 9d274d5..0000000
--- a/FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uipopt.h
+++ /dev/null
@@ -1,602 +0,0 @@
-/**

- * \defgroup uipopt Configuration options for uIP

- * @{

- *

- * uIP is configured using the per-project configuration file

- * "uipopt.h". This file contains all compile-time options for uIP and

- * should be tweaked to match each specific project. The uIP

- * distribution contains a documented example "uipopt.h" that can be

- * copied and modified for each project.

- */

-

-/**

- * \file

- * Configuration options for uIP.

- * \author Adam Dunkels <adam@dunkels.com>

- *

- * This file is used for tweaking various configuration options for

- * uIP. You should make a copy of this file into one of your project's

- * directories instead of editing this example "uipopt.h" file that

- * comes with the uIP distribution.

- */

-

-/*

- * Copyright (c) 2001-2003, Adam Dunkels.

- * All rights reserved. 

- *

- * Redistribution and use in source and binary forms, with or without 

- * modification, are permitted provided that the following conditions 

- * are met: 

- * 1. Redistributions of source code must retain the above copyright 

- *    notice, this list of conditions and the following disclaimer. 

- * 2. Redistributions in binary form must reproduce the above copyright 

- *    notice, this list of conditions and the following disclaimer in the 

- *    documentation and/or other materials provided with the distribution. 

- * 3. The name of the author may not be used to endorse or promote

- *    products derived from this software without specific prior

- *    written permission.  

- *

- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS

- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY

- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE

- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

- *

- * This file is part of the uIP TCP/IP stack.

- *

- * $Id: uipopt.h,v 1.16.2.5 2003/10/07 13:22:51 adam Exp $

- *

- */

-

-#ifndef __UIPOPT_H__

-#define __UIPOPT_H__

-

-/*------------------------------------------------------------------------------*/

-/**

- * \defgroup uipopttypedef uIP type definitions

- * @{

- */

-

-/**

- * The 8-bit unsigned data type.

- *

- * This may have to be tweaked for your particular compiler. "unsigned

- * char" works for most compilers.

- */

-typedef unsigned char u8_t;

-

-/**

- * The 16-bit unsigned data type.

- *

- * This may have to be tweaked for your particular compiler. "unsigned

- * short" works for most compilers.

- */

-typedef unsigned short u16_t;

-

-/**

- * The statistics data type.

- *

- * This datatype determines how high the statistics counters are able

- * to count.

- */

-typedef unsigned short uip_stats_t;

-

-/** @} */

-

-/*------------------------------------------------------------------------------*/

-

-/**

- * \defgroup uipoptstaticconf Static configuration options

- * @{

- *

- * These configuration options can be used for setting the IP address

- * settings statically, but only if UIP_FIXEDADDR is set to 1. The

- * configuration options for a specific node includes IP address,

- * netmask and default router as well as the Ethernet address. The

- * netmask, default router and Ethernet address are appliciable only

- * if uIP should be run over Ethernet.

- *

- * All of these should be changed to suit your project.

-*/

-

-/**

- * Determines if uIP should use a fixed IP address or not.

- *

- * If uIP should use a fixed IP address, the settings are set in the

- * uipopt.h file. If not, the macros uip_sethostaddr(),

- * uip_setdraddr() and uip_setnetmask() should be used instead.

- *

- * \hideinitializer

- */

-#define UIP_FIXEDADDR    1

-

-/**

- * Ping IP address asignment.

- *

- * uIP uses a "ping" packets for setting its own IP address if this

- * option is set. If so, uIP will start with an empty IP address and

- * the destination IP address of the first incoming "ping" (ICMP echo)

- * packet will be used for setting the hosts IP address.

- *

- * \note This works only if UIP_FIXEDADDR is 0.

- *

- * \hideinitializer

- */

-#define UIP_PINGADDRCONF 0

-

-#if 0

-#define UIP_IPADDR0     172U /**< The first octet of the IP address of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_IPADDR1     25U /**< The second octet of the IP address of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_IPADDR2     218U   /**< The third octet of the IP address of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_IPADDR3     202U  /**< The fourth octet of the IP address of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-

-#define UIP_NETMASK0    255 /**< The first octet of the netmask of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_NETMASK1    255 /**< The second octet of the netmask of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_NETMASK2    255 /**< The third octet of the netmask of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_NETMASK3    0   /**< The fourth octet of the netmask of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-

-

-#define UIP_DRIPADDR0   192 /**< The first octet of the IP address of

-			       the default router, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_DRIPADDR1   168 /**< The second octet of the IP address of

-			       the default router, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_DRIPADDR2   0   /**< The third octet of the IP address of

-			       the default router, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_DRIPADDR3   1   /**< The fourth octet of the IP address of

-			       the default router, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-

-#else

-

-#define UIP_IPADDR0     172U  /**< The first octet of the IP address of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_IPADDR1     25U /**< The second octet of the IP address of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_IPADDR2     218U   /**< The third octet of the IP address of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_IPADDR3     202U  /**< The fourth octet of the IP address of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-

-#define UIP_NETMASK0    255 /**< The first octet of the netmask of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_NETMASK1    255 /**< The second octet of the netmask of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_NETMASK2    255 /**< The third octet of the netmask of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_NETMASK3    0   /**< The fourth octet of the netmask of

-			       this uIP node, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-

-#define UIP_DRIPADDR0   172 /**< The first octet of the IP address of

-			       the default router, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_DRIPADDR1   25 /**< The second octet of the IP address of

-			       the default router, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_DRIPADDR2   218   /**< The third octet of the IP address of

-			       the default router, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-#define UIP_DRIPADDR3   3   /**< The fourth octet of the IP address of

-			       the default router, if UIP_FIXEDADDR is

-			       1. \hideinitializer */

-

-#endif

-

-/**

- * Specifies if the uIP ARP module should be compiled with a fixed

- * Ethernet MAC address or not.

- *

- * If this configuration option is 0, the macro uip_setethaddr() can

- * be used to specify the Ethernet address at run-time.

- *

- * \hideinitializer

- */

-#define UIP_FIXEDETHADDR 0

-

-#define UIP_ETHADDR0    0x00  /**< The first octet of the Ethernet

-				 address if UIP_FIXEDETHADDR is

-				 1. \hideinitializer */

-#define UIP_ETHADDR1    0xbd  /**< The second octet of the Ethernet

-				 address if UIP_FIXEDETHADDR is

-				 1. \hideinitializer */

-#define UIP_ETHADDR2    0x3b  /**< The third octet of the Ethernet

-				 address if UIP_FIXEDETHADDR is

-				 1. \hideinitializer */

-#define UIP_ETHADDR3    0x33  /**< The fourth octet of the Ethernet

-				 address if UIP_FIXEDETHADDR is

-				 1. \hideinitializer */

-#define UIP_ETHADDR4    0x05  /**< The fifth octet of the Ethernet

-				 address if UIP_FIXEDETHADDR is

-				 1. \hideinitializer */

-#define UIP_ETHADDR5    0x71  /**< The sixth octet of the Ethernet

-				 address if UIP_FIXEDETHADDR is

-				 1. \hideinitializer */

-

-/** @} */

-/*------------------------------------------------------------------------------*/

-/**

- * \defgroup uipoptip IP configuration options

- * @{

- *

- */

-/**

- * The IP TTL (time to live) of IP packets sent by uIP.

- *

- * This should normally not be changed.

- */

-#define UIP_TTL         255

-

-/**

- * Turn on support for IP packet reassembly.

- *

- * uIP supports reassembly of fragmented IP packets. This features

- * requires an additonal amount of RAM to hold the reassembly buffer

- * and the reassembly code size is approximately 700 bytes.  The

- * reassembly buffer is of the same size as the uip_buf buffer

- * (configured by UIP_BUFSIZE).

- *

- * \note IP packet reassembly is not heavily tested.

- *

- * \hideinitializer

- */

-#define UIP_REASSEMBLY 0

-

-/**

- * The maximum time an IP fragment should wait in the reassembly

- * buffer before it is dropped.

- *

- */

-#define UIP_REASS_MAXAGE 40

-

-/** @} */

-

-/*------------------------------------------------------------------------------*/

-/**

- * \defgroup uipoptudp UDP configuration options

- * @{

- *

- * \note The UDP support in uIP is still not entirely complete; there

- * is no support for sending or receiving broadcast or multicast

- * packets, but it works well enough to support a number of vital

- * applications such as DNS queries, though

- */

-

-/**

- * Toggles wether UDP support should be compiled in or not.

- *

- * \hideinitializer

- */

-#define UIP_UDP           0

-

-/**

- * Toggles if UDP checksums should be used or not.

- *

- * \note Support for UDP checksums is currently not included in uIP,

- * so this option has no function.

- *

- * \hideinitializer

- */

-#define UIP_UDP_CHECKSUMS 0

-

-/**

- * The maximum amount of concurrent UDP connections.

- *

- * \hideinitializer

- */

-#define UIP_UDP_CONNS    2

-

-/**

- * The name of the function that should be called when UDP datagrams arrive.

- *

- * \hideinitializer

- */

-#define UIP_UDP_APPCALL  udp_appcall

-

-/** @} */

-/*------------------------------------------------------------------------------*/

-/**

- * \defgroup uipopttcp TCP configuration options

- * @{

- */

-

-/**

- * Determines if support for opening connections from uIP should be

- * compiled in.

- *

- * If the applications that are running on top of uIP for this project

- * do not need to open outgoing TCP connections, this configration

- * option can be turned off to reduce the code size of uIP.

- *

- * \hideinitializer

- */

-#define UIP_ACTIVE_OPEN 1

-

-/**

- * The maximum number of simultaneously open TCP connections.

- *

- * Since the TCP connections are statically allocated, turning this

- * configuration knob down results in less RAM used. Each TCP

- * connection requires approximatly 30 bytes of memory.

- *

- * \hideinitializer

- */

-#define UIP_CONNS       20

-

-/**

- * The maximum number of simultaneously listening TCP ports.

- *

- * Each listening TCP port requires 2 bytes of memory.

- *

- * \hideinitializer

- */

-#define UIP_LISTENPORTS 10

-

-/**

- * The size of the advertised receiver's window.

- *

- * Should be set low (i.e., to the size of the uip_buf buffer) is the

- * application is slow to process incoming data, or high (32768 bytes)

- * if the application processes data quickly.

- *

- * \hideinitializer

- */

-#define UIP_RECEIVE_WINDOW   32768

-

-/**

- * Determines if support for TCP urgent data notification should be

- * compiled in.

- *

- * Urgent data (out-of-band data) is a rarely used TCP feature that

- * very seldom would be required.

- *

- * \hideinitializer

- */

-#define UIP_URGDATA      1

-

-/**

- * The initial retransmission timeout counted in timer pulses.

- *

- * This should not be changed.

- */

-#define UIP_RTO         3

-

-/**

- * The maximum number of times a segment should be retransmitted

- * before the connection should be aborted.

- *

- * This should not be changed.

- */

-#define UIP_MAXRTX      8

-

-/**

- * The maximum number of times a SYN segment should be retransmitted

- * before a connection request should be deemed to have been

- * unsuccessful.

- *

- * This should not need to be changed.

- */

-#define UIP_MAXSYNRTX      3

-

-/**

- * The TCP maximum segment size.

- *

- * This is should not be to set to more than UIP_BUFSIZE - UIP_LLH_LEN - 40.

- */

-#define UIP_TCP_MSS     (UIP_BUFSIZE - UIP_LLH_LEN - 40)

-

-/**

- * How long a connection should stay in the TIME_WAIT state.

- *

- * This configiration option has no real implication, and it should be

- * left untouched.

- */ 

-#define UIP_TIME_WAIT_TIMEOUT 120

-

-

-/** @} */

-/*------------------------------------------------------------------------------*/

-/**

- * \defgroup uipoptarp ARP configuration options

- * @{

- */

-

-/**

- * The size of the ARP table.

- *

- * This option should be set to a larger value if this uIP node will

- * have many connections from the local network.

- *

- * \hideinitializer

- */

-#define UIP_ARPTAB_SIZE 8

-

-/**

- * The maxium age of ARP table entries measured in 10ths of seconds.

- *

- * An UIP_ARP_MAXAGE of 120 corresponds to 20 minutes (BSD

- * default).

- */

-#define UIP_ARP_MAXAGE 120

-

-/** @} */

-

-/*------------------------------------------------------------------------------*/

-

-/**

- * \defgroup uipoptgeneral General configuration options

- * @{

- */

-

-/**

- * The size of the uIP packet buffer.

- *

- * The uIP packet buffer should not be smaller than 60 bytes, and does

- * not need to be larger than 1500 bytes. Lower size results in lower

- * TCP throughput, larger size results in higher TCP throughput.

- *

- * \hideinitializer

- */

-#define UIP_BUFSIZE     2048

-

-

-/**

- * Determines if statistics support should be compiled in.

- *

- * The statistics is useful for debugging and to show the user.

- *

- * \hideinitializer

- */

-#define UIP_STATISTICS  1

-

-/**

- * Determines if logging of certain events should be compiled in.

- *

- * This is useful mostly for debugging. The function uip_log()

- * must be implemented to suit the architecture of the project, if

- * logging is turned on.

- *

- * \hideinitializer

- */

-#define UIP_LOGGING 0

-

-/**

- * Print out a uIP log message.

- *

- * This function must be implemented by the module that uses uIP, and

- * is called by uIP whenever a log message is generated.

- */

-void uip_log(char *msg);

-

-/**

- * The link level header length.

- *

- * This is the offset into the uip_buf where the IP header can be

- * found. For Ethernet, this should be set to 14. For SLIP, this

- * should be set to 0.

- *

- * \hideinitializer

- */

-#define UIP_LLH_LEN     14

-

-

-/** @} */

-/*------------------------------------------------------------------------------*/

-/**

- * \defgroup uipoptcpu CPU architecture configuration

- * @{

- *

- * The CPU architecture configuration is where the endianess of the

- * CPU on which uIP is to be run is specified. Most CPUs today are

- * little endian, and the most notable exception are the Motorolas

- * which are big endian. The BYTE_ORDER macro should be changed to

- * reflect the CPU architecture on which uIP is to be run.

- */

-#ifndef LITTLE_ENDIAN

-#define LITTLE_ENDIAN  3412

-#endif /* LITTLE_ENDIAN */

-#ifndef BIG_ENDIAN

-#define BIG_ENDIAN     1234

-#endif /* BIGE_ENDIAN */

-

-/**

- * The byte order of the CPU architecture on which uIP is to be run.

- *

- * This option can be either BIG_ENDIAN (Motorola byte order) or

- * LITTLE_ENDIAN (Intel byte order).

- *

- * \hideinitializer

- */

-#ifndef BYTE_ORDER

-#define BYTE_ORDER     LITTLE_ENDIAN

-#endif /* BYTE_ORDER */

-

-/** @} */

-/*------------------------------------------------------------------------------*/

-

-/**

- * \defgroup uipoptapp Appication specific configurations

- * @{

- *

- * An uIP application is implemented using a single application

- * function that is called by uIP whenever a TCP/IP event occurs. The

- * name of this function must be registered with uIP at compile time

- * using the UIP_APPCALL definition.

- *

- * uIP applications can store the application state within the

- * uip_conn structure by specifying the size of the application

- * structure with the UIP_APPSTATE_SIZE macro.

- *

- * The file containing the definitions must be included in the

- * uipopt.h file.

- *

- * The following example illustrates how this can look.

- \code

-

-void httpd_appcall(void);

-#define UIP_APPCALL     httpd_appcall

-

-struct httpd_state {

-  u8_t state; 

-  u16_t count;

-  char *dataptr;

-  char *script;

-};

-#define UIP_APPSTATE_SIZE (sizeof(struct httpd_state))

- \endcode

- */

-

-/**

- * \var #define UIP_APPCALL

- *

- * The name of the application function that uIP should call in

- * response to TCP/IP events.

- *

- */

-

-/**

- * \var #define UIP_APPSTATE_SIZE

- *

- * The size of the application state that is to be stored in the

- * uip_conn structure.

- */

-/** @} */

-

-/* Include the header file for the application program that should be

-   used. If you don't use the example web server, you should change

-   this. */

-#include "httpd.h"

-

-

-#endif /* __UIPOPT_H__ */